//===========================================================================
//
//	Monster spawners
//
//===========================================================================

ACTOR HellKnightReplacer: DoomImp replaces HellKnight
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		BOS2 D 0
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,0)
		BOS2 D 2
		TNT1 A 0 A_SpawnItemEx("U_HellKnight",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("HellKnight2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR BaronofHellReplacer: DoomImp replaces BaronofHell
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		BOSS B 0
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,1)
		BOSS B 2
		TNT1 A 0 A_SpawnItemEx("U_BaronofHell",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("BaronofHell2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR CacodemonReplacer: DoomImp replaces Cacodemon
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		HEAD A 0
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,2)
		HEAD A 2
		TNT1 A 0 A_SpawnItemEx("U_Cacodemon",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("Cacodemon_",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR PainElementalReplacer: DoomImp replaces PainElemental
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		PAIN A 0
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,3)				//Check if Ifrit is enabled
		PAIN A 2
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003,0)==0,2)					//Check if dynamic spawn is enabled
		TNT1 A 0 A_JumpIfInventory("LevelCounter",15,2,AAPTR_PLAYER1)			//Check if played enough levels
		Goto Vanilla
		TNT1 A 0 A_Jump(128,"Vanilla")
		TNT1 A 0 A_SpawnItemEx("Ifrit",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("PainElemental1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR ZombieManReplacer: DoomImp replaces ZombieMan
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		PSSS B 0
		TNT1 A 0 A_Jump(1,"SpawnAxeman")
		TNT1 A 0 A_Jump(116,"SpawnRifle")
		TNT1 A 0 A_Jump(256,"SpawnPistol")
		Stop
	SpawnPistol:
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,4)				//Check if Pistol-zombie is enabled
		PSSS B 2
		TNT1 A 0 A_SpawnItemEx("PistolZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	SpawnRifle:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003,0)==0,3)					//Check if dynamic spawn is enabled
		TNT1 A 0 A_JumpIfInventory("LevelCounter",3,2,AAPTR_PLAYER1)			//Check if played enough levels
		TNT1 A 0 A_Jump(256,"SpawnPistol")
		Vanilla:
		TNT1 A 0 A_SpawnItemEx("RifleZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	SpawnAxeman:
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,7)				//Check if Axe-zombie is enabled
		PSSS B 2
		TNT1 A 0 A_SpawnItemEx("Labguy",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR ShotgunGuyReplacer: DoomImp replaces ShotgunGuy
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		SHID A 0
		TNT1 A 0 A_Jump(32,"SpawnSMG")
		TNT1 A 0 A_Jump(32,"SpawnSSG")
		TNT1 A 0 A_Jump(256,"Vanilla")
		Stop
	SpawnSMG:
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,5)				//Check if SMG-zombie is enabled
		SHID A 2
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003,0)==0, 3)					//Check if dynamic spawn is enabled
		TNT1 A 0 A_JumpIfInventory("LevelCounter",5,2,AAPTR_PLAYER1)			//Check if played enough levels
		TNT1 A 0 A_Jump(256,"Vanilla")
		TNT1 A 0 A_SpawnItemEx("SMGGuy",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	SpawnSSG:
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,6)				//Check if SSG-zombie is enabled
		SHID A 2
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1003,0)==0, 3)					//Check if dynamic spawn is enabled
		TNT1 A 0 A_JumpIfInventory("LevelCounter",7,2,AAPTR_PLAYER1)			//Check if played enough levels
		TNT1 A 0 A_Jump(256,"Vanilla")
		TNT1 A 0 A_SpawnItemEx("SSGZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("ShotgunGuy1",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0, tid)
		Stop
	}
}

ACTOR U_Labguy: Labguy
{
}

ACTOR LabguyReplacer: DoomImp replaces Labguy
{
	+GHOST
	-COUNTKILL
	States
	{
	Spawn:
		SCZA A 0
		TNT1 A 0 ACS_NamedExecuteAlways("TE_MonsterChecker",0,7)				//Check if Axe-zombie is enabled
		SCZA A 2
		TNT1 A 0 A_SpawnItemEx("U_Labguy",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	Vanilla:
		TNT1 A 0 A_SpawnItemEx("ZombieMan",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}

ACTOR U_CommanderKeen: CommanderKeen
{
}

ACTOR CommanderKeenReplacer replaces CommanderKeen
{
	+GHOST
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 5
		TNT1 A 0 ACS_NamedExecuteAlways("TE_Scythe2Check")
		TNT1 A 5
		TNT1 A 0 A_PrintBold("Derp")
		Stop
	Scythe2:
		TNT1 A 0 A_PrintBold("Scythe2!")
		TNT1 A 0 A_SpawnItemEx("Ifrit",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS ,0,tid)
		Stop
	}
}