54 lines
3.4 KiB
Markdown
54 lines
3.4 KiB
Markdown
[ ADT's Daily Report - 2025-12-21 ]
|
|
|
|
Updated the `tekton-enet` ( Armageddon Multiplayer ) on branch `launcher`
|
|
|
|
you can test also, if theres any bug, please report it to me, also try build the project on android to see if theres any bug on touch controls
|
|
|
|
**General Fixes**
|
|
|
|
✅ **Fixed "Invalid packet received" Errors** - The error `Failed to get path from RPC: Main/1` was caused by `player.rpc()` calls trying to find the same node path on clients. Fixed by routing all sync calls through `main.gd` RPCs which look up players by ID.
|
|
|
|
✅ **sync_playerboard RPC Fix** - Updated `main.gd` `sync_playerboard(player_id, new_playerboard)` to actually update `player.playerboard` data, not just UI.
|
|
|
|
✅ **sync_player_goals RPC Fix** - Changed `goals_cycle_manager.gd` `regenerate_goals_for_player()` to use `main_scene.rpc("sync_player_goals", peer_id, int_goals)` instead of `player.rpc("sync_goals")`.
|
|
|
|
**Randomized Spawn System Fixes**
|
|
|
|
✅ **Spawn Rollback Fix** - Restructured `_setup_host_game()` in `main.gd` to add all players synchronously first, then call `_assign_random_spawn_positions()` BEFORE the 0.3s await. This ensures spawn positions are set before player `_ready()` runs position initialization.
|
|
|
|
✅ **Client-Side Spawn Init** - Modified `player.gd` (lines 200, 212) to check `LobbyManager.get_randomize_spawn()` before running position initialization. When random spawn is enabled, clients skip position init entirely and wait for host RPC.
|
|
|
|
**RPC Node Path Fixes**
|
|
|
|
✅ **Fixed "Invalid packet received" Errors** - The error `Failed to get path from RPC: Main/1` was caused by `player.rpc()` calls trying to find the same node path on clients. Fixed by routing all sync calls through `main.gd` RPCs which look up players by ID.
|
|
|
|
✅ **sync_playerboard RPC Fix** - Updated `main.gd` `sync_playerboard(player_id, new_playerboard)` to actually update `player.playerboard` data, not just UI.
|
|
|
|
✅ **sync_player_goals RPC Fix** - Changed `goals_cycle_manager.gd` `regenerate_goals_for_player()` to use `main_scene.rpc("sync_player_goals", peer_id, int_goals)` instead of `player.rpc("sync_goals")`.
|
|
|
|
**Goal Completion Sync**
|
|
|
|
✅ **Client Goal Completion Detection** - Added `_check_goal_completion()` call to server-side `_execute_grab()` in `playerboard_manager.gd`. This was the missing piece - client grabs were validated by server but goal check was never called server-side, so client goal completions weren't triggering regeneration.
|
|
|
|
**Special Ability Cooldown**
|
|
|
|
✅ **4-Second Cooldown for F Key** - Added `SPECIAL_COOLDOWN = 4.0` constant, `special_cooldown_timer` variable, and `_process()` to tick down cooldown in `powerup_manager.gd`. Shows "Special on cooldown! (X.Xs)" message if trying to use too soon.
|
|
|
|
**Animation**
|
|
|
|
✅ **AnimationTimeline** - added animation for player movement
|
|
✅ **AnimationTimeline** - added animation for player special ability
|
|
✅ **AnimationTimeline** - added animation for pickup, put
|
|
|
|
**Character selection**
|
|
✅ **Character selection** - added character selection for player
|
|
|
|
**Message Display Improvements**
|
|
|
|
✅ **Player Names in Messages** - Updated `add_message_to_bar()` in `main.gd` to display messages in format: `[PlayerName] message` (e.g., "⚡ [Player1] Power-up bar filled!").
|
|
|
|
**Touch Controls**
|
|
|
|
✅ **Settings Button Functionality** - Implemented `_on_settings_pressed()` in `touch_controls.gd` to open `SettingsPanel` from main.tscn when pressed.
|
|
|