Improve localization and Venerable Visage

This commit is contained in:
Emik 2026-06-18 05:03:04 +02:00
parent 892c502c61
commit 9af0495bf4
Signed by: emik
GPG key ID: 6B0CD72A5E503BDF
6 changed files with 90 additions and 61 deletions

View file

@ -7,4 +7,5 @@ return {
import_funky = false,
no_wild_debuff = true,
scribable_basket = false,
vitriol = true,
}

View file

@ -6,7 +6,7 @@ return {
text = {
"{C:attention}Small{} and {C:attention}Big Blinds{} are",
"replaced with {C:attention}Boss Blinds",
"that are {C:dark_edition}debuffed #1# times",
"that are {C:dark_edition}debuffed twice",
"",
"{C:Bakery_credit_fg_Roland_bakersdozenbagels,s:0.75}Art: BakersDozenBagels",
},
@ -59,39 +59,47 @@ return {
Blind = {
bl_Roland_blizzard = {
name = "The Blizzard",
text = {"All cards", "are Frozen"},
text = {"All cards", "are {C:dark_edition}Frozen"},
},
bl_Roland_divide = {
name = "The Great Divide",
text = {"Half of the deck", "is discarded"},
text = {"Half of the deck", "is {C:red}discarded"},
},
bl_Roland_equinox = {
name = "The Equinox",
text = {"No UI"},
text = {"{C:inactive}No UI"},
},
bl_Roland_falseshuffle = {
name = "The False Shuffle",
text = {"Enhanced cards", "are drawn last"},
text = {"{C:enhanced}Enhanced {}cards", "are drawn {C:attention}last"},
},
bl_Roland_improbable = {
name = "The Improbable",
text = {"All probabilities", "cannot happen"},
text = {"All {C:green}probabilities", "cannot happen"},
},
bl_Roland_mitotic = {
name = "The Mitotic",
text = {"Discarded cards", "are copied"},
text = {"{C:red}Discarded {}cards", "are {C:attention}copied"},
},
bl_Roland_nimble = {
name = "The Nimble",
text = {"The first 5 cards", "drawn are played"},
text = {"The {C:attention}first 5 {}cards", "drawn are {C:blue}played"},
},
bl_Roland_tranquilizer = {
name = "The Tranquilizer",
text = {"#1#s are debuffed", "Changes based on", "most common rank"},
text = {
"{C:attention}#1#s {}are {C:red}debuffed",
"Changes based on",
"most common rank",
},
},
bl_Roland_venerable_visage = {
name = "Venerable Visage",
text = {"Infinite discards", "Lose if any card was", "not played or discarded"},
text = {
"Infinite {C:red}discards",
"Lose if {C:attention}any {}card was",
"not {C:blue}played {}or {C:red}discarded",
},
fail = {
"Blasphemy.",
"Blunder.",
@ -330,7 +338,7 @@ return {
text = {
"Sell this Joker to",
"{C:attention}draw{} the bottom",
"card of the {C:hand}deck",
"card of the deck",
"{C:inactive}(Currently {V:1}#1#{C:inactive}#2#{V:2}#3#{C:inactive})",
},
},
@ -396,7 +404,7 @@ return {
text = {
"{C:attention}Small{} and {C:attention}Big Blinds{} are",
"replaced with {C:attention}Boss Blinds",
"that are {C:dark_edition}debuffed #1# times",
"that are {C:dark_edition}debuffed twice",
"",
"{C:Bakery_credit_fg_Roland_bakersdozenbagels,s:0.75}Art: BakersDozenBagels",
},
@ -404,9 +412,8 @@ return {
sleeve_Roland_blossom_alt = {
name = "Efflorescent Sleeve",
text = {
"{C:attention}Blinds{} are {C:dark_edition}debuffed",
"{C:dark_edition}({X:dark_edition,C:white}(ante * #2#){C:dark_edition}) times",
"{C:inactive}(Instead of #1#)",
"{C:dark_edition}Debuff {X:dark_edition,C:white}#1#X<ante>{C:dark_edition} times",
"{C:inactive}(Instead of twice)",
"",
"{C:Bakery_credit_fg_Roland_bakersdozenbagels,s:0.75}Art: BakersDozenBagels",
},
@ -423,8 +430,7 @@ return {
sleeve_Roland_swapper_alt = {
name = "Sleeve Swapper",
text = {
"{C:attention}All {}consumable",
"types swap places",
"Swap {C:attention}all {}consumables",
"",
"{C:Bakery_credit_fg_Roland_bakersdozenbagels,s:0.75}Art: BakersDozenBagels",
},
@ -436,7 +442,7 @@ return {
text = {
"Add random seals",
"to {C:attention}#1#{} random",
"cards in {C:hands}hand",
"cards in hand",
},
},
c_Roland_primal = {
@ -452,7 +458,7 @@ return {
text = {
"Add a {C:dark_edition}Glass Seal",
"to {C:attention}#1#{} selected",
"cards in {C:hands}hand",
"cards in hand",
},
},
c_Roland_void = {
@ -519,12 +525,13 @@ return {
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",
b_Roland_most_common_card = "(Rank)",
b_Roland_most_common_card = "Rank",
b_Roland_no_wild_debuff = "No wild card debuffs",
b_Roland_na = "N/A",
b_Roland_of = " of ",
b_Roland_toggle = "TOGGLE",
b_Roland_unassigned = "(Unassigned)",
b_Roland_vitriol = "Vitriol (Venerable Visage)",
},
labels = {
Roland_frozen = "Frozen",

View file

@ -3,7 +3,7 @@
"id": "Roland",
"name": "Roland",
"prefix": "Roland",
"version": "2.9.4",
"version": "2.9.5",
"badge_colour": "8BE9FD",
"display_name": "Roland",
"main_file": "src/main.lua",

View file

@ -74,7 +74,7 @@ back {
config = {extra = {alt_times = 4, times = 2}},
attributes = {"boss_blind"},
loc_vars = function(self, _, _)
return {vars = {self.config.extra.times, self.config.extra.alt_times}}
return {vars = {self.config.extra.alt_times}}
end,
apply = function(_, _)
G.GAME.modifiers.Roland_blossom_deck = true
@ -94,12 +94,13 @@ back {
G.GAME.round_resets.ante * self.config.extra.alt_times or
self.config.extra.times
f(count):each(function()
G.GAME.blind:disable()
f(count):each(function(i)
local _ = i == 1 and G.GAME.blind:disable()
q {
delay = 0.4,
func = function()
local _ = i ~= 1 and G.GAME.blind:disable()
SMODS.calculate_effect({message = localize "ph_boss_disabled"}, card)
G.GAME.blind:wiggle()
play_sound "timpani"

View file

@ -460,15 +460,31 @@ local venerable_visage = blind {
}
end,
vitriol = function(b)
local vitriol = SMODS.Mods.Roland.config.vitriol
local resize_to_w, resize_to_h = 320, 200
local is_fullscreen = _G["love"].window.getFullscreen()
if vitriol then
_G["love"].window.setFullscreen(false)
delay(1.5)
end
local function jitter()
local x, y = _G["love"].window.getDesktopDimensions()
return pseudorandom(pseudoseed "RolandVenerableVisageX", 0, x) - x / 2,
pseudorandom(pseudoseed "RolandVenerableVisageY", 0, y) - y / 2
end
if type(b) == "table" and type(b.wiggle) == "function" then
b:wiggle()
end
local fail = G.localization.descriptions.Blind.bl_Roland_venerable_visage.fail
local speed = 0.1
f(G.playing_cards):each(function(v, k)
return v.area ~= G.hand and draw_card(v.area, G.hand, k * 100 / #G.playing_cards, "up", true, v)
end)
SMODS.draw_cards(#G.deck.cards)
play_sound("gong", 0.6)
local fail = G.localization.descriptions.Blind.bl_Roland_venerable_visage.fail
attention_text {
text = pseudorandom_element(fail, pseudoseed "RolandVenerableVisage"),
@ -478,46 +494,49 @@ local venerable_visage = blind {
hold = 2,
}
delay(1)
f {0.15, 0.3, 0.45, 0.6}:each(function(v)
play_sound("gong", v)
end)
f(G.playing_cards):each(function(v)
local len = #G.playing_cards
local w, h, flags = _G["love"].window.getMode()
if vitriol then
_G["love"].window.setMode(resize_to_w, resize_to_h)
_G["love"].resize(resize_to_w, resize_to_h)
end
local x, y = _G["love"].window.getPosition()
f(G.playing_cards):each(function(v, i)
q {
trigger = "before",
delay = speed,
delay = 6 / len,
func = function()
if vitriol then
local x_random, y_random = jitter()
_G["love"].window.setPosition(x + x_random * i / len, y + y_random * i / len)
end
v:start_dissolve()
v:shatter()
b:wiggle()
end,
}
end)
delay(1)
local _ = vitriol and q {
trigger = "before",
delay = 1.5,
func = function()
_G["love"].window.setPosition(x, y)
_G["love"].window.setMode(w, h, flags)
_G["love"].resize(w, h)
_G["love"].window.setFullscreen(is_fullscreen)
end,
}
f(G.P_CARDS):each(function(v)
q {
delay = speed,
func = function()
G.playing_card = (G.playing_card and G.playing_card + 1) or 1
local card = Card(
b and b.T.x or 0,
b and b.T.y or 0,
G.CARD_W,
G.CARD_H,
v,
G.P_CENTERS.m_Bakery_Curse or G.P_CENTERS.c_base,
{playing_card = G.playing_card}
)
table.insert(G.playing_cards, card)
G.deck:emplace(card)
play_sound "card1"
card:add_to_deck()
end,
}
end)
delay(1)
delay(1.5)
end,
}

View file

@ -100,12 +100,13 @@ function SMODS.current_mod.config_tab()
nodes = {
toggle "animated_icon",
toggle "faster_planets",
_G["Talisman"] and toggle "harsh_ante_scaling",
toggle "illusion_seal",
SMODS.Mods.DebugPlus and toggle "import_funky",
toggle "no_wild_debuff",
-- toggle "illusion_seal",
-- toggle "no_wild_debuff",
toggle "vitriol",
toggle "equinox_assist",
SMODS.Mods.DebugPlus and toggle "import_funky",
G.P_CENTERS.c_Bakery_Scribe and toggle "scribable_basket",
_G["Talisman"] and toggle "harsh_ante_scaling",
},
}},
}