feat: take_powerup VFX, rank fix, admin chat management

- Wire take_powerup AnimatedSprite3D on powerup pickup via add_powerup_from_item()
- Make take_powerup animation one-shot (loop: false)
- Fix rank Position label hidden at game start (visible = false, only shows when score > 0)
- Competition ranking for tied scores in main.gd
- Lobby Chat admin tab: system prefix, max messages, wipe, purge old, save config
- Chat Storage admin tab: list/browse/delete individual channel messages
- Backend RPCs: admin_get_chat_config, admin_set_chat_config, admin_purge_old_messages,
  admin_list_channel_messages, admin_delete_channel_message
- Chat config applied on lobby join (max_messages, prefix injection)
This commit is contained in:
2026-06-19 17:13:24 +08:00
parent cd584f5599
commit 15043b5655
12 changed files with 818 additions and 7 deletions
+13
View File
@@ -9,6 +9,7 @@
[ext_resource type="AnimationLibrary" path="res://assets/characters/animations/animation-pack.res" id="6_5oq5w"]
[ext_resource type="Script" uid="uid://cwwwixc07jc86" path="res://scripts/bot_controller.gd" id="7_botctrl"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="8_y4r1p"]
[ext_resource type="SpriteFrames" uid="uid://bq8ifua64lag2" path="res://assets/graphics/vfx/effects/powerup.tres" id="10_d2wvv"]
[ext_resource type="SpriteFrames" uid="uid://7r0qbbm88vfy" path="res://assets/graphics/vfx/effects/animation-head.tres" id="10_y4r1p"]
[sub_resource type="TorusMesh" id="TorusMesh_ur7pv"]
@@ -81,6 +82,7 @@ autowrap_mode = 2
[node name="Position" type="Label3D" parent="." unique_id=482425681]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.537, 0)
visible = false
billboard = 1
no_depth_test = true
render_priority = 2
@@ -116,6 +118,17 @@ width = 700.0
[node name="BotController" type="Node" parent="." unique_id=723259755]
script = ExtResource("7_botctrl")
[node name="take_powerup" type="AnimatedSprite3D" parent="." unique_id=1497442994]
transform = Transform3D(0.54, 0, 0, 0, 0.54, 0, 0, 0, 0.54, 0, 0.21994019, 0)
visible = false
modulate = Color(1, 1, 1, 0.8)
billboard = 2
no_depth_test = true
render_priority = 3
sprite_frames = ExtResource("10_d2wvv")
animation = &"take_powerup"
frame_progress = 0.5033338
[node name="skill_freeze" type="AnimatedSprite3D" parent="." unique_id=674916570]
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 1.5653763, 0)
visible = false