ACTOR InsaneFusionImp : AnnihilatorImp
{
//Creator: Titanium
//Origin: Nexus Infinity
//Sprite: ICIM
//Title: "Insane Fusion Imp"
  Health 650
  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 "DemonicEnergy" 128 60
  DropItem "PlasmaEnergy" 256
  DropItem "GreaterPlasmaEnergy" 128
  DropItem "Railgun " 30 1
  DropItem "Explosive Shotgun" 60 1
  Obituary "%o got his ass kicked by an Insane Fusion Imp."
  HitObituary "%o was blah-blah'd by an Insane Fusion Imp."
  Tag "\c[i7]Insane Fusion Imp\c-"
  States
  {
  Spawn:
    ICIM A 10 A_Look
    Loop
  See:
	TNT1 A 0 A_Jump(87,"Rush")
	TNT1 A 0 A_ChangeFlag(NoDropOff,1)
    ICIM AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	ICIM CCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
    Loop
  Rush:
	ICIM A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostA",0,0,0,0,0,0,0,128)
	ICIM A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostA",0,0,0,0,0,0,0,128)
	ICIM A 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostB",0,0,0,0,0,0,0,128)
	ICIM B 2 A_Chase
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostB",0,0,0,0,0,0,0,128)
	ICIM C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostC",0,0,0,0,0,0,0,128)
	ICIM C 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostC",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_SpawnItem("HumanishStep",0,0,0,0)
	ICIM D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostD",0,0,0,0,0,0,0,128)
	ICIM D 2 A_Chase
	TNT1 A 0 A_SpawnItemEx("InsaneFusionImpGhostD",0,0,0,0,0,0,0,128)
	TNT1 A 0 A_Jump(87,"See")		
	Loop
  Melee: 
    ICIM EF 5 A_FaceTarget
    ICIM G 4 A_MeleeAttack
	ICIM FE 5 A_FaceTarget
    Goto See 
  Lunge:
	TNT1 A 0 A_Jump(101,"ASG")
	TNT1 A 0 A_JumpIfCloser(300,1)
	Goto See
	TNT1 A 0 A_PlaySound("weapons/fistwiff")
	ICIM EF 7 A_FaceTarget
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,1)
	TNT1 A 0 ThrustThingZ(0,25,0,1)
	ICIM G 2 A_Recoil(-30)
	ICIM G 3 A_CustomMissile("PinkyLunge",18,0,0,CMF_AIMDIRECTION)
	ICIM G 6 
	ICIM F 2 A_ScaleVelocity(0.2)
	TNT1 A 0 A_ChangeFlag(SLIDESONWALLS,0)
	ICIM E 1 A_ScaleVelocity(0)
	Goto See
  Missile:
	TNT1 A 0 A_JumpIfCloser(250,"Lunge")
	TNT1 A 0 A_JumpIfCloser(400,"ASG")
	TNT1 A 0 A_Jump(128,"Railgun","BFG15K2")
	TNT1 A 0 A_jump(80,"RailgunV2","BFG10K","BFG15K","Homing")
	ICIM EF 8 A_FaceTarget
	TNT1 A 0 A_PlaySound("monsters/fusionfire")
	ICIM G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))
	ICIM F 4 a_facetarget
	TNT1 A 0 A_PlaySound("monsters/fusionfire")
	ICIM G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	TNT1 A 0 A_Jump(72,"See")
	ICIM F 4 a_facetarget
	TNT1 A 0 A_PlaySound("monsters/fusionfire")
	ICIM G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	TNT1 A 0 A_Jump(90,"See")
	ICIM F 4 a_facetarget
	TNT1 A 0 A_PlaySound("monsters/fusionfire")
	ICIM G 3 Bright A_CustomMissile("Implaser",32,0,frandom(1,-1))  
	Goto See
  Railgun:
	TNT1 A 0 A_changeflag(NOPAIN,1)
	ICIM E 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	ICIM FF 8 A_FaceTarget
	TNT1 A 0 A_PlaySound("railgunner/chargedshot")
	TNT1 A 0 A_CustomMissile("RailgunImpactRed",30)
	ICIM G 5 Bright A_CustomRailgun(Random(15, 25), 0, "Red", None, RGF_NOPIERCING|RGF_SILENT,1,0,"DarkHellRazerRailPuff",0,0,0,0,1,1,"RedNewRailgunTrail")
	ICIM F 20
	TNT1 A 0 A_changeflag(NOPAIN,0)
	Goto See
  RailgunV2:
	TNT1 A 0 A_Changeflag(NOPAIN,1)
	TNT1 A 0 A_PlaySound("weapons/rgcharge")
	ICIM EEWWW 5 A_FaceTarget
	ICIM "X" 5 A_CustomMissile("ImpHeavyRail",30,0,0)
	ICIM WE 10
	TNT1 A 0 A_Changeflag(NOPAIN,0)
	Goto See
  BFG10K:
	ICIM E 8 A_PlaySound("weapons/charge15k")
	ICIM FFFF 8 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	ICIM F 5 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	ICIM F 5 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("Imp10K",32,0,frandom(1,-1))
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire")
	Goto see
  BFG15K:
	ICIM E 8 A_PlaySound("weapons/charge15k")
	ICIM FFFF 8 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	ICIM F 5 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	ICIM F 5 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	ICIM F 5 A_FaceTarget
	ICIM G 2 Bright A_CustomMissile("CBImpBFG15K",32,0,frandom(1,-1))
	Goto see
  BFG15K2:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    ICIM EW 7 A_FaceTarget
    ICIM "X" 10 BRIGHT A_CustomMissile("CBImpBFG15K",32,10,Random(2,-2)) 
	ICIM W 5
	ICIM W 6 A_FaceTarget
    ICIM "X" 10 BRIGHT A_CustomMissile("CBImpBFG15K",32,-10,Random(2,-2)) 
	ICIM W 5
	TNT1 A 0 A_Jump(32,"Homing")
    Goto See
  Homing:
	TNT1 A 0 A_PlaySound("weapons/charge15k")
    ICIM EW 7 A_FaceTarget
    ICIM "X" 10 BRIGHT A_CustomMissile("InsaneimpHoming15K",32,-10,Random(2,-2))
	ICIM W 15
	ICIM W 6 A_FaceTarget
    ICIM "X" 10 BRIGHT A_CustomMissile("InsaneimpHoming15K",32,-10,Random(2,-2))
	ICIM W 5
    Goto See
  ASG:
    ICIM E 8 A_FaceTarget
	ICIM W 8 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, "ModdedBulletPuff")
	ICIM "X" 2 Bright A_PlaySoundEx("weapons/ExplosiveSG/fire","Weapon")
    TNT1 A 0 A_Jump(64,"Pause")
    TNT1 A 0 A_SpidRefire
	Goto ASG+1
  Pause:
	ICIM E 10
	Goto See
  Pain:
    ICIM H 2
    ICIM H 2 A_Pain
    TNT1 A 0 A_Jump(120,"Missile")
	Goto See
  Death:
	TNT1 A 0 A_Jump(100,"Death2")
    ICIM I 8
    ICIM J 8 A_Scream
    ICIM K 6
    ICIM L 6 A_NoBlocking
	ICIM M 0 A_SpawnItem("BodyCrash",0,0,0,0)
    ICIM M -1
    Stop
  Death2:
	TNT1 A 0 A_PlaySound("CerebralImp/ChargeDeath")
	TNT1 A 0 A_FaceTarget
	ICIM HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 Bright 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")
    ICIM N 2
	TNT1 A 0 A_CustomMissile("InsaneImpArm",32,-10,270)
	TNT1 A 0 A_CustomMissile("IRocketarm2",30,10,93)
	TNT1 A 0 A_CustomMissile("Imp10k",30,0,0,2,-90)
	TNT1 AAAAAAA 0 A_CustomMissile("Imp10k",30,0,random(0,360),2,random(0,360))
    ICIM O 2 Bright A_XScream
	ICIM P 2 Bright A_Explode(80,100)
    ICIM Q 2 Bright A_NoBlocking
    ICIM RSTU 2
    ICIM V -1
	Stop
  XDeath:
	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")
	ICIM N 2 Bright
	TNT1 A 0 A_CustomMissile("IRocketarm2",30,10,93)
	TNT1 A 0 A_CustomMissile("InsaneImpArm",32,-10,270)
	TNT1 A 0 A_CustomMissile("Imp10k",30,0,0,2,-90)
	TNT1 AAAAAAA 0 A_CustomMissile("Imp10k",30,0,random(0,360),2,random(0,360))
    ICIM O 2 Bright A_XScream
	ICIM P 2 Bright A_Explode(80,100)
    ICIM Q 2 Bright A_NoBlocking
    ICIM RSTU 2
    ICIM V -1
    Stop
	}
}

ACTOR ImpHeavyRail : CardinalRail
{
DamageType "ImpComet"
MissileType "CardinalRailTrail"
States
{
Spawn:
    DCRP A 1 Bright
    Loop
Death:
    TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("BFGShockwaveRed", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AAA 0 A_CustomMissile("Kaboom14", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 1 A_SpawnItem("RailgunImpactEffectRed")
	Stop
	}
}

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

ACTOR InsaneFusionImpGhostB : InsaneFusionImpGhostA
{   
States
{
Spawn:
    ICIM B 2 A_FadeOut(0.18)
    Loop
    }
}

ACTOR InsaneFusionImpGhostC : InsaneFusionImpGhostA
{   
States
{
Spawn:
    ICIM C 2 A_FadeOut(0.18)
    Loop
    }
}

ACTOR InsaneFusionImpGhostD : InsaneFusionImpGhostA
{   
States
{
Spawn:
    ICIM D 2 A_FadeOut(0.18)
    Loop
    }
}