Compare commits
19 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bb05a0512b | |||
| 8122036a55 | |||
| 3cf0a17c45 | |||
| 67f6ca08f5 | |||
| 9175f9bb7f | |||
| 3e679120e0 | |||
| 5931aa264b | |||
| 0b5560d019 | |||
| 6f7aac1234 | |||
| 7dfc8671e4 | |||
| 31669e6b0c | |||
| 0f0ec63819 | |||
| 4640b21403 | |||
| 5f28cc3d36 | |||
| 2af1d9be76 | |||
| 65fd36476a | |||
| 1db153664f | |||
| 40e8d4086b | |||
| ced0a9ab08 |
5 changed files with 86 additions and 66 deletions
|
|
@ -18,5 +18,5 @@
|
||||||
"conflicts": [
|
"conflicts": [
|
||||||
"Jen"
|
"Jen"
|
||||||
],
|
],
|
||||||
"version": "1.9.0"
|
"version": "1.11.0"
|
||||||
}
|
}
|
||||||
|
|
@ -153,7 +153,7 @@ local rain_world_jokers = {
|
||||||
"j_jane_monk",
|
"j_jane_monk",
|
||||||
"j_jane_survivor",
|
"j_jane_survivor",
|
||||||
"j_jane_spearmaster",
|
"j_jane_spearmaster",
|
||||||
"j_jane_rivulet",
|
"j_jane_gourmand",
|
||||||
"j_jane_saint",
|
"j_jane_saint",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -694,9 +694,9 @@ back {
|
||||||
G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1
|
G.GAME.starting_voucher_count = (G.GAME.starting_voucher_count or 0) + 1
|
||||||
|
|
||||||
Jane.q(function()
|
Jane.q(function()
|
||||||
|
add_rain_world_joker()
|
||||||
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
||||||
G.jokers:emplace(wee)
|
G.jokers:emplace(wee)
|
||||||
add_rain_world_joker()
|
|
||||||
G.GAME.tortoise = true
|
G.GAME.tortoise = true
|
||||||
G.GAME.obsidian = true
|
G.GAME.obsidian = true
|
||||||
G.GAME.mysterious = true
|
G.GAME.mysterious = true
|
||||||
|
|
|
||||||
|
|
@ -119,12 +119,19 @@ local jumbo = SMODS.Edition({
|
||||||
|
|
||||||
Jane.misprintize(card, {min = jumbo_modifier, max = jumbo_modifier}, nil, true)
|
Jane.misprintize(card, {min = jumbo_modifier, max = jumbo_modifier}, nil, true)
|
||||||
|
|
||||||
|
if (card.ability or {}).bonus and (card.base or {}).nominal then
|
||||||
|
card.ability.bonus = card.ability.bonus + card.base.nominal
|
||||||
|
end
|
||||||
|
|
||||||
if card.added_to_deck then
|
if card.added_to_deck then
|
||||||
card:add_to_deck()
|
card:add_to_deck()
|
||||||
end
|
end
|
||||||
|
|
||||||
Jane.resize(card, Jane.config.wee_sizemod)
|
Jane.resize(card, Jane.config.wee_sizemod)
|
||||||
end,
|
end,
|
||||||
|
on_load = function(card)
|
||||||
|
Jane.resize(card, Jane.config.wee_sizemod)
|
||||||
|
end,
|
||||||
on_remove = function(card)
|
on_remove = function(card)
|
||||||
if not card.Jane_jumbo then
|
if not card.Jane_jumbo then
|
||||||
return
|
return
|
||||||
|
|
@ -139,6 +146,10 @@ local jumbo = SMODS.Edition({
|
||||||
|
|
||||||
Jane.misprintize(card, {min = 1 / jumbo_modifier, max = 1 / jumbo_modifier}, nil, true)
|
Jane.misprintize(card, {min = 1 / jumbo_modifier, max = 1 / jumbo_modifier}, nil, true)
|
||||||
|
|
||||||
|
if (card.ability or {}).bonus and (card.base or {}).nominal then
|
||||||
|
card.ability.bonus = card.ability.bonus - card.base.nominal
|
||||||
|
end
|
||||||
|
|
||||||
if was_added then
|
if was_added then
|
||||||
card:add_to_deck()
|
card:add_to_deck()
|
||||||
end
|
end
|
||||||
|
|
@ -147,7 +158,7 @@ local jumbo = SMODS.Edition({
|
||||||
end,
|
end,
|
||||||
sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5},
|
sound = {sound = "jane_e_jumbo", per = 1, vol = 0.5},
|
||||||
weight = 5,
|
weight = 5,
|
||||||
extra_cost = 5,
|
extra_cost = 2,
|
||||||
in_shop = true,
|
in_shop = true,
|
||||||
shader = false,
|
shader = false,
|
||||||
apply_to_float = false,
|
apply_to_float = false,
|
||||||
|
|
@ -160,13 +171,21 @@ function Card:set_ability(...)
|
||||||
local is_jumbo = self.edition and self.edition.jane_jumbo
|
local is_jumbo = self.edition and self.edition.jane_jumbo
|
||||||
|
|
||||||
if is_jumbo then
|
if is_jumbo then
|
||||||
jumbo.on_remove(self)
|
if Jane.cry then
|
||||||
|
jumbo.on_remove(self)
|
||||||
|
else
|
||||||
|
Jane.resize(self)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local ret = orig_set_ability(self, ...)
|
local ret = orig_set_ability(self, ...)
|
||||||
|
|
||||||
if is_jumbo then
|
if is_jumbo then
|
||||||
jumbo.on_apply(self)
|
if Jane.cry then
|
||||||
|
jumbo.on_apply(self)
|
||||||
|
else
|
||||||
|
Jane.resize(self, Jane.config.wee_sizemod)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ function Jane.misprintize_tbl(name, ref_tbl, ref_value, clear, override, stack,
|
||||||
(k == "h_x_chips" and not Jane.cry) and not
|
(k == "h_x_chips" and not Jane.cry) and not
|
||||||
(k == "id") and not
|
(k == "id") and not
|
||||||
(k == "colour") and not
|
(k == "colour") and not
|
||||||
|
(k == "nominal") and not
|
||||||
(k == "suit_nominal") and not
|
(k == "suit_nominal") and not
|
||||||
(k == "base_nominal") and not
|
(k == "base_nominal") and not
|
||||||
(k == "face_nominal") and not
|
(k == "face_nominal") and not
|
||||||
|
|
|
||||||
120
src/slugcat.lua
120
src/slugcat.lua
|
|
@ -275,22 +275,16 @@ SMODS.Joker {
|
||||||
atlas = "janegourmand",
|
atlas = "janegourmand",
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "The Gourmand",
|
name = "The Gourmand",
|
||||||
text = {
|
text = {"All cards are {C:dark_edition}Jumbo"},
|
||||||
"Values on {C:attention}consumables",
|
|
||||||
"are {C:attention}" .. (Jane.cry and "multiplied" or "added") .. "{} by {C:attention}#1#" .. (Jane.cry and "" or "{} when"),
|
|
||||||
(Jane.cry and "when " or "") .. "they are created",
|
|
||||||
"{C:inactive}(If possible)",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
loc_vars = function(_, _, center)
|
|
||||||
return {vars = {center.ability.modifier}}
|
|
||||||
end,
|
|
||||||
config = {modifier = Jane.cry and 2 or 1},
|
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
blueprint_compat = false,
|
blueprint_compat = false,
|
||||||
cost = 8,
|
cost = 20,
|
||||||
rarity = 3,
|
rarity = 4,
|
||||||
|
loc_vars = function(_, info_queue)
|
||||||
|
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_jumbo
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function add_to_consumable_ability_by(n)
|
local function add_to_consumable_ability_by(n)
|
||||||
|
|
@ -344,14 +338,14 @@ local orig_set_ability = Card.set_ability
|
||||||
function Card:set_ability(center, initial, delay_sprites)
|
function Card:set_ability(center, initial, delay_sprites)
|
||||||
orig_set_ability(self, center, initial, delay_sprites)
|
orig_set_ability(self, center, initial, delay_sprites)
|
||||||
|
|
||||||
if next(SMODS.find_card("j_jane_gourmand")) and
|
if next(SMODS.find_card("j_jane_rivulet")) and
|
||||||
self.gc and
|
self.gc and
|
||||||
self:gc().key ~= "c_base" and
|
self:gc().key ~= "c_base" and
|
||||||
string.sub(self:gc().key, 1, 2) == "c_" then
|
string.sub(self:gc().key, 1, 2) == "c_" then
|
||||||
if Jane.cry or not ((SMODS.Mods.Roland or {}).qol or {})[1] then
|
if Jane.cry or not ((SMODS.Mods.Roland or {}).qol or {})[1] then
|
||||||
local mod = 1
|
local mod = 1
|
||||||
|
|
||||||
for _, v in pairs(SMODS.find_card("j_jane_gourmand")) do
|
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
|
||||||
mod = mod * v.ability.modifier
|
mod = mod * v.ability.modifier
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -359,7 +353,7 @@ function Card:set_ability(center, initial, delay_sprites)
|
||||||
else
|
else
|
||||||
local mod = 0
|
local mod = 0
|
||||||
|
|
||||||
for _, v in pairs(SMODS.find_card("j_jane_gourmand")) do
|
for _, v in pairs(SMODS.find_card("j_jane_rivulet")) do
|
||||||
mod = mod + v.ability.modifier
|
mod = mod + v.ability.modifier
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -522,15 +516,21 @@ SMODS.Joker {
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "The Rivulet",
|
name = "The Rivulet",
|
||||||
text = {
|
text = {
|
||||||
"All cards are given",
|
"Values on {C:attention}consumables",
|
||||||
"a random {C:dark_edition}Edition",
|
"are {C:attention}" .. (Jane.cry and "multiplied" or "added") .. "{} by {C:attention}#1#" .. (Jane.cry and "" or "{} when"),
|
||||||
|
(Jane.cry and "when " or "") .. "they are created",
|
||||||
|
"{C:inactive}(If possible)",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
config = {modifier = Jane.cry and 2 or 1},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
blueprint_compat = false,
|
blueprint_compat = false,
|
||||||
cost = 20,
|
cost = 8,
|
||||||
rarity = 4,
|
rarity = 3,
|
||||||
|
loc_vars = function(_, _, center)
|
||||||
|
return {vars = {center.ability.modifier}}
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local orig_draw = Card.draw
|
local orig_draw = Card.draw
|
||||||
|
|
@ -555,11 +555,11 @@ function Card:draw(layer)
|
||||||
if cen and
|
if cen and
|
||||||
self.facing == "front" and
|
self.facing == "front" and
|
||||||
self.config and
|
self.config and
|
||||||
(self.added_to_deck or (self.area and self.area == G.hand)) and not
|
(self.added_to_deck or (self.area and self.area == G.hand)) and
|
||||||
self.edition and
|
not self.edition and
|
||||||
(self.area == G.consumeables or cen.set ~= "Booster") and
|
(self.area == G.consumeables or cen.set ~= "Booster") and
|
||||||
next(SMODS.find_card("j_jane_rivulet")) then
|
next(SMODS.find_card("j_jane_gourmand")) then
|
||||||
self:set_edition(poll_edition("rivulet_edition", nil, true, true))
|
self:set_edition("e_jane_jumbo", true, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
orig_draw(self, layer)
|
orig_draw(self, layer)
|
||||||
|
|
@ -584,20 +584,20 @@ SMODS.Joker {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Use {}to toggle itself or",
|
"{C:attention}Use {}to toggle itself or",
|
||||||
"other Jokers to its",
|
"other Jokers to its",
|
||||||
"left's {X:legendary,C:white}Eternal{} sticker",
|
"left's {C:legendary}Eternal{} sticker",
|
||||||
"{C:attention}#4#{}#5#{X:black,C:jane_RGB}#6#{C:spectral}#7#",
|
"{C:attention}#4#{}#5#{C:spectral}#6#{}#7#",
|
||||||
"{C:inactive}#8#{C:attention}#9#{C:inactive}#10#",
|
"{C:inactive,s:1.25}#8#{C:attention,s:1.25}#9#{C:inactive,s:1.25}#10#",
|
||||||
Jane.cry and "{C:inactive}(Gateway has no downside)" or nil,
|
Jane.cry and "{C:inactive}(Gateway has no downside)" or nil,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {karma = 0, max_karma = Jane.cry and 10 or 2}},
|
config = {extra = {changes_editions = false, jokers = Jane.cry and 10 or 1, karma = 0, max_karma = Jane.cry and 10 or 3}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
cost = 20,
|
cost = 20,
|
||||||
rarity = 4,
|
rarity = 4,
|
||||||
blueprint_compat = true,
|
blueprint_compat = true,
|
||||||
loc_vars = function(_, info_queue, card)
|
loc_vars = function(_, info_queue, card)
|
||||||
info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or G.P_CENTERS.c_ankh
|
info_queue[#info_queue + 1] = Jane.cry and G.P_CENTERS.c_cry_gateway or nil
|
||||||
|
|
||||||
local extra = card.ability.extra
|
local extra = card.ability.extra
|
||||||
local karma = extra.karma
|
local karma = extra.karma
|
||||||
|
|
@ -610,21 +610,21 @@ SMODS.Joker {
|
||||||
attuned and "The" or "",
|
attuned and "The" or "",
|
||||||
attuned and "Attuned" or "",
|
attuned and "Attuned" or "",
|
||||||
attuned and "" or "Attune ",
|
attuned and "" or "Attune ",
|
||||||
attuned and "alongside its " or "after ",
|
attuned and "" or "at ",
|
||||||
attuned and "Edition" or max_karma,
|
attuned and (Jane.cry and "Gateways " or "Spectrals ") or
|
||||||
attuned and "" or (Jane.cry and " Gateways" or " Ankhs"),
|
max_karma .. (Jane.cry and " Gateways" or " Spectrals"),
|
||||||
attuned and "" or "[",
|
attuned and "add Joker slots" or "",
|
||||||
attuned and "" or karma,
|
attuned and "[Currently " or "[",
|
||||||
attuned and "(Cannot be debuffed)" or " / " .. max_karma .. "]",
|
attuned and "+" .. karma or karma,
|
||||||
|
attuned and "]" or " / " .. max_karma .. "]",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
update = function(_, card, _)
|
update = function(_, card, _)
|
||||||
local extra = card.ability.extra
|
if card.edition and card.edition.Roland_frozen then
|
||||||
card.debuff_immune = extra.is_attuned
|
card:set_edition("e_base")
|
||||||
|
elseif card.children.floating_sprite then
|
||||||
if card.children.floating_sprite then
|
card.children.floating_sprite:set_sprite_pos({x = card.ability.extra.is_attuned and 2 or 1, y = 0})
|
||||||
card.children.floating_sprite:set_sprite_pos({x = extra.is_attuned and 2 or 1, y = 0})
|
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
|
|
@ -666,14 +666,9 @@ SMODS.Joker {
|
||||||
end, 1)
|
end, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
if extra.is_attuned then
|
if extra.karma >= max_karma then
|
||||||
card.debuff = false
|
local karma = (extra.is_attuning or extra.is_attuned) and 0 or extra.karma
|
||||||
|
G.jokers:change_size(karma * extra.jokers)
|
||||||
if card.ability then
|
|
||||||
card.ability.perishable = false
|
|
||||||
card.ability.perish_tally = 1e9
|
|
||||||
end
|
|
||||||
elseif extra.karma >= max_karma then
|
|
||||||
ascend()
|
ascend()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -684,9 +679,9 @@ SMODS.Joker {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local key = context.consumeable:gc().key
|
local gc = context.consumeable:gc()
|
||||||
|
|
||||||
if Jane.cry and key ~= "c_cry_gateway" or not Jane.cry and key ~= "c_ankh" then
|
if Jane.cry and gc.key ~= "c_cry_gateway" or not Jane.cry and gc.set ~= "Spectral" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -702,7 +697,7 @@ SMODS.Joker {
|
||||||
{message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN}
|
{message = "+" .. quota .. " Karma", colour = G.C.PALE_GREEN}
|
||||||
)
|
)
|
||||||
|
|
||||||
card_eval_status_text(
|
local _ = extra.karma <= max_karma and card_eval_status_text(
|
||||||
card,
|
card,
|
||||||
"extra",
|
"extra",
|
||||||
nil,
|
nil,
|
||||||
|
|
@ -715,25 +710,28 @@ SMODS.Joker {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
G.jokers:change_size((extra.is_attuned and quota or extra.karma) * extra.jokers)
|
||||||
ascend()
|
ascend()
|
||||||
end,
|
end,
|
||||||
Bakery_can_use = Jane.can_use,
|
Bakery_can_use = function(_, card)
|
||||||
|
return Jane.can_use() and not card.debuff
|
||||||
|
end,
|
||||||
Bakery_use_joker = function(_, card)
|
Bakery_use_joker = function(_, card)
|
||||||
for joker_index = 1, math.max(card.rank - 1, 1) do
|
for joker_index = 1, math.max(card.rank - 1, 1) do
|
||||||
local joker = G.jokers.cards[joker_index]
|
local joker = G.jokers.cards[joker_index]
|
||||||
|
|
||||||
if card.ability.extra.is_attuned and joker.Roland_frozen then
|
|
||||||
goto edition_only
|
|
||||||
end
|
|
||||||
|
|
||||||
joker:set_eternal(not joker.ability.eternal)
|
joker:set_eternal(not joker.ability.eternal)
|
||||||
|
|
||||||
if not card.ability.extra.is_attuned or joker.ability.eternal then
|
if joker.Roland_frozen_ability then
|
||||||
|
joker.Roland_frozen_ability.eternal = joker.ability.eternal
|
||||||
|
end
|
||||||
|
|
||||||
|
if not card.ability.extra.changes_editions or
|
||||||
|
not card.ability.extra.is_attuned or
|
||||||
|
joker.ability.eternal then
|
||||||
joker:juice_up()
|
joker:juice_up()
|
||||||
goto no_edition
|
goto continue
|
||||||
end
|
end
|
||||||
|
|
||||||
::edition_only::
|
|
||||||
local edition = 1
|
local edition = 1
|
||||||
|
|
||||||
for ii, vv in ipairs(joker.edition and G.P_CENTER_POOLS.Edition or {}) do
|
for ii, vv in ipairs(joker.edition and G.P_CENTER_POOLS.Edition or {}) do
|
||||||
|
|
@ -745,14 +743,16 @@ SMODS.Joker {
|
||||||
|
|
||||||
local next = edition < #G.P_CENTER_POOLS.Edition and edition + 1 or 1
|
local next = edition < #G.P_CENTER_POOLS.Edition and edition + 1 or 1
|
||||||
joker:set_edition(G.P_CENTER_POOLS.Edition[next].key)
|
joker:set_edition(G.P_CENTER_POOLS.Edition[next].key)
|
||||||
::no_edition::
|
::continue::
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
if Cryptid and Cryptid.aliases then
|
if Cryptid and Cryptid.aliases then
|
||||||
Cryptid.aliases["saint"] = "j_jane_saint"
|
Cryptid.aliases["saint"] = "j_jane_saint"
|
||||||
|
Cryptid.aliases["attuned"] = "j_jane_saint"
|
||||||
Cryptid.aliases["the saint"] = "j_jane_saint"
|
Cryptid.aliases["the saint"] = "j_jane_saint"
|
||||||
|
Cryptid.aliases["the attuned"] = "j_jane_saint"
|
||||||
end
|
end
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue