CONST Int waterShieldAngle = 11;

Actor Pumpman : SemiWeakArmorClass
{
Player.ScoreIcon "PUMPMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "SemiWeakArmor"
player.soundclass "PumpmanC"
player.displayname "Pumpman"
player.jumpz 12
Player.ViewHeight 54
player.startitem "WaterShieldBoss"
player.startitem "Base28Ammo", 28
player.startitem "UltimateAttackItem3", 1
player.startitem "UltSoundWatcherSpawn3"
player.startitem "IsFromMM10"
States
{
Spawn:
PUMM A 0
PUMM B 1 A_JumpIf(z-floorz>0, "Jumping")
PUMM A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2
See:
PUMM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn
Jumping:
PUMM I 1 A_JumpIf(z-floorz<=0, "Land")
wait
Land:
PUMM OOO 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+2
Animation4:
Missile:
PUMM F 0 A_JumpIfInventory("WaterShieldCount",1,"Missile2")
PUMM F 0 A_JumpIfInventory("ToxicWaterShieldCount",1,"Missile2")
PUMM F 14
Goto Spawn+1
Animation1:
PUMM K 2
A1Loop:
PUMM L 1
loop
Animation2:
PUMM FFGFGFGFGFGFFF 4
goto Spawn+1
Animation3:
PUMM J 20
goto Spawn+1
Missile2:
PUMM MMMMMMMMMMMMMM 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
goto Spawn+1
JumpingMissile2:
PUMM NNNNNNNNNNNNNN 1 A_JumpIf(z-floorz<=0, "Missile2")
goto Jumping
Pain.TimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
PUMM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1
ClassPain:
PUMM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
PUMM L 0 A_JumpIfInventory("BaseCustomFlag1",1,"A1Loop")
Goto Spawn+1
ClassDeath:
PUMM H 20 ACS_ExecuteAlways(999,0,0)
PUMM H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFXMM9",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
PUMM A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("WaterShieldWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("WaterShieldWepM")
goto ClassDeath
}
}

actor WaterShieldBoss : VCBaseWeapon
{
weapon.ammotype "Base28Ammo"
Obituary "$OB_PUMPMAN3"
States
{
Ready:
TNT1 A 0
PUMH A 0 A_JumpIfInventory("WaterShieldCount",1,"Ready.Shielded")
PUMH A 0 A_JumpIfInventory("ToxicWaterShieldCount",1,"Ready.Ult")
PUMH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) PUMH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PUMH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) PUMH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PUMH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) PUMH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PUMH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) PUMH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PUMH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",0,7)) PUMH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
PUMH A 0 A_GiveInventory("Base28Ammo",1)
goto Ready

Ready.Shielded:
PUMH A 10 A_WeaponReady
PUMH A 0 A_GiveInventory("Base28Ammo",1)
PUMH A 0 A_JumpIfInventory("WaterShieldCount",1,"Ready.Shielded")
goto Ready

Ready.Ult:
PUMH A 5 A_WeaponReady
PUMH A 0 A_GiveInventory("PharaohUltCooldown")
PUMH A 0 A_GiveInventory("Base28Ammo",1)
PUMH A 0 A_JumpIfInventory("ToxicWaterShieldCount",1,"Ready.Ult")
goto Ready

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PUMH A 1 A_Lower
Loop

Select:
TNT1 A 0 ACS_ExecuteAlways(991,0,1901)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PUMH A 1 A_Raise
Loop

Fire:
PUMP M 0 A_JumpIfInventory("ToxicWaterShieldCount",1,"Fire3")
PUMP M 0 A_JumpIfInventory("WaterShieldCount",1,"Fire2")
PUMH JKLMN 1
TNT1 A 1 A_GiveInventory("BaseCustomFlag1") //Handle throw animation
PUMH OEFG 1 
PUMH F 0 ACS_NamedExecuteWithResult("VC_SetState",1)
PUMH F 0 A_FireCustomMissile("PumpHandle",0,0,-1,8)
PUMH HI 1

HandleWait:
TNT1 A 1 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",280,"HandleCatch")
loop

HandleCatch:
PUMH K 0 A_GiveInventory("BaseCustomFlag2") //Handle catch animation
PUMH F 0 ACS_NamedExecuteWithResult("VC_SetState",4)
PUMH GF 1 A_TakeInventory("CutterFlag",999)
PUMH EEEONML 1 A_TakeInventory("BaseCustomFlag1")
TNT1 A 2
PUMH KJA 1 A_TakeInventory("BaseCustomFlag2")
goto Ready

Fire2:
PUMP M 0 A_JumpIfInventory("WaterShieldCount",1,1)
goto NoAmmo2
PUMP M 0 A_GiveInventory("WaterLaunchHandler")
PUMP M 0 A_PlaySoundEx("weapon/pumpshot","Weapon")
PUMP M 0 A_PlaySoundEx("weapon/numetall","Body")
PUMH CDCDCDCDCDCD 1
PUMH A 0 A_Refire("Fire2")
PUMH A 3 A_ClearRefire

PUMP M 0 A_JumpIfInventory("WaterShieldCount",1,"Ready")
goto NoAmmo2//goto Ready

Fire3:
PUMP M 0 A_JumpIfInventory("ToxicWaterShieldCount",1,1)
goto NoAmmo
PUMP M 0 A_GiveInventory("ToxicWaterLaunchHandler")
PUMP M 0 A_PlaySoundEx("weapon/pumpshot2","Weapon")
PUMP M 0 A_PlaySoundEx("weapon/numetall2","Body")
P0MH EFEFEFEFEFEF 1
PUMH A 0 A_Refire("Fire3")
PUMH A 3 A_ClearRefire
goto Ready

Altfire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"NoAmmo")
PUMP M 0 A_JumpIfInventory("PumpAltfireCooldown",1,"NoShield")
PUMP M 0 A_JumpIfInventory("ToxicWaterShieldCount",1,"Ult.Dispel")
PUMP M 0 A_JumpIfInventory("WaterShieldCount",1,"Altfire.Dispel")
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",2)
PUMH M 0 A_GunFlash("Flash.Altfire")
PUMH JK 1
TNT1 A 1
PUMH LMOO 1
PUMH L 0 A_GiveInventory("PumpAltfireAmmoHandler",1)
PMPH D 0 A_PlaySoundEx("weapon/watershieldspawn","Weapon")
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag1",1)
TNT1 A 0 A_SpawnItemEx("WaterShield1",0,0,25,0,0,0,25)
PUMH PPPO 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag2",1)
TNT1 A 0 A_SpawnItemEx("WaterShield2",0,0,25,0,0,0,25)
PUMH OOPP 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag3",1)
TNT1 A 0 A_SpawnItemEx("WaterShield3",0,0,25,0,0,0,25)
PUMH PPOO 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag4",1)
TNT1 A 0 A_SpawnItemEx("WaterShield4",0,0,25,0,0,0,25)
PUMH OPPP 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag5",1)
TNT1 A 0 A_SpawnItemEx("WaterShield5",0,0,25,0,0,0,25)
PUMH OOOP 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag6",1)
TNT1 A 0 A_SpawnItemEx("WaterShield6",0,0,25,0,0,0,25)
PUMH PPOO 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag7",1)
TNT1 A 0 A_SpawnItemEx("WaterShield7",0,0,25,0,0,0,25)
PUMH OOPP 1
TNT1 A 0 A_GiveInventory("WaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag8",1)
TNT1 A 0 A_SpawnItemEx("WaterShield8",0,0,25,0,0,0,25)
PUMH POOO 1
TNT1 A 0 A_GiveInventory("WaterBubbleActive") //To activate the bubbbles' damaging properties
PUMH KJAA 1
goto Ready.Shielded

NoShield:
PUMP M 0
goto Ready

Altfire.Dispel:
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",3)
P0MH A 0 A_GiveInventory("WaterDispelFlag",1)
P0MH A 0 A_TakeInventory("WaterShieldCount",999)
P0MH A 0 A_PlaySoundEx("weapon/watershieldburst","Weapon")
P0MH ABC 1 A_TakeInventory("WaterShieldCount",999)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 16 A_WeaponReady(WRF_NOFIRE)
P0MH CBA 1 A_TakeInventory("WaterDispelFlag",1)
PUMH KJ 1
P0MH A 0 A_GiveInventory("PumpAltfireCooldown",56)
P0MH A 0 A_SpawnItemEx("PumpAltfireCoolDownWatcher")
goto Ready

Flash.Altfire:
PUMH QQRRSSSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TUVSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TXWSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TYZSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TUVSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TXWSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TYZSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TUVSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH TXWSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SRQ 1 A_JumpIfInventory("IsDead",1,"NoFlash")
stop

UltimateAttack:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,96)
TNT1 A 0 A_GiveInventory("PharaohUltCooldown",1)
FIRB C 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_TakeInventory("MediumUltimateAmmo",300)
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",2)
PUMH M 0 A_GunFlash("Flash.Ultimate")
PUMH JK 1
TNT1 A 1
PUMH LMOOO 1
PMPH D 0 A_PlaySoundEx("weapon/pumpult1","Weapon")
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag1",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield1",0,0,25,20,0,0,25)
PUMH PPPPO 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag2",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield2",0,0,25,0,0,0,25)
PUMH OOOPP 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag3",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield3",0,0,25,0,0,0,25)
PUMH PPOOO 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag4",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield4",0,0,25,0,0,0,25)
PUMH OPPPP 1
PUMH A 0 A_GiveInventory("PharaohUltCooldown")
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag5",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield5",0,0,25,0,0,0,25)
PUMH OOOOP 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag6",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield6",0,0,25,0,0,0,25)
PUMH PPPOO 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag7",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield7",0,0,25,0,0,0,25)
PUMH OOPPP 1
TNT1 A 0 A_GiveInventory("ToxicWaterShieldCount",1)
TNT1 A 0 A_GiveInventory("WaterActiveFlag8",1)
TNT1 A 0 A_SpawnItemEx("ToxicWaterShield8",0,0,25,0,0,0,25)
PUMH POOOOKJAAA 1 A_TakeInventory("UltAttackFlag",1)
goto Ready.Ult

Flash.Ultimate:
PUMH QQRRSSSS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TUV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TXV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TYV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TUV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TXV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TYV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TUV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SS 1 A_JumpIfInventory("IsDead",1,"NoFlash")
P0MH TXV 1 A_JumpIfInventory("IsDead",1,"NoFlash")
PUMH SSSRQ 1 A_JumpIfInventory("IsDead",1,"NoFlash")
stop

Ult.Dispel:
PUMH L 0 ACS_NamedExecuteWithResult("VC_SetState",3)
P0MH A 0 A_GiveInventory("WaterDispelFlag",1)
TNT1 A 0 A_GiveInventory("PharaohUltCooldown",1)
P0MH A 0 A_TakeInventory("ToxicWaterShieldCount",999)
P0MH A 0 A_PlaySoundEx("weapon/pumpult2","Weapon")
P0MH ABC 1
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 1 Offset(0,30)
P0MH D 1 Offset(0,32)
P0MH D 16 A_WeaponReady(WRF_NOFIRE)
P0MH CBA 1 A_TakeInventory("WaterDispelFlag",1)
PUMH KJ 1
goto Ready

NoAmmo:
PUMH A 0 A_ClearRefire
PUMH A 5 A_GiveInventory("Base28Ammo",1)
goto Ready

NoAmmo2:
PUMH A 0 A_GiveInventory("PumpAltfireCooldown",56)
PUMH A 0 A_SpawnItemEx("PumpAltfireCoolDownWatcher")
PUMH A 5 A_GiveInventory("Base28Ammo",1)
goto Ready
}
}

actor PumpHandle
{
DamageType "Pumpman"
Obituary "$OB_PUMPMAN1"
species "WaterShieldType"
+THRUSPECIES
+DONTREFLECT
Radius 16
Height 16
Scale 2.5
Damage (12)
Speed 90
+RIPPER
+SKYEXPLODE
PROJECTILE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
P0HD A 0 A_PlaySoundEx("weapon/pumphandle","Body")
P0HD ABC 3
P0HD A 0 A_PlaySoundEx("weapon/pumphandle","Body")
P0HD DDDAAABBB 1 A_ScaleVelocity(0.75)
P0HD A 0 A_CustomMissile("PumpHandleReturn1",0,0,0,0)
stop
Death:
P0HD A 0 A_PlaySoundEx("weapon/pumphandlehit","Body")
P0HD A 0 A_CustomMissile("PumpHandleReturn1",0,0,0,0)
TNT1 A 1
stop
}
}

actor PumpHandleReturn1
{
Obituary "$OB_PUMPMAN1"
+RIPPER
PROJECTILE
DamageType "PumpmanHandle"
radius 16
height 16
damage (10)
speed 40
scale 2.5
mass 16
-DONTBLAST
+NOINTERACTION
+NOCLIP
+NOGRAVITY
+SEEKERMISSILE
states
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
P0HD C 0 A_PlaySoundEx("weapon/pumphandle","Body")
P0HD C 1 A_Explode(5,32,0,0,32)
P0HD C 0 A_JumpIfCloser(42,"Death")
P0HD C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD C 1 A_Explode(5,32,0,0,32)
P0HD C 0 A_JumpIfCloser(42,"Death")
P0HD C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD D 1 A_Explode(5,32,0,0,32)
P0HD D 0 A_JumpIfCloser(42,"Death")
P0HD D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD D 1 A_Explode(5,32,0,0,32)
P0HD D 0 A_JumpIfCloser(42,"Death")
P0HD D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD D 0 A_FaceTarget
P0HD D 0 A_CustomMissile("PumpHandleReturn2",0,0,0,0)
stop
Death:
TNT1 A 0 A_GiveToTarget("CutterFlag",999)
stop
}
}

actor PumpHandleReturn2 : PumpHandleReturn1
{
mass 32
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
P0HD A 1 A_Explode(5,32,0,0,32)
P0HD A 0 A_JumpIfCloser(42,"Death")
P0HD A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD A 1 A_Explode(5,32,0,0,32)
P0HD A 0 A_JumpIfCloser(42,"Death")
P0HD A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD B 1 A_Explode(5,32,0,0,32)
P0HD B 0 A_JumpIfCloser(42,"Death")
P0HD B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD B 1 A_Explode(5,32,0,0,32)
P0HD B 0 A_JumpIfCloser(42,"Death")
P0HD B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0HD B 0 A_FaceTarget
P0HD B 0 A_CustomMissile("PumpHandleReturn1",0,0,0,0)
stop
}
}

actor WaterShield1
{
+MISSILE
Speed 0
+DONTSPLASH
+NOEXPLODEFLOOR
+FLOORCLIP
+NOGRAVITY
Damage (0)
Height 8
Radius 8
health 99999
scale 2.5
+SHOOTABLE
+NOBLOOD
+NOBLOCKMAP
-SOLID
+NOCLIP
+DONTREFLECT
painchance 256
bloodtype ""
species "WaterShieldType"
+THRUSPECIES
+DONTRIP
+GHOST
+NORADIUSDMG
var int user_warpAngle;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag1",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop1",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox1",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag1")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag1")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag1")
stop
}
}

actor WaterShield2 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag2",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop2",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
stop
}
}

actor WaterShield3 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag3",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop3",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox3",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag3")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag3")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag3")
stop
}
}

actor WaterShield4 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag4",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop4",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox4",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag4")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag4")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag4")
stop
}
}

actor WaterShield5 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag5",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop5",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox5",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag5")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag5")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag5")
stop
}
}

actor WaterShield6 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag6",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop6",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox6",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag6")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag6")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag6")
stop
}
}

actor WaterShield7 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag7",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop7",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox7",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag7")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag7")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag7")
stop
}
}

actor WaterShield8 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU A 0 A_SetUserVar("user_warpAngle",user_warpAngle+waterShieldAngle)
P0BU A 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU A 0 A_JumpIfInTargetInventory("WaterShootFlag8",1,"Death2")
P0BU A 0 A_JumpIfInTargetInventory("WaterBubblePop8",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU A 0 A_SpawnItemEx("WaterShieldBox8",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
P0BU A 1 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag8")
P0BU B 2 A_TakeFromTarget("WaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag8")
TNT1 A 0 A_SpawnItemEx("WaterShieldSpiral",0,0,0,20,0,0)
stop
Death2:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag8")
stop
}
}

actor ToxicWaterShield1 : WaterShield1
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag1",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop1",1,"Death")
P0BU A 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox1",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag1")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield2 : WaterShield2
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag2",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop2",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag2")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield3 : WaterShield3
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag3",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop3",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox3",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag3")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag3")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield4 : WaterShield4
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag4",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop4",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox4",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag4")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag4")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield5 : WaterShield5
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag5",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop5",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox5",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag5")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag5")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield6 : WaterShield6
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag6",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop6",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox6",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag6")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag6")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield7 : WaterShield7
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag7",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop7",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox7",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag7")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag7")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor ToxicWaterShield8 : WaterShield8
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU C 0 A_SetUserVar("user_warpAngle",user_warpAngle+9)
P0BU C 0 A_JumpIfInTargetInventory("WaterDispelFlag",1,"Launch")
P0BU C 0 A_JumpIfInTargetInventory("WaterShootFlag8",1,"Death2")
P0BU C 0 A_JumpIfInTargetInventory("WaterBubblePop8",1,"Death")
P0BU C 0 A_JumpIfInTargetInventory("IsTheTerminator",1,"Death")
P0BU C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU C 0 A_Warp(AAPTR_TARGET,50,0,30,user_warpAngle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
P0BU C 1 A_SpawnItemEx("ToxicWaterShieldBox8",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag8")
P0BU D 2 A_TakeFromTarget("ToxicWaterShieldCount",1)
stop
Launch:
TNT1 A 0 A_TakeFromTarget("WaterActiveFlag8")
TNT1 A 0 A_SpawnItemEx("ToxicWaterShieldSpiral",0,0,0,20,0,0)
stop
}
}

actor WaterShieldBox1
{
Obituary "$OB_PUMPMAN2"
Damage (10)
Height 8
Radius 8
health 99999
scale 2.5
+SHOOTABLE
+NOBLOOD
+NOGRAVITY
-SOLID
+MISSILE
-RIPPER
painchance 256
bloodtype ""
species "WaterShieldType"
damagetype "Pumpman"
damagefactor "Pumpman", 0.0
damagefactor "PumpmanUlt", 0.0
damagefactor "PumpmanSlow", 0.0
+DONTRIP
+THRUSPECIES
+NORADIUSDMG
+DONTREFLECT
+USEDAMAGEEVENTSCRIPT
var int user_NoOwnerDamage;//No damage from allies
States
{
Spawn:
TNT1 A 1
stop
Death:
TNT1 A 0
stop
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop1")
stop
}
}

actor WaterShieldBox2 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop2")
stop
}
}

actor WaterShieldBox3 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop3")
stop
}
}

actor WaterShieldBox4 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop4")
stop
}
}

actor WaterShieldBox5 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop5")
stop
}
}

actor WaterShieldBox6 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop6")
stop
}
}

actor WaterShieldBox7 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop7")
stop
}
}

actor WaterShieldBox8 : WaterShieldBox1
{
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop8")
stop
}
}

actor ToxicWaterShieldBox1 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop1")
stop
}
}

actor ToxicWaterShieldBox2 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop2")
stop
}
}

actor ToxicWaterShieldBox3 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop3")
stop
}
}

actor ToxicWaterShieldBox4 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop4")
stop
}
}

actor ToxicWaterShieldBox5 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop5")
stop
}
}

actor ToxicWaterShieldBox6 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop6")
stop
}
}

actor ToxicWaterShieldBox7 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop7")
stop
}
}

actor ToxicWaterShieldBox8 : WaterShieldBox1
{
Obituary "$OB_PUMPMAN3"
damagetype "PumpmanUlt"
+INVULNERABLE
States
{
XDeath:
Pain:
TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
TNT1 A 0 A_GiveToTarget("WaterBubblePop8")
stop
}
}

actor WaterBubbleActive : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop1 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop2 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop3 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop4 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop5 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop6 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop7 : Powerup
{
Powerup.Duration 5
}

actor WaterBubblePop8 : Powerup
{
Powerup.Duration 5
}

actor WaterShieldCount : Inventory
{
inventory.amount 1
inventory.maxamount 8
}

actor ToxicWaterShieldCount : Inventory
{
inventory.amount 1
inventory.maxamount 8
}

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

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

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

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

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

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

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

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

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

actor WaterShootFlag1 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag2 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag3 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag4 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag5 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag6 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag7 : Powerup
{
Powerup.Duration 5
}

actor WaterShootFlag8 : Powerup
{
Powerup.Duration 5
}

actor WaterShieldSpiral
{
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
-DONTBLAST
damagetype "Pumpman"
Obituary "$OB_PUMPMAN2"
species "WaterShieldType"
+THRUSPECIES
Speed 0
Damage (14)
radius 32
height 32
scale 2.5
var int user_speed;
var int user_maxturn;
var int user_turndivisor;
var int user_turndivisor_add;
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar("user_speed", 40)
TNT1 A 0 A_SetUserVar("user_maxturn", 1000)
TNT1 A 0 A_SetUserVar("user_turndivisor", 22)
TNT1 A 0 A_SetUserVar("user_turndivisor_add", 5)
TNT1 A 0 A_SetAngle(angle-user_maxturn/user_turndivisor)
P0BU A 1 A_ChangeVelocity(user_speed,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turndivisor_add)
loopit:
TNT1 A 0 A_SetUserVar("user_speed",user_speed+2)
TNT1 A 0 A_SetAngle(angle-user_maxturn/user_turndivisor)
P0BU A 1 A_ChangeVelocity(user_speed,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turndivisor_add)
loop
Death:
stop
}
}

actor ToxicWaterShieldSpiral : WaterShieldSpiral
{
damagetype "PumpmanUlt"
Obituary "$OB_PUMPMAN3"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_SetUserVar("user_speed", 40)
TNT1 A 0 A_SetUserVar("user_maxturn", 1000)
TNT1 A 0 A_SetUserVar("user_turndivisor", 22)
TNT1 A 0 A_SetUserVar("user_turndivisor_add", 5)
TNT1 A 0 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_SetAngle(angle-user_maxturn/user_turndivisor)
P0BU C 1 A_ChangeVelocity(user_speed,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turndivisor_add)
loopit:
TNT1 A 0 A_SetUserVar("user_speed",user_speed+2)
TNT1 A 0 A_GiveToTarget("PharaohUltCooldown")
TNT1 A 0 A_SetAngle(angle-user_maxturn/user_turndivisor)
P0BU C 1 A_ChangeVelocity(user_speed,0,0,CVF_RELATIVE|CVF_REPLACE)
TNT1 A 0 A_SetUserVar("user_turndivisor",user_turndivisor+user_turndivisor_add)
loop
}
}

actor PumpBubbleCollision : inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor PumpBubbleCheck : inventory
{
inventory.amount 1
inventory.maxamount 1
}

actor PumpTrapBubbleHP : inventory
{
inventory.amount 1
inventory.maxamount 7
}

actor PumpBubbleHP
{
species "WaterShieldType"
+THRUSPECIES
+MISSILE
Speed 0
+DONTSPLASH
Damage 0
Height 64
Radius 64
health 9999
scale 2.5
+SHOOTABLE
+NOBLOOD
-SOLID
painchance 256
bloodtype ""
+DONTRIP
+GHOST
+NORADIUSDMG
States
{
Spawn:
TNT1 A 0
TNT1 A 1
stop
Death:
TNT1 A 0 //A_PlaySound("item/protoreflect")
TNT1 A 1
stop
Pain:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("weapon/mm9pain","Weapon")
TNT1 A 2 A_GiveToTarget("PumpTrapBubbleHP",1)
stop
}
}

actor PumpAltfireCoolDown : Inventory
{
inventory.amount 1
inventory.maxamount 56
}

actor PumpAltfireCoolDownWatcher
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_TakeFromTarget("PumpAltfireCoolDown",1)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpAltfireCoolDown",1,"Spawn")
Death:
TNT1 A 0
stop
}
}

actor PumpToxicBubble
{
+MISSILE
Height 1
Radius 1
+NOINTERACTION
-SOLID
+NOGRAVITY
reactiontime 999
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("PumpDrainSound")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory2",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory2",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory2",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory1",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory3",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory3",1)
TNT1 A 0 A_CountDown
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpBubbleCollision",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("PumpTrapBubbleHP",7,"Death")
TNT1 A 1 A_GiveToTarget("PumpBubbleInventory3",1)
TNT1 A 0 A_CountDown
loop
Death:
TNT1 A 0 A_GiveToTarget("NewAfterBurn")
TNT1 A 0 A_GiveToTarget("PumpBubblePop",1)
NOFX A 0 A_TakeFromTarget("PumpBubbleVision",999)
TNT1 A 0 A_TakeFromTarget("PumpBubbleCheck")
TNT1 A 0 A_TakeFromTarget("PumpBubbleCollision")
TNT1 A 0 A_TakeFromTarget("PumpTrapBubbleHP",999)
TNT1 A 0 A_TakeFromTarget("NoThirdfire")
stop
}
}

actor PumpBubbleVision : PowerUp
{
	Powerup.Color 140 105 0, 0.5
	powerup.duration 0x7fffffff
}

actor PumpBubbleFX1
{
+CLIENTSIDEONLY
+NOINTERACTION
-SOLID
+NOGRAVITY
radius 1
height 1
renderstyle translucent
alpha 0.8
scale 3.0
States
{
Spawn:
P0BU E 0
P0BU E 1
stop
}
}


actor PumpBubbleFX2 : PumpBubbleFX1
{
States
{
Spawn:
P0BU F 0
P0BU F 1
stop
}
}

actor PumpBubbleFX3 : PumpBubbleFX1
{
States
{
Spawn:
P0BU G 0
P0BU G 1
stop
}
}

actor PumpBubblePopFX : PumpBubbleFX1
{
States
{
Spawn:
PBUB D 0
PBUB D 2 A_PlaySoundEx("weapon/mm9pain","Weapon")
stop
}
}

actor PumpBubbleInventory1 : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Pickup:
TNT1 A 0 A_JumpIf(ceilingz-z<=56,"GiveCollision")
TNT1 A 0 A_ChangeVelocity(-4,0,4,CVF_REPLACE|CVF_RELATIVE)
TNT1 A 0 A_SpawnItemEx("PumpBubbleFX1",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_JumpIfInventory("PumpUltFlag",1,"Nope")
TNT1 A 0 A_SpawnItemEx("PumpBubbleHP",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
Nope:
TNT1 A 0
stop
GiveCollision:
TNT1 A 0 A_GiveInventory("PumpBubbleCollision",1)
stop
}
}

actor PumpBubbleInventory2 : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Pickup:
TNT1 A 0 A_JumpIf(ceilingz-z<=56,"GiveCollision")
TNT1 A 0 A_ChangeVelocity(-4,0,4,CVF_REPLACE|CVF_RELATIVE)
TNT1 A 0 A_SpawnItemEx("PumpBubbleFX2",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_JumpIfInventory("PumpUltFlag",1,"Nope")
TNT1 A 0 A_SpawnItemEx("PumpBubbleHP",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
Nope:
TNT1 A 0
stop
GiveCollision:
TNT1 A 0 A_GiveInventory("PumpBubbleCollision",1)
stop
}
}

actor PumpBubbleInventory3 : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Pickup:
TNT1 A 0 A_JumpIf(ceilingz-z<=56,"GiveCollision")
TNT1 A 0 A_ChangeVelocity(-4,0,4,CVF_REPLACE|CVF_RELATIVE)
TNT1 A 0 A_SpawnItemEx("PumpBubbleFX3",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
TNT1 A 0 A_JumpIfInventory("PumpUltFlag",1,"Nope")
TNT1 A 0 A_SpawnItemEx("PumpBubbleHP",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)
Nope:
TNT1 A 0
stop
GiveCollision:
TNT1 A 0 A_GiveInventory("PumpBubbleCollision",1)
stop
}
}


actor PumpBubblePop : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("PumpBubblePopFX")
//TNT1 A 0 A_SpawnItemEx("BubbleWrapExplosion")
stop
}
}

actor PumpDrainSound : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/pumpdrain","Body")
stop
}
}

//Afterburn by JaxOf7 (ported from the TF2 damage type test file)

actor PumpAfterBurnPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("NoNewAfterBurn",1)
TNT1 A 0 A_GiveInventory("NewAfterBurn",1)
TNT1 A 0 A_GiveInventory("AfterBurnDuration",1)
stop
}
}

actor AfterBurnDuration : PowerUp
{
Powerup.Duration 999
}

actor NoNewAfterBurn : PowerUp
{
Powerup.Duration 6
}

actor NewAfterBurn : PowerUp
{
Powerup.Duration 3
}

actor AfterBurnDamageTimer : PowerUp
{
Powerup.Duration 4
}

actor PumpAfterBurn
{
Height 0
Radius 0
+NOINTERACTION
+NOCLIP
damagetype "Pumpman"
Obituary "$OB_PUMPMAN3"
PROJECTILE
states
{
Spawn:
TNT1 A 0
SpawnStart0:
TNT1 A 0 A_GiveInventory("AfterBurnDamageTimer",1)
SpawnStart:
TNT1 A 1
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"SpawnStart",AAPTR_TRACER)
Spawn2:
TNT1 A 1
TNT1 A 0 A_GiveInventory("PumpAfterburnFunc",1)
loop
Death:
TNT1 A 0
stop
}
}

actor PumpAfterburnFunc : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("AfterBurnDuration",1,"Pickup2",AAPTR_TRACER)
PickupRemove:
TNT1 A 0 Thing_Remove(0)
stop
Pickup2:
TNT1 A 0 A_JumpIfInventory("NewAfterBurn",1,"PickupRemove",AAPTR_TRACER)
TNT1 A 0 A_JumpIfInventory("AfterBurnDamageTimer",1,"PickupWait")
TNT1 A 0 A_GiveInventory("AfterBurnDamageTimer",1)
TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,ACS_NamedExecuteWithResult("TracerHeightGet")/2,0,0)
TNT1 A 0 A_RadiusGive("AfterBurnImmune",IMMUNE_RADIUS,RGF_PLAYERS|RGF_MONSTERS|RGF_OBJECTS)
TNT1 A 0 A_TakeInventory("AfterBurnImmune",1,0,AAPTR_TRACER)
TNT1 A 0 A_Explode(1,1,0,0,1)
stop
PickupWait:
TNT1 A 0
stop
}
}

actor WaterLaunchHandler : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag1",1,"Shoot1")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag2",1,"Shoot2")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag3",1,"Shoot3")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag4",1,"Shoot4")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag5",1,"Shoot5")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag6",1,"Shoot6")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag7",1,"Shoot7")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag8",1,"Shoot8")
stop
Shoot1:
TNT1 A 0 A_GiveInventory("WaterShootFlag1",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot2:
TNT1 A 0 A_GiveInventory("WaterShootFlag2",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot3:
TNT1 A 0 A_GiveInventory("WaterShootFlag3",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot4:
TNT1 A 0 A_GiveInventory("WaterShootFlag4",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot5:
TNT1 A 0 A_GiveInventory("WaterShootFlag5",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot6:
TNT1 A 0 A_GiveInventory("WaterShootFlag6",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot7:
TNT1 A 0 A_GiveInventory("WaterShootFlag7",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Shoot8:
TNT1 A 0 A_GiveInventory("WaterShootFlag8",1)
TNT1 A 0 A_TakeInventory("WaterShieldCount",1)
goto Pickup2
Pickup2:
TNT1 A 0 A_FireCustomMissile("WaterNumetBubble",-16,0,1,8)
TNT1 A 0 A_FireCustomMissile("WaterNumetBubble",16,0,1,8)
TNT1 A 0 A_FireCustomMissile("WaterNumetBubble",0,0,1,8)
stop
}
}

actor ToxicWaterLaunchHandler : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag1",1,"Shoot1")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag2",1,"Shoot2")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag3",1,"Shoot3")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag4",1,"Shoot4")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag5",1,"Shoot5")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag6",1,"Shoot6")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag7",1,"Shoot7")
TNT1 A 0 A_JumpIfInventory("WaterActiveFlag8",1,"Shoot8")
stop
Shoot1:
TNT1 A 0 A_GiveInventory("WaterShootFlag1",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot2:
TNT1 A 0 A_GiveInventory("WaterShootFlag2",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot3:
TNT1 A 0 A_GiveInventory("WaterShootFlag3",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot4:
TNT1 A 0 A_GiveInventory("WaterShootFlag4",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot5:
TNT1 A 0 A_GiveInventory("WaterShootFlag5",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot6:
TNT1 A 0 A_GiveInventory("WaterShootFlag6",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot7:
TNT1 A 0 A_GiveInventory("WaterShootFlag7",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Shoot8:
TNT1 A 0 A_GiveInventory("WaterShootFlag8",1)
TNT1 A 0 A_TakeInventory("ToxicWaterShieldCount",1)
goto Pickup2
Pickup2:
TNT1 A 0 A_FireCustomMissile("ToxicWaterNumetBubble",-8,0,1,8)
TNT1 A 0 A_FireCustomMissile("ToxicWaterNumetBubble",8,0,1,8)
TNT1 A 0 A_FireCustomMissile("ToxicWaterNumetBubble",0,0,1,8)
stop
}
}

actor WaterNumetBubble : FastProjectile
{
Obituary "$OB_PUMPMAN4"
PROJECTILE
+LOOKALLAROUND
+SKYEXPLODE
-DONTBLAST
species "WaterShieldType"
+THRUSPECIES
damagetype "PumpmanSlow"
Speed 45
Damage (12)
radius 12
height 12
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU HI 3
loop
}
}

actor PumpNumetProtect : PowerProtection
{
	powerup.duration 3
	DamageFactor "PumpmanSlow", 0.25
}

actor ToxicWaterNumetBubble : WaterNumetBubble
{
Obituary "$OB_PUMPMAN5"
damagetype "PumpmanUlt"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
P0BU JJJKKK 1 A_GiveToTarget("PharaohUltCooldown")
loop
}
}

actor PumpSlow : PowerupGiver
{
Speed 0.75
powerup.duration 140
powerup.type "PowerPumpSlower"
+INVENTORY.AUTOACTIVATE
+INVENTORY.ALWAYSPICKUP
states
{
Pickup:
TNT1 A 0 
TNT1 A 140
stop
}
}

actor PowerPumpSlower : PowerSpeed
{
Speed 0.75
Powerup.Color 192 208 248, 0.4
}

actor PumpSlowFX
{
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
reactiontime 140
damage(0)
radius 1
height 1
States
{
Spawn:
P0BU H 0 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
P0BU H 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
P0BU H 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
P0BU I 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
P0BU I 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
P0BU I 1 A_Warp(AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
P0BU H 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
P0BU H 0 A_Countdown
loop
Death:
TNT1 A 0
stop
}
}

actor PumpSlowTimer : Powerup
{
Powerup.Duration 140
}

actor PumpAltfireAmmoHandler : CustomInventory
{
States
{
Spawn:
TNT1 A 0 A_TakeInventory("Base28Ammo",7)
stop
}
}

actor PumpUltFlag : PowerUp
{
Powerup.Duration 70
}

actor PumpDrag : BasicHitBaseF
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_GiveToTarget("TempPitProtect_P",1)
Spawn2:
TNT1 A 0
TNT1 A 0 A_SetUserVar("user_HIT", ACS_ExecuteWithResult(257,0))
TNT1 A 0 A_TransferPointer(2,0,2,2)
TNT1 A 0 A_SetMass(ACS_NamedExecuteWithResult("CBM_FetchDistance")*-0.075)
TNT1 A 0 ACS_NamedExecuteAlways("CBM_JaxFlingAway",0,ACS_ExecuteWithResult(257,0),user_HIT,Mass)
stop
}
}