Advertisement
Guest User

Untitled

a guest
Apr 28th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. local Medusa = RegisterMod("Medusa", 1)
  2. local Medusa_item = Isaac.GetItemIdByName("Head of Medusa")
  3.  
  4. List = {}
  5. function List.new ()
  6. return {first = 0, last = -1}
  7. end
  8.  
  9. function List.popleft (list)
  10. local first = list.first
  11. if first > list.last then error("list is empty") end
  12. local value = list[first]
  13. list[first] = nil
  14. list.first = first + 1
  15. return value
  16. end
  17.  
  18. function List.pushright (list, value)
  19. local last = list.last + 1
  20. list.last = last
  21. list[last] = value
  22. end
  23.  
  24. local activated = false
  25. local num_stone = 0
  26. local stoney_list = List.new()
  27.  
  28. function Medusa:use_Medusa()
  29. activated = true
  30. end
  31.  
  32. function Medusa:effect_Medusa()
  33. if activated then
  34. local player = Isaac.GetPlayer(0)
  35. local entities = Isaac.GetRoomEntities()
  36.  
  37. if Medusa:hasPlayerJustEnterARoom() and num_stone > 0 then
  38. num_stone = 0
  39. activated = false
  40. end
  41.  
  42. for i = 1, #entities do
  43. if (entities[i]:IsVulnerableEnemy() and entities[i]:IsBoss() == false) then
  44. local entity = entities[i]
  45. local pos = entity.Position
  46. local dist = pos:Distance(player.Position)
  47.  
  48. if dist <= 120 then
  49. entity:Remove()
  50. local stoney = Isaac.Spawn(EntityType.ENTITY_STONEY, 1, 1, pos, Vector(0, 0), player)
  51. List.pushright(stoney_list, stoney)
  52. if num_stone < 3 then
  53. num_stone = num_stone + 1
  54. else
  55. local remove = List.popleft(stoney_list)
  56. -- remove this reference!
  57. end
  58. end
  59. end
  60. end
  61. end
  62. end
  63.  
  64. function Medusa:hasPlayerJustEnterARoom()
  65. return Game():GetRoom():GetFrameCount() == 1
  66. end
  67.  
  68. Medusa:AddCallback(ModCallbacks.MC_USE_ITEM, Medusa.use_Medusa, Medusa_item)
  69. Medusa:AddCallback(ModCallbacks.MC_POST_UPDATE, Medusa.effect_Medusa)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement