
//Go look in
//actors/inventory/baseweapon.txt
//for BaseMM8BDMWep_CBM

actor BaseMM8BDMWep : BaseMM8BDMWep_CBM//BaseMM8BDMWep//MegaBuster0
{

States
{

AltfireS:
TNT1 A 0 A_JumpIfInventory("EvilFistC",1,"EvilAlt")
//CKIC C 0 A_JumpIfInventory("BearerFlag",1,"ArchiveBuster") //A_JumpIfInventory("BassDoubleJump",1,"BassDash")
TNT1 A 0 A_JumpIfInventory("BassUpgradeFlag",1,"BassDash")
TNT1 A 0 A_JumpIf(z-floorz==0,"GroundCheck") //A_JumpIf(momz==0, "GroundCheck")
//TNT1 A 1
//TNT1 A 0 A_Refire
AltfireS2:
"----" "#" 0 A_Jump(256,"ReadyC")
"----" "#" 1 A_WeaponReady
loop
Goto Ready+1
/*ArchiveBuster:
TNT1 A 0 A_PlaySoundEx("weapon/pshot","weapon")
TNT1 A 0 A_FireCustomMissile("DocShot",0,0,8,0)
TNT1 AA 5
TNT1 A 10
Goto Ready+1*/
GroundCheck:
"----" "#" 0 A_JumpIfInventory("DuoFistC",1,"DuoBash")
"----" "#" 0 A_JumpIfInventory("BassDoubleJump",1,"BassDash")
"----" "#" 0 A_JumpIfInventory("ProtoBusterC",1,"ProtoSlide")
"----" "#" 0 A_JumpIfInventory("MegaBusterFlag",1,"MegaSlide")
GroundCheck2:
"----" "#" 0 A_Jump(256,"ReadyC")
"----" "#" 1 A_WeaponReady
loop
//MegaSlide:
//"----" A 0 
//"----" A 0 A_Jump(256,"MegaSlideC")
//goto MegaSlideC
MegaSlide:
MKIC A 0 A_GiveInventory("MegaSlide",1)
MKIC C 0 A_PlaySoundEx("weapon/chargekick","Weapon")
MKIC C 0 SetPlayerProperty(0,1,0)
MKIC C 0 ACS_ExecuteAlways(648,0,4)
MKIC C 2 A_GiveInventory("CopySlidePickup",1)
MKIC A 8 //SetPlayerProperty(0,0,0)
MKIC B 5 SetPlayerProperty(0,0,0)
MKIC C 5 ACS_ExecuteAlways(648,0,3)
MKIC A 0 A_TakeInventory("MegaSlide",1)
MKIC C 1 A_Refire
MegaSlide2:
MKIC C 0 A_Jump(256,"ReadyC")
MKIC C 1 A_WeaponReady
loop
ProtoSlide:
PROC D 0 A_GiveInventory("ProtoSlide",1)
PROC D 0 A_PlaySoundEx("weapon/chargekick","Weapon")
PROC D 0 SetPlayerProperty(0,1,0)
PROC D 0 ACS_ExecuteAlways(648,0,5)
PROC D 4 A_GiveInventory("CopySlidePickup",1)
PSLI A 8 //SetPlayerProperty(0,0,0)
PSLI B 5 SetPlayerProperty(0,0,0)
PROC DD 5 ACS_ExecuteAlways(648,0,3)
PROC D 0 A_TakeInventory("ProtoSlide",1)
PROC D 1 A_Refire
ProtoSlide2:
PROC D 0 A_Jump(256,"ReadyC")
PROC D 1 A_WeaponReady
loop
BassDash:
NEDR A 0 A_GiveInventory("BassDash",1)
MKIC C 0 //A_JumpIfNoAmmo("NoAmmo")
MKIC C 0 A_PlaySoundEx("weapon/chargekick","Weapon")
MKIC C 0 SetPlayerProperty(0,1,0)
BASD B 0 ACS_ExecuteAlways(191,0,5)
BASD B 2 A_GiveInventory("CopySlidePickup",1)
BASD C 8 //SetPlayerProperty(0,0,0)
BASD C 5 SETPLAYERPROPERTY(0,0,0)
BASD C 5 ACS_EXECUTEALWAYS(191,0,0)
NEDR A 0 A_TakeInventory("BassDash",1)
BASD B 1 A_Refire
BASD B 4
BassDash2:
BASD B 0 A_Jump(256,"ReadyC")
BASD B 1 A_WeaponReady
loop
DuoBash:
DUOL N 0 A_GiveInventory("DuoBash",1)
DUOL N 0 A_PlaySoundEx("weapon/chargekick","Weapon")
DUOL N 0 ACS_ExecuteAlways(648,0,1)
DUOL N 0 SetPlayerProperty(0,1,0)
DUOL N 0 A_FireCustomMissile("DuoRam",0,0,0,0)
DUOL N 0 ThrustThingZ(0,0,1,0)
DUOL N 1 A_GiveInventory("CopySlidePickup",1)
DUOL N 0 ThrustThingZ(0,0,1,0)
DUOL NNNN 2
DUOL N 1
DUOL N 0
DUOL N 0 ACS_ExecuteAlways(648,0,0)
DUOL N 0 SetPlayerProperty(0,0,0)
DUOL M 5
DUOL M 15
DUOL M 0 A_TakeInventory("DuoBash",1)
DUOL M 1 A_Refire
DuoBash2:
DUOL M 0 A_Jump(256,"ReadyC")
DUOL M 1 A_WeaponReady
loop

EvilAlt:
TNT1 A 0 A_JumpIfInventory("TrioRageWeakness",1,"EvilSelect")
TNT1 A 0 A_JumpIfInventory("EvilRageAmmo",1120,"RageActivate")
goto AltFireS2
RageActivate:
ERO8 A 0 A_PlaySoundEx("weapon/TrioRage","SoundSlot7")
ERO8 A 0 A_GiveInventory("TrioRageOnPickup",1)
ERO8 A 2 Offset(2,34)
ERO8 B 2 Offset(5,37)
ERO8 C 2 Offset(8,40)
ERO8 DEFDEFDEF 1 Offset(11,43)
ERO8 C 2 Offset(8,40)
ERO8 B 2 Offset(5,37)
ERO8 A 2 Offset(2,34)
goto AltFireS2
EvilSelect:
TNT1 A 0 A_GiveInventory("TrioGigaFlag",1)
TNT1 A 0 A_GiveInventory("TrioFireFlag",1)
TNT1 A 0 A_JumpIfInventory("GigaType",8,"EvilAlt8")
TNT1 A 0 A_JumpIfInventory("GigaType",7,"EvilAlt7")
TNT1 A 0 A_JumpIfInventory("GigaType",6,"EvilAlt6")
TNT1 A 0 A_JumpIfInventory("GigaType",5,"EvilAlt5")
TNT1 A 0 A_JumpIfInventory("GigaType",4,"EvilAlt4")
TNT1 A 0 A_JumpIfInventory("GigaType",3,"EvilAlt3")
TNT1 A 0 A_JumpIfInventory("GigaType",2,"EvilAlt2")
TNT1 A 0 A_JumpIfInventory("GigaType",1,"EvilAlt1")
goto EvilAlt0
EvilAlt8://AstroCrush
ERO7 A 0 A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
ERO7 A 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 A 0 A_SpawnItemEx("TrioAstroCrush",0,0,0,0,0,0,0,1)
ERO7 ABCDEEDCBA 3
TNT1 A 2
goto EvilAltEnd
EvilAlt7://IceWave
ERO7 F 0 A_PlaySoundEx("weapon/pcharge","Weapon")
ERO7 F 0 A_SpawnItemEx("TrioIceWaveCharging",0,0,0,0,0,0,0,1)

ERO7 F 3 OffSet(-1,7)//6
ERO7 G 4 OffSet(-1,7)//7

ERO7 G 9 OffSet(-1,7)//14

ERO7 H 2 OffSet(1,33)
ERO7 H 2 OffSet(-3,33)
ERO7 H 2 OffSet(1,33)
ERO7 H 2 OffSet(-3,33)
ERO7 H 2 OffSet(1,33)
ERO7 H 2 OffSet(-3,33)
ERO7 H 2 OffSet(1,33)
ERO7 H 2 OffSet(-3,33)
ERO7 H 2 OffSet(1,33)

TNT1 A 0 A_PlaySoundEx("weapon/BlizzStrike","Weapon")
ERO7 H 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 H 3 OffSet(-1,80)A_SpawnItemEx("TrioIceWave",0,0,8,cos(-pitch)*20,0,sin(-pitch)*20,0,1)
ERO7 H 3 OffSet(-1,133)A_TakeInventory("TrioFireFlag",1)
ERO7 G 24 OffSet(-1,103)
goto EvilAltEnd
EvilAlt6://WaterBalloon
ERO7 I 2 OffSet(8,44)
ERO7 I 2 A_WeaponReady(14)
ERO7 I 0 A_PlaySoundEx("weapon/waterballoon","Weapon")
ERO7 I 0 A_TakeInventory("EvilRageAmmo",280)
ERO7 I 0 A_SpawnItemEx("TrioBalloon",0,0,28,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
ERO7 JKLMN 3
ERO7 I 6 OffSet(24,56)
ERO7 I 2 OffSet(8,44)
ERO7 I 2 A_WeaponReady(14)
ERO7 I 0 A_PlaySoundEx("weapon/waterballoon","Weapon")
ERO7 I 0 A_TakeInventory("EvilRageAmmo",280)
ERO7 I 0 A_SpawnItemEx("TrioBalloon",0,0,28,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
ERO7 J 0 A_TakeInventory("TrioFireFlag",1)
ERO7 JKLMN 3
ERO7 I 18 OffSet(24,56)
goto EvilAltEnd
EvilAlt5://HomingSniper
ERO7 O 0 A_SpawnItemEx("TrioSniper",0,0,28,cos(-pitch)*150,0,sin(-pitch)*150,0,1)
ERO7 O 1 A_GiveInventory("AdapterWaitCount",1)
ERO7 O 0 A_JumpIfInventory("AdapterWaitCount",100,"EvilAlt5_Fire")
ERO7 O 0 A_JumpIfInventory("CutterFlag",1,"EvilAlt5_Fire")
goto EvilAlt5+1
EvilAlt5_Fire:
ERO7 O 0 A_TakeInventory("CutterFlag",999)
ERO7 O 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 O 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 PQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQRPQR 1 A_SpawnItemEx("TrioMissiles",20,random(-64,64),random(-8,70),0,0,0,0,1)
ERO7 O 0 A_TakeInventory("CutterFlag",999)
ERO7 O 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 O 0 A_TakeInventory("TrioFireFlag",1)
ERO7 PQRO 2
ERO7 O 15
goto EvilAltEnd
EvilAlt4://ThunderClaw
ERO7 S 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 S 0 A_SpawnItemEx("TrioThunderClawHelper",0,0,0,0,0,0,0,1)
ERO7 S 0 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 TUV 3
ERO7 T 1
ERO7 T 2 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 UV 3
ERO7 T 2
ERO7 T 1 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 UVT 3
ERO7 U 0 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 UVTUV 3
ERO7 S 15 A_TakeInventory("TrioFireFlag",1)
goto EvilAltEnd
EvilAlt3://TornadoHold
ERO7 W 0 A_SpawnItemEx("TrioTornadoHelper")
ERO7 WWWWWWWWWWWWWWWWWWWWWWWW 1 A_SetAngle(angle+15.0)
ERO7 X 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 X 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,0,1)
ERO7 X 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,90,1)
ERO7 X 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,-90,1)
ERO7 X 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,180,1)
ERO7 X 0 A_TakeInventory("TrioFireFlag",1)
ERO7 XY 3
ERO7 Y 3 OffSet(0,47)
ERO7 Y 3 OffSet(0,62)
goto EvilAltEnd
EvilAlt2://FlashBomb
ERO8 Q 1
ERO8 Q 0 A_PlaySoundEx("weapon/magnetmissile","Weapon")
ERO8 Q 0 A_TakeInventory("EvilRageAmmo",560)

ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,8,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,16,sin(-pitch)*55,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,24,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,-8,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,-16,sin(-pitch)*55,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,-24,sin(-pitch)*55,0,1)

ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55,0,1)

//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+24,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+16,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+8,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55-8,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55-16,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,28+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55-24,0,1)

ERO8 Q 4 OffSet(22,56)A_TakeInventory("TrioFireFlag",1)
ERO8 Q 4 OffSet(42,75)
ERO8 Q 4 OffSet(22,56)
ERO8 Q 35 A_WeaponReady(14)
goto EvilAltEnd
EvilAlt1://FlameSword
ERO8 R 2 OffSet(136,-13)A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
ERO8 R 2 OffSet(98,-1)
ERO8 R 2 OffSet(60,11)
ERO8 R 2 OffSet(30,22)
ERO8 R 6 OffSet(1,33)
ERO8 R 2 OffSet(20,18)
ERO8 S 2 OffSet(1,33)
ERO8 S 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
ERO8 S 0 A_TakeInventory("EvilRageAmmo",280)
ERO8 S 2 OffSet(50,18)A_SpawnItemEx("TrioFlameSwing1",0,0,28,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
ERO8 S 2 OffSet(91,-3)
ERO8 T 2 OffSet(1,33)
ERO8 T 2 OffSet(50,33)
TNT1 A 4
ERO8 U 2 OffSet(24,19)
ERO8 U 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
ERO8 U 0 A_TakeInventory("EvilRageAmmo",280)
ERO8 U 2 OffSet(1,33)A_SpawnItemEx("TrioFlameSwing2",0,0,28,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
ERO8 V 2 OffSet(1,33)A_TakeInventory("TrioFireFlag",1)
ERO8 V 2 OffSet(-57,43)
ERO8 V 2 OffSet(-143,56)
ERO8 W 2 OffSet(17,21)
ERO8 W 2 OffSet(8,27)
ERO8 W 16 OffSet(-1,33)
ERO8 W 2 OffSet(26,31)
ERO8 W 2 OffSet(52,29)
ERO8 W 2 OffSet(78,28)
ERO8 W 2 OffSet(102,27)
ERO8 W 2 OffSet(124,26)
ERO8 W 2 OffSet(144,25)
goto EvilAltEnd
EvilAlt0://EvilLaser
ERO8 B 0 ACS_ExecuteAlways(444,0,2,3)//C_JAX_SPECTRUM_SET1
ERO8 B 0 ACS_ExecuteAlways(445,0,angle,pitch)//C_JAX_SPECTRUM_SET2
ERO8 B 0 A_PlaySoundEx("weapon/TrioCharge3","SoundSlot6")
ERO8 B 0 A_GiveInventory("TrioGigaFlag",1)
ERO8 B 0 A_TakeInventory("RuneSpread",1)
ERO8 BH 2
goto EvilAlt0_0
EvilAlt0_0:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_1")
goto EvilAlt0_1E
EvilAlt0_1:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_2")
goto EvilAlt0_2E
EvilAlt0_2:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_3")
goto EvilAlt0_3E
EvilAlt0_3:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
ERO8 B 0 A_Refire("EvilAlt0_4")
goto EvilAlt0_4E
EvilAlt0_4:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum2",1)
ERO8 H 0 A_Refire("EvilAlt0_5")
goto EvilAlt0_5E
EvilAlt0_5:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum3",1)
ERO8 H 0 A_JumpIfInventory("EvilRageAmmo",1,1)
goto EvilAlt0End
ERO8 H 0 A_Refire("EvilAlt0_0")
goto EvilAlt0End
EvilAlt0_0E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_1E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_2E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_3E:
ERO8 B 1 A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_4E:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_5E:
ERO8 H 1 A_GiveInventory("FireTrioSpectrum3",1)
EvilAlt0End:
ERO8 B 0 A_TakeInventory("TrioGigaFlag",1)
ERO8 B 0 A_TakeInventory("TrioFireFlag",1)
ERO8 BBH 2
ERO8 B 4 A_GiveInventory("TrioSpreadRuneRevert",1)
ERO8 B 0 A_ClearRefire
goto AltFireS2
EvilAltEnd:
"----" "#" 0 A_TakeInventory("TrioGigaFlag",9)
"----" "#" 10 A_TakeInventory("TrioFireFlag",1)
"----" "#" 0 A_WeaponReady(14)
goto AltFireS2
}
}

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

actor ProtoSlide : MegaSlide{}

actor BassDash : MegaSlide{}

actor DuoBash : MegaSlide{}

actor SlideLimitFlag : Inventory
{
inventory.amount 1
inventory.maxamount 500
}




actor CopySlidePickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CopySlideDelay",1)
TNT1 A 0 A_JumpIfInventory("SlideLimitFlag",100,"Pickup2")
TNT1 A 0 A_JumpIfInventory("DuoFistC",1,"DuoBash")
TNT1 A 0 A_JumpIfInventory("BassDoubleJump",1,"BassDash")
TNT1 A 0 A_JumpIfInventory("ProtoBusterC",1,"ProtoSlide")
TNT1 A 0 A_JumpIfInventory("MegaBusterFlag",1,"MegaSlide")
MegaSlide:
TNT1 A 0 A_GiveInventory("MegaSlideThrustW",1)
stop
ProtoSlide:
TNT1 A 0 A_SpawnItemEx("ProtoSlideHelperW",0,0,28)
TNT1 A 0 A_GiveInventory("ProtoSlideThrustW",1)
stop
BassDash:
TNT1 A 0 A_GiveInventory("BassDashThrustW",1)
stop
DuoBash:
TNT1 A 0 A_GiveInventory("DuoSlideThrustW",1)
stop
Pickup2:
TNT1 A 0 A_GiveInventory("CopySlideAmmoPickup",1)
TNT1 A 0 A_JumpIfInventory("DuoFistC",1,"DuoBash2")
TNT1 A 0 A_JumpIfInventory("BassDoubleJump",1,"BassDash2")
TNT1 A 0 A_JumpIfInventory("ProtoBusterC",1,"ProtoSlide2")
TNT1 A 0 A_JumpIfInventory("MegaBusterFlag",1,"MegaSlide2")
MegaSlide2:
TNT1 A 0 A_GiveInventory("MegaSlideThrust",1)
stop
ProtoSlide2:
TNT1 A 0 A_SpawnItemEx("ProtoSlideHelper",0,0,28)
TNT1 A 0 A_GiveInventory("ProtoSlideThrust",1)
stop
BassDash2:
TNT1 A 0 A_GiveInventory("BassDashThrust",1)
stop
DuoBash2:
TNT1 A 0 A_GiveInventory("DuoSlideThrust",1)
stop
}
}


actor MegaSlideThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-21)
stop
}
}

actor MegaSlideThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-38)
stop
}
}


actor ProtoSlideThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-15)
stop
}
}

actor ProtoSlideThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-26)
stop
}
}

actor BassDashThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz==0,"Ground")
TNT1 A 0 A_Recoil(-11.5)
stop
Ground:
TNT1 A 0 ThrustThingZ(0,20,0,0) 
TNT1 A 0 A_Recoil(-16)
stop
}
}

actor BassDashThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz==0,"Ground")
TNT1 A 0 A_Recoil(-23)
stop
Ground:
TNT1 A 0 ThrustThingZ(0,28,0,0) 
TNT1 A 0 A_Recoil(-28)
stop
}
}

actor DuoSlideThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-16)
stop
}
}

actor DuoSlideThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(-32)
stop
}
}

actor CopySlideAmmoPickup : CustomInventory
{
States
{
Pickup:
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("SlideLimitFlag",500,"Pickup2")
TNT1 A 0 A_TakeInventory("SlideLimitFlag",100)
stop
Pickup2:
TNT1 A 0 A_SpawnItemEx("CopySlideHelper",0,0,24)
stop
}
}
actor CopySlideDelay : Powerup
{
Powerup.Duration -2
}

actor CopySlideHelper
{
+NOINTERACTION
-SOLID
+MISSILE
radius 1
height 1
+NOGRAVITY
+DONTBLAST
renderstyle none
States
{
Spawn:
TNT1 A 1
TNT1 A 5 A_TakeFromTarget("SlideLimitFlag",100)
Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("CopySlideDelay",1,2)
TNT1 A 0 A_GiveToTarget("SlideLimitFlag",1)
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("CopySlideDelay",1,"Spawn2")
TNT1 A 0 A_JumpIfInTargetInventory("SlideLimitFlag",500,"Death")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(649)==0,"Death")//C_CHECK_TARGET_OOC
loop
Death:
TNT1 A 1
stop
}
}

actor ProtoSlideHelperW : CopySlideHelper
{
States
{
Spawn:
TNT1 A 2
TNT1 A 0 A_GiveToTarget("ProtoSlideThrustW",1)
stop
}
}

actor ProtoSlideHelper : ProtoSlideHelperW
{
States
{
Spawn:
TNT1 A 2
TNT1 A 0 A_GiveToTarget("ProtoSlideThrust",1)
stop
}
}

