Add a familiar joker, add new art
This commit is contained in:
parent
ff55a27567
commit
407c18dc6e
7 changed files with 72 additions and 27 deletions
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 66 KiB |
|
|
@ -414,6 +414,16 @@ return {
|
|||
text = {"{X:red,C:white}X#1#{} discards each round"},
|
||||
unlock = {"Defeat {C:dark_edition}#1#"},
|
||||
},
|
||||
j_Roland_yard = {
|
||||
name = "Yard Sale",
|
||||
text = {
|
||||
"Gain {C:money}$#1#{} when a",
|
||||
"card is {C:attention}added",
|
||||
"or {C:attention}removed",
|
||||
"from the deck",
|
||||
},
|
||||
unlock = {"Complete the", "{C:attention}#1#", "challenge"},
|
||||
},
|
||||
},
|
||||
Other = {
|
||||
roland_glass_seal = {
|
||||
|
|
@ -594,7 +604,7 @@ return {
|
|||
c_Roland_Jokerful = "Jokerful",
|
||||
c_Roland_Pastries = "Sweet Pastries",
|
||||
c_Roland_Spin_To_Win = "Spin to Win",
|
||||
c_Roland_Yard_Sale = "Yard Sale",
|
||||
c_Roland_Spring_Cleaning = "Spring Cleaning",
|
||||
},
|
||||
v_dictionary = {
|
||||
b_Roland_add = "ADD",
|
||||
|
|
@ -634,8 +644,6 @@ return {
|
|||
ch_c_Roland_Eternally_Violet = {"{C:attention}Violet Vessel{}'s effect is active every blind"},
|
||||
ch_c_Roland_Glass1 = {"Played cards with no seal have a"},
|
||||
ch_c_Roland_Glass2 = {"{C:green}1 in 2{} chance to gain {C:dark_edition}Glass Seal"},
|
||||
ch_c_Roland_Yard_Sale1 = {"Gain {C:money}$5 {}when playing cards are {C:attention}added {}or {C:attention}removed"},
|
||||
ch_c_Roland_Yard_Sale2 = {"Earn {C:red}no money {}from any other source"},
|
||||
ch_c_Roland_Go = {"Set money to {C:money}$0 {}when entering the shop"},
|
||||
ch_c_Roland_Jokerful = {"The only jokers are {C:mult}Joker{} and {C:chips}Ms. Joker"},
|
||||
ch_c_Roland_Pastries = {"All blinds, cards, and tags are of {C:gold}Bakery{} or {C:blue}Roland"},
|
||||
|
|
@ -644,6 +652,7 @@ return {
|
|||
ch_c_Roland_Showdown_Crimson = {"Showdown blinds are {C:attention}Crimson Heart {}(stacks with above)"},
|
||||
ch_c_Roland_Showdown_Verdant = {"Showdown blinds are {C:attention}Verdant Leaf {}(stacks with above)"},
|
||||
ch_c_Roland_Showdown_Violet = {"Showdown blinds are {C:attention}Violet Vessel {}(stacks with above)"},
|
||||
ch_c_Roland_Spring_Cleaning = {"Earn {C:red}no money {}from sources other than {C:attention}Yard Sale"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
"id": "Roland",
|
||||
"name": "Roland",
|
||||
"prefix": "Roland",
|
||||
"version": "2.9.87",
|
||||
"version": "2.9.88",
|
||||
"badge_colour": "8BE9FD",
|
||||
"display_name": "Roland",
|
||||
"main_file": "src/main.lua",
|
||||
|
|
|
|||
|
|
@ -85,23 +85,21 @@ SMODS.Challenge {
|
|||
local yard_sale
|
||||
|
||||
SMODS.Challenge {
|
||||
key = "Yard_Sale",
|
||||
config = {extra = {dollars = 5}, no_interest = true},
|
||||
key = "Spring_Cleaning",
|
||||
config = {no_interest = true},
|
||||
consumeables = {{id = "c_hanged_man"}},
|
||||
jokers = {{id = "j_Roland_yard"}, {id = "j_Roland_yard"}},
|
||||
vouchers = {{id = "v_magic_trick"}, {id = "v_overstock_norm"}},
|
||||
rules = {custom = multirule("Yard_Sale", 2), modifiers = {{id = "dollars", value = 14}}},
|
||||
rules = {custom = {{id = "Roland_Spring_Cleaning"}}},
|
||||
restrictions = yard,
|
||||
apply = function()
|
||||
G.GAME.modifiers.no_blind_reward = {Small = true, Big = true, Boss = true}
|
||||
G.GAME.modifiers.no_extra_hand_money = true
|
||||
|
||||
f(Bakery_API.econ_only_items):keys():each(function(v)
|
||||
f(Bakery_API.econ_only_items):keys():where(f.nq "j_Roland_yard"):each(function(v)
|
||||
G.GAME.banned_keys[v] = true
|
||||
end)
|
||||
end,
|
||||
calculate = function(self, context)
|
||||
yard_sale = (context.playing_card_added or context.remove_playing_cards) and not context.blueprint
|
||||
return yard_sale and {dollars = self.config.extra.dollars * #(context.cards or context.removed or {})} or nil
|
||||
end,
|
||||
}
|
||||
|
||||
SMODS.Challenge {
|
||||
|
|
@ -347,7 +345,7 @@ q {
|
|||
Bakery_API.no_money_decks = setmetatable({}, {
|
||||
orig = orig,
|
||||
__index = function(_, k)
|
||||
return (G.GAME or {}).challenge == "c_Roland_Yard_Sale" and not yard_sale or orig[k]
|
||||
return (G.GAME or {}).challenge == "c_Roland_Spring_Cleaning" and not yard_sale or orig[k]
|
||||
end,
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -10,11 +10,6 @@ return {
|
|||
fg = HEX "362708ff",
|
||||
bg = HEX "edd198ff",
|
||||
},
|
||||
char = {
|
||||
name = "char (@irregulester)",
|
||||
fg = HEX "f8f8f2ff",
|
||||
bg = HEX "ff79c6ff",
|
||||
},
|
||||
ghostlyfield = {
|
||||
name = "ghostlyfield",
|
||||
fg = HEX "ffffffff",
|
||||
|
|
|
|||
|
|
@ -196,8 +196,8 @@ joker {
|
|||
joker {
|
||||
key = "sunny",
|
||||
pronouns = "it_its",
|
||||
artist = "char",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"food", "on_sell"},
|
||||
cost = 2,
|
||||
rarity = 1,
|
||||
|
|
@ -286,7 +286,7 @@ joker {
|
|||
joker {
|
||||
key = "monomino",
|
||||
pronouns = "it_its",
|
||||
artist = "char",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {price = 4, hand_name = "Four of a Kind"}},
|
||||
attributes = {"sell_value", "scaling", "economy", "hand_type"},
|
||||
cost = 4,
|
||||
|
|
@ -315,7 +315,7 @@ joker {
|
|||
joker {
|
||||
key = "domino",
|
||||
pronouns = "it_its",
|
||||
artist = "char",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {mult_gain = 4, hand_name = "Four of a Kind", mult = 0}},
|
||||
attributes = {"mult", "scaling", "hand_type"},
|
||||
cost = 4,
|
||||
|
|
@ -346,7 +346,7 @@ joker {
|
|||
joker {
|
||||
key = "trimino",
|
||||
pronouns = "it_its",
|
||||
artist = "char",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {times = 4, hand_name = "Four of a Kind"}},
|
||||
attributes = {"generation", "hand_type"},
|
||||
cost = 8,
|
||||
|
|
@ -405,7 +405,7 @@ joker {
|
|||
joker {
|
||||
key = "misfortune",
|
||||
pronouns = "she_they",
|
||||
artist = "char",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"discard", "passive", "tarot", "planet", "generation", "seals"},
|
||||
cost = 6,
|
||||
rarity = 2,
|
||||
|
|
@ -425,6 +425,7 @@ joker {
|
|||
joker {
|
||||
key = "polaris",
|
||||
pronouns = "he_him",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"editions", "space"},
|
||||
cost = 6,
|
||||
rarity = 1,
|
||||
|
|
@ -497,6 +498,7 @@ joker {
|
|||
joker {
|
||||
key = "snowsquall",
|
||||
pronouns = "he_they",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {mult_gain = 3, mult = 0}},
|
||||
attributes = {"mult", "scaling", "hand_type"},
|
||||
cost = 6,
|
||||
|
|
@ -554,6 +556,7 @@ end
|
|||
joker {
|
||||
key = "arctic",
|
||||
pronouns = "they_them",
|
||||
artist = "ghostlyfield",
|
||||
cost = 10,
|
||||
rarity = 3,
|
||||
config = {extra = {frozen = 1, non_frozen = 0, color = "DARK_EDITION"}},
|
||||
|
|
@ -598,8 +601,8 @@ joker {
|
|||
joker {
|
||||
key = "sapling",
|
||||
pronouns = "they_them",
|
||||
artist = "char",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"mult", "suit"},
|
||||
cost = 4,
|
||||
rarity = 1,
|
||||
|
|
@ -836,6 +839,7 @@ joker {
|
|||
joker {
|
||||
key = "venerable",
|
||||
pronouns = "any_all",
|
||||
artist = "ghostlyfield",
|
||||
defeated_blind = "bl_Roland_venerable_visage",
|
||||
config = {extra = {xdiscard = 3}},
|
||||
pixel_size = {w = 68, h = 68},
|
||||
|
|
@ -862,11 +866,45 @@ joker {
|
|||
ease_discard(round_resets.discards - discards)
|
||||
end,
|
||||
}
|
||||
joker {
|
||||
key = "yard",
|
||||
pronouns = "he_him",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {dollars = 3}},
|
||||
attributes = {"economy"},
|
||||
cost = 6,
|
||||
rarity = 1,
|
||||
unlocked = true,
|
||||
discovered = true,
|
||||
eternal_compat = true,
|
||||
blueprint_compat = true,
|
||||
perishable_compat = true,
|
||||
check_for_unlock = function()
|
||||
return not not f.indices "challenge_progress.completed.c_Roland_Spring_Cleaning" (G.PROFILES[G.SETTINGS.profile])
|
||||
end,
|
||||
locked_loc_vars = function()
|
||||
return {vars = {localize("c_Roland_Spring_Cleaning", "challenge_names")}}
|
||||
end,
|
||||
loc_vars = function(_, _, card)
|
||||
return {vars = {card.ability.extra.dollars}}
|
||||
end,
|
||||
calculate = function(_, card, c)
|
||||
local ret = (c.forcetrigger or not c.blueprint and (c.playing_card_added or c.remove_playing_cards)) and
|
||||
{dollars = card.ability.extra.dollars * #(c.cards or c.removed or {c.forcetrigger})} or nil
|
||||
|
||||
if ret and (G.GAME or {}).challenge == "c_Roland_Spring_Cleaning" then
|
||||
G.GAME.dollars = G.GAME.dollars + ret.dollars
|
||||
else
|
||||
return ret
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
joker {
|
||||
key = "bulldozer",
|
||||
pronouns = "she_her",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"xmult"},
|
||||
cost = 6,
|
||||
rarity = 2,
|
||||
|
|
@ -929,8 +967,8 @@ joker {
|
|||
joker {
|
||||
key = "nilly",
|
||||
pronouns = "any_all",
|
||||
artist = "ghostlyfield",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {flipped = false}},
|
||||
attributes = {"xmult", "bakery_double_sided"},
|
||||
cost = 0,
|
||||
|
|
@ -966,6 +1004,7 @@ joker {
|
|||
key = "martingale",
|
||||
pronouns = "he_him",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
config = {extra = {odds = 2}},
|
||||
attributes = {"xmult", "chance"},
|
||||
cost = 8,
|
||||
|
|
@ -1029,6 +1068,7 @@ joker {
|
|||
joker {
|
||||
key = "idle",
|
||||
pronouns = "any_all",
|
||||
artist = "ghostlyfield",
|
||||
rarity = 2,
|
||||
Roland_idle_capacity = 6,
|
||||
cost = G.P_CENTERS.j_idol.cost,
|
||||
|
|
@ -1105,6 +1145,7 @@ joker {
|
|||
joker {
|
||||
key = "suitable",
|
||||
pronouns = "she_they",
|
||||
artist = "ghostlyfield",
|
||||
attributes = {"suit", "passive", "hearts", "diamonds", "spades", "clubs"},
|
||||
cost = 4,
|
||||
rarity = 2,
|
||||
|
|
@ -1157,8 +1198,8 @@ end
|
|||
joker {
|
||||
key = "artemis",
|
||||
pronouns = "any_all",
|
||||
artist = "hamester",
|
||||
idea = "redstoad",
|
||||
artist = "hamester",
|
||||
cost = 6,
|
||||
rarity = 2,
|
||||
config = {extra = {
|
||||
|
|
@ -1224,6 +1265,7 @@ joker {
|
|||
key = "excalibur",
|
||||
pronouns = "he_him",
|
||||
idea = "redstoad",
|
||||
artist = "ghostlyfield",
|
||||
cost = 8,
|
||||
rarity = 3,
|
||||
config = {extra = {
|
||||
|
|
@ -1295,7 +1337,7 @@ joker {
|
|||
joker {
|
||||
key = "oops",
|
||||
pronouns = "she_they",
|
||||
artist = "char",
|
||||
artist = "ghostlyfield",
|
||||
cost = 7,
|
||||
rarity = 3,
|
||||
config = {extra = {probability = 1, probability_mult = 2, reset = 1}},
|
||||
|
|
@ -1338,6 +1380,7 @@ q {
|
|||
return false
|
||||
end
|
||||
|
||||
table.insert(Bakery_API.econ_only_items, "j_Roland_yard")
|
||||
table.insert(Bakery_API.econ_only_items, "j_Roland_artemis")
|
||||
end,
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue