diff --git a/assets/1x/tag.png b/assets/1x/tag.png index 26a6efa..d65ee73 100644 Binary files a/assets/1x/tag.png and b/assets/1x/tag.png differ diff --git a/assets/2x/back.png b/assets/2x/back.png index 92f6aab..5aecb95 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 4671325..03807f7 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 3764756..df5c31d 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 82a8332..2ace55c 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 ab3490c..ebf72b6 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 21aacc2..366d09f 100644 Binary files a/assets/2x/seal.png and b/assets/2x/seal.png differ diff --git a/assets/2x/sleeve.png b/assets/2x/sleeve.png index 8a7cf90..e66732b 100644 Binary files a/assets/2x/sleeve.png and b/assets/2x/sleeve.png differ diff --git a/assets/2x/spectral.png b/assets/2x/spectral.png index 4de44fb..336a297 100644 Binary files a/assets/2x/spectral.png and b/assets/2x/spectral.png differ diff --git a/assets/2x/tag.png b/assets/2x/tag.png index 4ec68d3..275c3f6 100644 Binary files a/assets/2x/tag.png and b/assets/2x/tag.png differ diff --git a/assets/2x/tarot.png b/assets/2x/tarot.png index 4f1b14a..8114244 100644 Binary files a/assets/2x/tarot.png and b/assets/2x/tarot.png differ diff --git a/localization/en-us.lua b/localization/en-us.lua index 9cd55f2..7ed7e20 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -388,6 +388,10 @@ return { }, }, Tag = { + tag_Roland_freeze = { + name = "Freeze Tag", + text = {"Apply {C:dark_edition}Frozen", "to the next {C:attention}#1#", "scored cards"}, + }, tag_Roland_invisible = { name = "Invisible Tag", text = {"{C:attention}Duplicate {}a random Joker", "{C:inactive}(Must have room)"}, diff --git a/manifest.json b/manifest.json index c3b8ed2..78e6f60 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "author": [ "Emik" ], - "version": "2.6.7", + "version": "2.6.8", "badge_colour": "8BE9FD", "main_file": "src/main.lua", "badge_text_colour": "44475A", diff --git a/src/back.lua b/src/back.lua index 056ba2b..f4830c7 100644 --- a/src/back.lua +++ b/src/back.lua @@ -8,7 +8,7 @@ end local back = (function() local x = 0 - ---@param tbl SMODS.Back|{is_alt: function, alt_apply?: fun(self: SMODS.Back|table, back: Back|table), alt_calculate?: fun(self: SMODS.Back|table, back: Back|table, context: CalcContext|table): table?, boolean?} + ---@param tbl SMODS.Back|{artist?: string, is_alt: function, alt_apply?: fun(self: SMODS.Back|table, back: Back|table), alt_calculate?: fun(self: SMODS.Back|table, back: Back|table, context: CalcContext|table): table?, boolean?} return function(tbl) local key = tbl.key local apply = tbl.apply @@ -48,6 +48,7 @@ local back = (function() key = key, pos = tbl.pos, atlas = "sleeve", + artist = tbl.artist, config = tbl.config and f(tbl.config):table() or nil, loc_vars = function(self, ...) local ret = tbl.loc_vars and tbl.loc_vars(self, ...) or {} @@ -91,7 +92,7 @@ back { key = "blossom", pronouns = "any_all", artist = "Roland_bakersdozenbagels", - config = {extra = {alt_times = 8, times = 2}}, + config = {extra = {alt_times = 4, times = 2}}, attributes = {"boss_blind"}, loc_vars = function(self, _, _) return {vars = {self.config.extra.times, self.config.extra.alt_times}} diff --git a/src/tag.lua b/src/tag.lua index b56b927..ee2e519 100644 --- a/src/tag.lua +++ b/src/tag.lua @@ -5,11 +5,86 @@ SMODS.Atlas { path = "tag.png", } +local function apply_frozen(tag, context) + return function() + q { + delay = 0.4, + trigger = "after", + func = function() + play_sound "tarot1" + tag:juice_up(0.3, 0.5) + end, + } + + q { + delay = 0.15, + trigger = "after", + func = function() + context.card:flip() + play_sound("card1", 0.85) + context.card:juice_up(0.3, 0.3) + end, + } + + delay(0.2) + + q { + delay = 0.1, + trigger = "after", + func = function() + context.card:set_edition {Roland_frozen = true} + end, + } + + q { + delay = 0.15, + trigger = "after", + func = function() + context.card:flip() + play_sound("tarot2", 0.85, 0.6) + context.card:juice_up(0.3, 0.3) + end, + } + + delay(0.1) + end +end + +SMODS.Tag { + key = "freeze", + atlas = "tag", + min_ante = 1, + pos = {x = 0, y = 0}, + config = {amount = 5}, + loc_vars = function(self, info_queue, tag) + info_queue[#info_queue + 1] = G.P_CENTERS.e_Roland_frozen + tag.ability = tag.ability or {} + return {vars = {tag.ability.amount or self.config.amount}} + end, + apply = function(self, tag, context) + tag.ability = tag.ability or {} + + if not tag.triggered and context.type == "Bakery_play_hand_late" and tag.ability.amount == 0 then + tag.triggered = true + tag:yep("X", G.C.RED, f().tru) + end + + if tag.triggered or + (tag.ability.amount or self.config.amount) <= 0 or + context.type ~= "Bakery_score_card" then + return + end + + tag.ability.amount = (tag.ability.amount or self.config.amount) - 1 + return {func = apply_frozen(tag, context)} + end, +} + SMODS.Tag { key = "invisible", atlas = "tag", min_ante = 2, - pos = {x = 0, y = 0}, + pos = {x = 1, y = 0}, apply = function(_, tag) local modifiers = G.GAME.modifiers