diff --git a/config.lua b/config.lua index fb7d7b4..328d4f5 100644 --- a/config.lua +++ b/config.lua @@ -7,4 +7,5 @@ return { import_funky = false, no_wild_debuff = true, scribable_basket = false, + vitriol = true, } diff --git a/localization/en-us.lua b/localization/en-us.lua index 5e92cca..1f684c2 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -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{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", diff --git a/manifest.json b/manifest.json index 40b9dad..bcf42e2 100644 --- a/manifest.json +++ b/manifest.json @@ -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", diff --git a/src/back.lua b/src/back.lua index d55a491..3c3c6d6 100644 --- a/src/back.lua +++ b/src/back.lua @@ -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" diff --git a/src/blind.lua b/src/blind.lua index 34d38fe..c41d243 100644 --- a/src/blind.lua +++ b/src/blind.lua @@ -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, } diff --git a/src/main.lua b/src/main.lua index 1914288..9f5753c 100644 --- a/src/main.lua +++ b/src/main.lua @@ -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", }, }}, }