From 71a7cf16c7580a2f1d8f76939ef163bae0a6d7c2 Mon Sep 17 00:00:00 2001 From: TaikoZhong <108016253+GanYiZhong@users.noreply.github.com> Date: Tue, 20 Oct 2026 16:32:35 +0800 Subject: [PATCH] Result crown: shine sweep per crown colour The idle crown shine flashed solid white crown shapes over the crown. Each crown colour now has its own three sweep frames (shine_clear / shine_fc / shine_dfc, 320x320, aligned to the crown) showing a diagonal light band across that crown's art, and the result screen draws the set that matches the crown. Co-Authored-By: Claude Opus 5.5 --- Graphics/result/crown/shine_clear.png | 3 + Graphics/result/crown/shine_dfc.png | 3 + Graphics/result/crown/shine_fc.png | 3 + Graphics/result/crown/texture.json | 90 +++++++++++++++++++++++++++ Scripts/result/result_crown.lua | 9 ++- 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 Graphics/result/crown/shine_clear.png create mode 100644 Graphics/result/crown/shine_dfc.png create mode 100644 Graphics/result/crown/shine_fc.png diff --git a/Graphics/result/crown/shine_clear.png b/Graphics/result/crown/shine_clear.png new file mode 100644 index 0000000..77b2772 --- /dev/null +++ b/Graphics/result/crown/shine_clear.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8cfbca3d3e774299f203a89caa102d3bdf51f9b2c7d0a082f01fad9424a0580 +size 16246 diff --git a/Graphics/result/crown/shine_dfc.png b/Graphics/result/crown/shine_dfc.png new file mode 100644 index 0000000..ecc66d6 --- /dev/null +++ b/Graphics/result/crown/shine_dfc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b33356e488d84048e67e0b616bdccb1378d7186887028648fe8e324957067a28 +size 17338 diff --git a/Graphics/result/crown/shine_fc.png b/Graphics/result/crown/shine_fc.png new file mode 100644 index 0000000..977c5a0 --- /dev/null +++ b/Graphics/result/crown/shine_fc.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ada289eb6e0338f9b7e63793d88ee1636be54f05231456b1e12fc4d185c5a6c2 +size 14689 diff --git a/Graphics/result/crown/texture.json b/Graphics/result/crown/texture.json index 3c1026c..562742f 100644 --- a/Graphics/result/crown/texture.json +++ b/Graphics/result/crown/texture.json @@ -90,5 +90,95 @@ "x": 989, "y": 626 } + ], + "shine_clear": [ + { + "x": 232, + "y": 349, + "crop": [ + [ + 0, + 0, + 320, + 320 + ], + [ + 320, + 0, + 320, + 320 + ], + [ + 640, + 0, + 320, + 320 + ] + ] + }, + { + "x": 1188, + "y": 349 + } + ], + "shine_fc": [ + { + "x": 232, + "y": 349, + "crop": [ + [ + 0, + 0, + 320, + 320 + ], + [ + 320, + 0, + 320, + 320 + ], + [ + 640, + 0, + 320, + 320 + ] + ] + }, + { + "x": 1188, + "y": 349 + } + ], + "shine_dfc": [ + { + "x": 232, + "y": 349, + "crop": [ + [ + 0, + 0, + 320, + 320 + ], + [ + 320, + 0, + 320, + 320 + ], + [ + 640, + 0, + 320, + 320 + ] + ] + }, + { + "x": 1188, + "y": 349 + } ] } diff --git a/Scripts/result/result_crown.lua b/Scripts/result/result_crown.lua index 4c47a9d..3f7671e 100644 --- a/Scripts/result/result_crown.lua +++ b/Scripts/result/result_crown.lua @@ -57,6 +57,10 @@ function ResultCrown.new(crown_type, is_2p, has_2p) self.t_crown = tex.get_texture("result/crown/" .. (crown_names[crown_type] or "crown_clear")) self.t_crown_fade = tex.get_texture("result/crown/crown_fade") self.t_gleam = tex.get_texture("result/crown/gleam") + -- crown_loop shine: each crown colour has its own three sweep frames, pieces of that crown's + -- art crossed by a diagonal light band + local shine_names = { [0] = "shine_clear", [1] = "shine_fc", [2] = "shine_dfc" } + self.t_shine = tex.get_texture("result/crown/" .. (shine_names[crown_type] or "shine_clear")) local colours = { [0] = "silver", [1] = "gold", [2] = "rainbow" } local seat = has_2p and (is_2p and "_r" or "_l") or "_c" @@ -127,11 +131,12 @@ function ResultCrown:draw() if f >= CROWN_END_F - 5 then local k = (f - (CROWN_END_F - 5)) % (CLOOP_LEN > 1 and CLOOP_LEN or 180) local shine, have_table = crown_loop_shine(k) + if not self.t_shine then return end if shine then - tex.draw_texture(self.t_gleam, + tex.draw_texture(self.t_shine, { frame = GL_SHINE[shine], center = true, index = idx }) elseif not have_table and k < 9 then - tex.draw_texture(self.t_gleam, + tex.draw_texture(self.t_shine, { frame = GL_SHINE[math.floor(k / 3) + 1], center = true, index = idx }) end end -- 2.54.0