Josh64

Unique Hazards (GetStageType)

Jan 11th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.66 KB | None | 0 0
  1. local Spikes = RegisterMod("uniquehazards", 1)
  2. local game = Game()
  3.  
  4. local Mod = {}
  5.  
  6. function Mod:onInit(player)
  7.  
  8. if game:GetFrameCount() == 1 then
  9. -- spawn in if you want to
  10. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SAD_ONION, Vector(150, 400), Vector(0,0), player)
  11. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SPOON_BENDER, Vector(200, 400), Vector(0,0), player)
  12. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_MAXS_HEAD, Vector(250, 400), Vector(0,0), player)
  13. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_NUMBER_ONE, Vector(300, 400), Vector(0,0), player)
  14. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BLOOD_MARTYR, Vector(350, 400), Vector(0,0), player)
  15. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BROTHER_BOBBY, Vector(150, 250), Vector(0,0), player)
  16. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SKATOLE, Vector(200, 250), Vector(0,0), player)
  17. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_HALO_OF_FLIES, Vector(250, 250), Vector(0,0), player)
  18. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_ONE_UP, Vector(300, 250), Vector(0,0), player)
  19. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_MAGIC_MUSHROOM, Vector(350, 250), Vector(0,0), player)
  20. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_VIRUS, Vector(150, 100), Vector(0,0), player)
  21. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BIBLE, Vector(200, 100), Vector(0,0), player)
  22. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BOOK_OF_BELIAL, Vector(250, 100), Vector(0,0), player)
  23. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_NECRONOMICON, Vector(300, 100), Vector(0,0), player)
  24. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_D20, Vector(350, 100), Vector(0,0), player)
  25. end
  26. end
  27. Spikes:AddCallback(ModCallbacks.MC_POST_PEFFECT_UPDATE, Mod.onInit)
  28.  
  29. function Mod:onEntitySpawn(entity)
  30.  
  31. local level = game:GetLevel()
  32. local stage = level:GetStage()
  33. local stageType = level:GetStageType()
  34. local entities = Isaac.GetRoomEntities()
  35. local room = game:GetRoom()
  36. local backdrop = room:GetBackdropType()
  37. local sprite = entity:GetSprite()
  38. local data = entity:GetData()
  39.  
  40. local variant = Isaac.GetEntityVariantByName("Poky")
  41.  
  42. if entity.Type == EntityType.ENTITY_POKY
  43. and entity.Variant == variant then
  44.  
  45. -- check if the enemy already has the different sprite
  46. if data.Changed == nil then
  47. data.Changed = true
  48.  
  49. -- check the current stage
  50. if stage == LevelStage.STAGE1_1
  51. or stage == LevelStage.STAGE1_2 then
  52.  
  53. -- difference between Basement, Cellar, Burning Basement
  54. if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
  55. -- replace the sprite/spritesheet
  56. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_basement.png")
  57. sprite:LoadGraphics()
  58. elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
  59. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cellar.png")
  60. sprite:LoadGraphics()
  61. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
  62. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_burning.png")
  63. sprite:LoadGraphics()
  64. end
  65. elseif stage == LevelStage.STAGE2_1
  66. or stage == LevelStage.STAGE2_2 then
  67.  
  68. -- difference between Catacombs, Flooded Caves
  69. if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
  70. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_catacombs.png")
  71. sprite:LoadGraphics()
  72. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
  73. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_flooded.png")
  74. sprite:LoadGraphics()
  75. end
  76. elseif stage == LevelStage.STAGE3_1
  77. or stage == LevelStage.STAGE3_2 then
  78.  
  79. -- difference between Depths, Necropolis, Dank Depths
  80. if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
  81. -- replace the sprite/spritesheet
  82. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_depths.png")
  83. sprite:LoadGraphics()
  84. elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
  85. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_necropolis.png")
  86. sprite:LoadGraphics()
  87. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
  88. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_dank.png")
  89. sprite:LoadGraphics()
  90. end
  91. elseif stage == LevelStage.STAGE4_1
  92. or stage == LevelStage.STAGE4_2 then
  93.  
  94. -- difference between Womb, Utero and Scarred Womb
  95. if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
  96. -- replace the sprite/spritesheet
  97. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_womb.png")
  98. sprite:LoadGraphics()
  99. elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
  100. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_utero.png")
  101. sprite:LoadGraphics()
  102. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
  103. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_scarred.png")
  104. sprite:LoadGraphics()
  105. end
  106. elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
  107.  
  108. -- replace the sprite/spritesheet
  109. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  110. sprite:LoadGraphics()
  111.  
  112. elseif stage == LevelStage.STAGE5 then
  113.  
  114. -- difference between Sheol and Cathedral
  115. if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
  116. -- replace the sprite/spritesheet
  117. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_sheol.png")
  118. sprite:LoadGraphics()
  119. elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
  120. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cathedral.png")
  121. sprite:LoadGraphics()
  122. end
  123. elseif stage == LevelStage.STAGE6 then
  124.  
  125. -- difference between Dark Room and Chest
  126. if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
  127. -- replace the sprite/spritesheet
  128. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
  129. sprite:LoadGraphics()
  130. else -- Chest
  131. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_chest.png")
  132. sprite:LoadGraphics()
  133. end
  134. elseif stage == LevelStage.STAGE7 then --- Void
  135.  
  136. -- replace the sprite/spritesheet
  137. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  138. sprite:LoadGraphics()
  139. end
  140. end
  141. end
  142. end
  143. Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onEntitySpawn, EntityType.ENTITY_POKY)
  144.  
  145. function Mod:onWallHuggerSpawn(entity)
  146.  
  147. local level = game:GetLevel()
  148. local stage = level:GetStage()
  149. local stageType = level:GetStageType()
  150. local entities = Isaac.GetRoomEntities()
  151. local sprite = entity:GetSprite()
  152. local data = entity:GetData()
  153.  
  154. local variant = Isaac.GetEntityVariantByName("Wall Hugger")
  155.  
  156. if entity.Variant == variant then
  157. Isaac.ConsoleOutput("Hug Me")
  158.  
  159. -- check if the enemy already has the different sprite
  160. if data.Changed == nil then
  161. data.Changed = true
  162.  
  163. -- check the current stage
  164. if stage == LevelStage.STAGE1_1
  165. or stage == LevelStage.STAGE1_2 then
  166.  
  167. -- difference between Basement, Cellar, Burning Basement
  168. if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
  169. -- replace the sprite/spritesheet
  170. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_basement.png")
  171. sprite:LoadGraphics()
  172. elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
  173. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cellar.png")
  174. sprite:LoadGraphics()
  175. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
  176. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_burning.png")
  177. sprite:LoadGraphics()
  178. end
  179. elseif stage == LevelStage.STAGE2_1
  180. or stage == LevelStage.STAGE2_2 then
  181.  
  182. -- difference between Catacombs, Flooded Caves
  183. if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
  184. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_catacombs.png")
  185. sprite:LoadGraphics()
  186. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
  187. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_flooded.png")
  188. sprite:LoadGraphics()
  189. end
  190. elseif stage == LevelStage.STAGE3_1
  191. or stage == LevelStage.STAGE3_2 then
  192.  
  193. -- difference between Depths, Necropolis, Dank Depths
  194. if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
  195. -- replace the sprite/spritesheet
  196. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_depths.png")
  197. sprite:LoadGraphics()
  198. elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
  199. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_necropolis.png")
  200. sprite:LoadGraphics()
  201. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
  202. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_dank.png")
  203. sprite:LoadGraphics()
  204. end
  205. elseif stage == LevelStage.STAGE4_1
  206. or stage == LevelStage.STAGE4_2 then
  207.  
  208. -- difference between Womb, Utero and Scarred Womb
  209. if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
  210. -- replace the sprite/spritesheet
  211. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_womb.png")
  212. sprite:LoadGraphics()
  213. elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
  214. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_utero.png")
  215. sprite:LoadGraphics()
  216. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
  217. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_scarred.png")
  218. sprite:LoadGraphics()
  219. end
  220. elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
  221.  
  222. -- replace the sprite/spritesheet
  223. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
  224. sprite:LoadGraphics()
  225.  
  226. elseif stage == LevelStage.STAGE5 then
  227.  
  228. -- difference between Sheol and Cathedral
  229. if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
  230. -- replace the sprite/spritesheet
  231. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_sheol.png")
  232. sprite:LoadGraphics()
  233. elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
  234. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cathedral.png")
  235. sprite:LoadGraphics()
  236. end
  237. elseif stage == LevelStage.STAGE6 then
  238.  
  239. -- difference between Dark Room and Chest
  240. if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
  241. -- replace the sprite/spritesheet
  242. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_darkroom.png")
  243. sprite:LoadGraphics()
  244. else -- Chest
  245. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_chest.png")
  246. sprite:LoadGraphics()
  247. end
  248. elseif stage == LevelStage.STAGE7 then --- Void
  249.  
  250. -- replace the sprite/spritesheet
  251. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
  252. sprite:LoadGraphics()
  253. end
  254. end
  255. end
  256. end
  257. Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onWallHuggerSpawn, EntityType.ENTITY_WALL_HUGGER)
  258.  
  259. function Mod:onSlideSpawn(entity)
  260.  
  261. local level = game:GetLevel()
  262. local stage = level:GetStage()
  263. local stageType = level:GetStageType()
  264. local entities = Isaac.GetRoomEntities()
  265. local sprite = entity:GetSprite()
  266. local data = entity:GetData()
  267.  
  268. local variant = Isaac.GetEntityVariantByName("Slide")
  269.  
  270. if entity.Type == EntityType.ENTITY_POKY
  271. and entity.Variant == variant then
  272.  
  273. -- check if the enemy already has the different sprite
  274. if data.Changed == nil then
  275. data.Changed = true
  276.  
  277. -- check the current stage
  278. if stage == LevelStage.STAGE1_1
  279. or stage == LevelStage.STAGE1_2 then
  280.  
  281. -- difference between Basement, Cellar, Burning Basement
  282. if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
  283. -- replace the sprite/spritesheet
  284. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_basement.png")
  285. sprite:LoadGraphics()
  286. elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
  287. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_cellar.png")
  288. sprite:LoadGraphics()
  289. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
  290. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_burning.png")
  291. sprite:LoadGraphics()
  292. end
  293. elseif stage == LevelStage.STAGE2_1
  294. or stage == LevelStage.STAGE2_2 then
  295.  
  296. -- difference between Catacombs, Flooded Caves
  297. if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
  298. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_catacombs.png")
  299. sprite:LoadGraphics()
  300. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
  301. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_flooded.png")
  302. sprite:LoadGraphics()
  303. end
  304. elseif stage == LevelStage.STAGE3_1
  305. or stage == LevelStage.STAGE3_2 then
  306.  
  307. -- difference between Depths, Necropolis, Dank Depths
  308. if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
  309. -- replace the sprite/spritesheet
  310. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_depths.png")
  311. sprite:LoadGraphics()
  312. elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
  313. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_necropolis.png")
  314. sprite:LoadGraphics()
  315. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
  316. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_dank.png")
  317. sprite:LoadGraphics()
  318. end
  319. elseif stage == LevelStage.STAGE4_1
  320. or stage == LevelStage.STAGE4_2 then
  321.  
  322. -- difference between Womb, Utero and Scarred Womb
  323. if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
  324. -- replace the sprite/spritesheet
  325. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_womb.png")
  326. sprite:LoadGraphics()
  327. elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
  328. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_utero.png")
  329. sprite:LoadGraphics()
  330. elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
  331. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_scarred.png")
  332. sprite:LoadGraphics()
  333. end
  334. elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
  335.  
  336. -- replace the sprite/spritesheet
  337. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  338. sprite:LoadGraphics()
  339.  
  340. elseif stage == LevelStage.STAGE5 then
  341.  
  342. -- difference between Sheol and Cathedral
  343. if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
  344. -- replace the sprite/spritesheet
  345. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_sheol.png")
  346. sprite:LoadGraphics()
  347. elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
  348. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cathedral.png")
  349. sprite:LoadGraphics()
  350. end
  351. elseif stage == LevelStage.STAGE6 then
  352.  
  353. -- difference between Dark Room and Chest
  354. if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
  355. -- replace the sprite/spritesheet
  356. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
  357. sprite:LoadGraphics()
  358. else -- Chest
  359. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_chest.png")
  360. sprite:LoadGraphics()
  361. end
  362. elseif stage == LevelStage.STAGE7 then --- Void
  363.  
  364. -- replace the sprite/spritesheet
  365. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  366. sprite:LoadGraphics()
  367. end
  368. end
  369. end
  370. end
  371. Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onSlideSpawn, EntityType.ENTITY_POKY)
Add Comment
Please, Sign In to add comment