actor GoreImp : Imp
{
  Obituary "%o was taken down by a Gore Imp."
  HitObituary "%o was gored by a Gore Imp."
  Health 90
  Speed 11
  Painchance 80
  DropItem "LifeEssence" 125
  DropItem "ArmorBonusMax" 125
  DropItem "DustMana" 70 30
  Seesound "GoreImp/Sight"
  Painsound "GoreImp/Pain"
  Deathsound "GoreImp/Death"
  Activesound "GoreImp/Active"
  +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 
  Lunge:
	GRIM AA 3 A_FaceTarget
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,1)
	TNT1 A 0 ThrustThingZ(0,20,0,1)
	GRIM F 2 A_Recoil(-30)
	GRIM F 3 A_CustomMissile("GoreImpLunge",18,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_PlaySound("imps/melee")
	GRIM F 6
	GRIM F 2 A_ScaleVelocity(0.2)
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,0)
	GRIM F 1 A_ScaleVelocity(0)
	Goto See
  Missile:
	TNT1 A 0 A_JumpIfCloser(250,"Lunge")
	TNT1 A 0 A_JumpIfHealthLower(30, "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 GoreImpLunge : PinkyLunge 
{
  Species "Imps"
}

ACTOR GoreImpBall : DoomImpBall
{
  FastSpeed 26
  Damagetype "ImpComet"
  Speed 18
  Decal DoomImpScorch
  Damage 4
  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
  }
}
