actor Chargeman : VCBaseClass //Thanks to TheBladeRoden for Metool K1000 sprites
{
Player.ScoreIcon "CHARMUGS"
player.startitem "BaseFlagPack", 1
Player.ViewHeight 53
player.displayname "Chargeman"
player.soundclass "ChargemanC"
player.startitem "NormalArmor"
player.startitem "ChargeKickBoss"
player.startitem "UltimateAttackItem4"
player.startitem "UltSoundWatcherSpawn4"
Player.startitem "Base28Ammo",28
player.startitem "IsFromMM5"
player.forwardmove 0.85, 0.85
player.sidemove 0.83, 0.83
player.Jumpz 12
States
{
Spawn:
CHRM A 0
CHRW B 1 A_JumpIf(z-floorz>0, "Jumping")
CHRM A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Animation3")
CHRM A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
CHRW BBBBCCCCDDDDEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+1

Jumping:
CHAM D 1 A_JumpIf(z-floorz<=0, "Spawn")
loop

Missile:
CHRM FF 4
goto Spawn+1

Animation1:
CHAM ABCABC 2
goto Spawn

Animation2:
CHRM G 30
goto Spawn+2

Animation3:
CHAM ABC 1
CHAM ABC 1 A_JumpIfInventory("BaseCustomFlag1",1,"Animation3")
goto Spawn

ClassPain:
CHRM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1
ClassDeath:
CHRM H 20 ACS_ExecuteAlways(999,0,0)
CHRM H 0 A_PlayerScream
PLY1 H 0 A_SpawnItemEx("FakeDeathFX", 0, 0, 32)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("ChargeKickWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("ChargeKickWepM")
goto ClassDeath
}
}

actor ChargeKickBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base28Ammo"
	Weapon.ammouse 7
	Obituary "$OB_CHARGEMAN1"
	States
	{
		Ready:
		TNT1 A 0 SetPlayerProperty(0,0,0)
		CHAH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,7)) CHAH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CHAH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,7)) CHAH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CHAH A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready
		
		Ready.Ult:
		CHAH B 0 A_JumpIfInventory("BaseCustomFlag1",1,1)
		goto Ult.Finish
		CHAH B 1 A_WeaponReady
		CHAH C 1 A_WeaponReady
		CHAH A 0 A_GiveInventory("Base28Ammo",1)
		CHAH D 1 A_WeaponReady
		CHAH C 1 A_WeaponReady
		CHAH A 0 A_GiveInventory("Base28Ammo",1)
		goto Ready.Ult
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		CHAH A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,805)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		CHAH A 1 A_Raise
		Loop
		
		Fire:
		CHAH B 0 A_JumpIfInventory("BaseCustomFlag1",1,"Fire.Ult")
		CHAH B 2
		
		Hold:
		TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
		CHAH C 0 A_PlaySoundEx("misc/trainmove","Weapon")
		CHAH CD 1 A_GiveInventory("ChargeM1Charge",1)
		CHAH C 0 A_Refire
		CHAH C 0 A_TakeInventory("Base28Ammo",7)
		CHAH C 0 A_GunFlash
		
		Go:
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		TNT1 A 0 A_SpawnItemEx("ChargeSteamFX",0,0,100,0,0,12)
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		CHAH B 0 A_PlaySoundEx("weapon/chargetrain","Weapon")
		CHAH B 0 A_TakeInventory("ChargeM1Charge",8)
		CHAH BCDDCB 1 A_SpawnItemEx("ChargeRamHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CHAH B 0 A_JumpIfInventory("ChargeM1Charge",8,"Go")
		
		FireStop:
		CHAH B 0 A_GunFlash("NoFlash")
		CHAH B 0 A_ClearRefire
		CHAH AAAA 2 A_TakeInventory("ChargeM1Charge",99)
		goto Ready
		
		Fire.Ult:
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		CHAH QR 1 
		CHAH S 0 A_SpawnItemEx("ChargeCoalFX",0,0,100,0,0,30)
		CHAH S 0 A_PlaySoundEx("weapon/chargecoal","Weapon")
		CHAH S 0 A_GiveInventory("ChargeM2Handler")
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH C 0 A_WeaponReady(WRF_NOFIRE)
		CHAH SSSRQPOAAA 2 A_ClearRefire
		CHAH S 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Ready.Ult")
		goto Ult.Finish
		
		Altfire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
		CHAH B 0 A_JumpIfInventory("BaseCustomFlag1",1,"Altfire.Ult")
		CHAH O 2
		
		AltHold:
		TOAD A 0 A_GiveInventory("ToadChargeDamageGive")
		CHAH P 1 Offset(-1,0) A_GiveInventory("ChargeM2Charge",1)
		CHAH P 1 Offset(1,0) A_GiveInventory("ChargeM2Charge",1)
		CHAH P 0 A_JumpIfInventory("ChargeM2Charge",0,"AltHold2")
		CHAH C 0 A_Refire
		CHAH C 0 A_WeaponReady(WRF_NOFIRE)
		goto AltfireNext
		
		AltHold2:
		CHAH P 1 Offset(-3,0) A_GiveInventory("ChargeM2Charge",1) CHAH P 0 A_FireCustomMissile("CoalFallPreview",0,0,0,0)
		CHAH P 1 Offset(3,0) A_GiveInventory("ChargeM2Charge",1) CHAH P 0 A_FireCustomMissile("CoalFallPreview",0,0,0,0)
		CHAH C 0 A_Refire("AltHold2")
		CHAH C 0 A_WeaponReady(WRF_NOFIRE)
		goto AltfireNext
		
		AltfireNext:
		TOAD A 0 A_GiveInventory("ToadChargeDamageTake")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		CHAH QR 1 
		CHAH S 0 A_SpawnItemEx("ChargeCoalFX",0,0,100,0,0,30)
		CHAH S 0 A_PlaySoundEx("weapon/chargecoal","Weapon")
		CHAH S 0 A_GiveInventory("ChargeM2Handler")
		CHAH S 0 ACS_ExecuteAlways(991,0,815)
		CHAH S 0 A_GiveInventory("HalfDamageProtection")
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0)
		CHAH S 1 Offset(-6,0)
		CHAH S 1 Offset(6,0) A_TakeInventory("ChargeM2Charge",99)
		CHAH C 0 A_WeaponReady(WRF_NOFIRE)
		CHAH SSSRQPOAAAAAAA 2 A_ClearRefire
		CHAH S 0 ACS_ExecuteAlways(991,0,805)
		CHAH S 0 A_TakeInventory("HalfDamageProtection")
		goto Ready
		
		Altfire.Ult:
		CHAH B 0 A_PlaySoundEx("weapon/chargebrake","Weapon")
		CHAH B 1 Offset(-6,0) A_GiveInventory("BaseCustomFlag2")
		CHAH C 1 Offset(6,0) A_GiveInventory("BaseCustomFlag2")
		CHAH D 1 Offset(-6,0) A_GiveInventory("BaseCustomFlag2")
		CHAH D 1 Offset(6,0) A_GiveInventory("BaseCustomFlag2")
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(-6,0)
		CHAH D 1 Offset(6,0)
		CHAH C 1 Offset(-6,0)
		CHAH B 1 Offset(6,0)
		CHAH B 0 A_TakeInventory("BaseCustomFlag2")
		CHAH S 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Ready.Ult")
		goto Ult.Finish
		
		UltimateAttack:
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,37)
		TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",1)
		TNT1 A 0 A_GiveInventory("ChargeUltCooldown",1)
		CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		CUTA A 0 A_PlaySoundEx("weapon/chargecoal","Weapon")
		TNT1 A 0 A_GiveInventory("InvProtection")
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 ACS_ExecuteAlways(991,0,815)
		CUTA A 0 A_GiveInventory("BaseCustomFlag1")
		CUTA A 0 A_TakeInventory("UltAttackFlag")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		TNT1 A 0 A_SpawnItemEx("ChargeMet1",-20)
		TNT1 A 0 A_SpawnItemEx("ChargeMet2",-40)
		TNT1 A 0 A_SpawnItemEx("ChargeMet3",-60)
		TNT1 A 0 A_GunFlash("Flash.Ult")
		CHAH A 1 SetPlayerProperty(0,1,0)
		goto Ready.Ult
		
		Ult.Finish:
		TNT1 A 0 A_PlaySoundEx("misc/lightelevatorend","ChargeMan")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 ACS_ExecuteAlways(991,0,805)
		TNT1 A 0 A_TakeInventory("InvProtection")
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
		CHAH BCDDDDCB 1 A_GiveInventory("ChargeUltEnd")
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 ACS_ExecuteAlways(991,0,805)
		TNT1 A 0 A_TakeInventory("InvProtection")
		TNT1 A 0 A_ChangeFlag("INVULNERABLE",0)
		goto Ready
		
		Flash:
		TNT1 A 1 A_GiveInventory("ChargemanMobility")//A_Recoil(-4)
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		loop
		
		Flash.Ult:
		TNT1 A 0 A_PlaySoundEx("weapon/chargeult","Auto")
		TNT1 A 0 A_GiveInventory("ChargeUltCooldown",1)
		TNT1 AA 1 A_GiveInventory("ChargeRecoilHandler")
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",2)
		TNT1 AA 1 A_GiveInventory("ChargeRecoilHandler")
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_TakeInventory("MediumLongUltimateAmmo",2)
		TNT1 A 0 A_GiveInventory("ChargeTootMaybe",1)
		TNT1 A 0 A_JumpIfInventory("MediumLongUltimateAmmo",1,"Flash.Ult")
		
		NoFlash:
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_TakeInventory("BaseCustomFlag1")
		stop
		}
		}
		
actor ChargeM1Charge : Ammo
{
	inventory.amount 1
	inventory.maxamount 40
	+INVENTORY.IGNORESKILL
}

actor ChargeM2Charge : Ammo
{
	inventory.amount 1
	inventory.maxamount 45
	+INVENTORY.IGNORESKILL
}

actor ChargeRamHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CHARGEMAN1"
PROJECTILE
+NOEXPLODEFLOOR
Radius 48
Height 48
scale 2.5
speed 0
damage (6)
Damagetype "ChargemanRam"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor ChargeUltHitbox : ChargeRamHitbox
{
Obituary "$OB_CHARGEMAN3"
damage (10)
}

actor ChargemanRamProtect : PowerProtection
{
	powerup.duration 3
	DamageFactor "ChargemanRam", 0.0
}

actor ChargeM2Handler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag1",1,"Pickup3")
TNT1 A 0 A_JumpIfInventory("ChargeM2Charge",0,"Pickup2")
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ChargeManCoal",0,0,80,random(3,12),0,random(5,35),random(0,359))
stop

Pickup2:
TNT1 A 0 A_FireCustomMissile("ChargeCoalPinpoint",0,0,0,8)
stop

Pickup3:
TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ChargeManCoalUlt",0,0,80,random(3,12),0,random(5,35),random(0,359))
stop
}
}

actor ChargeSteamFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
STEA AAA 1
STEA BCDE 1 A_Stop
stop
}
}

actor MetSteamFX : BasicClientSide
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
STEA FGHI 4
stop
}
}

actor ChargeManCoal
{
Obituary "$OB_CHARGEMAN2" 
PROJECTILE
Damage (6)
damagetype "ChargemanCoal"
speed 0
Scale 2.5
Height 16
Radius 16
+HEXENBOUNCE
+BOUNCEONWALLS
-BOUNCEONFLOORS
-NOEXPLODEFLOOR
+BOUNCEONCEILINGS
-NOGRAVITY
+DONTREFLECT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
COAL DDEEFF 1 A_JumpIf(momz<0,"Falling")
loop
Falling:
COAL AABBCC 1
loop
Death:
STEA G 0 A_SpawnItemEx("OilPitIgnite")
STEA G 0 A_PlaySoundEx("weapon/junkend","Body")
STEA G 0 A_ChangeFlag("NOGRAVITY",1)
STEA G 0 A_Explode(12,64,0,0,32)
STEA DE 2
stop
}
}

actor ChargeManCoalUlt : ChargeManCoal
{
damage (15)
damagetype "ChargemanUltCoal"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
loopit:
COAL DJEKFL 1 A_JumpIf(momz<0,"Falling")
loop
Falling:
COAL AGBHCI 1 A_GiveToTarget("ChargeUltCooldown")
loop
Death:
STEA G 0 A_SpawnItemEx("OilPitIgnite")
STEA G 0 A_PlaySoundEx("weapon/junkend","Body")
STEA G 0 A_ChangeFlag("NOGRAVITY",1)
STEA G 0 A_Explode(18,64,0,0,32)
STEA DE 2
stop
}
}

actor ChargeCoalFX : BasicClientSide
{
radius 1
height 1
Scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
STEA A 35
stop
}
}

actor CoalFallPreview : FastProjectile
{
	PROJECTILE
	+SKYEXPLODE
	+NOEXPLODEFLOOR
	+THRUACTORS
	damage (0)
	speed 400
	radius 16
	height 16
	states
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 1
		Death:
		TNT1 A 0 A_SpawnItemEx("CoalFallFXHelper",0,0,0,0,0,0)
		TNT1 A 1
		stop
	}
}

actor CoalFallFXHelper : BasicHelper
{
+CLIENTSIDEONLY
States
{
Spawn:
TNT1 A 0
TNT1 A 5 A_JumpIf(CallACS("GVH_IsTargetClient")==1,"Spawn2")
goto Death
Spawn2:
TNT1 A 0 A_SpawnItemEx("CoalFallFX",0,0,0,0,0,-1000)
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
stop
Death:
TNT1 A 0
stop
}
}

actor CoalFallFX
{
	+SKYEXPLODE
	+NOEXPLODEFLOOR
	+NOTARGETSWITCH
	PROJECTILE
	scale 2.5
	radius 16
	height 16
	Renderstyle Translucent
	Alpha 0.6
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
		COAL A 2
		stop
	}
}

actor ChargeCoalPinpoint : FastProjectile
{
	PROJECTILE
	+SKYEXPLODE
	+THRUACTORS
	damage (0)
	speed 400
	radius 16
	height 16
	States
	{
		Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode",1)
		TNT1 A 1
		Death:
		TNT1 A 0 A_SpawnItemEx("CoalFallSpawner",0,0,0,0,0,300)
		stop
	}
}

actor CoalFallSpawner
{
	PROJECTILE
	+RIPPER
	-DONTBLAST
	+SKYEXPLODE
	radius 1
	height 8
	Scale 2.5
	States
	{
		Spawn:
		//TNT1 AA 1 ThrustThingZ(0,600,0,0)
		TNT1 AA 0 A_JumpIf(z-ceilingz==0-10, "Death")
		Death:
		TNT1 A 0 A_SpawnItemEx("ChargeFallCoal",0,0,0,0,0,-25,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("ChargeFallCoal",random(0,400),0,0,0,0,-25,random(0,359))
		stop
	}
}

actor ChargeFallCoal : ChargeManCoal
{
-HEXENBOUNCE
-BOUNCEONWALLS
-BOUNCEONCEILINGS
+NOGRAVITY
+NOCLIP
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
COAL A 2
COAL A 0 A_ChangeFlag("NOCLIP",0)
loopit:
COAL BCA 2 A_CheckFloor("Death")
loop
}
}

actor ChargeUltCooldown : UltBuildCooldownGiver
{
Powerup.Duration 100
}

actor ChargeTootMaybe : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_Jump(3,"Toot")
stop

Toot:
TNT1 A 0 A_SpawnItemEx("ChargeSteamFX",0,0,100,0,0,12)
TNT1 A 0 A_PlaySoundEx("weapon/chargetoot","ChargeMan")
stop
}
}

actor ChargeRecoilHandler : BaseMovement//CustomInventory
{
States
{
itTimeGo://Pickup:
TNT1 A 0 A_SpawnItemEx("ChargeUltHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Pickup2")
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-3))
stop

Pickup2:
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-1))
stop
}
}

actor ChargeMet1
{
+NOCLIP
translation "192:192=[248,248,248]:[248,248,248]", "198:198=[60,188,255]:[60,188,255]"
PROJECTILE
radius 1
height 1
damagetype "ChargemanRam"
scale 2.5
meleerange 80
+DONTREFLECT
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
MMFX EDCB 1 A_Warp(AAPTR_TARGET,-meleerange,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loopit:
METK B 0 A_JumpIfInTargetInventory("ChargeUltEnd",1,"Death")
METK B 1 A_Warp(AAPTR_TARGET,-meleerange,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
METK B 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
METK B 0 A_SpawnItemEx("TrainMetHitbox")

METK C 0 A_JumpIfInTargetInventory("ChargeUltEnd",1,"Death")
METK C 1 A_Warp(AAPTR_TARGET,-meleerange,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
METK C 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
METK C 0 A_SpawnItemEx("TrainMetHitbox")

METK D 0 A_JumpIfInTargetInventory("ChargeUltEnd",1,"Death")
METK D 1 A_Warp(AAPTR_TARGET,-meleerange,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
METK D 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
METK D 0 A_SpawnItemEx("TrainMetHitbox")

METK E 0 A_JumpIfInTargetInventory("ChargeUltEnd",1,"Death")
METK E 1 A_Warp(AAPTR_TARGET,-meleerange,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
METK E 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
METK E 0 A_SpawnItemEx("TrainMetHitbox")
METK E 0 A_Jump(28,"AuroraBorealis")
loop

AuroraBorealis:
METK E 0 A_SpawnItemEx("MetSteamFX",20,0,60,0,0,7)
goto loopit

Death:
MMFX BCDE 2
stop
}
}

actor ChargeMet2 : ChargeMet1
{
meleerange 160
}

actor ChargeMet3 : ChargeMet1
{
meleerange 240
}

actor ChargeUltEnd : Powerup
{
Powerup.Duration 8
}

actor TrainMetHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_CHARGEMAN4"
PROJECTILE
+NOEXPLODEFLOOR
Radius 48
Height 48
scale 2.5
speed 0
damage (10)
Damagetype "ChargemanRam"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor ChargemanMobility : BaseMovement
{
states
{
itTimeGo:
TNT1 A 0 A_Recoil(CallACS("VC_XYMob",-4))
stop
}
}