actor ChargeKickBoss : MegaBuster 20055
{
Weapon.AmmoUse 3
Weapon.AmmoGive 0
Weapon.SlotNumber 1
Obituary "%o was charged by %k."
weapon.ammotype "ChargeKickClassAmmo"
inventory.pickupsound "weapon/weaponup"
+WEAPON.AMMO_OPTIONAL
Weapon.KickBack 400
Scale 2.0
States
{
Spawn:
TNT1 A 0
stop
Ready:
CHAA A 0 ACS_ExecuteAlways(998,0,24)
ReadyOnce:
CHAA A 0 A_TakeInventory("CutterFlag",999)
CHAA A 0 A_JumpIfInventory("ChargeKickClassAmmo",3,"Ready2")
CHAA A 1 A_WeaponReady(WRF_NOFIRE)
CHAA A 0 A_GiveInventory("ChargeKickClassAmmo",1)
Goto ReadyOnce+1
Ready2:
CHAA A 0 A_JumpIfInventory("ChargeKickClassAmmo",25,"Ready3")
CHAA A 0 A_JumpIf(z-floorz==0, 2)
CHAA A 0 A_JumpIf(momz!=0, 2)
CHAA A 0 A_WeaponReady
CHAA A 1
CHAA A 0 A_GiveInventory("ChargeKickClassAmmo",1)
loop
Ready3:
CHAA A 0 A_JumpIf(z-floorz==0, 2)
CHAA A 0 A_JumpIf(momz!=0, 2)
CHAA A 0 A_WeaponReady
CHAA A 1 A_WeaponReady(WRF_NOPRIMARY)
CHAA A 0 A_GiveInventory("ChargeKickClassAmmo",1)
loop
Deselect:
ICEB A 0 A_TakeInventory("ChargeKickBoss")
ICEB A 0 A_GiveInventory("ChargeKickBoss")
CHAA A 1 A_SelectWeapon("ChargeKickBoss")
Loop
Select:
TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CHAA A 1 A_Raise
Loop
Fire:
//CHAA A 0 A_PlaySoundEx("weapon/chugga","weapon")
Hold:
CHAA A 0 A_JumpIfNoAmmo("NoAmmo")
CHAA A 0 A_JumpIf(z-floorz==0, 2)
CHAA A 0 A_JumpIf(momz!=0, "FindGround")
CHAA A 0 A_GiveInventory("StunArmor",1)
CHAA A 0 A_TakeInventory("CutterFlag",999)
CHAA A 0 SetPlayerProperty(0,1,0)
CHAA A 0 A_PlaySound("weapon/train", 0 , 0.6)
CHAA B 2 A_Recoil(-12)
CHAA B 2 A_FireCustomMissile("ChargeTrain",0,1,0,0)
CHAA B 1 SetPlayerProperty(0,0,0)
CHAA A 0 A_TakeInventory("StunArmor",999)
CHAA A 0 A_Refire
CHAA A 0
Goto NoAmmo
FindGround:
CHAA B 1 A_GiveInventory("CutterFlag",1)
CHAA A 0 A_JumpIfInventory("CutterFlag",14,"ReadyOnce")
CHAA A 0 A_Refire
Goto NoAmmo
Altfire:
CHAA A 0 A_JumpIfInventory("ChargeKickClassAmmo",25,"CoalAttack")
Goto ReadyOnce
CoalAttack:
CHAA A 0 A_PlaySoundEx("weapon/chugga","weapon")
CHAA A 0 A_TakeInventory("ChargeKickClassAmmo",25)
CHAA A 0 A_SpawnItemEx("TrainSteam",0,0,120)
CHAA A 0 A_ChangeFlag("INVULNERABLE",1)
CHAA A 0 ACS_ExecuteAlways(991,0,77)
CHAA A 0 A_SpawnItemEx("CoalSpawner",0,0,56,0,0,0)
/*CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,45)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,90)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,135)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,180)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,-45)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,-90)
CHAA A 0 A_SpawnItemEx("FallingCoal",128,0,112,0,0,-48,-135)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,0)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,45)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,90)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,135)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,180)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,-45)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,-90)
CHAA A 0 A_SpawnItemEx("FallingCoal",256,0,224,0,0,-48,-135)*/
CHAA CD 4
CHAA E 0 ACS_ExecuteAlways(991,0,24)
CHAA E 16 A_ChangeFlag("INVULNERABLE",0)
Goto ReadyOnce
NoAmmo:
CHAA B 0 A_JumpIfInventory("ChargeKickClassAmmo",25,"NoAmmo2")
CHAA B 1 A_GiveInventory("CutterFlag",1)
CHAA B 0 A_JumpIfInventory("CutterFlag",14,"ReadyOnce")
loop
NoAmmo2:
CHAA B 1 A_GiveInventory("CutterFlag",1)
CHAA B 0 A_JumpIfInventory("CutterFlag",14,"ReadyOnce")
CHAA B 0 A_WeaponReady(WRF_NOPRIMARY)
loop
}
}

actor ChargeKickClassAmmo : Ammo
{
+INVENTORY.IGNORESKILL 
inventory.amount 1
inventory.maxamount 75
}

actor ChargeTrain : ChargeKick
{
damage (15)
States
{
Spawn:
TNT1 A 2
stop
}
}

actor CoalSpawner
{
PROJECTILE
-SOLID
+NOINTERACTION
damage 0
radius 1
height 1
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,0,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,45,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,90,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,135,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,180,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-45,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-90,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-135,2,10)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,27.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,72.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,117.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,162.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-27.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-72.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-117.5,2,30)
TNT1 A 0 A_CustomMissile("RisingCoal",0,0,-162.5,2,30)
TNT1 A 1
stop
}
}

actor RisingCoal
{
PROJECTILE
scale 2.5
+DONTBLAST
//+SHOOTABLE
Obituary "%o was crushed in %k's Coal Shot."
Radius 7
Height 10
Damage (30)
speed 30
Damagetype "Coal"
States
{
Spawn:
COAL DEF 1
goto Death
Death:
COAL D 0 A_SpawnItemEx("FallingCoal",0,0,0)
stop
XDeath:
TNT1 A 0
stop
}
}

actor FallingCoal : RisingCoal
{
-NOGRAVITY
Gravity 3
Radius 6
States
{
Spawn:
COAL ABC 1
loop
Death:
COAL A 0
stop
}
}

actor TrainSteam
{
PROJECTILE
scale 2.5
+DONTBLAST
+NOGRAVITY
Speed 40
Radius 6
Height 10
States
{
Spawn:
STEA ABCDE 5
stop
}
}