actor RaThorPlusPlusBossWeapon : MegaBuster
{
tag "Dark Hole"
Weapon.AmmoUse 0
Weapon.AmmoGive 0
Weapon.SlotNumber 2
Obituary "$OB_BEAMSURCHARGE"
+INVENTORY.UNDROPPABLE
weapon.ammotype "BossJumpCharge"
weapon.ammotype2 "BossRageCharge"
+WEAPON.AMMO_OPTIONAL
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
SXH3 A 0 ACS_NamedExecuteAlways("GiveExecution",0)
SXH3 A 15
SXH3 BC 2 A_GiveInventory("CutterFlag", 1)
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 C 0 A_SpawnItemEx("DarkHolePlusPlusIntro", 80, 0, 40, 0, 0, 0)
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","Weapon")
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","Weapon")
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","Weapon")
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","Weapon")
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","Weapon")
RATH Y 10 ACS_ExecuteAlways(400, 0, 232)
SXH3 CB 3 A_TakeInventory("CutterFlag", 999)
TNT1 A 0 A_GiveInventory("DarkHoleOffensive", 1)
TNT1 A 0 A_PlaySoundEx("BusterRodG/PressureBackToEarth", "Item")
SXH3 A 20 A_GunFlash
goto ReadyMystic
ReadyMystic:
SXH1 A 0 ACS_ExecuteAlways(991,0,507)
SXH3 A 1 A_WeaponReady
Goto ReadyMystic
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
SXH3 A 1 A_Lower
loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
SXH3 A 1 A_Raise
Loop
Fire:
SXH3 B 0 A_JumpIfInventory("RaThorElecToken", 1, "Electroshock")
SXH3 A 0 ACS_ExecuteAlways(400, 0, 234)
SXH3 A 0 A_JumpIfInventory("DarkHoleDefensive", 1, "SwitchToAttackPosition")
SXH3 A 0 A_JumpIfInventory("DarkHoleInPocket", 1, "SwitchToAttackPositionSP")
SwitchToDefensePosition:
SHX3 A 0 A_TakeInventory("DarkHoleOffensive", 999)
SXH3 A 45 A_GiveInventory("DarkHoleDefensive", 1) 
goto ReadyMystic
SwitchToAttackPosition:
SHX3 A 0 A_TakeInventory("DarkHoleDefensive", 999)
SXH3 A 45 A_GiveInventory("DarkHoleOffensive", 1) 
goto ReadyMystic
SwitchToAttackPositionSP:
TNT1 A 0 A_GiveInventory("DrillFlag", 1)
SHX3 A 0 A_TakeInventory("DarkHoleDefensive", 999)
TNT1 A 0 A_FireCustomMissile("OfficialDarkHolePlusPlusNoIntro", 0, 0, 6, 15)
SXH3 A 45 A_GiveInventory("DarkHoleOffensive", 1) 
TNT1 A 0 A_TakeInventory("DrillFlag", 1)
goto ReadyMystic
NoAmmo:
SXH3 A 1 ACS_Execute(979,0)
SXH3 C 0 A_Refire
goto ReadyMystic



AltFire:
SXH3 C 0 A_JumpIfInventory("OilSliderFlag",1,"NoAmmo")
SXH3 C 0 A_JumpIfInventory("BossRageCharge",500,"Rage")
SXH3 B 0 A_GiveInventory("WeaponCharge",1)
SXH3 B 0 SetPlayerProperty(0,1,0)
SXH3 B 0 SetPlayerProperty(0,1,3)
SXH3 A 0 A_PlaySoundEx("weapon/woolshot", "Weapon")
SXH3 B 3
SXH3 B 0 A_PlaySoundEx("RaThor/Elec2", "Body")
TNT1 A 0 A_ChangeVelocity(60*cos(pitch), 0, 25*sin(-pitch), CVF_RELATIVE|CVF_REPLACE)
SXH3 B 0 SetPlayerProperty(0,1,4)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash1",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash1",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash2",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash2",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash1",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash1",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash2",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 1 A_SpawnItemEx("RaThorPlusDash2",50,0,35,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
SXH3 C 4
SXH3 C 0 SetPlayerProperty(0,0,4)
SXH3 C 0 SetPlayerProperty(0,0,0)
SXH3 C 0 SetPlayerProperty(0,0,3)
SXH3 B 13
SXH3 B 1 A_TakeInventory("WeaponCharge",1)
SXH3 A 10 
SXH3 A 0 A_GiveInventory("OilSliderFlag",30)
SXH3 A 0
Goto ReadyMystic
Rage:
SXH3 B 0 A_TakeInventory("BossRageCharge",500)
SXH3 B 0 A_PlaySoundEx("BusterRodG/WildFrictionInterception1","Voice")
SXH3 A 0 A_PlaySoundEx("misc/wilylightning","SoundSlot7")
SHX3 A 0 A_TakeInventory("DarkHoleOffensive", 999)
SXH3 A 0 //ACS_ExecuteAlways(400, 0, 234)
TNT1 A 0 A_JumpIfInventory("DarkHoleInPocket", 1, 3)
SXH3 A 0 A_GiveInventory("DarkHoleDefensive", 1) 
TNT1 A 0 A_Jump(256, 2)
SXH3 ABC 2
SXH3 B 0 A_GiveInventory("RaThorRageAmmo",500)
SXH3 B 0 A_GiveInventory("RaThorRageWatcher1",1)
SXH3 B 0 A_GiveInventory("RaThorScreenGray", 1)
SXH3 D 10 SetPlayerProperty(0,1,4)
SXH3 B 0 A_PlaySoundEx("classes/Float","Auto")
SXH3 D 0 SetPlayerProperty(0,0,4)
SXH3 CBA 5
SXH3 D 0 A_GiveInventory("RaThorElecToken", 1)
SXH3 A 0 A_TakeInventory("RaThor++SpeedDemon",1)
SXH3 D 0 A_SpawnItemEx("RaThorStaticGiver")
goto ReadyMystic

Electroshock:
//RATH A 0 SetPlayerProperty(0,1,0)
RATH A 0 A_PlaySoundEx("weapon/woolshot", "Weapon")
RATH ABCD 2
RATH E 2 A_SpawnItemEx("RaThorElecGFX1", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX2", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX3", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX4", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX5", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX6", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX7", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX8", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX9", 3, 22, 5, momx, momy, momz, 0)
RATH E 2 A_SpawnItemEx("RaThorElecGFX10", 3, 22, 5, momx, momy, momz, 0)
RATH F 2 A_SpawnItemEx("RaThorElecGFX10", 3, 22, 5, momx, momy, momz, 0)
RATH F 0 A_FireCustomMissile("BeamSurcharge", 0, 0, 0, 0)
RATH G 15 A_PlaySoundEx("weapon/woollightning", "Weapon")
//RATH A 0 SetPlayerProperty(0,0,0)
RATH FCBA 1
SXH3 A 5
goto ReadyMystic
Flash:
TNT1 A 0 A_TakeInventory("OilSliderFlag",1)
TNT1 AAAA 1 A_JumpIfInventory("DarkHoleChakra", 16, "FireAnotherOrb")
TNT1 A 0 A_GiveInventory("DarkHoleChakra", 1)
loop
FireAnotherOrb:
TNT1 A 0 A_GiveInventory("DarkHoleOffensive", 1)
TNT1 A 0 A_TakeInventory("DarkHoleDefensive", 1)
TNT1 A 0 A_TakeInventory("DarkHoleInPocket", 1)
TNT1 A 0 A_TakeInventory("DarkHoleChakra", 999)
TNT1 A 0 A_FireCustomMissile("OfficialDarkHolePlusPlusNoIntro", 0, 0, 6, 15)
goto Flash
}
}

actor RaThorPlusDash1
{
PROJECTILE
+NOGRAVITY
+RIPPER
scale 2.5
obituary "%o was broken down by \c[THORPLUS]Ra Thor ++\c- (%k)'s \crHyper Dash\c-!"
damagetype "ThorDashBump"
States
{
Spawn:
MIRR D 0 
MIRR D 2 A_Explode(30,50,0,0,50)
stop
}
}

actor RaThorPlusDash2
{
PROJECTILE
+NOGRAVITY
+RIPPER
scale 2.5
obituary "%o was broken down by \c[THORPLUS]Ra Thor ++\c- (%k)'s \crHyper Dash\c-!"
damagetype "ThorDashBump"
States
{
Spawn:
MIRR E 0 
MIRR E 2 A_Explode(30,50,0,0,50)
stop
}
}

actor ThorDashBumpProtection : PowerProtection
{ damagefactor "ThorDashBump", 0.0 powerup.duration 35 }

actor DarkHolePlusPlusIntro
{
+NOINTERACTION
PROJECTILE
speed 0
damagetype "BossInstagib"
scale 0.54
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro2")
stop
}
}

actor DarkHolePlusPlusIntro2 : DarkHolePlusPlusIntro
{
scale 1.08
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGH 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro3")
stop
}
}

actor DarkHolePlusPlusIntro3 : DarkHolePlusPlusIntro
{
scale 1.62
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro4")
stop
}
}

actor DarkHolePlusPlusIntro4 : DarkHolePlusPlusIntro
{
scale 2.16
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGH 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro5")
stop
}
}

actor DarkHolePlusPlusIntro5 : DarkHolePlusPlusIntro
{
scale 2.7
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro6")
stop
}
}

actor DarkHolePlusPlusIntro6 : DarkHolePlusPlusIntro
{
scale 3.24
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGH 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro7")
stop
}
}

actor DarkHolePlusPlusIntro7 : DarkHolePlusPlusIntro
{
scale 3.78
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro8")
stop
}
}

actor DarkHolePlusPlusIntro8 : DarkHolePlusPlusIntro
{
scale 4.32
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGH 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro9")
stop
}
}

actor DarkHolePlusPlusIntro9 : DarkHolePlusPlusIntro
{
scale 4.86
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro10")
stop
}
}

actor DarkHolePlusPlusIntro10 : DarkHolePlusPlusIntro
{
scale 5.4
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGH 1
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusIntro11")
stop
}
}

actor DarkHolePlusPlusIntro11 : DarkHolePlusPlusIntro
{
scale 6.00
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 GHGHG 1
TNT1 A 0 A_SpawnItemEx("OfficialDarkHolePlusPlus", 0, 0, 0, 0, 0, 0)
stop
}
}

actor OfficialDarkHolePlusPlus
{
PROJECTILE
scale 4.0
damagetype "BossInstagib"
+HEXENBOUNCE
+RIPPER
+NOTARGETSWITCH
//+SKYEXPLODE
+FORCEXYBILLBOARD
+CANBOUNCEWATER
-DONTBLAST // Repulses this thing with centaur flash or something :D
damage (0)
speed 24
Obituary "$OB_DARKHOLE"
//FloatSpeed 28
bouncefactor 0.93
wallbouncefactor 0.93
radius 20
height 20
+DONTBLAST
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 G 4 A_ChangeVelocity(4,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 H 4 A_ChangeVelocity(8,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 G 4 A_ChangeVelocity(12,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 H 4 A_ChangeVelocity(16,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 G 4 A_ChangeVelocity(20,0,0,CVF_RELATIVE|CVF_REPLACE)
SXP2 H 0 A_ChangeVelocity(24,0,0,CVF_RELATIVE|CVF_REPLACE)
goto TheySeeMeBouncingTheyHatin
TheySeeMeBouncingTheyHatin:
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleDefensive", 1, "DefenseMode")
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
loop
NextRoundBigBoy:
TNT1 A 0 A_SpawnItemEx("DarkHolePlusPlusEndingMusic", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)
stop
Death: // Sky contact?
TNT1 A 0 //A_GiveToTarget("SummonAnotherHolePlease", 1)
TNT1 A 0 A_GiveToTarget("DarkHoleOffensive", 1)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 1)
TNT1 A 0 A_TakeFromTarget("DarkHoleInPocket", 1)
stop
DefenseMode:
SXP2 H 0 A_CustomMissile("OfficialDarkHolePlusPlusDefense1",0,0,0,0)
stop
}
}

actor SummonAnotherHolePlease : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_FireCustomMissile("OfficialDarkHolePlusPlusNoIntro", 0, 0, 6, 15)
stop
}
}

actor OfficialDarkHolePlusPlusNoIntro : OfficialDarkHolePlusPlus
{
speed 24
states
{
Spawn:
TNT1 A 0
goto TheySeeMeBouncingTheyHatin
}
}

actor DarkHolePlusPlusEndingMusic : OfficialDarkHolePlusPlus
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.8)
SXP2 HG 3
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.75)
SXP2 HG 4
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.7)
SXP2 HG 6
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.65)
SXP2 HG 7
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.6)
SXP2 HG 8
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.55)
SXP2 HG 10
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.50)
SXP2 HG 12
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_ScaleVelocity(0.45)
SXP2 HG 15
TNT1 A 0 A_STOP
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HG 25
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
SXP2 HGHGHGHGH 1 A_FadeOut(0.1)
stop
}
}

actor OfficialDarkHolePlusPlusDefense1 : OfficialDarkHolePlusPlusNoIntro
{
+NOINTERACTION
+NOCLIP
//+SKYEXPLODE
+DONTBLAST
+NOBLOCKMAP
states
{
Spawn:
SXP2 G 1
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_PlaySoundEx("RaThor/Attack","Weapon")
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 2 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
SXP2 H 0 A_CustomMissile("OfficialDarkHolePlusPlusDefense2",0,0,0,CMF_TRACKOWNER)
stop
Death:
TNT1 A 0 A_GiveToTarget("SummonAnotherHolePlease", 1)
TNT1 A 0 A_GiveToTarget("DarkHoleOffensive", 1)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 1)
TNT1 A 0 A_TakeFromTarget("DarkHoleInPocket", 1)
stop
KissMe:
TNT1 A 0 A_TakeFromTarget("DarkHoleInPocket", 999)
TNT1 A 0
stop
AttackMode:
SXP2 H 0 A_SpawnItemEx("OfficialDarkHolePlusPlusNoIntro", 0, 0, 0, momx, momy, momz)
stop
}
}

actor OfficialDarkHolePlusPlusDefense2 : OfficialDarkHolePlusPlusDefense1
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
SXP2 H 0 A_CustomMissile("OfficialDarkHolePlusPlusDefense3",0,0,0,CMF_TRACKOWNER)
stop
}
}

actor OfficialDarkHolePlusPlusDefense3 : OfficialDarkHolePlusPlusDefense1
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
SXP2 H 0 A_CustomMissile("OfficialDarkHolePlusPlusDefense4",0,0,0)
stop
}
}

actor OfficialDarkHolePlusPlusDefense4 : OfficialDarkHolePlusPlusDefense1
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_JumpIfInTargetInventory("DeadFlag", 1, "NextRoundBigBoy")
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 G 3 A_Explode(6, 100, 0)
TNT1 A 0 A_JumpIfInTargetInventory("DrillFlag", 1, "KissMe")
TNT1 A 0 A_JumpIfInTargetInventory("DarkHoleOffensive", 1, "AttackMode")
TNT1 A 0 A_JumpIfCloser(100, 2)
TNT1 A 0 A_Jump(256, 3)
TNT1 A 0 A_TakeFromTarget("DarkHoleDefensive", 999)
TNT1 A 0 A_GiveToTarget("DarkHoleInPocket", 1)
TNT1 A 0
TNT1 A 0 A_TakeFromTarget("DarkHoleChakra", 1)
SXP2 H 3 A_Explode(6, 100, 0)
SXP2 H 0 A_CustomMissile("OfficialDarkHolePlusPlusDefense1",0,0,0)
stop
}
}

actor BeamSurcharge
{
PROJECTILE
+DONTBLAST
+RIPPER
+HEXENBOUNCE
bouncefactor 1.0
wallbouncefactor 1.0
bouncecount 5
scale 1.5
radius 35
height 35
speed 36
damage (13)
Reactiontime 10
damagetype "BossInstagib"
Obituary "$OB_BEAMSURCHARGE"
states
{
Spawn:
SXH3 W 0
Flying:
SXH3 W 0 A_CustomMissile("BeamSurchargeSplit",0,20,90,2,0)
SXH3 W 0 A_CustomMissile("BeamSurchargeSplit",0,20,-90,2,0)
SXH3 WX 3
SXH3 W 0 A_CustomMissile("BeamSurchargeSplit",0,20,90,2,0)
SXH3 W 0 A_CustomMissile("BeamSurchargeSplit",0,20,-90,2,0)
SXH3 YZ 3 
SXH3 Z 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor BeamSurchargeSplit
{
+DONTBLAST
damagetype "BossInstagib"
PROJECTILE
+HEXENBOUNCE
bouncefactor 1.0
wallbouncefactor 1.0
bouncecount 2
scale 3.2
radius 11
height 8
speed 24
//+RIPPER
damage (10)
Obituary "$OB_BEAMSURCHARGE"
states
{
Spawn:
CLOF A 0
CLOF A 0 A_PlaySoundEx("RaThor/Elec1", "Body")
CLOF A 1 A_PlaySoundEx("RaThor/Elec2", "Weapon")
Flying:
CLOF ABCDEF 2 //A_SpawnItemEx("BeamSurchargeSplitTrail", 0, 0, 0, 0, 0, 0)
loop
Death:
TNT1 A 0
stop
}
}

actor BeamSurchargeSplitTrail : BeamSurchargeSplit
{
Obituary "$OB_BEAMSURCHARGE"
+NOINTERACTION
states
{
Spawn:
CLOF A 0
Yes:
CLOF ABCDEF 1 A_FadeOut(0.12)
loop
Death:
TNT1 A 0
stop
}
}



actor RaThorElecGFX1
{
+NOINTERACTION
+NOGRAVITY
scale 0.12
states
{
Spawn:
SXH3 W 2
stop
}
}

actor RaThorElecGFX2 : RaThorElecGFX1
{
scale 0.25
states
{
Spawn:
SXH3 X 2
stop
}
}

actor RaThorElecGFX3 : RaThorElecGFX1
{
scale 0.37
states
{
Spawn:
SXH3 Y 2
stop
}
}

actor RaThorElecGFX4 : RaThorElecGFX1
{
scale 0.5
states
{
Spawn:
SXH3 Z 2
stop
}
}

actor RaThorElecGFX5 : RaThorElecGFX1
{
scale 0.65
}

actor RaThorElecGFX6 : RaThorElecGFX2
{
scale 0.75
}

actor RaThorElecGFX7 : RaThorElecGFX3
{
scale 0.87
}

actor RaThorElecGFX8 : RaThorElecGFX4
{
scale 1.00
}

actor RaThorElecGFX9 : RaThorElecGFX1
{
scale 1.12
}

actor RaThorElecGFX10 : RaThorElecGFX2
{
scale 1.25
}


actor RaThorStaticGiver
{
PROJECTILE
+NOINTERACTION
+DONTBLAST
reactiontime 120
states
{
Spawn:
TNT1 A 0
Elec:
TNT1 A 2 A_GiveToTarget("RaThorOpaque", 1)
TNT1 A 2 A_GiveToTarget("RaThorTranslucent", 1)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0 A_TakeFromTarget("RaThorElecToken", 999)
SXH3 A 0 A_GiveToTarget("RaThor++SpeedDemon",1)
TNT1 A 0 A_GiveToTarget("RaThorFullOpaque", 1)
stop
}
}

actor RaThorElecToken : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor RaThorOpaque : CustomInventory
{
states
{
Pickup:
DIOF V 0 A_SetTranslucent(0.8, 0)
stop
}
}

actor RaThorFullOpaque : CustomInventory
{
states
{
Pickup:
SXH3 B 0 A_PlaySoundEx("classes/Float","Auto")
DIOF V 0 A_SetTranslucent(1.00, 0)
stop
}
}

actor RaThorTranslucent : CustomInventory
{
states
{
Pickup:
DIOF V 0 A_SetTranslucent(0.3, 0)
stop
}
}


actor RaThorScreenGray : PowerProtection
{
Powerup.duration 25
Powerup.Color InverseMap
damagefactor "Potatoes", 1.0
}

actor RaThorRageAmmo : Inventory
{
inventory.amount 1
inventory.maxamount 480
}

actor DarkHoleOffensive : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor DarkHoleDefensive : Inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor DarkHoleInPocket : PowerDamage
{
damagefactor "BossInstagib", 0.76
powerup.duration 0x7FFFFFFF
}

actor DarkHoleChakra : Inventory
{
inventory.amount 1
inventory.maxamount 20
}