Compare commits

..

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

25 changed files with 24 additions and 122 deletions

3
.gitignore vendored
View file

@ -38,6 +38,3 @@ luac.out
*.i*86
*.x86_64
*.hex
# Syncthing
.stfolder

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.7",
"badge_colour": "8BE9FD",
"main_file": "src/main.lua",
"badge_text_colour": "44475A",
@ -15,7 +15,7 @@
"provides": [],
"conflicts": [],
"dependencies": [
"Steamodded (>=1.0~*)",
"Steamodded (>=1.*)",
"Lovely (>=0.6)",
"Bakery (>=0.1.26~*)"
]

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

@ -337,8 +337,6 @@ function SMODS.current_mod:calculate(context)
modifiers.Roland_martingale_seed = (modifiers.Roland_martingale_seed or 0) + 1
end
local _ = type(G.calccontext) == "function" and G.calccontext(context)
local _ = type(G.calckeys) == "function" and G.calckeys(f(context):keys())
local _ = type(G.calc) == "function" and G.calc(f(context):keys():string())
local improbable, orig = G.GAME.modifiers.Roland_improbable, G.GAME.probabilities

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)