Files
PyTaikoGreen/Scripts/result/high_score_indicator.lua
2026-07-17 13:03:07 -04:00

50 lines
1.6 KiB
Lua

HighScoreIndicator = {}
HighScoreIndicator.__index = HighScoreIndicator
function HighScoreIndicator.new(score_diff, is_2p)
local self = setmetatable({}, HighScoreIndicator)
tex.load_animations("result")
self.move_anim = tex.get_animation(18, "result")
self.fade_anim = tex.get_animation(19, "result")
self.move_anim:start()
self.fade_anim:start()
self.score_diff = score_diff
self.is_2p = is_2p
self.t_label = tex.load_texture("result/score/high_score")
self.t_num = tex.load_texture("result/score/high_score_num")
local hs = tex.get_skin_config("high_score_indicator_margin")
self.sc_margin = hs and hs.x or 0
return self
end
function HighScoreIndicator:update(current_ms)
self.move_anim:update(current_ms)
self.fade_anim:update(current_ms)
end
function HighScoreIndicator:draw()
local p_idx = self.is_2p and 1 or 0
local y = self.move_anim.attribute
local fade = self.fade_anim.attribute
if self.t_label then
tex.draw_texture(self.t_label, { y = y, fade = fade, index = p_idx })
end
if self.t_num and self.score_diff > 0 then
local str = tostring(self.score_diff)
for i = 1, #str do
local d = tonumber(string.sub(str, #str - i + 1, #str - i + 1)) or 0
tex.draw_texture(self.t_num, {
frame = d,
x = -((i - 1) * self.sc_margin),
y = y,
fade = fade,
index = p_idx,
})
end
end
end