//======================================================
// FLAMING ZOMBIE:
// BASE ZOMBIE
//
// Added separately to keep spawners from going when
// zombies are running around on fire
//======================================================

ACTOR Flaming_BaseZombie
{
	Monster
	Speed 6
	Radius 4
	Height 8
	+THRUACTORS
	-SOLID
	-SHOOTABLE
	+NOBLOOD
	DamageType Fire
	States
	{
		// Running around
		Spawn:
		BSZF A 0
		BSZF A 0 A_JumpIfInventory("FlameCounter",7,"FireDeath")
		
		BSZF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 0 A_Explode(2,32)
		BSZF A 1 bright A_Wander
		BSZF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 1 bright A_Wander
		BSZF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 1 bright A_Wander
		
		BSZF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 0 A_Explode(2,32)
		BSZF B 1 bright A_Wander
		BSZF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF B 1 bright A_Wander
		BSZF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF B 1 bright A_Wander
		
		BSZF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 0 A_Explode(2,32)
		BSZF C 1 bright A_Wander
		BSZF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF C 1 bright A_Wander
		BSZF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF C 1 bright A_Wander
		
		BSZF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF A 0 A_Explode(2,32)
		BSZF D 1 bright A_Wander
		BSZF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF D 1 bright A_Wander
		BSZF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,10,0,0,0)
		BSZF D 1 bright A_Wander
		

		BSZF A 0 A_GiveInventory("FlameCounter",1)
		BSZF A 0 A_Pain
		Loop
		
		// Dying
		FireDeath:
			VZOF K 0 A_NoBlocking
			VZOF K 0 A_UnsetShootable
			BSZF EFGHIJKL 2 bright
			BSZF M 0 A_SpawnItemEx("BurningBaseCorpse",0,0,0)
			Stop
	}
}

ACTOR BurningBaseCorpse
{
	+THRUACTORS
	-SOLID
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	+FLOORCLIP
	+MOVEWITHSECTOR
	States
	{
	Spawn:
				BSZF A 0 A_JumpIfInventory("CorpseDecayTime",200,"Charred")
				BSZF M 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
				BSZF M 0 A_GiveInventory("CorpseDecayTime",1)
				Loop
	Charred:
				BSZF A 0
				BSZF A 0 A_SpawnItemEx("Charred_BaseZombie",0,0,0)
				Stop
	}
}

ACTOR Flaming_Vagina : Flaming_BaseZombie
{
	Speed 8
	States
	{
		Spawn:
		VZOF A 0
		VZOF A 0 A_JumpIfInventory("FlameCounter",7,"FireDeath")
		
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF A 1 bright A_Wander
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF A 1 bright A_Wander
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF A 1 bright A_Wander
		
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF B 1 bright A_Wander
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF B 1 bright A_Wander
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF B 1 bright A_Wander
		
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF C 1 bright A_Wander
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF C 1 bright A_Wander
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF C 1 bright A_Wander
		
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF D 1 bright A_Wander
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF D 1 bright A_Wander
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF D 1 bright A_Wander
		
		VZOF E 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF E 1 bright A_Wander
		VZOF E 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF E 1 bright A_Wander
		VZOF E 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF E 1 bright A_Wander
		
		VZOF F 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		VZOF F 1 bright A_Wander
		VZOF F 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF F 1 bright A_Wander
		VZOF F 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		VZOF F 1 bright A_Wander
		

		VZOF A 0 A_GiveInventory("FlameCounter",1)
		VZOF A 0 A_Pain
		Loop
	
	FireDeath:
		VZOF K 0 A_NoBlocking
		VZOF K 0 A_UnsetShootable
		VZOF GHIJ 2 bright
	BSZF M 0 A_SpawnItemEx("BurningVaginaCorpse",0,0,0)
			Stop
	}
}

ACTOR BurningVaginaCorpse : BurningBaseCorpse
{
	States
	{
	Spawn:
		BSZF A 0 A_JumpIfInventory("CorpseDecayTime",200,"Charred")
		VZOF K 2 bright A_SpawnItemEx("CorpseFlameFX",0,0,0)
		VZOF K 0 A_GiveInventory("CorpseDecayTime",1)
		Loop
	Charred:
		BSZF A 0
		BSZF A 0 A_SpawnItemEx("Charred_Vagina",0,0,0)
		Stop
	}
}

ACTOR Flaming_Savage : Flaming_BaseZombie
{
	Speed 8
	States
	{
		Spawn:
		VZOF A 0
		VZOF A 0 A_JumpIfInventory("FlameCounter",7,"FireDeath")
		
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		TRBR A 1 bright A_Wander
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR A 1 bright A_Wander
		VZOF A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR A 1 bright A_Wander
		
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		TRBR B 1 bright A_Wander
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR B 1 bright A_Wander
		VZOF B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR B 1 bright A_Wander
		
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		TRBR C 1 bright A_Wander
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR C 1 bright A_Wander
		VZOF C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR C 1 bright A_Wander
		
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BSZF A 0 A_Explode(2,32)
		TRBR D 1 bright A_Wander
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR D 1 bright A_Wander
		VZOF D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		TRBR D 1 bright A_Wander

		VZOF A 0 A_GiveInventory("FlameCounter",1)
		VZOF A 0 A_Pain
		Loop
	
	FireDeath:
		/*VZOF K 0 A_NoBlocking
		VZOF K 0 A_UnsetShootable
		VZOF GHIJ 2 bright
		BSZF M 0 A_SpawnItemEx("BurningVaginaCorpse",0,0,0)
		Stop*/
		TNT1 A 0 A_Fall
		TNT1 A 0 A_UnsetShootable
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_ChangeFlag("SOLID", 0)
		TNT1 A 0 A_ChangeFlag("NOTARGET", 1)
        TNT1 A 0 A_SpawnItem("BurningSavageCorpse")
		Stop
	}
}

ACTOR BurningSavageCorpse : BurningBaseCorpse
{
	States
	{
	Spawn:
		/*BSZF A 0 A_JumpIfInventory("CorpseDecayTime",200,"Charred")
		VZOF K 2 bright A_SpawnItemEx("CorpseFlameFX",0,0,0)
		VZOF K 0 A_GiveInventory("CorpseDecayTime",1)
		Loop
	Charred:
		BSZF A 0
		BSZF A 0 A_SpawnItemEx("Charred_Vagina",0,0,0)
		Stop*/
	Death:
		IZD4 CCC 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 CCC 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 CCC 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 CCC 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 CCC 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 CCC 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		IZD4 DDD 3 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		TNT1 A 0 A_PlaySound("imp/pain")
		
		
		TROO LLLL 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
		
        
		TNT1 A 0 A_Playsound("props/redfire")
		BOSB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2 A_SpawnItemEx("CorpseFlameFX",0,0,0)
        BOSB FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 20 A_SpawnItemEx("CorpseFlameFX",0,0,0)
        BOSB F -1
	}
}

ACTOR Flaming_Doggy : Flaming_BaseZombie
{
	States
	{
		Spawn:
			DOGB A 0
			DOGB A 0 A_JumpIfInventory("FlameCounter",5,"FireDeath")
			
			DOGB A 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			BSZF A 0 A_Explode(2,32)
			DOGB A 1 bright A_Wander
			DOGB A 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB A 1 bright A_Wander
			DOGB A 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB A 1 bright A_Wander
			
			DOGB B 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			BSZF A 0 A_Explode(2,32)
			DOGB B 1 bright A_Wander
			DOGB B 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB B 1 bright A_Wander
			DOGB B 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB B 1 bright A_Wander
			
			DOGB C 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			BSZF A 0 A_Explode(2,32)
			DOGB C 1 bright A_Wander
			DOGB C 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB C 1 bright A_Wander
			DOGB C 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB C 1 bright A_Wander
			
			DOGB D 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			BSZF A 0 A_Explode(2,32)
			DOGB D 1 bright A_Wander
			DOGB D 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB D 1 bright A_Wander
			DOGB D 0 A_SpawnItemEx("BurningFXSpawner",0,0,5,0,0,0)
			DOGB D 1 bright A_Wander
			

			DOGB A 0 A_GiveInventory("FlameCounter",1)
			DOGB A 0 A_Pain
			Loop
			
		Death.Dragon:
		FireDeath:
			VZOF K 0 A_NoBlocking
			VZOF K 0 A_UnsetShootable
			DOGB EFGHIJ 2 bright
		BSZF M 0 A_SpawnItemEx("BurningDoggyCorpse",0,0,0)
			Stop
	}
}

ACTOR BurningDoggyCorpse : BurningBaseCorpse
{
	States
	{
	Spawn:
		BSZF A 0 A_JumpIfInventory("CorpseDecayTime",200,"Charred")
			DOGB K 2 bright A_SpawnItemEx("CorpseFlameFX",0,0,0)
			VZOF K 0 A_GiveInventory("CorpseDecayTime",1)
			Loop
		Charred:
			DOGB L -1
			Stop
	}
}

//======================================================
// EVISCERATOR
//======================================================

ACTOR Flaming_Eviscerator : Flaming_BaseZombie
{
	Speed 8
	States
	{
		Spawn:
		BCGN A 0
		BCGN A 0 A_JumpIfInventory("FlameCounter",7,"FireDeath")
		
		BCGN A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 0 A_Explode(2,32)
		BCGN A 1 bright A_Wander
		BCGN A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 1 bright A_Wander
		BCGN A 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 1 bright A_Wander
		
		BCGN B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 0 A_Explode(2,32)
		BCGN B 1 bright A_Wander
		BCGN B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN B 1 bright A_Wander
		BCGN B 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN B 1 bright A_Wander
		
		BCGN C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 0 A_Explode(2,32)
		BCGN C 1 bright A_Wander
		BCGN C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN C 1 bright A_Wander
		BCGN C 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN C 1 bright A_Wander
		
		BCGN D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN A 0 A_Explode(2,32)
		BCGN D 1 bright A_Wander
		BCGN D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN D 1 bright A_Wander
		BCGN D 0 A_SpawnItemEx("BurningFXSpawner",0,0,30,0,0,0)
		BCGN D 1 bright A_Wander
		

		BCGN A 0 A_GiveInventory("FlameCounter",1)
		BCGN A 0 A_Pain
		Loop
	
	FireDeath:
		BCGN K 0 A_NoBlocking
		BCGN K 0 A_UnsetShootable
		BCGN EFGHIJ 2 bright
		BCGN J 0 A_SpawnItemEx("BurningEvisceratorCorpse",0,0,0)
		Stop
	}
}

ACTOR BurningEvisceratorCorpse : BurningBaseCorpse
{
	States
	{
	Spawn:
		BCGN K 0 A_JumpIfInventory("CorpseDecayTime",200,"Charred")
		BCGN K 2 bright A_SpawnItemEx("CorpseFlameFX",0,0,0)
		BCGN K 0 A_GiveInventory("CorpseDecayTime",1)
		Loop
	Charred:
		BCGN A 0
		BCGN A 0 A_SpawnItemEx("Charred_Eviscerator",0,0,0)
		Stop
	}
}

//======================================================
// CHARRED CORPSE: 
// BASE ZOMBIE
//======================================================

ACTOR Charred_BaseZombie
{
	+THRUACTORS
	-SOLID
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	+FLOORCLIP
	+MOVEWITHSECTOR
	
	States
	{
	Spawn:
		BSZF N -1
		Stop
	}
}

//======================================================
// CHARRED CORPSE: 
// VAGINAFACE
//======================================================

// "You know your mod's good when you have an actor named Charred_Vagina"

ACTOR Charred_Vagina
{
	+THRUACTORS
	-SOLID
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	+FLOORCLIP
	+MOVEWITHSECTOR
	
	States
	{
	Spawn:
		VZOF L -1
		Stop
	}
}

//======================================================
// CHARRED CORPSE: 
// DOGGY
//======================================================

ACTOR Charred_Doggy
{
	+THRUACTORS
	-SOLID
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	+FLOORCLIP
	+MOVEWITHSECTOR
	
	States
	{
	Spawn:
		DOGB L -1
		Stop
	}
}

//======================================================
// CHARRED CORPSE: 
// EVISCERATOR
//======================================================

ACTOR Charred_Eviscerator
{
	+THRUACTORS
	-SOLID
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	+FLOORCLIP
	+MOVEWITHSECTOR
	
	States
	{
	Spawn:
		BCGN L -1
		Stop
	}
}