Josh64

Unique Spikes Mod

Feb 20th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.52 KB | None | 0 0
  1. local Spikes = RegisterMod("uniquehazards", 1)
  2. local game = Game()
  3.  
  4. local Mod = {}
  5.  
  6. local revelation = {
  7. Floor = nil
  8. }
  9.  
  10. function Mod:onNewStage()
  11.  
  12. -- Revelations compatibility
  13. if StageAPI
  14. and REVEL
  15. and REVEL.STAGE
  16. and REVEL.STAGE.Tomb
  17. and REVEL.STAGE.Tomb:IsStage() then
  18. revelation.Floor = true
  19. end
  20. end
  21. Spikes:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, Mod.onNewStage)
  22.  
  23.  
  24. function Mod:onEntitySpawn(entity)
  25.  
  26. local room = game:GetRoom()
  27. local backdrop = room:GetBackdropType()
  28. local sprite = entity:GetSprite()
  29. local data = entity:GetData()
  30.  
  31. local variant = Isaac.GetEntityVariantByName("Poky")
  32. local variantTwo = Isaac.GetEntityVariantByName("Slide")
  33.  
  34.  
  35. if entity.Variant == variant then -- Poky
  36.  
  37. -- check if the enemy already has the different sprite
  38. if data.Changed == nil then
  39. data.Changed = true
  40.  
  41. -- check the current stage
  42. if backdrop == 1 then
  43. -- replace the sprite/spritesheet
  44. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_basement.png")
  45. sprite:LoadGraphics()
  46.  
  47. elseif backdrop == 2 then
  48. -- replace the sprite/spritesheet
  49. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cellar.png")
  50. sprite:LoadGraphics()
  51.  
  52. elseif backdrop == 3 then
  53. -- replace the sprite/spritesheet
  54. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_burning.png")
  55. sprite:LoadGraphics()
  56.  
  57.  
  58. elseif backdrop == 4 then
  59. -- replace the sprite/spritesheet
  60. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_caves.png")
  61. sprite:LoadGraphics()
  62.  
  63. elseif backdrop == 5 then
  64. if not (revelation.Floor == true) then -- Revelations compatiblity
  65. -- replace the spritesheet
  66. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_catacombs.png")
  67. sprite:LoadGraphics()
  68. end
  69.  
  70. elseif backdrop == 6 then
  71. -- replace the sprite/spritesheet
  72. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_flooded.png")
  73. sprite:LoadGraphics()
  74.  
  75. elseif backdrop == 7 then
  76. -- replace the sprite/spritesheet
  77. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_depths.png")
  78. sprite:LoadGraphics()
  79.  
  80. elseif backdrop == 8 then
  81. -- replace the sprite/spritesheet
  82. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_necropolis.png")
  83. sprite:LoadGraphics()
  84.  
  85. elseif backdrop == 9 then
  86. -- replace the sprite/spritesheet
  87. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_dank.png")
  88. sprite:LoadGraphics()
  89.  
  90. elseif backdrop == 10 then
  91. -- replace the sprite/spritesheet
  92. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_womb.png")
  93. sprite:LoadGraphics()
  94.  
  95. elseif backdrop == 11 then
  96. -- replace the sprite/spritesheet
  97. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_utero.png")
  98. sprite:LoadGraphics()
  99.  
  100. elseif backdrop == 12 then
  101. -- replace the sprite/spritesheet
  102. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_scarred.png")
  103. sprite:LoadGraphics()
  104.  
  105. elseif backdrop == 13 then
  106. -- replace the sprite/spritesheet
  107. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  108. sprite:LoadGraphics()
  109.  
  110. elseif backdrop == 14 then
  111. -- replace the sprite/spritesheet
  112. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_sheol.png")
  113. sprite:LoadGraphics()
  114.  
  115. elseif backdrop == 15 then
  116. -- replace the sprite/spritesheet
  117. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cathedral.png")
  118. sprite:LoadGraphics()
  119.  
  120. elseif backdrop == 16 then
  121. -- replace the sprite/spritesheet
  122. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
  123. sprite:LoadGraphics()
  124.  
  125. elseif backdrop == 17 then
  126. -- replace the sprite/spritesheet
  127. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_chest.png")
  128. sprite:LoadGraphics()
  129.  
  130. -- separate rooms
  131.  
  132. elseif backdrop == 18 then -- mega satan
  133. -- replace the sprite/spritesheet
  134. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
  135. sprite:LoadGraphics()
  136.  
  137. elseif backdrop == 19 then -- library
  138. -- replace the sprite/spritesheet
  139. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_shop.png")
  140. sprite:LoadGraphics()
  141.  
  142. elseif backdrop == 20 then -- shop
  143. -- replace the sprite/spritesheet
  144. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_shop.png")
  145. sprite:LoadGraphics()
  146.  
  147. elseif backdrop == 21 then -- isaac's room
  148. -- replace the sprite/spritesheet
  149. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_basement.png")
  150. sprite:LoadGraphics()
  151.  
  152. elseif backdrop == 22 then -- barren room
  153. -- replace the sprite/spritesheet
  154. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cellar.png")
  155. sprite:LoadGraphics()
  156.  
  157. elseif backdrop == 23 then -- secret room
  158. -- replace the sprite/spritesheet
  159. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_depths.png")
  160. sprite:LoadGraphics()
  161.  
  162. elseif backdrop == 24 then
  163. -- replace the sprite/spritesheet
  164. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_caves.png")
  165. sprite:LoadGraphics()
  166.  
  167. elseif backdrop == 25 then
  168. -- replace the sprite/spritesheet
  169. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_caves.png")
  170. sprite:LoadGraphics()
  171.  
  172. elseif backdrop == 26 then -- error room
  173. -- replace the sprite/spritesheet
  174. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_basement.png")
  175. sprite:LoadGraphics()
  176.  
  177. elseif backdrop == 27 then -- blue womb secret room
  178. -- replace the sprite/spritesheet
  179. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
  180. sprite:LoadGraphics()
  181.  
  182. elseif backdrop == 28 then -- ultra greed shop
  183. -- replace the sprite/spritesheet
  184. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_shop.png")
  185. sprite:LoadGraphics()
  186. end
  187. end
  188.  
  189. elseif entity.Variant == variantTwo then -- Slide
  190.  
  191. -- check if the enemy already has the different sprite
  192. if data.Changed == nil then
  193. data.Changed = true
  194.  
  195. -- check the current backdrop
  196. if backdrop == 1 then
  197. -- replace the sprite/spritesheet
  198. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_basement.png")
  199. sprite:LoadGraphics()
  200.  
  201. elseif backdrop == 2 then
  202. -- replace the sprite/spritesheet
  203. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_cellar.png")
  204. sprite:LoadGraphics()
  205.  
  206. elseif backdrop == 3 then
  207. -- replace the sprite/spritesheet
  208. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_burning.png")
  209. sprite:LoadGraphics()
  210.  
  211. elseif backdrop == 4 then
  212. -- replace the sprite/spritesheet
  213. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_caves.png")
  214. sprite:LoadGraphics()
  215.  
  216. elseif backdrop == 5 then
  217. if not (revelation.Floor == true) then -- Revelations compatiblity
  218. -- replace the spritesheet
  219. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_catacombs.png")
  220. sprite:LoadGraphics()
  221. end
  222.  
  223. elseif backdrop == 6 then
  224. -- replace the sprite/spritesheet
  225. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_flooded.png")
  226. sprite:LoadGraphics()
  227.  
  228. elseif backdrop == 7 then
  229. -- replace the sprite/spritesheet
  230. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_depths.png")
  231. sprite:LoadGraphics()
  232.  
  233. elseif backdrop == 8 then
  234. -- replace the sprite/spritesheet
  235. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_necropolis.png")
  236. sprite:LoadGraphics()
  237.  
  238. elseif backdrop == 9 then
  239. -- replace the sprite/spritesheet
  240. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_dank.png")
  241. sprite:LoadGraphics()
  242.  
  243. elseif backdrop == 10 then
  244. -- replace the sprite/spritesheet
  245. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_womb.png")
  246. sprite:LoadGraphics()
  247.  
  248. elseif backdrop == 11 then
  249. -- replace the sprite/spritesheet
  250. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_utero.png")
  251. sprite:LoadGraphics()
  252.  
  253. elseif backdrop == 12 then
  254. -- replace the sprite/spritesheet
  255. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_scarred.png")
  256. sprite:LoadGraphics()
  257.  
  258. elseif backdrop == 13 then
  259. -- replace the sprite/spritesheet
  260. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_bluewomb.png")
  261. sprite:LoadGraphics()
  262.  
  263. elseif backdrop == 14 then
  264. -- replace the sprite/spritesheet
  265. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_sheol.png")
  266. sprite:LoadGraphics()
  267.  
  268. elseif backdrop == 15 then
  269. -- replace the sprite/spritesheet
  270. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_cathedral.png")
  271. sprite:LoadGraphics()
  272.  
  273. elseif backdrop == 16 then
  274. -- replace the sprite/spritesheet
  275. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_darkroom.png")
  276. sprite:LoadGraphics()
  277.  
  278. elseif backdrop == 17 then
  279. -- replace the sprite/spritesheet
  280. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_chest.png")
  281. sprite:LoadGraphics()
  282.  
  283. -- separate rooms
  284.  
  285. elseif backdrop == 18 then -- mega satan
  286. -- replace the sprite/spritesheet
  287. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_darkroom.png")
  288. sprite:LoadGraphics()
  289.  
  290. elseif backdrop == 19 then -- library
  291. -- replace the sprite/spritesheet
  292. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_shop.png")
  293. sprite:LoadGraphics()
  294.  
  295. elseif backdrop == 20 then -- shop
  296. -- replace the sprite/spritesheet
  297. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_shop.png")
  298. sprite:LoadGraphics()
  299.  
  300. elseif backdrop == 21 then -- isaac's room
  301. -- replace the sprite/spritesheet
  302. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_basement.png")
  303. sprite:LoadGraphics()
  304.  
  305. elseif backdrop == 22 then -- barren room
  306. -- replace the sprite/spritesheet
  307. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_cellar.png")
  308. sprite:LoadGraphics()
  309.  
  310. elseif backdrop == 23 then -- secret room
  311. -- replace the sprite/spritesheet
  312. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_depths.png")
  313. sprite:LoadGraphics()
  314.  
  315. elseif backdrop == 24 then
  316. -- replace the sprite/spritesheet
  317. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_caves.png")
  318. sprite:LoadGraphics()
  319.  
  320. elseif backdrop == 25 then
  321. -- replace the sprite/spritesheet
  322. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_caves.png")
  323. sprite:LoadGraphics()
  324.  
  325. elseif backdrop == 26 then -- error room
  326. -- replace the sprite/spritesheet
  327. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_basement.png")
  328. sprite:LoadGraphics()
  329.  
  330. elseif backdrop == 27 then -- blue womb secret room
  331. -- replace the sprite/spritesheet
  332. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_bluewomb.png")
  333. sprite:LoadGraphics()
  334.  
  335. elseif backdrop == 28 then -- ultra greed shop
  336. -- replace the sprite/spritesheet
  337. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_shop.png")
  338. sprite:LoadGraphics()
  339. end
  340. end
  341. end
  342. end
  343. Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onEntitySpawn, EntityType.ENTITY_POKY)
  344.  
  345. function Mod:onWallHuggerSpawn(entity)
  346.  
  347. local level = game:GetLevel()
  348. local room = game:GetRoom()
  349. local backdrop = room:GetBackdropType()
  350. local sprite = entity:GetSprite()
  351. local data = entity:GetData()
  352.  
  353. local variant = Isaac.GetEntityVariantByName("Wall Hugger")
  354.  
  355. if entity.Variant == variant then
  356.  
  357. -- check if the enemy already has the different sprite
  358. if data.Changed == nil then
  359. data.Changed = true
  360.  
  361. -- check the current backdrop
  362. if backdrop == 1 then
  363. -- replace the sprite/spritesheet
  364. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_basement.png")
  365. sprite:LoadGraphics()
  366.  
  367. elseif backdrop == 2 then
  368. -- replace the sprite/spritesheet
  369. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cellar.png")
  370. sprite:LoadGraphics()
  371.  
  372. elseif backdrop == 3 then
  373. -- replace the sprite/spritesheet
  374. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_burning.png")
  375. sprite:LoadGraphics()
  376.  
  377. elseif backdrop == 4 then
  378. -- replace the sprite/spritesheet
  379. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_caves.png")
  380. sprite:LoadGraphics()
  381.  
  382. elseif backdrop == 5 then
  383. if not (revelation.Floor == true) then -- Revelations compatiblity
  384. -- replace the spritesheet
  385. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_catacombs.png")
  386. sprite:LoadGraphics()
  387. end
  388.  
  389. elseif backdrop == 6 then
  390. -- replace the sprite/spritesheet
  391. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_flooded.png")
  392. sprite:LoadGraphics()
  393.  
  394. elseif backdrop == 7 then
  395. -- replace the sprite/spritesheet
  396. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_depths.png")
  397. sprite:LoadGraphics()
  398.  
  399. elseif backdrop == 8 then
  400. -- replace the sprite/spritesheet
  401. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_necropolis.png")
  402. sprite:LoadGraphics()
  403.  
  404. elseif backdrop == 9 then
  405. -- replace the sprite/spritesheet
  406. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_dank.png")
  407. sprite:LoadGraphics()
  408.  
  409. elseif backdrop == 10 then
  410. -- replace the sprite/spritesheet
  411. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_womb.png")
  412. sprite:LoadGraphics()
  413.  
  414. elseif backdrop == 11 then
  415. -- replace the sprite/spritesheet
  416. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_utero.png")
  417. sprite:LoadGraphics()
  418.  
  419. elseif backdrop == 12 then
  420. -- replace the sprite/spritesheet
  421. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_scarred.png")
  422. sprite:LoadGraphics()
  423.  
  424. elseif backdrop == 13 then
  425. -- replace the sprite/spritesheet
  426. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
  427. sprite:LoadGraphics()
  428.  
  429. elseif backdrop == 14 then
  430. -- replace the sprite/spritesheet
  431. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_sheol.png")
  432. sprite:LoadGraphics()
  433.  
  434. elseif backdrop == 15 then
  435. -- replace the sprite/spritesheet
  436. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cathedral.png")
  437. sprite:LoadGraphics()
  438.  
  439. elseif backdrop == 16 then
  440. -- replace the sprite/spritesheet
  441. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_darkroom.png")
  442. sprite:LoadGraphics()
  443.  
  444. elseif backdrop == 17 then
  445. -- replace the sprite/spritesheet
  446. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_chest.png")
  447. sprite:LoadGraphics()
  448.  
  449. -- separate rooms
  450.  
  451. elseif backdrop == 18 then -- mega satan
  452. -- replace the sprite/spritesheet
  453. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_darkroom.png")
  454. sprite:LoadGraphics()
  455.  
  456. elseif backdrop == 19 then -- library
  457. -- replace the sprite/spritesheet
  458. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_shop.png")
  459. sprite:LoadGraphics()
  460.  
  461. elseif backdrop == 20 then -- shop
  462.  
  463. -- replace the sprite/spritesheet
  464. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_shop.png")
  465. sprite:LoadGraphics()
  466.  
  467. elseif backdrop == 21 then -- isaac's room
  468. -- replace the sprite/spritesheet
  469. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_basement.png")
  470. sprite:LoadGraphics()
  471.  
  472. elseif backdrop == 22 then -- barren room
  473. -- replace the sprite/spritesheet
  474. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cellar.png")
  475. sprite:LoadGraphics()
  476.  
  477. elseif backdrop == 23 then -- secret room
  478. -- replace the sprite/spritesheet
  479. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_depths.png")
  480. sprite:LoadGraphics()
  481.  
  482. elseif backdrop == 24 then
  483. -- replace the sprite/spritesheet
  484. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_caves.png")
  485. sprite:LoadGraphics()
  486.  
  487. elseif backdrop == 25 then
  488. -- replace the sprite/spritesheet
  489. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_caves.png")
  490. sprite:LoadGraphics()
  491.  
  492. elseif backdrop == 26 then -- error room
  493. -- replace the sprite/spritesheet
  494. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_basement.png")
  495. sprite:LoadGraphics()
  496.  
  497. elseif backdrop == 27 then -- blue womb secret room
  498. -- replace the sprite/spritesheet
  499. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
  500. sprite:LoadGraphics()
  501.  
  502. elseif backdrop == 28 then -- ultra greed shop
  503. -- replace the sprite/spritesheet
  504. sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_shop.png")
  505. sprite:LoadGraphics()
  506. end
  507. end
  508. end
  509. end
  510. Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onWallHuggerSpawn, EntityType.ENTITY_WALL_HUGGER)
Advertisement
Add Comment
Please, Sign In to add comment