ACTOR InsaneAnnihilatorImp : AnnihilatorImp
{
  Health 450
  Damagefactor "Normal", 0.65
  DropItem "LifeEssence" 256
  DropItem "ArmorBonusMax" 256
  DropItem "BossLifeEssence" 128 25
  DropItem "BossArmorBonusMax" 128 1
  DropItem "BulletMag" 256 5
  DropItem "BulletBox" 128
  DropItem "Missile" 256 5
  DropItem "MissileBox" 128 10
  DropItem "NewShell" 256 4
  DropItem "NewShellBox" 128
  DropItem "Explosive Minigun" 70 1
  DropItem "Explosive Shotgun" 60 1
  Obituary "%o was put down by an Insane Annihilator Imp."
  HitObituary "%o was smacked by an Insane Annihilator Imp's cannon."
  Tag "\c[i7]Insane Annihilator Imp\c-"
  States
  {
  Spawn:
    IAMP A 10 A_Look
	IAMI A 10 A_Look
    Loop
  See:
	TNT1 A 0 A_Jump(87,"Rush")
	TNT1 A 0 A_ChangeFlag(NoDropOff,1)
    IAMP AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	IAMP CCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    Loop
  Rush:
	IAMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostA",0,0,0,0,0,0,0,128)
	IAMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostA",0,0,0,0,0,0,0,128)
	IAMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostB",0,0,0,0,0,0,0,128)
	IAMP B 2 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostB",0,0,0,0,0,0,0,128)
	IAMP C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostC",0,0,0,0,0,0,0,128)
	IAMP C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostC",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	IAMP D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostD",0,0,0,0,0,0,0,128)
	IAMP D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneAimpghostD",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_Jump(87,"See")		
	Loop
  Melee: 
    IAMP EF 5 A_FaceTarget
    IAMP G 4 A_MeleeAttack
	IAMP FE 5 A_FaceTarget
    Goto See 
  Lunge:
	TNT1 A 0 A_JumpIfCloser(300,1)
	Goto See
	TNT1 A 0 A_PlaySound("weapons/fistwiff")
	IAMP EF 7 A_FaceTarget
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,1)
	TNT1 A 0 ThrustThingZ(0,25,0,1)
	IAMP G 2 A_Recoil(-30)
	IAMP G 3 A_CustomMissile("PinkyLunge",18,0,0,CMF_AIMDIRECTION)
	IAMP G 6 
	IAMP F 2 A_ScaleVelocity(0.2)
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,0)
	IAMP E 1 A_ScaleVelocity(0)
	Goto See
  Missile:
    TNT1 A 0 A_Jump(64,"ARifle")
    TNT1 A 0 A_JumpIfCloser(250,"Lunge")
    TNT1 A 0 A_JumpIfCloser(300,"ASG")
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    IAMP EE 7 A_FaceTarget
    IAMP W 10 BRIGHT A_CustomMissile("CBImpBFG15K",32,10,Random(2,-2)) 
	IAMP F 5
	IAMP G 6 A_FaceTarget
    IAMP V 10 BRIGHT A_CustomMissile("CBImpBFG15K",32,-10,Random(2,-2)) 
	IAMP G 5
	TNT1 A 0 A_Jump(32,"Homing")
    Goto See
   Homing:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    IAMP EE 7 A_FaceTarget
    IAMP W 10 BRIGHT A_CustomMissile("InsaneimpHoming15K",32,10,Random(2,-2))
	IAMP F 15
	IAMP G 6 A_FaceTarget
    IAMP V 10 BRIGHT A_CustomMissile("InsaneimpHoming15K",32,-10,Random(2,-2))
	IAMP G 5
    Goto See
  ARifle:
    IAMP G 10 A_FaceTarget
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_SpawnItemEx("Orangeshellcasing", 0, -12, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
    IAMP V 2 Bright A_CustomMissile("InsaneimpTracer",32,-10,Random(-6,6))
    IAMP G 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_SpawnItemEx("Orangeshellcasing", 0, -12, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
    IAMP V 2 Bright A_CustomMissile("InsaneimpTracer",32,-10,Random(-6,6))
    IAMP G 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("sentient/fire")
    TNT1 A 0 A_SpawnItemEx("Orangeshellcasing", 0, -12, 36, Random(2, 6), 0, Random(1, 3), Random(-80, -90), 128)
    IAMP V 2 Bright A_CustomMissile("InsaneimpTracer",32,-10,Random(-6,6))
    IAMP G 10 A_FaceTarget
	TNT1 A 0 A_Jump(64,"Pause2")
    TNT1 A 0 A_CPosRefire
    Goto ARifle+1
  ASG:
    IAMP E 8 A_FaceTarget
	IAMP E 10 A_FaceTarget
	TNT1 A 0 A_SpawnItemEx("Orangeshellcasing", 0, -12, 36, Random(2, 6), 0, Random(1, 3), Random(80, 90), 128)
	TNT1 AAA 0 A_CustomMissile("InsaneimpTracer",32,10,Random(-7,7))
	TNT1 A 0 A_CustomBulletAttack(16.5, 12.3, 4, Random(1,5)*3, "AnniImpPuff")
	IAMP W 2 Bright A_PlaySoundEx("weapons/ExplosiveSG/fire","Weapon")
    TNT1 A 0 A_Jump(64,"Pause")
    TNT1 A 0 A_SpidRefire
	Goto ASG+1
  Pause:
	IAMP E 10
	Goto See
  Pause2:
	IAMP G 10
	Goto See
  Pain:
    IAMP H 2
    IAMP H 2 A_Pain
    TNT1 A 0 A_Jump(80,"missile")
	Goto See
Death:
XDeath:
	TNT1 A 0 A_PlaySound("CerebralImp/ChargeDeath")
	TNT1 A 0 A_FaceTarget
	IAMP HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItem("CerebralImpSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Playsound("weapons/bfg95explode",7)
	TNT1 A 0 A_SpawnItemEx("RedParticleSpawner", 0, 0, 32, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom14", 32, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("GibbedGenerator")
    IAMP N 2
	TNT1 A 0 A_custommissile("IRocketarm2",30,-10,270)
	TNT1 A 0 A_custommissile("IRocketarm",30,10,93)
	TNT1 A 0 A_SpawnItemEx("CyberImpDeathRocket",0,0,28)
    IAMP O 2 A_XScream
	IAMP P 2 A_Explode(80,100)
    IAMP Q 2 A_NoBlocking
    IAMP RST 2
    IAMP U -1
	Stop
	}
}

Actor InsaneimpHoming15K : Cybruiser15k
{
damagetype "ImpComet"
+SeekerMissile
States
{
Spawn:
	TNT1 A 0 A_SeekerMissile(15,8,SMF_LOOK)
    TNT1 AA 0 A_SpawnItemEx("ProjectileTrailParticleOrange2",FRandom(-8,8),FRandom(-8,8),FRandom(-8,8),FRandom(-1,1),FRandom(-1,1),FRandom(-1,1),FRandom(-20,20),128)
    CFS1 A 4 Bright
	TNT1 A 0 A_SeekerMissile(15,8,SMF_LOOK)
    TNT1 AA 0 A_SpawnItemEx("ProjectileTrailParticleOrange2",FRandom(-8,8),FRandom(-8,8),FRandom(-8,8),FRandom(-1,1),FRandom(-1,1),FRandom(-1,1),FRandom(-20,20),128)
	CFS1 B 4 Bright
    Loop
	}
}

Actor InsaneimpTracer : BabySentientExplosiveTracer
{
damagetype "ImpComet"
Decal DoomImpScorch
}

//Gore stuff
ACTOR IRocketArm
{
	Radius 12
	Height 10
	Speed 4
	+DOOMBOUNCE
	+DROPOFF
	+Missile
      States
	{
	Spawn:
     IIRM ABCD 3
     Loop
	Death:
	 iIRM E -1
	 Loop
	}
} 

ACTOR IRocketArm2
{
	Radius 12
	Height 10
	Speed 4
	+DOOMBOUNCE
	+DROPOFF
	+Missile
      States
	{
	Spawn:
     IIR2 ABCD 3
     Loop
	Death:
	 IIR2 E -1
	 Loop
	}
} 

//After images
ACTOR InsaneAimpghostA
{
Scale 1.05
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
Spawn:
    IAMP A 2 A_FadeOut(0.18)
    Loop
    }
}

ACTOR InsaneAimpghostB : InsaneAimpghostA
{   
States
{
Spawn:
    IAMP B 2 A_FadeOut(0.18)
    Loop
    }
}

ACTOR InsaneAimpghostC : InsaneAimpghostA
{   
States
{
Spawn:
    IAMP C 2 A_FadeOut(0.18)
    Loop
    }
}

ACTOR InsaneAimpghostD : InsaneAimpghostA
{   
States
{
Spawn:
    IAMP D 2 A_FadeOut(0.18)
    Loop
    }
}