determination, locale changes, and some fixes to inflation joker

This commit is contained in:
Sunskimmer82 2025-06-20 13:06:28 -05:00
parent 5902432b84
commit 16e3a586b6
4 changed files with 96 additions and 30 deletions

Binary file not shown.

View File

@ -2,7 +2,6 @@
-- DETERMINATION -- DETERMINATION
SMODS.Joker { SMODS.Joker {
key = "determination", key = "determination",
name = "Determination",
atlas = "jokers_atlas", atlas = "jokers_atlas",
pos = { x = 0, y = 0 }, pos = { x = 0, y = 0 },
unlocked = true, unlocked = true,
@ -15,35 +14,39 @@ SMODS.Joker {
end, end,
blueprint_compat = false, blueprint_compat = false,
calculate = function(self, card, context) calculate = function(self, card, context)
if context.setting_blind and not self.getting_sliced then if context.end_of_round and G.GAME.blind.boss then
card.ability.extra.remaining = G.GAME.round_resets.ante card.ability.extra.remaining = G.GAME.round_resets.ante + 1
end end
if context.end_of_round and context.game_over and context.main_eval and ( card.ability.extra.remaining > 0 ) then if context.after then
G.E_MANAGER:add_event(Event({ print(G.GAME.current_round.hands_left)
func = function() if G.GAME.current_round.hands_left == 0 then
G.GAME.current_round.hands_left = G.GAME.round_resets.hands; if card.ability.extra.remaining > 0 then
G.GAME.current_round.discards_left = G.GAME.round_resets.discards; G.GAME.current_round.hands_left = G.GAME.round_resets.hands
G.GAME.current_round.discards_left = G.GAME.round_resets.discards
play_sound('serenasbalatro_soul') play_sound('serenasbalatro_soul')
card.ability.extra.remaining = card.ability.extra.remaining - 1 card.ability.extra.remaining = card.ability.extra.remaining - 1
context.main_eval = false
return true
end end
})) end
return { end
message = localize('k_saved_ex'), end,
saved = 'ph_mr_bones', sb_credits = {
colour = G.C.RED idea = {
"Annalert"
},
art = {
"Serena"
},
code = {
"Serena"
}
} }
end
end
} }
-- Inflation -- Inflation
SMODS.Joker { SMODS.Joker {
key = "inflation", key = "inflation",
name = "Inflation",
atlas = "jokers_atlas", atlas = "jokers_atlas",
pos = { x = 1, y = 0 }, pos = { x = 1, y = 0 },
unlocked = true, unlocked = true,
@ -65,7 +68,7 @@ SMODS.Joker {
print("type of value attached to field "..i.." on joker "..joker.ability.name.. " is "..type(v)) print("type of value attached to field "..i.." on joker "..joker.ability.name.. " is "..type(v))
if type(v) == "number" and ((v>0) or (((i=="x_mult")or(i=="xmult")) and v~=0) or ((i=="h_x_mult") and v~=0)) and (i ~= "order") and (i ~= "cost") then if type(v) == "number" and ((v>0) or ((i=="Xmult" and v>1) or (i=="xmult" and v>1) or (i=="h_x_chips" and v>1) or (i=="x_chips" and v>1))) and (i ~= "order") and (i ~= "cost") then
G.jokers.cards[_].ability[i] = v + card.ability.extra.increment G.jokers.cards[_].ability[i] = v + card.ability.extra.increment
print("incremented field "..i.." to "..v) print("incremented field "..i.." to "..v)
elseif type(v) == "table" then elseif type(v) == "table" then
@ -85,7 +88,18 @@ SMODS.Joker {
colour = G.C.MONEY colour = G.C.MONEY
} }
end end
end end,
sb_credits = {
idea = {
"Serena"
},
art = {
"Serena"
},
code = {
"Serena"
}
}
} }
-- SMODS.Joker { -- SMODS.Joker {
@ -95,12 +109,22 @@ SMODS.Joker {
-- pos = { x = 2, y = 0 }, -- pos = { x = 2, y = 0 },
-- unlocked = true, -- unlocked = true,
-- discovered = true, -- discovered = true,
-- ,
-- sb_credits = {
-- idea = {
-- "Serena"
-- },
-- art = {
-- "Penta"
-- },
-- code = {
-- "Serena"
-- }
-- }
-- } -- }
SMODS.Joker { SMODS.Joker {
key = "dr_house", key = "dr_house",
name = "Dr. House",
atlas = "jokers_atlas", atlas = "jokers_atlas",
pos = { x = 3, y = 0 }, pos = { x = 3, y = 0 },
unlocked = true, unlocked = true,
@ -112,6 +136,34 @@ SMODS.Joker {
rarity = 2, rarity = 2,
cost = 8, cost = 8,
calculate = function(self, card, context) calculate = function(self, card, context)
--stage 1: remove debuff on played hand
if context.before and context.cardarea == G.play then
for i, played_card in ipairs(G.play.cards) do
print("index "..i.." has card "..played_card.ability.name)
if played_card.debuffed then
G.play.cards[i].debuffed = false
card.ability.extra.x_mult = card.ability.extra.x_mult + card.ability.extra.increase
end
end
end
--stage 2: do the xmult thing 🤤🤤🤤🤤🤤
if context.joker_main then
return {
xmult = card.ability.extra.xmult
}
end
end, end,
sb_credits = {
idea = {
"Serena"
},
art = {
"scopophobiaz"
},
code = {
"Serena"
}
}
} }

View File

@ -6,11 +6,11 @@ return {
j_serenasbalatro_determination = { j_serenasbalatro_determination = {
name = "{C:red}DETERMINATION{}", name = "{C:red}DETERMINATION{}",
text = { text = {
"{C:inactive}The hardened SOUL in your chest.{}", "{C:inactive}The hardened {S:1.1,C:red,E:2}SOUL{} in your chest.{}",
"When you would die, replenish", "When you would die, replenish",
"all of your {S:1.1,C:red,E:2}Hands{} and {S:1.1,C:red,E:2}Discards{}.", "all of your {S:1.1,C:red}Hands{} and {S:1.1,C:red}Discards{}.",
"Deactivates after {S:1.1,C:red,E:2}#1#{} activation(s), and replenishes", "Inactive after {S:1.1,C:red,E:2}#1#{} activation(s), and replenishes",
"after defeating a boss blind." "after a boss blind is defeated."
}, },
}, },
j_serenasbalatro_inflation = { j_serenasbalatro_inflation = {
@ -20,6 +20,20 @@ return {
"held joker by {C:money}#1#{} at the end of each round.", "held joker by {C:money}#1#{} at the end of each round.",
}, },
}, },
j_serenasbalatro_mimic = {
name = "Mimic",
text = {
},
},
j_serenasbalatro_dr_house = {
name = "Dr. House",
text = {
"This joker gains {X:mult,C:white}x#2#{} mult when a debuffed card is played,",
"and removes debuffed from the card.",
"{C:inactive}Currently x#1# mult.{}"
}
}
}, },
} }
} }

View File

@ -5,7 +5,7 @@
"author": [ "author": [
"Serena (Sunskimmer82)" "Serena (Sunskimmer82)"
], ],
"description": "A mod containing all the weird and wacky things my brain has come up with", "description": "A mod containing all the weird and wacky things my brain has come up with.",
"main_file": "serenasbalatro.lua", "main_file": "serenasbalatro.lua",
"badge_colour": "ffffff", "badge_colour": "ffffff",
"version": "0.0.1" "version": "0.0.1"