//////////////////////
// BUSTER ROD BOSS  //
//////////////////////

actor BusterRodGBoss
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
speed 0
Scale 2.5
Obituary "%o was whacked by \cgBuster Rod G\c-."
Translation "192:192=218:218", "198:198=221:221"
Health 1000
mass 99999999
damagefactor "Buster", 2.3
damagefactor "NeedleCannon", 2.3
damagefactor "SilverTomahawk", 2.3
damagefactor "BusterRod", 0.0
painchance 256
+REFLECTIVE
Speed 0
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
+LOOKALLAROUND
+NODAMAGE
gravity 1.5
States
{
Spawn:
BRGZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
BRGZ A -1
loop
Seek:
BRGZ A 10
BRGZ A 2 A_Look
loop
SeekFast:
BRGZ A 1 A_LookEx(0, 0, 0, 0, 360, "Choose")
loop
Intro:
BRGZ UVUVUVUVUVUV 3 
BRGZ W 4
Goto Spawn2
See:
BRGZ A 0 A_Stop
BRGZ A 0 A_ChangeFlag("NOPAIN",0)
BRGZ A 0 A_ChangeFlag("REFLECTIVE",1)
BRGZ A 0 A_ChangeFlag("NODAMAGE",1)
BRGZ A 12
Choose:
BRGZ A 0 A_Stop
BRGZ A 0 A_FaceTarget
BRGZ A 0 A_ChangeFlag("NOPAIN",1)
BRGZ A 0 A_ChangeFlag("REFLECTIVE",0)
BRGZ A 0 A_ChangeFlag("NODAMAGE",0)
BRGZ A 0 A_Jump(230,"Strike", "LeapStrike", "Leap")
Goto Illusion
Leap:
BRGZ I 8 A_ChangeVelocity(20,random(-15,15),20,CVF_RELATIVE|CVF_REPLACE)
Goto Falling2
Strike:
BRGZ J 0 A_JumpIfCloser(300,"StrikeOk")
BRGZ A 0 A_Jump(230, "LeapStrike", "Leap")
Goto Illusion
StrikeOk:
BRGZ J 4 A_FaceTarget
BRGZ K 0 A_CustomMissile("BusterRodRod",32,0,0,2,0)
BRGZ K 20 A_FaceTarget
BRGZ J 8
Goto Seek
LeapStrike:
BRGZ I 8 A_ChangeVelocity(25,random(-15,15),20,CVF_RELATIVE|CVF_REPLACE)
LeapStrikeOut:
BRGZ I 0 A_Stop
BRGZ I 0 A_ChangeFlag("NOGRAVITY",1)
BRGZ J 0 A_FaceTarget
BRGZ K 0 A_CustomMissile("BusterRodRod",32,0,0,0,0)
BRGZ M 20 A_FaceTarget
BRGZ L 15
BRGZ L 0 A_ChangeFlag("NOGRAVITY",0)
Goto Falling
Falling:
BRGZ I 0 A_SpawnItemEx("BusterRodBarrier")
BRGZ II 1 A_Jumpif(floorz==z, "SeekFast")
loop
Falling2:
BRGZ I 0 A_SpawnItemEx("BusterRodBarrier")
BRGZ II 1 A_Jumpif(floorz==z, "SeekFast")
loop
Illusion:
BRGZ I 0 ACS_Execute(5,0,21)
BRGZ A 4 A_FaceTarget
BRGZ I 0 A_ChangeVelocity(30,0,25,CVF_RELATIVE|CVF_REPLACE)
LeapMiddle:
BRGZ I 1 //A_JumpIf(x,"IllusionScatter")
loop
IllusionScatter:
BRGZ I 0 A_Stop
BRGZ A 0 A_PlaySoundEx("misc/brgillusion","Voice",0,1)
BRGZ I 0 A_SetAngle(random(0,360))
BRGZ I 0 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,45)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,90)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,135)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,180)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,-90)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,-45)
BRGZ I 0 A_SpawnItemEx("BusterRodIllusion",0,0,0,25,0,0,-135)
IllusionFall:
BRGZ I 1 A_Jumpif(floorz==z, "IllusionLand")
loop
IllusionLand:
BRGZ I 0 A_SpawnItemEx("BusterRodBarrier")
BRGZ A 0 A_Stop
BRGZ I 0 A_SetAngle(180+angle)
BRGZ A 130
BRGZ J 0 A_FaceTarget
BRGZ I 3 A_ChangeVelocity(45,0,15,CVF_RELATIVE|CVF_REPLACE)
Falling4:
BRGZ I 0 A_JumpIfCloser(256,"LeapStrikeOut")
BRGZ I 1 A_Jumpif(floorz==z, "Seek")
loop
Pain:
BRGZ F 0 A_PlaySoundEx("item/protoreflect","Item")
BRGZ F 0 A_FaceTarget
BRGZ FGFGFGFGFG 3 A_SpawnItemEx("BusterRodBarrier")
Goto See
Death:
KING H 0 A_GiveToTarget("NoDamage",1)
BRGZ H 40
BRGZ H 0 ACS_Execute(49,0)
BRGZ A 40 A_FaceTarget
BRGZ A 0 A_SpawnItemEx("BusterRodTeleport")
TNT1 A -1
stop
}
}

actor BusterRodTeleport
{
Translation "192:192=218:218", "198:198=221:221"
+NOINTERACTION
-SOLID
scale 2.5
states
{
	Spawn:
	TFOG A 0
	TFOG A 0 A_PlaySoundEx("misc/teleportout", "Voice", 0, 1)
	TFOG B 0 A_ChangeFlag("NOGRAVITY",1)
	TFOG BBBAAACCC 1
	TFOG A 65 A_ChangeVelocity(0,0,13,CVF_RELATIVE|CVF_REPLACE)
	stop
}
}

actor BusterRodIllusion
{
health 1
alpha 0.95
renderstyle translucent
scale 2.5
gravity 1.5
Height 56
Radius 40
mass 999999
+SHOOTABLE
-SOLID
Translation "192:192=218:218", "198:198=221:221"
States
{
Spawn:
BRGZ I 1 A_Jumpif(floorz==z, "IllusionLand")
loop
IllusionLand:
BRGZ I 0 A_SpawnItemEx("BusterRodBarrier")
BRGZ I 0 A_Stop
BRGZ I 0 A_SetAngle(180+angle)
BRGZ A 130
Death:
BRGZ A 1 A_FadeOut(0.06)
loop
}
}

actor BusterRodBarrier
{
Obituary "%o was whacked by \cgBuster Rod G\c-."
PROJECTILE
DamageType "Misc"
Height 10
Radius 10
renderstyle none
//Scale 2.5
States
{
Spawn:
KINP EE 1 A_Explode(5,100,0)
stop
}
}

actor BusterRodRod
{
PROJECTILE
+DONTREFLECT
scale 2.5
speed 40
Damagetype "BusterRod"
+NOINTERACTION
Damage (5)
var int user_count;
States
{
Spawn:
BRGZ P 0
BRGZ P 0 A_PlaySoundEx("misc/brgstaff",0)
BRGZ P 1 Thing_ChangeTID(0, 8174)
BRGZ POOPPOOPPOO 1 A_SpawnItemEx("BusterRodPart",0,0,0,-momx/4,-momy/4,-momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)//A_CustomMissile("BusterRodPart",0,0,0,0,0)
BRGZ P 1 A_ScaleVelocity(-1.0)
Back:
BRGZ PP 1 //A_SpawnItemEx("BusterRodPart",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
BackLoop:
BRGZ P 0 A_SetUserVar("user_count", user_count + 1)//A_GiveInventory("CutterFlag", 1)
BRGZ PP 1 //A_SpawnItemEx("BusterRodPart",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
BRGZ P 0 A_JumpIfCloser(32, "Death")
BRGZ OO 1 //A_SpawnItemEx("BusterRodPart",0,0,0,momx/4,momy/4,momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
BRGZ O 0 A_JumpIfCloser(32, "Death")
BRGZ O 0 A_JumpIf(user_count==6, "Death")//A_JumpIfInventory("CutterFlag", 6, "Death")
loop
Death:
TNT1 A 1 A_Stop
stop
}
}

actor BusterRodPart
{
scale 2.5
speed 32
damage 0
+DONTREFLECT
PROJECTILE
+NOINTERACTION
Damagetype "BusterRod"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfCloser(32, "Death")
TNT1 A 0 A_JumpIfCloser(1000, "Ok")
Goto Death
Ok:
TNT1 A 0 A_SpawnItemEx("BusterRodPart",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("BusterRodPartDamager")
BRGZ N 1 A_Stop
Animate:
BRGZ N 1 A_JumpIf(CallACS("BusterRodCheck")==1, "Death")
loop
Death:
TNT1 A 0 
stop
}
}

actor BusterRodPartDamager
{
PROJECTILE
damage (8)
Radius 18
Height 45
+LOOKALLAROUND
renderstyle none
Damagetype "BusterRod"
States
{
Spawn:
PLAY A 2
stop
Death:
PLAY A 0 A_Look
stop
See:
PLAY F 30 A_GiveToTarget("BusterRodDamageReduction",1)
stop
}
}

actor BusterRodDamageReduction : PowerProtection
{
damagefactor "BusterRod", 0.0
powerup.duration 10
}

//////////////////////
// MEGA WATER BOSS  //
//////////////////////

actor MegaWaterSBoss
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
Scale 2.5
Obituary "%o was skewered by \cqMega Water S\c-."
Translation "192:192=218:218", "198:198=116:116"
Health 1000
mass 99999999
damagefactor "Buster", 1.0
damagefactor "WaveBurner", 0.6
painchance 256
Speed 5
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
//+NODAMAGE
gravity 1.5
States
{
Spawn:
MWSZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
MWSZ A -1
loop
Intro:
MWSZ STUV 6
MWSZ V -1
stop
Seek:
MWSZ A 2 A_Look
loop
SeekFast:
MWSZ A 1 A_LookEx(0, 0, 0, 0, 360, "See")
loop
See:
MWSZ BBBBBCCCCCDDDDDEEEEEBBBBBCCCCCDDDDDEEEEE 1 A_Chase
Melee:
SelectAttack:
MWSZ S 4 A_FaceTarget
MWSZ I 0 A_ChangeVelocity(0,0,10,CVF_RELATIVE|CVF_REPLACE)
Spin:
MWSZ I 1 A_SetAngle(angle + 25)
MWSZ I 0 A_JumpIf(floorz==z,"SelectAttack")
loop
SelectAttack:
MWSZ I 1 A_JumpIfInventory("AtomicFireAmmo", 1 ,"Splash") 
MWSZ I 0 ACS_Execute(5,0,23)
Goto Harpoon
AboveWater:
MWSZ I 0 A_Jump(256,"Harpoon","Shield")
Goto Harpoon
Harpoon:
MWSZ F 0 A_PlaySoundEx("weapon/adapterreturn","Voice")
MWSZ F 18 A_FaceTarget
HarpoonFire:
MWSZ I 0 A_SpawnItemEx("HyperStormBarrier")
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon",45,-12,0)
MWSZ F 18 A_FaceTarget
MWSZ A 0 A_Jump(128,"HarpoonFire")
Goto SeekFast
Splash:
MWSZ I 0 A_TakeInventory("AtomicFireAmmo", 1)
MWSZ I 0 A_SpawnItemEx("HyperStormBarrier")
MWSZ F 1 A_FaceTarget
MWSZ F 0 A_PlaySoundEx("weapon/rainflush","Voice")
MWSZ GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 1 A_CustomMissile("MegaWaterSplash",45,0,0,2,0)
MWSZ F 18// A_FaceTarget
Goto SeekFast
Shield:
MWSZ F 0 A_JumpIfInventory("BusterAmmo",1,"Harpoon")
MWSZ F 0 A_GiveInventory("BusterAmmo",1)
MWSZ F 0 A_ChangeFlag("INVULNERABLE",1)
MWSZ F 0 A_SpawnItemEx("MegaWaterShieldGiver")
MWSZ F 20 A_FaceTarget
Goto SeekFast
Death:
KING H 0 A_GiveToTarget("NoDamage",1)
MWSZ H 40
MWSZ H 0 ACS_Execute(49,0,1)
MWSZ A 40 A_FaceTarget
MWSZ A 0 A_SpawnItemEx("MegaWaterTeleport")
TNT1 A -1
stop
}
}

actor MegaWaterTeleport
{
Translation "192:192=218:218", "198:198=116:116"
+NOINTERACTION
-SOLID
scale 2.5
states
{
	Spawn:
	TFOG A 0
	TFOG A 0 A_PlaySoundEx("misc/teleportout", "Voice", 0, 1)
	TFOG B 0 A_ChangeFlag("NOGRAVITY",1)
	TFOG BBBAAACCC 1
	TFOG A 65 A_ChangeVelocity(0,0,13,CVF_RELATIVE|CVF_REPLACE)
	stop
}
}

actor MegaWaterShieldGiver
{
+NOINTERACTION
+NOGRAVITY
renderstyle none
States
{
Spawn:
PLAY A 0
PLAY A 0 A_GiveInventory("CutterFlag",35)
Shield:
PLAY AA 1 A_GiveToTarget("MegaWaterShieldInventory1",1)
PLAY AA 1 A_GiveToTarget("MegaWaterShieldInventory2",1)
PLAY A 0 A_TakeInventory("CutterFlag",1)
PLAY A 0 A_JumpIfInventory("CutterFlag",1,"Shield")
PLAY A 0 A_TakeFromTarget("BusterAmmo",999)
PLAY A 0 A_GiveToTarget("MegaWaterShieldDeactivate",1)
stop
}
}

actor MegaWaterShieldInventory1 : CustomInventory
{
states
{
Pickup:
PLAY A 0 A_SpawnItemEx("MegaWaterShieldFX1",0,0,-12)
stop
}
}

actor MegaWaterShieldInventory2 : CustomInventory
{
states
{
Pickup:
PLAY A 0 A_SpawnItemEx("MegaWaterShieldFX2",0,0,-12)
stop
}
}

actor MegaWaterShieldDeactivate : CustomInventory
{
states
{
Pickup:
PLAY A 0 A_ChangeFlag("INVULNERABLE",0)
stop
}
}

actor MegaWaterShieldFX1
{
Scale 2.5
renderstyle translucent
alpha 0.5
+MISSILE
+NOGRAVITY
+NOINTERACTION
damagetype "Misc"
States
{
Spawn:
MWSZ P 0
MWSZ P 2 A_Explode(5,100,0)
stop
}
}

actor MegaWaterShieldFX2 : MegaWaterShieldFX1
{
States
{
Spawn:
MWSZ Q 0
MWSZ Q 2// A_Explode(10,100,0)
stop
}
}

actor MegaWaterSplash
{
+MISSILE
-SOLID
+NOGRAVITY
+RIPPER
renderstyle translucent
alpha 0.8
scale 1.5
speed 60
States
{
Spawn:
MWSZ J 0
MWSZ J 0 A_SpawnItemEx("MegaWaterSplash",32,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
Splash:
MWSZ JJKKLL 1 A_LookEx(LOF_NOSOUNDCHECK,0,32,0,360,"See")//A_SpawnItemEx("BusterRodPart",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
See:
MWSZ J 0 ACS_Execute(5,0,22)
stop
Splash2:
MWSZ JJKKLL 1
loop
}
}

actor MegaWaterSplashLead : MegaWaterSplash
{
scale 2.5
}

actor MegaWaterSplashTrail
{
+NOGRAVITY
+MISSILE
renderstyle translucent
+RIPPER
alpha 0.8
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfCloser(32, "Death")
TNT1 A 0 A_JumpIfCloser(1000, "Ok")
Goto Death
Ok:
MWSZ J 1 A_SpawnItemEx("MegaWaterSplashTrail",0,0,0,-momx/4,-momy/4,-momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
stop
Death:
MWSZ A 0
stop
}
}

actor MegaWaterHarpoon
{
scale 2.5
damage 0
damagetype "Misc"
+NOINTERACTION
reactiontime 200
speed 30
States
{
Spawn:
MWSZ R 0 A_Explode(4,32,0)
MWSZ R 1 A_CountDown
loop
}
}

actor MegaWaterHarpoon2 : MegaWaterHarpoon
{
-NOINTERACTION
PROJECTILE
height 8
radius 8
damage (5)
States
{
Spawn:
MWSZ R -1
loop
}
}


actor M445
{
+LOOKALLAROUND
+NOGRAVITY
+FLOAT
MONSTER
-SOLID
obituary "%o was zapped by a M445\c-."
scale 2.5
height 52
radius 40
health 30
speed 7
damagefactor "Misc", 0.0
meleerange 64
meleedamage 5
painchance 256
states
{
Spawn:
M445 AB 4 A_look
loop
See:
M445 A 0 A_JumpIf(z>110,"Death2")
M445 AAAABBBB 1 A_Chase
loop
Melee:
M445 A 0 A_MeleeAttack
M445 ABABABABAB 4
Goto See
Pain:
MMFX B 0 A_PlaySound("misc/metdie")
Goto See
Death:
MMFX B 0 A_PlaySound("misc/metdie")
Death2:
MMFX B 0 A_ChangeFlag("FLOAT",0)
MMFX FGHI 3 A_Stop
stop
}
}

//////////////////////
// HYPER STORM BOSS //
//////////////////////

actor HyperStormHBoss
{
//$Category MM8BDM-Bosses
Height 56
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H\c-."
Translation "192:192=218:218", "198:198=76:76"
Health 2000
mass 99999999
damagefactor "Buster", 0.9
damagefactor "Met", 0.0
painchance 256
Speed 8
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
//+NODAMAGE
gravity 1.5
States
{
Spawn:
HSHZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
HSHZ F 0 ACS_Execute(5,0,25)
Spawn3:
HSHZ A -1
loop
Intro:
IntroLeap:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice")
HSHZ I 5 A_ChangeVelocity(0,0,15,CVF_RELATIVE|CVF_REPLACE)
Goto IntroLeaping
IntroLeaping:
HSHZ I 1 A_Jumpif(floorz==z, "IntroLand")
loop
IntroLand:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 0 ACS_Execute(5,0,25)
HSHZ A 8 A_Stop
HSHZ F 0 A_GiveInventory("WildCoilAmmo",1)
HSHZ F 0 A_JumpIfInventory("WildCoilAmmo",3,"Spawn3")
HSHZ F 0 A_JumpIfInventory("WildCoilAmmo",2,"IntroLeap2")
Goto IntroLeap
Seek:
HSHZ A 45 A_FaceTarget
HSHZ F 0 A_TakeInventory("SuperArmAmmo",999)
HSHZ A 0 A_TakeInventory("CutterFlag",999)
HSHZ A 2 A_Look
loop
SeekBeforeLeaping:
HSHZ A 1 A_LookEx(0, 0, 0, 0, 360, "LeapMode")
loop
SeekBeforeCharging:
HSHZ A 1 A_LookEx(0, 0, 0, 0, 360, "ChargeMode")
loop
IntroLeap2:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice")
HSHZ I 5 A_ChangeVelocity(0,0,22,CVF_RELATIVE|CVF_REPLACE)
Goto IntroLeaping
See:
HSHZ A 0 A_GiveInventory("WheelCutterAmmo", 1)
HSHZ A 2 A_FaceTarget
HSHZ F 0 A_JumpIf(health<1000,"ExtraSuck")
Goto SuckStart
ExtraSuck:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice")
HSHZ I 5 A_ChangeVelocity(5,0,20,CVF_RELATIVE|CVF_REPLACE)
Goto SuckLeaping
SuckLeaping:
HSHZ I 1 A_Jumpif(floorz==z, "SuckLand")
loop
SuckLand:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 0 ACS_Execute(5,0,24)
HSHZ F 0 A_SpawnItemEx("HyperStormMetool",0,80,256,0,0,0,0)
HSHZ F 0 A_SpawnItemEx("HyperStormMetool",0,-80,256,0,0,0,0)
HSHZ A 8 A_Stop
HSHZ F 0 A_SpawnItemEx("HyperStormMetool",0,160,256,0,0,0,0)
HSHZ F 0 A_SpawnItemEx("HyperStormMetool",0,-160,256,0,0,0,0)
HSHZ A 15 A_Stop
Goto SuckStart
SuckStart:
HSHZ F 0 A_PlaySoundEx("misc/hshinhale","Item",0,1)
Suck:
PLAY A 0 ACS_NamedExecuteAlways("core_radiuspull",0,2,900,1)
HSHZ F 0 A_SpawnItemEx("HyperStormHVacuum",random(100,400),random(-200,200),random(-32,128),0)
HSHZ F 2 A_FaceTarget
HSHZ F 0 A_JumpIf(CallACS("HyperStormVacuumCheck")==1, "SuckEnd")//A_JumpIfCloser(80,"SuckEnd")
HSHZ F 0 A_GiveInventory("CutterFlag",1)
HSHZ F 0 A_JumpIfInventory("CutterFlag",120,"SuckEnd")
loop
SuckEnd:
HSHZ F 0 A_StopSoundEx("Item")
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ A 30 A_TakeInventory("CutterFlag",999)
HSHZ A 30
Goto BlowStart
BlowStart:
HSHZ F 0 A_PlaySoundEx("misc/hshexhale","Item",0,1)
Blow:
PLAY A 0 ACS_NamedExecuteAlways("core_radiuspull",0,-2,900,1)
HSHZ F 0 A_SpawnItemEx("HyperStormHVacuumFX2",0,0,42,10,random(-10,10),random(-10,10))
HSHZ F 0 A_GiveInventory("CutterFlag",1)
HSHZ F 0 A_GiveInventory("SuperArmAmmo",1)
HSHZ F 2 A_FaceTarget
HSHZ F 0 A_JumpIfInventory("SuperArmAmmo",20,"BlowShot")
HSHZ F 0 A_JumpIfInventory("CutterFlag",120,"BlowEnd")
HSHZ F 0 A_JumpIf(health<1000,"ExtraShots")
loop
ExtraShots:
HSHZ F 0 A_GiveInventory("SuperArmAmmo",2)
Goto Blow
BlowShot:
HSHZ F 0 A_CustomMissile("HyperStormShot",42,0,random(-20,20))
HSHZ F 0 A_TakeInventory("SuperArmAmmo",999)
HSHZ A 0 A_PlaySoundEx("misc/devilfire","Voice")
Goto Blow
BlowEnd:
HSHZ F 0 A_StopSoundEx("Item")
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ A 30 A_TakeInventory("CutterFlag",999)
HSHZ A 45
Goto SeekBeforeLeaping
LeapMode:
HSHZ F 0 A_JumpIf(health<1000,"LeapStart")
HSHZ A 42 A_FaceTarget
LeapStart:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice")
HSHZ I 5 A_ChangeVelocity(5,0,20,CVF_RELATIVE|CVF_REPLACE)
Goto Leaping
Leaping:
HSHZ I 1 A_Jumpif(floorz==z, "Land")
loop
Land:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 0 ACS_Execute(5,0,24)
HSHZ FF 0 A_SpawnItemEx("HyperStormMetool",random(48,500),0,256,0,0,0,random(0,360))
HSHZ A 8 A_Stop
HSHZ F 0 A_GiveInventory("CutterFlag",1)
HSHZ F 0 A_JumpIfInventory("CutterFlag",5,"SeekBeforeCharging")
Goto SeekBeforeLeaping
ChargeMode:
HSHZ A 60 A_FaceTarget
ChargeStart:
HSHZ E 0 A_Stop
HSHZ E 0 A_JumpIfInventory("SuperArmAmmo",4,"Seek")
HSHZ F 0 A_JumpIf(health<1000,"FastCharge")
HSHZ A 20 A_FaceTarget
HSHZ B 20 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ C 20 ACS_Execute(5,0,25)
HSHZ D 20 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ E 20 ACS_Execute(5,0,25)
FastCharge:
HSHZ B 5 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ C 5 ACS_Execute(5,0,25)
HSHZ D 5 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ E 5 ACS_Execute(5,0,25)
HSHZ B 5 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ C 5 ACS_Execute(5,0,25)
HSHZ D 5 A_FaceTarget
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ E 5 ACS_Execute(5,0,25)
HSHZ A 0 A_TakeInventory("CutterFlag",999)
HSHZ E 0 A_GiveInventory("SuperArmAmmo",1)
HSHZ D 0 A_FaceTarget
Charging:
HSHZ B 0 A_ChangeVelocity(32,0,momz,CVF_RELATIVE|CVF_REPLACE)
HSHZ B 0 A_JumpIfCloser(100,"ChargeHit")
HSHZ B 3 
HSHZ B 0 A_ChangeVelocity(32,0,momz,CVF_RELATIVE|CVF_REPLACE)
HSHZ B 0 A_JumpIfCloser(100,"ChargeHit")
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ C 3 ACS_Execute(5,0,25)
HSHZ B 0 A_ChangeVelocity(32,0,momz,CVF_RELATIVE|CVF_REPLACE)
HSHZ B 0 A_JumpIfCloser(100,"ChargeHit")
HSHZ D 3
HSHZ B 0 A_ChangeVelocity(32,0,momz,CVF_RELATIVE|CVF_REPLACE)
HSHZ B 0 A_JumpIfCloser(100,"ChargeHit")
HSHZ F 0 A_SpawnItemEx("HyperStormDust",-5,0,0,-5,0,0)
HSHZ E 3 ACS_Execute(5,0,25)
HSHZ E 0 A_GiveInventory("CutterFlag",1)
HSHZ E 0 A_JumpIfInventory("CutterFlag",4,"SeekBeforeCharging")
loop
ChargeHit:
HSHZ B 20 ACS_Execute(5,0,26)
HSHZ A 10 A_FaceTarget
Goto SeekBeforeCharging
Death:
KING H 0 A_GiveToTarget("NoDamage",1)
HSHZ H 40
HSHZ H 0 ACS_Execute(49,0,2)
HSHZ A 40 A_FaceTarget
HSHZ A 0 A_SpawnItemEx("HyperStormTeleport")
TNT1 A -1
stop
}
}

actor HyperStormTeleport
{
Translation "192:192=218:218", "198:198=76:76"
+NOINTERACTION
-SOLID
scale 2.5
states
{
	Spawn:
	TFOG A 0
	TFOG A 0 A_PlaySoundEx("misc/teleportout", "Voice", 0, 1)
	TFOG B 0 A_ChangeFlag("NOGRAVITY",1)
	TFOG BBBAAACCC 1
	TFOG A 65 A_ChangeVelocity(0,0,13,CVF_RELATIVE|CVF_REPLACE)
	stop
}
}

actor HyperStormDust
{
Scale 3.5
+NOINTERACTION
+NOGRAVITY
+MISSILE
States
{
Spawn:
MDAD HIJ 6
stop
}
}


actor HyperStormMetool
{
obituary "%o was destroyed by a metool\c-."
//dropitem "WeaponEnergyDropped", 80
Height 32
Radius 32
Health 2
scale 2.5
damagefactor "Met", 0.0
+NORADIUSDMG
speed 9
+LOOKALLAROUND
+DROPOFF
+SHOOTABLE
MONSTER
-SOLID
+NOCLIP
States
{
Spawn:
METT D 0
METT ABCB 3 A_JumpIf(floorz==z,"Land1")
loop
Land1:
METT D 0 A_Stop
METT D 0 A_ChangeVelocity(0,0,12,CVF_RELATIVE|CVF_REPLACE)
METT ABCB 3
Falling:
METT ABCB 3 A_JumpIf(floorz==z,"Land2")
loop
Land2:
METT A 1 A_Look
loop
See:
METT F 0 A_FaceTarget
METT AAA 1 A_ChangeVelocity(8,0,momz,CVF_RELATIVE|CVF_REPLACE)
METT A 0 A_SpawnItem("MetoolAttack")
METT BBB 1 A_ChangeVelocity(8,0,momz,CVF_RELATIVE|CVF_REPLACE)
METT A 0 //A_SpawnItem("MetoolAttack")
METT CCC 1 A_ChangeVelocity(8,0,momz,CVF_RELATIVE|CVF_REPLACE)
METT A 0 A_SpawnItem("MetoolAttack")
METT BBB 1 A_ChangeVelocity(8,0,momz,CVF_RELATIVE|CVF_REPLACE)
METT A 0 //A_SpawnItem("MetoolAttack")
Goto See+1
Death:
MMFX B 0 A_Fall
MMFX B 0 A_PlaySound("misc/metdie")
MMFX FGHI 3 A_Stop
stop
}
}

actor HyperStormShot
{
PROJECTILE
scale 2.5
Damage (15)
speed 12
States
{
Spawn:
BASB E -1
loop
}
}

actor HyperStormBarrier
{
//Obituary "%o was whacked by \cgBuster Rod G\c-."
PROJECTILE
DamageType "Misc"
Height 10
Radius 10
renderstyle none
//Scale 2.5
States
{
Spawn:
KINP EE 1 A_Explode(30,100,0)
stop
}
}

actor HyperStormHVacuum
{
+NOINTERACTION
+MISSILE
renderstyle none
states
{
Spawn:
PLAY A 0
PLAY A 0 A_FaceTarget
PLAY A 0 A_CustomMissile("HyperStormHVacuumFX",0,0,0,0)
stop
}
}

actor HyperStormHVacuumFX
{
speed 10
renderstyle translucent
alpha 0.1
scale 1.5
translation "8:253=4:4"
+NOINTERACTION
+MISSILE
states
{
Spawn:
PLAY A 0
PLAY A 0 A_FaceTarget
PLAY A 0 A_JumpIfInTargetInventory("CutterFlag",1,"Blowing")
stop
Blowing:
MMFX E 0 A_FadeIn(0.15)
MMFX E 1 A_JumpIfCloser(32,"Death")
PLAY A 0 A_JumpIfInTargetInventory("CutterFlag",1,"Blowing")
Death:
PLAY A 0
stop
}
}

actor HyperStormHVacuumFX2
{
speed 10
renderstyle translucent
alpha 1.0
scale 1.5
translation "8:253=4:4"
+NOINTERACTION
+MISSILE
states
{
Spawn:
MMFX E 1 A_FadeOut(0.05)
loop
Death:
PLAY A 0
stop
}
}

/////////////////////////
// GENESIS UNIT BATTLE //
/////////////////////////

actor GenesisUnitBoss
{
+NOINTERACTION
+NOGRAVITY
States
{
Spawn:
TNT1 A 0
TNT1 A 60 A_SpawnItemEx("GenesisBusterRodG")
TNT1 A 60 A_SpawnItemEx("GenesisMegaWaterS",0,200)
TNT1 A 60 A_SpawnItemEx("GenesisHyperStormH",0,-200)
stop
}
}

actor GenesisBusterRodG
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
speed 0
Scale 2.5
Obituary "%o was whacked by \cgBuster Rod G\c-."
Translation "192:192=218:218", "198:198=221:221"
Health 1000
mass 99999999
damagefactor "Buster", 0.75
damagefactor "BusterRod", 0.0
damagefactor "Misc", 0.0
damagefactor "IceSlasher", 0.1
damagefactor "CrashBomb", 0.6
damagefactor "AirShooter", 0.8

damagefactor "LeafShield", 0.67
damagefactor "NoiseCrush", 0.35
damagefactor "NoiseCrush2", 1.0
damagefactor "TenguSlash", 0.4

painchance 256
Speed 0
Damage 0
MONSTER
//-ISMONSTER
+LOOKALLAROUND
//+NORADIUSDMG
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
gravity 1.5
States
{
Spawn:
BRGZ I 0
BRGZ I 0 Thing_ChangeTID(0,874) 
BRGZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
BRGZ A -1 
loop
Seek:
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",2,"TeamWait")
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",1,"Call")
BRGZ A 2 A_Look
loop
Intro:
BRGZ UVUVUVUVUVUV 3 
BRGZ W 4
Goto Spawn2
See:
BRGZ I 0 Thing_ChangeTID(0,874) 
BRGZ A 0 A_Stop
BRGZ A 35
Choose:
BRGZ A 0 A_Stop
BRGZ A 0 A_FaceTarget
Goto Strike
Leap:
BRGZ I 8 A_ChangeVelocity(20,random(-6,6),20,CVF_RELATIVE|CVF_REPLACE)
Goto Falling
Strike:
BRGZ J 0 A_JumpIfCloser(300,"StrikeOk")
Goto Leap
StrikeOk:
BRGZ J 0 A_Stop
BRGZ JJJ 6 A_FaceTarget
BRGZ K 0 A_CustomMissile("BusterRodRod",32,0,0,2,0)
BRGZ K 20 A_FaceTarget
BRGZ J 8
Goto Seek
Falling:
BRGZ I 0// A_SpawnItemEx("BusterRodBarrier")
BRGZ II 1 A_Jumpif(floorz==z, "StrikeOk")
loop
Falling2:
BRGZ I 0// A_SpawnItemEx("BusterRodBarrier")
BRGZ I 1 A_Jumpif(floorz==z, "Seek")
loop
/*
Pain:
BRGZ F 0 A_PlaySoundEx("item/protoreflect","Item")
BRGZ F 0 A_FaceTarget
BRGZ FGFGFGFGFG 3 A_SpawnItemEx("BusterRodBarrier")
BRGZ A 0 A_JumpIfInventory("RollingCutterAmmo",2,"TeamWait")
BRGZ A 0 A_JumpIfInventory("RollingCutterAmmo",1,"Call")
Goto See
*/
Call:
BRGZ I 0 A_ChangeFlag("NOPAIN",1)
BRGZ I 0 A_GiveInventory("GenesisCallCount",1)
BRGZ II 20 A_ChangeVelocity(0,0,12,CVF_RELATIVE)
BRGZ A 35
TeamWait:
BRGZ A -1 A_GiveInventory("GenesisCallCount",1)
loop
Merge:
TNT1 A 0 ACS_NamedExecuteAlways("GenesisFaceTeam", 0)
BRGZ BCDE 4 A_Recoil(-5)
loop
}
}


actor GenesisMegaWaterS
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
Scale 2.5
Obituary "%o was skewered by \cqMega Water S\c-."
Translation "192:192=218:218", "198:198=116:116"
Health 1000
mass 99999999
damagefactor "Buster", 0.65
damagefactor "WaveBurner", 0.6
damagefactor "Misc", 0.0
damagefactor "IceSlasher", 0.7
damagefactor "CrashBomb", 0.6
damagefactor "AirShooter", 0.4
damagefactor "BusterRod", 0.0

damagefactor "LeafShield", 0.8
damagefactor "NoiseCrush", 0.35
damagefactor "NoiseCrush2", 1.0
damagefactor "TenguSlash", 0.4

painchance 256
Speed 8
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
+LOOKALLAROUND
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
//+NODAMAGE
gravity 1.5
States
{
Spawn:
MWSZ I 0 
MWSZ I 0 Thing_ChangeTID(0,875)
MWSZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
MWSZ A -1 
loop
Intro:
MWSZ STUV 6
MWSZ V -1
stop
Seek:
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",2,"TeamWait")
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",1,"Call")
MWSZ A 2 A_Look
loop
See:
MWSZ I 0 Thing_ChangeTID(0,875)
MWSZ BBBBBCCCCCDDDDDEEEEEBBBBBCCCCCDDDDDEEEEE 1 A_Wander
Melee:
SelectAttack:
MWSZ S 4 A_FaceTarget
MWSZ I 0 A_ChangeVelocity(0,0,10,CVF_RELATIVE|CVF_REPLACE)
Spin:
MWSZ I 1 A_SetAngle(angle + 25)
MWSZ I 0 A_JumpIf(floorz==z,"Harpoon")
loop
Harpoon:
MWSZ F 0 A_PlaySoundEx("weapon/adapterreturn","Voice")
MWSZ F 18 A_FaceTarget
HarpoonFire:
MWSZ I 0 A_SpawnItemEx("BusterRodBarrier")
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon2",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon2",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon2",45,-12,0)
MWSZ F 0 A_FaceTarget
MWSZ G 0 A_PlaySoundEx("weapon/pshot","Voice")
MWSZ G 8 A_CustomMissile("MegaWaterHarpoon2",45,-12,0)
MWSZ F 18 A_FaceTarget
MWSZ A 18 A_FaceTarget
Goto Seek
Fall:
MWSZ I 1 A_JumpIf(floorz==z,"Seek")
loop
Call:
MWSZ I 0 A_GiveInventory("GenesisCallCount",1)
MWSZ FF 20 //A_ChangeVelocity(0,0,12,CVF_RELATIVE)
MWSZ F 35
TeamWait:
MWSZ A -1 A_GiveInventory("GenesisCallCount",1)
loop
Merge:
TNT1 A 0 ACS_NamedExecuteAlways("GenesisFaceTeam", 0)
MWSZ BCDE 4 A_Recoil(-5)
loop
}
}



actor GenesisHyperStormH
{
//$Category MM8BDM-Bosses
Height 56
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H\c-."
Translation "192:192=218:218", "198:198=76:76"
Health 2000
mass 99999999
damagefactor "Buster", 0.6
damagefactor "Met", 0.0
damagefactor "BusterRod", 0.0
damagefactor "IceSlasher", 0.1
damagefactor "CrashBomb", 0.15
damagefactor "AirShooter", 0.3

damagefactor "LeafShield", 0.57
damagefactor "NoiseCrush", 0.25
damagefactor "NoiseCrush2", 0.65
damagefactor "TenguSlash", 0.2

damagefactor "Misc", 0.0
painchance 256
Speed 8
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
+LOOKALLAROUND
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
//+NOPAIN
//+NODAMAGE
gravity 1.5
States
{
Spawn:
HSHZ I 0
HSHZ I 0 Thing_ChangeTID(0,876)
HSHZ I 1 A_Jumpif(floorz==z, "Spawn2")
loop
Spawn2:
HSHZ F 1
HSHZ F 0 ACS_Execute(5,0,25)
Spawn3:
HSHZ A -1
loop
Intro:
IntroLeap:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
HSHZ I 5 A_ChangeVelocity(0,0,15,CVF_RELATIVE|CVF_REPLACE)
Goto IntroLeaping
IntroLeaping:
HSHZ I 1 A_Jumpif(floorz==z, "IntroLand")
loop
IntroLand:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 0 ACS_Execute(5,0,25)
HSHZ A 8 A_Stop
HSHZ F 0 A_GiveInventory("WildCoilAmmo",1)
HSHZ F 0 A_JumpIfInventory("WildCoilAmmo",3,"Spawn3")
HSHZ F 0 A_JumpIfInventory("WildCoilAmmo",2,"IntroLeap2")
Goto IntroLeap
Seek:
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",2,"TeamWait")
BRGZ A 0 A_JumpIfInventory("GenesisCallCount",1,"Call")
HSHZ F 0 A_TakeInventory("SuperArmAmmo",999)
HSHZ A 0 A_TakeInventory("CutterFlag",999)
HSHZ A 2 A_Look
loop
IntroLeap2:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
HSHZ I 5 A_ChangeVelocity(0,0,22,CVF_RELATIVE|CVF_REPLACE)
Goto IntroLeaping
See:
HSHZ I 0 Thing_ChangeTID(0,876)
HSHZ AAA 35 A_FaceTarget
Goto LeapStart
LeapStart:
HSHZ A 0 A_FaceTarget
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
HSHZ I 5 A_ChangeVelocity(8,0,25,CVF_RELATIVE|CVF_REPLACE)
Goto Leaping
Leaping:
HSHZ I 1 A_Jumpif(floorz==z, "Land")
loop
Land:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 0 ACS_ExecuteAlways(5,0,24)
HSHZ FF 0 //A_SpawnItemEx("HyperStormMetool",random(48,500),0,256,0,0,0,random(0,360))
HSHZ A 8 A_Stop
Goto Seek
Call:
HSHZ I 0 A_GiveInventory("GenesisCallCount",1)
HSHZ A 5
HSHZ F 10
HSHZ A 10
HSHZ F 10
HSHZ A 25
TeamWait:
HSHZ A -1 A_GiveInventory("GenesisCallCount",1)
loop
Merge:
TNT1 A 0 ACS_NamedExecuteAlways("GenesisFaceTeam", 0)
HSHZ BCDE 4 A_Recoil(-5)
loop
}
}


actor GenesisPoofThruster
{
+NOINTERACTION
+NOGRAVITY
+LOOKALLAROUND
renderstyle none
States
{
Spawn:
PLAY A 0
PLAY A 1 A_Look
loop
See:
PLAY A 1 A_JumpIfCloser(256,"Thrust")
loop
Thrust:
PLAY A 0 A_FaceTarget
PLAY A 5 ACS_Execute(5,0,27)
Goto See
}
}

actor GenesisPoof
{
+NOINTERACTION
+NOGRAVITY
scale 2.5
States
{
Spawn:
POOF ABABABAB 4
stop
}
}

actor GenesisPoofSpawner
{
+NOINTERACTION
-SOLID
height 0
radius 0
renderstyle none
States
{
Spawn:
PLAY A 0
PLAY A 0 A_PlaySoundEx("weapon/astrocrush",0,0,1)
PLAY A 0 A_SpawnItemEx("GenesisPoof",0,0,22)
PLAY AAAAA 0 A_SpawnItemEx("GenesisPoof",random(-128,128),random(-128,128),random(0,128))
PLAY AAAAAAAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("GenesisPoof",random(-128,128),random(-128,128),random(0,128))
stop
}
}


actor GenesisConfetti
{
+NOINTERACTION
-SOLID
height 0
radius 0
renderstyle none
States
{
Spawn:
PLAY A 0
PLAY A 0 A_PlaySoundEx("misc/partyball","Voice",0,1)
PLAY AAAA 0 A_SpawnItemEx("ConfettiSpawner",0,0,128)
stop
}
}

actor GenesisFormAlpha
{
+NOINTERACTION
-SOLID
height 0
radius 0
renderstyle none
+LOOKALLAROUND
States
{
Spawn:
PLAY A 1 A_Look
loop
See:
PLAY A 0 A_FaceTarget
PLAY A 0 A_SpawnItemEx("AlphaHyperStormH")
PLAY A 0 A_SpawnItemEx("AlphaMegaWaterS",0,-180)
PLAY A 0 A_SpawnItemEx("AlphaBusterRodG",-200)
stop
}
}

actor AlphaBusterRodG
{
Height 48
Radius 48
Scale 2.5
Obituary "%o was whacked by \cgBuster Rod G\c-."
Translation "192:192=218:218", "198:198=221:221"
painchance 256
//+REFLECTIVE
health 999999
Speed 0
Damage 0
-SOLID
//+NOGRAVITY
+SHOOTABLE
+LOOKALLAROUND
+INVULNERABLE
+NOPAIN
mass 999999999
States
{
Spawn:
BRGZ A 70
BRGZ J 55 Thing_ChangeTID(0,400)
Pain.Misc:
BRGZ F 0 HealThing(999)
BRGZ A 0 A_FaceTarget
BRGZ F 0 ACS_Execute(52,0,1)
BRGZ F 0 A_ChangeFlag("NOPAIN",1)
HSHZ O 0 A_PlaySoundEx("misc/kingchop",0,0,1)
BRGZ K 20 A_CustomMissile("BusterRodRod",32,0,0,2,0)
BRGZ J 8
BRGZ F 0 A_ChangeFlag("NOPAIN",0)
BRGZ F 0 A_ChangeFlag("INVULNERABLE",0)
BRGZ I 0 A_Look
See:
Watch:
BRGZ A 12 A_FaceTarget
BRGZ A 0 A_JumpIfInventory("CutterFlag",1,"End")
loop
Pain:
BRGZ F 0 A_PlaySoundEx("item/protoreflect","Item")
BRGZ F 0 A_FaceTarget
BRGZ FGFGFGFGFG 3 A_SpawnItemEx("BusterRodBarrier")
Goto Watch
End:
BRGZ A -1 A_GiveInventory("CutterFlag",1)
stop
Death:
BRGZ A 0 A_SpawnItemEx("GenesisBusterRodG")
stop
}
}


actor AlphaHyperStormH
{
speed 0
Height 10
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H\c-."
Translation "192:192=218:218", "198:198=76:76"
painchance 256
-SOLID
-NOBLOCKMAP
damagetype "Misc"
+HEXENBOUNCE
+MISSILE
+BOUNCEONACTORS
seesound "misc/boing"
States
{
Spawn:
HSHZ F 0
HSHZ F 70 A_GiveInventory("CutterFlag",1)
Spawn2:
HSHZ M 0 Thing_ChangeTID(0,401)
HSHZ MNMN 17 A_PlaySoundEx("weapon/crackermine",0,0,1)
loop
Fly:
HSHZ O 0 //A_PlaySoundEx("misc/boing",0,0,1)
HSHZ O 0 A_SpawnItemEx("AlphaHyperStormAssist")
Flying:
HSHZ OPQR 4 //A_GiveInventory("QuickBoomerangAmmo",1)
loop
End:
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
BRGZ A 0 A_SpawnItemEx("GenesisHyperStormH",0,0,8,momx,momy,26,0,SXF_NOCHECKPOSITION)
BRGZ A 0 A_SpawnItemEx("GenesisMegaWaterS",0,0,80,0,0,20)
stop
}
}

actor AlphaHyperStormAssist
{
+MISSILE
+NOINTERACTION
renderstyle none
states
{
Spawn:
PLAY A 1 A_GiveToTarget("AlphaHyperStormInventory")
PLAY A 1 A_JumpIfInTargetInventory("CutterFlag",1,"Spawn")
stop
}
}

actor AlphaHyperStormInventory : CustomInventory
{
states
{
Pickup:
PLAY A 1 A_ChangeVelocity(20,0,0,CVF_RELATIVE|CVF_REPLACE)
PLAY A 0 //A_SetAngle(angle + 1)
PLAY A 0 A_Explode(4,128,0)
PLAY A 0 A_SpawnItemEx("AlphaMegaWaterRiding",0,0,80,momx,momz,0,0,SXF_ABSOLUTEMOMENTUM)
stop
}
}

actor AlphaMegaWaterRiding
{
Translation "192:192=218:218", "198:198=116:116"
Height 56
Radius 40
Scale 2.5
+NOGRAVITY
+MISSILE
+NOINTERACTION
States
{
Spawn:
MWSZ G 1
MWSZ G 1 A_SpawnItemEx("MegaWaterRidingWater",0,0,38,50,0,0)
MWSZ G 0 A_PlaySoundEx("misc/waterslide","Voice",0,0)
stop
}
}

actor MegaWaterRidingWater
{
+MISSILE
-SOLID
+RIPPER
damagetype "Misc"
gravity 10.0
renderstyle translucent
alpha 0.8
scale 2.0
speed 25
States
{
Spawn:
MWSZ JJKKLL 1
loop
Death:
MWSZ JJJJ 0 A_SpawnItemEx("MegaWaterSplashFX",0,0,0,random(-10,3),random(-10,10),random(5,10))
stop
}
}

actor MegaWaterSplashFX
{
+MISSILE
-SOLID
+RIPPER
renderstyle translucent
alpha 1.0
damagetype "Misc"
scale 1.5
speed 25
States
{
Spawn:
MWSZ MMNNOO 1 A_FadeOut(0.05)
loop
}
}

actor AlphaMegaWaterS
{
Height 56
Radius 40
Scale 2.5
Obituary "%o was skewered by \cqMega Water S."
Translation "192:192=218:218", "198:198=116:116"
-SOLID
gravity 1.5
States
{
Spawn:
MWSZ STUV 6 Thing_ChangeTID(0,402)
MWSZ V 70
Leap:
MWSZ I 26 A_ChangeVelocity(0,-8,22,CVF_RELATIVE)
MWSZ A 0 A_ChangeFlag("NOGRAVITY",1)
MWSZ A -1 A_Stop
stop
}
}


actor GenesisFormBeta
{
+NOINTERACTION
-SOLID
height 0
radius 0
renderstyle none
+LOOKALLAROUND
States
{
Spawn:
PLAY A 1 A_Look
loop
See:
PLAY A 0 A_FaceTarget
PLAY A 0 A_SpawnItemEx("BetaHyperStormH")
PLAY A 0 A_SpawnItemEx("BetaMegaWaterS",0,-180)
stop
}
}

actor BetaHyperStormH
{
speed 0
Height 50
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H."
Translation "192:192=218:218", "198:198=76:76"
painchance 256
-SOLID
-NOBLOCKMAP
States
{
Spawn:
MWSZ I 0
MWSZ I 0 Thing_ChangeTID(0,401)
MWSZ I 0 A_GiveInventory("FireStormAmmo",1)
HSHZ S -1
loop
Start:
HSHZ S 12 A_SpawnItemEx("BetaBusterRodRodIntro",80,0,50,40,0,-5)
Speed1:
HSHZ S 0 A_SpawnItemEx("BusterRodBarrier")
HSHZ S 0 A_SetAngle(angle + 4)
HSHZ S 1 A_SpawnItemEx("BetaBusterRodRod",450,0,12,40)
HSHZ S 0 A_SpawnItemEx("BetaBusterRodDamageLine",0,0,0,100)
loop
Speed2:
HSHZ S 0 A_SpawnItemEx("BusterRodBarrier")
HSHZ S 0 A_SetAngle(angle + 6)
HSHZ S 1 A_SpawnItemEx("BetaBusterRodRod",450,0,12,40)
HSHZ S 0 A_SpawnItemEx("BetaBusterRodDamageLine",0,0,0,100)
loop
Speed3:
HSHZ S 0 A_SpawnItemEx("BusterRodBarrier")
HSHZ S 0 A_SetAngle(angle + 8)
HSHZ S 1 A_SpawnItemEx("BetaBusterRodRod",450,0,12,40)
HSHZ S 0 A_SpawnItemEx("BetaBusterRodDamageLine",0,0,0,100)
loop
Speed4:
HSHZ S 0 A_SpawnItemEx("BusterRodBarrier")
HSHZ S 0 A_SetAngle(angle + 10)
HSHZ S 1 A_SpawnItemEx("BetaBusterRodRod",450,0,12,40)
HSHZ S 0 A_SpawnItemEx("BetaBusterRodDamageLine2",0,0,0,100)
loop
Death:
HSHZ S 1
HSHZ S 0 A_SpawnItemEx("GenesisBusterRodG",50,0,0,5,0,20)
HSHZ S 0 A_SpawnItemEx("GenesisHyperStormH")
stop
}
}


actor BetaBusterRodRodIntro
{
PROJECTILE
+DONTREFLECT
scale 2.5
speed 40
Damagetype "BusterRod"
+NOINTERACTION
Damage (5)
States
{
Spawn:
BRGZ P 0
BRGZ P 0 A_PlaySoundEx("misc/brgstaffshort",0)
BRGZ P 1
BRGZ POOPPOOPPOO 1 A_SpawnItemEx("BetaBusterRodPart",0,0,0,-momx/4,-momy/4,-momz/4,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)//A_CustomMissile("BusterRodPart",0,0,0,0,0)
BRGZ A 0 A_ScaleVelocity(-1.0)
stop
Death:
TNT1 A 0
stop
}
}

actor BetaMegaWaterS
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
Scale 2.5
Obituary "%o was splashed by \cqMega Water S\c-."
Translation "192:192=218:218", "198:198=116:116"
Health 1000
mass 99999999
painchance 256
Speed 10
Damage 0
MONSTER
//-ISMONSTER
//+NORADIUSDMG
+LOOKALLAROUND
-COUNTKILL
-SOLID
-CANPASS
+NOBLOOD
+NODAMAGE
//+NOPAIN
//+NODAMAGE
gravity 1.5
States
{
Spawn:
MWSZ STUV 6
MWSZ I 0 Thing_ChangeTID(0,402)
MWSZ V -1
stop
Start:
MWSZ A 0 A_GiveInventory("BusterAmmo",1)
MWSZ A 0 A_SpawnItemEx("BetaMegaWaterShieldGiver")
Spawn2:
MWSZ A 1 A_Look
Goto Spawn2+1
See:
MWSZ B 0 A_JumpIfInventory("CutterFlag",1,"Death")
MWSZ BBBBBCCCCCDDDDDEEEEEBBBBBCCCCCDDDDDEEEEE 1 A_Chase
loop
Pain.Misc:
MWSZ A 0 A_PlaySoundEx("weapon/crackermine","Voice",0,1)
MWSZ A 0 A_ChangeFlag("NOPAIN",1)
MWSZ A 0 A_FaceTarget
MWSZ I 10 A_ChangeVelocity(0,0,25,CVF_RELATIVE)
Falling:
MWSZ A 0 A_FaceTarget
MWSZ I 0 A_ChangeVelocity(8,0,momz,CVF_RELATIVE|CVF_REPLACE)
MWSZ I 1 A_JumpIf(floorz==z,"Land")
loop
Land:
MWSZ A 0 A_PlaySoundEx("misc/splash","Body",0,1)
MWSZ W 0 A_Stop
MWSZ W 5 A_SpawnItemEx("BetaMegaWaterSSplash")
MWSZ W 0 A_ChangeFlag("NOPAIN",0)
Goto See
Death:
MWSZ A 0 A_ChangeFlag("NOPAIN",1)
MWSZ W 1 A_GiveInventory("CutterFlag",1)
MWSZ W 0 A_SpawnItemEx("GenesisMegaWaterS")
stop
}
}

actor BetaMegaWaterSSplash
{
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAA 0 A_SpawnItemEx("MegaWaterSplashFX",random(-40,40),random(-40,40),random(5,60),random(-10,10),random(-10,10),random(5,10))
TNT1 A 1 A_Explode(128,128)
stop
}
}

actor BetaMegaWaterShieldGiver
{
+NOINTERACTION
+NOGRAVITY
renderstyle none
States
{
Spawn:
PLAY A 0
Shield:
PLAY AA 1 A_GiveToTarget("MegaWaterShieldInventory1",1)
PLAY AA 1 A_GiveToTarget("MegaWaterShieldInventory2",1)
PLAY A 0 //A_TakeInventory("CutterFlag",1)
PLAY A 0 A_JumpIfInTargetInventory("BusterAmmo",1,"Shield")
stop
}
}

actor Betatest
{
speed 0
Height 50
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H."
Translation "192:192=218:218", "198:198=76:76"
painchance 256
-SOLID
-NOBLOCKMAP
States
{
Spawn:
HSHZ S 1 A_SpawnItemEx("BetaBusterRodRod",420,0,12,40)
HSHZ S 0 A_SpawnItemEx("BetaBusterRodDamageLine",0,0,0,100)
HSHZ S 0 A_SetAngle(angle + 8)
loop
}
}


actor BetaBusterRodDamageLine// : FastProjectile
{
PROJECTILE
damagetype "Misc"
renderstyle none
damage (2)
radius 32
height 32
speed 50
States
{
Spawn:
PLAY A 1
loop
}
}

actor BetaBusterRodDamageLine2 : BetaBusterRodDamageLine
{
damage (10)
}

actor BetaBusterRodRod
{
PROJECTILE
+DONTREFLECT
scale 2.5
speed 40
Damagetype "BusterRod"
+NOINTERACTION
Damage (5)
+CLIENTSIDEONLY
States
{
Spawn:
BRGZ P 0
BRGZ P 1 A_SpawnItemEx("BetaBusterRodPart",0,0,0,-momx/4,-momy/4,-momz/4 + 1,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)//A_CustomMissile("BusterRodPart",0,0,0,0,0)
stop
Death:
TNT1 A 0
stop
}
}



actor BetaBusterRodPart
{
scale 2.5
speed 32
damage 0
+DONTREFLECT
PROJECTILE
+NOINTERACTION
Damagetype "BusterRod"
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfCloser(70, "Death")
TNT1 A 0 A_JumpIfCloser(1000, "Ok")
Goto Death
Ok:
TNT1 A 0 A_SpawnItemEx("BetaBusterRodPart",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_SpawnItemEx("BusterRodPartDamager")
BRGZ N 1 A_Stop
stop
Death:
TNT1 A 0 
stop
}
}

actor GenesisFormDelta
{
+NOINTERACTION
-SOLID
height 0
radius 0
renderstyle none
+LOOKALLAROUND
States
{
Spawn:
PLAY A 1 A_Look
loop
See:
PLAY A 0// A_FaceTarget
PLAY A 0 A_SpawnItemEx("DeltaHyperStormH",80,0,0,0,0,0,180)
PLAY A 0 A_SpawnItemEx("DeltaMegaWaterS",80,0,0,0,0,0,45)
PLAY A 0 A_SpawnItemEx("DeltaBusterRodG",80,0,0,0,0,0,-45)
stop
}
}

actor DeltaBusterRodG
{
Height 56
Radius 40
speed 0
Scale 2.5
Obituary "%o was whacked by \cgBuster Rod G."
Translation "192:192=218:218", "198:198=221:221"
painchance 256
health 999999
Speed 0
Damage 0
-SOLID
States
{
Spawn:
BRGZ A 0
BRGZ A -1 Thing_ChangeTID(0,400)
stop
IntroLeap:
BRGZ I 5 A_ChangeVelocity(24,0,10,CVF_RELATIVE)
IntroLeaping:
BRGZ I 1 A_JumpIf(floorz==z,"IntroLand")
loop
IntroLand:
BRGZ A 0 A_SetAngle(angle + 180)
BRGZ A -1 A_Stop
stop
StartIllusions:
BRGZ A 0 A_SetAngle(180)
BRGZ A 0 A_GiveInventory("BusterAmmo",1)
Leap:
BRGZ I 2 A_ChangeVelocity(0,8,8,CVF_RELATIVE)
Leaping:
BRGZ I 1 A_JumpIf(floorz==z,"Land")
loop
Land:
BRGZ A 0 A_SpawnItemEx("BusterRodBarrier")
BRGZ A 2 A_Stop
BRGZ A 0 A_SpawnItemEx("DeltaWallChecker",0,0,0,0,-50)
BRGZ A 0 A_SpawnItemEx("DeltaWallChecker2",0,0,0,0,50)
BRGZ A 2 A_SpawnItemEx("DeltaBusterRodIllusion",0,0,0,10)
BRGZ I 0 A_JumpIfInventory("BusterAmmo",1,"Leap2")
Goto Leap
Leap2:
BRGZ I 2 A_ChangeVelocity(0,-8,8,CVF_RELATIVE)
Goto Leaping
Death:
BRGZ A 0 A_ChangeFlag("NOPAIN",1)
BRGZ A 2 A_GiveInventory("CutterFlag",1)
BRGZ W 0 A_SpawnItemEx("GenesisBusterRodG")
stop
}
}

actor DeltaWallChecker
{
+MISSILE
+NOGRAVITY
renderstyle none
States
{
Spawn:
PLAY A 2
stop
Death:
PLAY A 0 A_GiveToTarget("BusterAmmo",1)
stop
}
}

actor DeltaWallChecker2 : DeltaWallChecker
{
States
{
Spawn:
PLAY AA 1
stop
Death:
PLAY A 0 A_TakeFromTarget("BusterAmmo",999)
stop
}
}

actor DeltaBusterRodIllusion
{
+MISSILE
Height 56
Radius 40
+NOGRAVITY
//+RIPPER
damagetype "Misc"
damage (10)
Obituary "%o was whacked by \cgBuster Rod G\c-."
Translation "192:192=218:218", "198:198=221:221"
scale 2.5
renderstyle translucent
alpha 0.8
States
{
Spawn:
BRGZ A 0
BRGZ A 30 A_PlaySoundEx("misc/brgillusion","Voice")
Sucked:
BRGZ H 0 A_Stop
BRGZ H 0 Thing_ChangeTID(0,8000)
BRGZ H 1 ACS_Execute(5,0,28)
BRGZ H 0 Thing_ChangeTID(8000,0)
BRGZ H 0 A_ChangeVelocity(15,0,1,CVF_RELATIVE)
BRGZ H -1
stop
}
}

actor DeltaMegaWaterS
{
//$Category MM8BDM-Bosses
Height 56
Radius 40
Scale 2.5
Obituary "%o was splashed by \cqMega Water S\c-."
Translation "192:192=218:218", "198:198=116:116"
Health 1000
mass 99999999
painchance 256
Speed 10
Damage 0
-SOLID
States
{
Spawn:
MWSZ I 0
MWSZ I 0 Thing_ChangeTID(0,402)
MWSZ A -1
stop
IntroLeap:
MWSZ I 5 A_ChangeVelocity(24,0,10,CVF_RELATIVE)
IntroLeaping:
MWSZ I 1 A_JumpIf(floorz==z,"IntroLand")
loop
IntroLand:
MWSZ A 0 A_SetAngle(angle + 180)
MWSZ A -1 A_Stop
stop
PumpStart:
MWSZ A 1 A_LookEx(0,0,0,0,360,"Pumping")
loop
See:
Pumping:
MWSZ XWXWXWXWXWXW 8
MWSZ U 0 ACS_ExecuteAlways(5,0,29)
MWSZ XW 8
MWSZ W 0 A_JumpIfInventory("CutterFlag",1,"Death")
loop
Death:
MWSZ A 2 A_GiveInventory("CutterFlag",1)
MWSZ W 0 A_SpawnItemEx("GenesisMegaWaterS")
stop
}
}

actor DeltaWaterSpout
{
height 0
radius 0
scale 1.0
damagetype "Misc"
+MISSILE
+RIPPER
+THRUACTORS
-SOLID
//+NOGRAVITY
//+NOINTERACTION
gravity 9.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("DeltaWaterNoiseMaker")
TNT1 A 0 A_ChangeFlag("MISSILE",0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("MegaWaterSplashFX2",0,0,0,random(-5,5),random(-5,5),random(5,10))
TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("MegaWaterSplashFX2",0,0,0,random(-10,10),random(-10,10),20)
MWSZ H 0 A_PlaySoundEx("misc/mwsburst",0,0,1)
MWSS ABCDEFG 1 A_Explode(1,180,1)
Burst:
MWSS H 0 A_Explode(7,100,1)
MWSS H 0 A_GiveInventory("CutterFlag",1)
MWSS HIJ 2
MWSS H 0 A_JumpIfInventory("CutterFlag",15,"Death")
loop
Death:
MWSS GFEDCBA 2
stop
}
}

actor DeltaWaterNoiseMaker
{
+NOINTERACTION
renderstyle none
+NOGRAVITY
States
{
Spawn:
MWSZ G 0
MWSZ GGGG 8 A_PlaySoundEx("misc/waterslide",0,0,0)
stop
}
}

actor MegaWaterSplashFX2 : MegaWaterSplashFX
{
alpha 1.0
}

actor DeltaHyperStormH
{
speed 0
Height 50
Radius 50
Scale 2.5
Obituary "%o was crushed by \chHyper Storm H\c-."
Translation "192:192=218:218", "198:198=76:76"
painchance 256
-SOLID
-NOBLOCKMAP
+LOOKALLAROUND
+SHOOTABLE
+DONTRIP
health 9999999
+NODAMAGE
mass 999999
States
{
Spawn:
MWSZ I 0
MWSZ I 0 Thing_ChangeTID(0,401)
HSHZ A -1
loop
IntroLeap:
HSHZ A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
HSHZ I 5 A_ChangeVelocity(12,0,15,CVF_RELATIVE|CVF_REPLACE)
IntroLeaping:
HSHZ I 1 A_Jumpif(floorz==z, "IntroLand")
loop
IntroLand:
HSHZ F 0 ACS_Execute(5,0,25)
HSHZ A 0 A_SetAngle(angle + 180)
HSHZ A -1 A_Stop
stop
Seek:
HSHZ A 1 A_Look
loop
See:
HSHZ A 5 //A_FaceTarget
HSHZ F 0 A_GiveInventory("CutterFlag",1)
PLAY A 0 //A_ChangeFlag("SOLID",1)
HSHZ F 0 A_PlaySoundEx("misc/hsloop","SoundSlot7",1,1)
Suck:
PLAY A 0 ACS_NamedExecuteAlways("core_radiuspull",0,2,900,1)
HSHZ F 0 A_SpawnItemEx("HyperStormHVacuum",random(100,400),random(-200,200),random(-32,128),0)
HSHZ F 2 //A_FaceTarget
HSHZ F 0 A_JumpIfCloser(100,"GetOff")
loop
GetOff:
HSHZ F 0 A_SpawnItemEx("HyperStormBarrier")
HSHZ F 1 ACS_NamedExecuteAlways("core_radiuspull",0,-25,900/9,1)
Goto Suck
Death:
HSHZ A 0 A_StopSoundEx("SoundSlot7")
HSHZ A 0 A_ChangeFlag("NOPAIN",1)
HSHZ A 2 A_GiveInventory("CutterFlag",1)
HSHZ W 0 A_SpawnItemEx("GenesisHyperStormH")
stop
}
}

actor GenesisDefeatPile
{
scale 2.5
radius 64
height 64
-SOLID
+LOOKALLAROUND
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Look
loop
See:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_SpawnItemEx("FakeDeathFX",0,0,80)
TNT1 A 0 A_SpawnItemEx("FakeDeathFX",0,80,12)
TNT1 A 0 A_SpawnItemEx("FakeDeathFX",0,-80,12)
TNT1 A 1
KnockedOut:
BRGZ QRST 3 A_ChangeFlag("SOLID",1)
loop
}
}



//Cutscene Stuff

actor FakeScoreBallDropped
{
seesound "misc/scorebounce"
+HEXENBOUNCE
PROJECTILE
+BOUNCEONACTORS
bouncefactor 0.5
bouncecount 5
Scale 2.5
damage 0
+RIPPER
-NOGRAVITY
speed 6
States
{
Spawn:
SCOR A 0
SCOR A 0 A_Recoil(5)
Falling:
SCOR A 1
loop
Death:
SCOR A 0 A_SpawnItem("FakeScoreBall")
stop
}
}

actor FakeScoreBall
{
Radius 32
Scale 2.5
+LOOKALLAROUND
+STANDSTILL
-SOLID
States
{
Spawn:
SCOR A 1 A_LookEx(LOF_NOSOUNDCHECK, 0, 32, 0, 360)//A_Look
loop
See:
SCOR A 1 A_Chase
loop
Melee:
TNT1 A 0 A_GiveToTarget("Stopper")
TNT1 A 0 A_Explode(5,5000,1)
TNT1 A 0 SetPlayerProperty(1,1,4)
TNT1 A 40 A_SpawnItemEx("KingExplode",0,0,32)
TNT1 A 35 A_GiveToTarget("SpawnSurpriseWily")
TNT1 A 0 ACS_Execute(53,0,3)
TNT1 A 0 SetPlayerProperty(1,0,4)
TNT1 A 0 SetPlayerProperty(1,1,0)
stop
}
}

actor SpawnSurpriseWily : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("WilySightTarget",-10)
TNT1 A 0 A_SpawnItemEx("SurpriseWily",-130)
stop
}
}

actor SurpriseWily
{
health 1
height 52
radius 40
+MISSILE
+SHOOTABLE
Scale 2.5
Translation "192:192=229:229", "198:198=239:239"
states
{
Spawn:
DRWI F 0
DRWI F 0 Thing_ChangeTID(0, 9000)
DRWI F 0 A_ChangeFlag("MISSILE",0)
Watch:
DRWI FFFFFFGGGGGG 1 A_GiveToTarget("WilySightChecker",1) 
loop
Death:
DRWI A 0 A_PlaySoundEx("misc/devildeath",0)
DRWI A 0 A_SpawnItemEx("FakeDeathFX")
DRWI F 1 ACS_Terminate(53,0)
DRWI A 0 ACS_Execute(53,0,1)
DRWI A 0 A_SpawnItemEx("WilyGrovel2",0,0,32,0,0,30)
stop
}
}

actor WilySightTarget
{
+SHOOTABLE
Scale 2.5
height 5
radius 5
health 1
renderstyle "none"
States
{
Spawn:
PLAY A 1
loop
Death:
DRWI A 0 ACS_Execute(53,0,0)
stop
}
}

actor WilySightChecker : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_SpawnItemEx("WilySightCheckProjectile",0,0,1,6)
stop
}
}

actor WilySightCheckProjectile
{
+NOGRAVITY
+MISSILE
height 2
radius 2
damage (1)
renderstyle none
states
{
Spawn:
PLAY A 2
stop
}
}

actor WilyGrovel2
{
scale 2.5
-SOLID
States
{
Spawn:
WILG A 1 A_JumpIf(floorz-z==0,"Beg")
loop
Beg:
WILG C 40 A_Stop
WILG D 50
WILG R 50
WILG S 50 A_PlaySoundEx("misc/BombCount","Voice",0,1)
WILG D 0 A_SpawnItemEx("ExplodingBase")
WILG D 0 A_SetAngle(270)
DRWI A 0 ACS_Execute(53,0,2)
Flee:
WILG FFGGHHII 2 A_Recoil(-1)
loop 
}
}

actor ExplodingBase
{
+NOINTERACTION
States
{
Spawn:
TNT1 A 12 A_SpawnItemEx("KingExplode",random(-128,128),random(-128,128),random(0,128))
loop
}
}



actor BusterRodShadow
{
+NOGRAVITY
radius 10
scale 2.5
Translation "1:255=0:0"
+MISSILE
states
{
Spawn:
BRGZ I 0 
BRGZ I 0
BRGZ I -1 A_ChangeVelocity(50,0,2,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor MegaWaterShadow
{
+NOGRAVITY
scale 2.5
Translation "1:255=0:0"
radius 10
+MISSILE
states
{
Spawn:
BRGZ I 0 
BRGZ I 0
MWSZ I -1 A_ChangeVelocity(50,0,2,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor HyperStormShadow
{
+NOGRAVITY
scale 2.5
Translation "1:255=0:0"
radius 10
+ACTIVATEMCROSS
+MISSILE
states
{
Spawn:
BRGZ I 0 
BRGZ I 0
HSHZ I -1 A_ChangeVelocity(50,0,2,CVF_RELATIVE|CVF_REPLACE)
stop
}
}


actor BusterRodActor
{
Translation "192:192=218:218", "198:198=221:221"
Height 52
Radius 20
Scale 2.5
gravity 2.0
States
{
Spawn:
BRGZ A -1
loop
Excite:
BRGZ II 15 A_ChangeVelocity(0,0,12,CVF_RELATIVE)
Goto Spawn
Eek:
BRGZ H 22
Eek2:
BRGZ II 15 A_ChangeVelocity(0,0,12,CVF_RELATIVE)
Loop
See:
BRGZ ABCD 3
loop
Teleport:
BRGZ I 15 A_ChangeVelocity(0,0,20,CVF_RELATIVE)
BRGZ I 0 A_SpawnItemEx("BusterRodTeleport")
stop
}
}


actor MegaWaterActor
{
Translation "192:192=218:218", "198:198=116:116"
Height 52
Radius 20
Scale 2.5
States
{
Spawn:
MWSZ A -1
stop
Point:
MWSZ F 128
Goto Spawn
Teleport:
MWSZ IIIIIIIIIIIIIIIIIIII 1 A_SetAngle(15+angle)
MWSZ I 0 A_SpawnItemEx("MegaWaterTeleport")
stop
}
}

actor HyperStormActor
{
Translation "192:192=218:218", "198:198=76:76"
Height 52
Radius 20
Scale 2.5
gravity 0.8
+SHOOTABLE
painchance 256
health 99999
States
{
Spawn:
HSHZ AG 16
loop
See:
HSHZ AAABBBCCCDDD 2 A_ChangeVelocity(1,0,0,CVF_RELATIVE)
loop
Pain:
Pickup:
HSHZ J 3 A_Stop
KINP A 0 A_PlaySoundEx("weapon/superarmuse","Voice",0,1)
Holding:
HSHZ K 1 A_SpawnItemEx("HeldKing",0,0,120)
loop
Throw:
HSHZ KKKKKKKK 1 A_SpawnItemEx("HeldKing",0,0,120)
HSHZ L 20 A_SpawnItemEx("ThrownKing",0,0,120,38)
Spawn2:
HSHZ A -1
loop
Teleport:
HSHZ II 35 A_ChangeVelocity(0,0,10,CVF_RELATIVE)
HSHZ I 20 A_ChangeVelocity(0,0,10,CVF_RELATIVE)
MWSZ I 0 A_SpawnItemEx("HyperStormTeleport")
stop
}
}