diff --git a/assets/1x/charm.png b/assets/1x/charm.png index 53e0818..6380081 100644 Binary files a/assets/1x/charm.png and b/assets/1x/charm.png differ diff --git a/assets/2x/back.png b/assets/2x/back.png index 8998917..2154b2e 100644 Binary files a/assets/2x/back.png and b/assets/2x/back.png differ diff --git a/assets/2x/blind.png b/assets/2x/blind.png index b34e9bf..0fb6e72 100644 Binary files a/assets/2x/blind.png and b/assets/2x/blind.png differ diff --git a/assets/2x/charm.png b/assets/2x/charm.png index 91ae0d3..f058719 100644 Binary files a/assets/2x/charm.png and b/assets/2x/charm.png differ diff --git a/assets/2x/icon.png b/assets/2x/icon.png index 143b522..594cd25 100644 Binary files a/assets/2x/icon.png and b/assets/2x/icon.png differ diff --git a/assets/2x/joker.png b/assets/2x/joker.png index 4964a43..7bdc3b4 100644 Binary files a/assets/2x/joker.png and b/assets/2x/joker.png differ diff --git a/assets/2x/seal.png b/assets/2x/seal.png index d25f392..1b78fb2 100644 Binary files a/assets/2x/seal.png and b/assets/2x/seal.png differ diff --git a/assets/2x/spectral.png b/assets/2x/spectral.png index 20eb236..d548649 100644 Binary files a/assets/2x/spectral.png and b/assets/2x/spectral.png differ diff --git a/assets/sounds/milestone.ogg b/assets/sounds/milestone.ogg deleted file mode 100644 index 3def76f..0000000 Binary files a/assets/sounds/milestone.ogg and /dev/null differ diff --git a/localization/en-us.lua b/localization/en-us.lua index a00dac8..b17170c 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -19,7 +19,7 @@ return { }, }, BakeryCharm = { - BakeryCharm_Roland_iphone = { + BakeryCharm_Roland_fat = { name = "fat i phone", text = { "Enter the shop", @@ -27,6 +27,10 @@ return { "is {C:attention}skipped", }, }, + BakeryCharm_Roland_flexible = { + name = "flexi ble phone", + text = {unpack(G.localization.descriptions.Joker.j_ring_master.text)}, + }, }, Blind = { bl_Roland_divide = { @@ -192,7 +196,7 @@ return { j_Roland_temple = { name = "Temple", text = { - "{C:attention}Unscored {C:enhanced}wild{} cards", + "{C:attention}Unscored Wild{} cards", "give {X:red,C:white}X#1#{} Mult", }, }, @@ -290,6 +294,7 @@ return { }, v_dictionary = { b_Roland_comma = ", ", + b_Roland_entering_shop = "Entering shop!", b_Roland_of = " of ", b_Roland_most_common_card = "(Rank)", b_Roland_na = "N/A", diff --git a/src/charm.lua b/src/charm.lua index 980f92e..67bee57 100644 --- a/src/charm.lua +++ b/src/charm.lua @@ -7,34 +7,66 @@ SMODS.Atlas { py = 68, } -q(function() - local current_mod = SMODS.current_mod - SMODS.current_mod = SMODS.Mods.Roland +local charm = (function() + local x = 0 - local charm = Bakery_API.Charm { - key = "iphone", - atlas = "charm", - pronouns = "he_they", - pos = {x = 0, y = 0}, - alerted = true, - unlocked = true, - discovered = true, - calculate = function(_, _, context) - local _ = context.skip_blind and q(function() - G.blind_prompt_box = G.blind_prompt_box and G.blind_prompt_box:remove() - G.blind_select = G.blind_select and G.blind_select:remove() - G.round_eval = G.round_eval and G.round_eval:remove() - G.GAME.current_round.jokers_purchased = 0 - G.STATE = G.STATES.SHOP - G.GAME.shop_free = nil - G.GAME.shop_d6ed = nil - G.STATE_COMPLETE = false - end) - end, - } + ---@param tbl SMODS.Joker|{alerted?: boolean} + return function(tbl) + q(function() + local current_mod = SMODS.current_mod + SMODS.current_mod = SMODS.Mods.Roland - charm:inject() - charm:process_loc_text() - -- SMODS._save_d_u(charm) - SMODS.current_mod = current_mod -end) + -- SMODS._save_d_u(charm) + tbl.alerted = true + tbl.unlocked = true + tbl.discovered = true + tbl.pos = {x = x, y = 0} + tbl.atlas = "charm" + x = x + 1 + + local charm = Bakery_API.Charm(tbl) + charm:inject() + charm:process_loc_text() + SMODS.current_mod = current_mod + end) + end +end)() + +charm { + key = "fat", + pronouns = "he_they", + calculate = function(_, card, context) + if not context.skip_blind then + return + end + + local message = localize {type = "variable", key = "b_Roland_entering_shop"} + SMODS.calculate_effect({card = card, message = message, sound = "whoosh1"}, card) + + q(function() + G.blind_prompt_box = G.blind_prompt_box and G.blind_prompt_box:remove() + G.blind_select = G.blind_select and G.blind_select:remove() + G.round_eval = G.round_eval and G.round_eval:remove() + G.GAME.current_round.jokers_purchased = 0 + G.STATE = G.STATES.SHOP + G.GAME.shop_free = nil + G.GAME.shop_d6ed = nil + G.STATE_COMPLETE = false + play_sound("whoosh1", 1.33333, 0.8) + play_sound("whoosh1", 0.66666, 0.8) + end) + end, +} + +charm { + key = "flexible", + pronouns = "any_all", + cost = 10, +} + +local orig_showman = SMODS.showman + +---@diagnostic disable-next-line: duplicate-set-field +function SMODS.showman(...) + return G.GAME.Bakery_charm == "BakeryCharm_Roland_flexible" or orig_showman(...) +end diff --git a/src/joker.lua b/src/joker.lua index a5a38be..382f70a 100644 --- a/src/joker.lua +++ b/src/joker.lua @@ -63,11 +63,6 @@ local function level_up(hand, by, card) update("", 0, 0, "", 1.1) end -SMODS.Sound { - key = "milestone", - path = "milestone.ogg", -} - SMODS.Atlas { key = "joker", path = "joker.png", @@ -538,7 +533,7 @@ joker { local xmult = extra.odds local numerator = 1 - for _ = 1, 31 do + for _ = 1, 63 do if SMODS.pseudorandom_probability(card, "j_Roland_martingale", 1, extra.odds, "Martingale") then break end