//////////////////////////////////
// projectiles
//////////////////////////////////

ACTOR BDRocket : Rocket replaces Rocket
{
	Decal Scorch
	SeeSound "rocket/fly"

	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			MISL A 1 Bright
			Loop
		Death:
			TNT1 A 0 A_Quake (1, 5, 0, 1000)
			TNT1 A 0 A_Quake (1, 8, 0, 800)
			TNT1 A 0 A_Quake (2, 10, 0, 500)
			TNT1 A 0 A_Quake (4, 15, 0, 300)
			TNT1 A 0 A_Quake (7, 15, 0, 150)
			MISL B 8 Bright A_Explode
			MISL C 6 Bright
			MISL D 4 Bright
			Stop
	}
}

ACTOR BDDoomImpBall : DoomImpBall replaces DoomImpBall
{
//	Damage 1

	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			BAL1 AB 4 Bright
			Loop
	}
}

ACTOR BDArachnotronPlasma : ArachnotronPlasma replaces ArachnotronPlasma
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			APLS AB 5 Bright
			Loop
	}
}

ACTOR BDBaronBall : BaronBall replaces BaronBall
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			BAL7 AB 4 Bright
			Loop
	}
}

ACTOR BDCacodemonBall : CacodemonBall replaces CacodemonBall
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			BAL2 AB 4 Bright
			Loop
	}
}

ACTOR BDFatShot : FatShot replaces FatShot
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			MANF AB 4 Bright
			Loop
	}
}

ACTOR BDRevenantTracer : RevenantTracer replaces RevenantTracer
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterProjectileDamage",0)
		DoStuff:
			FATB AB 2 Bright A_Tracer
			Loop
	}
}

//////////////////////////////////
// monsters
//////////////////////////////////

ACTOR BDImp : DoomImp replaces DoomImp
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			TROO AB 10 A_Look
			Loop
		Melee:
		Missile:
			TROO EF 8 A_FaceTarget
			//TROO G 6 A_TroopAttack
			TROO G 6 A_CustomComboAttack("DoomImpBall", 32, user_scaledBaseDamage * random(1, 8), "imp/melee")
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		XDeath:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::XDeath
		// info: This state is needed because Archviles resurrect/heal monsters based on their spawn health. However spawn health can
		// not be changed on monsters from script, only on players. Because of that the monster's health needs to be reset here
		// whenever it gets resurrected.
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDArachnotron : Arachnotron replaces Arachnotron
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			BSPI AB 10 A_Look
			Loop
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDArchvile : Archvile replaces Archvile
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 20)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			VILE AB 10 A_Look
			Loop
		Missile:
			VILE G 0 Bright A_VileStart
			VILE G 10 Bright A_FaceTarget
			VILE H 8 Bright A_VileTarget
			VILE IJKLMN 8 Bright A_FaceTarget
			//VILE O 8 Bright A_VileAttack
			VILE O 8 Bright A_VileAttack("vile/stop", user_scaledBaseDamage, user_scaledBaseDamage * 3.5)	// base 20 -> 70 = 20*3.5
			VILE P 20 Bright
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
	}
}

ACTOR BDBaronOfHell : BaronOfHell replaces BaronOfHell
{
	Health 750	// down from 1000 (-25%)

	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 10)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			BOSS AB 10 A_Look
			Loop
		Melee:
		Missile:
			BOSS EF 8 A_FaceTarget
			BOSS G 8 A_CustomComboAttack("BaronBall", 32, user_scaledBaseDamage * random(1, 8), "baron/melee")
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDHellKnight : HellKnight replaces HellKnight
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 10)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			BOS2 AB 10 A_Look
			Loop
		Melee:
		Missile:
			BOS2 EF 8 A_FaceTarget
			BOS2 G 8 A_CustomComboAttack("BaronBall", 32, user_scaledBaseDamage * random(1, 8), "baron/melee")
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDCacodemon : Cacodemon replaces Cacodemon
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 10)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			HEAD A 10 A_Look
			Loop
		Missile:
			HEAD BC 5 A_FaceTarget
			HEAD D 5 Bright A_CustomComboAttack("CacodemonBall", 32, user_scaledBaseDamage * random(1, 6))
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDCyberdemon : Cyberdemon replaces Cyberdemon
{
	Health 2666	// down from 4000 (-33%)

	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	-NORADIUSDMG	// to allow taking damage from player rockets
	+DONTHARMSPECIES	// disallow self-damage

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			CYBR AB 10 A_Look
			Loop
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
	}
}

ACTOR BDDemon : Demon replaces Demon
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 4)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SARG AB 10 A_Look
			Loop
		Melee:
			SARG EF 8 Fast A_FaceTarget
			SARG G 8 Fast A_CustomMeleeAttack(user_scaledBaseDamage * random(1, 10))
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDSpectre : Spectre replaces Spectre
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 4)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SARG AB 10 A_Look
			Loop
		Melee:
			SARG EF 8 Fast A_FaceTarget
			SARG G 8 Fast A_CustomMeleeAttack(user_scaledBaseDamage * random(1, 10))
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDChaingunGuy : ChaingunGuy replaces ChaingunGuy
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	DropItem None

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			CPOS AB 10 A_Look
			Loop
		Missile:
			CPOS E 10 A_FaceTarget
			//CPOS FE 4 Bright A_CPosAttack
			CPOS F 0 Bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
			CPOS F 4 Bright A_CustomBulletAttack(22.5, 0, 1, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			CPOS E 0 Bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
			CPOS E 4 Bright A_CustomBulletAttack(22.5, 0, 1, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			CPOS F 1 A_CPosRefire
			Goto Missile+1
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		XDeath:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::XDeath
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDFatso : Fatso replaces Fatso
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			FATT AB 15 A_Look
			Loop
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDLostSoul : LostSoul replaces LostSoul
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteWithResult("SetMonsterLevel",0)
			goto Idle
		Idle:
			SKUL AB 10 Bright A_Look
			Loop
		// this is a "hack" to make sure Lost Souls always have a level set. if a soul is fired from a Pain Elemental
		// and gets hit immediately after spawn its level does not always get set properly.
		See:
			TNT1 A 0
			{
				if (user_level == 0)
				{
					ACS_NamedExecuteWithResult("SetMonsterLevel",0);
				}
			}
			goto Super::See
		Death:
			TNT1 A 0
			{
				// this "trick" prevents Lost Souls from dropping items/giving XP if spawned from Pain Elementals and being
				// killed immediately on spawn because there is not enough room.
				if (user_level > 0)
				{
					ACS_NamedExecuteAlways("HandleMonsterDeath",0);
				}
			}
			goto Super::Death
	}
}

ACTOR BDPainElemental : PainElemental replaces PainElemental
{
	Health 300	// down from 400 (-25%)

	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			PAIN A 10 A_Look
			Loop
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
	}
}

ACTOR BDRevenant : Revenant replaces Revenant
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 6)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SKEL AB 10 A_Look
			Loop
		Melee:
			SKEL G 1 A_FaceTarget
			SKEL G 6 A_SkelWhoosh
			SKEL H 6 A_FaceTarget
			SKEL I 6 A_CustomMeleeAttack(user_scaledBaseDamage * random(1, 10), "skeleton/melee")
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDShotgunGuy : ShotgunGuy replaces ShotgunGuy
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	DropItem None

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SPOS AB 10 A_Look
			Loop
		Missile:
			SPOS E 10 A_FaceTarget
			//SPOS F 10 Bright A_SPosAttackUseAtkSound
			SPOS F 0 Bright A_PlaySound("shotguy/attack", CHAN_WEAPON)
			SPOS F 10 Bright A_CustomBulletAttack(22.5, 0, 3, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			SPOS E 10
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		XDeath:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::XDeath
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDSpiderMastermind : SpiderMastermind replaces SpiderMastermind
{
	Health 2000	// down from 3000 (-33%)

	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	-NORADIUSDMG	// to allow player rocket damage

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SPID AB 10 A_Look
			Loop
		Missile:
			SPID A 20 Bright A_FaceTarget
			//SPID G 4 Bright A_SPosAttackUseAtkSound
			//SPID H 4 Bright A_SPosAttackUseAtkSound
			SPID G 0 Bright A_PlaySound("spider/attack", CHAN_WEAPON)
			SPID G 4 Bright A_CustomBulletAttack(22.5, 0, 3, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			SPID H 0 Bright A_PlaySound("spider/attack", CHAN_WEAPON)
			SPID H 4 Bright A_CustomBulletAttack(22.5, 0, 3, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			SPID H 1 Bright A_SpidRefire
			Goto Missile+1
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
	}
}

ACTOR BDWolfensteinSS : WolfensteinSS replaces WolfensteinSS
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	DropItem None

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			SSWV AB 10 A_Look
			Loop
		Missile:
			SSWV E 10 A_FaceTarget
			SSWV F 10 A_FaceTarget
			//SSWV G 4 Bright A_CPosAttack
			SSWV G 0 Bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
			SSWV G 4 Bright A_CustomBulletAttack(22.5, 0, 1, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			SSWV F 6 A_FaceTarget
			//SSWV G 4 Bright A_CPosAttack
			SSWV G 0 Bright A_PlaySound("chainguy/attack", CHAN_WEAPON)
			SSWV G 4 Bright A_CustomBulletAttack(22.5, 0, 1, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			SSWV F 1 A_CPosRefire
			Goto Missile+1
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		XDeath:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::XDeath
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}

ACTOR BDZombieMan : ZombieMan replaces ZombieMan
{
	var int user_level;	// monster level
	var int user_maxHealth;	// maximum health, set after monster level is determined
	var int user_scaledBaseDamage;	// monster base damage with increase from levels

	DropItem None

	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SetUserVar("user_scaledBaseDamage", 3)
			TNT1 A 0 ACS_NamedExecuteAlways("SetMonsterLevel",0)
			goto Idle
		Idle:
			POSS AB 10 A_Look
			Loop
		Missile:
			POSS E 10 A_FaceTarget
			//POSS F 8 A_PosAttack
			POSS E 0 A_PlaySound ("grunt/attack")
			POSS F 8 A_CustomBulletAttack (22.5, 0, 1, user_scaledBaseDamage * random(1,5), "BulletPuff", 0, CBAF_NORANDOM)
			POSS E 8
			Goto See
		Death:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::Death
		XDeath:
			TNT1 A 0 ACS_NamedExecuteAlways("HandleMonsterDeath",0)
			goto Super::XDeath
		Raise:
			TNT1 A 0 A_SetHealth(user_maxHealth)
			goto Super::Raise
	}
}



//////////////////////////////////
// weapon pickups
//////////////////////////////////

// replaces all standard Doom weapon pickups with random BorderDoom pickups
ACTOR DoomWeaponReplacement
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItem("BDWeaponSpawner")
			stop
	}
}

ACTOR ChainsawReplacement		: DoomWeaponReplacement replaces Chainsaw {}
ACTOR ShotgunReplacement		: DoomWeaponReplacement replaces Shotgun {}
ACTOR SuperShotgunReplacement	: DoomWeaponReplacement replaces SuperShotgun {}
ACTOR ChaingunReplacement		: DoomWeaponReplacement replaces Chaingun {}
ACTOR RocketLauncherReplacement	: DoomWeaponReplacement replaces RocketLauncher {}
ACTOR PlasmaRifleReplacement	: DoomWeaponReplacement replaces PlasmaRifle {}
ACTOR BFG9000Replacement		: DoomWeaponReplacement replaces BFG9000 {}

// armor

ACTOR DoomArmorReplacement
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_SpawnItem("RandomShieldPickup")
			stop
	}
}


ACTOR GreenArmorReplacement		: DoomArmorReplacement replaces GreenArmor {}
ACTOR BlueArmorReplacement		: DoomArmorReplacement replaces BlueArmor {}

// other items

ACTOR MegasphereReplacement		: DoomWeaponReplacement replaces Megasphere {}

ACTOR BackpackReplacement		: DoomWeaponReplacement replaces Backpack {}
