Add new joker, buff Snowsquall
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
|
@ -165,6 +165,14 @@ return {
|
||||||
"if it is {C:dark_edition}Frozen",
|
"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 = {
|
j_Roland_crimson = {
|
||||||
name = "Crimson Heart",
|
name = "Crimson Heart",
|
||||||
text = {
|
text = {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"id": "Roland",
|
"id": "Roland",
|
||||||
"name": "Roland",
|
"name": "Roland",
|
||||||
"prefix": "Roland",
|
"prefix": "Roland",
|
||||||
"version": "2.8.35",
|
"version": "2.8.36",
|
||||||
"badge_colour": "8BE9FD",
|
"badge_colour": "8BE9FD",
|
||||||
"display_name": "Roland",
|
"display_name": "Roland",
|
||||||
"main_file": "src/main.lua",
|
"main_file": "src/main.lua",
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,23 @@
|
||||||
local f, q = unpack(... or require "lib.shared")
|
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 negative = {key = "e_negative_consumable", set = "Edition", config = {extra = 1}}
|
||||||
|
|
||||||
local joker = (function()
|
local joker = (function()
|
||||||
|
atlas:inject()
|
||||||
local z = 0
|
local z = 0
|
||||||
|
local row
|
||||||
|
|
||||||
---@return {x: number, y: number}
|
---@return {x: number, y: number}
|
||||||
local function inc()
|
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
|
z = z + 1
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
@ -97,13 +107,6 @@ local function ranksuitnq(value)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
SMODS.Atlas {
|
|
||||||
key = "joker",
|
|
||||||
path = "joker.png",
|
|
||||||
px = 71,
|
|
||||||
py = 95,
|
|
||||||
}
|
|
||||||
|
|
||||||
SMODS.Sound {
|
SMODS.Sound {
|
||||||
key = "nilly",
|
key = "nilly",
|
||||||
path = "nilly.ogg",
|
path = "nilly.ogg",
|
||||||
|
|
@ -425,7 +428,7 @@ joker {
|
||||||
joker {
|
joker {
|
||||||
key = "snowsquall",
|
key = "snowsquall",
|
||||||
pronouns = "he_they",
|
pronouns = "he_they",
|
||||||
config = {extra = {mult_gain = 1, mult = 0}},
|
config = {extra = {mult_gain = 3, mult = 0}},
|
||||||
attributes = {"mult", "scaling", "hand_type"},
|
attributes = {"mult", "scaling", "hand_type"},
|
||||||
cost = 6,
|
cost = 6,
|
||||||
rarity = 2,
|
rarity = 2,
|
||||||
|
|
@ -721,6 +724,39 @@ joker {
|
||||||
end,
|
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 {
|
joker {
|
||||||
key = "crimson",
|
key = "crimson",
|
||||||
pronouns = "she_her",
|
pronouns = "she_her",
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,9 @@ if false then
|
||||||
---@type Card[]
|
---@type Card[]
|
||||||
CardArea.cards = CardArea.cards
|
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) }
|
--- @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"]
|
_G["Big"] = _G["Big"]
|
||||||
|
|
||||||
|
|
|
||||||