Compare commits

..

No commits in common. "main" and "2.2.8" have entirely different histories.
main ... 2.2.8

23 changed files with 23 additions and 116 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 B

View file

@ -6,5 +6,4 @@ return {
import_funky = false,
no_highlight_limit = true,
no_wild_debuff = true,
scribable_basket = false,
}

View file

@ -29,7 +29,7 @@ return {
BakeryCharm_Roland_fat = {
name = "fat i phone",
text = {
"{C:attention}+#1# Booster Pack {}slots",
-- "{C:attention}+#1# Booster Pack {}slots",
"All {C:attention}Booster Packs {}are {C:attention}Mega",
"{C:inactive}(Whenever applicable)",
},
@ -381,12 +381,6 @@ return {
},
},
},
Tag = {
tag_Roland_invisible = {
name = "Invisible Tag",
text = {"{C:attention}Duplicate {}a random Joker", "{C:inactive}(Must have room)"},
},
},
},
misc = {
challenge_names = {
@ -412,7 +406,6 @@ return {
b_Roland_fuse = "FUSE",
b_Roland_equinox_assist = "Assist: Only hide text (Equinox)",
b_Roland_fusable_escapey = "Fusable Escapey (overpowered)",
b_Roland_scribable_basket = "Scribable Basket (overpowered)",
b_Roland_harsh_ante_scaling = "Harsh ante scaling (Ante 40+)",
b_Roland_illusion_seal = "Allow seals from Illusion voucher",
b_Roland_import_funky = "Debug: Import funky.lua",

View file

@ -6,7 +6,7 @@
"author": [
"Emik"
],
"version": "2.2.12",
"version": "2.2.8",
"badge_colour": "8BE9FD",
"main_file": "src/main.lua",
"badge_text_colour": "44475A",

View file

@ -74,7 +74,6 @@ back {
key = "blossom",
pronouns = "any_all",
config = {extra = {times = 2}},
attributes = {"boss_blind"},
loc_vars = function(self, _, _)
return {vars = {self.config.extra.times, self.config.extra.alt_times}}
end,
@ -114,13 +113,12 @@ back {
back {
key = "swapper",
pronouns = "he_him",
attributes = {"spectral", "tarot"},
apply = function(self)
local modifiers = G.GAME.modifiers
modifiers.Roland_swapper_deck = true
modifiers.Roland_alt_swapper_deck = modifiers.Roland_alt_swapper_deck or self:is_alt()
end,
calculate = f().noop,
calculate = function() end,
}
local swapper = {Spectral = "Tarot", Tarot = "Spectral"}

View file

@ -79,7 +79,6 @@ end
charm {
key = "wii",
pronouns = "they_them",
attributes = {"skip"},
calculate = function(_, card, context)
if not context.skip_blind then
return
@ -117,17 +116,16 @@ end
charm {
key = "fat",
pronouns = "he_they",
attributes = {"passive"},
config = {extra = {mod = 1}},
loc_vars = function(_, _, card)
return {vars = {card.ability.extra.mod}}
end,
equip = function(_, card)
SMODS.change_booster_limit(card.ability.extra.mod)
end,
unequip = function(card)
SMODS.change_booster_limit(-card.ability.extra.mod)
end,
-- config = {extra = {mod = 1}},
-- loc_vars = function(_, _, card)
-- return {vars = {card.ability.extra.mod}}
-- end,
-- equip = function(_, card)
-- SMODS.change_booster_limit(card.ability.extra.mod)
-- end,
-- unequip = function(card)
-- SMODS.change_booster_limit(-card.ability.extra.mod)
-- end,
}
local orig_init = Card.init
@ -162,7 +160,6 @@ end
charm {
key = "cocacola",
pronouns = "he_they",
attributes = {"passive", "tarot", "spectral"},
equip = function()
f(G.consumeables.cards):each(add_to_consumable_ability_by(1))
end,
@ -187,7 +184,6 @@ charm {
key = "hand",
pronouns = "he_him",
config = {extra = {hands = -2, hand_size = 5}},
attributes = {"hands", "hand_size", "passive"},
loc_vars = function(_, _, card)
local extra = card.ability.extra
return {vars = {extra.hand_size, extra.hands}}

View file

@ -80,7 +80,6 @@ SMODS.Edition {
key = "frozen",
shader = "frozen",
sound = {sound = "Roland_frozen", per = 1, vol = 0.8},
attributes = {"passive", "scaling"},
weight = 8,
extra_cost = 4,
in_shop = true,

View file

@ -12,7 +12,7 @@ local joker = (function()
return ret
end
---@param tbl SMODS.Joker|{artist?: string, sinis?: boolean|{x: number, y: number}, soul_pos?: boolean|{x: number, y: number}, attributes?: Attributes[]}
---@param tbl SMODS.Joker|{artist?: string, sinis?: boolean|{x: number, y: number}, soul_pos?: boolean|{x: number, y: number}}
return function(tbl)
tbl.pos = inc()
tbl.atlas = "joker"
@ -104,7 +104,6 @@ joker {
key = "escapey",
pronouns = "they_them",
config = {extra = {hands = 2}},
attributes = {"destroy_card", "tarot", "planet", "spectral", "tag"},
cost = 4,
rarity = 2,
sinis = true,
@ -248,7 +247,6 @@ joker {
blueprint_compat = true,
perishable_compat = true,
config = {extra = {chips = 30}},
attributes = {"chips"},
loc_vars = function(_, _, card)
return {vars = {card.ability.extra.chips}}
end,
@ -263,7 +261,6 @@ joker {
pronouns = "she_her",
artist = "char",
config = {extra = {xmult = 4, requirement = 4}},
attributes = {"xmult"},
cost = G.P_CENTERS.j_mr_bones.cost - 1,
rarity = 2,
eternal_compat = false,
@ -298,7 +295,6 @@ joker {
key = "phytoestrogens",
pronouns = "she_her",
config = {extra = {xmult = 0.25}},
attributes = {"mult", "xmult"},
cost = 8,
rarity = 3,
eternal_compat = true,
@ -322,7 +318,6 @@ joker {
pronouns = "it_its",
artist = "char",
config = {extra = {price = 4, hand_name = "Four of a Kind"}},
attributes = {"sell_value", "scaling", "economy", "hand_type"},
cost = 4,
rarity = 1,
eternal_compat = true,
@ -351,7 +346,6 @@ joker {
pronouns = "it_its",
artist = "char",
config = {extra = {mult_gain = 4, hand_name = "Four of a Kind", mult = 0}},
attributes = {"mult", "scaling", "hand_type"},
cost = 4,
rarity = 2,
eternal_compat = true,
@ -382,7 +376,6 @@ joker {
pronouns = "it_its",
artist = "char",
config = {extra = {times = 4, hand_name = "Four of a Kind"}},
attributes = {"generation", "hand_type"},
cost = 8,
rarity = 3,
eternal_compat = false,
@ -436,7 +429,6 @@ joker {
key = "sunny",
pronouns = "they_them",
artist = "char",
attributes = {"food", "on_sell"},
cost = 2,
rarity = 1,
eternal_compat = false,
@ -496,7 +488,6 @@ joker {
joker {
key = "hardboiled",
pronouns = "they_them",
attributes = {"food", "editions", "modify_card", "on_sell"},
cost = 5,
rarity = 2,
eternal_compat = false,
@ -520,7 +511,6 @@ joker {
joker {
key = "basket",
pronouns = "they_them",
attributes = {"food", "generation", "on_sell"},
cost = 8,
rarity = 3,
eternal_compat = false,
@ -546,7 +536,6 @@ joker {
key = "sapling",
pronouns = "they_them",
artist = "char",
attributes = {"mult", "suit"},
cost = 4,
rarity = 1,
config = {extra = {mult = 15, suits = 3}},
@ -580,7 +569,6 @@ joker {
key = "yard",
pronouns = "he_him",
config = {extra = {money = 2}},
attributes = {"economy"},
cost = 4,
rarity = 1,
eternal_compat = true,
@ -598,7 +586,6 @@ joker {
joker {
key = "suitable",
pronouns = "she_they",
attributes = {"suit", "passive", "hearts", "diamonds", "spades", "clubs"},
cost = 4,
rarity = 2,
eternal_compat = true,
@ -651,7 +638,6 @@ joker {
key = "misfortune",
pronouns = "she_they",
artist = "char",
attributes = {"discard", "generation", "seals"},
cost = 6,
rarity = 2,
eternal_compat = true,
@ -671,8 +657,7 @@ joker {
joker {
key = "temple",
pronouns = "any_all",
config = {extra = {xmult = 2}},
attributes = {"xmult", "enhancements"},
config = {extra = {xmult = 1.5}},
cost = 6,
rarity = 2,
eternal_compat = true,
@ -699,7 +684,6 @@ joker {
key = "jokersr",
pronouns = "he_him",
config = {extra = {xmult = 1.25}},
attributes = {"xmult"},
cost = 2,
rarity = 2,
eternal_compat = true,
@ -717,7 +701,6 @@ joker {
joker {
key = "bulldozer",
pronouns = "it_its",
attributes = {"xmult"},
cost = 6,
rarity = 2,
eternal_compat = true,
@ -756,7 +739,6 @@ joker {
key = "martingale",
pronouns = "he_him",
config = {extra = {odds = 2}},
attributes = {"xmult", "chance"},
cost = 8,
rarity = 2,
eternal_compat = true,
@ -805,7 +787,6 @@ joker {
cost = 7,
rarity = 3,
config = {extra = {probability = 1, probability_mult = 2, reset = 1}},
attributes = {"hands", "mod_chance", "scaling"},
eternal_compat = true,
blueprint_compat = false,
perishable_compat = true,
@ -840,7 +821,6 @@ joker {
key = "nilly",
pronouns = "any_all",
config = {extra = {flipped = false}},
attributes = {"xmult"},
cost = 0,
rarity = 3,
eternal_compat = true,
@ -887,7 +867,6 @@ joker {
cost = 10,
rarity = 3,
config = {extra = {repetitions = 1}},
attributes = {"retrigger", "editions"},
eternal_compat = true,
blueprint_compat = true,
perishable_compat = true,

View file

@ -441,7 +441,7 @@ end
---@param func F|fun(v: V, k: K): boolean
---@return boolean|V
---@nodiscard
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
---@overload fun(self: F|{ [K]: V }, func: string): boolean|V
function f:any(func)
func = type(func) == "string" and f.index(func) or func
@ -459,7 +459,7 @@ end
---@param func F|fun(v: V, k: K): boolean
---@return boolean|V
---@nodiscard
---@overload fun(self: F|{ [K]: V }, func: string?): boolean|V
---@overload fun(self: F|{ [K]: V }, func: string): boolean|V
function f:all(func)
func = type(func) == "string" and f.index(func) or func

View file

@ -23,7 +23,6 @@ local function protect_ev(fun)
return fun
end
---@alias Attributes "mult"|"chips"|"xmult"|"xchips"|"score"|"xscore"|"blindsize"|"xblindsize"|"balance"|"swap"|"retrigger"|"scaling"|"reset"|"suit"|"diamonds"|"hearts"|"spades"|"clubs"|"hand_type"|"rank"|"ace"|"two"|"three"|"four"|"five"|"six"|"seven"|"eight"|"nine"|"ten"|"jack"|"queen"|"king"|"face"|"economy"|"generation"|"destroy_card"|"hands"|"discard"|"hand_size"|"chance"|"joker_slot"|"mod_chance"|"copying"|"full_deck"|"passive"|"joker"|"tarot"|"planet"|"spectral"|"enhancements"|"seals"|"editions"|"tag"|"skip"|"modify_card"|"perma_bonus"|"prevents_death"|"boss_blind"|"reroll"|"on_sell"|"sell_value"|"food"|"space"
if false then
-- This allows for better type inference.
SMODS.Mods.Roland.config = require "config"

View file

@ -1,7 +1,7 @@
local qol = assert(SMODS.load_file "src/lib/shared.lua")() or require "lib.shared"
local f, q = unpack(qol)
f {"challenge", "spectral", "edition", "tweaks", "blind", "charm", "joker", "back", "seal", "tag"}:each(function(v)
f {"challenge", "spectral", "edition", "tweaks", "blind", "charm", "joker", "back", "seal"}:each(function(v)
assert(SMODS.load_file("src/" .. v .. ".lua"))(qol)
end)
@ -61,7 +61,6 @@ function SMODS.current_mod.config_tab()
toggle "no_highlight_limit",
_G["Talisman"] and toggle "harsh_ante_scaling",
toggle "fusable_escapey",
G.P_CENTERS.c_Bakery_Scribe and toggle "scribable_basket",
toggle "equinox_assist",
SMODS.Mods.DebugPlus and toggle "import_funky",
},

View file

@ -11,7 +11,6 @@ SMODS.Seal {
key = "glass",
atlas = "seal",
pos = {x = 0, y = 0},
attributes = {"destroy_card", "tag"},
badge_colour = HEX "a6a6a6ff",
pronouns = "he_him",
calculate = function(_, card, context)

View file

@ -38,7 +38,6 @@ spectral {
key = "afterimage",
pronouns = "he_they",
artist = "aster",
attributes = {"editions", "modify_card", "hand_size", "spectral"},
config = {extra = {amount = 1, hand = -2}},
loc_vars = function(_, info_queue, card)
table.insert(info_queue, {key = "e_negative_playing_card", set = "Edition", config = {extra = 1}})
@ -70,7 +69,6 @@ spectral {
spectral {
key = "coolheaded",
config = {extra = {amount = 1}},
attributes = {"editions", "modify_card", "spectral"},
loc_vars = function(_, info_queue, card)
table.insert(info_queue, G.P_CENTERS.e_Roland_frozen)
return {vars = {card.ability.extra.amount}}
@ -96,7 +94,6 @@ spectral {
key = "dual",
pronouns = "they_them",
config = {extra = {amount = 2}},
attributes = {"seal", "modify_card", "spectral"},
loc_vars = function(_, _, card)
return {vars = {card.ability.extra.amount}}
end,
@ -127,7 +124,6 @@ spectral {
key = "mirror",
pronouns = "he_him",
config = {extra = {amount = 1}},
attributes = {"seal", "modify_card", "spectral"},
loc_vars = function(_, info_queue, card)
table.insert(info_queue, G.P_SEALS.Roland_glass)
return {vars = {card.ability.extra.amount}}
@ -149,7 +145,6 @@ local void = spectral {
soul_rate = 0.003,
soul_set = "Spectral",
config = {extra = {amount = 2}},
attributes = {"destroy_card", "generation", "spectral"},
loc_vars = function(_, info_queue, card)
table.insert(info_queue, {key = "e_negative_consumable", set = "Edition", config = {extra = 1}})
table.insert(info_queue, G.P_CENTERS.c_cryptid)

View file

@ -1,34 +0,0 @@
SMODS.Atlas {
px = 34,
py = 34,
key = "tag",
path = "tag.png",
}
SMODS.Tag {
key = "invisible",
atlas = "tag",
min_ante = 2,
pos = {x = 0, y = 0},
apply = function(_, tag)
local modifiers = G.GAME.modifiers
if tag.triggered or
not next(G.jokers.cards) or
#G.jokers.cards + (modifiers.Roland_invisible or 0) >= G.jokers.config.card_limit then
return
end
tag.triggered = true
modifiers.Roland_invisible = (modifiers.Roland_invisible or 0) + 1
tag:yep("!", G.C.GREY, function()
local copied = pseudorandom_element(G.jokers.cards, pseudoseed "Roland_invisible")
local copy = copy_card(copied)
G.jokers:emplace(copy)
copy:add_to_deck()
modifiers.Roland_invisible = (modifiers.Roland_invisible or 0) - 1
return true
end)
end,
}

View file

@ -114,7 +114,7 @@ end
local orig_get_blind_amount = get_blind_amount
---@param ante number
---@return table|number
---@return number
local function blind(ante)
return ante == 39 and 1e294 or (_G["to_number"] or f().id)(orig_get_blind_amount(ante))
end
@ -135,25 +135,10 @@ function get_blind_amount(ante, ...)
end
--- @type { constants?: { TEN: table }, new: (fun(self: self, arr?: number[], sign?: number, noNormalize?: boolean): table), pow: (fun(x: number, y: number): number) }
local big, rem = _G["Big"], tonumber(blind((ante % loop) + 1))
local big, rem = _G["Big"], (ante % loop) + 1
return ante / 15 >= loop and big:new(f(blind(ante - (loop * 15))):map(f().const(10)):table()) or
(ante / 9 >= loop and big:new(f(ante / loop - 8):map(f().const(10)):concat {rem}:table()) or
(ante / 2 >= loop and big:new {rem, ante / loop} or
(big.constants and big.constants.TEN or big:new {10}):pow(rem)))
(ante / 9 >= loop and big:new(f(ante / loop - 8):map(f().const(10)):concat {blind(rem)}:table()) or
(ante / 2 >= loop and big:new {blind(rem), ante / loop} or
(big.constants and big.constants.TEN or big:new {10}):pow(blind(rem))))
end
q(function()
if not G.P_CENTERS.c_Bakery_Scribe then
return
end
local orig_can_use = G.P_CENTERS.c_Bakery_Scribe.can_use
function G.P_CENTERS.c_Bakery_Scribe.can_use(...)
return orig_can_use(...) and
(SMODS.Mods.Roland.config.scribable_basket or f(G.jokers.highlighted):all(function(v)
return v.config.center.key ~= "j_Roland_basket"
end))
end
end)