actor GravityHoldBoss : BaseMM8BDMWep_CBM 
{
Tag "$TAGC_5A"
dropitem "GravitySphereWepCDropped"
Weapon.AmmoUse 0
Weapon.AmmoGive 280
Obituary "$OB_GRAVITYBALL_OLD"
weapon.ammotype "ScrewGravityAmmo"
States
{
Spawn:
C_05 A 1
loop

Ready:
5A_H B 0 ACS_ExecuteAlways(998,0,DYE_GRAVITYMAN)
5A_H B 0 A_GunFlash("Flash",1)
goto Ready1

Ready1a:
5A_H A 1 A_WeaponReady
Ready1:
5A_H B 0 A_JumpIfInventory("GravityAltDelay",1,"Ready2")
5A_H B 0 A_JumpIfInventory("CeilingFlag",1,"ReadyUp1a")
5A_H A 1 A_WeaponReady
5A_H B 0 A_GiveInventory("ScrewGravityAmmo_RC",1)
loop
Ready2a:
5A_H A 1 A_WeaponReady(8)
Ready2:
5A_H B 0 A_JumpIfInventory("CeilingFlag",1,"ReadyUp2a")
5A_H A 1 A_WeaponReady(8)
5A_H B 0 A_GiveInventory("ScrewGravityAmmo_RC",1)
5A_H B 0 A_TakeInventory("GravityAltDelay",1)
5A_H B 0 A_JumpIfInventory("GravityAltDelay",1,"Ready2")
goto Ready1

ReadyUp1a:
5A_H D 1 A_WeaponReady
ReadyUp1:
5A_H D 0 A_JumpIfInventory("GravityAltDelay",1,"ReadyUp2")
5A_H D 0 A_JumpIfInventory("GroundFlag",1,"Ready1a")
5A_H D 1 A_WeaponReady
loop
ReadyUp2a:
5A_H D 1 A_WeaponReady(8)
ReadyUp2:
5A_H D 0 A_JumpIfInventory("GroundFlag",1,"Ready2a")
5A_H D 1 A_WeaponReady(8)
5A_H D 0 A_TakeInventory("GravityAltDelay",1)
5A_H D 0 A_JumpIfInventory("GravityAltDelay",1,"ReadyUp2")
goto ReadyUp1

NoAmmo:
5A_H "#" 1
Goto Ready1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
5A_H B 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
5A_H B 1 A_Raise
Loop
Fire:
//TNT1 A 0 //A_JumpIfInventory("IsBot",1,"BotFire")
5A_H A 0 A_JumpIfInventory("CeilingFlag",1,"Fire2")
goto Fire1
Fire1:
5A_H A 0 A_PlaySoundEx("weapon/gravitybuster","Weapon")
5A_H A 0 A_GiveInventory("GravitymanMain_CI",1)
5A_H BCBAA 3 A_GiveInventory("ScrewGravityAmmoFire_P",1)
goto Ready1
Fire2:
5A_H D 0 A_PlaySoundEx("weapon/retsubytivarg","Weapon")
5A_H D 0 A_GiveInventory("GravitymanMain2_CI",1)
5A_H EFEDD 3 A_GiveInventory("ScrewGravityAmmoFire_P",1)
goto ReadyUp1

Altfire:
5A_H B 0 A_JumpIfInventory("CeilingFlag",1,"AltfireH2.a")
5A_H B 0 A_JumpIfInventory("GroundFlag",1,"AltfireH1.a")
Goto Ready1


AltfireH1:
5A_H B 1 A_GiveInventory("GravityChargeFlag_RC",1)
goto AltfireH1.a+1
AltfireH1.a:
TNT1 A 0 A_JumpIfInventory("GravSphereFlying",1,"DetonateG")
5A_H C 0 A_JumpIfInventory("CeilingFlag",1,"AltfireH2")
5A_H C 0 A_JumpIfInventory("GravityChargeFlag",52,"AltfireH1.b")
5A_H C 0 A_GiveInventory("VivifyDelay8",1)
5A_H B 1 A_GiveInventory("GravityChargeFlag_RC",1)
5A_H C 0 A_Refire("AltfireH1.a")
goto Altfire1Quick
AltfireH1.b:
5A_H D 0 A_TakeInventory("VivifyDelay8",99)
goto AltfireH1.c+1
AltfireH1.c:
5A_H D 0 A_JumpIfInventory("CeilingFlag",1,"AltfireH2.b")
5A_H C 1 A_GiveInventory("ScrewGravityAmmo_RC",1)
5A_H D 0 A_Refire("AltfireH1.c")
goto Altfire1

AltfireH2:
5A_H D 1 A_GiveInventory("GravityChargeFlag_RC",1)
goto AltfireH2.a+1
AltfireH2.a:
TNT1 A 0 A_JumpIfInventory("GravSphereFlying",1,"DetonateC")
5A_H E 0 A_JumpIfInventory("GroundFlag",1,"AltfireH1")
5A_H E 0 A_JumpIfInventory("GravityChargeFlag",52,"AltfireH2.b")
5A_H E 0 A_GiveInventory("VivifyDelay8",1)
5A_H D 1 A_GiveInventory("GravityChargeFlag_RC",1)
5A_H E 0 A_Refire("AltfireH2.a")
goto Altfire2Quick
AltfireH2.b:
5A_H F 0 A_TakeInventory("VivifyDelay8",99)
goto AltfireH2.c+1
AltfireH2.c:
5A_H F 0 A_JumpIfInventory("GroundFlag",1,"AltfireH1.b")
5A_H E 1 A_RailWait
5A_H F 0 A_Refire("AltfireH2.c")
goto Altfire2

Altfire1Quick:
5A_H A 0 A_PlaySoundEx("wep_L/GravityHold","Weapon")
5A_H A 0 A_GiveInventory("GravitymanAlt1_CI",1)
5A_H G 1 ACS_ExecuteAlways(998,0,DYE_GRAVITYMANFLIP,5)
5A_H G 1 Offset(-20,6)
5A_H G 1 Offset(-47,-21)
5A_H H 2 Offset(-47,-21)
5A_H H 3 Offset(-47,-21)ACS_ExecuteAlways(998,0,DYE_GRAVITYMAN,1)
5A_H G 3 Offset(-47,-21)ACS_ExecuteAlways(998,0,DYE_GRAVITYMAN,1)
5A_H G 3 Offset(-20,6)
5A_H G 7 A_WeaponReady(14)
5A_H B 0 A_GiveInventory("GravityAltDelay_RC",1)
goto Ready2
Altfire1:
5A_H A 0 A_PlaySoundEx("weapon/gravitysphere","Weapon")
5A_H A 0 A_GiveInventory("GravitymanAlt1X_CI",1)
5A_H E 0 A_TakeInventory("ScrewGravityAmmo",60)
5A_H G 2 Offset(-20,6)
5A_H G 1 Offset(-47,-21)
5A_H H 2 Offset(-47,-21)
5A_H H 3 Offset(-47,-21)
5A_H G 3 Offset(-47,-21)
5A_H G 3 Offset(-20,6)
5A_H G 3 A_WeaponReady(14)
5A_H B 0 //A_GiveInventory("GravityAltDelay_RC",1)
goto Ready1

Altfire2Quick:
5A_H E 0 A_PlaySoundEx("wep_L/GravityHoldUp","Weapon")
5A_H E 0 A_GiveInventory("GravitymanAlt2ButNoDebuff_CI",1)
5A_H I 1 ACS_ExecuteAlways(998,0,DYE_GRAVITYMANFLIP,5)
5A_H I 1 Offset(20,58)
5A_H I 1 Offset(47,85)
5A_H J 2 Offset(47,85)
5A_H J 3 Offset(47,85)ACS_ExecuteAlways(998,0,DYE_GRAVITYMAN,1)
5A_H I 3 Offset(47,85)ACS_ExecuteAlways(998,0,DYE_GRAVITYMAN,1)
5A_H I 3 Offset(20,58)
5A_H I 7 A_WeaponReady(14)
5A_H B 0 A_GiveInventory("GravityAltDelay_RC",1)
goto ReadyUp2
Altfire2:
5A_H E 0 A_PlaySoundEx("weapon/gravitysphere","Weapon")
5A_H E 0 A_GiveInventory("GravitymanAlt2X_CI",1)
5A_H E 0 A_TakeInventory("ScrewGravityAmmo",60)
5A_H I 2 Offset(20,58)
5A_H I 1 Offset(47,85)
5A_H J 2 Offset(47,85)
5A_H J 3 Offset(47,85)
5A_H I 3 Offset(47,85)
5A_H I 3 Offset(20,58)
5A_H I 3 A_WeaponReady(14)
5A_H B 0 //A_GiveInventory("GravityAltDelay_RC",1)
goto ReadyUp1


DetonateC:
TNT1 A 0 A_GiveInventory("GravityChargeFlag",1)
5A_H I 1 Offset(20,58)
5A_H I 1 Offset(47,85)
5A_H J 2 Offset(47,85)
TNT1 A 0 A_TakeInventory("GravityChargeFlag",99)
TNT1 A 0 A_TakeInventory("GravSphereFlying",99)
5A_H J 3 Offset(47,85) 
5A_H I 3 Offset(47,85) 
5A_H I 3 Offset(20,58) 
goto ReadyUp2 
DetonateG:
TNT1 A 0 A_GiveInventory("GravityChargeFlag",1)
5A_H G 1 Offset(-20,6)
5A_H G 1 Offset(-47,-21)
5A_H H 2 Offset(-47,-21)
TNT1 A 0 A_TakeInventory("GravityChargeFlag",99)
TNT1 A 0 A_TakeInventory("GravSphereFlying",99)
5A_H H 3 Offset(-47,-21) 
5A_H G 3 Offset(-47,-21) 
5A_H G 3 Offset(-20,6)  
goto Ready2

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("GravitySwitch",1,"Flash.SwitchUp")
TNT1 A 1
loop
Flash.SwitchUp:
TNT1 A 0 A_GiveInventory("GravityFlashSwitchUp_P",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)
TNT1 A 0 A_GunFlash("Flash.Up")
goto Flash.Up
Flash.Up:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("GravitySwitch",1,"Flash.SwitchDown")
TNT1 A 1 A_GiveInventory("ReverseGravityThrust",1)
TNT1 A 0 A_JumpIfInventory("ScrewGravityAmmo",1,"Flash.Up")
goto Flash.SwitchDown
Flash.SwitchDown:
TNT1 A 0 A_GiveInventory("GravityFlashSwitchDown_P",1)
TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,15,1)
TNT1 A 0 A_GunFlash("Flash.Land")
goto Flash.Land

Flash.Land:
TNT1 A 0 A_JumpIf(z-floorz==0,"Flash.LandEnd")
TNT1 A 0 A_JumpIf(momz==0,"Flash.LandZ")
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 1
loop
Flash.LandZ:
TNT1 A 1
TNT1 A 0 A_JumpIf(z-floorz==0,"Flash.LandEnd")
TNT1 A 0 A_JumpIf(momz==0,"Flash.LandEnd")
goto Flash.Land+2

Flash.LandEnd:
TNT1 A 0 A_TakeInventory("GravitySwitchX",99)
TNT1 A 0 A_TakeInventory("GravitySwitch",99)
goto Flash

BotFire:
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"AltCheck")
TNT1 A 0 A_JumpIfInventory("ScrewGravityAmmo",280,"AltCheck")
TNT1 A 0 A_JumpIfInventory("ScrewGravityAmmo",140,"NormalFire")
FleeFire:
TNT1 A 0 A_GiveInventory("BotRetreatFlag",1)
5A_H B 0 A_PlaySoundEx("weapon/mbuster","Weapon")
5A_H B 0 A_FireCustomMissile("GravityShot",0,0,8,0)
5A_H CDCBB 3
5A_H B 0 A_GiveInventory("ScrewGravityAmmo",20)
TNT1 A 0 A_TakeInventory("BotRetreatFlag",999)
goto Ready1
NormalFire:
TNT1 A 0
goto Fire+1
AltCheck:
TNT1 A 0 A_JumpIfCloser(750,"Altfire1")
TNT1 A 0 //A_JumpIfInventory("CeilingFlag",1,2)
TNT1 A 0 A_Jump(64,"AltCheckFlip")
TNT1 A 0
goto Fire+1
AltCheckFlip:
TNT1 A 0 A_GiveInventory("GravitySwitch",1)
goto Ready1
}
}



actor ScrewGravityAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 280
+INVENTORY.IGNORESKILL
}

actor GravityChargeFlag : Inventory
{
inventory.amount 1
inventory.maxamount 52//35+17= 52
}

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

actor GravitySwitch : OnceC{}
actor GravitySwitchX : OnceC{}
actor CeilingFlag : OnceC{}
actor GroundFlag : OnceC{}

actor OnCeilingFlag : OnceC{}

actor ReverseJumped : PowerUp
{
powerup.duration 7
}

actor PowerGravityCeilingSpeed : PowerSpeed
{
Speed 2.0
powerup.duration 5
+POWERSPEED.NOTRAIL
}

actor GravitySwitchItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "GravIcon"
scale 2.0
Tag "$TAGC_5A2"
inventory.pickupmessage "Power up! Screw Gravity!"
+INVBAR
states
{
Spawn:
GRAI A 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("GravitySwitchX",1,"No")
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"Yes")
TNT1 A 0 A_JumpIfInventory("ScrewGravityAmmo",70,"Yes")
fail
Yes:
TNT1 A 0 A_GiveInventory("GravitySwitch",1)
fail
No:
TNT1 A 0
fail
}
}

actor GravityFlashSwitchUp_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/upsidedown","Body")
TNT1 A 0 A_SetGravity(-0.8)
TNT1 A 0 A_GiveInventory("CeilingFlag",1)
TNT1 A 0 A_TakeInventory("GravitySwitch",99)
TNT1 A 0 A_TakeInventory("GroundFlag",99)
TNT1 A 0 A_TakeInventory("JumpCancler",9)
TNT1 A 0 A_TakeInventory("VivifyDelay5",99)
stop
}
}

actor GravityFlashSwitchDown_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/upsidedown","Body")
TNT1 A 0 A_GiveInventory("EnvironmentGravity",1)//A_SetGravity(0.8)
TNT1 A 0 A_GiveInventory("GroundFlag",1)
TNT1 A 0 A_GiveInventory("VivifyDelay5",1)
TNT1 A 0 A_GiveInventory("GravitySwitchX",1)
TNT1 A 0 A_GiveInventory("ScrewGravityAmmoResync_P",1)
TNT1 A 0 A_TakeInventory("GravitySwitch",99)
TNT1 A 0 A_TakeInventory("OnCeilingFlag",99)
TNT1 A 0 A_TakeInventory("CeilingFlag",99)
TNT1 A 0 A_TakeInventory("JumpCancler",9)
stop
}
}

actor ScrewGravityAmmo_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"No")
TNT1 A 0 A_JumpIfInventory("GravitySwitchX",1,"No")
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("ScrewGravityAmmo",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("ScrewGravityAmmo",2)
stop
No:
TNT1 A 0
stop
}
}
actor ScrewGravityAmmoFire_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CeilingFlag",1,"No")
TNT1 A 0 A_JumpIfInventory("GravitySwitchX",1,"No")
TNT1 A 0 A_GiveInventory("ScrewGravityAmmo",1)
goto No
No:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"No_R")
TNT1 A 0 A_TakeInventory("GravityAltDelay",3)
stop
No_R:
TNT1 A 0 A_TakeInventory("GravityAltDelay",2)
stop
}
}

actor ScrewGravityAmmoResync_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ScrewGravityAmmo",5)
TNT1 A 0 A_TakeInventory("ScrewGravityAmmo",25)
stop
}
}
actor GravityChargeFlag_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("GravityChargeFlag",1)
stop
PickupR:
TNT1 A 0 A_GiveInventory("GravityChargeFlag",2)
stop
}
}
actor GravityAltDelay_RC : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("GravityAltDelay",70)
stop
PickupR:
TNT1 A 0 A_GiveInventory("GravityAltDelay",35)
stop
}
}


actor ReverseGravityThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("GroundFlag",1,4)//3
TNT1 A 0 A_SetGravity(-0.8)
//TNT1 A 0 ThrustThingZ(0,momz*4+4/*4*/,0,0/*1*/)
TNT1 A 0 A_ChangeVelocity(0,0,0.8)
TNT1 A 0 A_GiveInventory("CeilingCheck",1)
TNT1 A 0 A_TakeInventory("ScrewGravityAmmo",1)
stop
}
}

actor CeilingCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0
//TNT1 A 0 A_TakeInventory("JumpCancler",1)
TNT1 A 0 A_JumpIfInventory("GroundFlag", 1, "SpeedDown")
TNT1 A 0 A_JumpIf(z-ceilingz==0-56, "Contact")
goto SpeedDown
Contact:
TNT1 A 0 A_JumpIf(z-floorz<=0, "SpeedDown")
TNT1 A 0 //A_JumpIfInventory("OnCeilingFlag", 1, "SpeedUp")
TNT1 A 0 //A_PlaySoundEx("weapon/land","Voice")
TNT1 A 0 A_GiveInventory("OnCeilingFlag",1)
SpeedUp:
TNT1 A 0 A_GiveInventory("PowerGravityCeilingSpeed",1)
stop
SpeedDown:
TNT1 A 0 A_TakeInventory("OnCeilingFlag",99)
TNT1 A 0 A_TakeInventory("PowerGravityCeilingSpeed",99)
stop
}
}

actor ReverseJump : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("ReverseJumped",1,"NoJump")
TNT1 A 0 A_JumpIfInventory("OnCeilingFlag",1,"Jump")
stop
Jump:
TNT1 A 0 //ThrustThingZ(0,70,1,0)
//TNT1 A 0 ThrustThingZ(0,75,1,0)
//TNT1 A 0 A_Print("A jump!")
TNT1 A 0 A_ChangeVelocity(0,0,-16.0)
TNT1 A 0 A_GiveInventory("ReverseJumped",1)
TNT1 A 0 A_GiveInventory("JumpCancler",1)
TNT1 A 0 A_TakeInventory("OnCeilingFlag",99)
TNT1 A 0
stop
NoJump:
TNT1 A 0
stop
}
}


actor GravityShot
{
Translation "198:198=41:41"
PROJECTILE
damagetype "GravityM_Shot"
Obituary "$OB_GRAVITYBUSTER"
Damage (12)
radius 10
height 10
Speed 60
scale 2.5
States
{
Spawn:
TNT1 A 1
5A_H P 1
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
GoGo:
5A_H P 1
loop
GoGo2:
5A_H A 0 A_PlaySoundEx("weapon/gravitysphere","Weapon")
goto GoGo
Death:
5A_H P 1
XDeath:
GRSH A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerally")==1,"GoGo2")
stop
}
}

actor GravityShotB : GravityShot{translation "198:198=74:74"}
actor GravityShotR : GravityShot{translation "198:198=41:41"}
actor GravityShotO : GravityShot{translation "198:198=128:128"}
actor GravityShotP : GravityShot{translation "198:198=232:232"}

actor GravityShotUp : GravityShot {Obituary "$OB_GRAVITYBUSTERUP"}
actor GravityShotUpB : GravityShotB {Obituary "$OB_GRAVITYBUSTERUP"}
actor GravityShotUpR : GravityShotR {Obituary "$OB_GRAVITYBUSTERUP"}
actor GravityShotUpO : GravityShotO {Obituary "$OB_GRAVITYBUSTERUP"}
actor GravityShotUpP : GravityShotP {Obituary "$OB_GRAVITYBUSTERUP"}

actor PainGravitySmackDown_P2 : CustomInventory
{
States
{
Spawn:
TNT1 A 0 A_JumpIfInventory("FlightDisableFlag",1,"No")
TNT1 A 0 A_SpawnItemEx("PainGravitySmackDown_H")
stop
No:
TNT1 A 0
stop
}
}

actor PainGravitySmackDown_H : BasicHelper
{
ReactionTime 12
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_GiveToTarget("FlightDisable",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists")==0,"SuperDeath")
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 1 A_GiveToTarget("FlightEnable",1)
stop
SuperDeath:
TNT1 A 1
stop
}
}


actor GravityManHold1 : BasicExplosion
{
Translation "192:192=4:4", "198:198=41:41"
damagetype "GravitySmackDown"
Obituary "$OB_GRAVITYHOLD_D"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,256,0,0,256)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 A 1
stop
}
}

actor GravityManHold1B : GravityManHold1{translation "192:192=205:205", "198:198=74:74"}
actor GravityManHold1R : GravityManHold1{translation "192:192=171:171", "198:198=41:41"}
actor GravityManHold1O : GravityManHold1{translation "192:192=104:104", "198:198=128:128"}
actor GravityManHold1P : GravityManHold1{translation "192:192=229:229", "198:198=232:232"}

actor GravityManHold2 : BasicExplosion
{
Translation "192:192=4:4", "198:198=41:41"
damagetype "GravitySmackUpNoSlam"
Obituary "$OB_GRAVITYHOLD_U"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,256,0,0,256)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
stop
}
}

actor GravityManHold2B : GravityManHold2{translation "192:192=205:205", "198:198=74:74"}
actor GravityManHold2R : GravityManHold2{translation "192:192=171:171", "198:198=41:41"}
actor GravityManHold2O : GravityManHold2{translation "192:192=104:104", "198:198=128:128"}
actor GravityManHold2P : GravityManHold2{translation "192:192=229:229", "198:198=232:232"}

actor GravityManHold2NODEBUFF : BasicExplosion
{
Translation "192:192=4:4", "198:198=41:41"
damagetype "GravitySmackUpNoDebuff"
Obituary "$OB_GRAVITYHOLD_U"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,256,0,0,256)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
stop
}
}

actor GravityManHold2NODEBUFFB : GravityManHold2NODEBUFF{translation "192:192=205:205", "198:198=74:74"}
actor GravityManHold2NODEBUFFR : GravityManHold2NODEBUFF{translation "192:192=171:171", "198:198=41:41"}
actor GravityManHold2NODEBUFFO : GravityManHold2NODEBUFF{translation "192:192=104:104", "198:198=128:128"}
actor GravityManHold2NODEBUFFP : GravityManHold2NODEBUFF{translation "192:192=229:229", "198:198=232:232"}

actor GravityManHoldFX
{
-SOLID
+MISSILE
+DONTBLAST
+THRUACTORS
+CLIENTSIDEONLY
+DONTSPLASH
+BRIGHT
Damage (0)
radius 2
height 2
scale 2.5
States
{
Spawn:
5A_H Q 12
stop
}
}

actor GravityManHoldFX2 : GravityManHoldFX
{
+NOGRAVITY
States
{
Spawn:
5A_H QQQQQQQQQQQQ 1 A_SetScale(scaleX-0.15,scaleY+0.05)
stop
}
}
actor GravityManHoldFX3 : GravityManHoldFX2
{
+NOINTERACTION
}

actor GravitySmackDownCollide : BasicCollideSlam
{
Obituary "$OB_GRAVITYBALL"
//Mass 1
Meleerange 10 //3
}

actor GravitySmackDownCollideX : BasicCollideSlam
{
Obituary "$OB_GRAVITYBALLX"
//Mass 1
Meleerange 10 //3
}

actor GmanSmackD_DelayF : PowerProtection
{
powerup.duration 31
damagefactor "GravitySmackUp", 5.0
}
actor GmanSmackU_DelayF : PowerUp
{
powerup.duration 31
}

actor GravitymanSphereD
{
Translation "192:192=4:4", "198:198=41:41"
PROJECTILE
damagetype "GravitySmackUp"
Obituary "$OB_GRAVITYBALL_D"
+DONTSPLASH
ReactionTime 1
Damage (11)
Radius 11
Height 11
speed 30
Scale 3
States
{
Spawn:
TNT1 A 0
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
goto Spawn3
Spawn2:
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL OOPPQQRRSS 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL C 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL TTUUOOPPQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRSSTTUUOO 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL E 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL PPQQRRSSTT 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
loop
Spawn3:
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL OOOPPPQQQR 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL E 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRSSSTTTUU 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL UOOOPPPQQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRRSSSTTTU 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL C 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL UUOOOPPPQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL QRRRSSSTTT 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
loop

SpawnD:
"####" "#" 0
"####" "#" 1 A_CountDown
loop

Death:
GBAL B 0 A_Stop
GBAL B 0 A_SpawnItemEx("GravitymanSphereU_BoomNoSlam",0,0,0,0,0,0,0,1)
GBAL B 0 A_PlaySound("wep_L/GravityHold",1)
GBAL B 0 A_GiveTotarget("GravityAltDelay",70)
GBAL OPQRSTUO 1 A_SetScale(scaleX-0.1,scaleY-0.2)
stop
XDeath:
GBAL B 0 A_SpawnItemEx("GravitymanSphereU_Boom",0,0,0,0,0,0,0,1)
GBAL B 0 A_PlaySound("wep_L/GravityHold",1)
GBAL OPQRSTUO 1 A_SetScale(scaleX-0.1,scaleY-0.2)
stop
}
}
actor GravitymanSphereDB : GravitymanSphereD{translation "192:192=205:205", "198:198=74:74"}
actor GravitymanSphereDR : GravitymanSphereD{translation "192:192=171:171", "198:198=41:41"}
actor GravitymanSphereDO : GravitymanSphereD{translation "192:192=104:104", "198:198=128:128"}
actor GravitymanSphereDP : GravitymanSphereD{translation "192:192=229:229", "198:198=232:232"}

actor GravitymanSphereU
{
Translation "192:192=4:4", "198:198=41:41"
PROJECTILE
damagetype "GravitySmackUp"
Obituary "$OB_GRAVITYBALL_D"
+DONTSPLASH
//+FORCEPAIN
ReactionTime 1
Damage (11)
Radius 11
Height 11
speed 30
Scale -3
States
{
Spawn:
TNT1 A 0
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
goto Spawn3
Spawn2:
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL OOPPQQRRSS 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL C 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL TTUUOOPPQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRSSTTUUOO 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL E 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL PPQQRRSSTT 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
loop
Spawn3:
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL OOOPPPQQQR 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL E 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRSSSTTTUU 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL UOOOPPPQQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL D 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL RRRSSSTTTU 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL C 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL UUOOOPPPQQ 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
TNT1 A 0 A_GiveToTarget("GravSphereFlying",1)
GBAL QRRRSSSTTT 1 A_JumpIfInTargetInventory("GravityChargeFlag",1,"SpawnD")
GBAL B 0 A_PlaySound("wep_L/GSphereTravel",1,1.0)
loop

SpawnD:
"####" "#" 0
"####" "#" 1 A_CountDown
loop
Death:
GBAL B 0 A_Stop
GBAL B 0 A_SpawnItemEx("GravitymanSphereU_BoomNoSlam",0,0,0,0,0,0,0,1)
GBAL B 0 A_PlaySound("wep_L/GravityHold",1)
GBAL B 0 A_GiveTotarget("GravityAltDelay",70)
GBAL OPQRSTUO 1 A_SetScale(scaleX+0.1,scaleY+0.2)
stop
XDeath:
GBAL B 0 A_SpawnItemEx("GravitymanSphereU_Boom",0,0,0,0,0,0,0,1)
GBAL B 0 A_PlaySound("wep_L/GravityHold",1)
GBAL OPQRSTUO 1 A_SetScale(scaleX+0.1,scaleY+0.2)
stop
}
}
actor GravitymanSphereUB : GravitymanSphereU{translation "192:192=205:205", "198:198=74:74"}
actor GravitymanSphereUR : GravitymanSphereU{translation "192:192=171:171", "198:198=41:41"}
actor GravitymanSphereUO : GravitymanSphereU{translation "192:192=104:104", "198:198=128:128"}
actor GravitymanSphereUP : GravitymanSphereU{translation "192:192=229:229", "198:198=232:232"}

actor GravitymanSphereD_Boom : BasicExplosion
{
damagetype "GravitySmackDown"//GravityB1
Obituary "$OB_GRAVITYBALL_D"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(6,256,0,0,256)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX2",random(0,256),0,random(-128,256),0,0,-40,random(0,359),129)
TNT1 A 1

stop
}
}
actor GravitymanSphereU_Boom : BasicExplosion
{
//+FORCEPAIN
damagetype "GravitySmackUpNoSlam"
Obituary "$OB_GRAVITYBALL_U"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_Explode(1,256,0,0,256)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GravityManHoldFX3",random(0,256),0,random(-256,128),0,0,40,random(0,359),129)
TNT1 A 1
stop
}
}

actor GravityManHoldFXInnerWarper1
{
PROJECTILE
damage (0)
var int user_h;
Radius 0
height 3.2
alpha 0.25
scale 2.5
+THRUACTORS
+NOINTERACTION
mass 30
meleerange 60
accuracy 30
States
{
Spawn:
TNT1 AA 0
5A_H Q 0 A_SetUserVar(user_h,meleerange)
SpawnLoop:
5A_H Q 0 A_JumpIfInventory("CutterFlag",9,"FadeOut")
5A_H Q 0 A_FadeIn(.1)
5A_H Q 0 A_SetUserVar(user_h,user_h-height)
5A_H Q 1 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
5A_H Q 0 A_Warp(AAPTR_Target, accuracy, 0, user_h, mass, WARPF_NOCHECKPOSITION)
5A_H Q 0 A_GiveInventory("CutterFlag",1)
loop
FadeOut:
5A_H Q 0 A_JumpIfInventory("CutterFlag",18,"Death")
5A_H Q 1 A_FadeOut(.1)
5A_H Q 0 A_SetUserVar(user_h,user_h-height)
5A_H Q 0 A_Warp(AAPTR_Target, accuracy, 0, user_h, mass, WARPF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0
stop
}
}

actor GravityManHoldFXInnerWarper2 : GravityManHoldFXInnerWarper1{mass 60}
actor GravityManHoldFXInnerWarper3 : GravityManHoldFXInnerWarper1{mass 90}
actor GravityManHoldFXInnerWarper4 : GravityManHoldFXInnerWarper1{mass 120}
actor GravityManHoldFXInnerWarper5 : GravityManHoldFXInnerWarper1{mass 150}
actor GravityManHoldFXInnerWarper6 : GravityManHoldFXInnerWarper1{mass 180}
actor GravityManHoldFXInnerWarper7 : GravityManHoldFXInnerWarper1{mass 210}
actor GravityManHoldFXInnerWarper8 : GravityManHoldFXInnerWarper1{mass 240}
actor GravityManHoldFXInnerWarper9 : GravityManHoldFXInnerWarper1{mass 270}
actor GravityManHoldFXInnerWarper10 : GravityManHoldFXInnerWarper1{mass 300}
actor GravityManHoldFXInnerWarper11 : GravityManHoldFXInnerWarper1{mass 330}
actor GravityManHoldFXInnerWarper12 : GravityManHoldFXInnerWarper1{mass 360}

actor GravityManHoldFXOuterWarper1 : GravityManHoldFXInnerWarper1
{
height 1.6
mass 30
meleerange 47
accuracy 60
}

actor GravityManHoldFXOuterWarper2 : GravityManHoldFXOuterWarper1{mass 60}
actor GravityManHoldFXOuterWarper3 : GravityManHoldFXOuterWarper1{mass 90}
actor GravityManHoldFXOuterWarper4 : GravityManHoldFXOuterWarper1{mass 120}
actor GravityManHoldFXOuterWarper5 : GravityManHoldFXOuterWarper1{mass 150}
actor GravityManHoldFXOuterWarper6 : GravityManHoldFXOuterWarper1{mass 180}
actor GravityManHoldFXOuterWarper7 : GravityManHoldFXOuterWarper1{mass 210}
actor GravityManHoldFXOuterWarper8 : GravityManHoldFXOuterWarper1{mass 240}
actor GravityManHoldFXOuterWarper9 : GravityManHoldFXOuterWarper1{mass 270}
actor GravityManHoldFXOuterWarper10 : GravityManHoldFXOuterWarper1{mass 300}
actor GravityManHoldFXOuterWarper11 : GravityManHoldFXOuterWarper1{mass 330}
actor GravityManHoldFXOuterWarper12 : GravityManHoldFXOuterWarper1{mass 360}

actor GravitymanSphereU_BoomNoSlam : GravitymanSphereU_Boom {}

actor GravitymanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravityShot",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravityShotB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravityShotR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravityShotO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravityShotP",0,0,-8,0)
goto Done
}
}


actor GravitymanMain2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravityShotUp",0,0,8,12)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravityShotUpB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravityShotUpR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravityShotUpO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravityShotUpP",0,0,8,0)
goto Done
}
}

actor GravitymanAlt1_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravityManHold1",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravityManHold1B",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravityManHold1R",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravityManHold1O",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravityManHold1P",0,0,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("GravityChargeFlag",999)
stop
}
}
actor GravitymanAlt1X_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereD",0,0,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereDB",0,0,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereDR",0,0,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereDO",0,0,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereDP",0,0,8,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("GravityChargeFlag",999)
stop
}
}

actor GravitymanAlt2ButNoDebuff_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravityManHold2NODEBUFF",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravityManHold2NODEBUFFB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravityManHold2NODEBUFFR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravityManHold2NODEBUFFO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravityManHold2NODEBUFFP",0,0,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("GravityChargeFlag",999)
stop
}
}

actor GravitymanAlt2_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravityManHold2",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravityManHold2B",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravityManHold2R",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravityManHold2O",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravityManHold2P",0,0,0,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("GravityChargeFlag",999)
stop
}
}
actor GravitymanAlt2X_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereU",0,0,-8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereUB",0,0,-8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereUR",0,0,-8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereUO",0,0,-8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("GravitymanSphereUP",0,0,-8,0)
goto Done
Done:
TNT1 A 0 A_TakeInventory("GravityChargeFlag",999)
stop
}
}
 
ACTOR GravityWeirdSlow : CustomInventory
{
States
{
Pickup:
TNT1 A 0  
TNT1 A 0 A_ChangeVelocity(momx,momy,0,CVF_REPLACE)
stop
}
} 

ACTOR GravityWeirdSlowFall : CustomInventory
{
States
{
Pickup:
TNT1 A 0  
TNT1 A 0 A_ChangeVelocity(momx,momy,MomZ/1.2,CVF_REPLACE)
stop
}
} 

actor GravitySmackUpProtect : Powerup
{
powerup.duration 140
}
actor GravitySmackUpSlamR : Powerup
{
powerup.duration 80
}
actor GravitySmackDownThingy : Powerup
{
powerup.duration 3
}

ACTOR GravityWeirdDebuffEffects : CustomInventory
{
States
{
Pickup:
TNT1 A 0 
TNT1 A 0 A_JumpIfInTargetInventory("GravitySmackUpProtect",1,"Nada")
TNT1 A 0 A_SpawnItemEx("GravityDebuffWatcher")
stop
Nada:
TNT1 A 0 
stop
}
}  

actor GravityDebuffWatcher : BasicHelper
{
States
{
Spawn:
TNT1 AA 0 
TNT1 A 0 A_GiveToTarget("GravityDebuffFX",1)
TNT1 AAA 8 A_PlaySoundEx("wep_l/GSphereTravel","SoundSlot7")
TNT1 A 0 A_JumpIfInTargetInventory("GravitySmackUpProtect",1,"Spawn")
stop
}
}

actor GravityDebuffFX : CustomInventory
{
States
{
Pickup:
TNT1 A 0  
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper1",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper2",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper3",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper4",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper5",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper6",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper7",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper8",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper9",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper10",0,0,0,0,0,0,0,1)  
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper11",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXInnerWarper12",0,0,0,0,0,0,0,1)  
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper1",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper2",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper3",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper4",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper5",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper6",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper7",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper8",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper9",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper10",0,0,0,0,0,0,0,1)  
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper11",0,0,0,0,0,0,0,1) 
TNT1 A 0 A_SpawnItemEX("GravityManHoldFXOuterWarper12",0,0,0,0,0,0,0,1)  
stop
}
} 

ACTOR GravSphereFlying : Powerup
{
Powerup.Duration 12
}
