actor ChargeKickBoss : BaseMM8BDMWep_CBM
{
tag "$TAGC_5F"
dropitem "ChargeKickWepCDropped"
Weapon.AmmoUse 3
Weapon.AmmoGive 0
Obituary "$OB_CHARGERAM"
weapon.ammotype "ChargeManIsEveryWhereAmmo"
+WEAPON.NOAUTOAIM
Weapon.KickBack 400
States
{
Spawn:
C_05 F 1
loop
Ready:
CHAA A 0 ACS_ExecuteAlways(998,0,DYE_CHARGEMAN)
CHAA A 0 A_JumpIfInventory("ChargeM_OnceFlag",1,"Ready0")
CHAA A 0 A_GiveInventory("ChargeM_OnceFlag",1)
CHAA A 0 A_GiveInventory("ChargemanSpawnStart_P",1)
CHAA A 0 //A_JumpIf(ACS_ExecuteWithResult(975,1)==1 && CallACS("cbm_FetchServerCVar",66)==0,"ReadyT")
goto Ready0
Ready0:
CHAA A 0 A_GunFlash
goto Ready1
ReadyT:
CHAA A 0 A_SpawnItemEx("ChargeM_CarryHelper")
CHAA A 0 A_GunFlash("FlashT")
goto Ready1
Ready1:
CHAA A 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",3,"Ready2")
CHAA A 2 A_WeaponReady(12)
CHAA A 0 A_GiveInventory("ChargeManIsEveryWhereAmmo",2)
loop
Ready2:
CHAA A 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",25,"Ready3")
CHAA A 2 A_WeaponReady(8)
CHAA A 0 A_GiveInventory("ChargeManIsEveryWhereAmmo",2)
loop
Ready3:
CHAA A 2 A_WeaponReady
CHAA A 0 A_GiveInventory("ChargeManIsEveryWhereAmmo",2)
loop
Deselect:
CHAA AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
CHAA A 1 A_Lower
Loop
Select:
CHAA AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
CHAA A 1 A_Raise
Loop
Fire:
CHAA A 0 A_GiveInventory("StunArmor",1)
CHAA A 0 A_JumpIfInventory("IsBot",1,"BotFire")
CHAA A 0 A_GiveInventory("ChargeDashFlag",1)
CHAA A 0 A_ReFire("FireH0")
goto FireH0
BotFire:
CHAA A 0 A_Jump(64,"CoalAttack")
CHAA A 0 A_GiveInventory("ChargeDashFlag",1)
goto FireH_Basic

FireH0:
CHAA B 1 Offset(0,39)A_GiveInventory("ChargeTrainDash",1)
CHAA C 0 A_ReFire(1)
CHAA C 1 Offset(0,48)A_GiveInventory("ChargeTrainDash",1)
CHAA D 0 A_ReFire(1)
CHAA D 1 Offset(0,59)A_GiveInventory("ChargeTrainDash",1)
CHAA E 0 A_ReFire("FireH1")
Goto FireEndRight
FireH1:
CHAA E 0 A_JumpIfNoAmmo("FireEndRight")
CHAA E 1 Offset(0,72)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,86)A_GiveInventory("ChargeTrainDash",1)
CHAA G 0 A_ReFire(1)
CHAA G 1 Offset(0,92)A_GiveInventory("ChargeTrainDash",1)
CHAA H 0 A_ReFire(1)
CHAA H 1 Offset(0,86)A_GiveInventory("ChargeTrainDash",1)
CHAA I 0 A_ReFire(1)
CHAA I 1 Offset(0,72)A_GiveInventory("ChargeTrainDash",1)
CHAA I 0 A_ReFire("FireH2")
Goto FireEndLeft
FireH2:
CHAA I 0 A_JumpIfNoAmmo("FireEndLeft")
CHAA I 1 Offset(0,52)A_GiveInventory("ChargeTrainDash",1)
CHAA H 0 A_ReFire(1)
CHAA H 1 Offset(0,38)A_GiveInventory("ChargeTrainDash",1)
CHAA G 0 A_ReFire(1)
CHAA G 1 Offset(0,32)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,38)A_GiveInventory("ChargeTrainDash",1)
CHAA E 0 A_ReFire(1)
CHAA E 1 Offset(0,52)A_GiveInventory("ChargeTrainDash",1)
CHAA E 0 A_ReFire("FireH1")
Goto FireEndRight

FireEndRight:
CHAA D 0 A_GiveInventory("ChargemanMainfireEnd_P",1)
CHAA D 0 A_JumpIfInventory("IsBot",1,"BotFireEnd")
CHAA D 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",3,"FireEndRight2")
CHAA D 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",25,"FireEndRight3")
CHAA D 2 Offset(0,44)A_WeaponReady(13)
CHAA C 2 Offset(0,38)A_WeaponReady(13)
CHAA B 2 Offset(0,34)A_WeaponReady(13)
goto ReadyWait1
FireEndRight2:
CHAA D 2 Offset(0,44)A_WeaponReady(9)
CHAA C 2 Offset(0,38)A_WeaponReady(9)
CHAA B 2 Offset(0,34)A_WeaponReady(9)
goto ReadyWait2
FireEndRight3:
CHAA D 2 Offset(0,44)A_WeaponReady(1)
CHAA C 2 Offset(0,38)A_WeaponReady(1)
CHAA B 2 Offset(0,34)A_WeaponReady(1)
goto ReadyWait3

FireEndLeft:
CHAA D 0 A_GiveInventory("ChargemanMainfireEnd_P",1)
CHAA D 0 A_JumpIfInventory("IsBot",1,"BotFireEnd")
CHAA D 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",3,"FireEndLeft2")
CHAA D 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",25,"FireEndLeft3")
CHAA G 2 Offset(0,62)A_WeaponReady(13)
CHAA E 2 Offset(0,53)A_WeaponReady(13)
CHAA C 2 Offset(0,45)A_WeaponReady(13)
CHAA B 2 Offset(0,38)A_WeaponReady(13)
goto ReadyWait1
FireEndLeft2:
CHAA G 2 Offset(0,62)A_WeaponReady(9)
CHAA E 2 Offset(0,53)A_WeaponReady(9)
CHAA C 2 Offset(0,45)A_WeaponReady(9)
CHAA B 2 Offset(0,38)A_WeaponReady(9)
goto ReadyWait2
FireEndLeft3:
CHAA G 2 Offset(0,62)A_WeaponReady(1)
CHAA E 2 Offset(0,53)A_WeaponReady(1)
CHAA C 2 Offset(0,45)A_WeaponReady(1)
CHAA B 2 Offset(0,38)A_WeaponReady(1)
goto ReadyWait3

ReadyWait1:
CHAA AAAA 2 A_WeaponReady(12)
goto Ready1
ReadyWait2:
CHAA AAAA 2 A_WeaponReady(8)
goto Ready2
ReadyWait3:
CHAA AAAA 2 A_WeaponReady
goto Ready3

BotFireEnd:
CHAA A 0 A_GiveInventory("BotRetreatFlag",1)
CHAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 Offset(0,32)A_GiveInventory("ChargeManIsEveryWhereAmmo",2)
CHAA A 1 A_TakeInventory("BotRetreatFlag",1)
Goto Ready3

FireH_Basic:
CHAA B 1 Offset(0,35)A_GiveInventory("ChargeTrainDash",1)
CHAA C 0 A_ReFire(1)
CHAA C 1 Offset(0,39)A_GiveInventory("ChargeTrainDash",1)
CHAA C 0 A_ReFire(1)
CHAA C 1 Offset(0,39)A_GiveInventory("ChargeTrainDash",1)
CHAA D 0 A_ReFire(1)
CHAA D 1 Offset(0,45)A_GiveInventory("ChargeTrainDash",1)
CHAA D 0 A_ReFire(1)
CHAA D 1 Offset(0,45)A_GiveInventory("ChargeTrainDash",1)
CHAA E 0 A_ReFire("FireH_Basic2")
Goto FireEndRight
FireH_Basic2:
CHAA E 0 A_JumpIfNoAmmo("FireEndRight")
CHAA E 1 Offset(0,52)A_GiveInventory("ChargeTrainDash",1)
CHAA E 0 A_ReFire(1)
CHAA E 1 Offset(0,52)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire("FireH_Basic3")
Goto FireEndRight
FireH_Basic3:
CHAA F 0 A_JumpIfNoAmmo("FireEndRight")
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire(1)
CHAA F 1 Offset(0,56)A_GiveInventory("ChargeTrainDash",1)
CHAA F 0 A_ReFire("FireH_Basic3")
Goto FireEndRight

Altfire:
CHAA A 0 A_JumpIfInventory("ChargeManIsEveryWhereAmmo",25,"CoalAttack")
Goto Ready1
CoalAttack:
CHAA L 0 A_GiveInventory("ChargeAltfireResync_P",1)
CHAA L 0 A_PlaySoundEx("weapon/chugga","weapon")
//CHAA L 0 A_GunFlash
//CHAA L 0 A_SpawnItemEx("TrainSteam",0,0,120,0,0,0,0,1)
CHAA L 0 A_SpawnItemEx("CoalSpawner",0,0,56,0,0,0,0,1)
CHAA L 0 A_FireCustomMissile("ChargeAltRadius",0,0,0,0)
CHAA L 0 A_GiveInventory("ChargemanAlt_CI",1)
CHAA L 1 OffSet(0,36)A_TakeInventory("ChargeManIsEveryWhereAmmo",3,1)
CHAA MMM 1 OffSet(0,32)A_TakeInventory("ChargeManIsEveryWhereAmmo",3,1)
CHAA M 1 OffSet(0,49)A_TakeInventory("ChargeManIsEveryWhereAmmo",3,1)
CHAA MMM 1 OffSet(0,76)A_TakeInventory("ChargeManIsEveryWhereAmmo",3,1)
CHAA K 0 ACS_ExecuteAlways(998,0,DYE_CHARGEMAN,1)
CHAA K 0 A_GiveInventory("InvulnerableOff_Pickup",1)
CHAA K 8 OffSet(0,76)A_TakeInventory("ChargeManIsEveryWhereAmmo",1)
CHAA J 2 OffSet(0,66)
CHAA D 2 OffSet(0,17)
CHAA C 2 OffSet(0,23)
CHAA B 2 OffSet(0,28)
Goto Ready1

FlashT:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx("TrainGrabber",0,0,56,1,0,1)
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("TrainSteam",0,0,120,0,0,0,0,1)
loop

Flash:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
TNT1 A 0 A_SpawnItemEx("TrainSteam",0,0,120,0,0,0,0,1)
loop
}
}

actor ChargeManIsEveryWhereAmmo : Ammo
{
inventory.amount 1
inventory.maxamount 75
+INVENTORY.IGNORESKILL 
}
actor ChargeM_OnceFlag : Inventory{}

actor ChargeDashFlag : Inventory
{
inventory.amount 1
inventory.maxamount 9
}

actor ChargemanDashStopper : PowerSpeed
{
powerup.duration 8
speed 0
+NOTRAIL
}

actor ChargemanArmorDelay : Powerup
{
Powerup.Duration 35
}

actor ChargeManLink : Inventory 
{
inventory.amount 1
Inventory.MaxAmount 1064
}
actor TrainBuffer : Inventory
{
inventory.amount 1
inventory.maxamount 999
}
actor ChargeManJumpBuffer : Powerup
{
powerup.duration -1
}
actor ChargeWildRideFlag : OnceC {}


actor PowerChargeManSnd5 : Powerup
{
powerup.duration 5
}
actor PowerChargeManSnd3 : Powerup
{
powerup.duration 3
}

actor ChargemanMainfireSnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ChargemanDashStopper",1)
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"PickupR")
TNT1 A 0 A_GiveInventory("ChargeDashFlag",1)
TNT1 A 0 A_JumpIfInventory("PowerChargeManSnd5",1,"No")
TNT1 A 0 A_GiveInventory("PowerChargeManSnd5",1)
goto Play
PickupR:
TNT1 A 0 A_GiveInventory("ChargeDashFlag",2)
TNT1 A 0 A_JumpIfInventory("PowerChargeManSnd3",1,"No")
TNT1 A 0 A_GiveInventory("PowerChargeManSnd3",1)
goto Play
Play:
TNT1 A 0 A_PlaySound("weapon/train",0,0.68)
TNT1 A 0 A_FireCustomMissile("ChargeTrainClip",0,0,0,0)
TNT1 A 0 A_GiveInventory("ChargemanMain_CI",1)
stop
No:
TNT1 A 0
stop
}
}


actor ChargemanMainfireEnd_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("ChargemanDashStopper",999)
TNT1 A 0 A_TakeInventory("StunArmor",999)
TNT1 A 0 A_TakeInventory("ChargeDashFlag",999)
stop
}
}

actor ChargeTrainDash : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("ChargemanMainfireSnd_P",1)
TNT1 A 0 A_JumpIf(z-floorz==0,"Ground")
goto Air
Air:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"Air_R")
TNT1 A 0 A_Recoil(-1.05f)//-1.75f//-4
stop
Air_R:
TNT1 A 0 A_Recoil(-1.75f)
stop
Ground:
TNT1 A 0 A_JumpIfInventory("PowerRage_ST",1,"Ground_R")
TNT1 A 0 A_Recoil(-2.7f)//-4.5f//-12
stop
Ground_R:
TNT1 A 0 A_Recoil(-4.5f)
stop
//Classic Train
//CHAA B 2 A_Recoil(-12)//A_Recoil(-5)
//CHAA B 2// A_Recoil(-5)
//CHAA B 1// A_Recoil(-3)
}
}

actor ChargeAltfireResync_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 ACS_ExecuteAlways(998,0,DYE_CHARGEMANHOT,5)
TNT1 A 0 A_GiveInventory("InvulnerableOn_Pickup",1)
TNT1 A 0 //A_TakeInventory("ChargeManIsEveryWhereAmmo",1)
stop
}
}

actor ChargeM_CarryHelper : BasicHelper
{
states
{
Spawn:
TNT1 A 1 A_JumpIfInTargetInventory("ChargeManLink",1,"Coop")
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
Coop:
TNT1 A 1 ACS_NamedExecuteAlways("cbm_traingrab",0,ACS_NamedExecuteWithResult("cbm_gettrainpassenger"))
TNT1 A 0 A_JumpIfInTargetInventory("ChargeManLink",1,"Coop")
Goto Spawn
}
}

actor TrainGrabber
{
+MISSILE
+NOBLOCKMAP
+NOGRAVITY
+DONTBLAST
+DONTREFLECT
+HITTRACER
+THRUGHOST
renderstyle none
radius 34
height 32
speed 1
states
{
Spawn:
PLAY A 0
PLAY A 1//3
stop
XDeath:
PUNK H 0 A_JumpIfInTargetInventory("ChargeManJumpBuffer",1,"No")
PUNK H 0 A_JumpIfInventory("ChargeManLink",1,"No",8)
PUNK H 0 A_JumpIfInventory("ChargeWildRideFlag",1,"No",8)
PUNK H 0 A_JumpIf(ACS_NamedExecuteWithResult("cbm_istracerally")==1,"DeathLink")
goto No
DeathLink:
BASS H 4 ACS_NamedExecuteAlways("cbm_chargemanlink", 0, CallACS("cbm_GetPointerTID_147",2), CallACS("cbm_GetPointerTID_147",8))
stop
No:
Death:
PUNK H 4
stop
}
}


actor ChargemanSpawnStart_P : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_SpawnItemEx("ChargemanArmorWatcher_H")
stop
}
}
actor ChargemanArmorWatcher_H : BasicHelper
{
+SERVERSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 5
TNT1 A 0 A_GiveToTarget("ChargeM_BasicArmorBonus_P",1)
TNT1 A 0 A_SetArg(1,CallACS("cbm_Fetch_GetArmorInfo",1,2))
TNT1 A 0 A_GiveToTarget("DynamicArmorDosage_F",Args[1])
TNT1 A 0 A_TakeFromTarget("BasicArmor")
TNT1 A 1
TNT1 A 0 A_SetArg(1,(Args[1]<100)+Args[1]/100)
SpawnIdle:
PLAY A 1
PLAY A 0 A_JumpIfInTargetInventory("BasicArmor",1,"Spawn_Wait")
PLAY A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
loop
Spawn_Wait:
BASS A 1
BASS A 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BASS A 0 A_JumpIfInTargetInventory("ChargemanArmorDelay",1,"Spawn_Wait")
goto Spawn_Take
Spawn_Take:
BASS F 1 A_TakeFromTarget("BasicArmor",Args[1])
BASS F 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,"Death")
BASS F 0 A_JumpIfInTargetInventory("ChargemanArmorDelay",1,"Spawn_Wait")
BASS F 0 A_JumpIfInTargetInventory("BasicArmor",1,"Spawn_Take")
BASS H 1 A_TakeFromTarget("BasicArmor")
goto SpawnIdle+1
Death:
ROLL H 1
stop
}
}

actor ChargeTrainClip : BasicExplosion
{
damagetype "ChargeM_Ram2"
Obituary "$OB_CHARGERAM"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(60,80,0,0,24)
stop
}
}


actor ChargeTrain
{
Translation "198:198=225:225", "192:192=4:4"
PROJECTILE
damagetype "ChargeM_Ram"
Obituary "$OB_CHARGERAM"
+DONTBLAST
+DONTREFLECT
+HITTRACER
+BOUNCEONFLOORS
+BOUNCEONWALLS
+BOUNCEONCEILINGS
+CANBOUNCEWATER
+NOEXPLODEFLOOR
Bouncecount 2
BounceFactor 1.0
WallBounceFactor 1.0
damage (60)
Radius 16
Height 28
speed 60
scale 2.5
States
{
Spawn:
STEA MNO 1
stop
Crash:
XDeath:
TNT1 A 0 A_JumpIf(ACS_NamedexecuteWithResult("cbm_istracerenemy")==1,"Death_Give")
Goto Death
Death_Give:
TNT1 A 0 A_GiveToTarget("ChargeM_BasicArmorBonus_P",1)
TNT1 A 0 A_GiveToTarget("ChargemanArmorDelay",1)
Goto Death
Death:
TNT1 A 1
stop
}
}

actor ChargeTrainB : ChargeTrain{translation "198:198=74:74","192:192=205:205"}
actor ChargeTrainR : ChargeTrain{translation "198:198=41:41","192:192=171:171"}
actor ChargeTrainO : ChargeTrain{translation "198:198=128:128","192:192=104:104"}
actor ChargeTrainP : ChargeTrain{translation "198:198=232:232","192:192=229:229"}

actor CoalSpawner : BasicExplosion
{
Obituary "$OB_COALRAIN"
Damagetype "ChargeM_Coal"
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,0,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,45,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,90,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,135,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,180,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,-45,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,-90,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,30,0,5.5,-135,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,27.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,72.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,117.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,162.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,-27.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,-72.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,-117.5,1)
TNT1 A 0 A_SpawnItemEx("RisingCoal",0,0,0,26,0,16,-162.5,1)
TNT1 A 1
stop
}
}

actor ChargeAltRadius : BasicExplosion
{
Obituary "$OB_COALRAIN"
Damagetype "ChargeM_Coal"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(110,96,0,0,96)
stop
}
}

actor ChargeCoalShot
{
Translation "198:198=225:225", "202:202=210:210"
PROJECTILE
Obituary "$OB_COALRAIN"
Damagetype "ChargeM_Coal"
-NOGRAVITY
damage (80)
Radius 7
Height 7
speed 38
scale 3.0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 ThrustThingZ(0,16,0,1)
TNT1 A 0 A_Jump(256,1,2,3,4)
COAL GHIJ 2
goto Spawn+3
Death:
//TNT1 A 0 A_SetScale(2.25)
TNT1 A 0 A_PlaySoundEx("weapon/napalm","weapon")
TNT1 A 0 //A_SpawnItemEx("CoalSpawner",0,0,56,0,0,0)
TNT1 A 0 A_Explode(80,96,0,0,48)
TNT1 A 0 A_SpawnItemEx("BasicBoom6FX_Y3",0,0,0,0,0,0,0,1+32)
TNT1 A 1
stop
}
}

actor ChargeCoalShotB : ChargeCoalShot{translation "198:198=74:74","202:202=205:205"}
actor ChargeCoalShotR : ChargeCoalShot{translation "198:198=41:41","202:202=171:171"}
actor ChargeCoalShotO : ChargeCoalShot{translation "198:198=128:128","202:202=104:104"}
actor ChargeCoalShotP : ChargeCoalShot{translation "198:198=232:232","202:202=229:229"}

actor RisingCoal
{
PROJECTILE
Obituary "$OB_COALRAIN"
Damagetype "ChargeM_Coal"
+DONTBLAST
//+SHOOTABLE
Radius 8
Height 10
Damage (20)
speed 30
scale 2.5
States
{
Spawn:
COAL DEF 1
goto Death
Death:
COAL D 0 A_SpawnItemEx("FallingCoal",0,0,0,0,0,0,0,1)
stop
XDeath:
TNT1 A 0
stop
}
}

actor FallingCoal : RisingCoal
{
-NOGRAVITY
Gravity 3
damage (40)//300
States
{
Spawn:
COAL ABC 1
loop
Death:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CBM_OilPitIgnite",0,0,8)
stop
}
}

actor TrainSteam : BasicExplosion
{
scale 2.5
States
{
Spawn:
STEA ABCDE 1
STEA FGHII 3
stop
}
}

actor ChargemanMain_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChargeTrain",0,1,0,0)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChargeTrainB",0,1,0,0)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChargeTrainR",0,1,0,0)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChargeTrainO",0,1,0,0)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChargeTrainP",0,1,0,0)
goto Done
}
}

actor ChargemanAlt_CI : TeamColor_CI
{
states
{
FireX:
TNT1 A 0 A_FireCustomMissile("ChargeCoalShot",0,0,0,24)
goto Done
FireB:
TNT1 A 0 A_FireCustomMissile("ChargeCoalShotB",0,0,0,24)
goto Done
FireR:
TNT1 A 0 A_FireCustomMissile("ChargeCoalShotR",0,0,0,24)
goto Done
FireO:
TNT1 A 0 A_FireCustomMissile("ChargeCoalShotO",0,0,0,24)
goto Done
FireP:
TNT1 A 0 A_FireCustomMissile("ChargeCoalShotP",0,0,0,24)
goto Done
}
}