Files
tekton/_daily_basis/report_2025-12-21.md
T

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.