actor SaltWaterBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_VI"
dropitem "SaltWaterWepCDropped"
Weapon.AmmoUse 1
Weapon.AmmoGive 30
weapon.ammouse2 7
Weapon.AmmoGive2 30
Obituary "$OB_NEPTUNECLOSE"
Inventory.Pickupmessage "Evil can't park here between the hours of 6:00 am and 12:00 pm!"
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(4)
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
NEPH A 0 A_JumpIfInventory("NeptuneSalty",1,2)
NEPH A 0 A_GiveInventory("DontDrinkThisAmmo",2)
NEPH A 0 A_GiveInventory("TopNepAmmo",1)
loop

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

Fire:
NEPH B 0 A_PlaySound("weapon/GameBoyFire",1)
NEPH B 2 A_GiveInventory("NeptuneMainfire_P")
NEPH B 2 Offset(-43,70)
NEPH C 2 Offset(19,28)
NEPH C 2 Offset(-1,66)
NEPH D 2 Offset(11,13)
NEPH D 2 Offset(-42,53)
TNT1 A 8 A_GiveInventory("TopNepAmmo",1)
NEPH A 2 Offset(-7,92)
NEPH A 2 Offset(-3,62)
Goto Ready1

Altfire:
NEPH A 0 A_JumpIfInventory("TopNepAmmo",7,"Altfire2")
goto Ready1
Altfire2:
NEPH A 0 A_GiveInventory("VivifyDelay4",1)
NEPH A 0 A_Refire(1)
NEPH A 2 Offset(3,39)
NEPH A 2 Offset(6,47)A_TakeInventory("CutterFlag",99)
NEPH A 2 Offset(9,56)
NEPH A 2 Offset(12,66)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOn_P",1)
NEPH A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_SINGLE_INPUT,8,0)==1,"AltBigJump")//A_Refire("AltBigJump")
NEPH A 0 A_GiveInventory("CutterFlag",1)
NEPH A 1 Offset(12,66)A_ChangeVelocity(30,0,14,3)
NEPH AAAA 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceThrust_P",1)
goto AltBounceL
AltBounce:
NEPH A 1 Offset(13,70)A_GiveInventory("NeptuneSmallBounce_P",1)
NEPH A 0 A_JumpIfinventory("CutterFlag",4,"AltBounceEnd")
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 0 A_JumpIfInventory("VivifyDelay6",1,"AltBounce")
NEPH A 0 A_JumpIfInventory("NeptuneIsUnderWater",1,"AltBounce")
NEPH A 0 A_JumpIfinventory("CutterFlag",4,"AltBounceEnd")
NEPH A 0 A_JumpIf(z-floorz==0,"AltBounce")
NEPH A 0 A_JumpIf(momz==0,"AltBounceLZ")
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceThrust_P",1)
loop
AltBounceLZ:
NEPH A 1 Offset(12,66)A_GiveInventory("NeptuneAltBounceThrust_P",1)
NEPH A 0 A_JumpIfInventory("VivifyDelay6",1,"AltBounce")
NEPH A 0 A_JumpIfInventory("NeptuneIsUnderWater",1,"AltBounce")
NEPH A 0 A_JumpIfinventory("CutterFlag",4,"AltBounceEnd")
NEPH A 0 A_JumpIf(z-floorz==0,"AltBounce")
NEPH A 0 A_JumpIf(momz==0,"AltBounce")
goto AltBounceL+5
AltBounceEnd:
NEPH A 0 A_GiveInventory("NeptuneAltJumpEnd_P",1)
NEPH A 0 A_GiveInventory("NeptuneAltFlagOff_P",1)
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 10 Offset(12,66)A_ChangeVelocity(0,0,24,3)
goto AltBigJumpL
AltBigJumpL:
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
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 1 Offset(15,76)A_Stop
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

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 8
}
actor NeptuneSalty : OnceC {}

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

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

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

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

actor NeptuneItem : BasicClassItem
{
inventory.icon "NeptIcon"
inventory.pickupmessage "There's evil afoot."
Tag "Neptune Salt Super"
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","SoundSlot7")
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","SoundSlot7")
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_JumpIfInventory("NeptuneSalty",1,"Pickup2")
TNT1 A 0 A_GiveInventory("NeptuneMain_CI")
stop
Pickup2:
TNT1 A 0 A_TakeInventory("DontDrinkThisAmmo",1,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("HasFeetInWater",1,"Thrust_W")
TNT1 A 0 A_JumpIfInventory("IsUnderWater",1,"Thrust_W")
TNT1 A 0 A_JumpIfInventory("IsUnderBubbleWater",1,"Thrust_W")
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"ThrustSalt")
TNT1 A 0 A_ChangeVelocity(0.5,0,-1,1)
stop
ThrustSalt:
TNT1 A 0 A_ChangeVelocity(28,0,momz-1,3)
stop
Thrust_W:
TNT1 A 0 A_GiveInventory("NeptuneWaterBounceCheck_P",1)
TNT1 A 0 A_JumpIfInventory("NeptuneSalty",1,"Thrust_WSalt")
TNT1 A 0 A_ChangeVelocity(0.5,0,-0.75,1)
stop
Thrust_WSalt:
TNT1 A 0 A_ChangeVelocity(28,0,momz-0.75,3)
stop
}
}
actor NeptuneWaterBounceCheck_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_JAX_CHECK_JUMP)==1,"Yes")
stop
Yes:
TNT1 A 0 A_GiveInventory("NeptuneIsUnderWater",1)
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("TopNepAmmo",7,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,11,2)//14
stop
}
}

actor NeptuneSmallBounceUp_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CutterFlag",4,"No")
TNT1 A 0 A_JumpIfInventory("VivifyDelay6",1,"PickupPogo")
TNT1 A 0 A_ChangeVelocity(30,0,14,3)
stop
PickupPogo:
TNT1 A 0 A_ChangeVelocity(30,0,momz,3)
TNT1 A 0 A_TakeInventory("VivifyDelay6",9)
stop
No:
TNT1 A 0
stop
}
}

actor NeptuneSmallBounce_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_StopSound(0)
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_GiveInventory("NeptuneSmallBounceUp_P",1)
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(150,96,0,0,32)
stop
}
}
actor NeptuneSmallBounce2 : NeptuneSmallBounce
{
damagetype "Neptune_Stomp2"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(260,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:
Y_VI BCD 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_H2",0,0,0,60,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(30,20,0,0,20)
stop
}
}

actor NeptuneLeapCrush
{
PROJECTILE
damagetype "Neptune_Leap"
Obituary "$OB_NEPTUNELEAP"
+DONTBLAST
+DONTREFLECT
+THRUGHOST
damage (30)
Radius 28
Height 2
renderstyle none
States
{
Spawn:
TNT1 A 1
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_GiveInventory("TopNepAmmo",2)
TNT1 A 0 A_PlaySoundEx("weapon/ToadCrush","Weapon")
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
//+FLOORCLIP
+STEPMISSILE
maxstepheight 16
radius 4
height 4
scale 2.5
states
{
Spawn:
TNT1 A 0
Y_VI B 0 //A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,frandom(-1,1),0,frandom(5,7),random(0,359),1)
Y_VI B 0 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),0,7 + random(-2,2),random(0,359),1)
Y_VI B 0 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),-3,7 + random(-2,2),random(0,359),1)
Y_VI B 4 A_SpawnItemEx("NeptuneWaterSpoutFX",0,0,0,random(-2,2),3,7 + random(-2,2),random(0,359),1)
Y_VI CD 4
stop
}
}
actor NeptuneWaterSpoutFX_H2 : NeptuneWaterSpoutFX_H
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H",0,0,0,0,0,0,0,1)
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)
Y_VI E -1
stop
Y_VI F -1
stop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
Y_VI FEGH random(2,3)
stop
}
}

actor Neptune_FloorQuakeSpawn : BasicExplosion
{
Obituary "$OB_NEPTUNESTOMP"
damagetype "Neptune_Shock"
+NOCLIP
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_NEPTUNESTOMP"
damagetype "Neptune_Shock"
}

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 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,256,15,557)
TNT1 A 0 A_FireCustomMissile("NeptuneBigBounce",0,0,0,0)
TNT1 A 0 A_SpawnItemEx("NeptuneBigBounceFX_H",0,0,0,0,0,0,0,1)
stop
Pickup_Salty:
TNT1 A 0 ACS_NamedExecuteAlways("cbm_FloorQuakeDamage",0,256,15,557)
TNT1 A 0 A_FireCustomMissile("NeptuneBigBounce2",0,0,0,0)
TNT1 A 0 A_GiveInventory("NeptuneAlt2_CI",1)
stop
}
}
actor NeptuneBigBounce : BasicExplosion
{
obituary "$OB_NEPTUNESTOMP"
damagetype "Neptune_Stomp"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(100,64,0,0,32)
stop
}
}
actor NeptuneBigBounce2 : NeptuneBigBounce
{
damagetype "Neptune_Stomp2"
states
{
Spawn:
TNT1 A 0
TNT1 A 4 A_Explode(150,96,0,0,48)
stop
}
}

actor NeptuneBigBounceFX_H : BasicHelper
{
States
{
Spawn:
TNT1 A 0
TNT1 A 2 A_SpawnItemEx("NeptuneBigBounceFX",0,0,0,0,0,0,0,1)
stop
}
}

actor NeptuneFloorHugger_H : BasicHelper
{
Translation "202:202=201:201","199:199=75:75"
States
{
Spawn:
TNT1 A 0
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 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 Neptune_SaltQuakeProtect : PowerProtection
{
Powerup.Duration 7
DamageFactor "Neptune_SaltQuake", 0.1325
}

actor NeptuneFloorHugger
{
//var int user_A;
PROJECTILE
obituary "$OB_NEPTUNESTOMP"
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(150,56,0,0,56)
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_H2",0,0,0,256+random(-16,0),0,0,30*reactiontime+random(-2,2),1)
TNT1 A 0 A_SpawnItemEx("NeptuneWaterSpoutFX_H2",0,0,0,128+random(-16,0),0,0,30*reactiontime+random(13,17),1)

//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
+USEBOUNCESTATE
+BOUNCEONCEILINGS
deathsound "W_Neptune/SaltWater"
BounceFactor 1.0
damage (100)
radius 14//24
height 24
speed 25
scale 2.5
states
{
Spawn:
TNT1 A 0
NEPH K 0 A_ChangeVelocity(0,0,5,1)
NEPH K -1
stop
Bounce.Ceiling:
NEPH K 0 A_ChangeFlag("USEBOUNCESTATE",0)
NEPH K 0 A_ChangeFlag("BOUNCEONCEILINGS",0)
NEPH K 0 A_ChangeVelocity(momx,momy,momz-1,2)
goto Spawn+2
Death:
NEPH K 0 A_ChangeFlag("USEBOUNCESTATE",0)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,20.0,0,9,12,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,22.5,0,9,6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,25.0,0,9,0,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,22.5,0,9,-6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,20.0,0,9,-12,1)
DeathFX:
TNT1 A 0 A_CheckFloor(2)
TNT1 A 1 A_SpawnItemEx("NeptuneSaltWaterDieFX2",0,0,20,0,0,0,0,1)
stop
TNT1 A 1 A_SpawnItemEx("NeptuneSaltWaterDieFX1",0,0,0,0,0,0,0,1)
stop
XDeath:
Crash:
NEPH K 0
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,20.0,0,9,12,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,22.5,0,9,6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,25.0,0,9,0,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,22.5,0,9,-6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,20.0,0,9,-12,1)

TNT1 A 1 A_SpawnItemEx("NeptuneSaltWaterDieFX2",0,0,20,0,0,0,0,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 NeptuneSaltWaterDieFX1 : BasicClientSide
{
states
{
Spawn:
Y_VI B 0
Y_VI BCD 4
stop
}
}
actor NeptuneSaltWaterDieFX2 : BasicClientSide
{
states
{
Spawn:
Y_VI I 0
Y_VI IJ 4
stop
}
}

actor NeptuneSaltWater2 : NeptuneSaltWater
{
+BOUNCEONWALLS
states
{
Spawn:
NEPH K 1
NEPH K 0 A_ChangeFlag(BOUNCEONWALLS,0)
NEPH K -1
stop
}
}

actor NeptuneSaltWaterSalty : NeptuneSaltWater
{
//gravity 0.6
damage (120)
speed 40
states
{
Spawn:
TNT1 A 0
NEPH K 0 A_ChangeVelocity(0,0,2,1)
NEPH K -1
stop
Death:
NEPH K 0 A_ChangeFlag("USEBOUNCESTATE",0)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,20.0,0,9,12,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,22.5,0,9,6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,25.0,0,9,0,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater2",0,0,0,22.5,0,9,-6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit",0,0,0,20.0,0,9,-12,1)
goto DeathFX

XDeath:
Crash:
NEPH K 0
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,20.0,0,9,12,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater_Thru",0,0,0,22.5,0,9,6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater_Thru",0,0,0,25.0,0,9,0,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWater_Thru",0,0,0,22.5,0,9,-6,1)
TNT1 A 0 A_SpawnItemEx("NeptuneSaltWaterBit_Thru",0,0,0,20.0,0,9,-12,1)
TNT1 A 1 A_SpawnItemEx("NeptuneSaltWaterDieFX2",0,0,20,0,0,0,0,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
{
-USEBOUNCESTATE
-BOUNCEONCEILINGS
+THRUACTORS
states
{
Spawn:
NEPH K 1
NEPH K 4//6
NEPH K 0 A_ChangeFlag("THRUACTORS",0)
NEPH K -1
stop
}
}

actor NeptuneSaltWaterBit
{
PROJECTILE
obituary "$OB_SALTWATER"
damagetype "Neptune_ShotBit"
-NOGRAVITY
+FORCEXYBILLBOARD
+BOUNCEONWALLS
bouncecount 3
damage (50)
radius 10
height 10
speed 25
scale 2.5
states
{
Spawn:
NEPH L 1
NEPH L 0 A_ChangeFlag(BOUNCEONWALLS,0)
NEPH L -1
stop
Death:
TNT1 A 1 A_SpawnItemEx("NeptuneSaltWaterBitDieFX",0,0,10,0,0,0,0,1)
stop
}
}
actor NeptuneSaltWaterBitDieFX : BasicClientSide
{
states
{
Spawn:
Y_VI F 0
Y_VI FGH 3
stop
}
}

actor NeptuneSaltWaterBit_Thru : NeptuneSaltWaterBit
{
-BOUNCEONWALLS
+THRUACTORS
states
{
Spawn:
NEPH L 1
NEPH L 4//6
NEPH L 0 A_ChangeFlag(THRUACTORS,0)
NEPH L -1
stop
}
}

actor NeptuneSaltySweatFX1
{
+MISSILE
+NOGRAVITY
+THRUACTORS
+CLIENTSIDEONLY
+DONTSPLASH
+DONTBLAST
+NOTIMEFREEZE
alpha 0.5
renderstyle add
gravity 0.5
reactiontime 1
radius 4
height 4
speed 30
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)
Y_VI E 24
Y_VI E 1 A_CountDown
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
Y_VI FEGH 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)
Y_VI F 18
Y_VI F 1 A_CountDown
wait
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
Y_VI EGH 2
stop
}
}


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

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

actor NeptuneAlt2_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
}
}