Actor InsanityTechImp : Imp
{
  Health 450
  PainChance 60
  PainChance "SoulToxic", 20
  PainChance "FatFlamer", 20
  PainChance "FiendFire", 20
  PainChance "Explosion", 90
  +DONTHARMCLASS
  +DONTHARMSPECIES
  +DONTHURTSPECIES
  +MISSILEEVENMORE
  +FASTMELEE
  MeleeDamage 6
  Damagefactor "Normal", 0.65
  DamageFactor "Cyber10K", 0.5
  DamageFactor "ImpComet", 0.0
  DamageFactor "PDTBFG", 0.6
  DamageFactor "PDTBFGTracer", 0.9
  DropItem "LifeEssence" 125
  DropItem "ArmorBonusMax" 125
  DropItem "DemonAmmo" 128 60
  SeeSound "cimp/sight"
  PainSound "cimp/pain"
  DeathSound "cimp/death"
  ActiveSound "cimp/active"
  Obituary "%o was driven mad by an Insanity-Tech Imp."
  HitObituary "%o was tazed by an Insanity-Tech Imp."
  Tag "\c[i7]Insanity-Tech Imp\c-"
  States
  {
  Spawn:
	IIMP A 10 A_Look
	Loop
  See:
	TNT1 A 0 A_Jump(87,"Rush")
	TNT1 A 0 A_ChangeFlag(NoDropOff,1)
	IIMP AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	IIMP CCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	Loop      
  Melee: 
	IIMP EF 5 A_FaceTarget
	IIMP G 4 Bright A_MeleeAttack
	IIMP FE 5 A_FaceTarget
	Goto See
  Rush:
	IIMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostA",0,0,0,0,0,0,0,128)
	IIMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostA",0,0,0,0,0,0,0,128)
	IIMP A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostB",0,0,0,0,0,0,0,128)
	IIMP B 2 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostB",0,0,0,0,0,0,0,128)
	IIMP C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostC",0,0,0,0,0,0,0,128)
	IIMP C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostC",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	IIMP D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostD",0,0,0,0,0,0,0,128)
	IIMP D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneTimpghostD",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_Jump(87,"See")	
	Loop
  Missile:
	TNT1 A 0 A_JumpIfCloser(250,"Lunge")
	TNT1 A 0 A_Jump(128,"Railgun")
	TNT1 A 0 A_jump(80,"BFG10k","BFG15k")
	IIMP EF 8 A_FaceTarget
	TNT1 A 0 Bright A_PlaySound("monsters/fusionfire")
	IIMP G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))
	IIMP F 4 a_facetarget
	TNT1 A 0 Bright A_PlaySound("monsters/fusionfire")
	IIMP G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	TNT1 A 0 A_Jump(72,"See")
	IIMP F 4 a_facetarget
	TNT1 A 0 Bright A_PlaySound("monsters/fusionfire")
	IIMP G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	TNT1 A 0 A_Jump(90,"See")
	IIMP F 4 a_facetarget
	TNT1 A 0 Bright A_PlaySound("monsters/fusionfire")
	IIMP G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	Goto See
  Railgun:
	TNT1 A 0 A_changeflag("Nopain",1)
	IIMP E 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	IIMP FF 8 A_FaceTarget
	TNT1 A 0 A_PlaySound("railgunner/chargedshot")
	TNT1 A 0 A_CustomMissile("RailgunImpactRed",30)
	IIMP G 5 Bright A_CustomRailgun(Random(15, 25), 0, "Red", None, RGF_NOPIERCING, 1)
	IIMP F 20
	TNT1 A 0 A_changeflag("Nopain",0)
	Goto see
  BFG10k:
	IIMP E 8 A_PlaySound("weapons/charge15k")
	IIMP FFFF 8 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	IIMP F 5 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	IIMP F 5 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	Goto see
  BFG15k:
	IIMP E 8 A_PlaySound("weapons/charge15k")
	IIMP FFFF 8 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	IIMP F 5 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	IIMP F 5 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	IIMP F 5 A_FaceTarget
	IIMP G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	Goto see
  Lunge:
	TNT1 A 0 A_JumpIfCloser(200,1)
	Goto See
	TNT1 A 0 A_PlaySound("weapons/fistwiff")
	IIMP EF 7 A_FaceTarget
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,1)
	TNT1 A 0 ThrustThingZ(0,25,0,1)
	IIMP G 2 A_Recoil(-30)
	IIMP G 3 A_CustomMissile("PinkyLunge",18,0,0,CMF_AIMDIRECTION)
	IIMP G 6 
	IIMP F 2 A_ScaleVelocity(0.2)
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,0)
	IIMP E 1 A_ScaleVelocity(0)
	Goto See
  Pain:
	IIMP H 2
	IIMP 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
    IIMP HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItem("CerebralImpSmokeSpawner",0,0,0,0)
	TNT1 A 0 A_Playsound("weapons/bfg95explode",7)
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveRed", 0, 0, 32, 0, 0, 0, 0, 128)
    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")
	TNT1 A 0 A_CustomMissile("InsaneImpArm",32,-10,270)
	IIMP N 3 A_Explode
	IIMP O 3 A_XScream
	IIMP P 3
	IIMP T 3 A_Fall
	IIMP U 3
	IIMP U -1
	Stop
    Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	IIMP MLKJI 6
	Goto See
  }
}

//Projectiles
Actor Implaser : SpecOpsLaser
{
damagetype "ImpComet"
}

Actor Imp10k : Red10KProjectile
{
Obituary "%o was driven mad by an Insanity-Tech Imp."
damagetype "ImpComet"
States
{
Death:
XDeath:  
   TNT1 A 0
   TNT1 A 1 A_SpawnItem("ImpRed10KEx")
   Stop
   }
}

ACTOR ImpRed10KEx : Red10KEx
{
damagetype "ImpComet"
}

//Afterimages
ACTOR InsaneTimpghostA
{
Scale 1.05
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
Spawn:
  IIMP A 2 A_FadeOut(0.18)
  Loop
  }
}

ACTOR InsaneTimpghostB : InsaneTimpghostA
{   
States
{
Spawn:
  IIMP B 2 A_FadeOut(0.18)
  Loop
  }
}

ACTOR InsaneTimpghostC : InsaneTimpghostA
{   
States
{
Spawn:
  IIMP C 2 A_FadeOut(0.18)
  Loop
  }
}

ACTOR InsaneTimpghostD : InsaneTimpghostA
{   
States
{
Spawn:
  IIMP D 2 A_FadeOut(0.18)
  Loop
  }
}

ACTOR InsaneImpArm
{
  Radius 8
  Height 8
  Speed 4
  +DOOMBOUNCE
  +DROPOFF
  +MISSILE
  States
  {
  Spawn:
	ITIM ABCDE 3
	Loop
  Death:
	ITIM F -1
	Loop
	}
} 