actor SaltWaterBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_VI"
dropitem "SaltWaterWepCDropped"
Weapon.AmmoUse 1
Weapon.AmmoGive 30
weapon.ammouse2 0
Weapon.AmmoGive2 30
Obituary "$OB_NEPTUNECLOSE"
Inventory.Pickupmessage "legit join vc so i can tell you how much bullshit that was"
weapon.ammotype "TopNepAmmo"
weapon.ammotype2 "DontDrinkThisAmmo"
+WEAPON.NOAUTOAIM
States
{
Spawn:
C_0V I 1
loop

Ready:
NEPH A 0 ACS_ExecuteAlways(998,0,DYE_NEPTUNE)
NEPH A 0 A_GunFlash
goto Ready1

Ready1:
NEPH A 0 A_JumpIfInventory("DontDrinkThisAmmo",1,"Ready2")
NEPH A 0 A_JumpIfInventory("TopNepAmmo",7,"Ready3")
NEPH A 8 A_WeaponReady(12)
NEPH A 0 A_JumpIfInventory("NeptuneSalty",1,2)
NEPH A 0 A_GiveInventory("DontDrinkThisAmmo",2)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
loop
Ready2:
NEPH A 0 A_JumpIfInventory("TopNepAmmo",7,"Ready4")
NEPH A 8 A_WeaponReady(8)
NEPH A 0 A_JumpIfInventory("NeptuneSalty",1,2)
NEPH A 0 A_GiveInventory("DontDrinkThisAmmo",2)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
loop
Ready3:
NEPH A 0 A_JumpIfInventory("DontDrinkThisAmmo",1,"Ready4")
NEPH A 8 A_WeaponReady(WRF_ALLOWRELOAD)
NEPH A 0 A_JumpIfInventory("NeptuneSalty",1,2)
NEPH A 0 A_GiveInventory("DontDrinkThisAmmo",2)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
loop
Ready4:
NEPH A 8 A_WeaponReady(WRF_ALLOWRELOAD)
NEPH A 0 A_JumpIfInventory("NeptuneSalty",1,2)
NEPH A 0 A_GiveInventory("DontDrinkThisAmmo",2)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
loop

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

Fire:
NEPH B 0 A_PlaySoundEx("weapon/neptuneshot","Weapon")
NEPH B 1 Offset(9,33) A_GiveInventory("NeptuneMainfire_P")
NEPH B 1 OffSet(-60,72)
NEPH B 1 OffSet(-111,112)
NEPH D 2 OffSet(10,33)
NEPH D 2 OffSet(-11,56)
NEPH D 2 OffSet(-25,84)
TNT1 A 13 Offset(3,92)
NEPH A 2 Offset(-7,92)
NEPH A 2 Offset(-3,62)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
Goto Ready1

Altfire:
NEPH A 1
NEPH A 0 A_JumpIfInventory("TopNepAmmo",7,1)
goto Ready1
NEPH A 0 A_GiveInventory("VivifyDelay4",1)
NEPH A 0 A_Refire(1)
NEPH A 1 Offset(3,39)
NEPH A 1 Offset(6,47)A_TakeInventory("CutterFlag",99)
NEPH A 1 Offset(9,56)
NEPH A 1 Offset(12,66)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOn_P",1)
NEPH A 0 A_JumpIf(z-floorz==0,"AltBounce2Buffer")
//NEPH A 0 A_Refire("AltBounceL")
//NEPH A 1 Offset(12,66)
//NEPH A 1 Offset(12,66)
goto AltBounceL//AltBigJump

AltBounce:
NEPH A 0 A_GiveInventory("NeptuneSmallBounce_P",1)
NEPH A 0 A_StopSound(0)
NEPH A 0 A_JumpIfInventory("TopNepAmmo",3,"AltBounceX")
goto AltBounceEnd
AltBounceX:
NEPH A 0 A_StopSound(0)
NEPH A 1
NEPH A 0 A_TakeInventory("TopNepAmmo",3)
NEPH A 0 A_GiveInventory("VivifyDelay4",1)
NEPH A 0 A_Refire("AltBounce2")
goto AltBounceEnd//AltBounceEnd

AltBounce2Buffer:
NEPH A 0 A_GiveInventory("NeptuneSmallBounce_P",1)
NEPH A 0 A_StopSound(0)
NEPH A 1
NEPH A 0 A_TakeInventory("TopNepAmmo",3)
NEPH A 0 A_GiveInventory("VivifyDelay4",1)
AltBounce2:
NEPH A 0 ACS_NamedExecuteAlways("BULL_SetState",0,1)
NEPH A 1 Offset(13,70)A_ChangeVelocity(30,0,14,3)
NEPH A 0
NEPH A 0 A_JumpIfInventory("PowerRage_ST",1,2)
NEPH AA 1 Offset(14,74)A_GiveInventory("NeptuneAltBounceThrust_P",1)
NEPH A 0 A_JumpIfInventory("PowerRage_ST",1,2)
NEPH AA 1 Offset(13,70)A_GiveInventory("NeptuneAltBounceThrust_P",1)
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceThrust_P",1)
goto AltBounceL

AltBounceL:
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceThrust_P",1)
NEPH A 0 A_JumpIfInventory("VivifyDelay6",1,"AltBouncePogo")
NEPH A 0
NEPH A 0 A_JumpIf(z-floorz==0,"AltBounce")
NEPH A 0
loop

AltBouncePogo:
NEPH A 0 A_GiveInventory("NeptuneSmallBounce_P",1)
NEPH A 0 A_StopSound(0)
NEPH A 0 A_JumpIfInventory("TopNepAmmo",3,1)
goto AltBounceEnd
NEPH A 0 A_TakeInventory("TopNepAmmo",3)
NEPH A 0 A_GiveInventory("VivifyDelay4",1)
NEPH A 0 A_Refire("AltBouncePogo2")
goto AltBounceEnd
AltBouncePogo2:
NEPH A 1 Offset(13,70)A_ChangeVelocity(30,0,momz,3)
NEPH A 0 A_TakeInventory("VivifyDelay6",9)
goto AltBounce+6

AltBounceEnd:
NEPH A 0 
NEPH A 0 A_GiveInventory("NeptuneAltJumpEnd_P",1)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOff_P",1)
NEPH A 0 A_ClearRefire
NEPH A 1 Offset(13,70)
NEPH A 2 Offset(14,74)
NEPH A 2 Offset(13,70)
NEPH A 1 Offset(12,66)
NEPH A 1 Offset(9,56)
NEPH A 1 Offset(6,47)
NEPH A 1 Offset(3,39)
Goto Ready1

AltBigJump:
NEPH A 9 Offset(12,66)A_ChangeVelocity(momx,momy,24,CVF_REPLACE)
NEPH A 1 ACS_NamedExecuteAlways("BULL_SetState",0,2)
goto AltBigJumpL
AltBigJumpL:
NEPH A 0 A_GiveInventory("LadderEnable",1)
NEPH A 0 A_TakeInventory("NoJumpCancel",999)
NEPH A 0 A_SpawnItemEx("ResolidifyPlayer_H")
NEPH A 0 A_ChangeFlag("THRUSPECIES",0)
NEPH A 0 A_JumpIfinventory("NeptuneStompStopper",1,"AltBigJumpEnd")
NEPH A 0 A_JumpIf(z-floorz==0,"AltBigJumpEnd")
NEPH A 0 A_JumpIf(momz==0,"AltBigJumpLZ")
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceLeap_P",1)
loop
AltBigJumpLZ:
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceLeap_P",1)
NEPH A 0 A_JumpIfinventory("NeptuneStompStopper",1,"AltBigJumpEnd")
NEPH A 0 A_JumpIf(z-floorz==0,"AltBigJumpEnd")
NEPH A 0 A_JumpIf(momz==0,"AltBigJumpEnd")
goto AltBigJumpL+3
AltBigJumpEnd:
NEPH A 0 A_TakeInventory("NoJumpCancel",1)
NEPH A 0 A_GiveInventory("NeptuneBigBounce_P",1)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOff_P",1)
NEPH A 0 A_GiveInventory("NeptuneStompStopper",1)
NEPH A 0 A_ClearRefire
NEPH A 1 Offset(15,76)A_Stop
NEPH A 0 A_TakeInventory("TopNepAmmo",7)
NEPH A 2 Offset(18,86)
NEPH A 2 Offset(15,76)
NEPH A 2 Offset(12,66)
NEPH A 2 Offset(9,57)
NEPH A 2 Offset(6,48)
NEPH A 2 Offset(3,40)
Goto Ready1

Reload:
NEPH A 1
NEPH A 0 A_JumpIfInventory("TopNepAmmo",7,1)
goto Ready1
NEPH A 1 Offset(3,39)A_GiveInventory("NoJumpCancel",1)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOn_P",1)
NEPH A 1 Offset(6,47)A_TakeInventory("CutterFlag",99)
NEPH A 1 Offset(9,56)
NEPH A 1 Offset(12,66)
NEPH A 1 Offset(12,66)
NEPH A 1 Offset(12,66)ACS_NamedExecute("BULL_SetState",0,1)
goto AltBigJump

Flash:
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_GiveInventory("NeptuneSaltyFlash_P",1)
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,5)
TNT1 A 0 A_JumpIfInventory("DontDrinkThisAmmo",56,2)
TNT1 A 1
loop
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX2",0,0,random(10,56),28,0,0,random(0,359),1,128)
TNT1 A 1
loop
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX1",0,0,random(10,56),28,0,0,random(0,359),1,64)
TNT1 A 1
loop
}
}

actor TopNepAmmo : Ammo
{
Inventory.amount 1
Inventory.maxamount 28
+INVENTORY.IGNORESKILL
}

actor DontDrinkThisAmmo : Ammo
{
Inventory.amount 1
Inventory.maxamount 56
+INVENTORY.IGNORESKILL
}

actor NeptuneSaltDripDelay : Powerup
{
powerup.duration 6
}
actor NeptuneSalty : OnceC {}

actor NeptuneVivifyUp : Powerup
{
Powerup.Duration 6
}
actor NeptuneVivifyDown : NeptuneVivifyUp {}

actor PowerSaltyBoat : PowerProtection
{
Powerup.Duration 0x7FFFFFFC
damagefactor "Drowning", 0.0
}

actor NeptuneSaltyWeakness : BasePowerWeak
{
damagefactor "Normal",1.25
}

actor NeptuneStompStopper : PowerSpeed
{
powerup.duration 10
speed 0
+NOTRAIL
}

actor NeptuneItem : CustomInventory
{
inventory.amount 1
inventory.maxamount 1
inventory.icon "NeptIcon"
Tag "$TAGC_VI2"
inventory.pickupmessage "There's evil afoot."
scale 2.0
+INVBAR
states
{
Spawn:
NEPH Z 1
loop
Use:
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"No")
TNT1 A 0 A_JumpIfInventory("DontDrinkThisAmmo",56,"Success")
fail
Success:
TNT1 A 0 A_GiveInventory("NeptuneSalty",1)
TNT1 A 0 A_PlaySoundEX("W_Neptune/SaltUp","SoundSlot6")
fail
No:
TNT1 A 0
fail
}
}

actor NeptuneSaltyFlash_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"FlashSalty")
goto FlashEnd+1
FlashSalty:
TNT1 A 0 A_JumpIfInventory("NeptuneSaltyWeakness",1,3)
TNT1 A 0 A_GiveInventory("NeptuneSaltyWeakness",1)
TNT1 A 0 A_GiveInventory("GuardDownFlag",1)
TNT1 A 0 A_JumpIfInventory("NeptuneSaltDripDelay",1,5)
TNT1 A 0
TNT1 A 0 A_GiveInventory("NeptuneSaltDripDelay",1)
TNT1 A 0 A_TakeInventory("DontDrinkThisAmmo",2)
TNT1 A 0 A_PlaySoundEx("W_Neptune/IsWet","Body")
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("DontDrinkThisAmmo",1,"No")
goto FlashEnd
FlashEnd:
TNT1 A 0 A_PlaySoundEX("W_Neptune/SaltDown","SoundSlot6")
TNT1 A 0 A_TakeInventory("NeptuneSalty",999)
TNT1 A 0 A_TakeInventory("NeptuneSaltyWeakness",999)
TNT1 A 0 A_TakeInventory("GuardDownFlag",999)
stop
No:
TNT1 A 0
stop
}
}

actor NeptuneMainfire_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("weapon/neptuneshot","Weapon")
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"Pickup2")
TNT1 A 0 A_GiveInventory("NeptuneMain_CI")
stop
Pickup2:
TNT1 A 0 A_PlaySound("misc/eclipsedarkball","Voice")//,0.5)
TNT1 A 0 A_TakeInventory("DontDrinkThisAmmo",1)
TNT1 A 0 A_GiveInventory("NeptuneMain2_CI")
stop
}
}

actor NeptuneAltBounceThrust_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_JumpIf(velz>=0,"Pickup_Up")
TNT1 A 0 A_JumpIf(velz<0,"Pickup_Down")
TNT1 A 0 A_GiveInventory("NeptuneVivifyUp",1)
TNT1 A 0 A_TakeInventory("NeptuneVivifyDown",9)
goto Thrust
Pickup_Down:
TNT1 A 0 A_GiveInventory("NeptuneVivifyDown",1)
TNT1 A 0 A_TakeInventory("NeptuneVivifyUp",9)
TNT1 A 0 //A_FireCustomMissile("NeptuneLeapCrush",0,0,0,-28)
TNT1 A 0 A_SpawnItemEx("NeptuneLeapCrush",2,0,0,momx,momy,-60,0,8)
goto Thrust
Thrust:
TNT1 A 0// A_JumpIfInventory("IsUnderWater",1,"Thrust_W")
TNT1 A 0 A_ChangeVelocity(0.5,0,-1,1)//A_ChangeVelocity(30,0,momz-1,3)
stop
Thrust_W:
TNT1 A 0 A_ChangeVelocity(0.5,0,-0.75,1)//A_ChangeVelocity(30,0,momz-0.75,3)
stop
}
}
actor NeptuneAltBounceLeap_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 //A_JumpIf(momz>=0,"Pickup_Up")
TNT1 A 0 A_JumpIf(momz<0,"Pickup_Down")
TNT1 A 0 A_GiveInventory("NeptuneVivifyUp",1)
TNT1 A 0 A_TakeInventory("NeptuneVivifyDown",9)
goto Thrust
Pickup_Down:
TNT1 A 0 A_GiveInventory("NeptuneVivifyDown",1)
TNT1 A 0 A_TakeInventory("NeptuneVivifyUp",9)
TNT1 A 0 //A_FireCustomMissile("NeptuneLeapCrusher",0,0,0,-28)
goto Thrust
Thrust:
TNT1 A 0 A_ChangeVelocity(0,0,-5,1)
stop
}
}

actor NeptuneAltFlagOn_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("LadderDisable",1)
TNT1 A 0 A_GiveInventory("NoJumpCancel",1)
TNT1 A 0 A_GiveInventory("PowerSaltyBoat",1)
TNT1 A 0 A_TakeInventory("UnSolid",99)
TNT1 A 0 A_ChangeFlag("SOLID",0)
TNT1 A 0 A_ChangeFlag("THRUSPECIES",1)
stop
}
}
actor NeptuneAltFlagOff_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("VivifyDelay5",1)
TNT1 A 0 A_GiveInventory("LadderEnable",1)
TNT1 A 0 A_TakeInventory("NoJumpCancel",999)
TNT1 A 0 A_TakeInventory("PowerSaltyBoat",999)
TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
TNT1 A 0 A_ChangeFlag("THRUSPECIES",0)
stop
}
}

actor NeptuneAltJumpEnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"Pickup2")
TNT1 A 0 //A_ChangeVelocity(momx*0.5,momy*0.5,momz,2)
stop
Pickup2:
TNT1 A 0 A_ChangeVelocity(momx,momy,10.5,2)//14
stop
}
}


actor NeptuneSmallBounce_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("NeptuneSmallBounceFX_H",0,0,0,0,0,0,0,1)
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"Pickup_Salty")
TNT1 A 0 A_FireCustomMissile("NeptuneSmallBounce",0,0,0,0)
stop
Pickup_Salty:
TNT1 A 0 A_FireCustomMissile("NeptuneSmallBounce2",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("NeptuneSmallBounce2FX_H",0,0,0,0,0,0,0,1)
stop
}
}

actor NeptuneSmallBounce : BasicExplosion
{
obituary "$OB_NEPTUNESTOMP"
damagetype "Neptune_Stomp"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(15,96,0,0,48)
stop
}
}
actor NeptuneSmallBounce2 : NeptuneSmallBounce
{
damagetype "Neptune_Stomp2"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(25,128,0,0,64)
stop
}
}

actor NeptuneSmallBounceFX_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_PlaySoundEx("W_Neptune/Hop","Weapon")
TNT1 A 2 A_SpawnItemEx("NeptuneSmallBounceFX",0,0,0,0,0,0,0,1)
stop
}
}
actor NeptuneSmallBounceFX : BasicClientSide
{
States
{
Spawn:
NEPH LMN 4
stop
}
}

actor NeptuneSmallBounce2FX_H : BasicHelper
{
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_SpawnItemEx("NeptuneSmallBounce2FX",0,0,0,0,0,0,0,1)
stop
}
}
actor NeptuneSmallBounce2FX : BasicClientSide
{
reactiontime 8
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H",60,0,0,0,0,0,45*reactiontime,1)
TNT1 A 0 A_Countdown
loop
}
}


actor NeptuneLeapCrusher : BasicExplosion
{
damagetype "Neptune_Crush"
Obituary "$OB_NEPTUNELEAP"
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_Explode(1,20,0,0,20)
stop
}
}

actor NeptuneLeapCrush
{
PROJECTILE
damagetype "Neptune_Leap"
Obituary "$OB_NEPTUNELEAP"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
+HITTRACER
damage (0)
Radius 28
Height 2
renderstyle none
States
{
Spawn:
TNT1 A 1
stop
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerenemy")==1,"Give")
Goto Death
Give:
TNT1 A 0 A_GiveToTarget("NeptuneLeap_Pickup",1)
Goto Death
Death:
TNT1 A 0
stop
}
}

actor Neptune_LeapProtect : PowerProtection
{
Powerup.Duration 8
DamageFactor "Neptune_Leap", 0.0
}

actor NeptuneLeap_Pickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("VivifyDelay6",1)
TNT1 A 0 A_PlaySoundEx("weapon/ToadCrush","SoundSlot6")
goto PickupT
PickupT:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"PickupT2")
goto PickupT1
PickupT1:
TNT1 A 0 ThrustThingZ(0,60,0,0)
stop
PickupT2:
TNT1 A 0 ThrustThingZ(0,112,0,0)
stop
}
}

actor NeptuneWaterSpoutFX_H
{
+MISSILE
+NOGRAVITY
+CLIENTSIDEONLY
+THRUACTORS
//+FLOORHUGGER
+STEPMISSILE
maxstepheight 16
radius 4
height 4
scale 2.5
states
{
Spawn:
TNT1 A 0
NEPH L 0 //A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,frandom(-1,1),0,frandom(5,7),random(0,359),1)
NEPH L 0 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),0,7 + random(-2,2),random(0,359),1)
NEPH L 0 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),-3,7 + random(-2,2),random(0,359),1)
NEPH L 4 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),3,7 + random(-2,2),random(0,359),1)
NEPH MN 4
stop
}
}
actor NeptuneWaterSpoutFX
{
+MISSILE
+CLIENTSIDEONLY
+THRUACTORS
+DONTSPLASH
+DONTBLAST
damage (0)
radius 4
height 5
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,1,0,1)
TNT1 A 0 A_Jump(256,1,2)
NEPH O 1 //A_Fadeout(.05)
wait
NEPH P 1 //A_Fadeout(.05)
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
NEPH POQR random(1,2)
stop
}
}

actor Neptune_FloorQuakeSpawn : BasicExplosion
{
Obituary "$OB_NEPTUNESURGE"
damagetype "Neptune_SaltQuake"
Renderstyle None
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SetScale(angle*256/360)
TNT1 A 0 Thing_Move(0,1000+momz*8,1)
TNT1 A 4 A_SpawnItemEx("Neptune_FloorQuakeBoom",0,0,28,0,0,0,0,16384)
stop
}
}
actor Neptune_FloorQuakeBoom : Hardman_FloorQuakeBoom
{
Obituary "$OB_NEPTUNESURGE"
damagetype "Neptune_SaltQuake"
}

actor NeptuneBigBounce_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_PlaySoundEx("W_Neptune/Stomp","Weapon")
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"Pickup_Salty")
TNT1 A 0 A_FireCustomMissile("NeptuneBigBounce",0,0,0,0)
TNT1 A 0 A_GiveInventory("NeptuneReload_CI",1)
stop
Pickup_Salty:
TNT1 A 0 A_FireCustomMissile("NeptuneBigBounce2",0,0,0,0)
TNT1 A 0 A_GiveInventory("NeptuneReload2_CI",1)
stop
}
}
actor NeptuneBigBounce : BasicExplosion
{
obituary "$OB_NEPTUNELEAP"
damagetype "Neptune_StompBig"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(10,72,0,0,36)//A_Explode(20,300,0,0,150)
stop
}
}
actor NeptuneBigBounce2 : NeptuneBigBounce
{
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(15,72,0,0,36)//A_Explode(30,64,0,0,40)
stop
}
}

actor NeptuneFloorHugger_H : BasicHelper
{
Translation "202:202=201:201","199:199=75:75"
+DONTSPLASH
+FLOORHUGGER
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_FloorQuakeDamage",256,15,557)
//TNT1 AAAAAA 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",256+random(-16,0),0,0,random(-2,2),0,18 + random(-2,2),random(0,359),1)
//TNT1 AAAAAA 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",256+random(-16,0),0,0,random(-2,2),-3,18 + random(-2,2),random(0,359),1)
TNT1 A 2 A_SpawnItemEx("NeptuneBigBounceFX",0,0,0,0,0,0,0,1)
stop
}
}

actor NeptuneFloorHugger_HB : NeptuneFloorHugger_H{Translation"202:202=205:205","199:199=74:74"}
actor NeptuneFloorHugger_HR : NeptuneFloorHugger_H{Translation"202:202=171:171","199:199=41:41"}
actor NeptuneFloorHugger_HO : NeptuneFloorHugger_H{Translation"202:202=104:104","199:199=128:128"}
actor NeptuneFloorHugger_HP : NeptuneFloorHugger_H{Translation"202:202=229:229","199:199=232:232"}

actor NeptuneFloorSaltyHugger_H : BasicHelper
{
Translation "202:202=201:201","199:199=75:75"
+DONTSPLASH
+FLOORHUGGER
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteWithResult("cbm_FloorQuakeDamage",512,20,557)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*1,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*2,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*3,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*4,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*7,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*8,1)
TNT1 A 1
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*1+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*2+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*3+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*4+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*5+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*6+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*7+22.5,1)
TNT1 A 0 A_SpawnItemEx("NeptuneFloorHugger",0,0,0,60,0,0,45*8+22.5,1)
TNT1 A 2
stop
}
}
actor NeptuneFloorSaltyHugger_HB : NeptuneFloorSaltyHugger_H{Translation"202:202=205:205","199:199=74:74"}
actor NeptuneFloorSaltyHugger_HR : NeptuneFloorSaltyHugger_H{Translation"202:202=171:171","199:199=41:41"}
actor NeptuneFloorSaltyHugger_HO : NeptuneFloorSaltyHugger_H{Translation"202:202=104:104","199:199=128:128"}
actor NeptuneFloorSaltyHugger_HP : NeptuneFloorSaltyHugger_H{Translation"202:202=229:229","199:199=232:232"}

actor Neptune_SaltQuakeProtect : PowerProtection
{
Powerup.Duration 20
DamageFactor "Neptune_SaltQuake", 0.0
//DamageFactor "Neptune_ShotBit", 0.0
}

actor NeptuneFloorHugger
{
//var int user_A;
PROJECTILE
obituary "$OB_NEPTUNESURGE"
damagetype "Neptune_SaltQuake"
+FLOORHUGGER
+THRUACTORS
//+STEPMISSILE
+DONTSPLASH
+DONTBLAST
//maxstepheight 16
reactiontime 9//11
radius 4
height 4
speed 60
states
{
Spawn:
TNT1 A 0
TNT1 A 1 A_CountDown
TNT1 A 0 A_Explode(20,56,0,0,56)
//NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,random(-2,2),0,21 + random(-2,2),random(0,359),1)
//NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,random(-2,2),-3,21 + random(-2,2),random(0,359),1)
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H",0,0,0,0,0,0,0,1)
TNT1 A 0 A_SetAngle(angle + 10)//+user_A
//TNT1 A 0 A_SetUserVar("user_A",user_A+0.75)
TNT1 A 0 A_ChangeVelocity(60,30,0,3)
loop
}
}

actor NeptuneBigBounceFX : BasicClientSide
{
reactiontime 12
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H",256+random(-16,0),0,0,0,0,0,30*reactiontime+random(-2,2),1)
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H",128+random(-16,0),0,0,0,0,0,30*reactiontime+random(13,17),1)
TNT1 A 0 A_Countdown
loop
Death:
TNT1 A 1
stop
}
}


actor NeptuneSaltWater
{
Translation "202:202=201:201","199:199=75:75"
PROJECTILE
obituary "$OB_SALTWATER"
damagetype "Neptune_Shot"
-NOGRAVITY
+BOUNCEONCEILINGS
-BOUNCEONFLOORS
+HEXENBOUNCE
+USEBOUNCESTATE
deathsound "W_Neptune/SaltWater"
BounceFactor 1.0
damage (15)
radius 14//24
height 24
speed 40
scale 2.5
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0
NEPH K 0 A_ChangeVelocity(0,0,2,1)
NEPH K 1 A_ChangeFlag(HEXENBOUNCE, false)
wait
Bounce.Ceiling:
NEPH K 0 A_ChangeFlag("USEBOUNCESTATE",0)
NEPH K 0 A_ChangeFlag("BOUNCEONCEILINGS",0)
NEPH K 0 A_ChangeVelocity(momx,momy,0,2)
goto DeathC
Death:
//TNT1 A 0 A_PlaySound("W_Neptune/SaltWater",1)
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_CheckFloor("DeathF")
TNT1 A 0 A_CheckCeiling("DeathC")
//TNT1 A 0 A_JumpIf(z-floorz<23,"Floor")
goto DeathW
DeathF:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,25,0,7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,-2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,-4,11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,4,11,0,1)
NEPH LMN 2
stop
DeathW:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,25,0,7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,-2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,-4,11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,4,11,0,1)
SWAT VWV 2
stop
DeathC:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,25,0,-11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,-2,-9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,19,2,-9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,-4,-7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,4,-7,0,1)
SWAT VWV 2
stop
XDeath:
Crash:
TNT1 A 1
stop
}
}
actor NeptuneSaltWaterB : NeptuneSaltWater{Translation"202:202=205:205","199:199=74:74"}
actor NeptuneSaltWaterR : NeptuneSaltWater{Translation"202:202=171:171","199:199=41:41"}
actor NeptuneSaltWaterO : NeptuneSaltWater{Translation"202:202=104:104","199:199=128:128"}
actor NeptuneSaltWaterP : NeptuneSaltWater{Translation"202:202=229:229","199:199=232:232"}

actor NeptuneSaltWater2 : NeptuneSaltWater{damage (10)}

actor NeptuneSaltWaterSalty : NeptuneSaltWater
{
//gravity 0.6
damage (25)
speed 50
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
TNT1 A 0
NEPH K 1 A_ChangeFlag(HEXENBOUNCE, false)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX2",0,0,random(-10,10),0,0,-2.5,random(0,359),1,128)
NEPH K 1 
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX1",0,0,random(-10,10),0,0,-5,random(0,359),1,64)
loop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_CheckFloor("DeathF")
TNT1 A 0 A_CheckCeiling("DeathC")
goto DeathW
DeathF:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,19,0,7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,13,-2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,13,2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,7,-4,11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,7,4,11,0,1)
NEPH LMN 2
stop
DeathW:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,19,0,7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,13,-2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,13,2,9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,7,-4,11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,7,4,11,0,1)
SWAT VWV 2
stop
DeathC:
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,25,0,-11,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,19,-2,-9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,19,2,-9.5,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,-4,-7,0,1)
NEPH L 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,13,4,-7,0,1)
SWAT VWV 2
stop

XDeath:
Crash:
TNT1 A 1
stop
}
}
actor NeptuneSaltWaterSaltyB : NeptuneSaltWaterSalty{Translation"202:202=205:205","199:199=74:74"}
actor NeptuneSaltWaterSaltyR : NeptuneSaltWaterSalty{Translation"202:202=171:171","199:199=41:41"}
actor NeptuneSaltWaterSaltyO : NeptuneSaltWaterSalty{Translation"202:202=104:104","199:199=128:128"}
actor NeptuneSaltWaterSaltyP : NeptuneSaltWaterSalty{Translation"202:202=229:229","199:199=232:232"}

actor NeptuneSaltWater_Thru : NeptuneSaltWater
{
+THRUACTORS
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
NEPH K 0
NEPH K 6
NEPH K 0 A_ChangeFlag("THRUACTORS",0)
NEPH K -1
stop
Bounce.Ceiling:
NEPH K 0 A_ChangeFlag("USEBOUNCESTATE",0)
NEPH K 0 A_ChangeFlag("BOUNCEONCEILINGS",0)
NEPH K 0 A_ChangeFlag("THRUACTORS",0)
NEPH K 0 A_ChangeVelocity(momx,momy,0,2)
goto Spawn+3
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
goto DeathF
}
}

actor NeptuneSaltWaterBit
{
PROJECTILE
obituary "$OB_SALTWATER"
damagetype "Neptune_ShotBit"
-NOGRAVITY
+USEBOUNCESTATE
+FORCEXYBILLBOARD
+HEXENBOUNCE
bouncecount 2
damage (5)
radius 9
height 10
speed 28
scale 2.5
states
{
Spawn:
TNT1 A 0 
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
NEPH O 1
NEPH O 0 A_ChangeFlag(HEXENBOUNCE, false)
NEPH O 1
SpawnLOOP:
NEPH O 0
NEPH O 0 A_ChangeVelocity(0,0,1,1)
NEPH O 1
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_PlaySound("weapon/saltwaterbit","Voice")
NEPH POQR 2
stop
}
}

actor NeptuneSaltWaterBit_Thru : NeptuneSaltWaterBit
{
obituary "$OB_NEPTUNESURGE"
+THRUACTORS
+BOUNCEONCEILINGS
states
{
Spawn:
TNT1 A 0
TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
SpawnLOOP:
NEPH O 0
NEPH O 0 A_ChangeVelocity(0,0,1,1)
NEPH O 20
NEPH O 0 A_ChangeFlag("THRUACTORS",0)
NEPH O 0 A_ChangeFlag(HEXENBOUNCE, false)
NEPH O 1
wait
Death:
TNT1 A 0 A_Explode(5,36,0,0,36)
XDeath:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_PlaySound("weapon/saltwaterbit","Voice")
NEPH POQR 2
stop
}
}

actor NeptuneSaltySweatFX1
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+CLIENTSIDEONLY
+DONTSPLASH
+DONTBLAST
alpha 0.5
renderstyle add
gravity 0.5
reactiontime 1
radius 4
height 4
speed 34
scale 1.75
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX_1",0,0,0,random(1,3),0,random(-1,3),0,1)
stop
Death:
TNT1 A 0
TNT1 A 1
stop
}
}


actor NeptuneSaltySweatFX_1 : NeptuneSaltySweatFX1
{
-NOGRAVITY
states
{
Spawn:
TNT1 A 0
TNT1 A 1 ThrustThingZ(0,1,0,1)
NEPH O 24
NEPH O 1 A_CountDown
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
NEPH POQR 2
stop
}
}

actor NeptuneSaltySweatFX2 : NeptuneSaltySweatFX1
{
states
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("NeptuneSaltySweatFX_2",0,0,0,0,0,random(-1,0),0,1)
stop
}
}
actor NeptuneSaltySweatFX_2 : NeptuneSaltySweatFX_1
{
states
{
Spawn:
TNT1 A 0
TNT1 A 1 ThrustThingZ(0,1,0,1)
NEPH P 18
NEPH P 1 A_CountDown
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
NEPH OQR 2
stop
}
}


actor NeptuneMain_CI : TeamColor_CI
{
States
{
FireX:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWater",0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterB",0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterR",0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterO",0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterP",0,0,0)
goto Done
}
}

actor NeptuneMain2_CI : TeamColor_CI
{
States
{
FireX:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterSalty",0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterSaltyB",0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterSaltyR",0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterSaltyO",0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("NeptuneSaltWaterSaltyP",0,0,0)
goto Done
}
}

actor NeptuneReload_CI : TeamColor_CI
{
States
{
FireX:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorHugger_H",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorHugger_HB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorHugger_HR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorHugger_HO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorHugger_HP",0,0,0,0)
goto Done
}
}

actor NeptuneReload2_CI : TeamColor_CI
{
States
{
FireX:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorSaltyHugger_H",0,0,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorSaltyHugger_HB",0,0,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorSaltyHugger_HR",0,0,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorSaltyHugger_HO",0,0,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("NeptuneFloorSaltyHugger_HP",0,0,0,0)
goto Done
}
}