
//***Che: moved to a separate file to allow "blank slate" EDAY that replaces neither monsters nor items, 
// 	to be compatible with any mod.
// While *still* retaining its entire FBD roster to be used on scripted occasions!


// ----------------- DooM / DoomII replacements

ACTOR Imp: FBD_Imp Replaces DoomImp {}

ACTOR BullDemon: FBD_BullDemon Replaces Demon {} 

ACTOR Spectro: FBD_BullDemon Replaces Spectre {}

ACTOR RifleZombie: FBD_RifleZombie Replaces ZombieMan {}

ACTOR ShotgunGuy1: FBD_ShotgunGuy Replaces ShotgunGuy {}

ACTOR ChaingunGuy1: FBD_ChaingunGuy Replaces ChaingunGuy {}

ACTOR HellKnight2: FBD_Knight Replaces HellKnight {}

ACTOR BaronofHell2: FBD_Baron Replaces BaronofHell {}

ACTOR Revenant1: FBD_Revenant Replaces Revenant { SpawnID 0 } 

ACTOR Cacodemon_: FBD_Cacodemon Replaces Cacodemon {}

ACTOR PainElemental1: FBD_PainElemental Replaces PainElemental {}

ACTOR TehLostSoul: FBD_LostSoul Replaces LostSoul {}

ACTOR Mancubus: FBD_Mancubus Replaces Fatso {}

ACTOR Arachnotron1: FBD_Arachnotron1 Replaces Arachnotron {}

ACTOR TheCyberdemon: FBD_Cyberdemon replaces Cyberdemon {
	States
	{
		Spawn:
			CYBR D 0 NODELAY
			//***Che: a nice pitfall, the jump functions won't execute on the first frame,
			//  NODELAY doesn't help. And you get NO error message, nothing. It just doesn't work.
			
			//***Che: unlike vanilla BD, *both* coordinates must match. 
			//    I had accidents happen to unrelated maps (EDAY13) due to this.
			
			//***TODO: harden map detection using ACS
			//  because false positives happen :(
			TNT1 A 0 A_JumpIf(x == -1472 && y == 576, "ReplaceForBOSS")
			
			TNT1 A 0 A_JumpIf(CallAcs("GetPotPourri"), "PotPourriSwap")
			Goto PotPourriCancel
	}
}

ACTOR TheSpiderMastermind: FBD_Mastermind Replaces SpiderMastermind {
	States
	{
		Spawn:
			SPID A 0
			TNT1 A 0 A_GiveInventory("TargetIsAMastermind")
			TNT1 A 0 A_GiveInventory("TargetIsABoss")
			TNT1 A 0 A_JumpIf(x == 1600 && y == -768 && z == 0, "ReplaceForBOSS") // E3M8
			TNT1 A 0 A_JumpIf(x == -2720 && y == 32 && z == -80, "ReplaceForMotherdemon1") // E4M8
			TNT1 A 0 A_JumpIf(x == 0 && y == 0 && z == 48, "ReplaceForMotherdemon2") // ?
			TNT1 A 0 A_JumpIf(CallAcs("GetPotPourri"), "PotPourriSwap")
			Goto PotPourriCancel
	}
}

ACTOR TehArchvile: FBD_Archvile Replaces Archvile {}


// ----------------- ZDoom replacements -------------------------------

ACTOR EvmFist: WeakFistsTraitor replaces MarineFist {} // native class doomed num 9101

ACTOR EvmBerserk: ChaosMarineBerserk replaces MarineBerserk {} // native class doomed num 9102

ACTOR EvmChainsaw: ChaosMarineChainsaw replaces MarineChainsaw {} // native class doomed num 9103

ACTOR EvmRifle: WeakRifleTraitor Replaces MarinePistol {} // pre-defined class doomed num = 9104

ACTOR EvmShotgun: WeakShotgunTraitor Replaces MarineShotgun {} // native class doomed num 9105

ACTOR EvMarineSSG : ChaosMarineSSG Replaces MarineSSG {} // native class doomed num 9106 

ACTOR EvmMinigun: WeakMinigunTraitor replaces MarineChaingun {} // native class doomed num 9107

ACTOR EvmRL : ChaosMarineRocketLauncher Replaces MarineRocket {} // native class doomed num 9108 

ACTOR EvmPlasma : ChaosMarinePlasma Replaces MarinePlasma {} // pre-defined class doomed num = 9109

ACTOR EvmRail : ChaosMarineRailgun Replaces MarineRailgun {} // native class doomed num 9110

ACTOR EvmBFG : ChaosMarineBFG Replaces MarineBFG {} // native class doomed num 9111

ACTOR BrutalStealthArachnotron: FBD_StealthArachnotron Replaces StealthArachnotron {}

ACTOR BrutalStealthArchvile: FBD_StealthArchvile Replaces StealthArchvile {}

ACTOR BrutalStealthFatso: FBD_StealthFatso Replaces StealthFatso {}

ACTOR BrutalStealthCacodemon: FBD_Cacodemon Replaces StealthCacodemon {}

ACTOR BrutalStealthHellKnight: FBD_Knight Replaces StealthHellKnight {}

ACTOR BrutalStealthBaron: FBD_StealthBaron Replaces StealthBaron {} 



// ----------------- Legacy of Rust replacements ----------------------

ACTOR Caclet_LOR: FBD_Caclet 3007 {} // ghoul

ACTOR Vassanant: Immolant 3011 { // vassago
	Health 1200
}

ACTOR Hater_LOR: FBD_Hater 3008 {} // banshee

ACTOR Mindblower_LOR : FBD_Mindblower 3009 {} // mindweaver

ACTOR FBD_Tyrant_LOR_1 : FBD_Tyrant 3012 {} // tyrant

ACTOR FBD_Tyrant_LOR_2 : FBD_Tyrant 3013 {} // tyrant

ACTOR FBD_Tyrant_LOR_3 : FBD_Tyrant 3014 {} // tyrant


// ----------------- Brutal Doom v21 replacements ----------------------

ACTOR ZombieMainBattleTank : FBD_EnemyMBT 9951 {}

ACTOR ZombieMainBattleTankBody1 : EnemyMBTTurret {}

ACTOR ZombieArtilleryTank : FBD_EnemySPAAG 9950 {}

ACTOR ZombieArtilleryTankBody1 : EnemySPAAGTurret {}

ACTOR ZombieHelicopter : FBD_EnemyHeli 9953 {}

ACTOR ZombieMech : FBD_EnemyMech 9954 {}

ACTOR Juggernaut : FBD_Juggernaut 2545 {}

ACTOR BD_Volcabus: FBD_Volcabus 2543 {}

ACTOR BD_Arachnotron2: FBD_Arachnotron2 2542 {}