//	Mobility recoded
Actor Commandoman : HighArmorClass
{
Player.ScoreIcon "COMMMUGS"
player.startitem "BaseFlagPack", 1
player.startitem "HighArmor"
player.soundclass "CommandomanC"
player.displayname "Commandoman"
projectilepassheight 80
player.forwardmove 0.75, 0.75
player.sidemove 0.73, 0.73
player.jumpz 14
Player.ViewHeight 67
player.startitem "CommandoBombBoss"
player.startitem "Base28Ammo", 28
player.startitem "BaseAltfireAmmo", 112
player.startitem "UltimateAttackItem6", 1
player.startitem "UltSoundWatcherSpawn6"
player.startitem "IsFromMM10"
States
{
Spawn:
CMDM A 0
CMDM B 1 A_JumpIf(z-floorz>0, "Jumping")
CMDM A 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn+2

See:
CMDM BBBBBCCCCCDDDDDEEEEE 1 A_JumpIf(z-floorz>0, "Jumping")
Goto Spawn

Jumping:
CMDM I 1 A_JumpIf(z-floorz<=0, "Land")
wait

Land:
CMDM QQQ 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+2

Missile:
CMDM FFFGGGGGGG 1 A_JumpIf(z-floorz>0, "JumpingMissile")
Goto Spawn+1

JumpingMissile:
CMDM JJJKKKKKKK 1 A_JumpIf(z-floorz<=0, "Missile")
goto Jumping

Animation1:
CMDM P 1
loop

Animation2:
CMDM NOOOOO 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+1

Animation3:
CMDM MMLLLLLLLL 1 A_JumpIf(z-floorz>0, "Jumping")
goto Spawn+1

Pain.TimeStop:
PLAY A 0 SetPlayerProperty(0,1,4)
PLAY A 0 ACS_Execute(528,0)
CMDM AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop
PLAY A 0 SetPlayerProperty(0,0,4)
Goto pain+1

ClassPain:
CMDM HHHHHHHHHH 2 A_SpawnItem("PainFX",0,3)
Goto Spawn+1

ClassDeath:
CMDM H 20 ACS_ExecuteAlways(999,0,0)
CMDM H 0 A_PlayerScream
NOFX A 0 A_SpawnItemEx("FakeDeathFXMM9",0,0,32)
NOFX A 1 A_CheckPlayerDone
wait
ClassIceDeath:
CMDM A 35
NOFX A 0 A_SpawnItemEx("FrozenDeathFX",0,0,16)
NOFX A 1 A_CheckPlayerDone
wait
WeaponGetM:
CUTM H 0 A_JumpIfInTargetInventory("CommandoBombWepM",1,2)
CUTM H 0 A_GiveToTarget("WeaponGetter")
CUTM H 0 A_GiveToTarget("CommandoBombWepM")
goto ClassDeath
}
}

actor CommandoBombBoss : VCBaseWeapon
{
	Weapon.AmmoType "Base28Ammo"
	Weapon.AmmoType2 "BaseAltfireAmmo"
	Weapon.ammouse 6
	Obituary "$OB_COMMANDOMAN1"
	States
	{
		Ready:
		TNT1 A 0
		CMDH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,6)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,37)) CMDH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CMDH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,6)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,37)) CMDH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CMDH A 1 A_WeaponReady(WRF_NOPRIMARY*CallACS("VC_AmmoCheck",0,6)|WRF_NOSECONDARY*CallACS("VC_AmmoCheck",3,37)) CMDH A 0 A_JumpIfInventory("UltAttackFlag",1,"UltimateAttack")
		CMDH A 0 A_GiveInventory("Base28Ammo",1)
		CMDH A 0 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		CMDH A 1 A_Lower
		Loop
		
		Select:
		TNT1 A 0 ACS_ExecuteAlways(991,0,1902)
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		CMDH A 1 A_Raise
		Loop
		
		Fire:
		CMDH A 0 A_FireCustomMissile("CommandoManBomb",0,1,1,8)
		CMDH A 0 A_PlaySoundEx("weapon/commandoshot","Weapon")
		CMDH B 1 Offset(18, 50)
		CMDH B 1 Offset(27, 59)
		CMDH C 1 Offset(33, 65)
		CMDH C 1 Offset(36, 68) A_GiveInventory("BaseCustomFlag2")
		CMDH D 1 Offset(36, 68)
		CMDH D 1 Offset(36, 68)
		
		Hold:
		CMDH A 0 A_GiveInventory("RightClickFlag",1)
		CMDH A 1 Offset(39, 70) A_WeaponReady(WRF_NOPRIMARY)
		CMDH A 0 A_Refire
		
		Release:
		COMM B 0 A_PlaySoundEx("weapon/commandoswitch","Auto")
		CMDH A 1 Offset(33, 65) A_GiveInventory("DrillFlag",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 1 Offset(27, 59) A_TakeInventory("BaseCustomFlag2",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 1 Offset(18, 50) A_TakeInventory("DrillFlag",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 1 Offset(9, 41) A_ClearRefire CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 15 A_WeaponReady(WRF_NOFIRE)
		goto Ready
		
		Altfire:
		RATU A 0 A_JumpIfInventory("NoAltfire",1,"Ready")
		TNT1 A 0 A_JumpIfInventory("BaseCustomFlag2",1,"Altfire.DropBomb")
		CMDH A 1
		CMDH A 0 A_CheckFloor("Altfire.Ground")
		CMDH A 0 A_JumpIf(callACS("core_CheckFooting")== 1 || (abs(z-floorz) < 30 && momz <= 0),"Altfire.Ground")//A_CheckFloor("Altfire.Ground")
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		CMDH EEEFFF 1 A_Stop
		CMDH E 0 ThrustThingZ(0,100,1,0)
		
		Altfire.AirLoop:
		CMDH E 0 ThrustThingZ(0,100,1,0)
		CMDH E 0 A_GiveInventory("CommandoFall",1)
		CMDH E 0 A_CheckFloor("Altfire.AirEnd")
		CMDH F 1 Offset(-2,0) A_SpawnItemEx("CommandoStompHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		CMDH E 0 ThrustThingZ(0,100,1,0)
		CMDH E 0 A_GiveInventory("CommandoFall",1)
		CMDH E 0 A_CheckFloor("Altfire.AirEnd")
		CMDH F 1 Offset(2,0) A_SpawnItemEx("CommandoStompHitbox", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_NOCHECKPOSITION)
		loop
		
		Altfire.AirEnd:
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",3)
		CMDH E 0 A_GiveInventory("CommandoStompHandler")
		CMDH E 1 Offset(-4,0) A_Stop
		CMDH E 1 Offset(4,0) A_Stop
		CMDH E 1 Offset(-3,0) A_Stop
		CMDH E 1 Offset(3,0) A_Stop
		CMDH A 1 Offset(-2,0) A_Stop
		CMDH A 1 Offset(2,0) A_Stop
		CMDH A 1 Offset(-1,0) A_Stop
		CMDH A 1 Offset(1,0) A_Stop
		CMDH A 0 A_WeaponReady(WRF_NOFIRE)
		CMDH AAAAAAAA 1 A_Stop
		goto Ready
		
		Altfire.Ground:
		CMDH E 0 A_JumpIfInventory("BaseAltfireAmmo",56,1)
		goto NoAmmo
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",1)
		CMDH E 1
		CMDH A 0 ThrustThingZ(0,50,0,0)
		CMDH B 0 A_Recoil(CallACS("VC_XYMob",-20))
		CMDH FFFFFF 1 ThrustThingZ(0,3,1,1)
		
		Altfire.GroundLoop:
		CMDH F 1 ThrustThingZ(0,4,1,1)
		CMDH C 0 A_CheckFloor("Altfire.GroundEnd")
		loop
		
		Altfire.GroundEnd:
		TNT1 A 0 ACS_NamedExecuteWithResult("VC_SetState",2)
		CMDH G 0 A_SpawnItemEx("CommandoPunchHitbox",30)
		CMDH G 0 A_SpawnItemEx("CommandoManShockWave", 0, 0, 0, 1, 0, 0, 0*45, SXF_MULTIPLYSPEED)
		CMDH G 0 A_TakeInventory("BaseAltfireAmmo",56)
		TNT1 A 0 A_Quake(3,10,0,128)
		CMDH G 1 Offset(-6,0) A_Stop
		CMDH G 1 Offset(6,0)
		CMDH G 1 Offset(-4,0) 
		CMDH G 1 Offset(4,0)
		CMDH G 1 Offset(-2,0)
		CMDH G 1 Offset(2,0)
		CMDH GGGA 2 A_WeaponReady(WRF_NOFIRE)
		goto Ready
		
		Altfire.DropBomb:
		COMM B 0 A_PlaySoundEx("weapon/commandoswitch","Auto")
		CMDH A 1 Offset(0, 48) A_GiveInventory("BaseCustomFlag1",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 1 Offset(0, 72) A_TakeInventory("BaseCustomFlag2",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH AAAA 1 Offset(0, 80) A_TakeInventory("BaseCustomFlag1",1) CMDH A 0 A_TakeInventory("RightClickFlag",1)
		CMDH A 1 Offset(0, 72)
		CMDH A 1 Offset(0, 48) A_ClearRefire
		CMDH A 11 A_WeaponReady(WRF_NOFIRE)
		goto Ready
		
		UltimateAttack:
		CMDH A 1
		TNT1 A 0 ACS_NamedExecuteAlways("VC_UltimateText",0,91)
		CUTA A 0 A_PlaySoundEx("classes/ultimateactivation","Auto")
		TNT1 A 0 A_SpawnItemEx("CommandoSoundWarper")
		CMDH A 0 A_TakeInventory("UltAttackFlag",1)
		CMDH A 0 A_GunFlash
		goto Ready
		
		Flash:
		TNT1 A 0 A_GiveInventory("CommandoSandTeamCheck")
		TNT1 A 0 A_GiveInventory("WindUltCooldown")
		TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CommandoManSandParticle",-1000,random(-500,500),random(0,800),random(35,60))
		TNT1 A 0 A_FireCustomMissile("CommandoStormHitbox",0,0,0,0)
		TNT1 A 1 A_TakeInventory("VeryLongUltimateAmmo",1)
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_JumpIfInventory("VeryLongUltimateAmmo",2,"Flash")
		goto NoFlash
		
		NoAmmo:
		CMDH A 0 A_GiveInventory("Base28Ammo",1)
		CMDH A 3 A_GiveInventory("BaseAltfireAmmo",2)
		goto Ready
	}
}

actor CommandoManBomb
{
PROJECTILE
+NOTARGETSWITCH
+DONTBLAST
+SKYEXPLODE
Obituary "$OB_COMMANDOMAN1"
damagetype "CommandoManBomb"
Radius 15
Height 8
scale 2.5
damage (19)
speed 40
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_JumpIf(momz>30, "SpawnUp")
TNT1 A 0 A_JumpIf(momz>10, "SpawnUpAngle")
TNT1 A 0 A_JumpIf(momz<-30, "SpawnDown")
TNT1 A 0 A_JumpIf(momz<-10, "SpawnDownAngle")

Spawn2:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM B 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM B 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM B 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM B 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM E 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM E 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM E 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM E 0 A_GiveToTarget("TargetMarker", 1)
loop

SpawnUp:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM I 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM I 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM I 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM I 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM J 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM J 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM J 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM J 0 A_GiveToTarget("TargetMarker", 1)
loop

SpawnUpAngle:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM K 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM K 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM K 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM K 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM L 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM L 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
C0MM L 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
C0MM L 0 A_GiveToTarget("TargetMarker", 1)
loop

SpawnDownAngle:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM M 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM M 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM M 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM M 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM N 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM N 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM N 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM N 0 A_GiveToTarget("TargetMarker", 1)
loop

SpawnDown:
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM C 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM C 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM C 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM C 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM H 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM H 0 A_GiveToTarget("TargetMarker", 1)
TNT1 A 0 A_JumpIfInTargetInventory("BaseCustomFlag1",1,"DropDown")
COMM H 1 A_JumpIfInTargetInventory("DrillFlag",1,"Change")
COMM H 0 A_GiveToTarget("TargetMarker", 1)
loop

Change:
COMM B 0 A_GiveInventory("WeaponCharge",1)
COMM B 0 A_PlaySoundEx("weapon/commandoswitch","Weapon")
COMM B 0 A_SpawnItemEx("CommandoTrailFX")
COMM B 0 A_GiveToTarget("TargetMarker", 1)
COMM B 0 ACS_NamedExecuteAlways("core_aimattargetcursor", 0, CallACS("core_gettarget")+PLN_TARGETPOINT_OFFSET, 0)
COMM B 1 A_Stop
COMM B 0 A_ChangeVelocity(Cos(pitch)*44, 0, -sin(pitch)*44,CVF_RELATIVE)
TNT1 A 0 A_JumpIf(momz>30, "LoopSpawnUp")
TNT1 A 0 A_JumpIf(momz>10, "LoopSpawnUpAngle")
TNT1 A 0 A_JumpIf(momz<-30, "LoopSpawnDown")
TNT1 A 0 A_JumpIf(momz<-10, "LoopSpawnDownAngle")
goto LoopSpawn
LoopSpawn:
COMM BE 2 A_SpawnItemEx("CommandoTrailFX")
loop
LoopSpawnUp:
C0MM IJ 2 A_SpawnItemEx("CommandoTrailFX")
loop
LoopSpawnUpAngle:
C0MM KL 2 A_SpawnItemEx("CommandoTrailFX")
loop
LoopSpawnDownAngle:
COMM MN 2 A_SpawnItemEx("CommandoTrailFX")
loop
LoopSpawnDown:
COMM CH 2 A_SpawnItemEx("CommandoTrailFX")
loop
Death:
COMM B 0 A_JumpIf(z-floorz<=8,"Death2")
DropDown:
COMM B 0 A_GiveInventory("WeaponCharge",1)
COMM B 0 A_PlaySoundEx("weapon/commandoswitch","Weapon")
COMM B 0 A_SpawnItemEx("CommandoTrailFX")
COMM B 0 A_Stop
DeathLoop:
COMM C 0 A_JumpIf(z-floorz<=8,"Death2")
COMM C 0 ThrustThingZ(0, 35*4, 1, 0)
COMM CH 2 A_SpawnItemEx("CommandoTrailFX")
loop
Death2:
COMM F 0 A_Stop
COMM D 0 A_SpawnItemEx("CommandoManBombExplosion",0,0,0,0,0,0,0,1)
COMM FFG 1
COMM D 0 A_PlaySoundEx("weapon/commandoexplosion","Weapon")
TNT1 A 3
stop
XDeath:
//TNT1 A 0 A_JumpIfInventory("WeaponCharge",1,"XDeath.Stronger")
TNT1 A 0 A_Explode(7,128,0,0,32)
XDeath2:
TNT1 A 0 A_Quake(2,9,0,150)
NAPA E 0 A_PlaySoundEx("weapon/mm9explode","Body")
NAPA EFGHIJKLMNOPQRS 1
stop
XDeath.Stronger:
TNT1 A 0 A_Explode(14,128,0,0,32)
goto XDeath2
}
}

actor CommandoManBombExplosion
{
    PROJECTILE
    +THRUACTORS
    States
    {
    Spawn:
        TNT1 A 0
        TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 0*45, SXF_MULTIPLYSPEED)
		TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 1*45, SXF_MULTIPLYSPEED)
        TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 2*45, SXF_MULTIPLYSPEED)
		TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 3*45, SXF_MULTIPLYSPEED)
        TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 4*45, SXF_MULTIPLYSPEED)
		TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 5*45, SXF_MULTIPLYSPEED)
        TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 6*45, SXF_MULTIPLYSPEED)
		TNT1 A 0 A_SpawnItemEx("CommandoManBombWave", 0, 0, 0, 1.25, 0, 0, 7*45, SXF_MULTIPLYSPEED)
        TNT1 A 3
        stop
    }
}

actor CommandoManBombWave : CommandoBombWave
{
scale 3.0
Obituary "$OB_COMMANDOMAN1"
reactiontime 5
States
	{
    Spawn:
        TNT1 A 0
	Spawn1:
		TNT1 A 1
        TNT1 A 0 A_JumpIf(z-floorz > 24, "Death")
        TNT1 A 0 A_JumpIf(z-floorz > 0, "WarpToFloor1")
        goto Spawn2
    Spawn2:
        TNT1 A 1
        TNT1 A 0 A_JumpIf(z-floorz > 24, "Death")
        TNT1 A 0 A_SpawnItemEx("CommandoManBombWaveTrail")
        TNT1 A 0 A_Countdown
        TNT1 A 0 A_JumpIf(z-floorz > 0, "WarpToFloor2")
        goto Spawn1
    WarpToFloor1:
        TNT1 A 0 A_Warp(AAPTR_DEFAULT, 0, 0, -(z-floorz))
        goto Spawn2
    WarpToFloor2:
        TNT1 A 0 A_Warp(AAPTR_DEFAULT, 0, 0, -(z-floorz))
        goto Spawn1
    Death:
        TNT1 A 0
        stop
    }
}

actor CommandoManBombWaveTrail : CommandoManBombWave
{
	damagetype "CommandoManBomb"
    speed 0
    +FLOORHUGGER
    +FORCEYBILLBOARD
    +BRIGHT
    States
    {
    Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		TNT1 A 1
        C0SW A 1 A_SpawnItemEx("CommandoManBombDamagerA")
        C0SW B 1 A_SpawnItemEx("CommandoManBombDamagerB")
        C0SW C 1 A_SpawnItemEx("CommandoManBombDamagerC")
		C0SW DD 1 A_SpawnItemEx("CommandoManBombDamagerD")
        stop
    }
}

actor CommandoManBombDamagerA
{
    Obituary "$OB_COMMANDOMAN1"
    damagetype "CommandoManBomb"
    PROJECTILE
    +FLOORHUGGER
    Damage (1)
    Radius 24
    Height 40
    States
    {
    Spawn:
        TNT1 A 0
        TNT1 A 1
        stop
    }
}

actor CommandoManBombDamagerB : CommandoManBombDamagerA { height 40  }
actor CommandoManBombDamagerC : CommandoManBombDamagerA { height 75  }
actor CommandoManBombDamagerD : CommandoManBombDamagerA { height 112 }

actor CommandoManShockWave : CommandoBombWave
{
radius 8
height 8
+THRUACTORS
-STEPMISSILE
+NOEXPLODEFLOOR
+FLOORHUGGER
Obituary "$OB_COMMANDOMAN2"
damagetype "CommandoManBomb"
States
	{
    Spawn:
        TNT1 A 1
	Spawn1:
		TNT1 A 0 A_PlaySoundEx("weapon/commandoshockloop","Body")
		TNT1 A 2 A_SpawnItemEx("CommandoManShockWaveTrail")
		TNT1 A 2 A_SpawnItemEx("CommandoManShockWaveTrail")
		goto Spawn1
    Death:
        TNT1 A 0 A_PlaySoundEx("weapon/commandoshockstop","Body")
		TNT1 A 2
        stop
    }
}

actor CommandoManShockWaveTrail : CommandoManShockWave
{
    speed 0
    +FLOORHUGGER
    +FORCEYBILLBOARD
	+NOGRAVITY
    +BRIGHT
    States
    {
    Spawn:
		TNT1 AA 0 A_GiveInventory("ProjectileCode")
		TNT1 A 2
        C0SW A 1 A_SpawnItemEx("CommandoManWaveDamagerA")
        C0SW B 1 A_SpawnItemEx("CommandoManWaveDamagerB")
        C0SW C 1 A_SpawnItemEx("CommandoManWaveDamagerC")
		C0SW DD 1 A_SpawnItemEx("CommandoManWaveDamagerD")
        stop
	Death:
		TNT1 A 0
        stop
    }
}

actor CommandoManWaveDamagerA : CommandoManBombDamagerA
{
Obituary "$OB_COMMANDOMAN2"
damage(5)
}

actor CommandoManWaveDamagerB : CommandoManWaveDamagerA { height 40  }
actor CommandoManWaveDamagerC : CommandoManWaveDamagerA { height 75  }
actor CommandoManWaveDamagerD : CommandoManWaveDamagerA { height 112 }

actor CommandoStompHandler : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_TakeInventory("BaseAltfireAmmo",37)
TNT1 A 0 A_JumpIfInventory("CommandoFall",20,"Stomp3")
TNT1 A 0 A_JumpIfInventory("CommandoFall",10,"Stomp2")
goto Stomp1

Stomp1:
TNT1 A 0 A_PlaySoundEx("misc/dozer","Auto")
TNT1 A 0 A_SpawnItemEx("CommandoShockwaveRadius1")
TNT1 A 0 A_FireCustomMissile("CommandoStomp1",0,0,0,0)
TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CommandoQuakeDebris",random(32,200),0,0,0,0,random(3,6),random(0,360))
TNT1 A 0 A_Quake(2,20,0,250)
TNT1 A 0 A_TakeInventory("CommandoFall",999)
stop

Stomp2:
TNT1 A 0 A_PlaySoundEx("weapon/commandostomp2","Auto")
TNT1 A 0 A_SpawnItemEx("CommandoShockwaveRadius2")
TNT1 A 0 A_FireCustomMissile("CommandoStomp2",0,0,0,0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CommandoQuakeDebris",random(32,400),0,0,0,0,random(3,6),random(0,360))
TNT1 A 0 A_Quake(4,28,0,500)
TNT1 A 0 A_TakeInventory("CommandoFall",999)
stop

Stomp3:
TNT1 A 0 A_PlaySoundEx("weapon/commandostomp3","Auto")
TNT1 A 0 A_SpawnItemEx("CommandoShockwaveRadius3")
TNT1 A 0 A_FireCustomMissile("CommandoStomp3",0,0,0,0)
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CommandoQuakeDebris",random(32,600),0,0,0,0,random(3,6),random(0,360))
TNT1 A 0 A_Quake(6,35,0,750)
TNT1 A 0 A_TakeInventory("CommandoFall",999)
stop
}
}

actor CommandoStompHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_COMMANDOMAN3"
PROJECTILE
+NOEXPLODEFLOOR
Radius 32
Height 32
scale 2.5
speed 0
damage (4)
Damagetype "Commandoman"
States
{
Spawn:
TNT1 A 2
stop
}
}

actor CommandoPunchHitbox
{
species "DustManType"
+THRUSPECIES
Obituary "$OB_COMMANDOMAN2"
+MISSILE
+NOGRAVITY
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
radius 2
height 2
scale 2.5
speed 0
Damagetype "CommandoPunch"
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Explode(25,96,0,0,96)
C0PU ABCD 2
stop
}
}

actor CommandoStormFlag1 : Powerup
{
Powerup.Duration 70
}

actor CommandoStormFlag2 : Powerup
{
Powerup.Duration 70
}

actor CommandoStormFlag3 : Powerup
{
Powerup.Duration 70
}

actor CommandoStormFlag4 : Powerup
{
Powerup.Duration 70
}

actor CommandoStormFlag5 : Powerup
{
Powerup.Duration 70
}

actor CommandoSandCooldown : Powerup
{
Powerup.Duration 1
}

actor CommandoManSandParticle : CommandoSandParticle
{
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
CMSP A 0 A_Jump(256, "SpawnA", "SpawnB", "SpawnC")
goto SpawnA
SpawnA:
CMSP A 40
stop
SpawnB:
CMSP B 40
stop
SpawnC:
CMSP C 40
stop
}
}

actor CommandoStormHitbox
{
species "DustManType"
+THRUSPECIES
+MISSILE
-SOLID
-DONTBLAST
+NOGRAVITY
+RIPPER
+SKYEXPLODE
+NOINTERACTION
+DONTSPLASH
+THRUGHOST
+THRUACTORS
+DONTREFLECT
Obituary "$OB_COMMANDOMAN4"
Damage (0) //Uses A_Explode
Radius 2
Height 2
Scale 2.5
RenderStyle "Add"
DamageType "CommandomanStorm"
States
{
Spawn:
TNT1 A 0
TNT1 A 1 A_Explode(2,1000,0,0,1000)
stop
}
}

actor CommandomanStormProtect : PowerProtection
{
powerup.duration 20
damagefactor "CommandomanStorm", 0.0
}

actor CommandoSoundWarper
{
scale 2.5
PROJECTILE
+NOINTERACTION
+NOCLIP
damage(0)
radius 5
height 5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileFXCode",1)
TNT1 A 0 A_PlaySoundEx("misc/hshinhale","Body")
loopit:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",255,"loopit2")
TNT1 A 1 A_Warp(AAPTR_TARGET,60,0,40,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
loopit2:
TNT1 A 0 A_PlaySoundEx("misc/hshexhale","Body")
loopit2next:
TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("core_targetexists",0)==0,"Death")
TNT1 A 0 A_GiveInventory("CutterFlag",1)
TNT1 A 0 A_JumpIfInventory("CutterFlag",400,"Death")
TNT1 B 1 A_Warp(AAPTR_TARGET,60,0,40,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
loop
Death:
TNT1 A 1
stop
}
}

actor CommandoStomp1
{
species "DustManType"
+THRUSPECIES
+NOGRAVITY
+MISSILE
+SKYEXPLODE
+NOINTERACTION
+RIPPER
height 1
radius 200
damage (10)
Obituary "$OB_COMMANDOMAN3"
damagetype "CommandoStomp"
-SOLID
States
{
Spawn:
TNT1 A 1
stop
}
}

actor CommandoStomp2 : CommandoStomp1
{
radius 400
}

actor CommandoStomp3 : CommandoStomp1
{
radius 600
}

actor CommandoShockwaveRadius1
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*1)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*2)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*3)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*4)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*5)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*6)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*7)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*8)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*9)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*10)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*11)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*12)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*13)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*14)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*15)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,60,0,0,22.5*16)
stop
}
}

actor CommandoShockwaveRadius2 : CommandoShockwaveRadius1
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*1)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*2)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*3)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*4)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*5)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*6)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*7)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*8)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*9)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*10)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*11)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*12)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*13)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*14)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*15)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,120,0,0,22.5*16)
stop
}
}

actor CommandoShockwaveRadius3 : CommandoShockwaveRadius1
{
States
{
Spawn:
TNT1 A 0
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("CommandoShockwave",random(0,500),0,0,0,0,0,random(0,359))
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*1)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*2)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*3)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*4)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*5)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*6)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*7)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*8)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*9)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*10)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*11)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*12)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*13)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*14)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*15)
TNT1 A 0 A_SpawnItemEx("CommandoShockwave",0,0,0,180,0,0,22.5*16)
stop
}
}

actor CommandoShockwave
{
PROJECTILE
+NOINTERACTION
+NOCLIP
Damage(0)
Height 1
Radius 1
Speed 0
scale 2.5
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
QUAK A 6
stop
}
}

actor CommandoStormItem1 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CommandoStormFlag1")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn1")
stop
}
}

actor CommandoStormItem1L : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
goto X

L:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag1")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn1")
stop
}
}

actor CommandoStormItem1W : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
goto X

W:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag1")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn1")
stop
}
}

actor CommandoStormItem1C : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
goto X

C:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag1")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn1")
stop
}
}

actor CommandoStormItem1K : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

K:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag1")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn1")
stop
}
}

actor CommandoStormItem2 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CommandoStormFlag2")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn2")
stop
}
}

actor CommandoStormItem2L : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
goto X

L:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag2")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn2")
stop
}
}

actor CommandoStormItem2W : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
goto X

W:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag2")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn2")
stop
}
}

actor CommandoStormItem2C : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
goto X

C:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag2")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn2")
stop
}
}

actor CommandoStormItem2K : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

K:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag2")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn2")
stop
}
}

actor CommandoStormItem3 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CommandoStormFlag3")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn3")
stop
}
}

actor CommandoStormItem3L : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
goto X

L:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag3")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn3")
stop
}
}

actor CommandoStormItem3W : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
goto X

W:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag3")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn3")
stop
}
}

actor CommandoStormItem3C : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
goto X

C:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag3")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn3")
stop
}
}

actor CommandoStormItem3K : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

K:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag3")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn3")
stop
}
}

actor CommandoStormItem4 : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_GiveInventory("CommandoStormFlag4")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn4")
stop
}
}

actor CommandoStormItem4L : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
goto X

L:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag4")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn4")
stop
}
}

actor CommandoStormItem4W : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
goto X

W:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag4")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn4")
stop
}
}

actor CommandoStormItem4C : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
goto X

C:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag4")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn4")
stop
}
}

actor CommandoStormItem4K : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

K:
TNT1 A 0 A_GiveInventory("CommandoStormFlag5")
stop

X:
TNT1 A 0 A_GiveInventory("CommandoStormFlag4")
TNT1 A 0 A_GiveInventory("CommandoSandFXSpawn4")
stop
}
}

actor CommandoSandFXSpawn1 : CustomInventory
{
states
{
Pickup:
TNT1 A 0 A_JumpIfInventory("CommandoSandCooldown",1,"Death")
goto Pickup2

Pickup:
TNT1 AA 0 A_SpawnItemEx("CommandoManSandParticle2",random(0,32),0,random(0,64),0,0,random(-1,-8),random(0,359))
stop
}
}

actor CommandoSandFXSpawn2 : CustomInventory
{
states
{
Pickup:
TNT1 AAAA 0 A_SpawnItemEx("CommandoManSandParticle2",random(0,32),0,random(0,64),0,0,random(-1,-8),random(0,359))
stop
}
}

actor CommandoSandFXSpawn3 : CustomInventory
{
states
{
Pickup:
TNT1 AAAAAA 0 A_SpawnItemEx("CommandoManSandParticle2",random(0,32),0,random(0,64),0,0,random(-1,-8),random(0,359))
stop
}
}

actor CommandoSandFXSpawn4 : CustomInventory
{
states
{
Pickup:
TNT1 AAAAAAAA 0 A_SpawnItemEx("CommandoManSandParticle2",random(0,32),0,random(0,64),0,0,random(-1,-8),random(0,359))
stop
}
}

actor CommandoManSandParticle2 : CommandoSandParticle
{
-NOCLIP
-NOINTERACTION
scale 1.5
States
{
Spawn:
CMSP A 0
CMSP A 0 A_Jump(256, "SpawnA", "SpawnB", "SpawnC")
goto SpawnA
SpawnA:
CMSP A 10
stop
SpawnB:
CMSP B 10
stop
SpawnC:
CMSP C 10
stop
}
}

actor CommandoSandTeamCheck : CustomInventory
{
States
{
Pickup:
TNT1 A 0 A_JumpIfInventory("LightTeamFlag",1,"L")
TNT1 A 0 A_JumpIfInventory("WilyTeamFlag",1,"W")
TNT1 A 0 A_JumpIfInventory("CossackTeamFlag",1,"C")
TNT1 A 0 A_JumpIfInventory("KingTeamFlag",1,"K")
goto X

L:
TNT1 A 0 A_RadiusGive("CommandoStormItem1L",1000,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem2L",750,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem3L",500,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem4L",250,RGF_PLAYERS,1)
stop

W:
TNT1 A 0 A_RadiusGive("CommandoStormItem1W",1000,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem2W",750,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem3W",500,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem4W",250,RGF_PLAYERS,1)
stop

C:
TNT1 A 0 A_RadiusGive("CommandoStormItem1C",1000,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem2C",750,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem3C",500,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem4C",250,RGF_PLAYERS,1)
stop

K:
TNT1 A 0 A_RadiusGive("CommandoStormItem1K",1000,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem2K",750,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem3K",500,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem4K",250,RGF_PLAYERS,1)
stop

X:
TNT1 A 0 A_RadiusGive("CommandoStormItem1",1000,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem2",750,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem3",500,RGF_PLAYERS,1)
TNT1 A 0 A_RadiusGive("CommandoStormItem4",250,RGF_PLAYERS,1)
stop
}
}

actor CommandoQuakeDebris : GutsQuakeDebris
{
gravity 0.3
-DOOMBOUNCE
States
{
Spawn:
TNT1 AA 0 A_GiveInventory("ProjectileCode")
TNT1 A 0 A_Jump(256,"S_1","S_2","S_3")

S_1:
CMSP A 70
stop

S_2:
CMSP B 70
stop

S_3:
CMSP C 70
stop
}
}

actor CommandoFall : Inventory
{
inventory.amount 1
inventory.maxamount 20
}