bugfix, desync, and add UI function

This commit is contained in:
2026-01-14 00:20:20 +08:00
parent 6948a4aed1
commit bee9c30f0e
14 changed files with 362 additions and 112 deletions
+33
View File
@@ -0,0 +1,33 @@
[ ADT's Report ]
Updated the `tekton-enet` ( Armageddon Multiplayer ) on branch `launcher`
**Network & Desync Fixes**
**Visual Interpolation** - Fixed player position desynchronization.
* Implemented client-side smoothing using `target_visual_position` to fix jitter and snapping.
* Resolved conflicts between unreliable RPC network updates and grid-based logic.
**Bot Synchronization** - Eliminated "Node not found" RPC errors on client join.
* **Fix**: Modified `main.gd` to pre-spawn potential bot nodes (IDs 2-4) on the client before receiving full sync.
* **Result**: Prevents crash/error spam when Host sends updates for bots before the Client has fully processed the player list.
**Bot AI Improvements**
**Stuck Prevention** - Fixed bots getting stuck in "Idle" loops.
* **Problem**: Bots would sometimes enter a state where they had AP (Action Points) but couldn't pathfind or act, effectively freezing the game in turn-based mode.
* **Fix**: Added logic to `BotController` to detect this state and automatically skip the turn (consume remaining AP) to keep the game flow moving.
* **Logging**: Added bot identification to logs for better diagnosis.
**Touch Controls Refactoring**
**Scene-Based Instantiation** - Refactored `TouchControls` for easier editing.
* **Logic**: Updated `touch_controls.gd` to look for existing UI nodes (`VirtualJoystick`, `GrabBtn`, etc.) instead of forcing programmatic creation.
* **Implementation**: Moved the entire Touch Control node hierarchy directly into `main.tscn`.
* **Benefit**: Allows visual editing and customization of touch controls directly in the Godot Editor.
**UI & Lobby Enhancements**
**Optional Timer Display** - Tuned HUD based on lobby settings.
* **Feature**: The "Global Match Timer" (GoalsTimer) in the main game is now hidden if "Enable Timer Check" is disabled in the Lobby.
* **Default**: Changed "Enable Timer Check" default to `false` in `LobbyManager`.