// --------------------------------------------------------------------------
//
//	Randomizer & Replacer for Items & Weapons
//	This part makes the new weapons and ammo show up.
//
// --------------------------------------------------------------------------

ACTOR Clip_Replacer Replaces Clip
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (256, "Randomizer")
		TNT1 A 0 A_SpawnItem ("Clip2")
		Stop
	Randomizer:	//15% SniperMagazine, 85% Clip
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1004)==0, 2)
		TNT1 A 0 A_Jump (38, 6)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001)==1, 4)
		TNT1 A 0 A_JumpIfInventory("U_MP40", 1, 3, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("Beretta", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("Clip2")
		Stop
		TNT1 A 0 A_SpawnItem ("9mmMagazine")
		Stop
		TNT1 A 0 A_SpawnItem ("SniperMagazine")
		Stop
	}
}

ACTOR ClipBox_Replacer Replaces ClipBox
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1002)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("ClipBox2")
		Stop
	Randomizer: //10% RevolverBullets, 90% ClipBox
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (26, 2)
		TNT1 A 0 A_SpawnItem ("ClipBox2")
		Stop
		TNT1 A 0 A_SpawnItem ("RevolverBullets")
		Stop
	}
}

ACTOR Shell2 : Shell {}
ACTOR Shell_Replacer Replaces Shell
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("Shell2")
		Stop
	Randomizer: //20% GreenShell, 80% Shell
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("Shell2")
		Stop
		TNT1 A 0 A_SpawnItem ("2Shell")
		Stop
	}
}

ACTOR ShellBox2 : ShellBox {}
ACTOR ShellBox_Replacer Replaces ShellBox
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("ShellBox2")
		Stop
	Randomizer: //15% 2ShellBox, 85% ShellBox
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (38, 2)
		TNT1 A 0 A_SpawnItem ("ShellBox2")
		Stop
		TNT1 A 0 A_SpawnItem ("2ShellBox")
		Stop
	}
}

ACTOR RocketAmmo2 : RocketAmmo {}
ACTOR RocketAmmo_Replacer Replaces RocketAmmo
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1006)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("RocketAmmo2")
		Stop
	Randomizer: //5% C4, 95% RocketAmmo
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (13, 2)
		TNT1 A 0 A_SpawnItem ("RocketAmmo2")
		Stop
		TNT1 A 0 A_SpawnItem ("C4Ammo")
		Stop
	}
}

ACTOR Cell2 : Cell {}
ACTOR Cell_Replacer Replaces Cell
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1005)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("Cell2")
		Stop
	Randomizer: //15% RailCore, 85% Cell
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (38, 2)
		TNT1 A 0 A_SpawnItem ("Cell2")
		Stop
		TNT1 A 0 A_SpawnItem ("RailCore")
		Stop
	}
}

ACTOR SSG_Replacer Replaces SuperShotgun
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("SSG")
		Stop
	Randomizer:	//Spawn a SSG if player doesn't have one. Otherwise, 80% SSG, 20% AutoShotgun.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("SSG",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("SSG")
		Stop
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("SSG")
		Stop
		TNT1 A 0 A_SpawnItem ("AutoShotgun")
		Stop
	DM: //Skip inventory check if multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("SSG")
		Stop
		TNT1 A 0 A_SpawnItem ("AutoShotgun")
		Stop
	}
}

ACTOR Chaingun_Replacer Replaces Chaingun
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1002)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("Minigun")
		Stop
	Randomizer:	//Spawn a Minigun if player doesn't have one. Otherwise, 80% Minigun, 20% Revolver.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("Minigun",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("Minigun")
		Stop
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("Minigun")
		Stop
		TNT1 A 0 A_SpawnItem ("Revolver")
		Stop
	DM: //Skip inventory check if multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("Minigun")
		Stop
		TNT1 A 0 A_SpawnItem ("Revolver")
		Stop
	}
}

ACTOR RocketLauncher_Replacer Replaces RocketLauncher
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1004)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("U_Rocket_Launcher")
		Stop
	Randomizer:	//Spawn a Rocket Launcher if player doesn't have one. Otherwise, 80% Rocket Launcher, 20% SniperRifle.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0) //Check miltiplayer.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("U_Rocket_Launcher",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("U_Rocket_Launcher")
		Stop
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("U_Rocket_Launcher")
		Stop
		TNT1 A 0 A_SpawnItem ("SniperRifle")
		Stop
	DM: //Skip inventory check if multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("U_Rocket_Launcher")
		Stop
		TNT1 A 0 A_SpawnItem ("SniperRifle")
		Stop
	}
}

ACTOR PlasmaRifle_Replacer Replaces PlasmaRifle
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1005)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("PlasmagunOnTheFloor")
		Stop
	Randomizer:	//Spawn a PlasmaRifle if player doesn't have one. Otherwise, 80% PlasmaRifle, 20% Railgun.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("Plasma_Gun",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("PlasmagunOnTheFloor")
		Stop
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("PlasmagunOnTheFloor")
		Stop
		TNT1 A 0 A_SpawnItem ("Railgun")
		Stop
	DM: //Skip inventory check if multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("PlasmagunOnTheFloor")
		Stop
		TNT1 A 0 A_SpawnItem ("Railgun")
		Stop
	}
}

ACTOR Shotgun_Replacer Replaces Shotgun
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0 //Spawn SSG on Dooms secret maps. Otherwise, spawn a normal shotgun.
		TNT1 A 0 A_JumpIf(x == 1600 && y == 1152, "SpawnSSG")	//E1M9
		TNT1 A 0 A_JumpIf(x == 576 && y == -896, "SpawnSSG")	//E2M9
		TNT1 A 0 A_JumpIf(x == -432 && y == 208, "SpawnSSG")	//E3M9
		TNT1 A 0 A_JumpIf(x == 176 && y == -64, "SpawnSSG")		//E4M9
		TNT1 A 0 A_JumpIf(x == -4400 && y == 1192, "SpawnSSG")	//Freedoom E1M9
		TNT1 A 0 A_JumpIf(x == -480 && y == 64, "SpawnSSG")		//Freedoom E2M9
		TNT1 A 0 A_JumpIf(x == 3848 && y == -2888, "SpawnSSG")	//Freedoom E3M9
		TNT1 A 0 A_JumpIf(x == 280 && y == -152, "SpawnSSG")	//Freedoom E4M9
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1006)==1, "Randomizer")
		TNT1 A 0 A_SpawnItem ("Shot_Gun")
		Stop
	SpawnSSG:
		TNT1 A 0 A_SpawnItem ("SSG") //Secret map detected! Spawn SSG.
		Stop
	Randomizer:	//Spawn a Shotgun if player doesn't have one. Otherwise, 80% Shotgun, 20% C-4.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("Shot_Gun",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("Shot_Gun")
		Stop
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("Shot_Gun")
		Stop
		TNT1 A 0 A_SpawnItem ("C4Weapon")
		Stop
	DM: //Skip inventory check if multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("Shot_Gun")
		Stop
		TNT1 A 0 A_SpawnItem ("C4Weapon")
		Stop
	}
}

ACTOR Chainsaw_Replacer Replaces Chainsaw
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn: //Spawn a chainsaw if player doesn't have one. Otherwise, spawn a random weapon.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("U_Chainsaw",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItem ("U_Chainsaw")
		Stop
		TNT1 A 0 A_SpawnItem ("RandomWeapon")
		Stop
	DM: //20% Chainsaw, 80% random weapon in multiplayer.
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItem ("U_Chainsaw")
		Stop
		TNT1 A 0 A_SpawnItem ("RandomWeapon")
		Stop
	}
}

ACTOR Allmap2 : Allmap {}
ACTOR Allmap_Replacer Replaces Allmap
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0 //75% Allmap, 25% RandomWeapon.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_Jump (64, 2)
		TNT1 A 0 A_SpawnItem ("Allmap2")
		Stop
		TNT1 A 0 A_SpawnItem ("RandomWeapon")
		Stop
	}
}

Actor RandomWeapon
{
	Radius 0
	Height 0
	+THRUACTORS
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256, "Spawn1", "Spawn2", "Spawn3", "Spawn4", "Spawn5")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1002)==0, "Bummer")
		TNT1 A 0 A_SpawnItem("Revolver")
		stop
	Spawn2:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1004)==0, "Bummer")
		TNT1 A 0 A_SpawnItem("SniperRifle")
		stop
	Spawn3:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003)==0, "Bummer")
		TNT1 A 0 A_SpawnItem("AutoShotgun")
		stop
	Spawn4:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1005)==0, "Bummer")
		TNT1 A 0 A_SpawnItem("Railgun")
		stop
	Spawn5:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1006)==0, "Bummer")
		TNT1 A 0 A_SpawnItem("C4Weapon")
		stop
	Bummer: //To prevent infinite looping, spawn a Allmap instead of checking a different weapon.
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_SpawnItem ("Allmap2")
		Stop
	DM: //No need for Allmap in multiplayer. Spawn a chainsaw instead.
		TNT1 A 0 A_SpawnItem ("U_Chainsaw")
		Stop
	}
}

// --------------------------------------------------------------------------
//
// New items
//
// --------------------------------------------------------------------------

ACTOR 2Shell : Ammo //Ammo for the AutoShotgun
{
	Ammo.DropAmount 4
	Inventory.Amount 4
	Inventory.MaxAmount 50
	Ammo.BackpackAmount 12
	Ammo.BackpackMaxAmount 100
	Inventory.Icon "2SHLA0"
	Inventory.PickupMessage "Picked up 4 green shotgun shells."
	States
	{
	Spawn:
		2SHL A -1
		Stop
	}
}

ACTOR 2ShellBox : 2Shell //Ammo for the AutoShotgun
{
	Inventory.PickupMessage "Picked up a box of green shotgun shells."
	Inventory.Amount 20
	States
	{
	Spawn:
		2SHL B -1
		Stop
	}
}

ACTOR RevolverBullets : Ammo //Ammo for the Revolver
{
	Inventory.Amount 30
	Inventory.MaxAmount 150
	Ammo.BackpackAmount 30
	Ammo.BackpackMaxAmount 300
	Inventory.Icon "RVICB0"
	Inventory.PickupMessage "You got a pack of revolver bullets."
	Scale 0.9
	States
	{
	Spawn:
		RVIC B -1     
	}
}

ACTOR SniperMagazine : Ammo //Ammo for the M40 Sniper rifle
{
	Inventory.Amount 5
	Inventory.MaxAmount 30
	Ammo.BackpackAmount 5
	Ammo.BackpackMaxAmount 60
	Inventory.Icon "SNPXC0"
	Inventory.PickupMessage "Picked up a magazine for the M40."
	Scale 0.9
	States
	{
	Spawn:
		SNPX C -1     
	}
}

ACTOR RailCore : Ammo //Ammo for the Railgun
{
	Inventory.Amount 8
	Inventory.MaxAmount 40
	Ammo.BackpackAmount 8
	Ammo.BackpackMaxAmount 80
	Inventory.Icon "RGNAA0"
	Inventory.PickupMessage "Picked up a Railgun Core."
	Scale 0.9
	States
	{
	Spawn:
		RGNA ABCD 1 BRIGHT
		Loop
	}
}

ACTOR 9mmMagazine : Ammo //Ammo for MP40 and Beretta
{
	Ammo.DropAmount 15
	Inventory.Amount 15
	Inventory.MaxAmount 300
	Ammo.BackpackAmount 15
	Ammo.BackpackMaxAmount 600
	Inventory.Icon "CLIUA0"
	Inventory.PickupMessage "Picked up a magazine."
	States
	{
	Spawn:
		CLI3 A -1
		Stop
	}
}

ACTOR C4Ammo : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 5
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 10
	Inventory.Icon C4EWA0
	Inventory.PickupMessage "You got a C-4 Explosive!"
	Scale 0.25
	States
	{
	Spawn:
		C4EI E -1
	}
}

ACTOR PistolFlashlight : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 1
	Inventory.Icon "FLASH5"
	Inventory.PickupMessage "You got a flashlight attachment for the Beretta."
	Scale 0.08
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetAngle(angle - 315)
	Idle1:
		FLAS H 5
		//TNT1 A 0 A_CheckRange(1000,2)
		//TNT1 A 0 A_Jump(256,2)
		FLAS H 500
		Loop
	Idle2:
		FLAS H 1 A_CustomMissile ("FlashLightBeam", 5, 0, 0, 2, 0)
		Loop
	}
}

ACTOR PistolSilencer : CustomInventory
{
	Scale 0.5
	Inventory.PickupMessage "You got a silencer attachment for the Beretta."
	States
	{
	Spawn:
		PIST B -1
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("PistolSilencerAmmo", 1)
		TNT1 A 0 A_GiveInventory("9mmMagazine", 15)
		Stop
	}
}

ACTOR PistolSilencerAmmo : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 1
	Inventory.Icon "FLASH5"
	Inventory.PickupMessage "You got a silencer attachment for the Beretta."
	Scale 0.5
	States
	{
	Spawn:
		PIST B -1
		Stop
	}
}


// --------------------------------------------------------------------------
//
// Dropped weapons from monsters
//
// --------------------------------------------------------------------------

actor ShotgunDrop
{
	Radius 0
	Height 0
	+THRUACTORS
	states
	{
	Spawn:
		TRII A 0
		TNT1 A 0 A_Jump(128, "Spawn2")
		Goto Spawn1
	Spawn1:	
		TNT1 A 0 A_CustomMissile ("DropedShotgun", 20, 0, 0, 2, random (30, 50))
        stop
	Spawn2:	
        TNT1 A 0 A_CustomMissile ("DropedShotgun2", 20, 0, 180, 2, random (30, 50))
        stop		
	}
}

ACTOR DropedShotgun 
{
	scale 1.0
	speed 6
	health 1
	radius 16
	height 4
	Gravity 0.9
	damage 0
	XScale 0.7
	YScale 0.4
	+THRUACTORS
	+MISSILE
	+NOTELEPORT
	+NOBLOCKMAP
	+BLOODLESSIMPACT 
	+FORCEXYBILLBOARD
	+NODAMAGETHRUST
	+MOVEWITHSECTOR
	+CORPSE
	-DONTSPLASH
	Mass 1
    States
    {
	Spawn:
		SHOT A 4
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
		SHOT BCDEFGH 4
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("Shot_gun")
		Stop
	}
}

ACTOR DropedShotgun2: DropedShotgun
{
    States
    {
	Spawn:
		SHOT H 4
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
		SHOT GFEDCBA 4
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("Shot_gun")
		Stop
	}
}

ACTOR DroppedAmmo
{
	Radius 0
	Height 0
	+THRUACTORS
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_Jump (26, "CellDrop") //10% chanse.
		TNT1 A 0 A_Jump (84, "ShellDrop") //33% chanse.
	MagDrop:
		TNT1 A 0 A_Jump (128, 2)
		TNT1 A 0 A_SpawnItemEx("Clip2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001)==1, 4)
		TNT1 A 0 A_JumpIfInventory("U_MP40", 1, 3, AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIfInventory("Beretta", 1, 2, AAPTR_PLAYER1)
		TNT1 A 0 A_SpawnItemEx("Clip2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_SpawnItemEx("9mmMagazine", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
	ShellDrop:
		TNT1 A 0 A_Jump (51, 2)
		TNT1 A 0 A_SpawnItemEx("Shell2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003)==1, 2)
		TNT1 A 0 A_SpawnItemEx("Shell2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_SpawnItemEx("2Shell", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
	CellDrop:
		TNT1 A 0 A_Jump (38, 2)
		TNT1 A 0 A_SpawnItemEx("Cell2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1005)==1, 2)
		TNT1 A 0 A_SpawnItemEx("Cell2", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
		TNT1 A 0 A_SpawnItemEx("RailCore", 0, 0, 10, 5, 0, 7, random(0,360))
		Stop
	}
}