-- WR Seed Getter -- by Zamiel -- This mod will look through seeds for certain conditions. local WRSeedGetter = RegisterMod("WR-Seed-Getter", 1) -- Global variables WRSeedGetter.restart = false WRSeedGetter.attempts = 0 WRSeedGetter.seeds = { "B9Q9 NWJY", } -- ModCallbacks.MC_POST_RENDER (2) function WRSeedGetter:PostRender() if WRSeedGetter.restart and WRSeedGetter.attempts < #WRSeedGetter.seeds then WRSeedGetter.restart = false WRSeedGetter.attempts = WRSeedGetter.attempts + 1 local seed = WRSeedGetter.seeds[WRSeedGetter.attempts] Isaac.DebugString("On attempt: " .. WRSeedGetter.attempts) Isaac.ExecuteCommand("seed " .. seed) return end end -- ModCallbacks.MC_POST_GAME_STARTED (15) function WRSeedGetter:PostGameStarted(saveState) if WRSeedGetter:Check() then local game = Game() local seeds = game:GetSeeds() local seed = seeds:GetStartSeedString() Isaac.DebugString("Found good seed: " .. seed) end -- Doing a "restart" here does not work for some reason, so mark to do it on the next frame WRSeedGetter.restart = true -- On Booster Pack 3 and below, the recharge sound will play at the beginning of a run local sfx = SFXManager() sfx:Stop(SoundEffect.SOUND_BATTERYCHARGE) -- 170 end function WRSeedGetter:Check() -- We need better than 4.0 damage local game = Game() local player = game:GetPlayer(0) if player.Damage <= 4.25 then return false end -- We need a Sacrifice Room below local room = game:GetRoom() local door = room:GetDoor(3) -- The bottom door if door ~= nil and door.TargetRoomType == RoomType.ROOM_SACRIFICE then -- 13 return true end return false end WRSeedGetter:AddCallback(ModCallbacks.MC_POST_RENDER, WRSeedGetter.PostRender) -- 2 WRSeedGetter:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, WRSeedGetter.PostGameStarted) -- 15 Isaac.DebugString("+-----------------------------+") Isaac.DebugString("| WR Seed Getter initialized. |") Isaac.DebugString("+-----------------------------+")