actor MaestroHeatCustom : BaseMM8BDMWep_CBM
{
tag "$TAGC_0C1"
dropitem "CopyClassUpgradeDropped"

weapon.preferredskin "Maestro-Custom"
Weapon.SlotNumber 1
Obituary "$OB_ROCKBUSTER"
Inventory.Pickupmessage "You got Maestro.exe!"
weapon.ammotype "EXEAmmo"
inventory.pickupsound ""
inventory.icon "MaesHCIc"
States
{
ThumbsUp:  
HUST F 2 Offset(20,62)
HUST F 2 Offset(40,92) 
HUST Z 2 Offset(-30,102)A_PlaySoundEx("weapon/RockThumbsUp","Weapon")
HUST Z 0 A_Refire(1)
HUST Z 2 Offset(-15,67)
HUST Z 2 Offset(1,31)
goto ThumbsUpH
ThumbsUpH:
HUST Z 1 Offset(1,31)A_RailWait
HUST Z 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUpH")
goto ThumbsUpEnd
ThumbsUpEnd:
HUST Z 2 Offset(-15,67)
HUST Z 2 Offset(-30,102) 
HUST F 2 Offset(40,92)
HUST F 2 Offset(20,62)
goto Ready2+1

Spawn:
C_00 C 1
loop

Ready:
HUST F 0 A_JumpIfInventory("Once",1,"ReadyNoIntro")
Goto ReadyIntro

Ready2:
HUST F 0 ACS_ExecuteAlways(998,0,12000,1)
HUST F 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUp")
HUST F 1 A_WeaponReady(WRF_ALLOWRELOAD)
Goto Ready2+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HUST F 1 A_Lower
Loop

Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HUST F 1 A_Raise
Loop

ReadyIntro:
HUSS C 0 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeEnd",0,9)
HUSS C 0 A_PlaySoundEx("weapon/lflready","Weapon")
HUSS C 0 ACS_ExecuteAlways(998,0,12000,1)
HUSS C 0 ACS_ExecuteAlways(991,0,12000)
HUTU A 1 Offset(-6,41)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CentaurFlashCFX",0,0,28,22,0,random2(256/12),random(0,359),1)
HUTU B 1 Offset(-12,50)
HUTU C 1 Offset(-18,59)
HUTU D 1 Offset(-24,68)
HUTU E 6 Offset(-30,77)A_GiveInventory("Once",1)
HUTU E 1 Offset(-24,68)
HUTU E 1 Offset(-18,59)
HUTU E 1 Offset(-12,50)
HUTU E 1 Offset(-6,41)
HUTU E 6 Offset(0,32)
HUTU E 1 Offset(-21,72)
HUTU E 1 Offset(-43,107)
TNT1 A 3 Offset(40,92)
HUST F 1 Offset(40,92)
HUST F 1 Offset(20,62)
HUST F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
goto Ready2+1

ReadyNoIntro:
HUST F 1 ACS_ExecuteAlways(998,0,12000,1)
goto Ready2+1


Fire:
HUST G 0 A_JumpIfInventory("PowerRage_ST",1,"FireR")
HUST G 0 ACS_ExecuteAlways(998,0,12000,1)
HUST G 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST G 0 A_TakeInventory("WeaponCharge",999)
HUST G 0 A_GiveInventory("MaestroMain_CI",1)
HUST G 1 Offset(5, 37)//41
HUST G 1 Offset(9, 41)//45
HUST G 1 Offset(10, 42)//46
HUST F 1 Offset(9, 41)//45
HUST F 1 Offset(5, 37)//41
HUST F 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST F 0 A_Refire("Hold")
goto Ready2+1

FireR:
HUST G 0 ACS_ExecuteAlways(998,0,12000,1)
HUST G 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST G 0 A_TakeInventory("WeaponCharge",999)
HUST G 0 A_GiveInventory("MaestroMain_CI",1)
HUST G 1 Offset(5, 37)//41
HUST G 1 Offset(10, 42)//46
HUST F 1 Offset(5, 37)//41
HUST F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST F 0 A_Refire("Hold")
goto Ready2+1

Fire2:
HUST F 1 A_StopSoundEx("Weapon")
goto Fire

Fire3:
HUST G 0 ACS_ExecuteAlways(998,0,12000,1)
HUST I 1 Offset(-9,23)
HUST F 1 Offset(-18,14)
HUST F 0 A_PlaySoundEx("weapon/magmabazooka","Weapon")
HUST F 0 A_SpawnItemEx("BurnExplosionSound")
HUST F 0 A_TakeInventory("WeaponCharge",999)
HUST I 1 Offset(-18,10)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)A_GiveInventory("MaestroHeatMain_CI",1)
HUST I 1 Offset(-18,10)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)A_GiveInventory("MaestroHeatMain_CI",1)
HUST I 1 Offset(-18,10)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)A_GiveInventory("MaestroHeatMain_CI",1)
HUST I 1 Offset(-18,10)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)A_GiveInventory("MaestroHeatMain_CI",1)
HUST I 1 Offset(-18,10)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)A_GiveInventory("MaestroHeatMain_CI",1)
HUST F 1 Offset(-18,14)
HUST F 1 Offset(-9,23)
HUST F 9 A_WeaponReady(14)
HUST F 0 A_Refire("Hold")
goto Ready2+1

Hold:
HUST F 1
HUST F 0 A_GiveInventory("WeaponCharge_MaestroRC",1)
HUST F 0 A_JumpIfInventory("WeaponCharge",9,"Hold2")
HUST F 0 A_Refire("Hold")
goto Fire2

Hold2:
HUST H 0 A_PlaySoundEx("weapon/lflcharge","Weapon")

Hold2.a:
HUST H 1 ACS_ExecuteAlways(998,0,12007,6)
HUST H 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST H 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST H 0 A_Refire("Hold2.b")
goto Fire2

Hold2.b:
HUST F 1 ACS_ExecuteAlways(998,0,12000,1)
HUST F 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST F 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST F 0 A_Refire("Hold2.a")
goto Fire2

Hold3:
HUST I 0 A_PlaySoundEx("weapon/lflready","Weapon")

Hold3.a:
HUST I 1 ACS_ExecuteAlways(998,0,12008,7)
HUST I 0 A_Refire("Hold3.b")
goto Fire3

Hold3.b:
HUST F 1 ACS_ExecuteAlways(998,0,12000,1)
HUST F 0 A_Refire("Hold3.a")
goto Fire3

Altfire:
HUST F 0 A_JumpIfInventory("PowerRage_ST",1,"AltfireR")
HUST F 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST F 0 A_TakeInventory("WeaponCharge",999)
HUST F 0 A_GiveInventory("MaestroMain_CI",1)
HUST G 1 Offset(5, 37)//41
HUST G 1 Offset(9, 41)//45
HUST G 1 Offset(10, 42)//46
HUST F 1 Offset(9, 41)//45
HUST F 1 Offset(5, 37)//41
HUST F 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST F 0 A_Refire("Altfire")
goto Ready2+1

AltfireR:
HUST F 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST F 0 A_TakeInventory("WeaponCharge",999)
HUST F 0 A_GiveInventory("MaestroMain_CI",1)
HUST G 1 Offset(5, 37)//41
HUST G 1 Offset(10, 42)//46
HUST F 1 Offset(5, 37)//41
HUST F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST F 0 A_Refire("Altfire")
goto Ready2+1

Reload:
HUTA A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUTA A 1 Offset(40,92)A_TakeInventory("Once",9)
HUTA A 1 Offset(20,62)A_GiveInventory("MaestroNeutralBoss",1)
TNT1 A 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUTU E 1 Offset(-43,107)
HUTU E 1 Offset(-21,72)
HUTU E 2 Offset(15,32)
HUTU D 2 Offset(15,32)
HUTU C 2 Offset(15,32)
HUTU B 2 Offset(15,32)
HUTU A 2 Offset(15,32)
HUSS A 0 A_PlaySoundEx("weapon/MaestroFuzz","Weapon")
TNT1 A 0 A_TakeInventory("FireStormWepCMaestro",1)
TNT1 A 0 A_TakeInventory("FlameBlastWepCMaestro",1)
TNT1 A 0 A_TakeInventory("FlameSwordWepCMaestro",1)
TNT1 A 0 A_TakeInventory("MagmaBazookaWepCMaestro",1)
TNT1 A 0 A_TakeInventory("PharaohShotWepCMaestro",1)
HUSS GFGFGFDEDEDECBA 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
Reload2:
TNT1 A 1 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeRevert",0)
TNT1 A 8
loop
}
}

actor MaestroAquaCustom : BaseMM8BDMWep_CBM
{
tag "$TAGC_0C2"
dropitem "CopyClassUpgradeDropped"

weapon.preferredskin "Maestro-Custom"
Weapon.SlotNumber 1
Obituary "$OB_ROCKBUSTER"
Inventory.Pickupmessage "You got Maestro.exe!"
weapon.ammotype "EXEAmmo"
inventory.icon "MaesACIc"
States
{
ThumbsUp:  
HUST J 2 Offset(20,62)
HUST J 2 Offset(40,92) 
HUST X 2 Offset(-30,102)A_PlaySoundEx("weapon/RockThumbsUp","Weapon")
HUST X 0 A_Refire(1)
HUST X 2 Offset(-15,67)
HUST X 2 Offset(1,31)
goto ThumbsUpH
ThumbsUpH:
HUST X 1 Offset(1,31)A_RailWait
HUST X 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUpH")
goto ThumbsUpEnd
ThumbsUpEnd:
HUST X 2 Offset(-15,67)
HUST X 2 Offset(-30,102) 
HUST J 2 Offset(40,92)
HUST J 2 Offset(20,62)
goto Ready2+1

Spawn:
C_00 C 1
loop

Ready:
HUST J 0 A_JumpIfInventory("Once",1,"ReadyNoIntro")
Goto ReadyIntro

Ready2:
HUST J 0 ACS_ExecuteAlways(998,0,12001,1)
HUST J 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUp")
HUST J 1 A_WeaponReady(WRF_ALLOWRELOAD)
Goto Ready2+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HUST J 1 A_Lower
Loop

Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HUST J 1 A_Raise
Loop

ReadyIntro:
HUSS C 0 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeEnd",0,10)
HUSS C 0 A_PlaySoundEx("weapon/lflready","Weapon")
HUSS C 0 ACS_ExecuteAlways(998,0,12001,1)
HUSS C 0 ACS_ExecuteAlways(991,0,12001)
HUTU F 1 Offset(-6,41)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CentaurFlashCFX",0,0,28,22,0,random2(256/12),random(0,359),1)
HUTU G 1 Offset(-12,50)
HUTU H 1 Offset(-18,59)
HUTU I 1 Offset(-24,68)
HUTU J 6 Offset(-30,77)A_GiveInventory("Once",1)
HUTU J 1 Offset(-24,68)
HUTU J 1 Offset(-18,59)
HUTU J 1 Offset(-12,50)
HUTU J 1 Offset(-6,41)
HUTU J 6 Offset(0,32)
HUTU J 1 Offset(-21,72)
HUTU J 1 Offset(-43,107)
TNT1 A 3 Offset(40,92)
HUST J 1 Offset(40,92)
HUST J 1 Offset(20,62)
HUST J 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
goto Ready2+1

ReadyNoIntro:
HUST J 1 ACS_ExecuteAlways(998,0,12001,1)
goto Ready2+1

Fire:
HUST J 0 A_JumpIfInventory("PowerRage_ST",1,"FireR")
HUST J 0 ACS_ExecuteAlways(998,0,12001,1)
HUST J 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST J 0 A_TakeInventory("WeaponCharge",999)
HUST J 0 A_GiveInventory("MaestroMain_CI",1)
HUST K 1 Offset(5, 37)//41
HUST K 1 Offset(9, 41)//45
HUST K 1 Offset(10, 42)//46
HUST J 1 Offset(9, 41)//45
HUST J 1 Offset(5, 37)//41
HUST J 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST J 0 A_Refire("Hold")
goto Ready2+1

FireR:
HUST J 0 ACS_ExecuteAlways(998,0,12001,1)
HUST J 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST J 0 A_TakeInventory("WeaponCharge",999)
HUST J 0 A_GiveInventory("MaestroMain_CI",1)
HUST K 1 Offset(5, 37)//41
HUST K 1 Offset(10, 42)//46
HUST J 1 Offset(5, 37)//41
HUST J 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST J 0 A_Refire("Hold")
goto Ready2+1

Fire2:
HUST J 1 A_StopSoundEx("Weapon")
goto Fire

Fire3:
HUST M 0 ACS_ExecuteAlways(998,0,12001,1)
HUST M 0 A_StopSoundEx("Body")
HUST M 1 Offset(-9,23)
HUST J 1 Offset(-18,14)
HUST M 0 A_PlaySoundEx("weapon/waterwave","Weapon")
HUST M 0 A_PlaySoundEx("wep/PumpShieldBurst","SoundSlot6")
HUST M 0 A_TakeInventory("WeaponCharge",999)
HUST M 1 Offset(-18,10)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)A_GiveInventory("MaestroAquaMain_CI",1)
HUST M 1 Offset(-18,10)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)A_GiveInventory("MaestroAquaMain_CI",1)
HUST M 1 Offset(-18,10)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)A_GiveInventory("MaestroAquaMain_CI",1)
HUST M 1 Offset(-18,10)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)A_GiveInventory("MaestroAquaMain_CI",1)
HUST M 1 Offset(-18,10)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)A_GiveInventory("MaestroAquaMain_CI",1)
HUST J 1 Offset(-18,14)
HUST J 1 Offset(-9,23)
HUST J 9 A_WeaponReady(14)
HUST J 0 A_Refire("Hold")
goto Ready2+1

Hold:
HUST J 1
HUST J 0 A_GiveInventory("WeaponCharge_MaestroRC",1)
HUST J 0 A_JumpIfInventory("WeaponCharge",9,"Hold2")
HUST J 0 A_Refire("Hold")
goto Fire2

Hold2:
HUST L 0 A_PlaySoundEx("weapon/lflcharge","Weapon")

Hold2.a:
HUST L 1 ACS_ExecuteAlways(998,0,12009,6)
HUST L 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST L 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST L 0 A_Refire("Hold2.b")
goto Fire2

Hold2.b:
HUST J 1 ACS_ExecuteAlways(998,0,12001,1)
HUST J 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST J 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST J 0 A_Refire("Hold2.a")
goto Fire2

Hold3:
HUST M 0 A_PlaySoundEx("weapon/lflready","Body")

Hold3.a:
HUST M 1 ACS_ExecuteAlways(998,0,12010,7)
HUST M 0 A_Refire("Hold3.b")
goto Fire3

Hold3.b:
HUST J 1 ACS_ExecuteAlways(998,0,12001,1)
HUST J 0 A_Refire("Hold3.a")
goto Fire3

Altfire:
HUST K 0 A_JumpIfInventory("PowerRage_ST",1,"AltfireR")
HUST K 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST K 0 A_TakeInventory("WeaponCharge",999)
HUST K 0 A_GiveInventory("MaestroMain_CI",1)
HUST K 1 Offset(5, 37)//41
HUST K 1 Offset(9, 41)//45
HUST K 1 Offset(10, 42)//46
HUST J 1 Offset(9, 41)//45
HUST J 1 Offset(5, 37)//41
HUST J 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST J 0 A_Refire("Altfire")
goto Ready2+1

AltfireR:
HUST K 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST K 0 A_TakeInventory("WeaponCharge",999)
HUST K 0 A_GiveInventory("MaestroMain_CI",1)
HUST K 1 Offset(5, 37)//41
HUST K 1 Offset(10, 42)//46
HUST J 1 Offset(5, 37)//41
HUST J 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST J 0 A_Refire("Altfire")
goto Ready2+1

Reload:
HUST J 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST J 1 Offset(40,92)A_TakeInventory("Once",9)
HUST J 1 Offset(20,62)A_GiveInventory("MaestroNeutralBoss",1)
TNT1 A 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUTU J 1 Offset(-43,107)
HUTU J 1 Offset(-21,72)
HUTU J 2 Offset(15,32)
HUTU I 2 Offset(15,32)
HUTU H 2 Offset(15,32)
HUTU G 2 Offset(15,32)
HUTU F 2 Offset(15,32)
TNT1 A 0 A_TakeInventory("IceSlasherWepCMaestro",1)
TNT1 A 0 A_TakeInventory("BubbleLeadWepCMaestro",1)
TNT1 A 0 A_TakeInventory("WaterBalloonWepCMaestro",1)
TNT1 A 0 A_TakeInventory("LaserTridentWepCMaestro",1)
TNT1 A 0 A_TakeInventory("SaltWaterWepCMaestro",1)
HUSS K 0 A_PlaySoundEx("weapon/MaestroFuzz","Weapon")
HUSS GFGFGFDEDEDECBA 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
TNT1 A 3 Offset(0,-200)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
Reload2:
TNT1 A 1 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeRevert",0)
TNT1 A 8
loop
}
}

actor MaestroElecCustom : BaseMM8BDMWep_CBM
{
tag "$TAGC_0C3"
dropitem "CopyClassUpgradeDropped"

weapon.preferredskin "Maestro-Custom"
Weapon.SlotNumber 1
Obituary "$OB_ROCKBUSTER"
Inventory.Pickupmessage "You got Maestro.exe!"
weapon.ammotype "EXEAmmo"
inventory.icon "MaesECIc"
States
{
ThumbsUp:  
HUST N 2 Offset(20,62)
HUST N 2 Offset(40,92) 
HUST Y 2 Offset(-30,102)A_PlaySoundEx("weapon/RockThumbsUp","Weapon")
HUST Y 0 A_Refire(1)
HUST Y 2 Offset(-15,67)
HUST Y 2 Offset(1,31)
goto ThumbsUpH
ThumbsUpH:
HUST Y 1 Offset(1,31)A_RailWait
HUST Y 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUpH")
goto ThumbsUpEnd
ThumbsUpEnd:
HUST Y 2 Offset(-15,67)
HUST Y 2 Offset(-30,102) 
HUST N 2 Offset(40,92)
HUST N 2 Offset(20,62)
goto Ready2+1

Spawn:
C_00 C 1
loop

Ready:
HUST N 0 A_JumpIfInventory("Once",1,"ReadyNoIntro")
Goto ReadyIntro

Ready2:
HUST N 0 ACS_ExecuteAlways(998,0,12002,1)
HUST N 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUp")
HUST N 1 A_WeaponReady(WRF_ALLOWRELOAD)
Goto Ready2+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HUST N 1 A_Lower
Loop

Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HUST N 1 A_Raise
Loop

ReadyIntro:
HUSS K 0 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeEnd",0,11)
HUSS K 0 A_PlaySoundEx("weapon/lflready","Weapon")
HUSS K 0 ACS_ExecuteAlways(998,0,12002,1)
HUSS K 0 ACS_ExecuteAlways(991,0,12002)
HUTU K 1 Offset(-6,41)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CentaurFlashCFX",0,0,28,22,0,random2(256/12),random(0,359),1)
HUTU L 1 Offset(-12,50)
HUTU M 1 Offset(-18,59)
HUTU N 1 Offset(-24,68)
HUTU O 6 Offset(-30,77)A_GiveInventory("Once",1)
HUTU O 1 Offset(-24,68)
HUTU O 1 Offset(-18,59)
HUTU O 1 Offset(-12,50)
HUTU O 1 Offset(-6,41)
HUTU O 6 Offset(0,32)
HUTU O 1 Offset(-21,72)
HUTU O 1 Offset(-43,107)
TNT1 A 3 Offset(40,92)
HUST N 1 Offset(40,92)
HUST N 1 Offset(20,62)
HUST N 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
goto Ready2+1

ReadyNoIntro:
HUST N 1 ACS_ExecuteAlways(998,0,12002,1)
goto Ready2+1

Fire:
HUST O 0 A_JumpIfInventory("PowerRage_ST",1,"FireR")
HUST O 0 ACS_ExecuteAlways(998,0,12002,1)
HUST O 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST O 0 A_TakeInventory("WeaponCharge",999)
HUST O 0 A_GiveInventory("MaestroMain_CI",1)
HUST O 1 Offset(5, 37)//41
HUST O 1 Offset(9, 41)//45
HUST O 1 Offset(10, 42)//46
HUST N 1 Offset(9, 41)//45
HUST N 1 Offset(5, 37)//41
HUST N 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Hold")
goto Ready2+1

FireR:
HUST O 0 ACS_ExecuteAlways(998,0,12002,1)
HUST O 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST O 0 A_TakeInventory("WeaponCharge",999)
HUST O 0 A_GiveInventory("MaestroMain_CI",1)
HUST O 1 Offset(5, 37)//41
HUST O 1 Offset(10, 42)//46
HUST N 1 Offset(5, 37)//41
HUST N 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Hold")
goto Ready2+1

Fire2:
HUST N 1 A_StopSoundEx("Weapon")
goto Fire

Fire3:
HUST N 0 ACS_ExecuteAlways(998,0,12002,1)
HUST Q 1 Offset(-9,23)
HUST N 1 Offset(-18,14)
HUST Q 0 A_PlaySoundEx("weapon/ElecTeleport","Weapon")
HUST Q 0 A_PlaySoundEx("weapon/TSTRIKE","SoundSlot6")
HUST Q 0 A_TakeInventory("WeaponCharge",999)
HUST Q 1 Offset(-18,10)A_GiveInventory("MaestroElecMain_CI",1)
HUST N 1 Offset(-18,14)
HUST Q 1 Offset(-18,10)
HUST N 1 Offset(-18,14)
HUST Q 1 Offset(-18,10)
HUST N 1 Offset(-18,14)
HUST Q 1 Offset(-18,10)
HUST N 1 Offset(-18,14)
HUST Q 1 Offset(-18,10)
HUST N 1 Offset(-18,14)
HUST N 1 Offset(-18,14)
HUST N 1 Offset(-9,23)
HUST N 9 A_WeaponReady(14)
HUST N 0 A_Refire("Hold")
goto Ready2+1

Hold:
HUST N 1
HUST N 0 A_GiveInventory("WeaponCharge_MaestroRC",1)
HUST N 0 A_JumpIfInventory("WeaponCharge",9,"Hold2")
HUST N 0 A_Refire("Hold")
goto Fire2

Hold2:
HUST P 0 A_PlaySoundEx("weapon/lflcharge","Weapon")

Hold2.a:
HUST P 1 ACS_ExecuteAlways(998,0,12011,6)
HUST P 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST P 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST P 0 A_Refire("Hold2.b")
goto Fire2

Hold2.b:
HUST N 1 ACS_ExecuteAlways(998,0,12002,1)
HUST N 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST N 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST N 0 A_Refire("Hold2.a")
goto Fire2

Hold3:
HUST Q 0 A_PlaySoundEx("weapon/lflready","Weapon")

Hold3.a:
HUST Q 1 ACS_ExecuteAlways(998,0,12012,7)
HUST Q 0 A_Refire("Hold3.b")
goto Fire3

Hold3.b: 
HUST N 1 ACS_ExecuteAlways(998,0,12002,1)
HUST N 0 A_Refire("Hold3.a")
goto Fire3

Altfire:
HUST O 0 A_JumpIfInventory("PowerRage_ST",1,"AltfireR")
HUST O 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST O 0 A_TakeInventory("WeaponCharge",999)
HUST O 0 A_GiveInventory("MaestroMain_CI",1)
HUST O 1 Offset(5, 37)//41
HUST O 1 Offset(9, 41)//45
HUST O 1 Offset(10, 42)//46
HUST N 1 Offset(9, 41)//45
HUST N 1 Offset(5, 37)//41
HUST N 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Altfire")
goto Ready2+1

AltfireR:
HUST O 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST O 0 A_TakeInventory("WeaponCharge",999)
HUST O 0 A_GiveInventory("MaestroMain_CI",1)
HUST O 1 Offset(5, 37)//41
HUST O 1 Offset(10, 42)//46
HUST N 1 Offset(5, 37)//41
HUST N 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Altfire")
goto Ready2+1

Reload:
HUST N 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 1 Offset(40,92)A_TakeInventory("Once",9)
HUST N 1 Offset(20,62)A_GiveInventory("MaestroNeutralBoss",1)
TNT1 A 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUTU O 1 Offset(-43,107)
HUTU O 1 Offset(-21,72)
HUTU O 2 Offset(15,32)
HUTU N 2 Offset(15,32)
HUTU M 2 Offset(15,32)
HUTU L 2 Offset(15,32)
HUTU K 2 Offset(15,32)
HUSS K 0 A_PlaySoundEx("weapon/MaestroFuzz","Weapon")
TNT1 A 0 A_TakeInventory("ThunderBeamWepCMaestro",1)
TNT1 A 0 A_TakeInventory("SparkShockWepCMaestro",1)
TNT1 A 0 A_TakeInventory("ThunderBoltWepCMaestro",1)
TNT1 A 0 A_TakeInventory("ThunderClawWepCMaestro",1)
TNT1 A 0 A_TakeInventory("DynamoTendrilWepCMaestro",1)
HUSS GFGFGFDEDEDECBA 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
TNT1 A 3 Offset(0,-200)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
Reload2:
TNT1 A 1 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeRevert",0)
TNT1 A 8
loop
}
}

actor MaestroWoodCustom : BaseMM8BDMWep_CBM
{
tag "$TAGC_0C4"
dropitem "CopyClassUpgradeDropped"

weapon.preferredskin "Maestro-Custom"
Weapon.SlotNumber 1
Obituary "$OB_ROCKBUSTER"
Inventory.Pickupmessage "You got Maestro.exe!"
weapon.ammotype "EXEAmmo"
inventory.icon "MaesWCIc"
States
{
ThumbsUp:  
HUST R 2 Offset(20,62)
HUST R 2 Offset(40,92) 
HUST V 2 Offset(-30,102)A_PlaySoundEx("weapon/RockThumbsUp","Weapon")
HUST V 0 A_Refire(1)
HUST V 2 Offset(-15,67)
HUST V 2 Offset(1,31)
goto ThumbsUpH
ThumbsUpH:
HUST V 1 Offset(1,31)A_RailWait
HUST V 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUpH")
goto ThumbsUpEnd
ThumbsUpEnd:
HUST V 2 Offset(-15,67)
HUST V 2 Offset(-30,102) 
HUST R 2 Offset(40,92)
HUST R 2 Offset(20,62)
goto Ready2+1

Spawn:
C_00 C 1
loop

Ready:
HUST R 0 A_JumpIfInventory("Once",1,"ReadyNoIntro")
Goto ReadyIntro

Ready2:
HUST R 0 ACS_ExecuteAlways(998,0,12003,1)
HUST R 0 A_JumpIfInventory("MaestroBusterFlag",1,"ThumbsUp")
HUST R 1 A_WeaponReady(WRF_ALLOWRELOAD)
Goto Ready2+1

Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
HUST R 1 A_Lower
Loop

Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
HUST R 1 A_Raise
Loop

ReadyIntro:
HUTU P 0 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeEnd",0,12)
HUTU P 0 A_PlaySoundEx("weapon/lflready","Weapon")
HUTU P 0 ACS_ExecuteAlways(998,0,12003,1)
HUTU P 0 ACS_ExecuteAlways(991,0,12003)
HUTU P 1 Offset(-6,41)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CentaurFlashCFX",0,0,28,22,0,random2(256/12),random(0,359),1)
HUTU Q 1 Offset(-12,50)
HUTU R 1 Offset(-18,59)
HUTU S 1 Offset(-24,68)
HUTU T 6 Offset(-30,77)A_GiveInventory("Once",1)
HUTU T 1 Offset(-24,68)
HUTU T 1 Offset(-18,59)
HUTU T 1 Offset(-12,50)
HUTU T 1 Offset(-6,41)
HUTU T 6 Offset(0,32)
HUTU T 1 Offset(-21,72)
HUTU T 1 Offset(-43,107)
TNT1 A 3 Offset(40,92)
HUST R 1 Offset(40,92)
HUST R 1 Offset(20,62)
HUST R 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
goto Ready2+1

ReadyNoIntro:
HUST R 1 ACS_ExecuteAlways(998,0,12003,1)
goto Ready2+1

Fire:
HUST S 0 A_JumpIfInventory("PowerRage_ST",1,"FireR")
HUST S 0 ACS_ExecuteAlways(998,0,12003,1)
HUST S 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST S 0 A_TakeInventory("WeaponCharge",999)
HUST S 0 A_GiveInventory("MaestroMain_CI",1)
HUST S 1 Offset(5, 37)//41
HUST S 1 Offset(9, 41)//45
HUST S 1 Offset(10, 42)//46
HUST R 1 Offset(9, 41)//45
HUST R 1 Offset(5, 37)//41
HUST R 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Hold")
goto Ready2+1

FireR:
HUST S 0 ACS_ExecuteAlways(998,0,12003,1)
HUST S 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST S 0 A_TakeInventory("WeaponCharge",999)
HUST S 0 A_GiveInventory("MaestroMain_CI",1)
HUST S 1 Offset(5, 37)//41
HUST S 1 Offset(10, 42)//46
HUST R 1 Offset(5, 37)//41
HUST R 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST N 0 A_Refire("Hold")
goto Ready2+1

Fire2:
HUST R 1 A_StopSoundEx("Weapon")
goto Fire

Fire3:
HUST U 0 ACS_ExecuteAlways(998,0,12003,1)
HUST U 1 Offset(-9,23)
HUST R 1 Offset(-18,14)
HUST U 0 A_PlaySoundEx("class/windstart","Weapon")
HUST U 0 A_PlaySoundEx("weapon/TopManShot","SoundSlot6")
HUST U 0 A_TakeInventory("WeaponCharge",999)
HUST U 1 Offset(-18,10)A_GiveInventory("MaestroWoodMainAlt_CI",1)//A_GiveInventory("MaestroWoodMain_CI",1)
HUST R 1 Offset(-18,14)
HUST U 1 Offset(-18,10)
HUST R 1 Offset(-18,14)
HUST U 1 Offset(-18,10)
HUST R 1 Offset(-18,14)
HUST U 1 Offset(-18,10)
HUST R 1 Offset(-18,14)
HUST U 1 Offset(-18,10)A_GiveInventory("MaestroWoodMain_CI",1)
HUST R 1 Offset(-18,14)
HUST R 1 Offset(-18,14)
HUST R 1 Offset(-9,23)
HUST R 9 A_WeaponReady(14)
HUST R 0 A_Refire("Hold")
goto Ready2+1

Hold:
HUST R 1
HUST R 0 A_GiveInventory("WeaponCharge_MaestroRC",1)
HUST R 0 A_JumpIfInventory("WeaponCharge",9,"Hold2")
HUST R 0 A_Refire("Hold")
goto Fire2

Hold2:
HUST T 0 A_PlaySoundEx("weapon/lflcharge","Weapon")

Hold2.a:
HUST T 1 ACS_ExecuteAlways(998,0,12013,6)
HUST T 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST T 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST T 0 A_Refire("Hold2.b")
goto Fire2

Hold2.b:
HUST R 1 ACS_ExecuteAlways(998,0,12003,1)
HUST R 0 A_GiveInventory("WeaponCharge_MaestroRC",1)//76
HUST R 0 A_JumpIfInventory("WeaponCharge",76,"Hold3")
HUST R 0 A_Refire("Hold2.a")
goto Fire2

Hold3:
HUST U 0 A_PlaySoundEx("weapon/lflready","Weapon")

Hold3.a:
HUST U 1 ACS_ExecuteAlways(998,0,12014,7)
HUST U 0 A_Refire("Hold3.b")
goto Fire3

Hold3.b: 
HUST R 1 ACS_ExecuteAlways(998,0,12003,1)
HUST R 0 A_Refire("Hold3.a")
goto Fire3

Altfire:
HUST S 0 A_JumpIfInventory("PowerRage_ST",1,"AltfireR")
HUST S 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST S 0 A_TakeInventory("WeaponCharge",999)
HUST S 0 A_GiveInventory("MaestroMain_CI",1)
HUST S 1 Offset(5, 37)//41
HUST S 1 Offset(9, 41)//45
HUST S 1 Offset(10, 42)//46
HUST R 1 Offset(9, 41)//45
HUST R 1 Offset(5, 37)//41
HUST R 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST R 0 A_Refire("Altfire")
goto Ready2+1

AltfireR:
HUST S 0 A_PlaySoundEx("weapon/RockBuster","Weapon")
HUST S 0 A_TakeInventory("WeaponCharge",999)
HUST S 0 A_GiveInventory("MaestroMain_CI",1)
HUST S 1 Offset(5, 37)//41
HUST S 1 Offset(10, 42)//46
HUST R 1 Offset(5, 37)//41
HUST R 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST R 0 A_Refire("Altfire")
goto Ready2+1

Reload:
HUST R 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUST R 1 Offset(40,92)A_TakeInventory("Once",9)
HUST R 1 Offset(20,62)A_GiveInventory("MaestroNeutralBoss",1)
TNT1 A 3 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
HUTU T 1 Offset(-43,107)
HUTU T 1 Offset(-21,72)
HUTU T 2 Offset(15,32)
HUTU S 2 Offset(15,32)
HUTU R 2 Offset(15,32)
HUTU Q 2 Offset(15,32)
HUTU P 2 Offset(15,32)
TNT1 A 0 A_TakeInventory("GyroAttackWepCMaestro",1)
TNT1 A 0 A_TakeInventory("SearchSnakeWepCMaestro",1)
TNT1 A 0 A_TakeInventory("PlantTrapperWepCMaestro",1)
TNT1 A 0 A_TakeInventory("TornadoHoldWepCMaestro",1)
TNT1 A 0 A_TakeInventory("TornadoBlowWepCMaestro",1)
HUSS A 0 A_PlaySoundEx("weapon/MaestroFuzz","Weapon")
HUSS GFGFGFDEDEDECBA 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
TNT1 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
Reload2:
TNT1 A 1 ACS_NamedExecuteAlways("CCBM_MaestroStyleChangeRevert",0)
TNT1 A 8
loop
}
}

actor HeatCustomChecker : Once{}
actor AquaCustomChecker : Once{}
actor ElecCustomChecker : Once{}
actor WoodCustomChecker : Once{}

actor FireStormWepCMaestro : FireStormWepC{Weapon.AmmoGive 0}
actor PharaohShotWepCMaestro : PharaohShotWepC{Weapon.AmmoGive 0}
actor FlameBlastWepCMaestro : FlameBlastWepC{Weapon.AmmoGive 0}
actor FlameSwordWepCMaestro : FlameSwordWepC{Weapon.AmmoGive 0}
actor MagmaBazookaWepCMaestro : MagmaBazookaWepC{Weapon.AmmoGive 0}

actor HeatCustomPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("MaestroHeatCustom",1)
TNT1 A 0 A_GiveInventory("FireStormWepCMaestro",1)
TNT1 A 0 A_GiveInventory("PharaohShotWepCMaestro",1)
TNT1 A 0 A_GiveInventory("FlameBlastWepCMaestro",1)
TNT1 A 0 A_GiveInventory("FlameSwordWepCMaestro",1)
TNT1 A 0 A_GiveInventory("MagmaBazookaWepCMaestro",1)

TNT1 A 0 A_JumpIfInventory("HeatCustomChecker",1,"No")

TNT1 A 0 A_GiveInventory("HeatCustomChecker",1)
TNT1 A 0 A_GiveInventory("FireStormAmmo",28)
TNT1 A 0 A_GiveInventory("FlameBlastAmmo",28)
TNT1 A 0 A_GiveInventory("FlameSwordAmmo",28)
TNT1 A 0 A_GiveInventory("MagmaBazookaAmmo",28)
TNT1 A 0 A_GiveInventory("PharaohShotAmmo",28)
stop
No:
TNT1 A 0
stop
}
}

actor IceSlasherWepCMaestro : IceSlasherWepC{Weapon.AmmoGive 0}
actor BubbleLeadWepCMaestro : BubbleLeadWepC{Weapon.AmmoGive 0}
actor WaterBalloonWepCMaestro : WaterBalloonWepC{Weapon.AmmoGive 0}
actor LaserTridentWepCMaestro : LaserTridentWepC{Weapon.AmmoGive 0}
actor SaltWaterWepCMaestro : SaltWaterWepC{Weapon.AmmoGive 0}

actor AquaCustomPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("MaestroAquaCustom",1)
TNT1 A 0 A_GiveInventory("IceSlasherWepCMaestro",1)
TNT1 A 0 A_GiveInventory("BubbleLeadWepCMaestro",1)
TNT1 A 0 A_GiveInventory("WaterBalloonWepCMaestro",1)
TNT1 A 0 A_GiveInventory("LaserTridentWepCMaestro",1)
TNT1 A 0 A_GiveInventory("SaltWaterWepCMaestro",1)

TNT1 A 0 A_JumpIfInventory("AquaCustomChecker",1,"No")

TNT1 A 0 A_GiveInventory("AquaCustomChecker",1)
TNT1 A 0 A_GiveInventory("IceSlasherAmmo",28)
TNT1 A 0 A_GiveInventory("BubbleLeadAmmo",28)
TNT1 A 0 A_GiveInventory("WaterBalloonAmmo",42)
TNT1 A 0 A_GiveInventory("LaserTridentAmmo",28)
TNT1 A 0 A_GiveInventory("SaltWaterAmmo",28)
stop
No:
TNT1 A 0
stop
}
}

actor ThunderBeamWepCMaestro : ThunderBeamWepC{Weapon.AmmoGive 0}
actor SparkShockWepCMaestro : SparkShockWepC{Weapon.AmmoGive 0}
actor ThunderBoltWepCMaestro : ThunderBoltWepC{Weapon.AmmoGive 0}
actor ThunderClawWepCMaestro : ThunderClawWepC{Weapon.AmmoGive 0}
actor DynamoTendrilWepCMaestro : DynamoTendrilWepC{Weapon.AmmoGive 0}

actor ElecCustomPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("MaestroElecCustom",1)
TNT1 A 0 A_GiveInventory("ThunderBeamWepCMaestro",1)
TNT1 A 0 A_GiveInventory("SparkShockWepCMaestro",1)
TNT1 A 0 A_GiveInventory("ThunderBoltWepCMaestro",1)
TNT1 A 0 A_GiveInventory("ThunderClawWepCMaestro",1)
TNT1 A 0 A_GiveInventory("DynamoTendrilWepCMaestro",1)

TNT1 A 0 A_JumpIfInventory("ElecCustomChecker",1,"No")

TNT1 A 0 A_GiveInventory("ElecCustomChecker",1)
TNT1 A 0 A_GiveInventory("ThunderBeamAmmo",28)
TNT1 A 0 A_GiveInventory("SparkShockAmmo",28)
TNT1 A 0 A_GiveInventory("ThunderBoltAmmo",28)
TNT1 A 0 A_GiveInventory("ThunderClawAmmo",28)
TNT1 A 0 A_GiveInventory("DynamoTendrilAmmo",28)
stop

No:
TNT1 A 0
stop
}
}

actor LeafShieldWepCMaestro : LeafShieldWepC{Weapon.AmmoGive 0}
actor GyroAttackWepCMaestro : GyroAttackWepC{Weapon.AmmoGive 0}
actor SearchSnakeWepCMaestro : SearchSnakeWepC{Weapon.AmmoGive 0}
actor PlantTrapperWepCMaestro : PlantTrapperWepC{Weapon.AmmoGive 0}
actor TornadoHoldWepCMaestro : TornadoHoldWepC{Weapon.AmmoGive 0}
actor TornadoBlowWepCMaestro : TornadoBlowWepC{Weapon.AmmoGive 0}

actor WoodCustomPickup : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_GiveInventory("MaestroWoodCustom",1)
TNT1 A 0 A_GiveInventory("GyroAttackWepCMaestro",1)
TNT1 A 0 A_GiveInventory("SearchSnakeWepCMaestro",1)
TNT1 A 0 A_GiveInventory("PlantTrapperWepCMaestro",1)
TNT1 A 0 A_GiveInventory("TornadoHoldWepCMaestro",1)
TNT1 A 0 A_GiveInventory("TornadoBlowWepCMaestro",1)

TNT1 A 0 A_JumpIfInventory("WoodCustomChecker",1,"No")

TNT1 A 0 A_GiveInventory("WoodCustomChecker",1)
TNT1 A 0 A_GiveInventory("GyroAttackAmmo",28)
TNT1 A 0 A_GiveInventory("SearchSnakeAmmo",56)
TNT1 A 0 A_GiveInventory("PlantTrapperAmmo",112)
TNT1 A 0 A_GiveInventory("TornadoHoldAmmo",28)
TNT1 A 0 A_GiveInventory("TornadoBlowAmmo",28)
stop

No:
TNT1 A 0
stop
}
}
