text: Actor ZombieManSpawner replaces ZombieMan
  {
  	+LOOKALLAROUND
  	States
  	{
  	Spawn:
  		TNT1 A 0
  		TNT1 A 0 A_SpawnItemEx("ZombieManPackSpawner",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		TNT1 A 1 ACS_NamedExecuteAlways("StarterPackDynamicProgressionFix",0)
  		TNT1 A 1 ACS_NamedExecuteAlways("SpawnerScript",0)
  	Deciding:
  		TNT1 A 1
  		loop
  	DiceRandom:
  		TNT1 A 0 A_RadiusGive("IsPlayingChaoticRandom", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	DiceMain:	// Default spawn preset with a slight difficulty curve. Tier 1-4 Monster presets are contained here to provide more variety.
  		EarlyLevelMob:
  			TNT1 A 0 A_Jump(1,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(6,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(8,"ScientistZombiePack")
  			TNT1 A 0 A_Jump(1,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(1,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(1,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(14,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(16,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(28,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(16,"HelmetZombieManPack")
  			GoTo NormalZombieManPack
  		LowLevelMob:
  			TNT1 A 0 A_Jump(2,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(6,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(8,"ScientistZombiePack")
  			TNT1 A 0 A_Jump(4,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(6,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(7,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(16,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(20,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(34,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(20,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		MidLevelMob:
  			TNT1 A 0 A_Jump(6,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(6,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(8,"ScientistZombiePack")
  			TNT1 A 0 A_Jump(18,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(45,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(51,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(18,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(24,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(28,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(24,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		HighLevelMob:
  			TNT1 A 0 A_Jump(7,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(8,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(22,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(56,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(56,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(20,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(26,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(26,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(26,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  	DiceProg:	// Progressive spawn preset enforces strict spawning rules by excluding monsters until they are presented in later levels.
  		DiceTier1:
  			TNT1 A 0 A_Jump(14,"ScientistZombiePack")
  			TNT1 A 0 A_Jump(100,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(16,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(28,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(16,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		DiceTier2:
  			TNT1 A 0 A_Jump(13,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(32,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(20,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(34,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(20,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		DiceTier3:
  			TNT1 A 0 A_Jump(6,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(13,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(35,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(45,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(51,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(32,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(24,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(28,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(24,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		DiceTier4:
  			TNT1 A 0 A_Jump(7,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(13,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(44,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(56,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(56,"CarbineZombiePack")
  			TNT1 A 0 A_Jump(32,"MixedZombieManPack")
  			TNT1 A 0 A_Jump(26,"HelmetPistolZombieManPack")
  			TNT1 A 0 A_Jump(26,"PistolZombieManPack")
  			TNT1 A 0 A_Jump(26,"HelmetZombieManPack")
  			Goto NormalZombieManPack
  		DiceDeathWish:
  			TNT1 A 0 A_Jump(7,"RifleCommandoPack")
  			TNT1 A 0 A_Jump(13,"ScientistZombiePack2")
  			TNT1 A 0 A_Jump(58,"PlasmaZombiePack")
  			TNT1 A 0 A_Jump(60,"MinigunZombiePack")
  			TNT1 A 0 A_Jump(62,"CarbineZombiePack")
  			Goto MixedZombieManPack			
  	MixedZombieManPack:		// This is where the pack tokens are distributed
  		TNT1 A 0 A_RadiusGive("IsMixedZombieManPack", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	RifleCommandoPack:
  		TNT1 A 0 A_RadiusGive("IsRifleCommando", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	PlasmaZombiePack:
  		TNT1 A 0 A_RadiusGive("IsPlasmaZombie", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	MinigunZombiePack:
  		TNT1 A 0 A_RadiusGive("IsMinigunZombie", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	CarbineZombiePack:
  		TNT1 A 0 A_RadiusGive("IsCarbineZombie", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	ScientistZombiePack:
  		TNT1 A 0 A_RadiusGive("IsScientistZombie", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	ScientistZombiePack2:
  		TNT1 A 0 A_RadiusGive("IsScientistZombie2", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	HelmetPistolZombieManPack:
  		TNT1 A 0 A_RadiusGive("IsHelmetPistolZombieMan", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	PistolZombieManPack:
  		TNT1 A 0 A_RadiusGive("IsPistolZombieMan", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	HelmetZombieManPack:
  		TNT1 A 0 A_RadiusGive("IsHelmetZombieMan", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	NormalZombieManPack:
  		ReplaceBrutalOnly:
  		ReplaceVanilla:
  		ReplaceTraditional:
  		TNT1 A 0 A_RadiusGive("IsNormalZombieMan", 290, RGF_GIVESELF | RGF_MONSTERS | RGF_ITEMS | RGF_NOSIGHT, 1)
  		Stop
  	}
  }
  
  Actor ZombieManPackSpawner : Demonpickup
  {
  	+LOOKALLAROUND
  	States
  	{
  	Spawn:
  		TNT1 A 3
  		TNT1 A 0 A_JumpIfInventory("IsPlayingChaoticRandom", 1, "RandomSpawn")	
  		TNT1 A 0 A_JumpIfInventory("IsRifleCommando", 1, "SpawnRifleCommando")
  		TNT1 A 0 A_JumpIfInventory("IsPlasmaZombie", 1, "SpawnPlasmaZombie")
  		TNT1 A 0 A_JumpIfInventory("IsMinigunZombie", 1, "SpawnMinigunZombie")
  		TNT1 A 0 A_JumpIfInventory("IsCarbineZombie", 1, "SpawnCarbineZombie")
  		TNT1 A 0 A_JumpIfInventory("IsScientistZombie2", 1, "SpawnScientistZombie2")
  		TNT1 A 0 A_JumpIfInventory("IsScientistZombie", 1, "SpawnScientistZombie")
  		TNT1 A 0 A_JumpIfInventory("IsMixedZombieManPack", 1, "SpawnMixedZombieman")
  		TNT1 A 0 A_JumpIfInventory("IsHelmetPistolZombieMan", 1, "SpawnHelmetPistolZombieMan")
  		TNT1 A 0 A_JumpIfInventory("IsPistolZombieMan", 1, "SpawnPistolZombieMan")
  		TNT1 A 0 A_JumpIfInventory("IsHelmetZombieMan", 1, "SpawnHelmetZombieMan")
  		TNT1 A 0 A_JumpIfInventory("IsNormalZombieMan", 1, "SpawnNormalZombieMan")
  		Loop
  	RandomSpawn:
  		TNT1 A 0 A_Jump(256, "SpawnScientistZombie2", "SpawnRifleCommando", "SpawnPlasmaZombie", "SpawnMinigunZombie", "SpawnCarbineZombie", "SpawnScientistZombie", "SpawnHelmetPistolZombieMan", "SpawnPistolZombieMan", "SpawnHelmetZombieMan", "SpawnNormalZombieMan")
  	SpawnMixedZombieman:
  		TNT1 A 0 A_Jump(256, "SpawnScientistZombie", "SpawnScientistZombie2", "SpawnHelmetPistolZombieMan", "SpawnPistolZombieMan", "SpawnHelmetZombieMan", "SpawnNormalZombieMan")
  		Stop
  	SpawnRifleCommando:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleRifleCommando",0)
  		TNT1 A 0 A_SpawnItemEx("RifleCommando",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnPlasmaZombie:
  		TNT1 A 1 ACS_NamedExecuteAlways("TogglePlasmaZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PlasmaZombie",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnMinigunZombie:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleMinigunZombie",0)
  		TNT1 A 0 A_SpawnItemEx("MinigunGuy",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnCarbineZombie:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleCarbineZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PB_CarbineZombieman",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnScientistZombie:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleScientistZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PB_ZombieScientist",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnScientistZombie2:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleScientistZombie",0)
  		TNT1 A 0 A_Jump(100, 2)
  		TNT1 A 0 A_SpawnItemEx("PB_ZombieScientist",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  		TNT1 A 0 A_SpawnItemEx("PB_ZombieScientistChainsaw",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnHelmetPistolZombieMan:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleHelmetZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PB_PistolZombieman2",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnPistolZombieMan:
  		TNT1 A 1 ACS_NamedExecuteAlways("TogglePistolZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PB_PistolZombieman1",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnHelmetZombieMan:
  		TNT1 A 1 ACS_NamedExecuteAlways("ToggleHelmetZombie",0)
  		TNT1 A 0 A_SpawnItemEx("PB_HelmetZombieman",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	SpawnNormalZombieMan:
  		ReplaceToggle:
  		TNT1 A 0 A_SpawnItemEx("PB_ZombieMan",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288,0,tid)
  		Stop
  	}
  }