//Mobility recoded
actor Pluto : SemiWeakArmorClass
{
Player.ScoreIcon "PLUTMUGS"
player.startitem "BaseFlagPack", 1
player.displayname "Pluto"
player.soundclass "Plutoc"
player.startitem "BreakDashBoss"
player.startitem "CanThirdFire", 1
player.startitem "UltimateAttackItem2"
player.startitem "UltSoundWatcherSpawn2"
player.startitem "Base56Ammo", 56
player.startitem "BaseAltfireAmmo", 112
player.startitem "IsFromGB5"
player.forwardmove 0.9,0.9
player.sidemove 0.88,0.88
player.jumpz 12
States
{
Animation5:
Spawn:
PLUT B 0 
PLUT B 1 A_JumpIf(z-floorz>0, "Jumping") 
PLUT A 0 A_JumpIfInventory("BreakneckDashAnim",1,"UltAnim")
PLUT A 0 A_JumpIfInventory("WallSticked",1,"WallHanging")
PLUT A 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
PLUT BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
PLUT I 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT I 0 A_JumpIfInventory("WallSticked",1,"WallHanging")
PLUT I 0 A_JumpIf(momz<1,"Falling")
PLUT I 1 A_JumpIf(z-floorz<=0, "Spawn")
loop

Falling:
PLUT O 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT O 0 A_JumpIfInventory("WallSticked",1,"WallHanging")
PLUT OO 1 A_JumpIf(z-floorz<=0, "Spawn")
PLUT P 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT P 0 A_JumpIfInventory("WallSticked",1,"WallHanging")
PLUT PP 1 A_JumpIf(z-floorz<=0, "Spawn")
loop

Animation1:
Missile:
PLUT F 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT F 0 A_JumpIfInventory("WallSticked",1,"Missile.BreakSeeker")
PLUT FFFF 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Missile2:
PLUT GGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile2")
Goto Spawn+2

JumpingMissile:
PLUT J 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT J 0 A_JumpIfInventory("WallSticked",1,"Missile.BreakSeeker")
PLUT J 0 A_JumpIf(momz<1,"FallingMissile")
PLUT J 1 A_JumpIf(z-floorz<=0, "Missile")
PLUT J 0 A_JumpIf(momz<1,"FallingMissile")
PLUT JJ 1 A_JumpIf(z-floorz<=0, "Missile")
PLUT J 0 A_JumpIf(momz<1,"FallingMissile")
PLUT JJ 1 A_JumpIf(z-floorz<=0, "Missile")
PLUT J 0 A_JumpIf(momz<1,"FallingMissile")
PLUT JJ 1 A_JumpIf(z-floorz<=0, "Missile")
JumpingMissile2:
PLUT J 0 A_JumpIf(momz<1,"FallingMissile2")
PLUT JJ 1 A_JumpIf(z-floorz<=0, "Missile2")
PLUT J 0 A_JumpIf(momz<1,"FallingMissile2")
PLUT JJ 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

FallingMissile:
PLUT Q 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
PLUT Q 0 A_JumpIfInventory("WallSticked",1,"Missile.BreakSeeker")
PLUT Q 1 A_JumpIf(z-floorz<=0, "Missile")
PLUT QQQQQQ 1 A_JumpIf(z-floorz<=0, "Missile")
FallingMissile2:
PLUT QQQQ 1 A_JumpIf(z-floorz<=0, "Missile2")
Goto Jumping

Animation2:
Missile.BreakDash:
PLUT R 0 A_JumpIfInventory("BreakneckDashActive",1,"Missile.BreakDashUlt")
PLUT R 0 A_JumpIfInventory("LightTeamFlag",1,"MBD.L")
PLUT R 0 A_JumpIfInventory("WilyTeamFlag",1,"MBD.W")
PLUT R 0 A_JumpIfInventory("CossackTeamFlag",1,"MBD.C")
PLUT R 0 A_JumpIfInventory("KingTeamFlag",1,"MBD.K")
PLUT R 1 A_JumpIf(z-floorz>0, "Missile.BreakDashAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT R 1 A_JumpIf(z-floorz>0, "Missile.BreakDashAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT S 1 A_JumpIf(z-floorz>0, "Missile.BreakDashAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT S 1 A_JumpIf(z-floorz>0, "Missile.BreakDashAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

Missile.BreakDashAir:
PLUT R 0 A_JumpIfInventory("LightTeamFlag",1,"MBDA.L")
PLUT R 0 A_JumpIfInventory("WilyTeamFlag",1,"MBDA.W")
PLUT R 0 A_JumpIfInventory("CossackTeamFlag",1,"MBDA.C")
PLUT R 0 A_JumpIfInventory("KingTeamFlag",1,"MBDA.K")
PLUT T 1 A_JumpIf(z-floorz<=0, "Missile.BreakDash")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT T 1 A_JumpIf(z-floorz<=0, "Missile.BreakDash")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT U 1 A_JumpIf(z-floorz<=0, "Missile.BreakDash")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
PLUT U 1 A_JumpIf(z-floorz<=0, "Missile.BreakDash")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

//Light
MBD.L:
P1U6 R 1 A_JumpIf(z-floorz>0, "MBDA.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 R 1 A_JumpIf(z-floorz>0, "MBDA.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 S 1 A_JumpIf(z-floorz>0, "MBDA.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 S 1 A_JumpIf(z-floorz>0, "MBDA.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

MBDA.L:
P1U6 T 1 A_JumpIf(z-floorz<=0, "MBD.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 T 1 A_JumpIf(z-floorz<=0, "MBD.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 U 1 A_JumpIf(z-floorz<=0, "MBD.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U6 U 1 A_JumpIf(z-floorz<=0, "MBD.L")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

//Wily
MBD.W:
P1U7 R 1 A_JumpIf(z-floorz>0, "MBDA.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 R 1 A_JumpIf(z-floorz>0, "MBDA.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 S 1 A_JumpIf(z-floorz>0, "MBDA.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 S 1 A_JumpIf(z-floorz>0, "MBDA.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

MBDA.W:
P1U7 T 1 A_JumpIf(z-floorz<=0, "MBD.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 T 1 A_JumpIf(z-floorz<=0, "MBD.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 U 1 A_JumpIf(z-floorz<=0, "MBD.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U7 U 1 A_JumpIf(z-floorz<=0, "MBD.W")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

//Cossack
MBD.C:
P1U8 R 1 A_JumpIf(z-floorz>0, "MBDA.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 R 1 A_JumpIf(z-floorz>0, "MBDA.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 S 1 A_JumpIf(z-floorz>0, "MBDA.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 S 1 A_JumpIf(z-floorz>0, "MBDA.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

MBDA.C:
P1U8 T 1 A_JumpIf(z-floorz<=0, "MBD.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 T 1 A_JumpIf(z-floorz<=0, "MBD.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 U 1 A_JumpIf(z-floorz<=0, "MBD.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U8 U 1 A_JumpIf(z-floorz<=0, "MBD.C")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

//King
MBD.K:
P1U9 R 1 A_JumpIf(z-floorz>0, "MBDA.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 R 1 A_JumpIf(z-floorz>0, "MBDA.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 S 1 A_JumpIf(z-floorz>0, "MBDA.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 S 1 A_JumpIf(z-floorz>0, "MBDA.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

MBDA.K:
P1U9 T 1 A_JumpIf(z-floorz<=0, "MBD.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 T 1 A_JumpIf(z-floorz<=0, "MBD.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 U 1 A_JumpIf(z-floorz<=0, "MBD.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P1U9 U 1 A_JumpIf(z-floorz<=0, "MBD.K")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

//Ult
Animation3:
Missile.BreakDashUlt:
P2UT R 1 A_JumpIf(z-floorz>0, "Missile.BreakDashUltAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT R 1 A_JumpIf(z-floorz>0, "Missile.BreakDashUltAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT S 1 A_JumpIf(z-floorz>0, "Missile.BreakDashUltAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT S 1 A_JumpIf(z-floorz>0, "Missile.BreakDashUltAir")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

Missile.BreakDashUltAir:
P2UT T 1 A_JumpIf(z-floorz<=0, "Missile.BreakDashUlt")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT T 1 A_JumpIf(z-floorz<=0, "Missile.BreakDashUlt")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT U 1 A_JumpIf(z-floorz<=0, "Missile.BreakDashUlt")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
P2UT U 1 A_JumpIf(z-floorz<=0, "Missile.BreakDashUlt")
TNT1 A 0 A_JumpIfInventory("EndDasher",1,"BreakDashEnd")
loop

BreakDashEnd:
TNT1 A 0
Goto Spawn+2

Animation4:
WallHanging:
PLUT K 1
loop

Missile.BreakSeeker:
PLUT LLLLLLLL 1 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
Goto Spawn+2

UltAnim:
PLUT BBBBMNMNMN 2
TNT1 A 0 A_TakeInventory("WallSticked")
Goto Spawn+2

ClassPain:
PLUT H 2 A_SpawnItem("PainFX",0,3)
TNT1 A 0 A_JumpIfInventory("BreakDashing",1,"Missile.BreakDash")
TNT1 A 0 A_JumpIfInventory("BreakneckDashActive",1,"Missile.BreakDashUlt")
TNT1 A 0 A_JumpIfInventory("WallSticked",1,"WallHanging")
PLUT HHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
PLUT H 20 ACS_ExecuteAlways(999,0,0)
PLUT H 0 A_PlayerScream
PLUT H 0 A_SpawnItemEx("FakeDeathFXMMV", 0, 0, 32, 0, 0, 0, 0, 1)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("BreakDashWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("BreakDashWepM")
goto ClassDeath
}
}

Actor BreakDashBoss : VCBaseWeapon
{
-INVULNERABLE
+SOLID
weapon.ammotype "Base56Ammo"
weapon.ammotype2 "BaseAltfireAmmo"
Obituary "$OB_PLUTO1"
States
{
Ready: 
TNT1 A 0 A_JumpIfInventory("WallSticked",1,"Ready.NoThirdFire") 
PLUH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PLUH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PLUH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
PLUH A 1 A_WeaponReady(WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14)) TNT1 A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack") TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",3)==3,"User1")
TNT1 A 0 A_GiveInventory("Base56Ammo",1) TNT1 A 0 A_GiveInventory("BaseAltfireAmmo",1)
Goto Ready
Ready.NoThirdFire:
PLUH AA 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",1,14)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",1,14))
Goto Ready
Ready.BreakNeck:
PLUH A 1 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSECONDARY)
TNT1 A 0 A_GiveInventory("Base56Ammo",2) TNT1 A 0 A_GiveInventory("BaseAltfireAmmo",1)
TNT1 A 0 A_GiveInventory("PlutoDirectionalInputPickUp")
TNT1 A 0 A_JumpIfInventory("PlutoUltCancel",1,"Ready")
TNT1 A 0 A_JumpIfInventory("BreakneckDashInput",1,"BreakNeckDash")
TNT1 A 0 A_JumpIfInventory("BreakneckDashActive",1,"Ready.BreakNeck")
Goto Ready
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
PLUH A 1 A_Lower
Loop
Select:
TNT1 A 0 A_SpawnItemEx("JumpKeyWatcher") //In actors/BasicActorsVC.txt -Fr3ak
TNT1 A 0 ACS_ExecuteAlways(991,0,5967)
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
PLUH A 1 A_Raise
Loop
Fire:
PLUH B 1 Offset(-5,27)
PLUH B 1 Offset(-10,22)
PLUH B 1 Offset(-15,17)
TNT1 A 0 A_PlaySoundEx("weapon/MMVShot","Weapon") 
TNT1 A 0 A_JumpIfInventory("WallSticked",1,"BreakSeeker")
TNT1 A 0 A_FireCustomMissile("BreakShot",0,0,8,12)
//TNT1 A 0 A_TakeInventory("Base56Ammo",4)
Goto MainCont
BreakSeeker:
TNT1 A 0 A_FireCustomMissile("BreakSeeker",0,0,8,12)
TNT1 A 0 A_TakeInventory("Base56Ammo",14)
MainCont:
PLUH C 16 Offset(-20,12)
PLUH B 1 Offset(-15,17)
PLUH B 1 Offset(-10,22)
PLUH B 1 Offset(-5,27)
//PLUH B 10
Goto Ready
AltFire:
RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
TNT1 A 0 A_GiveInventory("BreakDashOnPickUp")
BreakDashLoop:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("Base56Ammo",1,1)
Goto BreakDashEnd
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH B 1 Offset(15,47)
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
TNT1 A 0 A_TakeInventory("Base56Ammo",1)
TNT1 A 0 A_FireCustomMissile("PlutoWallHang",0,0)
TNT1 A 0 A_SpawnItemEx("BreakDashDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITIOn)
TNT1 A 0 A_GiveInventory("PlutoBreakDashMobility1")//A_ChangeVelocity(cos(pitch)*35,0,-sin(pitch)*35,CVF_RELATIVE|CVF_REPLACE)
PLUH B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"BreakDashLoop")
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH B 1 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",4)==5,"BreakDashLoop")
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
BreakDashEnd:
TNT1 A 0 A_GiveInventory("BreakDashOffPickUp")
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH B 1 Offset(10,42) A_GiveInventory("PlutoStopper",1)
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH B 1 Offset(5,37)
TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH B 20
Goto Ready
BreakneckDash:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
TNT1 A 0 A_GiveInventory("BreakDashOnPickUpUlt")
BreakneckDashLoop:
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,1)
Goto BreakneckDashEnd
TNT1 A 0 A_GiveInventory("WallHangCancel",1)
PLUH B 1 Offset(8,42) A_JumpIfInventory("PlutoUltCancel",1,"Ready")
TNT1 A 0 A_SpawnItemEx("BreakneckDashAfterImage")
TNT1 A 0 A_SpawnItemEx("BreakneckDashDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITIOn)
TNT1 AAAAAA 0 A_SpawnItemEx("PlutoBreakDashSpark",random(-8,8),random(-8,8),random(0,40),random(-50,50),random(-50,50),random(-20,20))
TNT1 A 0 A_GiveInventory("PlutoDirectionalInputPickUp")
PLUH B 1 A_JumpIfInventory("BreakneckDashInput",1,"BreakneckDashLoop2")
PLUH B 1 A_JumpIfInventory("BreakneckDashInput",1,"BreakneckDashLoop2")
Goto BreakneckDashEnd
BreakneckDashLoop2:
TNT1 A 0 A_JumpIfInventory("MediumShortUltimateAmmo",1,1)
Goto BreakneckDashEnd
PLUH B 1 Offset(12,42) A_JumpIfInventory("PlutoUltCancel",1,"Ready")
TNT1 A 0 A_SpawnItemEx("BreakneckDashAfterImage")
TNT1 A 0 A_SpawnItemEx("BreakneckDashDamager",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITIOn)
TNT1 AAAAAA 0 A_SpawnItemEx("PlutoBreakDashSpark",random(-8,8),random(-8,8),random(0,40),random(-20,20),random(-20,20),random(-20,20),0,1)
TNT1 A 0 A_GiveInventory("PlutoDirectionalInputPickUp")
PLUH B 1 A_JumpIfInventory("BreakneckDashInput",1,"BreakneckDashLoop")
PLUH B 1 A_JumpIfInventory("BreakneckDashInput",1,"BreakneckDashLoop")
BreakneckDashEnd:
TNT1 A 0 A_GiveInventory("BreakDashOffPickUpUlt")
PLUH B 1 Offset(10,42)
PLUH B 1 Offset(5,37)
PLUH B 1 Offset(0,32)
Goto Ready.BreakNeck
User1:
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
TNT1 A 0 A_PlaySoundEx("weapon/slashclaw","Weapon")
TNT1 A 0 A_TakeInventory("CanWallHang")
PLUH D 1 A_FireCustomMissile("PlutoWallHang2",0,0) TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
PLUH D 1 A_FireCustomMissile("PlutoWallHang2",0,0) TNT1 A 0 A_JumpIfInventory("CanWallHang",1,"OnTheWall")
TNT1 A 10
PLUH B 1 Offset(30,62)
PLUH B 1 Offset(25,57)
PLUH B 1 Offset(20,52)
PLUH B 1 Offset(15,47)
PLUH B 1 Offset(10,42)
PLUH B 1 Offset(5,37)
Goto Ready
UltimateAttack:
TNT1 A 0 A_GunFlash("NoMovement")
TNT1 A 0 A_GiveInventory("PlutoUltActivatePickUp")
PLUH B 1 Offset(0,48)
PLUH B 1 Offset(0,64)
PLUH B 1 Offset(0,80)
PLUH B 1 Offset(0,96)
TNT1 AAAAAAAAAAAA 1 Offset(0,112)
PLUH B 1 Offset(0,96)
PLUH B 1 Offset(0,80)
PLUH B 1 Offset(0,64)
PLUH B 1 Offset(0,48)
PLUH A 3 A_GiveInventory("PlutoUltHandler")
Goto Ready.BreakNeck
OnTheWall:
TNT1 A 0 A_Stop
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_SetGravity(0.0)
TNT1 A 0 A_GiveInventory("BreakDashOffPickUp")
TNT1 A 0 A_GunFlash
TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",4)
PLUH B 1 Offset(0,52) A_PlaySoundEx("weapon/plutocling","Body")
PLUH B 1 Offset(0,42)
AltHold:
PLUH A 1
TNT1 A 0 A_Refire("AltHold")
Goto Ready
Flash:
TNT1 A 0 A_JumpIfInventory("WallStickCancel",1,"NoFlash")
TNT1 A 0 A_JumpIfInventory("WallHangCancel",1,"NoFlash")
TNT1 A 0 A_GiveInventory("WallSticked")
TNT1 A 0 A_GiveInventory("PlutoAmmoTaker",1)
TNT1 A 0 A_GiveInventory("PlutoRegenAmmo_CI",1)
TNT1 A 0 SetPlayerProperty(0,1,0)
TNT1 A 1 A_Stop
TNT1 A 0 A_JumpIfInventory("BaseAltfireAmmo",1,"Flash")
NoFlash:
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 0 A_GiveInventory("GravityRestore")
TNT1 A 0 ThrustThingZ(0,20,1,0)
TNT1 A 0 A_TakeInventory("WallSticked")
TNT1 A 1 ACS_NamedExecuteWithResult("VC_SetState",5)
TNT1 A 0 SetPlayerProperty(0,0,0)
TNT1 A 1 A_GiveInventory("GravityRestore") //Second one just in case ;) -Fr3ak
stop
NoMovement:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
stop
}
}

Actor BreakShot
{
PROJECTILE
damagetype "Pluto"
Obituary "$OB_PLUTO1"
Speed 40
Damage (18)
radius 16
height 16
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
MSHO AABBBBB 1
Goto Spawn+3
}
}

actor BreakSeeker : BreakShot
{
+SEEKERMISSILE
+SCREENSEEKER
-EXTREMEDEATH
+NOCLIP
+DONTREFLECT
damage (20)
Obituary "$OB_PLUTO2"
speed 20
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
PWIS AA 1 A_SeekerMissile (2, 10, SMF_LOOK, 256, 2)
TNT1 A 0 A_ChangeFlag("NOCLIP",0)
TNT1 A 0 A_PlaySoundEx("weapon/venusbubbleexplode1", "Weapon")
TNT1 A 0 A_SpawnItemEx("BreakSeekerTrail",0,0,0,0,0,0,0,1)
loopit:
PWIS ABB 1 A_SeekerMissile (2, 10, SMF_LOOK, 256, 2)
TNT1 A 0 A_PlaySoundEx("weapon/venusbubbleexplode1", "Weapon")
TNT1 A 0 A_SpawnItemEx("BreakSeekerTrail",0,0,0,0,0,0,0,1)
PWIS BCC 1 A_SeekerMissile (2, 10, SMF_LOOK, 256, 2)
TNT1 A 0 A_PlaySoundEx("weapon/venusbubbleexplode1", "Weapon")
TNT1 A 0 A_SpawnItemEx("BreakSeekerTrail",0,0,0,0,0,0,0,1)
PWIS CAA 1 A_SeekerMissile (2, 10, SMF_LOOK, 256, 2)
TNT1 A 0 A_PlaySoundEx("weapon/venusbubbleexplode1", "Weapon")
TNT1 A 0 A_SpawnItemEx("BreakSeekerTrail",0,0,0,0,0,0,0,1)
loop
}
}

actor BreakSeekerTrail
{
Height 0
Radius 0
+NOINTERACTION
-SOLID
+NOGRAVITY
+MISSILE
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 1
PWIS FDDEEFF 1
stop
}
}

actor BreakDashDamager
{
species "DustManType"
+THRUSPECIES
PROJECTILE
damagetype "PlutoBreakDash"
Obituary "$OB_PLUTO3"
+RIPPER
+NOINTERACTION
+DONTBLAST
damage (0)
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(6,100,0)
stop
Crash:
Death:
XDeath:
TNT1 A 0
stop
}
}

actor BreakneckDashDamager : BreakDashDamager
{
Obituary "$OB_PLUTO4"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(10,100,0)
stop
Crash:
Death:
XDeath:
TNT1 A 0
stop
}
}

actor BreakDashSounder
{
+NOINTERACTION
Damage (0)
height 0
radius 0
scale 2.5
States
{
Spawn:
TNT1 A 0 A_JumpIfInTargetInventory("EndDashSounder",1,"Death")
TNT1 A 0 A_PlaySoundEx("weapon/PlutoBreakDash", "Body")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "Death")
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"ClingSound")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("EndDashSounder",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"ClingSound")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("EndDashSounder",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"ClingSound")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("EndDashSounder",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"ClingSound")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInTargetInventory("EndDashSounder",1,"Death")
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"ClingSound")
TNT1 A 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
Death:
TNT1 A 0
stop
ClingSound:
TNT1 A 1 A_StopSound(CHAN_WEAPON)
stop
}
}

actor PlutoWallHang
{
PROJECTILE
Radius 4
Height 1
Damage(0)
Speed 40
states
{
Spawn:
TNT1 A 2
stop
Death:
TNT1 A 0 A_JumpIfInTargetInventory("CanWallHang",1,"XDeath")
TNT1 A 0 A_CheckFloor("XDeath")
TNT1 A 0 A_CheckCeiling("XDeath")
TNT1 A 0 A_GiveToTarget("CanWallHang")
stop
XDeath:
TNT1 A 0
stop
}
}

actor PlutoWallHang2 : PlutoWallHang
{
Speed 20
}

actor PlutoUltActivatePickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,113)
TNT1 A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
TNT1 A 0 A_PlaySoundEx("weapon/PlutoBreakneckDash", "Weapon")
TNT1 A 0 A_GiveInventory("PowerUltBuildCooldown",1)
TNT1 A 0 A_GiveInventory("BreakneckDashAnim")
TNT1 A 0 A_ChangeFlag("INVULNERABLE", True)
TNT1 A 0 A_GiveInventory("InvProtection",1)
stop
}
}

actor BreakDashOnPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,1,4)
HAZH D 0 A_TakeInventory("UnSolid",1)
HAZH D 0 A_ChangeFlag("SOLID",0)
//HAZH D 0 A_ChangeFlag("PICKUP",0)
TNT1 A 0 A_GiveInventory("BreakDashing")
TNT1 A 0 A_GiveInventory("WallHangCancel")
TNT1 A 0 A_SpawnItemEx("BreakDashSounder")
TNT1 A 0 A_GiveInventory("HalfDamageProtection",1)
stop
}
}

actor BreakDashOffPickUp : CustomInventory
{
States
{
Pickup:
TNT1 A 0 SetPlayerProperty(0,0,4)
DRIA A 0 A_SpawnItemEx("ReSolidifier")
//TNT1 A 0 A_ChangeFlag("PICKUP",1)
TNT1 A 0 A_GiveInventory("EndDasher")
TNT1 A 0 A_TakeInventory("BreakDashing")
TNT1 A 0 A_GiveInventory("EndDashSounder")
TNT1 A 0 A_TakeInventory("WallHangCancel")
TNT1 A 0 A_TakeInventory("HalfDamageProtection",1)
stop
}
}

actor BreakDashOnPickUpUlt : CustomInventory
{
States
{
Pickup:
HAZH D 0 A_TakeInventory("UnSolid",1)
HAZH D 0 A_ChangeFlag("SOLID",0)
HAZH D 0 A_ChangeFlag("PICKUP",0)
TNT1 A 0 A_GiveInventory("BreakDashing")
TNT1 A 0 A_GiveInventory("WallHangCancel")
TNT1 A 0 A_SpawnItemEx("BreakDashSounder")
stop
}
}

actor BreakDashOffPickUpUlt : CustomInventory
{
States
{
Pickup:
DRIA A 0 A_SpawnItemEx("ReSolidifier")
TNT1 A 0 A_ChangeFlag("PICKUP",1)
TNT1 A 0 A_GiveInventory("EndDasher")
TNT1 A 0 A_TakeInventory("BreakDashing")
TNT1 A 0 A_GiveInventory("EndDashSounder")
TNT1 A 0 A_TakeInventory("WallHangCancel")
stop
}
}

actor PlutoDirectionalInputPickUp : BaseMovement//CustomInventory
{
States
{
itTimeGo://Pickup:
TNT1 A 0 A_JumpIf(z-floorz>0, "Pickup2")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",2)>0,"Jump")
Pickup2:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==19,"ForwardLeft")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==11,"ForwardRight")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==3,"Forward")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==21,"BackwardLeft")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==13,"BackwardRight")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==5,"Backward")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==17,"Left")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("VC_CheckBtn",1)==9,"Right")
Goto End
Forward:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*22,0,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
Backward:
TNT1 A 0 A_ChangeVelocity(-cos(pitch)*22,0,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
Left:
TNT1 A 0 A_ChangeVelocity(0,22,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
Right:
TNT1 A 0 A_ChangeVelocity(0,-22,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
ForwardLeft:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*11,11,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
ForwardRight:
TNT1 A 0 A_ChangeVelocity(cos(pitch)*11,-11,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
BackwardLeft:
TNT1 A 0 A_ChangeVelocity(-cos(pitch)*11,11,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
BackwardRight:
TNT1 A 0 A_ChangeVelocity(-cos(pitch)*11,-11,momz,CVF_RELATIVE|CVF_REPLACE)
goto GiveFlag
Jump:
TNT1 A 0 ThrustThingZ(0,100,0,0)
goto GiveFlag
GiveFlag:
TNT1 A 0 A_GiveInventory("BreakneckDashInput",1)
End:
TNT1 A 0
stop
}
}

actor BreakneckDashWatcher
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
Scale 3.0
States
{
Spawn:
TNT1 A 1 A_GiveToTarget("PlutoUltColor1") 
TNT1 A 0 A_GiveToTarget("BreakneckDashActive")
TNT1 A 0 A_TakeFromTarget("MediumShortUltimateAmmo",2)
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "End")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn2")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn2")
Goto End
Spawn2:
TNT1 A 1 A_GiveToTarget("PlutoUltColor2")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "End")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn3")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn3")
Goto End
Spawn3:
TNT1 A 1 A_GiveToTarget("PlutoUltColor3")
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0) == 0, "End")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn")
TNT1 A 1 A_JumpIfInTargetInventory("MediumShortUltimateAmmo",1,"Spawn")
Goto End
End:
TNT1 A 0 A_GiveToTarget("PlutoUltColor3")
TNT1 A 0 A_TakeFromTarget("PowerUltBuildCooldown",1)
TNT1 A 0 A_TakeFromTarget("BreakneckDashActive")
TNT1 A 0 A_TakeFromTarget("HalfDamageProtection")
TNT1 A 0 A_GiveToTarget("PlutoUltCancel",1)
stop
}
}

actor PlutoUltColor1 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,10863)
stop
}
}

actor PlutoUltColor2 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,10864)
stop
}
}

actor PlutoUltColor3 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(971,0,5967)
stop
}
}

actor BreakneckDashAfterImage
{
Translation "192:192=65:65", "198:198=60:60"
scale 2.5
+CLIENTSIDEONLY
+NOINTERACTION
+DONTSPLASH
Gravity 0
Damage (0)
height 0
radius 0
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 2
P2UT R 0 A_CheckFloor("Spawn2")
P2UT T 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT U 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT T 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT U 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT T 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT U 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT T 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT U 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT T 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT U 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
stop
Spawn2:
P2UT R 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT S 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT R 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT S 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT R 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT S 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT R 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
P2UT S 1 ACS_ExecuteAlways(971,0,10864) TNT1 A 0 A_Fadeout(0.10)
P2UT R 1 ACS_ExecuteAlways(971,0,5967) TNT1 A 0 A_Fadeout(0.10)
P2UT S 1 ACS_ExecuteAlways(971,0,10863) TNT1 A 0 A_Fadeout(0.10)
stop
}
}

actor BreakDashing : Powerup 
{
powerup.duration 6
}
actor EndDashSounder : BreakDashing {}
actor EndDasher : BreakDashing {}
actor CanWallHang : BreakDashing {}
actor BreakneckDashAnim : BreakDashing {} 
actor WallSticked : BreakDashing {}
actor BreakneckDashInput : BreakDashing {} 
actor WallHangCancel : BreakDashing {}

actor BreakneckDashActive : Powerup 
{
powerup.duration 18
}

actor PlutoUltCancel : Powerup 
{
powerup.duration 35
}

actor PlutoAmmoTaker : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",1)
stop
}
}

actor PlutoStopper : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_CheckFloor("Nope")
TNT1 A 0 A_ScaleVelocity(0.25)
stop
Nope:
TNT1 A 0
stop
}
}

actor PlutoBreakDashSpark : BreakDashFX
{
	translation "63:63=58:58"
    States
    {
    Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
        BDAS CDE 1
        stop
    }
}

actor PlutoUltHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("BreakneckDashWatcher")
TNT1 A 0 A_ChangeFlag("INVULNERABLE", False)
TNT1 A 0 A_TakeInventory("InvProtection",1)
TNT1 A 0 A_GiveInventory("HalfDamageProtection")
TNT1 A 0 A_TakeInventory("UltAttackFlag",1)
stop
}
}

actor PlutoBreakDashMobility1 : BaseMovement
{
states
{
itTimeGo:
TNT1 A 0 A_ChangeVelocity(CallACS("VC_XYMob",cos(pitch)*35),0,-sin(pitch)*35,CVF_RELATIVE|CVF_REPLACE)
stop
}
}

actor PlutoRegenAmmo : Powerup 
{
powerup.duration 5
}

actor PlutoRegenAmmo_CI : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("PlutoRegenAmmo",1,"Failed")
TNT1 A 0 A_GiveInventory("Base56Ammo",1) 
TNT1 A 0 A_GiveInventory("PlutoRegenAmmo",1)
stop
Failed:
TNT1 A 0
stop
}
}