Add new joker, buff Snowsquall

This commit is contained in:
Emik 2026-06-17 00:17:42 +02:00
parent c48fd5454e
commit bf0562dfab
Signed by: emik
GPG key ID: 6B0CD72A5E503BDF
16 changed files with 57 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 242 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View file

@ -165,6 +165,14 @@ return {
"if it is {C:dark_edition}Frozen",
},
},
j_Roland_cerulean = {
name = "Cerulean Bell",
text = {
"{X:mult,C:white}X#1#{} Mult",
"All other {C:attention}Jokers {}cannot",
"be selected or dragged",
},
},
j_Roland_crimson = {
name = "Crimson Heart",
text = {

View file

@ -3,7 +3,7 @@
"id": "Roland",
"name": "Roland",
"prefix": "Roland",
"version": "2.8.35",
"version": "2.8.36",
"badge_colour": "8BE9FD",
"display_name": "Roland",
"main_file": "src/main.lua",

View file

@ -1,13 +1,23 @@
local f, q = unpack(... or require "lib.shared")
local atlas = SMODS.Atlas {
key = "joker",
path = "joker.png",
px = 71,
py = 95,
}
local negative = {key = "e_negative_consumable", set = "Edition", config = {extra = 1}}
local joker = (function()
atlas:inject()
local z = 0
local row
---@return {x: number, y: number}
local function inc()
local ret = {x = z % 6, y = math.floor(z / 6)}
row = row or atlas.image_data:getWidth() / atlas.px / G.SETTINGS.GRAPHICS.texture_scaling
local ret = {x = z % row, y = math.floor(z / row)}
z = z + 1
return ret
end
@ -97,13 +107,6 @@ local function ranksuitnq(value)
end
end
SMODS.Atlas {
key = "joker",
path = "joker.png",
px = 71,
py = 95,
}
SMODS.Sound {
key = "nilly",
path = "nilly.ogg",
@ -425,7 +428,7 @@ joker {
joker {
key = "snowsquall",
pronouns = "he_they",
config = {extra = {mult_gain = 1, mult = 0}},
config = {extra = {mult_gain = 3, mult = 0}},
attributes = {"mult", "scaling", "hand_type"},
cost = 6,
rarity = 2,
@ -721,6 +724,39 @@ joker {
end,
}
joker {
key = "cerulean",
pronouns = "she_her",
config = {extra = {xmult = 3}},
pixel_size = {w = 68, h = 68},
attributes = {"xmult"},
cost = 6,
rarity = 2,
eternal_compat = true,
blueprint_compat = true,
perishable_compat = true,
loc_vars = function(_, _, card)
return {vars = {card.ability.extra.xmult}}
end,
remove_from_deck = function(self)
self:cerulean(true)
end,
calculate = function(_, card, context)
return (context.joker_main or context.forcetrigger) and
{card = card, xmult = card.ability.extra.xmult} or nil
end,
update = function(self, card)
local _ = card.area == G.jokers and self:cerulean(false)
end,
cerulean = function(_, value)
f(G.jokers.cards):each(function(v)
f {"click", "drag", "focus", "hover"}:map(f.index_into(v.states)):each(function(s)
s.can = value or v.config.center.key == "j_Roland_cerulean"
end)
end)
end,
}
joker {
key = "crimson",
pronouns = "she_her",

View file

@ -46,6 +46,9 @@ if false then
---@type Card[]
CardArea.cards = CardArea.cards
---@type userdata|{getWidth: fun(self: self): number}
SMODS.Atlas.image_data = SMODS.Atlas.image_data
--- @type { constants?: { TEN: table }, new: (fun(self: self, arr?: number[], sign?: number, noNormalize?: boolean): table), pow: (fun(x: number, y: number): number) }
_G["Big"] = _G["Big"]