Rebalance and retheme the mino-series
This commit is contained in:
parent
f126815f0c
commit
e76fee417e
2 changed files with 76 additions and 52 deletions
|
|
@ -101,34 +101,34 @@ return {
|
||||||
},
|
},
|
||||||
j_Roland_phytoestrogens = {
|
j_Roland_phytoestrogens = {
|
||||||
name = "Phytoestrogens",
|
name = "Phytoestrogens",
|
||||||
text = {"{C:mult}+(Chips/#1#){} Mult"},
|
text = {"{C:mult}+Chips#1#{} Mult"},
|
||||||
},
|
},
|
||||||
j_Roland_hexagon = {
|
j_Roland_monomino = {
|
||||||
name = "Hexagon",
|
name = "Monomino",
|
||||||
text = {
|
text = {
|
||||||
"Gains {C:money}$#1#{} of",
|
"Gains {C:money}$#1#{} of",
|
||||||
"{C:attention}sell value{} if",
|
"{C:attention}sell value{} if",
|
||||||
"played hand is a",
|
"played hand is a",
|
||||||
"{C:attention}Four of a Kind",
|
"{C:attention}#2#",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
j_Roland_hexagoner = {
|
j_Roland_domino = {
|
||||||
name = "Hexagoner",
|
name = "Domino",
|
||||||
text = {
|
text = {
|
||||||
"This Joker gains the",
|
"This Joker gains {C:mult}+#1# {}Mult",
|
||||||
"rank of {C:attention}unscored cards",
|
|
||||||
"to Mult if played hand",
|
|
||||||
"is a {C:attention}Four of a Kind",
|
|
||||||
"{C:inactive}(Currently {C:red}+#1#{C:inactive} Mult)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
j_Roland_hexagonest = {
|
|
||||||
name = "Hexagonest",
|
|
||||||
text = {
|
|
||||||
"{C:attention}Unscored cards{} add a",
|
|
||||||
"permanent copy to deck",
|
|
||||||
"if played hand is a",
|
"if played hand is a",
|
||||||
"{C:attention}Four of a Kind",
|
"{C:attention}#2#",
|
||||||
|
"{C:inactive}(Currently {C:red}+#3#{C:inactive} Mult)",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
j_Roland_trimino = {
|
||||||
|
name = "Trimino",
|
||||||
|
text = {
|
||||||
|
"Copies {C:attention}#1# {C:green}random",
|
||||||
|
"scoring cards and",
|
||||||
|
"{C:red,E:1}self-destructs {}if",
|
||||||
|
"played hand is a",
|
||||||
|
"{C:attention}#2#",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
j_Roland_misfortune = {
|
j_Roland_misfortune = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
local f, q, u = unpack(... or require "src.functional")
|
local f, q, u = unpack(... or require "src.functional")
|
||||||
|
|
||||||
|
if false then
|
||||||
|
Cryptid = Cryptid -- Suppresses warnings about the global.
|
||||||
|
end
|
||||||
|
|
||||||
local joker = (function()
|
local joker = (function()
|
||||||
local z = 0
|
local z = 0
|
||||||
|
|
||||||
|
|
@ -282,14 +286,15 @@ joker {
|
||||||
joker {
|
joker {
|
||||||
key = "phytoestrogens",
|
key = "phytoestrogens",
|
||||||
pronouns = "she_her",
|
pronouns = "she_her",
|
||||||
config = {extra = {division = 4}},
|
config = {extra = {division = Cryptid and 1 or 4}},
|
||||||
cost = 8,
|
cost = 8,
|
||||||
rarity = 3,
|
rarity = 3,
|
||||||
eternal_compat = true,
|
eternal_compat = true,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = true,
|
perishable_compat = true,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.extra.division}}
|
local division = card.ability.extra.division
|
||||||
|
return {vars = {division == 1 and "" or "/" .. number_format(division)}}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
return context.joker_main and {mult = hand_chips / card.ability.extra.division} or nil
|
return context.joker_main and {mult = hand_chips / card.ability.extra.division} or nil
|
||||||
|
|
@ -297,85 +302,104 @@ joker {
|
||||||
}
|
}
|
||||||
|
|
||||||
joker {
|
joker {
|
||||||
key = "hexagon",
|
key = "monomino",
|
||||||
pronouns = "it_its",
|
pronouns = "it_its",
|
||||||
config = {extra = {price = 6}},
|
config = {extra = {price = 4, hand_name = "Four of a Kind"}},
|
||||||
cost = 6,
|
cost = 4,
|
||||||
rarity = 1,
|
rarity = 1,
|
||||||
eternal_compat = true,
|
eternal_compat = true,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = true,
|
perishable_compat = true,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.extra.price}}
|
local extra = card.ability.extra
|
||||||
|
return {vars = {extra.price, localize(extra.hand_name, "poker_hands")}}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
if not context.joker_main or
|
local extra = card.ability.extra
|
||||||
context.scoring_name ~= "Four of a Kind" then
|
|
||||||
|
if not context.before or context.scoring_name ~= extra.hand_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
card.ability.extra_value = card.ability.extra_value + card.ability.extra.price
|
card.ability.extra_value = card.ability.extra_value + extra.price
|
||||||
card:set_cost()
|
card:set_cost()
|
||||||
return {message = localize "k_val_up", colour = G.C.MONEY}
|
return {message = localize "k_val_up", colour = G.C.MONEY}
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
joker {
|
joker {
|
||||||
key = "hexagoner",
|
key = "domino",
|
||||||
pronouns = "it_its",
|
pronouns = "it_its",
|
||||||
config = {extra = {mult = 0}},
|
config = {extra = {mult_gain = 4, hand_name = "Four of a Kind", mult = 0}},
|
||||||
cost = 6,
|
cost = 4,
|
||||||
rarity = 2,
|
rarity = 2,
|
||||||
eternal_compat = true,
|
eternal_compat = true,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = false,
|
perishable_compat = false,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {card.ability.extra.mult}}
|
local extra = card.ability.extra
|
||||||
|
return {vars = {extra.mult_gain, localize(extra.hand_name, "poker_hands"), extra.mult}}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
|
local extra = card.ability.extra
|
||||||
|
|
||||||
if context.joker_main then
|
if context.joker_main then
|
||||||
return {mult = card.ability.extra.mult}
|
return {mult = extra.mult}
|
||||||
end
|
end
|
||||||
|
|
||||||
if context.individual and
|
if not context.before or context.scoring_name ~= extra.hand_name then
|
||||||
context.cardarea == "unscored" and
|
return
|
||||||
context.scoring_name == "Four of a Kind" then
|
|
||||||
card.ability.extra.mult = card.ability.extra.mult + context.other_card.base.nominal
|
|
||||||
return {message = localize "k_upgrade_ex", colour = G.C.RED, message_card = card}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
extra.mult = extra.mult + extra.mult_gain
|
||||||
|
return {message = localize "k_upgrade_ex", colour = G.C.RED, message_card = card}
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
joker {
|
joker {
|
||||||
key = "hexagonest",
|
key = "trimino",
|
||||||
pronouns = "it_its",
|
pronouns = "it_its",
|
||||||
config = {extra = {mult = 0}},
|
config = {extra = {times = 4, hand_name = "Four of a Kind"}},
|
||||||
cost = 6,
|
cost = 8,
|
||||||
rarity = 3,
|
rarity = 3,
|
||||||
eternal_compat = true,
|
eternal_compat = false,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
perishable_compat = true,
|
perishable_compat = true,
|
||||||
|
loc_vars = function(_, _, card)
|
||||||
|
local extra = card.ability.extra
|
||||||
|
return {vars = {extra.times, localize(extra.hand_name, "poker_hands")}}
|
||||||
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
if not context.individual or
|
local extra = card.ability.extra
|
||||||
context.cardarea ~= "unscored" or
|
|
||||||
context.scoring_name ~= "Four of a Kind" then
|
if not context.before or card.getting_sliced or context.scoring_name ~= extra.hand_name then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
card.getting_sliced = true
|
||||||
|
|
||||||
q(function()
|
q(function()
|
||||||
f(G.play.cards):filter(function(v)
|
local scored_cards = f(G.play.cards):filter(function(v)
|
||||||
return not v.highlighted
|
return v.highlighted
|
||||||
end):foreach(function(v)
|
end):into()
|
||||||
|
|
||||||
|
local copied = {}
|
||||||
|
|
||||||
|
for _ = 1, extra.times do
|
||||||
G.playing_card = (G.playing_card or 0) + 1
|
G.playing_card = (G.playing_card or 0) + 1
|
||||||
G.deck.config.card_limit = G.deck.config.card_limit + 1
|
G.deck.config.card_limit = G.deck.config.card_limit + 1
|
||||||
local copy = copy_card(v, nil, nil, G.playing_card)
|
local chosen = pseudorandom_element(scored_cards, pseudoseed "Roland_trimino")
|
||||||
|
local copy = copy_card(chosen, nil, nil, G.playing_card)
|
||||||
copy:add_to_deck()
|
copy:add_to_deck()
|
||||||
G.hand:emplace(copy)
|
G.hand:emplace(copy)
|
||||||
copy:start_materialize()
|
copy:start_materialize()
|
||||||
|
table.insert(copied, copy)
|
||||||
table.insert(G.playing_cards, copy)
|
table.insert(G.playing_cards, copy)
|
||||||
playing_card_joker_effects({copy})
|
end
|
||||||
card:juice_up()
|
|
||||||
end)
|
SMODS.calculate_effect({{message = localize "k_copied_ex", message_card = card}}, card)
|
||||||
|
playing_card_joker_effects(copied)
|
||||||
|
card:start_dissolve()
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue