     actor ShockGrunt : GenericHumanScum 
{
  scale 1.0
  obituary "%o is now able to charge any electronic device thanks to Shock Grunt"
  health 120
  radius 15
  height 54
  mass 100
  speed 14 
  MinMissileChance 1
  +MISSILEMORE
  +MISSILEEVENMORE
  Species "Spectre"
  +DOHARMSPECIES
  painchance 185
  SeeSound "Taser/see"
  PainSound "TactIncinerator/pain"
  DeathSound "TactIncinerator/Death"
  ActiveSound "Taser/Active" 
  Tag "Shock Grunt"
  MONSTER
  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.08,0.08))
  Spawn2:
    HMZP A 10 A_Look
    loop
  STFU:
     TNT1 A 0
	 TNT1 A 0 ACS_NamedExecute ("STFUTaser")
	 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", "DodgeRightF")
	 TNT1 A 0 A_Jump (180, "MissileCheck")		
  SeeLoop:
	TNT1 A 0
	TNT1 A 0 A_StopSound (CHAN_WEAPON)
	TNT1 A 0 A_Jump (199, "DodgeLeft", "DodgeRight", "DodgeLeftF", "DodgeRightF")
    HMZP AABBCCDD 3 A_Chase
	TNT1 A 0 A_JumpIfCloser (350, "Rush")
    loop
  DodgeLeft:
        TNT1 A 0 A_FaceTarget
	    HMZP 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))
	    HMZP 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
	    HMZP 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)) 
	    HMZP AABBCCDD 2 ThrustThing(angle*256/360+64, 1, 0, 0)
		TNT1 A 0 A_Jump (228, "MissileCheck")
		Goto SeeLoop+1
	Rush:
    TNT1 A 0
    HMZP AABBCCDD 2 A_Chase ("", "")
	TNT1 A 0 A_JumpIfTargetInLos ("SeeLoop", 0, JLOSF_CLOSENOJUMP, 0, 666)
	TNT1 A 0 A_JumpIfCloser (132, "Electro")
   Loop  	
  MissileCheck:
    TNT1 A 0 A_JumpIfTargetInLos ("Missile", 0, JLOSF_DEADNOJUMP)
	Goto SeeLoop		
  Missile:
	TNT1 A 0
	TNT1 A 0 A_JumpIfCloser (132, "Electro")
	Goto SeeLoop
  Electro: 	
	HMZP E 8 A_FaceTarget
  ElectroLoop:
	TNT1 A 0
	TNT1 A 0 A_PlaySound ("BZZZ", Chan_Weapon)
	//TNT1 A 0 A_CustomRailgun((1), 9,"None","None",RGF_SILENT|RGF_FULLBRIGHT,0,3,"None",Random(3,6),Random(2,4),120,0.1,0,0,"ElectricArc")
	//TNT1 A 0 A_CustomRailgun((1), 9,"None","None",RGF_SILENT|RGF_FULLBRIGHT,0,2,"None",Random(2,4),Random(2,4),120,0.1,0,0,"ElectricArc")
	TNT1 A 0 A_CustomRailgun((1), 9,"None","None",RGF_SILENT|RGF_FULLBRIGHT,0,3,"DONTBLEEDFUCKER",Random(3,6),Random(2,4),135,0.1,0,0,"ElectricArc")
	TNT1 A 0 A_RadiusGive ("Tased", 132, RGF_PLAYERS)
	//TNT1 A 0 A_CustomMissile ("ShockContent", 32, 0) 
	HMZP F 1 BRIGHT A_FaceTarget
	TNT1 A 0 A_JumpIfTargetInLos ("SeeLoop" ,1, JLOSF_CLOSENOJUMP, 0, 135)
	TNT1 A 0 A_CposRefire
	TNT1 A 0
	Loop
  Pain:
	TNT1 A 0
	TNT1 A 0 A_StopSound (CHAN_WEAPON)
    HMZP G 3
    HMZP G 3 A_Pain
    goto SeeLoop
  Death:
	TNT1 A 0
	TNT1 A 0 A_StopSound (CHAN_WEAPON)
    HMZP H 5 A_Scream
    HMZP I 5
    HMZP J 5 A_NoBlocking
    HMZP K 5 A_Playsound ("FallingBodyGear", CHAN_BODY)
	HMZP L -1
    stop
  XDeath:
    TNT1 A 0
	TNT1 A 0 A_StopSound (1)
    TNT1 A 0 A_SpawnItemEx ("VgavnonahCore", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    HMZP M 5
    HMZP N 5 A_XScream
    HMZP OP 3 A_NoBlocking
    HMZP QRST 2
    PGIB U -1
    Stop
  Raise:
    TNT1 A 0 
    TNT1 A 0 A_SpawnItemEx ("NanoResEffect", 0, 0, 15, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	HMZP LKJIH 5
   Goto See	
  Idle:
    HMZP AA 4 A_Wander
    HMZP A 0 A_Look
    HMZP BB 4 A_Wander
    HMZP A 0 A_Look
    HMZP CC 4 A_Wander
    HMZP A 0 A_Look
    HMZP DD 4 A_Wander
    HMZP A 0 A_Look
    loop
  }
}




	Actor Tased : CustomInventory
{
  Inventory.Maxamount 1
  +Inventory.Alwayspickup
  +Inventory.Quiet
  +Inventory.Undroppable
  +NOTIMEFREEZE
  States
  {
  Pickup:
    TNT1 A 0
	TNT1 A 0 a_setangle(angle+random(-3, 3))
	TNT1 A 0 a_setpitch(pitch+random(-3, 3))
	TNT1 A 2
	Stop
  }
} 



	Actor ElectricArc
		{
		 +NOINTERACTION
		 +THRUACTORS
		 +DONTSPLASH
		 +CLIENTSIDEONLY
		 +BLOODLESSIMPACT
		 -BLOODSPLATTER
		 Renderstyle Add
		 Alpha 0.3
		 Scale 0.055
		 States
			 {
			  Spawn:
				 TNT1 A 0
				 TNT1 A 0 A_SpawnItemEx ("LightningFlare", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)	
				 EARC ABC 1 BRIGHT A_SpawnItemEx ("LightningFlare", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION) 
			  Stop	 
			 }
		}
		
	Actor ShockContent
		{
	   Radius 2
	   Height 2
	   PROJECTILE
	   Speed 60
		    States
				{
				 Spawn:
					TNT1 A 10 
					TNT1 A 0 A_RadiusGive ("Tased", 30, RGF_PLAYERS)
					TNT1 A 1
				 Stop
				}
		}		
	
	
	Actor DONTBLEEDFUCKER
		{
		+BLOODLESSIMPACT
		-BLOODSPLATTER
		 States
			{
			Spawn:
				TNT1 A 1 A_RadiusGive ("Tased", 30, RGF_PLAYERS)
			Stop
			}
		}
	
