#[Game feel/Info] Hold for final hand score (see comparison video)

14 messages · Page 1 of 1 (latest)

fathom kestrel
#

The hand score goes away too fast in vanilla, especially for big hands that increase the game speed a lot. Not only can you not see your score, which may be important for decisions, but it's also very anticlimactic to spend so much time building up the score and not spend a second seeing your result.

Download:
https://github.com/Wiwiweb/BalatroMods/blob/main/HoldForFinalHandScore.lua

Mod details:

  • Resets game speed acceleration right before the final Chip X Mult.
  • Pauses 1.5 seconds (affected by game speed) for the final Chip X Mult, before it turns into the final hand score.
  • Pauses for the final hand score before it gets added to the round score. It waits for the flames to die down, or if there are no flames, it waits 1 second.

I quite like the dramatic reveal of the hand score as the flames goes down. I didn't do that on purpose but it's cool.

GitHub

Various mods for Balatro. Contribute to Wiwiweb/BalatroMods development by creating an account on GitHub.

sly prawn
#

neat idea, but i do feel like the pause is a bit awkward

fathom kestrel
#

Do note that the pause is this long in the video only because this was a big score. I like it, it's dramatic.

hushed rover
#

this should be a feature in vanilla honestly, a toggleable one, but a vanilla feature nonetheless

vocal lantern
#

a very sound solution and implementation

vocal lantern
#

I inform you that the mod breaks the plazma deck, it loses its scoring rule

fathom kestrel
vocal lantern
terse flume
# fathom kestrel Does it actually break the effect or just the animation? I'll test it out when I...

Here's the code I believe it is breaking, I haven't tested anything
It is in the back.lua

function Back:trigger_effect(args)
    if not args then return end
    
    if self.name == 'Anaglyph Deck' and args.context == 'eval' and G.GAME.last_blind and G.GAME.last_blind.boss then
        G.E_MANAGER:add_event(Event({
            func = (function()
                add_tag(Tag('tag_double'))
                play_sound('generic1', 0.9 + math.random()*0.1, 0.8)
                play_sound('holo1', 1.2 + math.random()*0.1, 0.4)
                return true
            end)
        }))
    end
    if self.name == 'Plasma Deck' and args.context == 'blind_amount' then
        return 
    end

    if self.name == 'Plasma Deck' and args.context == 'final_scoring_step' then
        local tot = args.chips + args.mult
        args.chips = math.floor(tot/2)
        args.mult = math.floor(tot/2)
        update_hand_text({delay = 0}, {mult = args.mult, chips = args.chips})

        G.E_MANAGER:add_event(Event({
            func = (function()
                local text = localize('k_balanced')
                play_sound('gong', 0.94, 0.3)
                play_sound('gong', 0.94*1.5, 0.2)
                play_sound('tarot1', 1.5)
                ease_colour(G.C.UI_CHIPS, {0.8, 0.45, 0.85, 1})
                ease_colour(G.C.UI_MULT, {0.8, 0.45, 0.85, 1})
                attention_text({
                    scale = 1.4, text = text, hold = 2, align = 'cm', offset = {x = 0,y = -2.7},major = G.play
                })
                G.E_MANAGER:add_event(Event({
                    trigger = 'after',
                    blockable = false,
                    blocking = false,
                    delay =  4.3,
                    func = (function() 
                            ease_colour(G.C.UI_CHIPS, G.C.BLUE, 2)
                            ease_colour(G.C.UI_MULT, G.C.RED, 2)
                        return true
                    end)
                }))
                G.E_MANAGER:add_event(Event({
                    trigger = 'after',
                    blockable = false,
                    blocking = false,
                    no_delete = true,
                    delay =  6.3,
                    func = (function() 
                        G.C.UI_CHIPS[1], G.C.UI_CHIPS[2], G.C.UI_CHIPS[3], G.C.UI_CHIPS[4] = G.C.BLUE[1], G.C.BLUE[2], G.C.BLUE[3], G.C.BLUE[4]
                        G.C.UI_MULT[1], G.C.UI_MULT[2], G.C.UI_MULT[3], G.C.UI_MULT[4] = G.C.RED[1], G.C.RED[2], G.C.RED[3], G.C.RED[4]
                        return true
                    end)
                }))
                return true
            end)
        }))

        delay(0.6)
        return args.chips, args.mult
    end
end
#

Also, just an FYI, this mod seems to break
Rose Happy's "Borrowed Deck" https://discord.com/channels/1116389027176787968/1213054535334109184
and Chamels' (me) "Ace In The Hole Deck" https://discord.com/channels/1116389027176787968/1215144701586575360
For these two, I believe it has to do with how all three use local Backtrigger_effectref = Back.trigger_effect function Back.trigger_effect(self, args)
and what stems from there.
There might be other mods it breaks but these are the only ones that have been brought to my attention
Its something I'm looking into on how to fix so all of them can work together but I'm not great at coding so we'll see

#

P.S. Cool mod btw, I have some friends that play on insane game speeds so they're going to love being able to see their big numbers

meager solar
#

Looks like this mod breaks the anaglyph deck, no double tags are granted after beating the boss blind

shadow nymph
fathom kestrel
#

Yes! merged, thanks