actor GoreImp
{
  obituary "%o was taken down by a Gore Imp."
  hitobituary "%o was gored by a Gore Imp."
  health 125
  radius 20
  height 56
  mass 100
  speed 11
  painchance 80
  PainChance "SoulToxic", 60
  PainChance "FatFlamer", 60
  PainChance "FiendFire", 60
  DamageFactor "ImpComet", 0.0
  DropItem "LifeEssence" 125
  DropItem "ArmorBonusMax" 125
  DropItem "DemonAmmo" 70 60
  Tag "Gore Imp"
  Species "Imps"
  seesound "GoreImp/Sight"
  painsound "GoreImp/Pain"
  deathsound "GoreImp/Death"
  activesound "GoreImp/Active"
  MeleeSound "imps/melee"
  MONSTER
  +FLOORCLIP
  +MissileMore
  +QUICKTORETALIATE
  states
  {
  Spawn:
    GRIM A 5 A_Look
    loop
  See:
  	TNT1 A 0 A_Jump(46,"Evade")
  	TNT1 A 0 A_Jump(46,"Rush")
    GRIM AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	GRIM CCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    loop
  Rush:
	GRIM AABB 1 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	GRIM CCDD 1 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_Jump(24, "See")
	loop
  Evade:
	TNT1 A 0 A_Jump(128,7)
	TNT1 A 0 ThrustThing(Angle*256/360+64,16,0,0)
	GRIM AAAA 3 A_Chase
	TNT1 A 0 A_Stop
	Goto See
	TNT1 A 0 ThrustThing(Angle*256/360+192,16,0,0)
	GRIM AAAA 3 A_Chase
	TNT1 A 0 A_Stop
	TNT1 A 0 A_JumpIfTargetInLOS("Missile")
	Goto See
  Melee: 
    GRIM EF 5 A_FaceTarget
    GRIM G 4 A_CustomMeleeAttack(40, "imps/melee")
	GRIM FE 5 A_FaceTarget
    Goto See 
  Missile:
	TNT1 A 0 A_JumpIfHealthLower(50, "Missile2")
	GRIM EF 4 A_FaceTarget
	GRIM G 3 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)
	GRIM VW 4 A_FaceTarget
	GRIM X 3 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)	
	TNT1 A 0 A_Jump(64, "Evade")
	GRIM EF 4 A_FaceTarget
	GRIM G 3 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)
	GRIM VW 4 A_FaceTarget
	GRIM X 3 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)	
	Goto See
  Missile2:
	GRIM EF 3 A_FaceTarget
	GRIM G 2 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)
	GRIM VW 3 A_FaceTarget
	GRIM X 2 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)	
	TNT1 A 0 A_Jump(64, "Evade")
	GRIM EF 3 A_FaceTarget
	GRIM G 2 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)
	GRIM VW 3 A_FaceTarget
	GRIM X 2 Bright A_CustomMissile("GoreImpBall", 34, 0, 0)	
	Goto See
  Pain:
    GRIM H 2 
    GRIM H 2 A_Pain
    goto See
  Death:
    GRIM J 8 A_Scream
    GRIM K 6
    GRIM L 6 A_Fall
    GRIM M -1
    Stop
  XDeath:
    GRIM N 3 
	GRIM O 3 A_XScream
	GRIM P 3 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	GRIM Q 3 A_Fall
	GRIM RST 3
	GRIM U -1
    Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	GRIM MLKJ 6
	Goto See
  }
}

ACTOR GoreImpBall : DoomImpBall
{
  FastSpeed 26
  Damagetype "ImpComet"
  Speed 18
  Decal DoomImpScorch
  Damage 5
  States
  {
	Spawn:	
        GRIB AB 1 Bright A_SpawnItemEx("GoreImpBallTrail",0,0,0,0,0,0,0,128,0)	
        Loop
    Death:
	    TNT1 A 0
	    TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AA 0 A_CustomMissile("Kaboom8", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
        GRIB CDE 3 Bright
        Stop
    }   
}

ACTOR GoreImpBallTrail : ImpBallTrail
{
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    GRI2 ABCDEF 1 A_FadeOut(0.1)
	Stop
    }
}
