           Actor TacticoolShotgunner : GenericHumanScum
       {
  scale 1.0
  obituary "%o was outsmarted and eliminated by the tacticool shotgunner"
  health 300
  radius 15
  height 54
  mass 100
  speed 14
  Species "Arch"
+DONTHARMSPECIES
  painchance 24
  SeeSound "TacticoolShotgunner/See"
  PainSound "TacticoolShotgunner/pain"
  DeathSound "TACSDE01"
  ActiveSound "TacticoolShotgunner/Active"
  +NOTARGET
  Tag "Tacticool Shotgunner"
  MONSTER
  +FLOORCLIP
  States
       {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("STFUCheck") == 1, "STFU")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult ("VanJumpCheck") == 1, "VanJump")
	TNT1 A 0 A_SetScale (scaleX+frandom(-0.02, 0.02), scaleY+frandom(-0.04,0.04))
  Spawn2:		
    EGSH A 10 A_Look
    loop
  STFU:
     TNT1 A 0
	 TNT1 A 0 ACS_NamedExecute ("STFUTacticoolShotgunner")
	 Goto Spawn+2
  VanJump:
	 TNT1 A 0
	 TNT1 A 0  NODELAY ACS_NamedExecuteAlways ("VanillaHeights")
	Goto Spawn+3	 
  See:
 //   "####" A random(1,4)
    TNT1 A 0 A_Jump (70, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
	TNT1 A 0 A_Jump (50, "SmokeRetreat")
	TNT1 A 0 A_Jump (180, "MissileCheck")
  SeeLoop:
    TNT1 A 0 A_CheckSight ("CheckReload")
    TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	TNT1 A 0 A_Jump (199, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB") 
    EGSH AABBCCDD 2 A_Chase
    loop
  CheckReload:
    TNT1 A 0 A_Jump (150, "CheckReload2")
 	Goto SeeLoop+1
  CheckReload2:
    TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	Goto SeeLoop+1
  DodgeLeft:
        TNT1 A 0 A_FaceTarget
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		TNT1 A 0 A_Jump (50, "DodgeRight")
		Goto SeeLoop+1
	DodgeLeftF:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil (random (-8,-3))
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
    DodgeLeftB:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil (random (3,8))
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+192, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRight:
	    TNT1 A 0 A_FaceTarget
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRightF:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil ( random (-8,-3)) 
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	DodgeRightB:
	    TNT1 A 0 A_FaceTarget
	    TNT1 A 0 ThrustThingZ (0, 15, 0, 0)
	    TNT1 A 0 A_Recoil ( random (3,8)) 
	    EGSH AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
  SmokeRetreat:
     TNT1 A 0
	 TNT1 A 0 A_ChangeFlag ("FRIGHTENED", true)
	 TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	 TNT1 A 0 A_CustomMissile ("SmokeGrenadeFlying", 42, 9, random (-8,8), CMF_OFFSETPITCH, random (-25, 0))
	 EGSH DE 9 A_FaceTarget 
	 EGSH AABBCCDDAABBCCDDAABBCCDDAABBCCDD 2 A_Chase ("","")
  MissileCheck:
    TNT1 A 0 A_ChangeFlag ("FRIGHTENED", false)
    TNT1 A 0 A_JumpIfInventory ("GrenadeCoolDown", 1, 2)
	TNT1 A 0 A_Jump (229, "GranataCheck")
    TNT1 A 0 A_JumpIfTargetInLos ("Missile", 0, JLOSF_DEADNOJUMP)
	Goto SeeLoop
  Missile:
    TNT1 A 0 A_ChangeFlag ("FRIGHTENED", false)
    TNT1 A 0 A_TakeInventory ("GrenadeCoolDown", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
    EGSH E 15 A_FaceTarget
	TNT1 A 0 A_JumpIfTargetInLos ("CloseQuarters", 0, JLOSF_DEADNOJUMP, 550)
	TNT1 A 0 A_JumpIfTargetInLos ("LongRange", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 0, 950)
	TNT1 A 0 A_Jump (125, 11)
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("SmokeGrenadeFlying", 42, 9, random (-8,8), CMF_OFFSETPITCH, random (-25, 0))
	EGSH DE 6 A_FaceTarget 
	TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (-5,5))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	EGSH E 10 A_FaceTarget
	TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (-5,5))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
   Goto SeeLoop
  CloseQuarters:
	EGSH E 3 A_FaceTarget
	TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (-5,5))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	EGSH E 10 A_FaceTarget
    TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (-10,-2))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	EGSH E 10 A_FaceTarget
	TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (2,10))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	TNT1 A 0 A_JumpIfTargetInLos ("SmokeRetreat", 0, JLOSF_DEADNOJUMP | JLOSF_CLOSENOJUMP, 600, 275)
   Goto SeeLoop
  LongRange:
    EGSH E 12 A_FaceTarget
	TNT1 A 0 A_Jump (75, 14)
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("SmokeGrenadeFlying", 42, 9, random (-8,8), CMF_OFFSETPITCH, random (-25, 0))
	EGSH DE 9 A_FaceTarget
  LongRangeLoop:
    EGSH E 16 A_FaceTarget
	TNT1 A 0 A_Playsound ("TCOOSHOT")
	TNT1 A 0 A_PlaySound ("DBSHOFRF", 6, 0.5, 0)
	TNT1 AAAAAAAA 0 A_CustomMissile ("HeavyShotgunTracer", 32, 9, random (-3,3))
	EGSH F 4 BRIGHT A_FaceTarget
	TNT1 A 0 A_GiveInventory ("ShotgunShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("ShotgunShotCounter", 6, "Reload")
	TNT1 A 0 A_MonsterRefire (2, "SeeLoop")
   Loop
  GranataCheck:
	TNT1 A 0 
    TNT1 A 0 A_JumpIfTargetInLos ("Granata", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 769, 400)
	Goto MissileCheck+2
  Granata:
    //TNT1 A 0 A_Print ("Granata")
    EGSH D 10 A_FaceTarget
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	TNT1 A 0 A_CustomMissile ("ExSmokeGrenade", 42, 0, random (-5,5), CMF_OFFSETPITCH, random (14, 17)) 
	EGSH CE 6 
	TNT1 A 0 A_GiveInventory ("GrenadeCoolDown", 1)
	Goto SeeLoop  
  Reload:
    EGSH D 4 A_Playsound ("SHOTLOD")
	EGSH E 4 A_Playsound ("SHOTLOD")
	EGSH D 2 A_Playsound ("SHOTLOD")
	TNT1 A 0 A_TakeInventory ("ShotgunShotCounter", 6)
	EGSH E 4 A_Playsound ("SHOTLOD")
	EGSH D 2 A_Playsound ("SHOTLOD")
	EGSH E 4 A_Playsound ("SHOTLOD")
	EGSH DE 6 A_Playsound ("SPASPMP")
	TNT1 A 0 A_Jump (50, "SmokeRetreat")
	Goto SeeLoop
  Pain:
    EGSH H 3
    EGSH H 3 A_Pain
    goto SeeLoop
  Death:
  	//TNT1 A 0 A_Jump(20, "Suren")
    EGSH I 5 A_Scream
    EGSH J 5
    EGSH K 5 A_NoBlocking
    EGSH L 5
    EGSH M -1
    stop
  XDeath:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx ("VgavnonahCore", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    PGIB A 5 A_XScream
    PGIB B 5 A_NoBlocking
    PGIB CD 5
    PGIB E -1
    Stop
  Raise:
    TNT1 A 0 
    TNT1 A 0 A_SpawnItemEx ("NanoResEffect", 0, 0, 15, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	EGSH MLKJI 5
   Goto See	
  Idle:
    EGSH AA 4 A_Wander
    EGSH A 0 A_Look
    EGSH BB 4 A_Wander
    EGSH A 0 A_Look
    EGSH CC 4 A_Wander
    EGSH A 0 A_Look
    EGSH DD 4 A_Wander
    EGSH A 0 A_Look
    loop
  }
	   
	   
 }
	 
	 
	 
	Actor HeavyShotgunTracer 
{
	Projectile
	Damage (7)
	+FORCEXYBILLBOARD
	+DONTSPLASH
	+BLOODSPLATTER
	+SKYEXPLODE
	-NOEXTREMEDEATH
	radius 2
	height 2
	speed 20
	renderstyle Add
	alpha 0.9
	scale .2
	 States
     {
	  Spawn:
	    TNT1 A 0
		TNT1 A 0 NoDelay ACS_NamedExecuteAlways("PotentialProjectileHider", 0,0,0)
	  Spawn2:
	    TRAC A 1 Bright A_PlaySound ("Bullet/Fly", 0, 1.0, true)
		Loop
	  Crash: 	
	  Death:
	    TNT1 A 0
		TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ProjectileIsDead", 0,0,0)
	    TNT1 A 0 A_Playsound ("Bullet/Impact")
		TNT1 A 0 A_Jump (100, "D2")
		FX57 CDEFGHI 1 BRIGHT
		Stop
	  D2:
	    FX58 CDEFGHI 1 BRIGHT
		Stop
	  XDeath:
	    TNT1 A 0
		TNT1 A 0 NoDelay ACS_NamedExecuteAlways("ProjectileIsDead", 0,0,0)
		TNT1 A 1
		Stop	
	 }
} 
	 
	   
    Actor ExSmokeGrenade
	   {
	    Projectile
		Height 5
		Scale 0.2
		Speed 20
		Gravity 0.5
		BounceCount 3
		Obituary "Nice catch, %o"
		BounceFactor 0.1
		+DOOMBOUNCE
		Radius 5
		-NOGRAVITY
		Damage (1)
		      States
			       {
				    Spawn:
					   TNT1 A 0
					   TNT1 A 0	
					   GRSM AAA 1 
					   GRSM	BBB 1  
					   GRSM CCC 1  	
					   GRSM	DDDD 1 
					   GRSM	EE 1 
					   GRSM	FFF 1 
					   GRSM G 1 
					   GRSM	HHH 1
					  Loop
					Death:
					   TNT1 A 0
					   TNT1 A 0
					   TNT1 A 0 A_SpawnItemEx ("ExSmokeGrenadeLaying", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
					  Stop
					  }
					  
      }					  
		     Actor ExSmokeGrenadeLaying
	              {
				Height 0
				Scale 0.15
				Reactiontime 295
				Speed 20
				Radius 0
				+THRUACTORS
				-NOGRAVITY
				+SHOOTABLE
				Health 1
				Damage (0)		   
				      States
					     {
				         Spawn:
						   TNT1 A 0
						   TNT1 A 0 	
						   GRSM G 17 A_Playsound ("SMK", 7, 1)
						   GRSM G 1 A_SpawnItemEx ("ExplosiveSmoke1", 0, 0, 0, frandom (0.06, 0.07), frandom (0.06, 0.07), frandom (0.06, 0.07), random (-360,360), SXF_NOCHECKPOSITION) 
						   GRSM G 1 A_SpawnItemEx ("ExplosiveSmoke2", 0, 0, 0, frandom (0.06, 0.07), frandom (0.06, 0.07), frandom (0.06, 0.07), random (-360,360), SXF_NOCHECKPOSITION) 
						   GRSM G 1 A_SpawnItemEx ("ExplosiveSmoke3", 0, 0, 0, frandom (0.06, 0.07), frandom (0.06, 0.07), frandom (0.06, 0.07), random (-360,360), SXF_NOCHECKPOSITION) 
						  SpawnLoop:
						   TNT1 A 0 
						   TNT1 A 0 A_playsound ("SMKLOOP", CHAN_WEAPON, 1, true)			  
						   TNT1 A 0 A_CountDown
						   GRSM G 1
						  Loop
						 Death:
						    TNT1 A 0
						    TNT1 A 0 A_StopSound (7)
						   Stop
						   }
				}		   
				   
      
		
		
	
		Actor ExplosiveSmoke1
	        {
		   -SOLID
		   -BLOCKEDBYSOLIDACTORS
		   +FORCEXYBILLBOARD
		   +SHOOTABLE
		   +DONTCORPSE
		   +NOBLOOD
		   +NOICEDEATH
		   +DOHARMSPECIES
		   Health 1
		   GibHealth 0
		   RenderStyle Translucent
		   Scale 0.2
		   Alpha 0.75
		   Height 80
		   ReactionTime 370
		   Radius 80
		   Speed 2
		   //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  ESM1 A 1 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0
						  TNT1 A 0 A_GiveInventory ("ExGasCountDown", 1)
						  //TNT1 A 0 A_Countdown	
					      ESM1 A 1 A_SetScale ( ScaleX+frandom(0.001, 0.004), scaleY+frandom(0.001, 0.004))
						  TNT1 A 0 A_JumpIfInventory ("ExGasCountDown", 370, "Disappear")
						 Loop
						  Disappear:
						   TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						   ESM1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						  Death:
						  TNT1 A 1 A_CustomMissile ("SmokeExplosion", random (2, 15), random (-3,3), random (-360,360), CMF_OFFSETPITCH | CMF_AIMDIRECTION, random (0,180)) 
						 Stop 
						  }
		 } 				  
		
     			   
      Actor ExplosiveSmoke2
	        {
		   -SOLID
		   -BLOCKEDBYSOLIDACTORS
		   +FORCEXYBILLBOARD

		   +SHOOTABLE
		   +DONTCORPSE
		   +NOBLOOD
		   +NOICEDEATH
		   +DOHARMSPECIES
		   Health 1
		   GibHealth 0
		   RenderStyle Translucent
		   Scale 0.2
		   Height 80
		   ReactionTime 370
		   Radius 80
		   Alpha 0.75
		   Speed 2
		   //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  ESM2 A 1 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0
						  TNT1 A 0 A_GiveInventory ("ExGasCountDown", 1)
						  //TNT1 A 0 A_Countdown	
					      ESM2 A 1 A_SetScale ( ScaleX+frandom(0.002, 0.004), scaleY+frandom(0.002, 0.004))
						  TNT1 A 0 A_JumpIfInventory ("ExGasCountDown", 370, "Disappear")
					     Loop
						 Disappear:
						   TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						   ESM1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						 Death:
						  TNT1 A 1 A_CustomMissile ("SmokeExplosion", random (2, 15), random (-3,3), random (-360,360), CMF_OFFSETPITCH | CMF_AIMDIRECTION, random (0,180)) 
						 Stop  
						  }
		 } 
	 
	 
	 Actor ExplosiveSmoke3
	        {
		   -SOLID
		   -BLOCKEDBYSOLIDACTORS
		   +FORCEXYBILLBOARD
		   +SHOOTABLE
		   +DONTCORPSE
		   +DOHARMSPECIES
		   +NOBLOOD
		   +NOICEDEATH
		   Health 1
		   GibHealth 0
		   RenderStyle Translucent
		   Scale 0.2
		   Height 80
		   ReactionTime 370
		   Radius 80
		   Alpha 0.75
		   Speed 2
		  //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  ESM3 A 3 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0
						  TNT1 A 0 A_GiveInventory ("ExGasCountDown", 1)
						  //TNT1 A 0 A_Countdown	
					      ESM3 A 1 A_SetScale ( ScaleX+frandom(0.002, 0.004), scaleY+frandom(0.002, 0.004))
						  TNT1 A 0 A_JumpIfInventory ("ExGasCountDown", 370, "Disappear")
						 Loop
						 Disappear:
						   TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						   ESM1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						 Death:
						  TNT1 A 1 A_CustomMissile ("SmokeExplosion", random (2, 15), random (-3,3), random (-360,360), CMF_OFFSETPITCH | CMF_AIMDIRECTION, random (0,180)) 
						 Stop 
						  }
		 } 	



		   Actor SmokeExplosion
			{
			 RenderStyle Add
			 +NOGRAVITY
			 Species "Arch"
			 +DONTHARMSPECIES
			 Scale 2.42
			 Speed 7
			 States
				  {
				   Spawn:
					  TNT1 A 0
					  TNT1 A 0 A_PlaySound ("ALABOOM")
					  X003 ABC 1 Bright 
					  X003 D 8 Bright A_Explode ((40),168)
					  X003 EFGHIJKLMNOPQRSTUVWXYZ 1 Bright  		  
					Stop
					}
			}
			
			
			
			Actor ExGasCountdown : Inventory
				{
				 Inventory.Maxamount 370
				}
			
			
			
			
			Actor SmokeNadeCD : Inventory
				{
				 Inventory.Maxamount 4
				}