diff --git a/assets/1x/blind.png b/assets/1x/blind.png index dd136a4..d988606 100644 Binary files a/assets/1x/blind.png and b/assets/1x/blind.png differ diff --git a/assets/2x/back.png b/assets/2x/back.png index 8ba4eed..27bd5a9 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 6ac2097..ab9470b 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 ad12724..1ac9f07 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 aaa2c20..69f3629 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 7184564..dc9bc88 100644 Binary files a/assets/2x/joker.png and b/assets/2x/joker.png differ diff --git a/assets/2x/phorm.png b/assets/2x/phorm.png index b2cf244..104265f 100644 Binary files a/assets/2x/phorm.png and b/assets/2x/phorm.png differ diff --git a/assets/2x/seal.png b/assets/2x/seal.png index a429701..a78f056 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 f3d3c32..db699d3 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 7709e09..b90f08f 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 c78af0e..13d7ab7 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 b1c372c..9bedff8 100644 Binary files a/assets/2x/tarot.png and b/assets/2x/tarot.png differ diff --git a/assets/2x/unicon.png b/assets/2x/unicon.png index a61d8e2..96a7104 100644 Binary files a/assets/2x/unicon.png and b/assets/2x/unicon.png differ diff --git a/assets/2x/voucher.png b/assets/2x/voucher.png index c6761ab..5293959 100644 Binary files a/assets/2x/voucher.png and b/assets/2x/voucher.png differ diff --git a/manifest.json b/manifest.json index 251d6f8..84027e2 100644 --- a/manifest.json +++ b/manifest.json @@ -3,7 +3,7 @@ "id": "Roland", "name": "Roland", "prefix": "Roland", - "version": "2.9.15", + "version": "2.9.16", "badge_colour": "8BE9FD", "display_name": "Roland", "main_file": "src/main.lua", diff --git a/src/blind.lua b/src/blind.lua index 093a36a..11d50f1 100644 --- a/src/blind.lua +++ b/src/blind.lua @@ -239,16 +239,16 @@ blind { disable = function(self) self:defeat() end, - calculate = function(self, b) - return not b.disabled and self.cards() + calculate = function(self, b, context) + return not b.disabled and + context.hand_drawn and + self.cards() :where("Roland_blizzard", false) :where("facing", "front") :each(set_freeze(true)) or nil end, cards = function() - return f(G):where(function(v) - return type(v) == "table" and type(v.cards) == "table" - end):flatmap("cards", ipairs) + return f(G):where(getmetatable, CardArea):flatmap("cards", ipairs) end, } diff --git a/src/joker.lua b/src/joker.lua index 4e8e501..7b44883 100644 --- a/src/joker.lua +++ b/src/joker.lua @@ -216,9 +216,9 @@ joker { SMODS.calculate_context {drawing_cards = true, draw = {G.deck.cards}} SMODS.calculate_context { + hand_drawn = facing_blind and {G.deck.cards[1]} and true, + other_drawn = not facing_blind and {G.deck.cards[1]} and true, first_hand_drawn = not current_round.any_hand_drawn and facing_blind or nil, - hand_drawn = facing_blind and {G.deck.cards[1]} --[[@as true]], - other_drawn = not facing_blind and {G.deck.cards[1]}, } if type(facing_blind) == "table" then @@ -941,7 +941,10 @@ joker { return {card = card, xmult = extra.odds} end - for _ = 1, 256 do + -- 2^38 is the first iteration displayed as scientific notation. + local max, overflown = 38, false + + for i = 1, max do local key = "RolandMartingale" .. tostring(G.GAME.modifiers.Roland_martingale_seed or "") if SMODS.pseudorandom_probability(card, self.key, 1, extra.odds, key) then @@ -953,9 +956,18 @@ joker { xmult = xmult * extra.odds local message = number_format(numerator) .. "/" .. number_format(xmult) SMODS.calculate_effect({card = card, repetitions = 1, message = message, message_card = card}, card) + overflown = overflown or i == max end - SMODS.calculate_effect({card = card, xmult = xmult}, card) + if overflown then + SMODS.calculate_effect({card = card, score = 1 / 0}, card) + + q(function() + card:shatter() + end) + else + SMODS.calculate_effect({card = card, xmult = xmult}, card) + end end, }