Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Mod = RegisterMod("betterbumfriend", 1)
- local game = Game()
- function Mod:onInit()
- local player = Isaac.GetPlayer(0);
- if game:GetFrameCount() == 1 then--
- -- spawn in if you want to
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BLOODY_PENNY, Vector(350, 200), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_ROTTEN_PENNY, Vector(300, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BUTT_PENNY, Vector(350, 150), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_FLAT_PENNY, Vector(250, 200), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_COUNTERFEIT_PENNY, Vector(350, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_TRINKET, TrinketType.TRINKET_BURNT_PENNY, Vector(250, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BUM_FRIEND, Vector(300, 200), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 500), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_PAGEANT_BOY, Vector(550, 600), Vector(0,0), player)
- end
- end
- Mod:AddCallback(ModCallbacks.MC_POST_PEFFECT_UPDATE, Mod.onInit)
- function Mod:onPickup(Bum)
- local player = Isaac.GetPlayer(0)
- local entities = Isaac.GetRoomEntities()
- local rng = player:GetCollectibleRNG(CollectibleType.COLLECTIBLE_BUM_FRIEND)
- local roll = rng:RandomInt(100)
- if player:HasCollectible(CollectibleType.COLLECTIBLE_BUM_FRIEND) then
- -- we check all entities in the room
- for j = 1, #entities do
- -- collision detection
- if entities[j].Type == EntityType.ENTITY_PICKUP
- and (Bum.Position - entities[j].Position):Length() < Bum.Size + entities[j].Size
- then
- if entities[j]:GetSprite():IsPlaying("Collect")
- and entities[j]:GetData().Picked == nil then
- entities[j]:GetData().Picked = true
- -- pickup specific action
- if entities[j].Variant == PickupVariant.PICKUP_COIN then
- if entities[j].SubType == CoinSubType.COIN_PENNY then
- -- Penny Trinkets synergies
- if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
- if roll < 50 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
- if roll < 50 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
- if roll < 50 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
- if roll < 50 then
- Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
- if roll < 50 then
- Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_COUNTERFEIT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_COUNTERFEIT_PENNY then
- if roll < 50 then
- player:AddCoins(1)
- end
- end
- end
- if entities[j].SubType == CoinSubType.COIN_NICKEL then
- -- Penny Trinkets synergies
- if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
- if roll < 75 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
- if roll < 75 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
- if roll < 75 then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
- if roll < 75 then
- Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
- end
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
- Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if entities[j].SubType == CoinSubType.COIN_DIME then
- -- Penny Trinkets synergies
- if player:GetTrinket(0) == TrinketType.TRINKET_BLOODY_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BLOODY_PENNY then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_HEART, HeartSubType.HEART_HALF, entities[j].Position, Vector(0,0), Bum)
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BURNT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BURNT_PENNY then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_BOMB, BombSubType.BOMB_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_FLAT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_FLAT_PENNY then
- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_KEY, KeySubType.KEY_NORMAL, entities[j].Position, Vector(0,0), Bum)
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_BUTT_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_BUTT_PENNY then
- Isaac.GridSpawn(GridEntityType.GRID_POOP, 0, entities[j].Position, true)
- end
- if player:GetTrinket(0) == TrinketType.TRINKET_ROTTEN_PENNY
- or player:GetTrinket(1) == TrinketType.TRINKET_ROTTEN_PENNY then
- Isaac.Spawn(EntityType.ENTITY_FAMILIAR, FamiliarVariant.BLUE_FLY, 0, entities[j].Position, Vector(0,0), Bum)
- end
- end
- if entities[j].SubType == CoinSubType.COIN_LUCKYPENNY then
- player.Luck = player.Luck + 1
- end
- end
- end
- end
- end
- end
- end
- Mod:AddCallback(ModCallbacks.MC_FAMILIAR_UPDATE, Mod.onPickup, FamiliarVariant.BUM_FRIEND)
Advertisement
Add Comment
Please, Sign In to add comment