Files
Fantoms-Preview/InitPreview.lua

68 lines
1.8 KiB
Lua

--- Original: Divvy's Preview for Balatro - Init.lua
--
-- Global values that must be present for the rest of this mod to work.
if not FN then FN = {} end
FN.PRE = {
data = {
score = {min = 0, exact = 0, max = 0},
dollars = {min = 0, exact = 0, max = 0}
},
text = {
score = {l = "", r = ""},
dollars = {top = "", bot = ""}
},
joker_order = {},
hand_order = {},
show_preview = false,
lock_updates = false,
on_startup = true,
five_second_coroutine = nil
}
function FN.PRE.start_new_coroutine()
if FN.PRE.five_second_coroutine and coroutine.status(FN.PRE.five_second_coroutine) ~= "dead" then
FN.PRE.five_second_coroutine = nil -- Reset the coroutine
end
-- Create and start a new coroutine
FN.PRE.five_second_coroutine = coroutine.create(function()
-- Show UI updates
FN.PRE.lock_updates = true
FN.PRE.show_preview = true
FN.PRE.add_update_event("immediate") -- Force UI refresh
local start_time = os.time()
while os.time() - start_time < 5 do
FN.PRE.simulate() -- Force a simulation run
FN.PRE.add_update_event("immediate") -- Ensure UI updates
coroutine.yield() -- Allow game to continue running
end
-- Delay for 5 seconds
FN.PRE.lock_updates = false
FN.PRE.show_preview = true
FN.PRE.add_update_event("immediate") -- Refresh UI again
end)
coroutine.resume(FN.PRE.five_second_coroutine) -- Start it immediately
end
FN.PRE._start_up = Game.start_up
function Game:start_up()
FN.PRE._start_up(self)
if not G.SETTINGS.FN then G.SETTINGS.FN = {} end
if not G.SETTINGS.FN.PRE then
G.SETTINGS.FN.PRE = true
G.SETTINGS.FN.preview_score = true
G.SETTINGS.FN.preview_dollars = true
G.SETTINGS.FN.hide_face_down = true
G.SETTINGS.FN.show_min_max = true
end
end