Josh64

Better Bum Friend

Jun 17th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.41 KB | None | 0 0
  1. local Mod = RegisterMod("betterbumfriend", 1)
  2. local game = Game()
  3.  
  4. function Mod:onInit()
  5. local player = Isaac.GetPlayer(0);
  6. if game:GetFrameCount() == 1 then--
  7. -- spawn in if you want to
  8. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BLOODY_PENNY, Vector(350, 200), Vector(0,0), player)
  9. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_ROTTEN_PENNY, Vector(300, 250), Vector(0,0), player)
  10. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BUTT_PENNY, Vector(350, 150), Vector(0,0), player)
  11. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_FLAT_PENNY, Vector(250, 200), Vector(0,0), player)
  12. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_COUNTERFEIT_PENNY, Vector(350, 250), Vector(0,0), player)
  13. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BURNT_PENNY, Vector(250, 250), Vector(0,0), player)
  14. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BUM_FRIEND, Vector(300, 200), Vector(0,0), player)
  15. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 400), Vector(0,0), player)
  16. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 500), Vector(0,0), player)
  17. -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 600), Vector(0,0), player)
  18. end
  19. end
  20. Mod:AddCallback(ModCallbacks.MC_POST_PEFFECT_UPDATE, Mod.onInit)
  21.  
  22.  
  23.  
  24. function Mod:onPickup(Bum)
  25. local player = Isaac.GetPlayer(0)
  26. local entities = Isaac.GetRoomEntities()
  27. local rng = player:GetCollectibleRNG(CollectibleType.COLLECTIBLE_BUM_FRIEND)
  28. local roll = rng:RandomInt(100)
  29.  
  30.  
  31. if player:HasCollectible(CollectibleType.COLLECTIBLE_BUM_FRIEND) then
  32. -- we check all entities in the room
  33. for j = 1, #entities do
  34. -- collision detection
  35. if entities[j].Type == EntityType.ENTITY_PICKUP
  36. and (Bum.Position - entities[j].Position):Length() < Bum.Size + entities[j].Size
  37. then
  38. if entities[j]:GetSprite():IsPlaying("Collect")
  39. and entities[j]:GetData().Picked == nil then
  40. entities[j]:GetData().Picked = true
  41. -- pickup specific action
  42. if entities[j].Variant == PickupVariant.PICKUP_COIN then
  43. if entities[j].SubType == CoinSubType.COIN_PENNY then
  44. -- Penny Trinkets synergies
  45. if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
  46. or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
  47. if roll < 50 then
  48. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
  49. end
  50. end
  51. if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
  52. or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
  53. if roll < 50 then
  54. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
  55. end
  56. end
  57. if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
  58. or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
  59. if roll < 50 then
  60. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
  61. end
  62. end
  63. if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
  64. or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
  65. if roll < 50 then
  66. Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
  67. end
  68. end
  69. if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
  70. or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
  71. if roll < 50 then
  72. Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
  73. end
  74. end
  75. if player:GetTrinket(0) == TrinketType.TRINKET_COUNTERFEIT_PENNY
  76. or player:GetTrinket(1) == TrinketType.TRINKET_COUNTERFEIT_PENNY then
  77. if roll < 50 then
  78. player:AddCoins(1)
  79. end
  80. end
  81. end
  82. if entities[j].SubType == CoinSubType.COIN_NICKEL then
  83. -- Penny Trinkets synergies
  84. if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
  85. or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
  86. if roll < 75 then
  87. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
  88. end
  89. end
  90. if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
  91. or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
  92. if roll < 75 then
  93. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
  94. end
  95. end
  96. if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
  97. or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
  98. if roll < 75 then
  99. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
  100. end
  101. end
  102. if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
  103. or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
  104. if roll < 75 then
  105. Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
  106. end
  107. end
  108. if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
  109. or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
  110. Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
  111. end
  112. end
  113. if entities[j].SubType == CoinSubType.COIN_DIME then
  114. -- Penny Trinkets synergies
  115. if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
  116. or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
  117. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
  118. end
  119. if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
  120. or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
  121. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
  122. end
  123. if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
  124. or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
  125. Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
  126. end
  127. if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
  128. or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
  129. Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
  130. end
  131. if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
  132. or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
  133. Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
  134. end
  135. end
  136. if entities[j].SubType == CoinSubType.COIN_LUCKYPENNY then
  137. player.Luck = player.Luck + 1
  138. end
  139. end
  140. end
  141. end
  142. end
  143. end
  144. end
  145. Mod:AddCallback(ModCallbacks.MC_FAMILIAR_UPDATE, Mod.onPickup, FamiliarVariant.BUM_FRIEND)
Advertisement
Add Comment
Please, Sign In to add comment