Guest User

Untitled

a guest
Dec 24th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.30 KB | None | 0 0
  1. class RandomSpawnerSpacecheck : RandomSpawner
  2. {
  3. override Name ChooseSpawn()
  4. {
  5. for (int i = 0; i < 50; i++)
  6. {
  7. let chosen = Super.ChooseSpawn();
  8.  
  9. if (CanSpawn(chosen))
  10. {
  11. return chosen;
  12. }
  13. }
  14.  
  15. return 'None';
  16. }
  17.  
  18. private bool CanSpawn(Name what)
  19. {
  20. bool result = false;
  21. let probe = Spawn(what, Pos);
  22.  
  23. if (probe != null)
  24. {
  25. result = probe.TestMobjLocation();
  26.  
  27. // prevent the statistics counters from increasing
  28. probe.ClearCounters();
  29. probe.Destroy();
  30. }
  31.  
  32. return result;
  33. }
  34. }
  35.  
  36.  
  37.  
  38.  
  39. //////////////////////////////////////
  40. /////////////////////////////////////
  41. ////////////////////////////////////
  42.  
  43. ///// /////
  44. //// CVAR CHECKERS ////
  45. //// /////
  46.  
  47.  
  48. class CustomZombieman : RandomSpawnerSpacecheck replaces ZombieMan
  49. {
  50. override Name ChooseSpawn()
  51. {
  52. if (monsterspawns == 0) return 'PossessedSpawner';
  53. if (monsterspawns == 1) return 'LessZombiemen';
  54.  
  55. return 'None';
  56. }
  57. }
  58.  
  59. class CustomSergeant : RandomSpawnerSpacecheck replaces Shotgunguy
  60. {
  61. override Name ChooseSpawn()
  62. {
  63. if (monsterspawns == 0) return 'SergeantSpawner';
  64. if (monsterspawns == 1) return 'LessSergeants';
  65.  
  66. return 'None';
  67. }
  68. }
  69.  
  70. class CustomCommando : RandomSpawnerSpacecheck replaces Chaingunguy
  71. {
  72. override Name ChooseSpawn()
  73. {
  74. if (monsterspawns == 0) return 'CommandoSpawner';
  75. if (monsterspawns == 1) return 'LessCommandos';
  76.  
  77. return 'None';
  78. }
  79. }
  80.  
  81. ///// /////
  82. //// MONSTER SPAWNERS ////
  83. //// /////
  84.  
  85.  
  86. //// DEFAULT
  87.  
  88. class PossessedSpawner : RandomSpawnerSpacecheck
  89. {
  90. Default
  91. {
  92. DropItem 'RocketGuy', 1;
  93. DropItem 'Major', 2;
  94. DropItem 'RiotShieldGuy', 10;
  95. DropItem 'ChainsawZombie', 5;
  96. DropItem 'MinigunGuy', 5;
  97. DropItem 'RifleZombie', 232;
  98. }
  99.  
  100. override void PostSpawn (Actor spawned)
  101. {
  102. spawned.bThruActors = true;
  103. spawned.bCountKill = false;
  104.  
  105. // Synchronize the kill counter
  106. Level.total_monsters--;
  107. }
  108. }
  109.  
  110. //////
  111. class SergeantSpawner : RandomSpawnerSpacecheck
  112. {
  113. Default
  114. {
  115. DropItem 'SuperShotgunZombie', 3;
  116. DropItem 'Major', 3;
  117. DropItem 'PyroSergeant', 3;
  118. DropItem 'RiotShieldGuy', 15;
  119. DropItem 'ASGGuy', 10;
  120. DropItem 'Shotgunguy1', 232;
  121. }
  122.  
  123. override void PostSpawn (Actor spawned)
  124. {
  125. spawned.bThruActors = true;
  126. spawned.bCountKill = false;
  127.  
  128. Level.total_monsters--;
  129. }
  130. }
  131.  
  132. /////
  133. class CommandoSpawner : RandomSpawnerSpacecheck
  134. {
  135. Default
  136. {
  137. DropItem 'PyroSergeant', 3;
  138. DropItem 'RocketGuy', 5;
  139. Dropitem "XVSTEALTHZSPECOPS",4;
  140. Dropitem "ZSPECOPS",4;
  141. DropItem 'Major', 15;
  142. DropItem 'RiotShieldGuy', 15;
  143. DropItem 'PlasmaZombie', 10;
  144. DropItem 'RifleCommando', 25;
  145. DropItem 'Chaingunguy1', 232;
  146. }
  147.  
  148. override void PostSpawn (Actor spawned)
  149. {
  150. spawned.bThruActors = true;
  151. spawned.bCountKill = false;
  152.  
  153. Level.total_monsters--;
  154. }
  155. }
  156.  
  157. ////
  158. class ImpSpawner : RandomSpawnerSpacecheck replaces Doomimp
  159. {
  160. Default
  161. {
  162. DropItem 'NetherDarkImp', 2;
  163. DropItem 'VoidDarkImp', 2;
  164. Dropitem "NamiDarkImp", 8;
  165. Dropitem "DarkImp",25;
  166. DropItem 'Major', 15;
  167. DropItem 'Imp', 232;
  168. }
  169.  
  170. override void PostSpawn (Actor spawned)
  171. {
  172. spawned.bThruActors = true;
  173. spawned.bCountKill = false;
  174.  
  175. Level.total_monsters--;
  176. }
  177. }
  178.  
  179. //// LESS FORMER HUMANS
  180.  
  181. class LessZombiemen : RandomSpawnerSpacecheck
  182. {
  183. Default
  184. {
  185. DropItem 'Imp';
  186. DropItem 'PossessedSpawner';
  187. DropItem 'FleshSpawn';
  188. }
  189.  
  190. override void PostSpawn (Actor spawned)
  191. {
  192. spawned.bThruActors = true;
  193. spawned.bCountKill = false;
  194.  
  195. // Synchronize the kill counter
  196. Level.total_monsters--;
  197. }
  198. }
  199.  
  200. ////
  201. class LessSergeants : RandomSpawnerSpacecheck
  202. {
  203. Default
  204. {
  205. dropitem "SergeantSpawner";
  206. dropitem "SergeantSpawner";
  207. dropitem "FleshSpawn";
  208. dropitem "TehLostSoul";
  209. dropitem "BullDemon";
  210. dropitem "Impspawner";
  211. }
  212.  
  213. override void PostSpawn (Actor spawned)
  214. {
  215. spawned.bThruActors = true;
  216. spawned.bCountKill = false;
  217.  
  218. // Synchronize the kill counter
  219. Level.total_monsters--;
  220. }
  221. }
  222.  
  223. ////
  224. class LessCommandos : RandomSpawnerSpacecheck
  225. {
  226. Default
  227. {
  228. dropitem "CommandoSpawner";
  229. dropitem "CommandoSpawner";
  230. dropitem "DarkImp";
  231. dropitem "Impspawner";
  232. dropitem "Aracnorb";
  233. dropitem "BullDemon";
  234. }
  235.  
  236. override void PostSpawn (Actor spawned)
  237. {
  238. spawned.bThruActors = true;
  239. spawned.bCountKill = false;
  240.  
  241. // Synchronize the kill counter
  242. Level.total_monsters--;
  243. }
  244. }
  245.  
  246. //// TIERED RANDOMIZER
  247.  
  248.  
Advertisement
Add Comment
Please, Sign In to add comment