Add new joker
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 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: 70 KiB After Width: | Height: | Size: 71 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 |
|
|
@ -339,6 +339,14 @@ return {
|
||||||
"{C:attention}#2#",
|
"{C:attention}#2#",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
j_Roland_verdant = {
|
||||||
|
name = "Verdant Leaf",
|
||||||
|
text = {
|
||||||
|
"{X:mult,C:white}X#1#{} Mult",
|
||||||
|
"{C:red}Debuffs {}the {C:attention}first",
|
||||||
|
"{C:attention}#2# {}scored cards",
|
||||||
|
},
|
||||||
|
},
|
||||||
j_Roland_yard = {
|
j_Roland_yard = {
|
||||||
name = "Yard Sale",
|
name = "Yard Sale",
|
||||||
text = {
|
text = {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"id": "Roland",
|
"id": "Roland",
|
||||||
"name": "Roland",
|
"name": "Roland",
|
||||||
"prefix": "Roland",
|
"prefix": "Roland",
|
||||||
"version": "2.8.34",
|
"version": "2.8.35",
|
||||||
"badge_colour": "8BE9FD",
|
"badge_colour": "8BE9FD",
|
||||||
"display_name": "Roland",
|
"display_name": "Roland",
|
||||||
"main_file": "src/main.lua",
|
"main_file": "src/main.lua",
|
||||||
|
|
|
||||||
|
|
@ -684,7 +684,7 @@ joker {
|
||||||
rarity = 3,
|
rarity = 3,
|
||||||
eternal_compat = true,
|
eternal_compat = true,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = false,
|
perishable_compat = true,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.extra.xmult}}
|
return {vars = {card.ability.extra.xmult}}
|
||||||
end,
|
end,
|
||||||
|
|
@ -731,7 +731,7 @@ joker {
|
||||||
rarity = 3,
|
rarity = 3,
|
||||||
eternal_compat = true,
|
eternal_compat = true,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = false,
|
perishable_compat = true,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.extra.xmult}}
|
return {vars = {card.ability.extra.xmult}}
|
||||||
end,
|
end,
|
||||||
|
|
@ -749,7 +749,7 @@ joker {
|
||||||
right.config.center.key == "j_Roland_crimson"
|
right.config.center.key == "j_Roland_crimson"
|
||||||
|
|
||||||
if debuffed_by_crimson and v.ability.Roland_crimson == nil then
|
if debuffed_by_crimson and v.ability.Roland_crimson == nil then
|
||||||
v.ability.Roland_crimson = v.debuff and true or false
|
v.ability.Roland_crimson = not not v.debuff
|
||||||
v:set_debuff(true)
|
v:set_debuff(true)
|
||||||
elseif not debuffed_by_crimson and v.ability.Roland_crimson ~= nil then
|
elseif not debuffed_by_crimson and v.ability.Roland_crimson ~= nil then
|
||||||
v:set_debuff(v.ability.Roland_crimson)
|
v:set_debuff(v.ability.Roland_crimson)
|
||||||
|
|
@ -766,6 +766,56 @@ function Card:stop_drag(...)
|
||||||
return orig_stop_drag(self, ...)
|
return orig_stop_drag(self, ...)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
joker {
|
||||||
|
key = "verdant",
|
||||||
|
pronouns = "she_her",
|
||||||
|
config = {extra = {debuffs = 2, xmult = 3}},
|
||||||
|
pixel_size = {w = 68, h = 68},
|
||||||
|
attributes = {"xmult"},
|
||||||
|
cost = 6,
|
||||||
|
rarity = 3,
|
||||||
|
eternal_compat = true,
|
||||||
|
blueprint_compat = true,
|
||||||
|
perishable_compat = true,
|
||||||
|
loc_vars = function(_, _, card)
|
||||||
|
local extra = card.ability.extra
|
||||||
|
return {vars = {extra.xmult, extra.debuffs}}
|
||||||
|
end,
|
||||||
|
calculate = function(self, card, context)
|
||||||
|
local extra = card.ability.extra
|
||||||
|
self:verdant(context.scoring_hand, extra.debuffs)
|
||||||
|
return (context.joker_main or context.forcetrigger) and {card = card, xmult = extra.xmult} or nil
|
||||||
|
end,
|
||||||
|
update = function()
|
||||||
|
local _ = G.STATE == G.STATES.SELECTING_HAND and G.hand and G.hand:parse_highlighted()
|
||||||
|
end,
|
||||||
|
verdant = function(_, cards, amount)
|
||||||
|
return cards and next(cards) and f(G.playing_cards):each(function(v)
|
||||||
|
table.sort(cards, function(a, b)
|
||||||
|
return a.rank < b.rank
|
||||||
|
end)
|
||||||
|
|
||||||
|
local should_be_verdant = f(amount):map(f.index_into(cards)):any(f.eq(v))
|
||||||
|
local has_verdant = v.ability.Roland_verdant ~= nil
|
||||||
|
|
||||||
|
if should_be_verdant and not has_verdant then
|
||||||
|
v.ability.Roland_verdant = not not v.debuff
|
||||||
|
v:set_debuff(true)
|
||||||
|
elseif not should_be_verdant and has_verdant then
|
||||||
|
v:set_debuff(v.ability.Roland_verdant)
|
||||||
|
v.ability.Roland_verdant = nil
|
||||||
|
end
|
||||||
|
end) or nil
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
|
||||||
|
local orig_unhighlight_all = CardArea.unhighlight_all
|
||||||
|
|
||||||
|
function CardArea:unhighlight_all(...)
|
||||||
|
G.P_CENTERS.j_Roland_verdant:verdant(self.cards)
|
||||||
|
return orig_unhighlight_all(self, ...)
|
||||||
|
end
|
||||||
|
|
||||||
joker {
|
joker {
|
||||||
key = "martingale",
|
key = "martingale",
|
||||||
pronouns = "he_him",
|
pronouns = "he_him",
|
||||||
|
|
|
||||||