           Actor TacticoolGuy : GenericHumanScum
       {
  scale 1.0
  obituary "%o didn't see the tacticool guy coming"
  health 250
  radius 15
  height 54
  mass 100
  speed 14
  Species "Arch"
+DONTHARMSPECIES
  painchance 10
  SeeSound "Tacticool/See"
  PainSound "Tacticool/pain"
  DeathSound "TACTDE01"
  ActiveSound ""
  +NOTARGET
  Tag "Tacticool Guy"
  MONSTER
  +FLOORCLIP
  States
       {
  Spawn:
	TNT1 A 0
	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:		
    X2RU A 10 A_Look
    loop
  VanJump:
	TNT1 A 0
	TNT1 A 0  NODELAY ACS_NamedExecuteAlways ("VanillaHeights")
    Goto Spawn+2	
  See:
 //   "####" A random(1,4)
    TNT1 A 0 A_Jump (70, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB")
	TNT1 A 0 A_Jump (50, "SmokeDown")
	TNT1 A 0 A_Jump (180, "MissileCheck")
  SeeLoop:
    TNT1 A 0 A_CheckSight ("CheckReload")
	TNT1 A 0 A_Jump (5, "Talk")
    TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	TNT1 A 0 A_Jump (199, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeLeftB", "DodgeRightF", "DodgeRightB") 
    X2RU AABBCCDDEEFF 1 A_Chase
    loop
  Talk:
	TNT1 A 0
	TNT1 A 0 A_PlaySound ("Tacticool/Active")
    Goto Seeloop+1
  CheckReload:
    TNT1 A 0 A_Jump (150, "CheckReload2")
 	Goto SeeLoop+1
  CheckReload2:
    TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	Goto SeeLoop+1
  DodgeLeft:
        TNT1 A 0 A_FaceTarget
	    X2RU AABBCCDDEEFF 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))
	    X2RU AABBCCDDEEFF 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))
	    X2RU AABBCCDDEEFF 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
	    X2RU AABBCCDDEEFF 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)) 
	    X2RU AABBCCDDEEFF 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)) 
	    X2RU AABBCCDDEEFF 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
  MissileCheck:
    TNT1 A 0 A_JumpIfInventory ("GrenadeCoolDown", 1, 2)
    TNT1 A 0 A_Jump (200, "SmokeCheck")
    TNT1 A 0 A_JumpIfTargetInLos ("Missile", 0, JLOSF_DEADNOJUMP)
	Goto SeeLoop
  SmokeDown:
    TNT1 A 0 A_JumpIfInventory ("GrenadeCoolDown", 1, 7)
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
    X2RU H 7 A_CustomMissile ("SmokeGrenadeFlying", 32, 9, 0, CMF_OFFSETPITCH, random (-45, 0))
	TNT1 A 0 A_Jump (198, "MissileCheck")
	Goto SeeLoop
  Missile:
    X2RU H 7 A_FaceTarget
	TNT1 A 0 A_TakeInventory ("GrenadeCoolDown", 1)
	TNT1 A 0 A_JumpIfInventory ("GrenadeCoolDown", 1, 16)
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	X2RU H 15 A_CustomMissile ("SmokeGrenadeFlying", 32, 9, 0, CMF_OFFSETPITCH, random (5, 25))
	TNT1 A 0 A_GiveInventory ("GrenadeCoolDown", 1)
	TNT1 A 0 A_JumpIfTargetInLos ("TriShot", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP,  0, 950)
	TNT1 A 0 A_JumpIfTargetInLos ("Accuracy", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 0, 1500)
  MissileLoop:
    TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 2 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-4,4))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	TNT1 A 0 A_JumpIfInTargetLos ("FireRetreat", 30, JLOSF_DEADNOJUMP)
	//TNT1 A 0 A_JumpIfInTargetLos ("DodgeCheck")
    X2RU H 3 A_MonsterRefire (40, "SeeLoop")
	goto MissileLoop
  Trishot:
    TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-1,0))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	X2RU H 2 A_FaceTarget 
	TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-1,1))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	X2RU H 2 A_FaceTarget
	TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-2,2))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	X2RU H 2 A_MonsterRefire (40, "SeeLoop")
	Goto SeeLoop
  Accuracy:
    X2RU H 7 A_FaceTarget
	TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9)
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	Goto SeeLoop
  FireRetreat:
    TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-1,0))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	X2RU H 2 A_FaceTarget 
	TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-1,1))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	X2RU H 2 A_FaceTarget
	TNT1 A 0 A_PlaySound ("USZRFL")
	TNT1 A 0 A_PlaySound ("HR155FF", 6, 0.5, 0)
	X2RU I 1 BRIGHT A_CustomMissile ("HRTracer",32,9,random (-2,2))
	TNT1 A 0 A_GiveInventory ("AKShotCounter", 1)
	TNT1 A 0 A_JumpIfInventory ("AKShotCounter", 30, "Reload")
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	X2RU H 8 A_CustomMissile ("SmokeGrenadeFlying", 32, 9, 0, CMF_OFFSETPITCH, random (-45, 0))
	X2RU AABBCCDDEEFFAABBCCDDEEFFAABBCCDDEEFF 2 A_Wander
Goto SeeLoop
    SmokeRetreat:
	  TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	  X2RU H 5 A_CustomMissile ("SmokeGrenadeFlying", 32, 9, 0, CMF_OFFSETPITCH, -85)
	  TNT1 A 0 A_ChangeFlag ("FRIGHTENED", True)
	  X2RU AABBCCDDEEFFAABBCCDDEEFFAABBCCDDEEFFAABBCCDD 2 A_Chase
	  TNT1 A 0 A_ChangeFlag ("FRIGHTENED", false)
	  TNT1 A 0 A_Jump (255, "MissileCheck")
	 Goto SeeLoop
  SmokeCheck:
    TNT1 A 0 A_JumpIfTargetInLos ("Smoke", 0, JLOSF_CLOSENOJUMP | JLOSF_DEADNOJUMP, 700, 300)
	Goto MissileCheck+2
  Smoke:
    //TNT1 A 0 A_Print ("Granata")
    X2RU D 7 A_FaceTarget
	TNT1 A 0 A_PlaySound ("GRNTOSS", CHAN_WEAPON)
	X2RU E 3 A_CustomMissile ("SmokeGrenadeFlying", 42, 0, random (-3,3), CMF_OFFSETPITCH, random (8, 12))
	TNT1 A 0 A_GiveInventory ("GrenadeCoolDown", 3)
	Goto SeeLoop	 
  Reload:
    X2RU D 15 A_Playsound ("HRIFOUT")
	TNT1 A 0 A_TakeInventory ("AKShotCounter", 30)
	X2RU H 30 A_Playsound ("HRIFIN")
	X2RU D 16
	TNT1 A 0 A_Jump (50, "SmokeDown")
	Goto SeeLoop
  Pain:
    X2RU G 3
    X2RU G 3 A_Pain
	TNT1 A 0 A_Jump (75, "SmokeRetreat")
    goto SeeLoop
  Death:
  	//TNT1 A 0 A_Jump(20, "Suren")
    X2RU L 5 A_Scream
    X2RU M 5
    X2RU N 5 A_NoBlocking
    X2RU OPQ 5
    X2RU R -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)
	X2RU RQPONML 5
   Goto See	
  Idle:
    X2RU AA 4 A_Wander
    X2RU A 0 A_Look
    X2RU BB 4 A_Wander
    X2RU A 0 A_Look
    X2RU CC 4 A_Wander
    X2RU A 0 A_Look
    X2RU DD 4 A_Wander
    X2RU A 0 A_Look
    loop
  }
	   
	   
 }
	 
	 
	 
	Actor HRTracer 
{
	Projectile
	Damage (8)
	+FORCEXYBILLBOARD
	+DONTSPLASH
	+BLOODSPLATTER
	+SKYEXPLODE
	+NOEXTREMEDEATH
	radius 2
	height 2
	speed 28
	renderstyle Add
	alpha 0.9
	scale .15
	 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 SmokeGrenadeFlying
	   {
	    Projectile
		Height 5
		Scale 0.2
		Speed 20
		Gravity 0.5
		BounceCount 3
		Obituary "Nice catch, %o"
		BounceFactor 0.1
		+PAINLESS
		+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 ("SmokeGrenadeLaying", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
					  Stop
					  }
					  
      }					  
		     Actor SmokeGrenadeLaying
	              {
				Height 0
				Scale 0.15
				Reactiontime 400
				Speed 20
				Radius 0
				+THRUACTORS
				-NOGRAVITY
				Damage (0)		   
				      States
					     {
				         Spawn:
						   TNT1 A 0
						   TNT1 A 0 	
						   GRSM G 17 A_Playsound ("SMK", CHAN_WEAPON, 1)
						   GRSM G 1 A_SpawnItemEx ("NewGrenadeSmoke1", 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 ("NewGrenadeSmoke2", 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 ("NewGrenadeSmoke3", 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 (CHAN_WEAPON)
						   Stop
						   }
				}		   
				   
      Actor GrenadeSmoke1
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS	
		   RenderStyle Normal
		   Scale 0.3
		   Alpha 1.0
		   Height 0
		   Radius 0
		   Speed 1
		   //Projectile
		         States
				     {
					  Spawn:
					      GSM1 A 6
						 Death:
						   GSM1 A 25 A_FadeOut (0.3)
						  Stop
						  }
		 } 				  
		
     			   
      Actor GrenadeSmoke2
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS	
		   RenderStyle Normal
		   Scale 0.3
		   Height 0
		   Radius 0
		   Alpha 1.0
		   Speed 1
		   //Projectile
		         States
				     {
					  Spawn:
					      GSM2 A 6
						 Death:
						   GSM2 A 25 A_FadeOut (0.3)
						  Stop
						  }
		 } 
	 
	 
	 Actor GrenadeSmoke3
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS	
		   RenderStyle Normal
		   Scale 0.3
		   Height 0
		   Radius 0
		   Alpha 1.0
		   Speed 1
		   //Projectile
		         States
				     {
					  Spawn:
					      GSM3 A 6
						 Death:
						  GSM3 A 25 A_FadeOut (0.3)
						  Stop
						  }
		 } 		
		
//----------------------------------------Performance smoke-------------------------------------------
	
		Actor NewGrenadeSmoke1
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS
		   +FORCEXYBILLBOARD	
		   RenderStyle Translucent
		   Scale 0.2
		   Alpha 1.0
		   Height 0
		   ReactionTime 450
		   Radius 0
		   Speed 0
		   //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  GSM1 A 1 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0 	
						  TNT1 A 0 A_Countdown	
					      GSM1 A 1 A_SetScale ( ScaleX+frandom(0.001, 0.004), scaleY+frandom(0.001, 0.004))  
						 Loop
						  Death:
						   TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						   GSM1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						  }
		 } 				  
		
     			   
      Actor NewGrenadeSmoke2
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS
		   +FORCEXYBILLBOARD  	 	
		   RenderStyle Translucent
		   Scale 0.2
		   Height 0
		   ReactionTime 450
		   Radius 0
		   Alpha 1.0
		   Speed 0
		   //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  GSM2 A 1 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0 	
						  TNT1 A 0 A_Countdown	
					      GSM2 A 1 A_SetScale ( ScaleX+frandom(0.002, 0.004), scaleY+frandom(0.002, 0.004))     
					     Loop
						 Death:
						   TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						   GSM2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						  }
		 } 
	 
	 
	 Actor NewGrenadeSmoke3
	        {
	       +NOINTERACTION
		   +CLIENTSIDEONLY
		   +THRUACTORS
		   +FORCEXYBILLBOARD 	
		   RenderStyle Translucent
		   Scale 0.2
		   Height 0
		   ReactionTime 450
		   Radius 0
		   Alpha 1.0
		   Speed 0
		  //Projectile
		         States
				     {
					  Spawn:
						  TNT1 A 0
						  GSM1 A 3 A_SetScale ( ScaleX+frandom(0.3, 0.5), scaleY+frandom(0.3, 0.5))
					  Spawn2:
						  TNT1 A 0 	
						  TNT1 A 0 A_Countdown	
					      GSM1 A 1 A_SetScale ( ScaleX+frandom(0.002, 0.004), scaleY+frandom(0.002, 0.004))     
						 Loop
						 Death:
						  TNT1 A 0 	
						   TNT1 A 0 ThrustThingZ (0, 2, 0, 0)	
						  GSM3 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1  A_FadeOut (0.03)
						  Stop
						  }
		 } 	



		   //A_CustomMissile ("NewGrenadesmoke1", 0, random(-5,5), random (-360,360), CMF_OFFSETPITCH, random (0, 90))