actor RaThorWrathBoss : BaseMM8BDMWep_CBM
{
tag "Ra Thor's Wrath"
Dropitem "RaThorWepDroppedX"
weapon.ammouse 0
weapon.ammogive 28
Obituary "$OB_RATHOR1"
Inventory.Pickupmessage "Spaghetti in my shoes! Oh no!"
weapon.ammotype "WrathAmmo"
weapon.ammotype2 "AztecAmmo"
States
{
Spawn:
C_0K E 1
loop

Ready:
RA_H A 0 ACS_ExecuteAlways(998,0,10947)
RA_H A 0 A_GunFlash("Flash.SoulAmmo")
goto Ready1
Ready1:
RA_H A 0 A_JumpIfInventory("WrathAmmo",28,"Ready2")
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed1")
RA_H A 2 A_WeaponReady(8)
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed1")
RA_H A 2 A_WeaponReady(8)
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed1")
RA_H A 0 A_GiveInventory("WrathAmmo",1)
loop
Ready2:
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed2")
RA_H A 2 A_WeaponReady
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed2")
RA_H A 2 A_WeaponReady
RA_H A 0 A_GiveInventory("WrathAmmo",1)
loop
ReadyPrimed1:
RA_H A 0 A_JumpIfInventory("WrathAmmo",28,"ReadyPrimed2")
RA_H AB 2 A_WeaponReady
RA_H A 0 A_GiveInventory("WrathAmmo",1)
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed1")
goto Ready1
ReadyPrimed2:
RA_H AB 2 A_WeaponReady
RA_H A 0 A_GiveInventory("WrathAmmo",1)
RA_H A 0 A_JumpIfInventory("ThorPrimedFlag",1,"ReadyPrimed2")
goto Ready2

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
RA_H A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
RA_H A 1 A_Raise
Loop

Flash.SoulAmmo:
TNT1 AAAAAAAA 4 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 2 A_GiveInventory("RaThorSoulAmmo_P",1)
loop

Fire:
RA_H A 0 A_JumpIfInventory("RaThorHoldFlag",1,"SuplexMainfire")
RA_H H 0 A_JumpIfInventory("ThorSoulAmmo",1,"RealFire")
RealFire:
RA_H H 1 offset(-10,40)A_GunFlash("Flash.SoulAmmo")
RA_H H 2 offset(-60,65)
RA_H H 1 offset(-30,51)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H E 0 A_GiveInventory("WrathAmmo",1)
TNT1 A 0 A_JumpIfInventory("ThorPrimedFlag",1,"lvS")
RA_H E 0 offset(-10,44)A_GiveInventory("RaThorFireCheck_P",1) 
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",4,"lv34")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",3,"lv34")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",2,"lv2")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",1,"lv1")
goto Fireend
lv1:
R4TR A 1 offset(-5,51)
R4TR B 1 offset(5,45)
Goto FireEnd
lv2:
R4TR C 1 offset(-5,51)
R4TR D 1 offset(5,45)
Goto FireEnd
lv34:
R4TR E 1 offset(-5,51)
R4TR F 1 offset(5,45)
Goto FireEnd 
lvS:
RA_H E 0 offset(-10,44)A_GiveInventory("RaThorFireCheck_P",1) 
R4TR G 1 offset(-5,51)
R4TR H 2 offset(5,45)
Goto FireEnd
FireEnd:
RA_H E 1 offset(20,36)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H C 1 offset(50,29)
RA_H C 1 offset(83,23)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H C 1 offset(116,18)
RA_H C 1 offset(152,14)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H C 1 offset(188,11)A_GunFlash("Flash.SoulAmmo")

TNT1 A 6 offset(18,88)A_GiveInventory("WrathAmmo",1)
RA_H A 1 offset(18,88)A_GiveInventory("WrathAmmo",1)
RA_H A 1 offset(12,68)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H A 1 offset(7,52)
RA_H A 1 offset(3,40)A_JumpIfInventory("PowerRage_ST",1,1)
RA_H A 0
goto Ready1

AltFire:
RA_H A 0 A_JumpIfInventory("RaThorHoldFlag",1,"SuplexAltfire")
RA_H A 0 A_JumpIfInventory("WrathAmmo",28,"GrabbyStart")
Goto NoAmmo
NoAmmo:
RA_H A 4 A_GiveInventory("WrathAmmo",1)
goto Ready1

GrabbyStart:
RA_H A 0 A_GiveInventory("VivifyDelay4",1)
RA_H A 0 A_Refire(1)

RA_H A 0 A_TakeInventory("WrathAmmo",28)
RA_H I 2 A_GunFlash("Flash.SoulAmmo")
RA_H J 2 A_TakeInventory("SuplexID",999)
RA_H K 2 A_PlaySoundEx("DesDemo/CoyoteLeap","Weapon")
RA_H K 0 A_ChangeFlag("THRUSPECIES",1)
RA_H K 0 A_TakeInventory("UnSolid",1)
RA_H K 0 A_ChangeFlag("SOLID",0)
RA_H K 0 A_GiveInventory("RaThorDashCheck_P",1)
RA_H K 0 A_GiveInventory("ThorIsLungingF",1) 
RA_H L 1 A_SpawnItemEx("RaThorGrabberCheck",8,0,-8,momx,momy,momz,0,8)
RA_H L 0 A_JumpIfInventory("SuplexID",1,"GrabbySuplex")
RA_H L 1 A_SpawnItemEx("RaThorGrabberCheck",8,0,-8,momx,momy,momz,0,8)
RA_H L 0 A_JumpIfInventory("SuplexID",1,"GrabbySuplex")
GrabbyLoop:
RA_H M 0 A_JumpIfInventory("SwoopSafeGuard",15,"GrabbyFail")
RA_H M 1 A_SpawnItemEx("RaThorGrabberCheck",8,0,-8,momx,momy,momz,0,8)
RA_H M 0 A_JumpIfInventory("SuplexID",1,"GrabbySuplex")
RA_H M 0 A_GiveInventory("SwoopSafeGuard",1)
loop
GrabbyFail:
RA_H N 2
RA_H J 0 A_GiveInventory("VivifyDelay5",1)
RA_H JI 1 A_TakeInventory("ThorIsLungingF",999)
TNT1 A 5 offset(12,68)
RA_H A 2 offset(12,68)A_GiveInventory("RaThorSuplexReset_P",1)
RA_H A 2 offset(7,52)A_TakeInventory("SwoopSafeGuard",999)
RA_H A 2 offset(3,40)
Goto Ready1

GrabbySuplex:
RA_H Q 0 A_GiveInventory("IsPerformingSuplex",1)
RA_H Q 0 A_GiveInventory("ThorIsGrabbingF",1)
RA_H Q 0 A_GiveInventory("RaThorSoulAmmoHelper")
RA_H Q 0 A_TakeInventory("ThorIsLungingF",999)
RA_H Q 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,25,100)
RA_H Q 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
RA_H Q 0 A_PlaySoundEx("KirbyNES/FoeGrab","SoundSlot6")
RA_H Q 1 ACS_NamedExecuteAlways("cbm_ZangiefStartGrab",0,CallACS("cbm_ZangiefCountInv",2)+999)

RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",350,angle*256/360,70)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",345,angle*256/360,70)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",340,angle*256/360,70)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",335,angle*256/360,70)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",330,angle*256/360,70)==0,"SuplexEscape")

RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",330,angle*256/360,70)==0,"SuplexEscape")
goto SuplexAddStart


SuplexHold:
RA_H Q 0 A_GiveInventory("RaThorHoldFlag",1)
RA_H Q 0 A_Jumpif(CallACS("cbm_ZangiefGrab",330,angle*256/360,70)==0,"SuplexEscape")
RA_H Q 1 A_WeaponReady(2)
RA_H Q 0 A_JumpIfInventory("RaThorHoldFlag",70,"SuplexRelease")
loop

SuplexRelease:
RA_H Q 0 A_GiveInventory("VivifyDelay8",1)
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",330,angle*256/360,68)==0,"SuplexEscape")
RA_H J 1 A_Jumpif(CallACS("cbm_ZangiefGrab",335,angle*256/360,66)==0,"SuplexEscape")
RA_H J 1 A_Jumpif(CallACS("cbm_ZangiefGrab",340,angle*256/360,64)==0,"SuplexEscape")
RA_H I 1 A_Jumpif(CallACS("cbm_ZangiefGrab",345,angle*256/360,62)==0,"SuplexEscape")
RA_H I 1 A_Jumpif(CallACS("cbm_ZangiefGrab",350,angle*256/360,60)==0,"SuplexEscape")
RA_H I 0 ACS_NamedExecuteAlways("cbm_ZangiefSetThrow",0,CallACS("cbm_ZangiefCountInv",2)+999,-2,-36)
goto SuplexEnd
SuplexEscape:
RA_H N 0 A_GiveInventory("VivifyDelay8",1)
//RA_H N 0 ACS_NamedExecuteAlways("cbm_ZangiefGiver",0,4,CallACS("cbm_ZangiefCountInv",2)+999)//Disable invun on grabbed player
RA_H N 2 A_FireCustomMissile("RaThorAtomicEscape",0,0,0,0)
goto SuplexEnd
SuplexMainfire:
RA_H G 0 A_GiveInventory("VivifyDelay10",1)
RA_H G 0 A_Refire(1)
RA_H G 1 offset(-2,62)A_Jumpif(CallACS("cbm_ZangiefGrab",310,angle*256/360,78)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",290,angle*256/360,86)==0,"SuplexEscape")
RA_H G 1 offset(2,42)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",285,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(-3,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(3,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(-4,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(4,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(-5,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(5,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(-6,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(6,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 offset(-8,22)A_Jumpif(CallACS("cbm_ZangiefGrab",300,angle*256/360+128,100)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",280,angle*256/360+128,105)==0,"SuplexEscape")
RA_H G 1 offset(8,22)A_Jumpif(CallACS("cbm_ZangiefGrab",280,angle*256/360,110)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",310,angle*256/360,150)==0,"SuplexEscape")

RA_H O 0 ACS_NamedExecuteAlways("cbm_ZangiefSetThrow",0,CallACS("cbm_ZangiefCountInv",2)+999,64,48)
RA_H O 0 A_SpawnItemEx("RaThorAtomicThrowSnd",100,0,100)
RA_H O 2 A_FireCustomMissile("RaThorAtomicThrow",0,0,0,0)
RA_H P 1 A_TakeInventory("ThorIsGrabbingF",999)
RA_H P 1 offset(-12,62)
TNT1 A 5 
goto SuplexEnd

//===========
SuplexAddStart:
RA_H G 0 A_SetArg(0, args[0]+15)

SuplexAltfire:
RA_H G 0 A_GiveInventory("VivifyDelay6",1)
RA_H G 0 A_Refire(1)
RA_H Q 1 offset(0,12)A_Jumpif(CallACS("cbm_ZangiefGrab",325,angle*256/360,80)==0,"SuplexEscape")
RA_H Q 1 offset(0,-12)A_Jumpif(CallACS("cbm_ZangiefGrab",320,angle*256/360,90)==0,"SuplexEscape")
RA_H N 0 A_JumpIfInventory("ThorPrimedFlag",1,"SuplexThrow")
TNT1 A 0 A_ChangeVelocity(14*cos(pitch),0,4*-sin(pitch),3)
TNT1 A 0 ThrustThingZ(0,25+args[0],0,1)
SuplexAltLoop:
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",315,angle*256/360,100)==0,"SuplexEscape")//110
TNT1 A 0 ThrustThingZ(0,8,1,1)
TNT1 A 0 A_CheckFloor("SuplexAltSlam")
loop
SuplexAltSlam:
RA_H Q 0 //A_PlaySoundEx("misc/hugequake","Voice")
RA_H Q 0 A_GiveInventory("VivifyDelay5",1)
RA_H Q 0 A_WeaponReady(14)
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",330,angle*256/360,95)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",345,angle*256/360,90)==0,"SuplexEscape")
RA_H Q 1 A_Jumpif(CallACS("cbm_ZangiefGrab",359,angle*256/360,80)==0,"SuplexEscape")
RA_H N 0 ACS_NamedExecuteAlways("cbm_ZangiefSetThrow",0,CallACS("cbm_ZangiefCountInv",2)+999,8,-800)
// [BG] Weird jumps by Bullgator :tm:
RA_H N 0 A_JumpIf(args[0] == 15, "FirstSlam")
RA_H N 0 A_JumpIf(args[0] == 30, "SecondSlam")
RA_H N 0 A_JumpIf(args[0] == 45, "ThirdSlam")
RA_H N 0 A_JumpIf(args[0] == 60, "FourthSlam")
RA_H N 0 A_JumpIf(args[0] >= 75, "FifthSlam")
goto SuplexAltSlam2

FirstSlam: RA_H N 0 A_FireCustomMissile("RaThorAtomicSlams2",0,0,0) goto SuplexAltSlam2
SecondSlam: RA_H N 0 A_FireCustomMissile("RaThorAtomicSlams2",0,0,0) goto SuplexAltSlam2
ThirdSlam: RA_H N 0 A_FireCustomMissile("RaThorAtomicSlams2",0,0,0) goto SuplexAltSlam2
FourthSlam: RA_H N 0 A_FireCustomMissile("RaThorAtomicSlams2",0,0,0) goto SuplexAltSlam2
FifthSlam: RA_H N 0 A_FireCustomMissile("RaThorAtomicSlams2",0,0,0) goto SuplexAltSlam2

SuplexAltSlam2:
RA_H N 2 A_GiveInventory("WeaponCharge",1)
goto SuplexDelay

SuplexDelay:
RA_H N 0 A_JumpIfInventory("ThorPrimedFlag",1,1)
goto SuplexEnd
RA_H N 0 A_JumpIfInventory("ThorSoulAmmo",1,1)
goto SuplexEndX
RA_H N 0 A_TakeInventory("ThorSoulAmmo",1)
RA_H N 0 A_JumpIfInventory("WeaponCharge",5,"SuplexEndX")
TNT1 A 5
goto SuplexAddStart

SuplexThrow: 

//RA_H G 0 A_GiveInventory("VivifyDelay10",1)
RA_H G 0 ACS_NamedExecuteWithResult("BULL_SetState",1)
RA_H G 0 A_Refire(1)
RA_H G 1 offset(-2,62)A_Jumpif(CallACS("cbm_ZangiefGrab",310,angle*256/360,78)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",290,angle*256/360,86)==0,"SuplexEscape")
RA_H G 1 offset(2,42)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape") 
RA_H G 1 offset(-5,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 offset(5,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 offset(-6,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 offset(6,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 offset(-8,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")//A_Jumpif(CallACS("cbm_ZangiefGrab",280,angle*256/360+128,105)==0,"SuplexEscape")
RA_H G 1 offset(8,22)A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape")//A_Jumpif(CallACS("cbm_ZangiefGrab",280,angle*256/360,110)==0,"SuplexEscape")
RA_H O 0 A_SpawnItemEx("RaThorAtomicThrowCrashDetection",0,0,40,5,0,40,0,1)
RA_H G 1 A_Jumpif(CallACS("cbm_ZangiefGrab",270,angle*256/360,94)==0,"SuplexEscape") 
RA_H O 0 ACS_NamedExecuteAlways("cbm_ZangiefSetThrow",0,CallACS("cbm_ZangiefCountInv",2)+999,ACS_NamedExecuteWithResult("LAIPOTENUSAXD2",0),ACS_NamedExecuteWithResult("LAIPOTENUSAXD2",1)) //40 -25
RA_H O 0 A_TakeInventory("ThorSoulAmmo",1)
RA_H O 0 A_TakeInventory("ThorPrimedFlag",1)
RA_H O 0 A_SpawnItemEx("RaThorAtomicThrowSnd",100,0,100)
RA_H O 2 A_FireCustomMissile("RaThorAtomicThrow",0,0,0,0) 
RA_H P 1 A_TakeInventory("ThorIsGrabbingF",999)
RA_H P 1 offset(-12,62)
TNT1 A 5 
goto SuplexEnd

SuplexEndX:
RA_H G 0 A_TakeInventory("ThorPrimedFlag",1)
//===============
SuplexEnd:
RA_H G 0 A_SetArg(0, 0)
TNT1 A 0 A_TakeInventory("BasicArmor",999)
TNT1 A 0 A_TakeInventory("IsPerformingSuplex",999)
TNT1 A 0 A_TakeInventory("ThorIsGrabbingF",999)
TNT1 A 0 A_TakeInventory("WeaponCharge",999)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,100,100)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,125,10)
TNT1 A 5 offset(12,68)
//TNT1 A 0 A_WeaponReady(14)
RA_H A 2 offset(12,68)A_GiveInventory("RaThorSuplexReset_P",1)
RA_H A 2 offset(7,52)
RA_H A 2 offset(3,40)
Goto Ready1
}
}

actor RaThorSoulAmmoHelper : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",4,"Pickup5")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",3,"Pickup4")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",2,"Pickup3")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",1,"Pickup2")
stop
Pickup2:
TNT1 A 0 A_GiveInventory("RaThorArmor1")
stop
Pickup3:
TNT1 A 0 A_GiveInventory("RaThorArmor2")
stop
Pickup4:
TNT1 A 0 A_GiveInventory("RaThorArmor3")
stop
Pickup5:
TNT1 A 0 A_GiveInventory("RaThorArmor4")
stop
}
}

actor RaThorArmor1 : BasicArmorPickup
{
Armor.Savepercent 20.001
Armor.Saveamount 20
}

actor RaThorArmor2 : BasicArmorPickup
{
Armor.Savepercent 40.001
Armor.Saveamount 40
}

actor RaThorArmor3 : BasicArmorPickup
{
Armor.Savepercent 60.001
Armor.Saveamount 60
}

actor RaThorArmor4 : BasicArmorPickup
{
Armor.Savepercent 80.001
Armor.Saveamount 80
}

actor WrathAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor AztecAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor ThorSoulAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 4
+INVENTORY.IGNORESKILL
}

actor RaThorSpawnGraphic : PowerUp
{
Powerup.Duration 59
}

actor RaThorHoldFlag : Inventory
{
inventory.amount 1
inventory.maxamount 70
}

actor ThorIsLungingF : OnceC{}
actor ThorIsGrabbingF : OnceC{}
actor ThorPrimedFlag : OnceC{}
actor CanHarvestSouls : OnceC{}


actor ThorPrimeItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "RATHRICO"
Tag "$TAGC_KE2"
inventory.pickupmessage "whomst"
scale 2.0
+INVBAR
states
{
Spawn:
RA_H [ 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("VivifyDelay9",1,"No")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"No")
TNT1 A 0 A_JumpIfInventory("ThorPrimedFlag",1,"Use3")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",1,"Use2")
fail
Use2:
TNT1 A 0 A_GiveInventory("ThorPrimedFlag",1)
TNT1 A 0 A_GiveInventory("VivifyDelay9",1)
TNT1 A 0 A_PlaySoundEx("item/RaThorUse",4)
fail
Use3:
TNT1 A 0 A_TakeInventory("ThorPrimedFlag",1)
TNT1 A 0 A_GiveInventory("VivifyDelay9",1)
TNT1 A 0 A_PlaySoundEx("item/RaThorUse",4)
fail
No:
TNT1 A 0
fail
}
}

actor RaThorSpawnStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("RaThorSpawnGraphic",1)
TNT1 A 0
stop
}
}

actor RaThorDashCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz==0,"Grounded")
goto Aired
Aired:
TNT1 A 0 A_ChangeVelocity(40*cos(pitch),0,((pitch>=15&&pitch<=89)*8+8)*-sin(pitch),3)
TNT1 A 0 ThrustThingZ(0,(pitch<=15||pitch>=270)*(28-(pitch<=15)*pitch),0,1)
stop
Grounded:
TNT1 A 0 A_ChangeVelocity(40*cos(pitch)+4,0,12*-sin(pitch),3)
TNT1 A 0 ThrustThingZ(0,28,0,1)
stop
}
}

actor RaThorSuplexReset_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("SuplexID",999)
TNT1 A 0 A_TakeInventory("ZangiefAngle",255)
TNT1 A 0 A_TakeInventory("SwoopSafeGuard",999)
TNT1 A 0 A_TakeInventory("RaThorHoldFlag",999)

TNT1 A 0 A_CheckFlag("SOLID","No")
TNT1 A 0 A_ChangeFlag("THRUSPECIES",0)
TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
stop
No:
TNT1 A 0
stop
}
}

actor RaThorSoulAmmo_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("AztecAmmo",1)
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",4,2)
TNT1 A 0 A_JumpIfInventory("AztecAmmo",28,"Pickup2")
TNT1 A 0
stop
Pickup2:
TNT1 A 0 A_PlaySound("item/RaThorSoul",3,1.0)
TNT1 A 0 A_GiveInventory("ThorSoulAmmo",1)
TNT1 A 0 A_TakeInventory("AztecAmmo",999)
stop
}
}

actor ThorSoul : CustomInventory //this drops on death like scoreball
{
inventory.amount 1
inventory.maxamount 0
inventory.pickupmessage "Picked up a Soul!"
+FLOATBOB
+NOGRAVITY
ReactionTime 115
scale 2.0
States
{
Spawn:
RA_H X 0
RA_H XYZXYZ 3 A_SpawnItemEx("ThorSoulFX",0,0,8,random(-5,5),random(-5,5),random(-5,5),random(0,359),1)
RA_H X 0 A_Stop
goto SpawnL
SpawnL:
RA_H XYZ 3 A_SpawnItemEx("ThorSoulFX",0,0,8,random(-5,5),random(-5,5),random(-5,5),random(0,359),1)
RA_H X 0 A_CountDown
loop
Death:
RA_H XXYYZZ 1 A_Fadeout(0.125)
stop

Pickup:
TNT1 A 0 A_JumpIfInventory("CanHarvestSouls",1,"Pickup2")
TNT1 A 0 A_JumpIfInventory("CanSnatch_F",1,"TheSnatch")
TNT1 A 0
fail
Pickup2:
TNT1 A 0 A_JumpIfInventory("RaThorWrathBoss",1,"Thor")
fail
Thor:
TNT1 A 0 A_PlaySound("item/RaThorSoul",3,1.0)
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",4,"ThorAmmo")
TNT1 A 0 A_GiveInventory("ThorSoulAmmo",1)
stop
ThorAmmo:
TNT1 A 0 A_GiveInventory("AztecAmmo",28)
stop
TheSnatch:
TNT1 A 0 A_GiveInventory("SnatchItems_P2",1)
stop
}
}

actor ThorSoulFX : BasicClientSide
{
renderstyle translucent
reactiontime 1
scale 1.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(frandom(1.25,1.5))
TNT1 A 0 A_Jump(256,1,2,3)
Spawn:
X_8C EFG 2
X_8C E 0 A_SetScale(ScaleX-frandom(0.05,0.15))
X_8C E 0 A_Fadeout(0.4)
loop
}
}

actor RaThorFireCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/RaThorPew","Weapon")
TNT1 A 0 A_JumpIfInventory("ThorPrimedFlag",1,"PrimeFire")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",4,"SoulFire4")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",3,"SoulFire3")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",2,"SoulFire2")
TNT1 A 0 A_JumpIfInventory("ThorSoulAmmo",1,"SoulFire1")
SoulFire0:
TNT1 A 0 A_GiveInventory("RaThorMain_CI",1)
stop
SoulFire1:
TNT1 A 0 A_GiveInventory("RaThorMain1_CI",1)
stop
SoulFire2:
TNT1 A 0 A_PlaySoundEx("weapon/RaThorSwayin","Body")
TNT1 A 0 A_GiveInventory("RaThorMain2_CI",1)
stop
SoulFire3:
TNT1 A 0 A_PlaySoundEx("weapon/RaThorSparky","Body")
TNT1 A 0 A_GiveInventory("RaThorMain3_CI",1)
stop
SoulFire4:
TNT1 A 0 A_GiveInventory("RaThorMain4_CI",1)
stop
PrimeFire:
TNT1 A 0 A_TakeInventory("VivifyDelay9",9)
TNT1 A 0 A_TakeInventory("ThorPrimedFlag",999)
TNT1 A 0 A_TakeInventory("ThorSoulAmmo",1)
TNT1 A 0 A_GiveInventory("WrathAmmo",1)
TNT1 A 0 //A_PlaySoundEx("weapon/RaThorPewX","Weapon")
TNT1 A 0 A_GiveInventory("RaThorMainX_CI",1)
stop
}
}

actor ThorHellDisc
{
Translation "202:202=227:227", "199:199=246:246"
PROJECTILE
damagetype "RaThor"
Obituary "$OB_RATHOR1"
reactiontime 6
damage (10)
Radius 15
Height 8
speed 55
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0 A_Jump(256,1,2,3,4)
RTHZ DCBA 2 A_CountDown
goto SpawnLOOP+1
Death:
TNT1 A 0 A_Explode(5,64,0,0,48)
Y_4D PQRSTUVWXY 1
stop
}
}
actor ThorHellDiscB : ThorHellDisc{Translation"202:202=205:205","199:199=74:74"}
actor ThorHellDiscR : ThorHellDisc{Translation"202:202=171:171","199:199=41:41"}
actor ThorHellDiscO : ThorHellDisc{Translation"202:202=104:104","199:199=128:128"}
actor ThorHellDiscP : ThorHellDisc{Translation"202:202=229:229","199:199=232:232"}

actor ThorHellVortex : ThorHellDisc
{
reactiontime 7
damage (13)
Height 14
speed 60
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0 A_Jump(256,1,4,7,10)
RTHZ E 0 A_CountDown
RTHZ EE 1 A_SpawnItemEx("ThorHellVortexFX",0,0,0,0,0,0,0,1)
RTHZ F 0 A_CountDown
RTHZ FF 1 A_SpawnItemEx("ThorHellVortexFX",0,0,0,0,0,0,0,1)
RTHZ G 0 A_CountDown
RTHZ GG 1 A_SpawnItemEx("ThorHellVortexFX",0,0,0,0,0,0,0,1)
RTHZ H 0 A_CountDown
RTHZ HH 1 A_SpawnItemEx("ThorHellVortexFX",0,0,0,0,0,0,0,1)
goto SpawnLOOP+1
Death:
TNT1 A 0 //A_PlaySoundEx("","Weapon")
TNT1 A 0 A_SetScale(2.0)
TNT1 A 0 A_Explode(5,96,0,0,32)
Y_8B ABCDEF 1 
stop
}
}
actor ThorHellVortexB : ThorHellVortex{Translation"202:202=205:205","199:199=74:74"}
actor ThorHellVortexR : ThorHellVortex{Translation"202:202=171:171","199:199=41:41"}
actor ThorHellVortexO : ThorHellVortex{Translation"202:202=104:104","199:199=128:128"}
actor ThorHellVortexP : ThorHellVortex{Translation"202:202=229:229","199:199=232:232"}

actor ThorHellVortexFX : BasicClientside
{
states
{
Spawn:
TNT1 AA 0
TNT1 A 1
TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3")
Spawn1:
TNT1 A 0 A_FadeTo(0.2,0.2,1)
Y_8C EFG 2
loop
Spawn2:
TNT1 A 0 A_FadeTo(0.2,0.2,1)
Y_8C FGE 2
loop
Spawn3:
TNT1 A 0 A_FadeTo(0.2,0.2,1)
Y_8C GEF 2
loop
}
}

actor ThorSwayShot
{
Translation "204:204=108:108", "249:249=194:194"
PROJECTILE
//SeeSound "weapon/RaThorSway"
damagetype "RaThor"
Obituary "$OB_RATHOR2"
Accuracy 1
ReactionTime 2
damage (9)
Radius 15
Height 15
speed 50
scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 1
VMFX JJ 1 A_Changevelocity(0,-3*Accuracy,0,1)
RTHZ I 2 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
RTHZ J 0 A_Changevelocity(0,18*Accuracy,0,1)
goto Spawn1
Spawn1:
RTHZ J 2 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
VMFX J 2 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
RTHZ I 2
RTHZ JJ 1 A_Changevelocity(0,-6*Accuracy,0,1)
VMFX J 0 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
VMFX JJ 1 A_Changevelocity(0,-6*Accuracy,0,1)
RTHZ IJ 2 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
VMFX J 2
RTHZ II 1 A_Changevelocity(0,6*Accuracy,0,1)
RTHZ J 0 A_SpawnItemEx("ThorSwayFX",0,0,0,0,0,0,0,1)
RTHZ JJ 1 A_Changevelocity(0,6*Accuracy,0,1)
RTHZ J 0 A_CountDown
loop
Death:
TNT1 A 1
stop
}
}
actor ThorSwayShotB : ThorSwayShot{Translation"204:204=205:205","249:249=199:199"}
actor ThorSwayShotR : ThorSwayShot{Translation"204:204=171:171","249:249=43:43"}
actor ThorSwayShotO : ThorSwayShot{Translation"204:204=104:104","249:249=131:131"}
actor ThorSwayShotP : ThorSwayShot{Translation"204:204=229:229","249:249=223:223"}

actor ThorSwayShot2 : ThorSwayShot
{
Accuracy -1
}
actor ThorSwayShot2B : ThorSwayShotB{Accuracy -1}
actor ThorSwayShot2R : ThorSwayShotR{Accuracy -1}
actor ThorSwayShot2O : ThorSwayShotO{Accuracy -1}
actor ThorSwayShot2P : ThorSwayShotP{Accuracy -1}

actor ThorSwayFX : BasicClientSide
{
scale 3.0
States
{
Spawn:
TNT1 A 1
RTHZ KLM 2
stop
}
}

actor ThorElectroOrb
{
Translation "192:192=248:248"
PROJECTILE
damagetype "RaThorShotgun"
Obituary "$OB_RATHOR3"
+THRUGHOST
+RIPPER
reactiontime 2
damage (8)
Radius 15
Height 15
speed 60
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TMFX J 2 A_SpawnItemEx("ThorElectroOrbFX",0,0,0,0,0,0,0,1)
RTHZ NOP 2 A_SpawnItemEx("ThorElectroOrbFX",0,0,0,0,0,0,0,1)
TNT1 A 0 A_Countdown
loop
Death:
TMFX J 1 A_SetScale(ScaleX-0.2)
RTHZ NOP 1 A_SetScale(ScaleX-0.2)
TMFX J 1 A_SetScale(ScaleX-0.2)
RTHZ NOP 1 A_SetScale(ScaleX-0.2)
TMFX J 1 A_SetScale(ScaleX-0.2)
RTHZ NOP 1 A_SetScale(ScaleX-0.2)
stop
}
}
actor ThorElectroOrbB : ThorElectroOrb{Translation"192:192=205:205"}
actor ThorElectroOrbR : ThorElectroOrb{Translation"192:192=171:171"}
actor ThorElectroOrbO : ThorElectroOrb{Translation"192:192=104:104"}
actor ThorElectroOrbP : ThorElectroOrb{Translation"192:192=229:229"}

actor ThorElectroOrbFX : BasicClientSide
{
renderstyle add
scale 2.0
states
{
Spawn:
TNT1 A 0 A_Fadeout(0.5)
TMFX R 1 A_SetScale(ScaleX-0.2)
RTHZ NOP 1 A_SetScale(ScaleX-0.2)
loop
}
}

actor ThorElectroGlobe
{
Translation "192:192=229:229", "195:195=231:231"
PROJECTILE
SeeSound "weapon/RaThorSparky"
damagetype "RaThorGlobe"
Obituary "$OB_RATHOR3"
+THRUACTORS
reactiontime 3
Radius 16
Height 24
speed 40
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeBit",0,0,0,sqrt(momx*momx+momy*momy),9,momz,0,1)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeBit",0,0,0,sqrt(momx*momx+momy*momy),-9,momz,0,1)
RTHZ QQ 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX2",0,0,0,0,0,0,0,1)
RTHZ RR 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX3",0,0,0,0,0,0,0,1)
RTHZ SS 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX4",0,0,0,0,0,0,0,1)
RTHZ TT 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX5",0,0,0,0,0,0,0,1)
RTHZ UU 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX6",0,0,0,0,0,0,0,1)
RTHZ VV 1 A_Explode(2,48,0,0,48)
TNT1 A 0 A_SpawnItemEx("ThorElectroGlobeFX1",0,0,0,0,0,0,0,1)
TNT1 A 0 A_Countdown
TNT1 A 0 A_PlaySoundEx("weapon/RaThorSparky",2)
loop
Death:
RTHZ QRSTUV 1 A_SetScale(ScaleX-0.4)
stop
}
}
actor ThorElectroGlobeB : ThorElectroGlobe{Translation"192:192=205:205","195:195=74:74"}
actor ThorElectroGlobeR : ThorElectroGlobe{Translation"192:192=171:171","195:195=41:41"}
actor ThorElectroGlobeO : ThorElectroGlobe{Translation"192:192=104:104","195:195=128:128"}
actor ThorElectroGlobeP : ThorElectroGlobe{Translation"192:192=229:229","195:195=232:232"}

actor ThorElectroGlobeBit : ThorElectroOrb
{
Obituary "$OB_RATHOR3"
-THRUGHOST
-RIPPER
reactiontime 1
}

actor ThorElectroGlobeFX1 : BasicClientSide
{
renderstyle add
Mass 1
scale 2.5
states
{
Spawn:
TNT1 A 0
Spawn2:
RTHZ Q 0 A_Fadeout(0.125)
RTHZ Q 1 A_SetScale(ScaleX-0.15)
RTHZ R 0 A_Fadeout(0.125)
RTHZ R 1 A_SetScale(ScaleX-0.15)
RTHZ S 0 A_Fadeout(0.125)
RTHZ S 1 A_SetScale(ScaleX-0.15)
RTHZ T 0 A_Fadeout(0.125)
RTHZ T 1 A_SetScale(ScaleX-0.15)
RTHZ U 0 A_Fadeout(0.125)
RTHZ U 1 A_SetScale(ScaleX-0.15)
RTHZ V 0 A_Fadeout(0.125)
RTHZ V 1 A_SetScale(ScaleX-0.15)
loop
}
}
actor ThorElectroGlobeFX2 : ThorElectroGlobeFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+2
}
}
actor ThorElectroGlobeFX3 : ThorElectroGlobeFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+4
}
}
actor ThorElectroGlobeFX4 : ThorElectroGlobeFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+6
}
}
actor ThorElectroGlobeFX5 : ThorElectroGlobeFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+8
}
}
actor ThorElectroGlobeFX6 : ThorElectroGlobeFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+10
}
}


actor ThorSpiritBombBlocker : BasicShieldHitbox
{
+INVULNERABLE
species "DumbRaThorBlocker"
painchance 0
Radius 76
Height 108
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Warp(2,0,0,-54,0,24)
TNT1 A 0 A_CheckFlag("NOGRAVITY","Spawn",2)
stop
}
}

actor RaThorSpiritProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "RaThorSpirit", 0.0
}

actor RaThorShotgunProtect : PowerProtection
{
Powerup.Duration 3
DamageFactor "RaThorShotgun", 0.5
}

actor ThorGlobeProtect : PowerProtection
{
Powerup.Duration 2
DamageFactor "RaThorShotgun", 0.0
}

actor ThorSpiritBomb
{
Translation "250:250=250:250", "199:199=246:246"
//PROJECTILE
SeeSound "weapon/RaThorPewX"
damagetype "RaThorSpirit"
Obituary "$OB_RATHOR4"
-SOLID
+NOGRAVITY
+THRUACTORS
+THRUSPECIES
species "DumbRaThorBlocker"
damage (0)
Radius 10
Height 10
speed 10
scale 2.5
States
{
Spawn:
TNT1 A 0
TNT1 A 0 
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0 A_SpawnItemEx("ThorSpiritBombBlocker")
TNT1 A 0 A_ChangeFlag("MISSILE",1)
Spawn2:
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX1",0,0,0,0,0,0,0,1) 
RTHZ WXXWYY 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX2",0,0,0,0,0,0,0,1)
RTHZ WZZWXX 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX3",0,0,0,0,0,0,0,1)
RTHZ WYYWZZ 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SetPitch(pitch+1)
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX1",0,0,0,0,0,0,0,1)
RTHZ WXXWYY 1 A_Explode(2,96,0,0,96)
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX2",0,0,0,0,0,0,0,1)
RTHZ WZZWXX 1 A_Explode(2,96,0,0,96)
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX3",0,0,0,0,0,0,0,1)
RTHZ WYYWZZ 1 A_Explode(2,96,0,0,96)
RTHZ W 0 A_SetPitch(pitch+1)
TNT1 A 0 A_StopSound(2)
RTHZ W 0 A_PlaySound("weapon/RaThorPewXL",3,1.0,1)
Spawn3: 
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX1",0,0,0,0,0,0,0,1) 
RTHZ WXXWYY 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX2",0,0,0,0,0,0,0,1)
RTHZ WZZWXX 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SpawnItemEx("ThorSpiritBombFX3",0,0,0,0,0,0,0,1)
RTHZ WYYWZZ 1 A_Explode(2,96,0,0,96) 
RTHZ W 0 A_SetPitch(pitch+1) 
Loop
Death:
TNT1 A 0 A_ChangeFlag("MISSILE",1)
TNT1 A 0 A_StopSound(2)
TNT1 A 0 A_PlaySound("weapon/RaThorPewZ",3)
TNT1 A 0 A_SetDamageType("RaThor")
TNT1 A 0 A_Explode(6+(pitch>1)*5+(pitch>3)*5,156,0,0,56)
TNT1 A 3 A_SpawnItemEx("ThorShockWaveSpawner",0,0,0,0,0,0,0,1)
stop
}
}
actor ThorSpiritBombB : ThorSpiritBomb{Translation"250:250=196:196","199:199=74:74"}
actor ThorSpiritBombR : ThorSpiritBomb{Translation"250:250=170:170","199:199=41:41"}
actor ThorSpiritBombO : ThorSpiritBomb{Translation"250:250=138:138","199:199=128:128"}
actor ThorSpiritBombP : ThorSpiritBomb{Translation"250:250=214:214","199:199=232:232"}

actor ThorSpiritBombFX1 : BasicClientSide
{
reactiontime 1
renderstyle add
scale 2.0
states
{
Spawn:
TNT1 A 0
Spawn2:
TNT1 A 0 A_Fadeout(0.15)
RTHZ W 1 A_SetScale(ScaleX-0.1)
RTHZ X 1
RTHZ X 1 A_SetScale(ScaleX-0.1)
RTHZ W 1
RTHZ Y 1 A_SetScale(ScaleX-0.1)
RTHZ Y 1
TNT1 A 0 A_Fadeout(0.15)
RTHZ W 1 A_SetScale(ScaleX-0.1)
RTHZ Z 1
RTHZ Z 1 A_SetScale(ScaleX-0.1)
RTHZ W 1
RTHZ X 1 A_SetScale(ScaleX-0.1)
RTHZ X 1
TNT1 A 0 A_Fadeout(0.15)
RTHZ W 1 A_SetScale(ScaleX-0.1)
RTHZ Y 1
RTHZ Y 1 A_SetScale(ScaleX-0.1)
RTHZ W 1
RTHZ Z 1 A_SetScale(ScaleX-0.1)
RTHZ Z 1
loop
}
}
actor ThorSpiritBombFX2 : ThorSpiritBombFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+7
}
}
actor ThorSpiritBombFX3 : ThorSpiritBombFX1
{
states
{
Spawn:
TNT1 A 0
goto Spawn2+14
}
}

actor ThorShockWaveSpawner : BasicExplosion
{
damagetype "RaThor"
Obituary "$OB_RATHOR4"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,15,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,45,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,75,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,105,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,135,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,165,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,195,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,225,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,255,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,285,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,315,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,330,1)
TNT1 A 0 A_SpawnItemEx("ThorShockWave",0,0,0,30,0,0,345,1)
TNT1 A 2
stop
}
}

actor RaThorWaveProtect : PowerProtection
{
Powerup.Duration 6
DamageFactor "RaThorWave", 0.2
}

actor ThorShockWave
{
PROJECTILE
damagetype "RaThorWave"
Obituary "$OB_RATHOR4X"
+FLOORHUGGER
+THRUACTORS
+THRUSPECIES
species "DumbRaThorBlocker"
Damage (9)
Radius 32
Height 32
Speed 30
Scale 2.0
States
{
Spawn:
Y_0E S 0
Y_0E S 1
Y_0E S 12 A_ChangeFlag("THRUACTORS",0)
Y_0E S 1 A_FadeOut(0.25)
wait
Death:
TNT1 A 1
stop
}
}

actor RaThorGrabberCheck
{
//+NOINTERACTION
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
+NOEXPLODEFLOOR
+DONTBLAST
+DONTREFLECT
+HITTRACER
+THRUGHOST
+THRUSPECIES
species "DumbRaThorBlocker"
height 64
radius 64
renderstyle none
states
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Crash:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
//TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerplayer")==1,"GiveSuplexT")
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"GiveSuplex")
stop
GiveSuplexT:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 0 A_GiveToTarget("IsPerformingSuplex",1)
TNT1 A 4 A_GiveToTarget("SuplexID",(ACS_ExecuteWithResult(147,1)-1000)+1)
stop
GiveSuplex:
TNT1 A 0 A_JumpIfInTargetInventory("SuplexID",1,"DeathI")
TNT1 A 0 A_JumpIfInventory("IsPerformingSuplex",1,"DeathJ",8)
TNT1 A 0 A_GiveToTarget("IsPerformingSuplex",1)
TNT1 A 0 A_GiveToTarget("SuplexID",(ACS_ExecuteWithResult(147,1)-1000)+1)
TNT1 A 1 A_GiveInventory("TempPitProtect_P",1,8)
Carry:
TNT1 A 0 A_GiveInventory("TempPitProtect_P",1,8)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"DeathD")
TNT1 A 1 //A_GiveToTarget("",1)
TNT1 A 1 A_JumpIfInTargetInventory("ThorIsGrabbingF",1,"Carry")
StopCarry:
TNT1 A 1 //A_TakeFromTarget("",9)
stop


DeathD:
TNT1 A 1 //A_LOG("OWNER IS DEAD!")
stop
DeathI:
TNT1 A 1 //A_LOG("FAILED, OWNER HAS ID")
stop
DeathJ:
TNT1 A 1 //A_LOG("FAILED, CAN'T GRAB SOMEONE GRABBING!")
stop
Death:
TNT1 A 1
stop
}
}

actor RaThorAtomicThrowSnd : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_ExecuteAlways(C_SET_POINTER,0,8,CallACS("cbm_ZangiefCountInv",2,2)+999)
TNT1 A 0 A_PlaySoundEx("weapon/torchkickland","Weapon")
TNT1 AAAAAAAAAAAAAAA 1 A_Warp(8,0,0,28,0,24)
TNT1 A 10
stop
}
}

actor RaThorAtomicThrow : BasicExplosion
{
Obituary "$OB_RATHOR5"
damagetype "RaThorThrow"
+NOCLIP
+NOTARGETSWITCH
Mass 15
States
{
Spawn:
TNT1 A 0
TNT1 A 0 Thing_Move(0,CallACS("cbm_ZangiefCountInv",2,2)+999,1)
TNT1 A 4 A_Explode(Mass,24,0,1,24)
stop
}
}

actor RathorWaveXSlam : MercuryBlobWaveFX {+THRUACTORS +THRUGHOST +NOCLIP}

actor RaThorAtomicSlam : RaThorAtomicThrow
{
+NOINTERACTION
Obituary "$OB_RATHOR6"
damagetype "RaThorSlam"
Mass 6
States
{
Spawn:
TNT1 A 0
TNT1 A 0 Thing_ChangeTID(0,12000+ACS_ExecuteWithResult(257,0))
TNT1 A 0 ACS_NamedExecuteAlways("BULL_TeamTranslation",0)
TNT1 A 2
TNT1 A 0 A_Warp(AAPTR_Target, 80, 0, 12, 0, WARPF_NoCheckPosition)
TNT1 A 0 Thing_Move(0,CallACS("cbm_ZangiefCountInv",2,2)+999,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,0,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,30,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,60,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,90,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,120,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,150,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,180,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,210,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,240,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,270,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,300,1)
TNT1 A 0 A_SpawnItemEx("RathorWaveXSlam",0,0,-28,12,0,0,330,1)
TNT1 A 0 A_Explode(Mass,15,0,1,15)
stop
}
}
actor RaThorAtomicEscape : RaThorAtomicThrow
{
Obituary "$OB_RATHOR7"
damagetype "RaThor"
Mass 14
}

actor RaThorAtomicSlams1 : RaThorAtomicSlam {Mass 10}
actor RaThorAtomicSlams2 : RaThorAtomicSlam {Mass 15}
actor RaThorAtomicSlams3 : RaThorAtomicSlam {Mass 15}
actor RaThorAtomicSlams4 : RaThorAtomicSlam {Mass 15}
actor RaThorAtomicSlams5 : RaThorAtomicSlam {Mass 15}

actor RaThorSlamFloorChecker
{
var int user_Z;
PROJECTILE
+DONTREFLECT
+DONTBLAST
renderstyle none
damage (0)
radius 16
height 4
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_Z",Z)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
TNT1 AAAAAA 1 A_Warp(2,0,0,-2,0,8)
stop
Death:
TNT1 A 0 //A_LogInt(user_Z-Z)
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death2")
TNT1 A 0 A_SpawnItemEx("GroundDirt_Thor",0,0,0,0,0,0,0,1)
TNT1 A 0 //A_TakeFromTarget("",9999)
TNT1 A 0 //A_GiveToTarget("",1)
TNT1 A 5
stop
Death2:
TNT1 A 0
stop
}
}

actor GroundDirt_ThorRockFX
{
+MISSILE
+THRUACTORS
+CLIENTSIDEONLY
+NOPAIN
-SOLID
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+BOUNCEONFLOORS
+DONTSPLASH
WALLBOUNCEFACTOR 0.8
BOUNCEFACTOR 0.35
BounceCount 4
Damage (0)
radius 2
height 2
scale 1.0
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_SetScale(frandom(0.75,1.25))
TNT1 A 0 A_Jump(256,1,2,3)
Spawn1:
POWB U 1
wait
Spawn2:
POWB V 1
wait
Spawn3:
X_5C A 1
wait
Death:
TNT1 A 0 A_Stop 
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TMFX BCD 1
stop
}
}

actor PowerRaThorGroundBurst : PowerSpeed
{
powerup.duration 6
Speed 1.825
+POWERSPEED.NOTRAIL
}

actor GroundDirt_Thor : BasicHelper
{
reactiontime 45
States
{
Spawn:
TNT1 A 0
TNT1 A 0 //A_SpawnItemEx("",0,0,0,0,0,0,0,1)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GroundDirt_ThorRockFX",random(0,10),0,8,random(3,18),0,random(3,16),random(0,359),1,0)
TNT1 A 0 A_PlaySound("weapon/RaThorSlam",5,0.75)
TNT1 A 0 A_PlaySound("weapon/RaThorSlam",4,0.75)
TNT1 A 0 A_TakeFromTarget("EndBossFlashStoppered",1)
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("EndBossFlashStoppered",1,"DeathEarly")
TNT1 A 1 A_GiveToTarget("GroundDirt_Thor_P",1)
TNT1 A 0 A_CountDown
loop
DeathEarly:
TNT1 A 0 A_GiveToTarget("PowerRaThorGroundBurst",1)
Death:
TNT1 A 0 A_GiveToTarget("FlightEnable",1)
TNT1 A 0
TNT1 A 1
stop
}
}

actor GroundDirt_Thor_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0// A_Stop
TNT1 A 0 A_GiveInventory("FlightDisable",1)
stop
}
}

ACTOR RaThorAtomicThrowCrashDetection
{
  Radius 12
  Height 35
  Speed 60
  Damage 0
  scale 2
  Projectile   
  Obituary "$OB_RATHOR8"
  damagetype "RaThrowThrowX"
  Gravity 0.8
  BounceCount 99
  RenderStyle "none"
  var int user_travel; 
  +BOUNCEONCEILINGS
  +BOUNCEONWALLS
  +BOUNCEONFLOORS
  +ALLOWBOUNCEONACTORS
  +BOUNCEONACTORS
  +USEBOUNCESTATE
  +THRUGHOST  
  +HITTRACER 
  States
  {
  Spawn:
    DUO7 A 3 Bright
	TNT1 A 0 A_Stop
    Stop 
  Bounce.Actor:
    TNT1 A 0 A_ChangeFlag("THRUACTORS",1) 
    TNT1 A 0 A_JumpIf(CallACS("cbm_istracerenemy")==0,"NON")  
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TRACER_OOC)==0,"NON")   
	TNT1 A 0 A_SetUserVar("user_travel",user_travel+1)  
    SWOM A 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION)
	
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TRACER_OOC)==0,"NON")  
	TNT1 A 0 A_SetUserVar("user_travel",user_travel+1)  
    SWOM A 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION)
   BounceActorLoop:
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TRACER_OOC)==0,"NON") 
	TNT1 A 0 A_JumpIf(user_travel>18,"NON")
	TNT1 A 0 A_JumpIfInventory("RathrowVictimHitPlayer",1,"BOOM",AAPTR_TRACER)  
	TNT1 A 0 A_SetUserVar("user_travel",user_travel+1) 
    TNT1 A 0 A_GiveInventory("RathrowVictimHitChex",1,AAPTR_TRACER) 
    SWOM A 1 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION)
	Loop//Goto Bounce.Actor+2
  BOOM: 
	TNT1 A 0 A_JumpIfInventory("RathrowVictimHitPlayerCooldownCuzBugs",1,"NON",AAPTR_TRACER)  
    TNT1 A 0 A_GiveInventory("RathrowVictimHitPlayerCooldownCuzBugs",1,AAPTR_TRACER) 
    TNT1 A 0 A_SpawnItemEx("GroundDirt_Thor",0,0,-50,0,0,0,0,1)
    TNT1 A 0 A_SpawnItemEx("RaThotDeathGrip",0,0,0,0,0,0,0,1)
    Stop 
  Death:  
  NON:
    TNT1 A 0
    Stop 
  }
}

  Actor RaThotDeathGrip : BasicExplosion
  {
	Obituary "$OB_RATHOR8"
	DamageType "RaThrowThrowX"
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 5 A_Explode(20,64,0,1,64)
		Stop
	}
  }


actor RathrowVictimHitChex : CustomInventory
{
States
{
Pickup:
TNT1 A 0  
TNT1 A 0 A_SpawnItemEx("RaThorAtomicThrowColishonDetecshon3",0,0,0,0,0,40,0,1)
TNT1 A 0 A_SpawnItemEx("RaThorAtomicThrowColishonDetecshon2",0,0,0,0,40,0,0,1)
TNT1 A 0 A_SpawnItemEx("RaThorAtomicThrowColishonDetecshon2",0,0,0,0,-40,0,0,1)
TNT1 A 0 A_SpawnItemEx("RaThorAtomicThrowColishonDetecshon2",0,0,0,-40,0,0,0,1)
TNT1 A 1 A_SpawnItemEx("RaThorAtomicThrowColishonDetecshon2",0,0,0,40,0,0,0,1)
stop 
Nope:
TNT1 A 1
Stop
}
}  

ACTOR RaThorAtomicThrowColishonDetecshon2
{
  Radius 8
  Height 56
  Speed 40
  Damage 0
  Projectile 
  RenderStyle "none"
  +FORCEALLYCOLLISION
  +HITTRACER
  +NOEXPLODEFLOOR
  +THRUGHOST  
  States
  {
  Spawn:
    DUO7 A 1
	TNT1 A 0 A_Stop
    Stop
  XDeath:
    TNT1 A 0 A_JumpIf(CallACS("cbm_istracerenemy")==1,"Nor")
  Death:
    MISL B 8 Bright A_GiveToTarget("RathrowVictimHitPlayer",1)
    Stop
  Nor:
    TNT1 A 0
	Stop
  }
}

ACTOR RaThorAtomicThrowColishonDetecshon3 : RaThorAtomicThrowColishonDetecshon2
{
 Height 28
}

ACTOR ColishonDelayThor : Powerup
{
 Powerup.Duration 3
} 
ACTOR RathrowVictimHitPlayer : Powerup
{
 Powerup.Duration 3
} 
ACTOR RathrowVictimHitPlayerCooldownCuzBugs : Powerup
{
 Powerup.Duration 3
} 

actor RaThorWepDroppedX : BasicHelper
{
Translation "192:192=4:4","198:198=57:57"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEX("ThorSoul",0,0,0,random(-4,4),random(-4,4),frandom(2,3),random(0,359),1)
TNT1 A 1 A_SpawnItemEx("CopyClassUpgradeDropped",0,0,0,momx,momy,momz,0,8)
stop
}
}

actor RaThorMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorHellDisc",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorHellDiscB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorHellDiscR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorHellDiscO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorHellDiscP",0,1,8,0)
goto Done
}
}
actor RaThorMain1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorHellVortex",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorHellVortexB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorHellVortexR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorHellVortexO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorHellVortexP",0,1,8,0)
goto Done
}
}
actor RaThorMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorSwayShot",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("ThorSwayShot2",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorSwayShotB",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("ThorSwayShot2B",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorSwayShotR",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("ThorSwayShot2R",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorSwayShotO",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("ThorSwayShot2O",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorSwayShotP",0,1,8,0)
TNT1 A 0 A_FireCustomMissile("ThorSwayShot2P",0,0,8,0)
goto Done
}
}
actor RaThorMain3_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorElectroOrb",9,0,15,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrb",0,1,0,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrb",-9,0,-15,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbB",9,0,15,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbB",0,1,0,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbB",-9,0,-15,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbR",9,0,15,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbR",0,1,0,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbR",-9,0,-15,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbO",9,0,15,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbO",0,1,0,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbO",-9,0,-15,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbP",9,0,15,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbP",0,1,0,0)
TNT1 A 0 A_FireCustomMissile("ThorElectroOrbP",-9,0,-15,0)
goto Done
}
}
actor RaThorMain4_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorElectroGlobe",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorElectroGlobeB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorElectroGlobeR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorElectroGlobeO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorElectroGlobeP",0,1,8,0)
goto Done
}
}
actor RaThorMainX_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ThorSpiritBomb",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ThorSpiritBombB",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ThorSpiritBombR",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ThorSpiritBombO",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ThorSpiritBombP",0,1,8,0)
goto Done
}
}