SMODS.Voucher#
Class prefix: v
Required parameters:
key,loc_txtor localization entry (reference)
Optional parameters (defaults):
atlas = 'Voucher', pos = { x = 0, y = 0 }, soul_pos, soul_atlas(reference)config = {}, unlocked = true, discovered = false, no_collection, prefix_config, dependencies, display_size, pixel_size, badge_colour, badge_text_colour(reference)pools: List of keys to ObjectTypes this center should be injected intoExpects a list of keys like this:
{ ["Foo"] = true, ["Bar"] = true, }
cost = 10,requires: specify a list of one or more vouchers by their full key (e.g.'v_grabber'for vanilla vouchers, or'v_pref_myvoucher'for a modded voucher from the mod with prefix'pref')disable_shine: (added in 1531zeebee) Disables the default ‘shine’ shader.
API methods#
calculate(self, card, context)(reference)loc_vars, locked_loc_vars, generate_ui(reference)redeem(self, card)Defines the behavior of a Voucher when redeemed.
calc_dollar_bonus(self, card) -> number, tableFor awarding money at the end of the round (e.g. Delayed Gratification, Cloud Nine)
(Added in 1531zeebee) Optionally, you can return a table as the second value to modify the text in the round evaluation screen with any of the following arguments:
text: Replaces the default name text.key,set: Allows changing the key and/or set of the name in the localization (ignored iftextis set)vars: (Added in 1814a) Replaces the variables (e.g.#1#) in names sourced from the localization.text_colour,scale: Allows changing the colour and scale of the text respectively
calc_scaling(self, card, other_card, initial_value, scalar_value, args) -> table(reference)Called by
SMODS.scale_card. Allows detection and modification of cards when scaling values.
set_ability(self, card, initial, delay_sprites)Set up initial ability values or manipulate sprites in an advanced way.
add_to_deck(self, card, from_debuff)Modify the game state when this card is obtained.
Cards are considered added when they become undebuffed (in this case,
from_debuffwill be true).
remove_from_deck(self, card, from_debuff)Modify the game state when this card is sold, destroyed, or otherwise removed.
Cards are considered removed when debuffed (in this case,
from_debuffwill be true).
in_pool(self, args) -> bool, { allow_duplicates = bool }Define custom logic for when a card is allowed to spawn. A card can spawn if
in_poolreturns true and all other checks are met.allow_duplicatesallows this card to spawn when one already exists, even without Showman.When called from
get_current_pool, the_appendkey is passed asargs.source.
update(self, card, dt)For actions that happen every frame.
set_sprites(self, card, front)For advanced sprite manipulation that happens when a card is created or loaded.
load(self, card, card_table, other_card)For modifications to sprites or the card itself when a run is reloaded.
check_for_unlock(self, args) -> boolConfigure unlock conditions. Refer to the function
check_for_unlockin Balatro’s code for more information.
set_badges(self, card, badges)Add additional badges, leaving existing badges intact. This function doesn’t return; add badges by appending to
badges.Avoid overwriting existing elements. It will cause text to appear on the top left corner of your screen instead.
Function for creating badges:
create_badge(_string, _badge_col, _text_col, scaling)_string: Text displayed on the badge._badge_col = G.C.GREEN: Background colour._text_col = G.C.WHITE: Text colour._scaling = 1: Relative size of the badge.
Example:
{
set_badges = function(self, card, badges)
badges[#badges+1] = create_badge(localize('k_your_string'), G.C.RED, G.C.BLACK, 1.2 )
end,
}
set_card_type_badge(self, card, badges)Same as
set_badges, but bypasses creation of the card type / rarity badge, allowing you to replace it with a custom one.
draw(self, card, layer)Draws the sprite and shader of the card.