balatro-mods/Cryptid/lib/event.lua
2025-03-25 03:09:00 +08:00

45 lines
1.1 KiB
Lua

-- event.lua - Adds SMODS Event class
-- Used for Jokers like Chocolate Die
SMODS.Events = {}
SMODS.Event = SMODS.GameObject:extend({
obj_table = SMODS.Events,
obj_buffer = {},
required_params = {
"key",
},
inject = function() end,
set = "Other",
class_prefix = "ev",
-- This should be called to start an event.
start = function(self)
G.GAME.events[self.key] = true
end,
-- This should be called to finish an event.
finish = function(self)
G.GAME.events[self.key] = nil
end,
-- Runs once before and after jokers, as well as a few special cases
calculate = function(self, context) end,
-- used for Chocolate Die tooltips, can maybe be repurposed later
loc_vars = function(self, info_queue, center)
info_queue[#info_queue + 1] = { set = "Other", key = self.key }
end,
})
--Calculate events on cash out
local gfco = G.FUNCS.cash_out
G.FUNCS.cash_out = function(e)
local ret = gfco(e)
SMODS.calculate_context({ cash_out = true })
return ret
end
-- Calculate events on start of shop
local guis = G.UIDEF.shop
G.UIDEF.shop = function(e)
local ret = guis(e)
SMODS.calculate_context({ start_shop = true })
return ret
end