diff --git a/assets/1x/charm.png b/assets/1x/charm.png index 6380081..dd85c36 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 fce0651..81f19cb 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 e8f079e..7b1ed3b 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 06696e2..6c02919 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 61068cc..12bb68b 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 8482877..8ec82a3 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 5c3c514..75c39ee 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 3c182d9..3c9c80e 100644 Binary files a/assets/2x/spectral.png and b/assets/2x/spectral.png differ diff --git a/localization/en-us.lua b/localization/en-us.lua index c51efb8..b1e5d9e 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -29,15 +29,23 @@ return { BakeryCharm_Roland_fat = { name = "fat i phone", text = { - "Enter the shop", - "when any {C:attention}Blind", - "is {C:attention}skipped", + "{C:attention}+#1# Booster Pack {}slots", + "All {C:attention}Booster Packs {}are {C:attention}Mega", + "{C:inactive}(Whenever applicable)", }, }, BakeryCharm_Roland_flexible = { name = "flexi ble phone", text = {unpack(G.localization.descriptions.Joker.j_ring_master.text)}, }, + BakeryCharm_Roland_wii = { + name = "wii phone", + text = { + "Enter the shop", + "when any {C:attention}Blind", + "is {C:attention}skipped", + }, + }, }, Blind = { bl_Roland_divide = { diff --git a/src/charm.lua b/src/charm.lua index 72fefd4..55be624 100644 --- a/src/charm.lua +++ b/src/charm.lua @@ -36,6 +36,26 @@ end)() charm { key = "fat", pronouns = "he_they", + config = {extra = {mod = 1}}, + loc_vars = function(_, _, card) + return {vars = {card.ability.extra.mod}} + end, + equip = function(_, card) + SMODS.change_booster_limit(card.ability.extra.mod) + end, + unequip = function(card) + SMODS.change_booster_limit(-card.ability.extra.mod) + end, +} + +charm { + key = "flexible", + pronouns = "any_all", +} + +charm { + key = "wii", + pronouns = "they_them", calculate = function(_, card, context) if not context.skip_blind then return @@ -59,15 +79,39 @@ charm { 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 + +local orig_init = Card.init + +---@diagnostic disable-next-line: duplicate-set-field +function Card:init(X, Y, W, H, card, center, params, ...) + if G.GAME.Bakery_charm ~= "BakeryCharm_Roland_fat" or center.set ~= "Booster" then + return orig_init(self, X, Y, W, H, card, center, params, ...) + end + + local key = center.key:gsub("normal", "mega"):gsub("jumbo", "mega"):gsub("mini", "mega") + + if G.P_CENTERS[key] then + return orig_init(self, X, Y, W, H, card, G.P_CENTERS[key], params, ...) + end + + key = key:gsub("_?%d+$", "_1") + + if G.P_CENTERS[key] then + return orig_init(self, X, Y, W, H, card, G.P_CENTERS[key], params, ...) + end + + key = key:gsub("_?%d+$", "") + + if G.P_CENTERS[key] then + return orig_init(self, X, Y, W, H, card, G.P_CENTERS[key], params, ...) + end + + self.Roland_no_mega = true + return orig_init(self, X, Y, W, H, card, center, params, ...) +end