actor BalladeCrackerBoss : BaseMM8BDMWep_CBM
{
dropitem "BalladeCrackerWepCDropped"
Weapon.AmmoUse 5
Weapon.AmmoGive 30
Weapon.SlotNumber 1
Obituary "$OB_BALLADECRACKER"
Inventory.Pickupmessage "Power up! Ballade Cracker!"
weapon.ammotype "BalladeCrackerBalladeAmmo"
States
{
Spawn:
C_0K C 1
loop
Ready:
BLLD A 0 ACS_ExecuteAlways(998,0,945)
BLLD A 0 A_JumpIfInventory("BalladeCrackerBalladeAmmo",3,"Ready2")
BLLD A 5 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_GiveInventory("BalladeCrackerBalladeAmmo",2)
Goto Ready+1
Ready2:
BLLD A 0 A_JumpIfInventory("BalladeCrackerBalladeAmmo",5,"Ready3")
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady(WRF_NOPRIMARY)
BLLD A 1 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady(WRF_NOPRIMARY)
BLLD A 1 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady(WRF_NOPRIMARY)
BLLD A 1 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady(WRF_NOPRIMARY)
BLLD A 1 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady(WRF_NOPRIMARY)
BLLD A 1 A_WeaponReady(WRF_NOFIRE)
BLLD A 0 A_GiveInventory("BalladeCrackerBalladeAmmo",2)
loop
Ready3:
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady
BLLD A 1 A_WeaponReady(WRF_NOSECONDARY)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady
BLLD A 1 A_WeaponReady(WRF_NOSECONDARY)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady
BLLD A 1 A_WeaponReady(WRF_NOSECONDARY)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady
BLLD A 1 A_WeaponReady(WRF_NOSECONDARY)
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,2)
BLLD A 0 A_WeaponReady
BLLD A 1 A_WeaponReady(WRF_NOSECONDARY)
BLLD A 0 A_GiveInventory("BalladeCrackerBalladeAmmo",2)
loop
Deselect:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
BLLD A 1 A_Lower
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
BLLD A 1 A_Raise
Loop
Fire:
BLLD A 0 A_JumpIfNoAmmo("NoAmmo")
BLLD A 0 A_GiveInventory("BalladeFireFlag",1)
//BLLD A 0 A_GunFlash
//Hold:
//BLLD A 1 A_RailWait
//BLLD A 0 A_Refire
//Goto Fire2
//Fire2:
////BLLD A 0 A_TakeInventory("BalladeFireFlag",9)
BLLD A 0 A_PlaySoundEx("weapon/crackerthrow","Weapon")
BLLD A 0 A_GiveInventory("BalladeMain50_CI",1)
BLLD BCDEFG 2
BLLD HI 2
BLLD A 13 A_TakeInventory("BalladeChargeFlag",99)
Goto Ready+1

//Flash:
//TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
//TNT1 A 2 A_GiveInventory("BalladeChargeFlag",1)
//TNT1 A 0 A_JumpIfInventory("BalladeFireFlag",1,"Flash")
//stop

AltFire:
BLLD A 1 A_JumpIfInventory("BalladeCrackerBalladeAmmo",3,"BalladeMine")
goto Ready+1
BalladeMine:
BLLD A 0 A_JumpIfInventory("BalladeMineCounter",3,"NoAmmo")
BLLD A 0 A_TakeInventory("BalladeCrackerBalladeAmmo",3)
BLLD A 0 A_GiveInventory("BalladeJumping",1)
BLLD A 0 A_GiveInventory("BalladeMineCounter",1)
BLLD IHFG 2
BLLD G 0 A_SpawnItemEx("BalladeMineCust",0,0,16,0,0,0,0,1)
BLLD A 0 //ThrustThingZ(0,30,0,0)
BLLD A 0 A_Recoil(-15)
BLLD FHI 2
goto Ready+1
NoAmmo:
BLLD A 0
Goto Ready+1
}
}

actor BalladeCrackerBalladeAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 30
+INVENTORY.IGNORESKILL
}

actor BalladeFireFlag : OnceC {}

actor BalladeChargeFlag : Inventory
{
inventory.amount 1
inventory.maxamount 28
}

actor BC_Base
{
Translation "202:202=210:210", "198:198=62:62", "204:204=64:64"
PROJECTILE
damagetype "BalladeCracker"
Obituary "$OB_BALLADECRACKER"
+EXPLODEONWATER
Radius 6
Height 7
scale 2.5
damage (15)
speed 50
States
{
Spawn:
BLLD STUV 3
loop
Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_PlaySoundEx("weapon/crackerexplode","Weapon")
TNT1 A 0 A_Explode(15,128,0)
TN_B EFGHIJKLMNOPQRS 1
stop
}
}//112
//BALA A 0 A_Explode(48,96,0)


actor BC_Base20 : BC_Base{Speed 20}
actor BC_Base25 : BC_Base{Speed 25}
actor BC_Base30 : BC_Base{Speed 30}
actor BC_Base35 : BC_Base{Speed 35}
actor BC_Base40 : BC_Base{Speed 40}
actor BC_Base45 : BC_Base{Speed 45}
actor BC_Base50 : BC_Base{}
actor BC_Base55 : BC_Base{Speed 55}
actor BC_Base60 : BC_Base{Speed 60}

actor BC_BaseB : BC_Base{translation "202:202=205:205", "204:204=205:205", "198:198=74:74"}
actor BC_BaseR : BC_Base{translation "202:202=171:171", "204:204=171:171", "198:198=41:41"}
actor BC_BaseO : BC_Base{translation "202:202=104:104", "204:204=104:104", "198:198=128:128"}
actor BC_BaseP : BC_Base{translation "202:202=229:229", "204:204=229:229", "198:198=232:232"}

actor BC_Base20B : BC_BaseB{Speed 20}
actor BC_Base25B : BC_BaseB{Speed 25}
actor BC_Base30B : BC_BaseB{Speed 30}
actor BC_Base35B : BC_BaseB{Speed 35}
actor BC_Base40B : BC_BaseB{Speed 40}
actor BC_Base45B : BC_BaseB{Speed 45}
actor BC_Base50B : BC_BaseB{}
actor BC_Base55B : BC_BaseB{Speed 55}
actor BC_Base60B : BC_BaseB{Speed 60}

actor BC_Base20R : BC_BaseR{Speed 20}
actor BC_Base25R : BC_BaseR{Speed 25}
actor BC_Base30R : BC_BaseR{Speed 30}
actor BC_Base35R : BC_BaseR{Speed 35}
actor BC_Base40R : BC_BaseR{Speed 40}
actor BC_Base45R : BC_BaseR{Speed 45}
actor BC_Base50R : BC_BaseR{}
actor BC_Base55R : BC_BaseR{Speed 55}
actor BC_Base60R : BC_BaseR{Speed 60}

actor BC_Base20O : BC_BaseO{Speed 20}
actor BC_Base25O : BC_BaseO{Speed 25}
actor BC_Base30O : BC_BaseO{Speed 30}
actor BC_Base35O : BC_BaseO{Speed 35}
actor BC_Base40O : BC_BaseO{Speed 40}
actor BC_Base45O : BC_BaseO{Speed 45}
actor BC_Base50O : BC_BaseO{}
actor BC_Base55O : BC_BaseO{Speed 55}
actor BC_Base60O : BC_BaseO{Speed 60}

actor BC_Base20P : BC_BaseP{Speed 20}
actor BC_Base25P : BC_BaseP{Speed 25}
actor BC_Base30P : BC_BaseP{Speed 30}
actor BC_Base35P : BC_BaseP{Speed 35}
actor BC_Base40P : BC_BaseP{Speed 40}
actor BC_Base45P : BC_BaseP{Speed 45}
actor BC_Base50P : BC_BaseP{}
actor BC_Base55P : BC_BaseP{Speed 55}
actor BC_Base60P : BC_BaseP{Speed 60}

actor BalladeMineCust : BalladeMine
{
//Translation "202:202=210:210", "198:198=62:62"
PROJECTILE
damagetype "BalladeCracker"
Obituary "$OB_BALLADEMINE"
-NOGRAVITY
+NOEXPLODEFLOOR
+SKYEXPLODE
-NOBLOCKMAP
+DONTSPLASH
+FIXMAPTHINGPOS
reactiontime 120
Damage (10)
Radius 20
Height 20
Speed 0
Scale 2.5
States
{
Spawn:
BLLD W 0
BLLD W 0 A_PlaySoundEx("weapon/crackermine", "Weapon")
BLLD WWW 1 A_JumpIf(z-floorz==0,"Spawn2")
BLLD X 0 A_GiveInventory("CutterFlag",1)
BLLD XXX 1 A_JumpIf(z-floorz==0,"Spawn2")
BLLD Y 0 A_GiveInventory("CutterFlag",1)
BLLD YYY 1 A_JumpIf(z-floorz==0,"Spawn2")
BLLD Z 0 A_GiveInventory("CutterFlag",1)
BLLD ZZZ 1 A_JumpIf(z-floorz==0,"Spawn2")
BLLD W 0 A_TakeInventory("CutterFlag",4)
goto Spawn+2
Spawn2:
BLLD "#" 0 ThrustThingZ(0,0,0,0)
BLLD "#" 0 A_JumpIfInventory("CutterFlag",3,"SpawnZ")
BLLD "#" 0 A_JumpIfInventory("CutterFlag",3,"SpawnY")
BLLD "#" 0 A_JumpIfInventory("CutterFlag",3,"SpawnX")
goto Spawn3
SpawnX:
goto Spawn3+3
SpawnY:
goto Spawn3+6
SpawnZ:
goto Spawn3+9
Spawn3:
BLLD WWWXXXYYYZZZ 1 A_CountDown
goto Spawn3


Death:
TNT1 A 0 A_Stop
TNT1 A 0 A_Explode(10,96,0,0,8)
TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
TNT1 A 0 A_PlaySoundEx("weapon/GameBoyBallade", "Weapon")
TNT1 A 0 A_TakeFromTarget("BalladeMineCounter",1)
TN_B EFGHIJKLMNOPQRS 1
stop
}
}

actor BalladeJumping :OnceC{}

actor BalladeMineCounter : Inventory
{
inventory.amount 1
inventory.maxamount 3
}

actor BalladeMainPickup_CI : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",28,"P_60")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",24,"P_55")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",20,"P_50")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",16,"P_45")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",12,"P_40")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",8,"P_45")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",4,"P_30")
TNT1 A 0 A_JumpIfInventory("BalladeChargeFlag",1,"P_25")
goto P_20
P_20:
TNT1 A 0 A_GiveInventory("BalladeMain20_CI",1)
stop
P_25:TNT1 A 0 A_GiveInventory("BalladeMain25_CI",1)stop
P_30:TNT1 A 0 A_GiveInventory("BalladeMain30_CI",1)stop
P_35:TNT1 A 0 A_GiveInventory("BalladeMain35_CI",1)stop
P_40:TNT1 A 0 A_GiveInventory("BalladeMain40_CI",1)stop
P_45:TNT1 A 0 A_GiveInventory("BalladeMain45_CI",1)stop
P_50:TNT1 A 0 A_GiveInventory("BalladeMain50_CI",1)stop
P_55:TNT1 A 0 A_GiveInventory("BalladeMain55_CI",1)stop
P_60:TNT1 A 0 A_GiveInventory("BalladeMain60_CI",1)stop
}
}

actor BalladeMain20_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("BC_Base20",0,1,8,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("BC_Base20B",0,1,8,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("BC_Base20R",0,1,8,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("BC_Base20O",0,1,8,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("BC_Base20P",0,1,8,0)
goto Done
}
}
actor BalladeMain25_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base25",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base25B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base25R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base25O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base25P",0,1,8,0)goto Done}}
actor BalladeMain30_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base30",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base30B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base30R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base30O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base30P",0,1,8,0)goto Done}}
actor BalladeMain35_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base35",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base35B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base35R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base35O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base35P",0,1,8,0)goto Done}}
actor BalladeMain40_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base40",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base40B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base40R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base40O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base40P",0,1,8,0)goto Done}}
actor BalladeMain45_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base45",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base45B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base45R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base45O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base45P",0,1,8,0)goto Done}}
actor BalladeMain50_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base50",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base50B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base50R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base50O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base50P",0,1,8,0)goto Done}}
actor BalladeMain55_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base55",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base55B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base55R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base55O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base55P",0,1,8,0)goto Done}}
actor BalladeMain60_CI : TeamColor_CI{states{
FireX:TNT1 A 0 A_FireCustomMissile("BC_Base60",0,1,8,0)goto Done
FireB:TNT1 A 0 A_FireCustomMissile("BC_Base60B",0,1,8,0)goto Done
FireR:TNT1 A 0 A_FireCustomMissile("BC_Base60R",0,1,8,0)goto Done
FireO:TNT1 A 0 A_FireCustomMissile("BC_Base60O",0,1,8,0)goto Done
FireP:TNT1 A 0 A_FireCustomMissile("BC_Base60P",0,1,8,0)goto Done}}

