// *** MODIFIED BY CHEBMASTER
// I mark most important places modified by me with //***Che -- unless I forget to.





ACTOR AlertAfterDeath
{
	Radius 1
	Height 1
	+NOCLIP
	States
	{
		TNT1 A 5
		TNT1 A 1 A_AlertMonsters
		TNT1 A 1
		Stop
	}
}

//***Che: cross-mod hardening: see ACTOR RifleZombie: FBD_RifleZombie Replaces ZombieMan {} in Doom_Replacements.txt
ACTOR FBD_RifleZombie 17842
{
	//***Che radius, height and maxdropoffheight (n/a for flying ones) MUST be kept consistent with FBD_TrySpawn in FBD_CORE.acs!
	
	//$category "FBD Monsters"
	//$Sprite PSSSA1
	
	Game Doom
	Health 40
	Radius 16
	Height 44
    Speed 4
	Mass 300
	FastSpeed 8
	PainChance 255
	PainChance "Avoid", 0
	PainChance "Head", 256
	PainChance "Kick", 256
	Painchance "Slide", 256
	PainChance "Melee", 256 PainChance "Stealth", 256
	PainChance "Fatality", 256
	PainChance "Taunt", 256
	PainChance "LowKick", 256
	DamageFactor "Head", 1.3
	PainChance "HelperMarineFatallity", 256 PainChance "HangingHook", 0
	damagefactor "Crush", 5.0 DamageFactor "Fatality", 5.0
	damagefactor "GibRemoving", 0.0
	damagefactor "KillMeBot", 0.0 damagefactor "EnvAcidShower", 10.0
	damagefactor "DontCallTheBaron", 0.0
	PainChance "MonsterKnocked", 256
	damagefactor "HelperMarineFatallity", 3.0
	damagefactor "Avoid", 1.0 damagefactor "FallInLava", 500.0
	damagefactor "SSG", 500.0 damagefactor "PussyGrab", 50.0
	PainChance "ExplosiveImpact", 256
	damagefactor "TeleportRemover", 0.0
	PainChance "Trample", 256
	damagetype "Melee"
	DeathHeight 4
	BurnHeight 4
	Monster
	+FLOORCLIP
	+SLIDESONWALLS
	+MISSILEMORE
	+CANPASS
	+DOHARMSPECIES
	Species "Zombies"
    Scale 0.98
	MaxStepHeight 24
	MaxDropOffHeight 32
    //BloodType "FBD_Blood", "FBD_SawBlood", "FBD_SawBlood"
	// legshot blood replaces the legboxes, gives the monster "HitLeg" tokens if hit below 25 from origin
	// but monster must check for it in all death states
	BloodType "FBD_LegshotBlood", "FBD_LegshotBloodSaw", "FBD_LegshotBloodSaw"
	SeeSound "grunt/sight"
	AttackSound "weapons/rifle"
	PainSound "grunt/pain"
	DeathSound "grunt/death"
	ActiveSound "grunt/active"
    damagefactor "Blood", 0.0 damagefactor "BlueBlood", 0.0 damagefactor "GreenBlood", 0.0
	DropItem "RifleDrop"
	//DropItem "GrenadeAmmo" 15
	Obituary "%o has been gunned down by a Zombie Soldier."
	damagefactor "Taunt", 1.0
	damagefactor "LowKick", 1.0
	damagefactor "Melee", 1.35
	damagefactor "Shotgun", 2.0
	+RANDOMIZE
	+THRUGHOST
	Tag "$RIFLEZOM" // "Rifle Zombie";
	DamageFactor "CauseSplash", 0.0 DamageFactor "CauseObjectsToSplashSlime", 0.0 DamageFactor "CauseObjectsToSplashNukage", 0.0
	DamageFactor "CauseObjectsToSplashBlood", 0.0 DamageFactor "CauseObjectsToSplashLava", 0.0
	
	//***Che
	PainChance "FriendlyExplosion", 256
	
	var int user_head_tid;
	var int user_head_rel;
	var int user_head_scale;
	var int user_head_xyzf; /* 
		a packed value: 
		bits 0..7 =x+128, clamped to -128..127
		bits 8..15 =y+128, clamped to -128..127
		bits 16..23 =z, clamped to 1..255
		bit 29 is a command to assume an unique TID, used in monster-on-monster headshotting
		A zero value is a command to terminate
	*/	
	var int user_head_type; 
	var int user_sleeping;
	var int user_item_no;
	var int user_serverside_sfchk;	
	
	PainChance "Argent", 255
	DamageFactor "Argent", 1.0
	
	PainChance "HardGrenade1", 255
	PainChance "HardGrenade2", 192
	PainChance "HardGrenade3", 128
	
	DamageFactor "FireInTheHole", 1.0 // AOE inflicted by grenades that fall to the ground
	PainChance "FireInTheHole", 170
	DamageFactor "HurrDurrMeHazGrenaed", 1.0 // AOE inflicted by imps who chatch a grenade
	PainChance "HurrDurrMeHazGrenaed", 255
	PainChance "PlummetAaah", 255 // bottomless pits in Chebskies-EDAY
	DamageFactor "PlummetAaah", 1.0	
	damagefactor "Killme", 1.0 // AOE inflicted by captured marines
	PainChance "Killme", 255
	
	damagefactor "Leg", 1.0 // subscribe to lift the default immunity
	
	PainChance "Ice", 255
	
	//***Che this damage type is now for subscribers only
	damagefactor "Stealth", 1.0
	PainChance "Stealth", 255	

	
	States
	{
		Pain.Ice:
			"----" A 20 A_Pain
			Goto See
		
		Pain.PlummetAaah:
			"----" A 0 A_PlaySound("zombieman/panic", CHAN_VOICE)
			"----" A 0 A_ChangeFlag("NOPAIN", 1) // prevent repeated activation by the trigger filling the bottomless pit
			Goto FallingAfterImpact
		Death.PlummetAaah:
			TNT1 A 0 A_StopSound(CHAN_VOICE)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("FBD_ThrowedZman", 0, 0, 0, CMF_AIMDIRECTION, -90)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // give the scripts and actors time to run and access us
			Stop				
		
		WaitTargetsFatalityOut:
			PSSS B 1 A_Jump(256, "FallBackContinue", "Panic", "Panic")
			Wait
		//***Che: look, ma, I taught zombies to catch grenades and toss them back!
		Pain.HardGrenade1:
			TNT1 A 0
			TNT1 A 0 A_JumpIfTargetInLOS("CatchGrenade1", 160, JLOSF_NOSIGHT) // from the front only
			Goto Pain
		Pain.HardGrenade2:
			TNT1 A 0
			TNT1 A 0 A_JumpIfTargetInLOS("CatchGrenade2", 160, JLOSF_NOSIGHT)
			Goto Pain
		Pain.HardGrenade3:
			TNT1 A 0
			TNT1 A 0 A_JumpIfTargetInLOS("CatchGrenade3", 160, JLOSF_NOSIGHT)
			Goto Pain			
		CatchGrenade1:
			TNT1 A 0
			//TNT1 A 0 A_ChangeFlag("NOPAIN", 1) // otherwise too much coding for interruptions
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveInventory("GrenadeTime", 1)
			TNT1 A 0 A_RadiusGive("GrenadeSomeoneHasCaughtYou", 64, RGF_OBJECTS | RGF_MISSILES | RGF_CUBE | RGF_NOSIGHT, 1) // only "dead" missiles that hit someone
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 1, 40)
			POSG A 16 A_PlaySound("grunt/sight", CHAN_VOICE)
			TNT1 A 0 A_SpawnItemEx("FragGrenadeExplosion",0,8,50, 0,0,0, 0,SXF_NOCHECKPOSITION) // whoopsydaisy
			TNT1 A 0 A_TakeInventory("GrenadeTime", 99)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			Goto SeeContinue // He won't have a chance to make a step. Because BOOM.
		CatchGrenade2:
			TNT1 A 0
			//TNT1 A 0 A_ChangeFlag("NOPAIN", 1) 
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveInventory("GrenadeTime", 2)
			TNT1 A 0 A_RadiusGive("GrenadeSomeoneHasCaughtYou", 64, RGF_OBJECTS | RGF_MISSILES | RGF_CUBE | RGF_NOSIGHT, 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 1, 40)
			POSG A 16 A_PlaySound("grunt/sight", CHAN_VOICE)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			TNT1 A 0 A_CustomMissile("EnemyGrenade1Time", 42, 0, angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, 5)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			POSG B 16 A_TakeInventory("GrenadeTime", 99) 
			Goto SeeContinue
		CatchGrenade3:
			TNT1 A 0
			//TNT1 A 0 A_ChangeFlag("NOPAIN", 1) 
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveInventory("GrenadeTime", 3)
			TNT1 A 0 A_RadiusGive("GrenadeSomeoneHasCaughtYou", 64, RGF_OBJECTS | RGF_MISSILES | RGF_CUBE | RGF_NOSIGHT, 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 1, 40)
			POSG A 16 A_PlaySound("grunt/sight", CHAN_VOICE)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_CustomMissile("EnemyGrenade2Time", 42, 0, angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, 5)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			POSG B 16 A_TakeInventory("GrenadeTime", 99) 
			Goto SeeContinue
			
		Pain.FriendlyExplosion:
			TNT1 A 0
			goto Pain.ExplosiveImpact
		
		Death.FriendlyExplosion:
			TNT1 A 0
			goto Death.ExplosiveImpact	
		
		PotPourriSwap:
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		PotPourriWait:			
			KYPP A 5 A_JumpIf(CallAcs("FBD_GetMapRandomizerReady"), 1) // a two-second delay to allow re-randomizing on loading an auto-save
			Loop
			TNT1 A 0 A_Jumpif(!CallAcs("GetPotPourriChance", 33), "PotPourriNoSwap")
			
			TNT1 A 0 A_ChangeFlag("SOLID", 0)
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_SpawnItemEx ("ZombiePotpourriSwapper",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | SXF_TRANSFERSPECIAL | SXF_CLEARCALLERSPECIAL | SXF_CLEARCALLERTID  ,0, tid)
			TNT1 A 30
			Stop
		PotPourriNoSwap:
			TNT1 A 0 A_ChangeFlag("SHOOTABLE", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 1)
			Goto PotPourriCancel			
	
		Spawn:
			PSSS B 0 NODELAY A_JumpIf(CallAcs("GetPotPourri"), "PotPourriSwap")
		PotPourriCancel:	
			TNT1 A 0 A_Jump(1, "ReplaceAxeman")
			//TNT1 A 0 A_JumpIfInventory("nonewenemies", 1, "Stand")			
			TNT1 A 0 A_Jump(140, "ReplacePistol")
		ReplaceCancel:	
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_RunMonster", 5) // 5 = default headbox
			"----" A 0 A_GiveInventory("TargetIsAFormerHuman", 1) //used by AOE DOT inflictors to reward players with soul ammo -- otherwise untraceable
			TNT1 A 0 A_GiveInventory("SKZombieman", 1)
			TNT1 A 0 A_GiveInventory("TypeZombieMan", 1)
			TNT1 A 0 A_GiveInventory("ZombieManAmmo", random(1,10))
			//TNT1 A 0 ACS_NamedExecuteAlways("BDCheckStuff")//Check if new monsters are disabled
			//TNT1 A 0 ACS_NamedExecuteAlways("BDCHeckClassicMonsters", 0, 0, 0, 0)//Check if Vanilla Mode is activated
			PSSS B 1
			Goto Stand
			
		ReplacePistol:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_SpawnItemEx ("FBD_PistolZombie",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERTRANSLATION | SXF_TRANSFERPOINTERS | SXF_TRANSFERSPECIAL | SXF_CLEARCALLERSPECIAL | SXF_CLEARCALLERTID  ,0, tid)
			Stop
/*			
		ReplaceRifle:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_SpawnItemEx ("FBD_RifleZombie",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERTRANSLATION | SXF_TRANSFERPOINTERS | SXF_TRANSFERSPECIAL | SXF_CLEARCALLERSPECIAL | SXF_CLEARCALLERTID  ,0, tid)
			Stop	
*/			
		ReplaceAxeman:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_SpawnItemEx ("FBD_Labguy",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERTRANSLATION | SXF_TRANSFERPOINTERS | SXF_TRANSFERSPECIAL | SXF_CLEARCALLERSPECIAL | SXF_CLEARCALLERTID  ,0, tid)
			Stop	
/* no vanilla in this FBD version		
		ReplaceVanilla:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_SpawnItemEx ("VanillaZombieman",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
			Stop	
*/   

		Stand:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(user_serverside_sfchk >= 4, "StandSfestExtreme") // extreme slaughtermap optimization
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 2, 0, 41)
			
			PSSS ABABAB 10 A_Look
			Loop
		
		StandSfestExtreme:
			PSSS AB 10 A_Look
			Loop
			
		Idle:			
			TNT1 A 0
			TNT1 A 0 A_ClearTarget
			TNT1 A 0 A_SetUserVar("user_sleeping", 1)			
			TNT1 A 0 A_TakeInventory("ZombiemanAmmo", 20)
			TNT1 A 0 A_GiveInventory("ZombieManAmmo", random(1,10))			
		SearchForPlayer:

			TNT1 A 0
			
			TNT1 A 0 A_JumpIfInventory("AbjectTerror", 1, "PanicContinue")
			
			TNT1 A 0 A_SetUserVar("user_sleeping", 1)
			

			TNT1 A 0 A_TakeInventory("EnemyMemory", 30)
			TNT1 A 0 A_GiveInventory("SKZombieMan", 1)

			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 2, 0, 41)
			PSSS A 10 A_Look

			PSSS B 10 A_Look

			PSSS A 10 A_Look

			PSSS C 10 A_Look
			PSSS A 10 A_Look

			PSSS D 10 A_Look

			PSSS A 10 A_Look
			
		StartSearching:	
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 7, 3, 43) 
			POSR A 2 A_Look
			TNT1 A 0 A_Wander
			POSR A 2 A_Look
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 4, 4, 43)
			TNT1 A 0 A_Wander
			POSR B 2 A_Look
			TNT1 A 0 A_Wander
			POSR B 2 A_Look

			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 6, 2, 43)
			TNT1 A 0 A_Wander
			POSR C 2 A_Look
			TNT1 A 0 A_Wander
			POSR C 2 A_Look


			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 8, 0, 43)
			TNT1 A 0 A_Wander
			POSR D 2 A_Look
			TNT1 A 0 A_Wander
			POSR D 2 A_Look
			TNT1 A 0 A_Wander
			
			
			TNT1 A 0 A_Jump(64, "SearchForPlayer") //Idle")
			Goto StartSearching
			
			
		FallBack:
			//***Che: target, not "any player" //TNT1 A 0 A_CheckSight("Advance")
			TNT1 A 0 A_JumpIfTargetinLOS(1)
			Goto Advance
			
			TNT1 A 0 A_JumpIfInventory("Enraged", 1, 5)
			TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAMiniBoss", 1, "Panic")
			TNT1 A 0 A_JumpIfInTargetInventory("TargetIsABoss", 1, "Panic")
			TNT1 A 0 A_JumpIfInTargetInventory("TargetIsAGreatTerribleBoss", 1, "Panic")
			TNT1 A 0 A_JumpIfInTargetInventory("GoFatality", 1, "WaitTargetsFatalityOut")
	
		FallBackContinue:	
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 1)
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 8, 0, 43)
			POSR D 2 A_FaceTarget
			POSR D 2 A_Recoil(4)
			TNT1 A 0 A_jump(64, "Missile")
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 6, 2, 43)
			POSR C 2 A_FaceTarget
			POSR C 2 A_Recoil(4)
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 4, 4, 43)
			POSR B 2 A_FaceTarget
			POSR B 2 A_Recoil(3)
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 7, 3, 43) 
			POSR A 2 A_FaceTarget
			POSR A 2 A_Recoil(3)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			GOto Missile
			
		See:
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 A_TakeInventory("EnemyMemory", 15)
			TNT1 A 0 A_CheckSight("SeeNeverSeen")
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			Goto SeeContinue
		
		SeeContinue:
			TNT1 A 0	
		
			// slaughtermap manage
			TNT1 A 0 A_JumpIf(!user_sleeping, 3) // forgo the expensive sight check if already awake
			TNT1 A 0 A_CheckSight(2) // do not consider ourselves awake if none of the players can see us
			TNT1 A 0 A_SetUserVar("user_sleeping", 0)
			TNT1 A 0 A_JumpIf(user_serverside_sfchk != -1, 3) // -1 means ACS commands us to do the radiusgive
			TNT1 A 0 A_RadiusGive("SfestCounterServerside", 500, RGF_MONSTERS | RGF_CUBE | RGF_NOSIGHT, 1)			
			TNT1 A 0 A_SetUserVar("user_serverside_sfchk", 1) // reply that we did the deed	
		
			TNT1 A 0 A_JumpIfInventory("AbjectTerror", 1, "PanicContinue")
		
			TNT1 A 0 A_JumpIfCloser(200, "FallBack")
			Advance:
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			//TNT1 A 0 A_SpawnItemEx("FootSep", 0, 0, 10, 0, 0)
			TNT1 A 0 A_JumpIfInventory("EnemyMemory", 15, "Idle")
			TNT1 A 0 A_GiveInventory("EnemyMemory", 1)
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 7, 3, 43) 
			POSR AAA 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 4, 4, 43)
			POSR BBB 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 6, 2, 43)
			POSR CCC 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 8, 0, 43)
			POSR DDD 2 A_Chase
			
			TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), "Idle")
			Loop
			
		SeeNeverSeen:
		Advance:
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 7, 3, 43) 
			POSR AA 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 4, 4, 43)
			POSR BB 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 6, 2, 43)
			POSR CC 2 A_Chase
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 8, 0, 43)
			POSR DD 2 A_Chase
			TNT1 A 0 A_CheckSIght("SeeNeverSeen")
			Goto SeeContinue	
			
		Pain.Taunt:
		Pain.KillMe:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 HealThing(1)
			TNT1 A 0 A_JumpIfInventory("Enraged", 1, "Missile")
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 0, 42)
			POSG B 0 A_Pain // a grenade throwing sprite, front only, makes him look like he is pointing at you
			TNT1 A 0 A_ChangeFlag("FASTER", 1)
			TNT1 A 0 A_ChangeFlag("MISSILEMORE", 1)
			TNT1 A 0 A_ChangeFlag("MISSILEEVENMORE", 1)
			TNT1 A 0 A_PlaySound("grunt/sight", CHAN_VOICE)
			POSG B 1 A_FaceTarget
			POSG B 15
			
			TNT1 A 0 A_GiveInventory("Enraged", 1)
			TNT1 A 0 A_PlaySound("grunt/sight", CHAN_WEAPON)
			Goto Missile
			
		Missile:
			TNT1 A 0 A_Stop
			
			// slaughtermap manage - warming the headbox up
			TNT1 A 0 A_JumpIf(!user_sleeping, 4) // forgo the expensive sight check if already awake
			TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, 2) // bypass the sight check 
			TNT1 A 0 A_CheckSight(2) // out of sight of any player, AND attacking another monster, keep slumbering
			TNT1 A 0 A_SetUserVar("user_sleeping", 0)			
			
			TNT1 A 0 A_ChangeFlag("GHOST", 0)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 A_TakeInventory("EnemyMemory", 10)
			
			TNT1 A 0 A_JumpIfInTargetInventory("IsLTGPlayer", 1, "LTGCheck")
		MissileContinueAfterLTGCheck:				
			
			//TNT1 A 0 A_Jump(8, "Grenade")
			
			//TNT1 A 0 A_TakeInventory("CantFire", 1)
			//TNT1 A 0 A_CustomMissile("MonsterTargetCheck", 34, 0, 0, 0) 
			//TNT1 A 0 A_CustomMissile("MonsterTargetCheckFaster", 34, 0, 0, 0) 


			//posr ef firing - x inconsistent, averaging; z inconsistent, using front
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -3, 1, 43)
			POSR E 10 A_FaceTarget
			
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 8 //A_FaceTarget
			
			TNT1 A 0 A_GiveInventory("ZombieManAmmo", 2)
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			POSR F 2 BRIGHT A_CustomMissile("ZombieManTracer", 32, 0, random(-2, 2)+ angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, random(-2, 2))
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 3 //A_FaceTarget
			
			TNT1 A 0 A_JumpIfCloser(500, 2)
			TNT1 A 0 A_Jump(200, 2)
			TNT1 A 0 A_JumpIfInTargetInventory("GoFatality", 1, "WaitTargetsFatalityOut")
			
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			POSR F 2 BRIGHT A_CustomMissile("ZombieManTracer", 32, 0, random(-2, 2)+ angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, random(-2, 2))
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 3 //A_FaceTarget

			
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			POSR F 2 BRIGHT A_CustomMissile("ZombieManTracer", 32, 0, random(-2, 2)+ angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, random(-2, 2))
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 3 //A_FaceTarget
			
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			POSR F 2 BRIGHT A_CustomMissile("ZombieManTracer", 32, 0, random(-2, 2)+ angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, random(-2, 2))
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 3 //A_FaceTarget
			
			TNT1 A 0 A_JumpIfCloser(500, 2)
			TNT1 A 0 A_Jump(200, 2)
			TNT1 A 0 A_JumpIfInTargetInventory("GoFatality", 1, "WaitTargetsFatalityOut")
			
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			POSR F 2 BRIGHT A_CustomMissile("ZombieManTracer", 32, 0, random(-2, 2)+ angle, CMF_ABSOLUTEANGLE | CMF_OFFSETPITCH | CMF_SAVEPITCH, random(-2, 2))
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 3 //A_FaceTarget
			
			
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSR E 6 //A_FaceTarget
			TNT1 A 0 A_JumpIfInventory("ZombieManAmmo", 20, "Reload")
			TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), "SearchForPlayer")
			Goto SeeContinue
			
/* //***Che: was never used, the call to this commented out
		Grenade:
			TNT1 A 0 A_Stop
			TNT1 A 0 A_ChangeFlag("GHOST", 0)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 A_TakeInventory("EnemyMemory", 10)
			
			TNT1 A 0 A_JumpIfCloser(500, 1)
			Goto Missile+6
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSG A 6 //A_FaceTarget
			TNT1 A 0 A_PLaySound ("GRNPIN")
			
				//***Che: do NOT adjust aim if target goes out of sight or is invisible
				TNT1 A 0 A_JumpIf(CallAcs("FBD_TargetIsInvisible"), 4)
				TNT1 A 0 A_JumpIfTargetInLOS(2)
				TNT1 A 0 A_Jump(256, 2)
				TNT1 A 0 A_FaceTarget
			
			POSG A 6 //A_FaceTarget
			POSG B 6 A_CustomMissile("ZombiemanGrenade", 42)
			Goto SeeContinue
*/			

		Reload:
			TNT1 A 0 A_TakeInventory("ZombieManAmmo", 20)

			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -3, 1, 43)
			POSR E 3
			POSR E 1 A_CustomMissile("EmptyClipSpawn", 38, 0, random(-11, 11), 0)
			TNT1 A 0 A_PlaySound("Reload")
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 0, 41)
			ID12 A 10

			ID12 A 10

			ID12 BC 10
			TNT1 A 0 A_PlaySound("CLIPIN")

			ID12 D 10
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 7, 3, 43) 
			POSR A 10
			Goto SeeContinue

	   //Currently unused. Used to make the enemy rolls left or right when hit by a rocket alert actor.
		Pain.Avoid:
			TNT1 A 0
			TNT1 A 0 HealThing(1)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Jump(256, "AvoidLeft", "AvoidRight")
			Goto AvoidLeft
		  
		AvoidLeft:
			POSR A 1 A_FaceTarget
			TNT1 A 0 ThrustThing(angle*256/360+192, 15, 0, 0)
			ZRO2 ABCDEFGH 3 A_FaceTarget
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -3, 1, 43, 1)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			Goto Missile
		AvoidRight:
			POSR A 1 A_FaceTarget
			TNT1 A 0 ThrustThing(angle*256/360+64, 15, 0, 0)
			ZRO1 ABCDEFGH 3 A_FaceTarget
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -3, 1, 43, 1)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			Goto Missile

	   //If the monster is hit by the "Killme" damage (which is "exploded" by the captured marine), automatically start firing at the target.
		Pain.KillMe:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 HealThing(1)
			Goto Missile
		//Emergency manuever in case the monster gets killed by an "alerter" actor	
		Death.KillMe:
		Death.Taunt:
		Death.Avoid:
		Death.HurrDurrMeHazGrenaed: // AOE inflicted by imps who chatch a grenade
		Death.FireInTheHole:

			
			//***Che: TRAVESTY! MAKES SEE RED!
			//TNT1 A 0
			//TNT1 A 0 A_ChangeFlag("SOLID", 0)
			//TNT1 A 0 A_SpawnItem("ZombieMan")
			//TNT1 A 0
			//Stop
			
			// the same as pain.taunt but fall dead afterwards
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 0, 42)
			POSG B 1 A_FaceTarget // a grenade throwing sprite, front only, makes him look like he is pointing at you
			POSR B 1 A_PlaySound("grunt/sight", CHAN_VOICE)
			POSR B 15
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			POSH HHHH 5 A_Pain // clutching at his face
			POS4 UUWWXY 4 // falling back (after kick fall sprites)
			TNT1 A 3 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			Stop			


		Pain.Cut:
		Pain.Saw:
			TNT1 A 0
			TNT1 A 0 A_Stop
		Pain:
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "PainLyingOnBack") //8)
			
			POSR G 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -9, -8, 44)
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			
			POSR G 3 A_Pain
			TNT1 A 0 A_Jump(196, "Missile")
			Goto SeeContinue
		PainLyingOnBack:	
			TNT1 AAAA 0
			TNT1 A 0 A_Pain
			TNT1 A 0 A_ChangeFlag("SPECTRAL", 0)
			TNT1 A 0 A_TAkeInventory("BarrelExpMeasure", 100)
			//flying on his back
			ID11 F 8 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			Goto GetUp+2
			
		Pain.Argent:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			
			//TNT1 A 0 A_ClearTarget
			TNT1 A 0 A_GiveInventory("Enraged", 1)
			TNT1 A 0 A_Pain
			TNT1 A 0 HealThing(15,60)
	
		
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "PainArgentLyingOnBack") //8)
			TNT1 A 0 ACS_NamedExecuteWithResult("DisplayArgentDischarge", 10, 40, 0)	
			
			POSR G 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -9, -8, 44)
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			
			POSR GGGG 8 A_Pain
			TNT1 A 0 A_Jump(64, "Missile")
			Goto SeeContinue
		PainArgentLyingOnBack:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DisplayArgentDischarge", 10, 15, 0)			
			TNT1 A 0 A_Pain
			TNT1 A 0 A_ChangeFlag("SPECTRAL", 0)
			TNT1 A 0 A_TAkeInventory("BarrelExpMeasure", 100)
			//flying on his back
			ID11 F 8 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			ID11 FFF 8 A_Pain
			Goto GetUp+2

		Pain.FireInTheHole: // shotgun guys dodge-roll when they see a live grenade. We panic.
		Pain.HurrDurrMeHazGrenaed: // AOE inflicted by imps who catch a grenade
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 HealThing(1)
		Panic:
			TNT1 A 0
			TNT1 A 0 A_GiveInventory("AbjectTerror", 4)
			TNT1 A 0 A_CheckFlag("FRIGHTENED", "PanicContinue")
			TNT1 A 0 A_ChangeFlag("FRIGHTENED", 1)
			TNT1 A 0 A_PlaySound("zombieman/panic", CHAN_VOICE)
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_SetAngle(angle + 180)
		PanicContinue:
			TNT1 A 0 A_TakeInventory("AbjectTerror", 1) // in the beginning, 
			  //in case it is interrupted by pain -- or falling into the Idle state because of having no target
			
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 0, 43)
			BRZ2 AAA 1 A_Chase("", "")
			BRZ2 BBBCCC 1 A_Wander
			BRZ2 A 1 A_Chase
			BRZ2 AABBBCCC 1 A_Wander
			BRZ2 A 1 A_Chase
			BRZ2 AABBBCCC 1 A_Wander
			
			TNT1 A 0 A_JumpIfInventory("AbjectTerror", 1, "PanicContinue")
		PanicEnd:
			TNT1 A 0 A_PlaySound("grunt/active", CHAN_VOICE)
			TNT1 A 0 A_ChangeFlag("FRIGHTENED", 0)
			Goto See
		Pain.Shrapnel:	
		Pain.Head:
		Pain.HeadPlasma:
		Pain.HeadStun:
		Pain.Decaptate:
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			
			//clutching at his face, front only
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 2, 45)
			POSH I 5 A_Pain
			TNT1 A 0 A_FaceTarget
			POSH J 40 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -5, 35)
			Goto SeeContinue
			
		Pain.LowKick:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_JumpIfInventory("IsDown", 1, "Death.LowKick")
			Goto Pain
			
		Death.LowKick:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_GiveToTarget("GoFatality", 1)
			TNT1 A 0 A_GiveToTarget("IsCurbstompingZombieman", 1)
			TNT1 A 3 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			Stop	
		
		Pain.Stealth:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_Pain
			TNT1 A 0 A_JumpIfInventory ("SKZombieman", 1, "GotoStealthKill")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "GroundExecution")
			Goto See
			
		GroundExecution:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("ExecuteDownedZombieman", 1)
			TNT1 A 0 A_GiveToTarget("GoSpecial", 1)
			TNT1 A 0 A_Die("Vanish")
			Stop
			
		Death.Vanish:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Pain.Melee:
		Pain.Fatality:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_JumpIfInventory ("SKZombieman", 1, "GotoStealthKill")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "PainWileDown") //8)
			
			POSR G 4 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -9, -8, 44)
			
			POSR G 4 A_Pain
			Goto SeeContinue
		PainWileDown:
			TNT1 A 0
			TNT1 A 0 A_Pain
			//ID11 FRRRQ 10
			//flying on his back, front only
			ID11 F 10 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			//sprawled on his  back, front only
			ID11 R 20 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			//sitting up, front only
			ID11 Q 10 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -4, 19)
			
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 A_TakeInventory("IsDown", 1)
			Goto SeeContinue
			
		GotoStealthKill:
			TNT1 A 1
			//TNT1 A 0 A_JumpIfInTargetInventory("PowerStrength", 1, "BecomeMeatShield")
			TNT1 A 0 A_Explode(100, 1, 1)
			TNT1 A 1
			Goto SeeContinue
			
		BecomeMeatShield:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("HasZManShield", 1)
			TNT1 A 0 A_GiveToTarget("GotMeatShield", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		Pain.ExtremePunches:
		Pain.ExplosiveImpact:
		Pain.Explosive:
		Pain.Bfg10k: //***Che changed damage type from extreme to custom
		
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_Pain
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "PainLyingOnBack")//"Pain")
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 A_GiveInventory("IsDown", 1)
			TNT1 A 0 ThrustThingZ(0,40,0,1)
			//POS4 UVWXY 5
			//falling backwards, front only
			POS4 U 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -5, 39)
			POS4 V 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 23)
			POS4 W 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 18)
			POS4 X 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			POS4 Y 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			Goto FallingAfterImpact
				
		Pain.Slide:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			TNT1 A 0 A_ChangeFlag("GHOST", 1)
			TNT1 A 0 A_ChangeFlag("THRUGHOST", 1)
			POS4 U 0 A_Pain

			TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 1)
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Pain")
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -5, 39)
			POS4 U 1 A_facetarget
			TNT1 A 0 ThrustThingZ(0,50,0,1)
			TNT1 A 0 A_FaceTarget
			POS4 U 3 
			TNT1 A 0 A_Recoil(-8)
			TNT1 A 0 A_GiveInventory("IsDown", 1)
			//POS4 UVWXY 3
			//falling backwards, front only
			POS4 U 3
			POS4 V 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 23)
			POS4 W 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 18)
			POS4 X 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			POS4 Y 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			
			TNT1 A 0 A_ChangeFlag("GHOST", 0)
			TNT1 A 0 A_ChangeFlag("THRUGHOST", 0)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			Goto FallingAfterImpact
			 
		Pain.Kick:
		Pain.Stomp:
		Pain.HeavyImpact:
		Pain.BlackHole:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
			TNT1 A 0 A_ChangeFlag("USESPECIAL", 1)
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -5, 39)
			POS4 U 0 A_Pain
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 1)
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Pain")
			TNT1 A 0 A_TakeInventory("SKZombieman", 1)
			POS4 U 1 A_facetarget
			TNT1 A 0 ThrustThingZ(0,30,0,1)
			TNT1 A 0 A_FaceTarget
			POS4 U 3 ThrustThing(angle*256/360+128, 10, 0, 0)
			TNT1 A 0 A_GiveInventory("IsDown", 1)

			//POS4 UVWXY 3
			//falling backwards, front only
			POS4 U 3
			POS4 V 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 23)
			POS4 W 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 18)
			POS4 X 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			POS4 Y 3 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			
			Goto FallingAfterImpact
			
		FallingAfterImpact:
			ID11 F 1 A_GiveInventory ("FallingHeight", 1)
			ID11 F 1 A_CheckFloor ("GetUp")
			NULL A 0 A_JumpIf (momz == 0, "GetUp")
			Loop
			
		GetUp:
			TNT1 A 0
			MARN A 0 A_SpawnItem("bdbodythud")
			TNT1 A 0 A_JumpIfInventory ("FallingHeight", 5, "FallingDie")
			TNT1 A 0 A_ChangeFlag("GHOST", 1)
			TNT1 A 0 A_ChangeFlag("THRUGHOST", 1)
			ID11 R 1 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			TNT1 A 0 A_TakeInventory("FallingHeight", 100)
			TNT1 A 0 A_Stop 
			
			ID11 RRRRRRRRRR 5 A_JumpIf(momz < 0, "FallingAfterImpact")
			TNT1 A 0 A_TakeInventory("IsDown", 1)
			TNT1 A 0 A_ChangeFlag("GHOST", 0)
			TNT1 A 0 A_ChangeFlag("THRUGHOST", 0)
			ID11 Q 10 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -4, 19)
			TNT1 A 0 A_ChangeFlag("FORCEXYBILLBOARD", 0)
			Goto SeeContinue
			
		Active:
			TNT1 A 0
			
			TNT1 A 0 A_GiveToTarget("ExecuteDownedZombieman", 1)
			TNT1 A 0 A_GiveToTarget("GoSpecial", 1)
			IZD4 M 0
			ID11 RRRRRR 2 A_JumpIfInTargetInventory("IsExecutingOnAir", 1, "FinishActive")
			TNT1 A 0 A_JumpIfInTargetInventory("ExecuteBashWall", 1, "FinishActive")
			TNT1 M 1
			TNT1 A 0 A_JumpIfInTargetInventory("ExecuteStompWall", 1, "GetUp")
		FinishActive:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_ChangeFlag("USESPECIAL", 0)
			Stop	
			 
		FallingDie:
			TNT1 A 0
			TNT1 A 0 A_Stop
			TNT1 A 0 A_CustomMissile("BodyCrash1", 10)
			Goto Getup+8
			
		Death.Fall:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBLocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			MARN A 0 A_SpawnItem("bdbodythud")
			TNT1 AAAA 0 A_CustomMissile ("XDeath1", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (50, 130))
			ID11 EF 2
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			//TNT1 A -1
			Stop

		Death.Melee:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Death.Down")
			TNT1 A 0 A_JumpIfInventory ("SKZombieMan", 1, "StealthKill")
			Goto Death.Kick
			
		Death.Kick:
		Death.BlackHole:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0 A_ChangeFLag("SLIDESONWALLS", 1)
			TNT1 A 0 ThrustThingZ(0,30,0,1)
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_Recoil (10)
			//POS4 UUVWXY 5
			//falling backwards, front only
			POS4 U 10 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, -5, 39)
			POS4 V 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 23)
			POS4 W 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 18)
			POS4 X 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 5)
			POS4 Y 5 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", -15, 0, 1)
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
			 
		StealthKill:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInTargetInventory("IsPlayer", 1, 1)
			Goto Death
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_GiveToTarget("GoFatality", 1)
			TNT1 A 0 A_GiveToTarget("GoSpecial", 1)
			TNT1 A 0 A_GiveToTarget("SKZombieMan", 1)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_Die("Stealthy")
			//TNT1 A 0 A_Fall
			TNT1 A 1
			Stop
		Death.Stealthy:
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		Death.Trample:	
		Death.Down:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			POSR I 0 A_Scream
			TNT1 A 0 A_Stop
			POSR J 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 2, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			ID11 F 12
			POSR K 3
			POSR L 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop

		Death.MonsterShotgunBullet:
		Death.Shotgun:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 			
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			POSR J 1 A_FaceTarget
			
			TNT1 A 0 A_SpawnItem("MuchBlood", 0, 40)
			TNT1 A 0 A_CustomMissile ("SuperWallRedBlood", 42, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 20))
			TNT1 A 0 A_Jump(42, "Death.Shotgunontheface")
			TNT1 A 0 A_JumpIfCloser(100, "Death.bLAST3")
			TNT1 A 0 A_JumpIfCloser(320, "Death.Shotgunontheface")
			Goto Death
			
		Death.Shotgunontheface:	
		Death.HeavyImpact:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Jump(24, "Death.ARm")
			TNT1 A 0 A_ChangeFlag("SLIDESONWALLS", 0)
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_Jump(160, "DeathShotgunFly")
		Death.Pierced:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_Stop
			TNT1 A 0 A_Pain
			POSR H 1 A_FaceTarget
			TNT1 A 0 A_Recoil(13)
			TNT1 A 0 ThrustThingZ(0,20,0,1)
			TNT1 A 0 A_Jump(96, "Death.Blast")
			TNT1 A 0 A_Jump(128, "DeathShotgunontheface2")
			TNT1 A 0 A_Scream
			TNT1 AA 0 A_CustomMissile ("XDeath1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			POS4 ABCD 4 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			POS4 EFGHIJ 4 A_JumpIf((MomY == 0), "DSFStop")
			Goto DSFStop+1
			
		DSFStop:
			TNT1 A 0 A_SpawnItem("Ploft3")
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_CustomMissile ("SuperWallRedBlood", 2, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 0))
			POS4 J 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManShotguntotheFace1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		DeathShotgunontheface2:	
			TNT1 AA 0 A_CustomMissile ("XDeath1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			POS4 KLMN 4 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			POS4 OPQRST 4 A_JumpIf((MomY == 0), "DSFStop2")
			Goto DSFStop2+1
			
		DSFStop2:
			TNT1 A 0 A_SpawnItem("Ploft3")
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_CustomMissile ("SuperWallRedBlood", 2, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 0))
			POS4 T 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManShotguntotheFace2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
			
		DeathShotgunFly:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			
			TNT1 AA 0 A_CustomMissile ("FBD_Bloodmist", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 A 0 A_ChangeFLag("SLIDESONWALLS", 0)
			TNT1 A 0 ThrustThingZ(0,30,0,1)
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_Recoil (6)
			POS4 Z 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_JumpIf((MomY == 0), "TakeASit")
			POS4 Z 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_JumpIf((MomY == 0), "TakeASit")
			POS4 [ 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_JumpIf((MomY == 0), "TakeASit")
			POS4 W 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			POS4 X 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			POS4 Y 5 A_CustomMissile ("Brutal_LiquidBlood3", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_SpawnItem("GrowingBloodPool")
			POSR L 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		TakeASit:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 6, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			POS4 U 5
			TNT1 A 0 A_SpawnItem("GrowingBloodPool")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan_Slumped", 10,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		Death.Shrapnel:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_JumpIfHealthLower(-50, 4)
			TNT1 A 0 A_SpawnItem("MuchBlood", 0, 32)
			TNT1 A 0 ThrustThingZ(0, 30, 0, 0)
			TNT1 A 0 A_Jump(128, "DeathMinorhead4", "DeathMinorHead1")
			Goto Death
			TNT1 AA 0
			TNT1 A 0 A_Jump(256, "Death.ExplosiveImpact", "Death.Leg")
			Goto Death

		Death:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Death.Down")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 AA 0 A_CustomMissile ("FBD_FlyingBlood", 7, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_Jump(32, "Death.Arm")
		Death.MinorLeg:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			//TNT1 A 0 A_Jump(48, "Death.Leg")
			TNT1 A 0 A_NoBlocking
			POSR Q 8 
			POSR I 5 A_Scream
			POSR J 5 
			POSR K 5
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			POSR L 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.Electric:				
			TNT1 A 0
			TNT1 A 0 A_SpawnItem("BarrelExplosionSmokeColumn")
			Goto Death.Minor				
			
		Death.Minor:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_JumP(180, "DeathMirror")
			Goto Death.Rare
		Death.Rare:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_FaceTarget
			12DG A 5 A_Scream
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			TNT1 A 0 A_CustomMissile ("ZombieManTracer", 24, 5, -20, 2, -20)
			12DG B 5 BRIGHT
			12DG CD 5
			TNT1 A 0 A_PlaySound("weapons/rifle")
			TNT1 A 0 A_CustomMissile("DistantFireSoundRifle", 32, 0, 0, 1, 0)
			TNT1 A 0 A_SpawnItem ("RifleCaseSpawn", 0, 30,0)
			TNT1 A 0 A_CustomMissile ("ZombieManTracer", 24, -5, 20, 2, 30)
			12DG E 5 BRIGHT
			TNT1 A 0 A_NoBlocking
			12DG FGHI 5 
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			12DG I 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManLikeInActionMovie",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		DeathMirror:
		
			POSR R 8 A_NoBlocking
			POSR M 5
			POSR N 5 A_Scream
			POSR O 5 
			POSR P 5
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			POSR P 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1F",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
			
		Death.EnvAcidShower:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			POSR R 3 A_NoBlocking
			POSR M 3
			POSR N 3 A_PlaySound("ZOMSCREA", CHAN_VOICE)
			POSR O 3 
			POSR P 3
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1F",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	

		Death.Arm:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			
			TNT1 AA 0 A_CustomMissile ("FBD_Bloodmist", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 A 0 A_Changeflag("NOBLOCKMONST", 1)
			TNT1 A 0 A_NoBlocking
			ZZD1 I 10 A_Scream
			TNT1 A 0 A_SpawnItemEx ("DyingZombiemanNoArm",0,0 , 0, velx, vely, velz,0,SXF_NOCHECKPOSITION | SXF_ABSOLUTEVELOCITY,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.ArmFly:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			
			TNT1 AA 0 A_CustomMissile ("FBD_Bloodmist", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			ZZD2 A 15 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx ("DyingZombiemanNoArm",0,0 , 0, velx, vely, velz,0,SXF_NOCHECKPOSITION | SXF_ABSOLUTEVELOCITY,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	


			
		Death.Leg:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			
			TNT1 A 0 A_JumpIfHealthLower(-300,"DoubleLegRemove")
			//TNT1 A 0 A_JumpIfHealthLower(-25, "LegRemove")
			TNT1 A 0 A_Jump(192, "LegRemove")
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			POSL MO 6
			POSR K 6
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			POSR L 0
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			//TNT1 A -1
			Stop
			
		DoubleLegRemove:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeathZombieLeg", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAA 0 A_CustomMissile ("Blood", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAA 0 A_CustomMissile ("XDeath2b", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 ThrustThingZ(0,10,0,1)
			POS8 ABC 3
			POS8 D 10
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			POS8 D 0
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoLegBoth",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		LegRemove:
			TNT1 A 0 A_CustomMissile ("Muchblood2", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_Jump(64, "LegRemoveRare")
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_Scream
			POS7 A 6
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_Jump(64, "LegRemoveRare")
			TNT1 A 0 A_SpawnItemEx ("ZombiemanGotHisLegBlowed",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		LegRemoveRare:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_SpawnItemEx ("ZombiemanSacilol",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
	   


		Death.Saw:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Jump(96, "Death.arm")
			Goto Death.Tear
		
		Death.cut:
		Death.HKFT:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			
			TNT1 A 0 A_Scream
			TNT1 O 0 A_NoBlocking
			POSR Q 8
			TNT1 A 0 A_CustomMissile ("MuchBlood2", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("RipZombieMan", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_LiquidBlood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			POSX AABCDE 9 A_CustomMissile ("Brutal_LiquidBlood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_SpawnItem ("FBD_DeadZombieMan_Half")
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			POSX EEEEEEEEEEEEEEEEEEEEEE 1 A_CustomMissile ("Brutal_LiquidBlood", 12, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			POSX E 0 
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			//TNT1 A -1
			Stop

		Death.SniperBullet:
		Death.Bullet792:
		Death.Minigun:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			//TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_JumpIfInventory ("IsDown", 1, "Death.Down")
			TNT1 A 0 A_Jump(64, "Death.Rare")
			TNT1 A 0 A_Jump(16, "Death.Saw")
			//TNT1 A 0 A_Jump(9, "Death.LegMassacre")
			TNT1 A 0 A_Jump(64, "Death")
		
		//***Che: dafug?
			//Goto Death.Minigun
		//Death.Minigun:
		//	TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_Scream
			TNT1 O 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx ("BrutalizedZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.LegMassacre:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_CustomMissile ("MuchBlood", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_SpawnItem ("ZombieLegOnFoot")
			POS7 B 1 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx ("BrutalizedZombieManLeg",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop

		Death.Tear:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_XScream
			TNT1 O 0 A_NoBlocking
			PP2X AA 8 A_CustomMissile ("Brutal_LiquidBlood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_CustomMissile ("MuchBlood2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("RipZombieman2", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			PP2X BBCD 8 A_CustomMissile ("Brutal_LiquidBlood2", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			PP2X EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_CustomMissile ("Brutal_LiquidBlood2", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			PP2X E 0
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan_TearedInHalf",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop


			 
		Death.Eat:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.LegMassacre") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality",1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.Fatality:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_SpawnItemEx("Clip", 0, 0, 40, 0, 0, 0, 0, 0, 128)
			//TNT1 A 0 A_SpawnItemEx("HealthPlusFatalityBonus", 0,0,20, random (-1, 1),random (-1, 1),8, 0, SXF_ABSOLUTEVELOCITY | SXF_NOCHECKPOSITION)
			//TNT1 A 0 A_SpawnItemEx("ArmorShardFatalityBonus", 0,0,20, random (-1, 1),random (-1, 1),8, 0, SXF_ABSOLUTEVELOCITY | SXF_NOCHECKPOSITION)
			TNT1 A 0 ACS_NamedExecuteAlways("DropFatalityBonuses", 0, 5, 5, 0) // 0, health, armor, 0 -- rounded down to nearest 2
			TNT1 A 0 A_Pain
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_JumpIfIntargetInventory("IsPlayer", 1, 1)
			Goto Death.Hammered
			TNT1 A 0 A_GiveToTarget("GoFatality", 1)
			TNT1 A 0 A_Jump(256,"Death.Fatality1", "Death.Fatality2", "Death.Fatality3", "Death.Fatality4", "Death.Fatality5")
			Goto Death.Fatality1
		
		Death.Fatality1:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // without at least 8 tics delay, the bonus drop script runs ownerless
			Stop
		Death.Fatality2:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality2", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // without at least 8 tics delay, the bonus drop script runs ownerless
			Stop
		Death.Fatality3:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality3", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // without at least 8 tics delay, the bonus drop script runs ownerless
			Stop
		Death.Fatality4:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality4", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // without at least 8 tics delay, the bonus drop script runs ownerless
			Stop
		Death.Fatality5:
			TNT1 A 0 A_Scream
			TNT1 A 0 A_GiveToTarget("ZombieManFatality5", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // without at least 8 tics delay, the bonus drop script runs ownerless
			Stop	
			
		Death.PussyGrab:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Pain
			TNT1 A 0 A_Chase("","")
			TNT1 A 0 A_Pain
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("GrabbedAZombieman", 1)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
			
		Death.HelperMarineFatallity:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 1 A_Pain
			TNT1 A 0 A_Chase("","")
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("ZombieManFatality3", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop		
			
		Death.BHFT:
		Death.RVFT:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 1 A_Pain
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_GiveToTarget("ZombieManFatality", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		HeadExploder:
			TNT1 A 0
			Goto Death.HeadExplode

		Death.Head:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			//TNT1 A 0 A_JumpIfInTargetInventory("HasPlasmaWeapon", 1, "Death.Plasma")
			//TNT1 A 0 A_JumpIfInTargetInventory("HasCutingWeapon", 1, "Death.Decaptate")
			TNT1 A 0 A_JumpIfInTargetInventory("FistsSelected",1, "DeathMinorhead2")
			TNT1 A 0 A_JumpIfHealthLower(-600, "Death.SSG")
			TNT1 A 0 A_JumpIfHealthLower(-400, "HeavyHead")
			TNT1 A 0 A_JumpIfHealthLower(-50, "Death.HeadExplode")
			TNT1 A 0 A_JumpIfInTargetInventory("RandomHeadExploder", 1, "HeadExploder")
		Death.HeadMinor:	
			TNT1 A 0 A_Jump (32, "DeathMinorhead2")
			TNT1 A 0 A_Jump (110, "DeathMinorhead4")
		DeathMinorHead1:	
			TNT1 A 0 A_Scream
			TNT1 A 0 A_FaceTarget
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 A 0 A_CustomMissile ("FBD_Bloodmist", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			POSH UUU 2 A_CustomMissile ("Brutal_LiquidBlood2", 45, 0, 90, 2, random (0, 60))
			POSH VVV 2 A_CustomMissile ("Brutal_LiquidBlood2", 40, 0, 120, 2, random (0, 60))
			TNT1 A 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_NoBlocking
			POSH WW 2 A_CustomMissile ("Brutal_LiquidBlood", 30, 0, 140, 2, random (0, 60))
			POSH XY 5
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieManMinorHead",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_CustomMissile ("ArterialBloodSPray", 10, -10, 45, 2, random (0, 60))
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		DeathMinorHead2:
			TNT1 A 0
			TNT1 A 0 A_StopSound(CHAN_VOICE)
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_JumpIfInTargetInventory("PowerStrength",1, "HeavyHead")
			TNT1 A 0 A_SpawnItemEx("DyingZombiemanLostTeeth",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
			
		DeathMinorHead4:
			TNT1 A 0
			TNT1 A 0 A_Pain
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_CustomMissile ("Brains4GreenHair", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 AAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 A 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_CustomMissile ("Brutal_LiquidBlood3", 50, 0, random (175, 185), 2, random (30, 40))
			12DG J 6
			TNT1 AA 0 A_CustomMissile ("FBD_Bloodmist", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			12DG KKKK 2 A_CustomMissile ("Brutal_LiquidBlood2", 50, 0, 45, 2, random (40, 60))
			12DG LLL 2 A_CustomMissile ("Brutal_LiquidBlood2", 50, -5, 45, 2, random (40, 60))
			
			TNT1 A 0 A_Scream
			12DG M 6 A_NoBlocking
			
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManFacingFrontMinorHead",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_CustomMissile ("ArterialBloodSPray", 10, -10, 45, 2, random (0, 60))
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_FaceTarget
			
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		//***Che:
		Death.HeadPlasma: // inflicted by headbox hit by plasma
			TNT1 A 0 
			TNT1 A 0 A_JumpIfHealthLower(-200, "Death.Plasma") //***Che: instead of the now defunct XDeath			

	//***Che:
		Death.Psionic:
		
		Death.HeadExplode:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_PlaySound("misc/xdeath4", CHAN_VOICE)
			TNT1 A 0 A_JumpIfInTargetInventory("HeavyStrikeUpward", 1, "HeavyHead")
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 40)
			ZMAD B 0 A_XScream
			
			ZMAD C 0 A_NoBlocking
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			
			TNT1 A 0 A_SpawnItemEx ("Zombiemanfallingbeheaded",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.Decaptate:
		Death.CCFT:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_PlaySound("misc/xdeath4", CHAN_VOICE)
			TNT1 A 0 A_JumpIfInTargetInventory("HeavyStrikeUpward", 1, "HeavyHead")
			TNT1 A 0 A_CustomMissile ("XDeathZombieManHeadBeheaded", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (50, 90))	
			ZMAD B 0 A_XScream
			
			ZMAD C 0 A_NoBlocking
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 AAA 0 A_CustomMissile ("BloodMistBig", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			ZZD6 A 6
			TNT1 A 0 A_SpawnItemEx ("Zombiemanfallingbeheaded",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			//ZMAD E 0
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
			
		
		Death.HeadStun:	
		HeavyHead:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			POSL G 1 A_Pain
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_PlaySound("misc/xdeath4", CHAN_VOICE)
			TNT1 A 0 A_FaceTarget
			TNT1 AAAAAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 A 0 A_CustomMissile ("XDeath2", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 A 0 A_CustomMissile ("XDeath3", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 A 0 A_Recoil(10)
			TNT1 A 0 ThrustThingZ(0,35,0,1)
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 40)
			ZMAD B 0 A_XScream
			
			ZMAD C 0 A_NoBlocking
			POSL GHIJK 6
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_CustomMissile ("ArterialBloodSPray", 10, -10, 45, 2, random (0, 60))
			POSL L -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
			
		Death.fire:
		Death.Flames:
		Death.Burn:
		Death.FallInLava:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_Scream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("BurningZombieMan", 0,0,7, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		  
		Death.Desintegrate:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("DesintegratingZombieman", 0,0,0, momx,momy,momz, 0,SXF_NOCHECKPOSITION | SXF_ABSOLUTEVELOCITY)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop			
		Death.Slime:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("MeltingZombieman", 0,0,0, momx,momy,momz, 0,SXF_NOCHECKPOSITION | SXF_ABSOLUTEVELOCITY)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop			
			
/*			
			TNT1 A 0 A_SpawnItem("DesintegratedHuman")
			TNT1 A 0 A_Stop
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TGIB ABCDEFGHIJKLMNOPQ 3
			TGIB Q -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
*/			
/*		
		Death.Slime:
			TNT1 A 0 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")		
			TNT1 A 0 A_PlaySound("burn", CHAN_VOICE)
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx ("DesintegratedHuman",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0,0)
			TNT1 A 0 A_Stop
			TGIB ABCDEFGHIJKLMNOPQ 3 A_CustomMissile ("NoxinantProjectileTrail", 40, 0, random (0, 360), 2, random (0, 160))
			TGIB Q -1
			Stop			
*/
		XDeath.Electric:		
		Death.Plasma: 
		Death.Plasma2:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Stop
			PBR1 A 6 A_XScream
			TNT1 AAAA 0 A_CustomMissile ("BluePlasmaFireNonStatic", 42, 0, random (0, 360), 2, random (0, 180))
			TNT1 AAA 0 A_CustomMissile ("Blood", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAAAA 0 A_CustomMissile ("SuperGoreMistSmall", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (10, 90))
			TNT1 AAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			PBR1 B 6 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx ("DetectFloorCraterSmall",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItem("BarrelExplosionSmokeColumn")
			TNT1 A 0 A_SpawnItemEx("TinyBurningPiece", random (-15, 15), random (-15, 15))
			TNT1 AA 0 A_SpawnItemEx("TinyBurningPiece2", random (-35, 35), random (-35, 35))
			TNT1 AA 0 A_SpawnItemEx("TinyBurningPiece3", random (-45, 45), random (-45, 35))
			PBR1 CCDD 3 A_CustomMissile ("BluePlasmaFireNonStatic", 32, 0, random (0, 360), 2, random (0, 180))
			PBR1 EEFF 3
			PBR1 GG 3
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			PBR1 H -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
		
		Death.SuperPlasma:
		Death.Bfg10k: //***Che changed damage type from extreme to custom
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			XBRN AA 2 BRIGHT A_SpawnItem("BlueFlare",0,43)
			TNT1 AAAA 0 A_CustomMissile ("FBD_Blood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			
			TNT1 A 0 A_CustomMissile ("XDeathBurnedArm", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedSkull", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))

			XBRN BB 2 BRIGHT A_SpawnItem("BlueFlare",0,43)
			TNT1 A 0 A_CustomMissile ("FBD_Blood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			XBRN CC 2 BRIGHT A_SpawnItem("BlueFlare",0,43)
			TNT1 AAAAA 0 A_CustomMissile ("PlasmaParticleX", 48, 0, random (0, 360), 2, random (0, 360))
			TNT1 AAA 0 A_CustomMissile ("BigPlasmaParticleX", 42, 0, random (0, 360), 2, random (0, 360))
			TNT1 A 0
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
			
			
		Death.GreenFire:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			TNT1 AAAA 0 A_CustomMissile ("FBD_Blood", 30, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			
			TNT1 A 0 A_CustomMissile ("XDeathBurnedArm", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedSkull", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathBurnedMeat3", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			
			EXPL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("GreenFlameTrails", 50, 0, random (0, 360), 2, random (0, 360))
			XBRN AAAA 2 BRIGHT A_SpawnItem("GreenFlare",0,43)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//***Che: ChebMaster's blunder of a lifetime: produces an invulnerable ghost! TNT1 A 2400 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			TNT1 A -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop


		Death.ExtremePunches:
		Death.DHFT:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			//TNT1 A 0 A_JumpIfInTargetInventory("HeavyStrikeRight", 1, "HeavyPunchRight")
			//TNT1 A 0 A_JumpIfInTargetInventory("HeavyStrikeLeft", 1, "HeavyPunchLeft") 
			//TNT1 A 0 A_JumpIfInTargetInventory("HeavyStrikeUpper", 1, "HeavyPunchUpper")
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_CustomMissile ("FBD_ExtremePunchedZMan", 8, 0, random (175, 185), 2, random (10, 20))
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			 
		HeavyPunchRight:
			TNT1 A 0
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 ThrustTHing(angle*256/360+64, 10, 0)
			Goto BlownAwayRight
			
		HeavyPunchLeft:
			TNT1 A 0
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 ThrustTHing(angle*256/360+192, 10, 0)
			Goto BlownAwayLeft
		
		Death.Blast:
		Death.Railgun:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_Jump(12, "Death.Arm")
			TNT1 A 0 A_Jump(128, "Death.Blast2")
			TNT1 A 0 A_Scream
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Xdeath3", 16, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("BloodMistBig", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			ZXZ1 A 6 A_Stop
			TNT1 A 0 A_SpawnItemEx("ZombiemanFallingHoleOnStomach",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		Death.Blast3:
			TNT1 A 0 A_NoBlocking	
		Death.Blast2:
			TNT1 A 0 A_XScream
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 42, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Xdeath3", 16, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("Xdeath2", 16, 0, random (130, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("BloodMistBig", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			ZXZ2 A 6 A_Stop
			TNT1 A 0 A_SpawnItemEx("ZombiemanFallingSplattered",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		Death.SSG:
		Death.Railgun:
			TNT1 A 0
			TNT1 A 0 A_JumpIfInventory("HitLeg", 3, "Death.LegMassacre") 
			TNT1 A 0 A_JumpIfInventory("HitLeg", 1, "Death.Leg") 
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_Stop
			ZZD1 E 1 A_Pain
			ZZD1 E 1 A_FaceTarget
			//TNT1 A 0 A_CustomMissile ("MeatDeath", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			//TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("XDeath2", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("XDeath3", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_SpawnItem("Muchblood2", 0, 40)
			
			//TNT1 AAA 0 bright A_CustomMissile ("SuperGoreSpawner", 35, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			//TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			//TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			//TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			//TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			//TNT1 AAA 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("XDeathArm1", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_CustomMissile ("XDeathZombieManHead", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			ZZD1 EEFFGH 6
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			ZZD1 H 0
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
		Death.SSGHead:
			ZZD1 E 1 A_Pain
			ZZD1 E 1 A_FaceTarget
			//TNT1 A 0 A_CustomMissile ("MeatDeath", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("XDeath1", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_CustomMissile ("XDeath3", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			
			TNT1 AAA 0 bright A_CustomMissile ("SuperGoreSpawner", 35, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 10)
			TNT1 AA 0 A_CustomMissile ("XDeathArm1", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 40))
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			ZZD1 EEFFGH 6
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			ZZD1 H 0
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		XDeath:
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_XScream
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_FaceTarget
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 42, 0, random (0, 290), 2, random (10, 60))
			TNT1 AAA 0 A_CustomMissile ("XDeath3", 42, 0, random (0, 290), 2, random (10, 60))
			TNT1 A 0 A_CustomMissile ("XDeath2", 42, 0, random (0, 190), CMF_AIMDIRECTION, random (10, 60))
			TNT1 A 0 A_CustomMissile ("XDeath4", 42, 0, random (0, 190), CMF_AIMDIRECTION, random (10, 60))
			TNT1 A 0 A_CustomMissile ("ZombieXDeath", 2, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			//***Che: ChebMaster's blunder of a lifetime: produces an invulnerable ghost! TNT1 A 2400 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0) 
			TNT1 A -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop

		 Death.Stomp:
			// if 15% random chance or the cyberdemon is below us, be catapulted violently
			TNT1 A 0 A_JumpIf(Random(0,100) < 15 || CallAcs("GetZDeltaToTarget") < - 32, "Death.ExtremePunches") 
			TNT1 A 0 A_Scream
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 A 0 A_NoBlocking
			POSR IJK 2
			TNT1 AA 0 A_SpawnItem("MeatDeathSmall")
			TNT1 AAA 0 bright A_CustomMissile ("SuperGoreSpawner", 5, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 180))
			TNT1 AAAA 0 bright A_CustomMissile ("XDeath1", 5, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 180))
			TNT1 AA 0 bright A_CustomMissile ("XDeath2b", 55, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 180))
			TNT1 AA 0 bright A_CustomMissile ("XDeath3b", 55, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 180))
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItem ("CrushedRemains")
			TNT1 A 1
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 1 A_XScream
			//***Che: ChebMaster's blunder of a lifetime: produces an invulnerable ghost! TNT1 A 2400 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			TNT1 A -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
		
		 Crush:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
			TNT1 AAAA 0 A_SpawnItemEx ("BodyRemovalThing",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
			TNT1 AAAAA 0 A_CustomMissile ("Brutal_FlyingBloodTrail8", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 360))
			TNT1 A 1 A_XScream
			TNT1 A -1 //***Che: Gibbed monsters -- ONLY the gibbed monsters -- may use this
			Stop
			
		Death.Hammered:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")

			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("XDeath1", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeath2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_CustomMissile ("Brains2", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains3", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains4GreenHair", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains5", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 46, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAAAAAAAAA 0 A_CustomMissile ("BrainBlood", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeath3", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AA 0 A_CustomMissile ("XDeath1", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAA 0 A_CustomMissile ("BloodMistLarge", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (20, 90))
			TNT1 A 0 ThrustThingZ(0,30,0,1)
			ID13 AB 5
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			ID13 CDEF 5 A_CheckFloor ("Dead.ExplosiveImpact")
			ID13 FFFFFFFFFF 5 A_CheckFloor ("Dead.ExplosiveImpact")
			//***Che: it was never executing down here!
			//TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			Goto Dead.ExplosiveImpact
		
		Death.FriendlyExplosion:
		Death.ExplosiveImpact:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")
	
			TNT1 A 0 A_ChangeFLag("NODROPOFF", 0)
			TNT1 A 0
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 0 ThrustThingZ(0,10,0,1)
			TNT1 A 0 A_FaceTarget
			TNT1 A 0 A_SpawnItemEx("MuchBlood2", 0, 0, 40)
			TNT1 A 1
			TNT1 A 0 A_JumpIf(angle < 180, "IsFacingNorth")
			TNT1 A 0 A_JumpIf(velx < 0, "BlownAwayRight")
			TNT1 A 0 A_JumpIf(velx > 0, "BlownAwayLeft")
			Goto XDeath
		IsFacingNorth:
			TNT1 A 0 A_JumpIf(velx > 0, "BlownAwayRight")
			TNT1 A 0 A_JumpIf(velx < 0, "BlownAwayLeft")
			Goto XDeath
			
		BlownAwayLeft:	
			TNT1 A 0
			TNT1 A 0 ThrustThingZ(0,15,0,1)
			TNT1 A 0 A_JumpIfHealthLower(-10, 2)
			TNT1 A 0 A_Jump(256, "LegRemove", "DoubleLegRemove")
			TNT1 AA 0
			TNT1 A 0 A_Jump(96, "Death.Landmine")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("XDeath2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_CustomMissile ("Brains2", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains3", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains4GreenHair", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains5", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAAAAAAAAAA 0 A_CustomMissile ("BrainBlood", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeath3", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 ThrustThingZ(0,10,0,1)
			TNT1 A 0 A_Xscream
			PXSX GHIJKLM 3
			TNT1 A 0 A_CheckFloor("Land8473")
			PXSX GHIJKLMGHIJKLM 5 A_CheckFloor("Land8473")
		Land8473:
			PXSX N 0
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SpawnItem("GrowingBloodPool")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManPXSXO",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		BlownAwayRight:
			TNT1 A 0
			TNT1 A 0 ThrustThingZ(0,15,0,1)
			TNT1 A 0 A_JumpIfHealthLower(-10, 2)
			Goto Death.ArmFly
			TNT1 A 0 A_Jump(96, "Death.Hammered")
			TNT1 AAA 0
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("XDeath1", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeath2", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_ChangeFlag("NOBLOCKMONST", 1)
			TNT1 A 0 A_CustomMissile ("Brains2", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains3", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains4GreenHair", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("Brains5", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPieceFast", random (45, 55), random (5, -5), random (170, 190), CMF_AIMDIRECTION, random (-10, 10))
			TNT1 AAAA 0 A_CustomMissile ("SmallBrainPiece", 50, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 35, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 ThrustThingZ(0,10,0,1)
			TNT1 A 0 A_XScream
			PXS2 GHIJKLM 3
			TNT1 A 0 A_CheckFloor("Land8472")
			PXS2 GHIJKLMGHIJKLM 5 A_CheckFloor("Land8472")
			Land8472:
			PXS2 N 0
			TNT1 A 0 A_Stop
			TNT1 A 0 A_SpawnItem("GrowingBloodPool")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManPXS2O",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
			
		Death.LandMine:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 32, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 A_CustomMissile ("GibHand", 42, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 160))
			TNT1 A 0 ThrustThingZ(0,25,0,1)
			ID13 A 1 A_Scream
			ID15 A 9
			ID15 BCD 9 A_CheckFloor("Dead.Landmine")
			ID15 DDDDD 9 A_CheckFloor("Dead.Landmine")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan_NoLeg",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Dead.ExplosiveImpact:
			TNT1 AAAA 0 A_SpawnItem ("Blood")
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItem ("Ploft")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManID13G",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Dead.Landmine:
			TNT1 AAAA 0 A_SpawnItem ("Blood")
			TNT1 A 0 A_SpawnItem ("GrowingBloodPool")
			TNT1 A 0 A_SpawnItem ("Ploft")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManID15E",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			//TNT1 A -1
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
			
		
		Death.Ice:
		Death.Freeze:
		Death.Frost:
			//TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
			//TNT1 A 0 A_ChangeFlag("SOLID", 0)
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")

			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("FrozenZombieman",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_GiveToTarget("SoulAmmo", 1)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
		Death.IOS_Frost:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_DropGrenade")

			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("PermafrostZombieman",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop

			
		Death.Massacre:
			Goto Death
		
		
		Raise:
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII") // should not have a headbox by now -- but what if?		
			TNT1 A 0 A_SpawnItemEx("StandaloneRezSfx",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			POSS K 5
			POSS JIH 5
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_CustomizeOnRez") // it runs OnRezMapScript
				// if the map prpvides one
			Goto See
			
		FallbackRaise: // we were put into this state by the superarchvile AOE raising, our height is hopelessly kaput and we have to spawn a substitute
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_ChangeFlag("COUNTKILL", 0)
			"----" A 0 A_ChangeFlag("SHOOTABLE", 0)
			// unlike other monsters, shotgun guys and zombies re-randomize on raising
			"----" A -1 ACS_NamedExecuteWithResult("FallbackRezMkII", 2000) // see _mob_list.xlsx
			Stop
			
		FallbackRezSuccess:
			TNT1 A 0 A_SpawnItemEx("StandaloneRezSfx",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30
			Stop			
			
		LTGCheckExtreme: // extreme outfits, 25% chance to treat the player as naked on each attack.
			TNT1 A 0 A_JumpIfCloser(400, 1)
			Goto MissileContinueAfterLTGCheck
			TNT1 A 0 A_JumpIfInTargetInventory("LTGExtreme", 1, 1)
			Goto MissileContinueAfterLTGCheck
			TNT1 A 0 A_Jump(64, "LTGCheckB")
			Goto MissileContinueAfterLTGCheck
		LTGCheck:
			TNT1 A 0 A_JumpIfInTargetInventory("IsDressed", 1, "LTGCheckExtreme")
		LTGCheckB:
			TNT1 A 0 A_JumpIfInventory("AlreadyPerformedLTGCatCall", 1, "LTGCheck2")
			
			TNT1 A 0 A_JumpIfCloser(600, 1)
			Goto MissileContinueAfterLTGCheck			
			
			TNT1 A 0 A_GiveInventory("AlreadyPerformedLTGCatCall", 1)
			TNT1 A 0 A_PlaySound("grunt/catcall", CHAN_VOICE)
			//TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 0, 1, 40)
			//POSG BBBBBB 15 A_FaceTarget // grenade throw frame 2, front only
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 2, 0, 41)
			PSSS ABABAB 15 A_FaceTarget // idle animation
			Goto See

		LTGCheck2:
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 2, 0, 41)
			TNT1 A 0 A_PlaySound("grunt/catcall", CHAN_VOICE)
			PSSS ABABAB 15 A_FaceTarget
			TNT1 A 0 A_JumpIfTargetInLOS("MissileContinueAfterLTGCheck")
			Goto See
			
	}
}

Actor ZombiemanRaisedByVile: FBD_RifleZombie {
	States {
		Spawn:
			TNT1 A 0 NODELAY A_ChangeFlag("NOPAIN", 1)
			
			TNT1 A 0 
			"----" A 0 A_GiveInventory("TargetIsAFormerHuman", 1) //used by AOE DOT inflictors to reward players with soul ammo -- otherwise untraceable
			POSS SRQPONMHG 3 //KJIH 8
							
			TNT1 A 0 A_Jump(140, "ReplacePistol")
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_RunMonster", 5) // 5 = default headbox	
			POSS G 7
			TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
			TNT1 A 0 ACS_NamedExecuteWithResult("FBD_CustomizeOnRez") // it runs OnRezMapScript
				// if the map prpvides one
			Goto See
		ReplacePistol:
			TNT1 A 0 A_ChangeFlag("THRUACTORS", 1)
			TNT1 A 0 A_ChangeFlag("COUNTKILL", 0)
			TNT1 A 0 A_SpawnItemEx ("PistolZombieRaisedByVile",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERTRANSLATION | SXF_TRANSFERPOINTERS | SXF_TRANSFERSPECIAL | SXF_CLEARCALLERSPECIAL | SXF_CLEARCALLERTID  ,0, tid)
			Stop			
	}
}

Actor RifleZombie_PP: FBD_RifleZombie
{
	States
	{
		PotPourriSwap:
			TNT1 A 0
			Goto PotPourriCancel		
	}
}

ACTOR FBD_ZombiemanTorso: FBD_CurbstompedMarine
{
    Radius 16 //***Che otherwise raising failures //12
    Height 12
    Scale 0.98
	damagefactor "Crush", 50.0
    damagefactor "Blood", 0.0
    damagefactor "Trample", 0.0
    States
    {
		//***Che
		Raise:
			// note: the frame letter of the "----" (keep previous) sprite is ignored
			"----" A 0
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_NoBlocking // the raising code deep in C++ makes it solid
			
			"----" A 0 A_JumpIf(!CallAcs("EnoughSpaceToRezNormally", 2000), "FallbackRaise") // on success, this script shifts its activator by rounding its x and y to integer
			// The vile had already copied his friendliness and target to this corpse.
			// A_SpawnItem(Ex) automatically copy friendliness
			//   and target, but only if both the spawner and the spawnee are monsters.
			"----" A 0 A_ChangeFlag("COUNTKILL", 0)
			"----" A 0 A_ChangeFlag("ISMONSTER", 1)
			"----" A 0 A_SpawnItemEx ("ZombiemanRaisedByVile",0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS | SXF_NOCHECKPOSITION)
			"----" A 1 A_Jump(256, "OnRezSfx")
			Wait //Zandronum client repeats the last frame while it waits for a status update from the server
			
		FallbackRaise:
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_ChangeFlag("SHOOTABLE", 0)
			//"----" A -1 ACS_NamedExecuteAlways("FallbackRez", 0, 6, 0, 0) // "ZombiemanRaisedByVile"
			"----" A -1 ACS_NamedExecuteWithResult("FallbackRezMkII", 2000) // see _mob_list.xlsx
			Stop
			
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			BLUD C 0 A_Recoil (3)
			BLUD C 0 ThrustThing (random(0,255),random(1,5))
			BLUD C 0 ThrustThingZ (0,random(0,50),random(0,1),0)
			TNT1 A 0 A_SetInvulnerable
			GORX A 10
			TNT1 A 0 A_UnSetInvulnerable
		Fly:
			GORX A 5 A_CheckFloor("Land")
			Loop
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			GORX A 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")
			GORX A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
			
			//Goto Dead
		
		LandOnLava: 
			TNT1 A 0
			TNT1 A 0 A_SpawnItem("CharredMeatsplosionIntoGoryAshes")
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop		
/*    
		Dead:
			GORX A 10
			Loop
*/			
		Crush:
			TNT1 AAAAAAAAAAAA 0 A_CustomMissile ("Brutal_FlyingBloodTrail8", 0, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 360))
			TNT1 A 0 A_PlaySound("misc/xdeath4")
			POSC A 5
			POSC A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
			
		Pain.Trample:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("floorslimy")
			TNT1 A 0 ThrustThingZ(0,25,1,1)
			TNT1 A 0 A_Jump(256, "Stay")//"Spawn")
			Wait		

    }
}

Actor AbstractSlumpedBodyWithHeadbox: FBD_ZombiemanTorso {	
	
	//***Che: switching to being a monster (required by headboxes),
	//	paying for that with inability to inherit progenitor's sfest status.
	//  have to run a sfest detection script

	
	//+ISMONSTER // required for a master-minion link used by sfest and bd22emul headboxes
	//upd: special headboxes (type 12) dont need this
	//+SOLID // headboxes monitor this to auto-terminate on death
	+NOTARGET // otherwise NPC marines attack it
	var int user_head_tid;
	var int user_head_rel;
	var int user_head_scale;
	var int user_head_xyzf; /* 
		a packed value: 
		bits 0..7 =x+128, clamped to -128..127
		bits 8..15 =y+128, clamped to -128..127
		bits 16..23 =z, clamped to 1..255
		bit 29 is a command to assume an unique TID, used in monster-on-monster headshotting
		A zero value is a command to terminate
	*/	
	var int user_head_type; // must set this to 12!
	var int user_sleeping;
	var int user_item_no;
	var int user_serverside_sfchk;
	
	
	DamageFactor "Head", 15.0 
	DamageFactor "HeadStun", 15.0 
	DamageFactor "HeadPlasma", 15.0

	
	States {
		Raise:
			Stop // the slumped corpses cannot be raiseable
		LandOnLava:
			TNT1 A 0
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_SpawnItemEx("CharredMeatsplosionIntoGoryAshes",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // give the scripts and actors time to run and access us
			Stop
	
	}
}


Actor FBD_DeadZombieMan1: FBD_CurbstompedMarine Replaces DeadZombieMan
{
	Scale 0.98
	States
	{
		//***Che
		Raise:
			// note: the frame letter of the "----" (keep previous) sprite is ignored
			"----" A 0
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_NoBlocking // the raising code deep in C++ makes it solid
			"----" A 0 A_JumpIf(!CallAcs("EnoughSpaceToRezNormally", 2000), "FallbackRaise") // on success, this script shifts its activator by rounding its x and y to integer
			// The vile had already copied his friendliness and target to this corpse.
			// A_SpawnItem(Ex) automatically copy friendliness
			//   and target, but only if both the spawner and the spawnee are monsters.
			"----" A 0 A_ChangeFlag("COUNTKILL", 0)
			"----" A 0 A_ChangeFlag("ISMONSTER", 1)
			"----" A 0 A_SpawnItemEx ("ZombiemanRaisedByVile",0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS | SXF_NOCHECKPOSITION)
			"----" A 1 A_Jump(256, "OnRezSfx")
			Wait //Zandronum client repeats the last frame while it waits for a status update from the server
			
		FallbackRaise:
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_ChangeFlag("SHOOTABLE", 0)
			//"----" A -1 ACS_NamedExecuteAlways("FallbackRez", 0, 6, 0, 0) // "ZombiemanRaisedByVile"
			"----" A -1 ACS_NamedExecuteWithResult("FallbackRezMkII", 2000) // see _mob_list.xlsx
			Stop
	
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSR L 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSR L 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			
			POSR L -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop

		LandOnLava: 
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx ("CharredMeatsplosionIntoGoryAshes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) 
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop				

		Death:
			TNT1 A 0
			TNT1 A 0 A_Jump(256, "Death1", "Death2")
		Death1:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 60))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoArm",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) 
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		Death2:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 60))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoLeg",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0) 
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	 
				
    }
}


Actor DesintegratingZombieman: FBD_DeadZombieMan1
{
	Health 300
	damagefactor "Desintegrate", 0.0
	States
	{
		Spawn:
			ID50 HIJKL 5 
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ID50 M 5 
			"----" A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			"----" A 0
			"----" A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			"----" A 0
			"----" A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ID50 N 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ID50 N -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
		Death:
		XDeath:
		Death.Stomp:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("SmalllMeatDeath", 0,0,10, 0,0,0, 0, SXF_NOCHECKPOSITION)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
	}
}


Actor MeltingZombieman: DesintegratingZombieman
{
	damagefactor "Desintegrate", 0.3
	damagefactor "Slime", 0.0
	States
	{
		Spawn:
			ID50 H 0 NODELAY ACS_NamedExecuteWithResult("MeltingImpSmoke")
			ID50 HIJKL 7 A_PlaySound("burn") 
			Goto Stay
	}
}


Actor FBD_DeadZombieMan1F: FBD_DeadZombieMan1
{
	States
    {
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSR P 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSR P 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POSR P -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
}
}

Actor FBD_DeadZombieMan_NoArm: FBD_ZombiemanTorso
{
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POS3 E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POS3 E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POS3 E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("RipGuts", 0, 10)
			TNT1 A 0 A_CustomMissile ("XDeathZombiemanHead", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_SpawnItem("MeatDeathSmall", 0, 10)
			TNT1 AA 0 A_CustomMissile ("XDeathZombieLeg", 6, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManPXSXO",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}
		


Actor FBD_DeadZombieMan_NoLeg: FBD_DeadZombieMan_NoArm
{
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POS7 D 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POS7 D 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POS7 D -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan_NoLegBoth",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItem("MuchBlood", 0, 10)
			TNT1 A 0 A_CustomMissile ("XDeathZombieLeg", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
    }
}
		 
		 
Actor FBD_DeadZombieMan_NoLegBoth: FBD_DeadZombieMan_NoArm
{
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POS8 D 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POS8 D 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POS8 D -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop    
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("RipZombieman", 0, 10)
			TNT1 A 3 A_SpawnItem("MeatDeathSmall", 0, 10)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
    }
}
		 



Actor FBD_DeadZombieMan_NoHead: FBD_DeadZombieMan1f
{
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSH F 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSH F 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")				
			POSH F -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
    }
}

Actor FBD_DeadZombieMan_NoHeadFront: FBD_DeadZombieMan_NoArm
{
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZMAD E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZMAD E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZMAD E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
			
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 60))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadNoArm",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}

Actor FBD_DeadZombieMan_Half: FBD_ZombiemanTorso
{
	Mass 1000 
	Health 300 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSX E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSX E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POSX E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop	
	}
}
		



ACTOR VeryFuckedUpBrutalizedZombiemanLeg: FBD_CurbstompedMarine
{
	Health 200 
	DamageFactor "ExplosiveImpact", 10.0
	States{ 
		//***Che
		Raise:
			// note: the frame letter of the "----" (keep previous) sprite is ignored
			"----" A 0
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_NoBlocking // the raising code deep in C++ makes it solid
			
			"----" A 0 A_JumpIf(!CallAcs("EnoughSpaceToRezNormally", 2000), "FallbackRaise") // on success, this script shifts its activator by rounding its x and y to integer
			// The vile had already copied his friendliness and target to this corpse.
			// A_SpawnItem(Ex) automatically copy friendliness
			//   and target, but only if both the spawner and the spawnee are monsters.
			"----" A 0 A_ChangeFlag("COUNTKILL", 0)
			"----" A 0 A_ChangeFlag("ISMONSTER", 1)
			"----" A 0 A_SpawnItemEx ("ZombiemanRaisedByVile",0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS | SXF_NOCHECKPOSITION)
			"----" A 1 A_Jump(256, "OnRezSfx")
			Wait //Zandronum client repeats the last frame while it waits for a status update from the server
			
		FallbackRaise:
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_ChangeFlag("SHOOTABLE", 0)
			//"----" A -1 ACS_NamedExecuteAlways("FallbackRez", 0, 6, 0, 0) // "ZombiemanRaisedByVile"
			"----" A -1 ACS_NamedExecuteWithResult("FallbackRezMkII", 2000) // see _mob_list.xlsx
			Stop
			
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ID13 G 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ID13 G 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ID13 G -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}
		  
ACTOR VeryFuckedUpBrutalizedZombiemanLeg2: VeryFuckedUpBrutalizedZombiemanLeg
{
	Health 300 
	States{
		Pain:
			TNT1 AAAA 0 A_CustomMissile ("Brutal_LiquidBlood2", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			Goto Spawn
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ID15 E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ID15 E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ID15 E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}

	   
ACTOR StompedZombieman: FBD_DeadZombieMan_NoHead
{
	Health 300 
	States{
		Pain:
			TNT1 AAAA 0 A_CustomMissile ("Brutal_LiquidBlood2", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			Goto Spawn
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			01CB F 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			01CB F 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			01CB F -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}
			  



Actor FBD_DeadZombieMan_NoArmFront: FBD_DeadZombieMan_NoArm
{
	States{	
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZZD3 D 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZZD3 D 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZZD3 D -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 10)
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadNoArm",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
			
	}
}	
		
		


ACTOR FBD_DeadZombieMan_NoHeadNoArm: FBD_ZombiemanTorso
{
	Health 200 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZZD3 H 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZZD3 H 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZZD3 H -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 2, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadNoArms",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}


		
ACTOR FBD_DeadZombieMan_NoHeadNoArms: FBD_ZombiemanTorso
{
	Health 200 
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZZD4 C 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZZD4 C 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZZD4 C -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
			
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_SpawnItem("MeatDeath")
			TNT1 AA 0 A_CustomMissile ("XDeathZombieLeg", 2, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			TNT1 A 0 A_SpawnItem ("RipGuts")
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}		
		
		
		
Actor FBD_DeadZombieMan_StomachExploded: FBD_DeadZombieMan_NoHeadFront
{
	States{	
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZXZ1 E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZXZ1 E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZXZ1 E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 10)
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadFront",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
	}
}	
		

Actor FBD_DeadZombieMan_Blasted: FBD_DeadZombieMan_NoHeadFront
{
	States{	
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZXZ2 E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZXZ2 E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")		
			ZXZ2 E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 60))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadNoArm",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		
	}
}			
		
Actor FBD_DeadZombieManFacingFront: FBD_DeadZombieMan_NoArmFront
{
	States
	{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			FPZ2 J 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			FPZ2 J 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			FPZ2 J -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
			
			
			
		Death:
			TNT1 A 0
			TNT1 A 0 A_Jump(256, "Death1", "Death2")
		Death1:
			TNT1 A 0 A_NoBlocking
			TNT1 AA 0 A_CustomMissile ("XDeath1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			TNT1 AAAA 0 A_CustomMissile ("BloodMistBig", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 60))
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoArmFront",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
		Death2:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 10)
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadFront",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}
		
Actor FBD_DeadZombieManFacingFrontMinorHead: FBD_DeadZombieManFacingFront
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			12DG N 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			12DG N 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			12DG N -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode", 0, 10)
			TNT1 A 0 A_SpawnItemEx ("FBD_DeadZombieMan_NoHeadFront",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
	}
}	
		
		
Actor FBD_DeadZombieManFatality5: FBD_DeadZombieManFacingFrontMinorHead
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			FRAA J 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			FRAA J 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			FRAA J -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop  
	}
}			
		
Actor FBD_DeadZombieManFatality3: FBD_ZombiemanTorso
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			FPZ3 S 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			FPZ3 S 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			FPZ3 S -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}		
		
Actor FBD_DeadZombieManShotguntotheFace1: FBD_DeadZombieMan1
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POS4 J 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POS4 J 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POS4 J -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("RipZombieman")
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}


Actor FBD_DeadZombieManShotguntotheFace2: FBD_DeadZombieMan1
{
	States{
		Spawn:
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POS4 T 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POS4 T 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POS4 T -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("RipZombieman")
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}


Actor FBD_DeadZombieManMinorHead: FBD_DeadZombieManShotguntotheFace1
{
	Health 300 
	States{
		Spawn:
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSH Z 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSH Z 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POSH Z -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}

		
Actor FBD_DeadZombieManLikeInActionMovie: FBD_DeadZombieMan1
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			12DG I 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			12DG I 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			12DG I -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("RipZombieman")
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft2",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop
	}
}
		

Actor FBD_DeadZombieManJustLegsAreLeft: FBD_ZombiemanTorso
{
	States
	{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			POSX E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			POSX E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			POSX E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop   
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 AA 0 A_CustomMissile ("XDeathZombieLeg", 2, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 90))
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}

		
		
Actor FBD_DeadZombieManJustLegsAreLeft2: FBD_DeadZombieManJustLegsAreLeft
{
	States
	{
		Spawn:
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ZZD1 H 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ZZD1 H 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ZZD1 H -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}	
		
		
Actor FBD_DeadZombieMan_TearedInHalf: FBD_ZombiemanTorso
{
	States{
	Spawn:
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			PP2X E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			PP2X E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			PP2X E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}
		
		
Actor FBD_DeadZombieMan_Slumped: AbstractSlumpedBodyWithHeadbox //FBD_ZombiemanTorso

// slumped corpses are not raiseable
//P.S. Generally yes, but xdeath is an exception because it leaves no further corpse

{
	Health 200
	Height 22
	Radius 6
	+NOBLOCKMONST
	States{
		Spawn:
			TNT1 A 0 NODELAY ACS_NamedExecuteWithResult("FBD_RunMonster", 12) // dying guy headbox
			TNT1 A 0 ACS_NamedExecuteWithResult("AdjustHeadboxMkII", 6, 0, 22, 1)
		SitSlumped:
			TNT1 A 0
			TNT1 A 0 A_Recoil(6)
			BR92 A 6
			TNT1 A 0 A_JumpIf(momx < 0, "LayDown")
			TNT1 A 0 A_JumpIf(momy < 0, "LayDown")
			TNT1 A 0 A_JumpIf(momx > 0, "LayDown")
			TNT1 A 0 A_JumpIf(momy > 0, "LayDown")
			//TNT1 A 0 A_SpawnItemEx("HeadshotTarget20", 0, 0, 22)
			
			//***Che
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava", 0, 0, 0, 0)
			BR92 A 16
			TNT1 A 0 A_JumpIfInventory("IsOverLava", 1, "LandOnLava")
			
			Loop 
		LayDown:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan1",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // give the scripts and actors time to run and access us
			Stop
		XDeath:
		Death.Explosives:
		Death.ExplosiveImpact:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_SpawnItemEx("ZombieXDeath",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0) // this is a gore spammer
			
			TNT1 A 0 A_ChangeFlag("CORPSE", 1) // the fallback rez script is powerful enough to work around us being too close to a wall
			TNT1 A 0 A_ChangeFlag("ISMONSTER", 0)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop	
		
		Death.Head:
		Death.HeadStun:
		Death.HeadPlasma:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 A 0 A_SpawnItemEx("ZombiemanHeadExplode", 6, 0, 22)
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieMan_Slumped_NoHead",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // give the scripts and actors time to run and access us
			Stop
			
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 ACS_NamedExecuteWithResult("DeleteHeadboxMkII")
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Xdeath3", 16, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("BloodMistBig", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 AA 0 A_CustomMissile ("XDeathArm1", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 A 0 A_SpawnItemEx("ZombiemanHeadExplode", 0, 0, 22)
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0) // give the scripts and actors time to run and access us
			Stop
		Raise:
			// note: the frame letter of the "----" (keep previous) sprite is ignored
			"----" A 0
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_NoBlocking // the raising code deep in C++ makes it solid
						
			"----" A 0 A_JumpIf(!CallAcs("EnoughSpaceToRezNormally", 2000), "FallbackRaise") // on success, this script shifts its activator by rounding its x and y to integer
			// The vile had already copied his friendliness and target to this corpse.
			// A_SpawnItem(Ex) automatically copy friendliness
			//   and target, but only if both the spawner and the spawnee are monsters.
			"----" A 0 A_ChangeFlag("COUNTKILL", 0)
			"----" A 0 A_ChangeFlag("ISMONSTER", 1)
			"----" A 0 A_SpawnItemEx ("ZombiemanRaisedByVile",0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS | SXF_NOCHECKPOSITION)
			"----" A 1 A_Jump(256, "OnRezSfx")
			Wait //Zandronum client repeats the last frame while it waits for a status update from the server
			
		FallbackRaise:
			"----" A 0 A_GiveInventory("RezzingNow")
			"----" A 0 A_ChangeFlag("CORPSE", 0)
			"----" A 0 A_ChangeFlag("SHOOTABLE", 0)
			//"----" A -1 ACS_NamedExecuteAlways("FallbackRez", 0, 6, 0, 0) // "ZombiemanRaisedByVile"
			"----" A -1 ACS_NamedExecuteWithResult("FallbackRezMkII", 2000) // see _mob_list.xlsx
			Stop			
	}
}
		
		
Actor FBD_DeadZombieMan_Slumped_NoHead: FBD_ZombiemanTorso //FBD_DeadZombieMan_Slumped
{
	+NOBLOCKMONST
	Height 22
	States 
	{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Sit:	
			BR92 B 70
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			BR92 B 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")
			Loop 
		LandOnLava: 
			TNT1 A 0
			TNT1 A 0 A_SpawnItem("CharredMeatsplosionIntoGoryAshes")
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop	
		XDeath:
		Death.Explosives:
		Death.ExplosiveImpact:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_SpawnItem("ZombieXDeath") // gore spammer, not a corpse
			
			TNT1 A 0 A_ChangeFlag("CORPSE", 1)
			TNT1 A 0 A_ChangeFlag("ISMONSTER", 0)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop	
		Death:
		//dEATH.hEAD:
			TNT1 A 0 A_NoBlocking
			TNT1 AAA 0 A_CustomMissile ("Guts", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("XDeath1", 32, 0, random (150, 210), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("Xdeath3", 16, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("FBD_FlyingBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAAA 0 A_CustomMissile ("Brutal_FlyingBloodMuchFaster", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AA 0 A_CustomMissile ("SuperWallRedBlood", 32, 0, random (170, 190), CMF_AIMDIRECTION, random (0, 40))
			TNT1 AAA 0 A_CustomMissile ("BloodMistBig", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 AA 0 A_CustomMissile ("XDeathArm1", 40, 0, random (0, 360), CMF_AIMDIRECTION, random (30, 90))
			TNT1 A 0 A_SpawnItemEx("FBD_DeadZombieManJustLegsAreLeft",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 30 A_ChangeFlag("CORPSE", 0)
			Stop	
	}
}
		
		
		

Actor FBD_DeadZombieManPXSXO: FBD_ZombiemanTorso
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			PXSX O 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			PXSX O 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			PXSX O -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 0 A_CustomMissile ("XDeath5", 12, 0, random (0, 360), CMF_AIMDIRECTION, random (10, 90))
			TNT1 A 0 A_CustomMissile ("XDeath6", 12, 0, random (0, 360), CMF_AIMDIRECTION, random (10, 90))
			TNT1 A 0 A_SpawnItem("MeatDeath")
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), CMF_AIMDIRECTION, random (0, 180))
			
			TNT1 A 0 A_ChangeFlag("CORPSE", 1)
			TNT1 A 0 A_ChangeFlag("ISMONSTER", 0)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}


Actor FBD_DeadZombieManPXS2O: FBD_ZombiemanTorso
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			PXS2 O 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			PXS2 O 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			PXS2 O -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
		
		Death:
			TNT1 A 0 A_NoBlocking
			TNT1 A 1 A_SpawnItem("GibsZ")
			TNT1 A 0 A_SpawnItem("MeatDeathSmall")
			TNT1 A 0 A_CustomMissile ("XDeathArm1", 15, 0, random (0, 360), 2, random (0, 180))
			TNT1 A 0 A_SpawnItem("ZombiemanHeadExplode")
			
			TNT1 A 0 A_ChangeFlag("CORPSE", 1)
			TNT1 A 0 A_ChangeFlag("ISMONSTER", 0)
			TNT1 A -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop
	}
}

Actor FBD_DeadZombieManID15E: FBD_ZombiemanTorso
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ID15 E 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ID15 E 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ID15 E -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
	}
}


Actor FBD_DeadZombieManID13G: FBD_ZombiemanTorso
{
	States{
		//***Che // this is a descendant of FBD_CurbstompedMarine, which is neither a missile nor a monster
		Spawn:
		Stay: // ancestor's Pain.Kick, Pain.ExplosiveImpact and Pain.Trample redirect here after z-thrusting the actor
			ID13 G 5 
			TNT1 A 0 A_CheckFloor("Slide")  // if this goes before the non-zero frame, we have an infinite loop!
			Loop
		Slide:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(momx != 0 || momy != 0, "Stay") // not until the actor stops sliding		
		Land:	
			TNT1 A 0
			TNT1 A 0 ACS_NamedExecuteAlways("FBD_CheckFloorIsLava_V", 0, 0, 0, 0) // also spawns smoke for 30 tics if succeeds
			ID13 G 30
			TNT1 A 0 A_JumpIf(user_floor_is_lava, "LandOnLava")	
			ID13 G -1 ACS_NamedExecuteAlways("RespawnCorpseAfter60sIfNightmare", 0, 0, 0, 0)
			Stop 
	}
}
		