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

//191 = CORE_ACS_191

actor BaseWepAltOverride_F : Inventory{}

actor BaseWep_User1_F : Inventory{}
actor BaseWep_User1Check_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CallACS("cbm_user1_check")==1,2)
TNT1 A 0 A_TakeInventory("BaseWep_User1_F")
stop
TNT1 A 0 A_GiveInventory("BaseWep_User1_F",1)
stop
}
}

actor BaseMM8BDMWep : BaseMM8BDMWep_CBM//BaseMM8BDMWep//MegaBuster0
{

Weapon.SlotNumber 1
+WEAPON.ALT_USES_BOTH

States
{

	AltfireCore://"----" A
		//"####" "#" 0 A_JumpIfInventory("BusterAmmo", 1, "Fire")
		"####" "#" 1 A_JumpIfInventory("MM8BDMPlayer",1,"Fire")
	//	"####" "#" 1 A_CheckFlag("LONGMELEERANGE","Fire")//SHORTMISSILERANGE//MISSILEMORE//NOMENU
		"####" "#" 1 A_Jump(256, "NoAmmo")
		wait

AltfireCBM:
Altfire://A_LogInt(CheckClass("Maestro"))
//"####" "#" 0 A_JumpIf(CheckClass("Maestro"),"AltfireCore")
"####" "#" 0 A_JumpIfInventory("BaseWepAltOverride_F",1,"AltfireC_User1")//AltfireC
//"####" "#" 1 A_CheckFlag("LONGMELEERANGE","AltfireCore")
"####" "#" 1 A_JumpIfInventory("MM8BDMPlayer",1,"AltfireCore")//A_Jump(256,"AltfireCore")//AltfireC
loop

AltfireC_User1:
"####" "#" 0 A_GiveInventory("BaseWep_User1Check_P")
"####" "#" 0 A_JumpIfInventory("BaseWep_User1_F",1,"AltfireCore")
"####" "#" 1 A_JumpIfInventory("BaseWepAltOverride_F",1,"AltfireC")
"####" "#" 1 A_JumpIfInventory("MM8BDMPlayer",1,"AltfireCore")
loop

AltfireC:
goto AltfireS

AltfireS:
"####" "#" 0 A_JumpIfInventory("EvilFistC",1,"EvilAlt")

//"####" "#" 0 A_JumpIfInventory("BearerFlag",1,"ArchiveBuster") //A_JumpIfInventory("BassFlag",1,"BassDash")
"####" "#" 0 A_JumpIfInventory("DuoFlag",1,"DuoBash")
"####" "#" 0 A_JumpIfInventory("BassBusterBoss",1,"BassDash")
"####" "#" 0 A_JumpIf(z-floorz==0,"GroundCheck") //A_JumpIf(momz==0, "GroundCheck")
//"####" "#" 1
//"####" "#" 0 A_Refire
goto AltfireS2
AltfireS2:
"####" "#" 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
"####" "#" 1 A_WeaponReady
loop

GroundCheck:
"----" "#" 0 A_JumpIfInventory("DuoFlag",1,"DuoBash")
"----" "#" 0 A_JumpIfInventory("BassBusterBoss",1,"BassDash")
"----" "#" 0 A_JumpIfInventory("ProtoBusterBoss",1,"ProtoSlide")
"----" "#" 0 A_JumpIfInventory("MegaFlag",1,"MegaSlide")
GroundCheck2:
"----" "#" 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
"----" "#" 1 A_WeaponReady
loop

/*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*/

MegaSlide:
MKIC C 0 //A_GiveInventory("SlideVivifyFlag",1)
MKIC C 0 A_Refire(1)
MKIC C 0 A_PlaySoundEx("weapon/chargekick","Weapon")
MKIC A 1 A_GiveInventory("MegaSlide",1)
TNT1 A 0 A_GiveInventory("CopySlidePickup",1)
MKIC BCDEF 1
MKIC G 1 Offset(2,32)
MKIC G 1 Offset(2,30)
MKIC G 1 Offset(-2,32)
MKIC G 1 Offset(-2,30)
MKIC B 0 SetPlayerProperty(0,0,0)
MKIC F 3
MKIC E 2
MKIC C 0 //ACS_ExecuteAlways(191,0,APROP_JumpZ,10,1)
MKIC D 2
MKIC CBA 1
MKIC A 0 A_TakeInventory("MegaSlide",1)
MKIC C 1 A_Refire("AltfireCBM")
MegaSlide2:
MKIC C 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
MKIC C 1 A_WeaponReady
loop
ProtoSlide:
PROC D 0 //A_GiveInventory("SlideVivifyFlag",1)
PROC D 0 A_Refire(1)
PROC D 0 A_PlaySoundEx("weapon/chargekick","Weapon")
//PROC D 0 SetPlayerProperty(0,1,0)
PROC D 0 ACS_ExecuteAlways(191,0,APROP_Speed,2,10)
PROC D 0 ACS_ExecuteAlways(191,0,APROP_JumpZ,0,1)
PROC D 0 A_GiveInventory("ProtoSlide",1)
TNT1 A 0 A_GiveInventory("CopySlidePickup",1)
PSLI BCDE 1 //SetPlayerProperty(0,0,0)
//PROC K 0 A_Jump(256,10)
//PSLI E 1 A_GiveInventory("CopySlidePickup",1)
PSLI F 1
PSLI G 1 Offset(2,32)
PSLI G 1 Offset(2,30)
PSLI G 1 Offset(-2,32)
PSLI G 1 Offset(-2,30)
PSLI F 2 A_WeaponReady(14)
PSLI E 2
PSLI D 2
PSLI BAA 1 
PROC D 0 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
PROC D 0 ACS_ExecuteAlways(191,0,APROP_JumpZ,10,1)
PROC D 7
PROC D 0 A_TakeInventory("ProtoSlide",9)
PROC D 1 A_Refire("AltfireCBM")
ProtoSlide2:
PROC D 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
PROC D 1 A_WeaponReady
loop
BassDash:
PROC D 0 //A_GiveInventory("SlideVivifyFlag",1)
BASD B 0 A_GiveInventory("BassDash",1)
TNT1 A 0 A_GiveInventory("CopySlidePickup",1)
BASD B 0 A_Refire(1)
BASD B 0 A_PlaySoundEx("weapon/chargekick","Weapon")
BASD B 0 SetPlayerProperty(0,1,0)
BASD B 0 ACS_ExecuteAlways(191,0,APROP_Speed,85,100)
BASD B 2 //A_GiveInventory("BassDash",1)
BASD C 8
BASD C 5 SetPlayerProperty(0,0,0)
BASD C 5 ACS_ExecuteAlways(191,0,APROP_Speed,1,1)
BASD C 0 A_TakeInventory("BassDash",9)
BASD B 1 A_Refire("AltfireCBM")
BassDash2:
BASD B 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
BASD B 1 A_WeaponReady
loop
DuoBash:
PROC D 0 //A_GiveInventory("SlideVivifyFlag",1)
DUOL N 0 SetPlayerProperty(0,1,0)
DUOL N 0 A_FireCustomMissile("DuoRam2",0,0,0,0)
DUOL N 0 ThrustThingZ(0,0,1,0)
MKIC C 0 A_PlaySoundEx("weapon/chargekick","Weapon")
TNT1 A 1 A_GiveInventory("DuoBash",1)
TNT1 A 0 A_GiveInventory("CopySlidePickup",1)
DUOL N 0 ThrustThingZ(0,0,1,0)
TNT1 A 1 Offset(-15,41)
TNT1 A 1 Offset(-78,98)
TNT1 A 1 Offset(-78,200)
TNT1 A 1 A_GiveInventory("CautiousDuoSlideDesync_P",1)
DUOL N 1 Offset(120,39)
DUOL N 1 Offset(60,35)
DUOL N 1 Offset(-20,33)
DUOL N 1 Offset(-22,35)
DUOL N 1 Offset(-24,36)
DUOL N 1 Offset(-26,37)
DUOL N 1 Offset(-26,38)
DUOL N 1 Offset(-26,39)
DUOL N 1 Offset(-26,40)
DUOL N 1 Offset(-26,41)
DUOL N 1 Offset(-26,42)
DUOL N 1 Offset(-24,43)
DUOL N 1 Offset(-22,44)
DUOL N 1 Offset(-20,45)
DUOL N 1 Offset(-15,46)
DUOL N 1 Offset(-10,47)
DUOL N 0 //ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
DUOL N 0 SetPlayerProperty(0,0,0)
//DUOL N 6
DUOL M 1 Offset(15,49)
DUOL M 1 Offset(39,51)
DUOL M 1 Offset(78,53)
TNT1 A 1 Offset(78,200)
TNT1 A 1
TNT1 A 1 Offset(-78,98)
TNT1 A 1 Offset(-39,62)
TNT1 A 1 Offset(-15,41)
TNT1 A 1 A_WeaponReady(WRF_NOPRIMARY|WRF_NOSWITCH)
DUOL M 0 A_TakeInventory("DuoBash",9)
DUOL M 1 A_Refire("AltfireCBM")
DuoBash2:
DUOL M 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
DUOL M 1 A_WeaponReady
loop

DocAlt:
DOCR A 0 A_JumpIfInventory("DocVirusAmmo",56,"DocAltScan")
DOCR A 1
goto DocAlt2
DocAlt2:
DOCR A 0 A_JumpIfInventory("MM8BDMPlayer",1,"ReadyC")
DOCR A 1 A_WeaponReady
loop
DocAltScan:
DOCR D 0 A_PlaySoundEx("Wep/DocScanCheck","Body")
DOCR D 0 A_SpawnItemEx("DocScanner",0,0,33,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
DOCR D 1 A_SpawnItemEx("DocScannerLaserFX_H",0,0,43,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
DOCR A 1 A_TakeInventory("DocVirusAmmo",4)
DOCR D 0 A_JumpIfInventory("PowerRage_ST",1,5)
DOCR DADADADAD 1
Goto DocAlt2

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 D 0 A_JumpIfInventory("PowerRage_ST",1,"RageActivate_R")
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
RageActivate_R:
ERO8 DEFDEF 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("GigaMans",8,"EvilAlt8")
TNT1 A 0 A_JumpIfInventory("GigaMans",7,"EvilAlt7")
TNT1 A 0 A_JumpIfInventory("GigaMans",6,"EvilAlt6")
TNT1 A 0 A_JumpIfInventory("GigaMans",5,"EvilAlt5")
TNT1 A 0 A_JumpIfInventory("GigaMans",4,"EvilAlt4")
TNT1 A 0 A_JumpIfInventory("GigaMans",3,"EvilAlt3")
TNT1 A 0 A_JumpIfInventory("GigaMans",2,"EvilAlt2")
TNT1 A 0 A_JumpIfInventory("GigaMans",1,"EvilAlt1")
goto EvilAlt0
EvilAlt8://WaterBalloon
ERO8 R 2 OffSet(8,44)
ERO8 R 2 A_WeaponReady(14)
ERO8 R 0 A_PlaySoundEx("weapon/waterballoon","Weapon")
ERO8 R 0 A_TakeInventory("EvilRageAmmo",280)
ERO8 R 0 A_SpawnItemEx("TrioBalloon",0,0,32,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
ERO8 STUVW 3
ERO8 R 6 OffSet(24,56)
ERO8 R 2 OffSet(8,44)
ERO8 R 2 A_WeaponReady(14)
ERO8 R 0 A_PlaySoundEx("weapon/waterballoon","Weapon")
ERO8 R 0 A_TakeInventory("EvilRageAmmo",280)
ERO8 R 0 A_SpawnItemEx("TrioBalloon",0,0,32,cos(-pitch)*15,0,sin(-pitch)*15,0,1)
ERO8 R 0 A_TakeInventory("TrioFireFlag",1)
ERO8 STUVW 3
ERO8 R 18 OffSet(24,56)
goto EvilAltEnd
EvilAlt7://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,32+(sin(-pitch)*9),cos(-pitch)*55,8,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,16,sin(-pitch)*55,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,24,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,-8,sin(-pitch)*55,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,-16,sin(-pitch)*55,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,-24,sin(-pitch)*55,0,1)

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

//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+24,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+16,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55+8,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55-8,0,1)
ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(sin(-pitch)*9),cos(-pitch)*55,0,sin(-pitch)*55-16,0,1)
//ERO8 Q 0 A_SpawnItemEx("TrioFlashBomb",cos(-pitch)*9,8,32+(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
EvilAlt6://IceWave
ERO7 W 4 OffSet(0,24)A_PlaySoundEx("weapon/pcharge","Weapon")
ERO7 W 4 OffSet(0,-6)
ERO7 W 4 OffSet(0,-36)A_SpawnItemEx("TrioIceWaveCharging",0,0,28,0,0,0,0,1)
ERO7 W 4 OffSet(0,-66)

ERO7 X 2 OffSet(1,-66)
ERO7 X 2 OffSet(-3,-66)
ERO7 X 2 OffSet(1,-66)
ERO7 X 2 OffSet(-3,-66)
ERO7 X 2 OffSet(1,-66)
ERO7 X 2 OffSet(-3,-66)
ERO7 X 2 OffSet(1,-66)
ERO7 X 2 OffSet(-3,-66)
ERO7 X 2 OffSet(1,-66)

ERO7 X 0 A_PlaySoundEx("weapon/BlizzStrike","Weapon")
ERO7 X 0 A_TakeInventory("EvilRageAmmo",560)

ERO7 X 0 A_WeaponReady(14)
ERO7 X 3 Offset(0,-19)A_SpawnItemEx("TrioIceWave",0,0,8,cos(-pitch)*20,0,sin(-pitch)*20,0,1)
ERO7 Y 3 Offset(0,28)A_TakeInventory("TrioFireFlag",1)
ERO7 Y 21 Offset(0,48)
ERO7 W 3 OffSet(0,40)
goto EvilAltEnd
EvilAlt5://HomingSniper
ERO7 S 0 A_SpawnItemEx("TrioSniper",0,0,32,cos(-pitch)*150,0,sin(-pitch)*150,0,1)
ERO7 S 1 A_GiveInventory("AdapterWaitCount",1)
ERO7 S 0 A_JumpIfInventory("AdapterWaitCount",100,"EvilAlt5End")
ERO7 S 0 A_JumpIfInventory("CutterFlag",1,"EvilAlt5_Fire")
goto EvilAlt5+1
EvilAlt5End:
ERO7 S 0 A_TakeInventory("CutterFlag",999)
ERO7 S 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 S 0 A_TakeInventory("EvilRageAmmo",70)
ERO7 S 0 Thing_Remove(TID+7000)
ERO7 VSVS 2 A_PlaySoundEx("S3_K/MetalSpark","Weapon")
ERO7 S 0 A_TakeInventory("CutterFlag",999)
ERO7 S 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 S 0 A_TakeInventory("TrioFireFlag",1)
ERO7 VS 2 A_PlaySoundEx("S3_K/MetalSpark","Weapon")
goto EvilAltEnd
EvilAlt5_Fire:
ERO7 S 0 A_TakeInventory("CutterFlag",999)
ERO7 S 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 S 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 TUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUVTUV 1 A_SpawnItemEx("TrioMissiles",20,random(-64,64),random(-8,70),0,0,0,0,1)
ERO7 S 0 A_TakeInventory("CutterFlag",999)
ERO7 S 0 A_TakeInventory("AdapterWaitCount",999)
ERO7 S 0 A_TakeInventory("TrioFireFlag",1)
ERO7 TUVS 2
ERO7 S 15
goto EvilAltEnd
EvilAlt4://ThunderClaw
ERO7 O 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 O 0 A_SpawnItemEx("TrioThunderClawHelper",0,0,0,0,0,0,0,1)
ERO7 O 0 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 PQR 3
ERO7 Q 1
ERO7 Q 2 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 PQ 3
ERO7 R 2
ERO7 R 1 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 QPQ 3
ERO7 R 0 A_PlaySoundEx("misc/wilylightning","Weapon")
ERO7 RQPQR 3
ERO7 O 15 A_TakeInventory("TrioFireFlag",1)
goto EvilAltEnd
EvilAlt3://FlameSword
ERO7 I 2 OffSet(136,-13)A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
ERO7 I 2 OffSet(98,-1)
ERO7 I 2 OffSet(60,11)
ERO7 I 2 OffSet(30,22)
ERO7 I 6 OffSet(1,33)
ERO7 I 2 OffSet(20,18)
ERO7 J 2 OffSet(1,33)
ERO7 J 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
ERO7 J 0 A_TakeInventory("EvilRageAmmo",280)
ERO7 J 2 OffSet(50,18)A_SpawnItemEx("TrioFlameSwing1",0,0,32,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
ERO7 J 2 OffSet(91,-3)
ERO7 K 2 OffSet(1,33)
ERO7 K 2 OffSet(50,33)
TNT1 A 4
ERO7 L 2 OffSet(24,19)
ERO7 L 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
ERO7 L 0 A_TakeInventory("EvilRageAmmo",280)
ERO7 L 2 OffSet(1,33)A_SpawnItemEx("TrioFlameSwing2",0,0,32,cos(-pitch)*1,0,sin(-pitch)*1,0,1)
ERO7 M 2 OffSet(1,33)A_TakeInventory("TrioFireFlag",1)
ERO7 M 2 OffSet(-57,43)
ERO7 M 2 OffSet(-143,56)
ERO7 N 2 OffSet(17,21)
ERO7 N 2 OffSet(8,27)
ERO7 N 16 OffSet(-1,33)
ERO7 N 2 OffSet(26,31)
ERO7 N 2 OffSet(52,29)
ERO7 N 2 OffSet(78,28)
ERO7 N 2 OffSet(102,27)
ERO7 N 2 OffSet(124,26)
ERO7 N 2 OffSet(144,25)
goto EvilAltEnd
EvilAlt2://AstroCrush
ERO7 D 0 A_PlaySoundEx("weapon/mirrorabsorb","Weapon")
ERO7 D 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 D 0 A_SpawnItemEx("TrioAstroCrush",0,0,0,0,0,0,0,1)
ERO7 DEFGHHGFED 3
TNT1 A 2
goto EvilAltEnd
EvilAlt1://TornadoHold
ERO7 A 0 //A_GiveInventory("PowerTrioTornadoSpeed",1)
ERO7 A 24 A_SpawnItemEx("TrioTornadoHelper")
ERO7 B 0 A_TakeInventory("EvilRageAmmo",560)
ERO7 B 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,0,1)
ERO7 B 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,90,1)
ERO7 B 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,-90,1)
ERO7 B 0 A_SpawnItemEx("TrioTornado",0,0,0,20,0,0,180,1)
ERO7 B 0 A_TakeInventory("TrioFireFlag",1)
ERO7 BC 3
ERO7 C 3 OffSet(-12,47)
ERO7 C 3 OffSet(-26,62)//A_TakeInventory("PowerTrioTornadoSpeed",9)
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","Weapon")
ERO8 B 0 A_GiveInventory("TrioGigaFlag",1)
ERO8 B 0 A_JumpIfInventory("TrioExodiaFlag",1,2)
ERO8 B 0 A_TakeInventory("PowerSpread_ST",1)
ERO8 B 2 Offset(11,41)
ERO8 H 2 Offset(25,53)
goto EvilAlt0_0
EvilAlt0_0:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_1")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_1")
goto EvilAlt0_1E
EvilAlt0_1:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_2")
goto EvilAlt0_2E
EvilAlt0_2:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_3")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_3")
goto EvilAlt0_3E
EvilAlt0_3:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
ERO8 B 0 A_Refire("EvilAlt0_4")
goto EvilAlt0_4E
EvilAlt0_4:
ERO8 H 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_5")
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
ERO8 H 0 A_Refire("EvilAlt0_5")
goto EvilAlt0_5E
EvilAlt0_5:
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
ERO8 H 0 A_JumpIfInventory("EvilRageAmmo",1,1)
goto EvilAlt0End
ERO8 H 0 A_Refire("EvilAlt0_0")
goto EvilAlt0End
EvilAlt0_0E:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_1E")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_1E:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_2E:
ERO8 B 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_3E")
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_3E:
ERO8 B 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum2",1)
EvilAlt0_4E:
ERO8 H 0 A_JumpIfInventory("PowerRage_ST",1,"EvilAlt0_5E")
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0_5E:
ERO8 H 1 Offset(25,53)A_GiveInventory("FireTrioSpectrum1",1)
EvilAlt0End:
ERO8 B 0 A_TakeInventory("TrioGigaFlag",1)
ERO8 B 2 Offset(17,48)
ERO8 H 2 Offset(11,44)
ERO8 B 2 Offset(6,40)
ERO8 B 2 Offset(3,37)A_GiveInventory("TrioSpreadRuneRevert",1)
ERO8 A 2 Offset(1,34)
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 SlideVivifyFlag : Inventory{}

actor SlideLimitFlag : Ammo
{
inventory.amount 1
inventory.maxamount 300
+INVENTORY.IGNORESKILL
}

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

actor ProtoSlide : MegaSlide{}

actor BassDash : MegaSlide{}

actor DuoBash : MegaSlide{}

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("DuoFistBoss",1,"DuoBash")
TNT1 A 0 A_JumpIfInventory("BassBusterBoss",1,"BassDash")
TNT1 A 0 A_JumpIfInventory("ProtoBusterBoss",1,"ProtoSlide")
TNT1 A 0 A_JumpIfInventory("MegaBusterBoss",1,"MegaSlide")
//TNT1 A 0 A_JumpIfInventory("BreakBusterAgility",1,"BreakSlide")
MegaSlide:
TNT1 A 0 A_JumpIfInventory("SlideLimitFlag",75,"Pickup2")
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
BreakSlide:
TNT1 A 0 A_GiveInventory("BreakSlideThrustW",1)
stop
Pickup2:
TNT1 A 0 A_GiveInventory("CopySlideAmmoPickup",1)
TNT1 A 0 A_JumpIfInventory("DuoFistBoss",1,"DuoBash2")
TNT1 A 0 A_JumpIfInventory("BassBusterBoss",1,"BassDash2")
TNT1 A 0 A_JumpIfInventory("ProtoBusterBoss",1,"ProtoSlide2")
TNT1 A 0 A_JumpIfInventory("MegaBusterBoss",1,"MegaSlide2")
//TNT1 A 0 A_JumpIfInventory("BreakBusterAgility",1,"BreakSlide2")
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
BreakSlide2:
TNT1 A 0 A_GiveInventory("BreakSlideThrust",1)
stop
}
}

actor BreakSlideThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(35)
stop
}
}

actor BreakSlideThrust : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ThrustThingZ(0,0,1,0)
TNT1 A 0 A_Recoil(50)
stop
}
}

actor CopySlidePickup2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CopySlideDelay",1)
TNT1 A 0 A_JumpIfInventory("SlideLimitFlag",100,"Pickup2")
TNT1 A 0 A_JumpIfInventory("MegaBusterFlag",1,"MegaSlider")
MegaSlider:
TNT1 A 0 A_GiveInventory("MegaSlideThrustW",1)
stop
Pickup2:
TNT1 A 0 A_GiveInventory("CopySlideAmmoPickup",1)
TNT1 A 0 A_JumpIfInventory("MegaBusterFlag",1,"MegaSlide2")
MegaSlide2:
TNT1 A 0 A_GiveInventory("MegaSlideThrustX",1)
stop
}
}


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

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

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


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

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

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

actor BassDashThrustW : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(z-floorz==0,"Ground")
TNT1 A 0 A_Recoil(-8.5)
stop
Ground:
TNT1 A 0 ThrustThingZ(0,20,0,0) 
TNT1 A 0 A_Recoil(-10)
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(-8)
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",300,"Pickup2")
TNT1 A 0 A_JumpIfInventory("MegaBusterBoss",1,"PickupMega")
TNT1 A 0 A_TakeInventory("SlideLimitFlag",100)
stop
Pickup2:
TNT1 A 0 A_SpawnItemEx("CopySlideHelper",0,0,24)
stop
PickupMega:
TNT1 A 0
TNT1 A 0 A_TakeInventory("SlideLimitFlag",75)
stop
}
}
actor CopySlideDelay : Powerup
{
Powerup.Duration -2
}

actor SlideLimitRestoreDelay : Powerup
{
Powerup.Duration -2
}

actor CopySlideHelper
{
+NOINTERACTION
-SOLID
+MISSILE
radius 1
height 1
+NOGRAVITY
+DONTBLAST
renderstyle none
States
{
Spawn:
TNT1 A 1
TNT1 A 0 A_JumpIfInTargetInventory("MegaBusterBoss",1,"SpawnMega")
TNT1 A 5 A_TakeFromTarget("SlideLimitFlag",100)
goto Spawn2
SpawnMega:
TNT1 A 5 A_TakeFromTarget("SlideLimitFlag",75)
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",300,"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
}
}