Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class RandomSpawnerSpacecheck : RandomSpawner
- {
- override Name ChooseSpawn()
- {
- for (int i = 0; i < 50; i++)
- {
- let chosen = Super.ChooseSpawn();
- if (CanSpawn(chosen))
- {
- return chosen;
- }
- }
- return 'None';
- }
- private bool CanSpawn(Name what)
- {
- bool result = false;
- let probe = Spawn(what, Pos);
- if (probe != null)
- {
- result = probe.TestMobjLocation();
- // prevent the statistics counters from increasing
- probe.ClearCounters();
- probe.Destroy();
- }
- return result;
- }
- }
- //////////////////////////////////////
- /////////////////////////////////////
- ////////////////////////////////////
- ///// /////
- //// CVAR CHECKERS ////
- //// /////
- class CustomZombieman : RandomSpawnerSpacecheck replaces ZombieMan
- {
- override Name ChooseSpawn()
- {
- if (monsterspawns == 0) return 'PossessedSpawner';
- if (monsterspawns == 1) return 'LessZombiemen';
- return 'None';
- }
- }
- class CustomSergeant : RandomSpawnerSpacecheck replaces Shotgunguy
- {
- override Name ChooseSpawn()
- {
- if (monsterspawns == 0) return 'SergeantSpawner';
- if (monsterspawns == 1) return 'LessSergeants';
- return 'None';
- }
- }
- class CustomCommando : RandomSpawnerSpacecheck replaces Chaingunguy
- {
- override Name ChooseSpawn()
- {
- if (monsterspawns == 0) return 'CommandoSpawner';
- if (monsterspawns == 1) return 'LessCommandos';
- return 'None';
- }
- }
- ///// /////
- //// MONSTER SPAWNERS ////
- //// /////
- //// DEFAULT
- class PossessedSpawner : RandomSpawnerSpacecheck
- {
- Default
- {
- DropItem 'RocketGuy', 1;
- DropItem 'Major', 2;
- DropItem 'RiotShieldGuy', 10;
- DropItem 'ChainsawZombie', 5;
- DropItem 'MinigunGuy', 5;
- DropItem 'RifleZombie', 232;
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- // Synchronize the kill counter
- Level.total_monsters--;
- }
- }
- //////
- class SergeantSpawner : RandomSpawnerSpacecheck
- {
- Default
- {
- DropItem 'SuperShotgunZombie', 3;
- DropItem 'Major', 3;
- DropItem 'PyroSergeant', 3;
- DropItem 'RiotShieldGuy', 15;
- DropItem 'ASGGuy', 10;
- DropItem 'Shotgunguy1', 232;
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- Level.total_monsters--;
- }
- }
- /////
- class CommandoSpawner : RandomSpawnerSpacecheck
- {
- Default
- {
- DropItem 'PyroSergeant', 3;
- DropItem 'RocketGuy', 5;
- Dropitem "XVSTEALTHZSPECOPS",4;
- Dropitem "ZSPECOPS",4;
- DropItem 'Major', 15;
- DropItem 'RiotShieldGuy', 15;
- DropItem 'PlasmaZombie', 10;
- DropItem 'RifleCommando', 25;
- DropItem 'Chaingunguy1', 232;
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- Level.total_monsters--;
- }
- }
- ////
- class ImpSpawner : RandomSpawnerSpacecheck replaces Doomimp
- {
- Default
- {
- DropItem 'NetherDarkImp', 2;
- DropItem 'VoidDarkImp', 2;
- Dropitem "NamiDarkImp", 8;
- Dropitem "DarkImp",25;
- DropItem 'Major', 15;
- DropItem 'Imp', 232;
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- Level.total_monsters--;
- }
- }
- //// LESS FORMER HUMANS
- class LessZombiemen : RandomSpawnerSpacecheck
- {
- Default
- {
- DropItem 'Imp';
- DropItem 'PossessedSpawner';
- DropItem 'FleshSpawn';
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- // Synchronize the kill counter
- Level.total_monsters--;
- }
- }
- ////
- class LessSergeants : RandomSpawnerSpacecheck
- {
- Default
- {
- dropitem "SergeantSpawner";
- dropitem "SergeantSpawner";
- dropitem "FleshSpawn";
- dropitem "TehLostSoul";
- dropitem "BullDemon";
- dropitem "Impspawner";
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- // Synchronize the kill counter
- Level.total_monsters--;
- }
- }
- ////
- class LessCommandos : RandomSpawnerSpacecheck
- {
- Default
- {
- dropitem "CommandoSpawner";
- dropitem "CommandoSpawner";
- dropitem "DarkImp";
- dropitem "Impspawner";
- dropitem "Aracnorb";
- dropitem "BullDemon";
- }
- override void PostSpawn (Actor spawned)
- {
- spawned.bThruActors = true;
- spawned.bCountKill = false;
- // Synchronize the kill counter
- Level.total_monsters--;
- }
- }
- //// TIERED RANDOMIZER
Advertisement
Add Comment
Please, Sign In to add comment