feat: Implement core game managers, player movement logic, and initial UI scenes.
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
[ 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.
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
[ ADT's Daily Report - 2025-12-23 ]
|
||||
|
||||
Updated the `tekton-enet` ( Armageddon Multiplayer ) on branch `launcher`
|
||||
|
||||
**Touch Controls Enhancement**
|
||||
|
||||
✅ **Touch Button Settings** - Added `touch_buttons_enabled` and `joystick_enabled` toggles to `touch_controls.gd`. Settings now persist to `user://touch_controls_settings.cfg` using ConfigFile.
|
||||
|
||||
✅ **Position Mapping API** - Added public methods `set_touch_buttons_enabled()`, `set_joystick_enabled()`, `set_button_position()`, and `get_settings()` for controlling touch UI programmatically.
|
||||
|
||||
**Player Collision Fix**
|
||||
|
||||
✅ **Prevent Player-to-Player Collision** - Modified `player.tscn` CharacterBody3D to use `collision_layer = 2`. Players now only collide with world objects, not each other, preventing desync issues when walking into same space.
|
||||
|
||||
**Profile Access Improvement**
|
||||
|
||||
✅ **Profile Button on All Screens** - Added PROFILE button to MainMenuPanel and RoomListPanel in `lobby.tscn`. Connected buttons to `_on_profile_btn_pressed()` in `lobby.gd`.
|
||||
|
||||
**Multiplayer Disconnect Fix**
|
||||
|
||||
✅ **Proper Nakama Match Cleanup** - Added `_cleanup_multiplayer()` function in `main.gd` that calls `NakamaManager.bridge.leave()`, clears `current_match_id`, and resets multiplayer peer. Called from both `_on_quit_match_pressed()` and `_on_back_to_menu_pressed()`.
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
✅ **Game Over Panel Fix** - Fixed duplicate parent error in `_show_game_over_panel()` where BackToMenuBtn was being added to two parents. Button now correctly added only to centered HBoxContainer.
|
||||
@@ -0,0 +1,27 @@
|
||||
[ ADT's Daily Report - 2025-12-27 ]
|
||||
|
||||
Updated the `tekton-enet` ( Armageddon Multiplayer ) on branch `launcher`
|
||||
|
||||
**Screen Shake Implementation**
|
||||
|
||||
✅ **Dependency Injection** - Refactored `screen_shake.gd` to accept camera instance via `initialize()` method instead of searching scene tree. Updated `main.gd` to inject `$Camera3D` on creation.
|
||||
|
||||
**Touch Controls Visibility Fix**
|
||||
|
||||
✅ **Unified Toggle Logic** - Fixed `main.gd` `_on_joystick_toggled()` to call `set_joystick_enabled()` instead of directly setting visibility, ensuring all touch controls hide/show together.
|
||||
|
||||
✅ **Anchor Offset Fix** - Fixed touch buttons being invisible by switching from `.position` to proper `.offset_left/top/right/bottom` for anchored controls. Buttons now correctly appear in bottom-right corner.
|
||||
|
||||
✅ **Layer Z-Order** - Reduced `CanvasLayer.layer` from 100 to 10 so pause menu renders above touch controls.
|
||||
|
||||
✅ **Settings Panel Sync** - Updated `_on_settings_pressed()` in `main.gd` to sync JoystickToggle and sliders with current `TouchControlsManager` state when settings panel opens.
|
||||
|
||||
**Special Tile Effects**
|
||||
|
||||
✅ **Pickup Animation** - Added pulse and flash effect to playerboard slots when special tiles (Heart, Diamond, Star, Coin) are collected. Implemented in `ui_manager.gd` via `_pulse_slot_effect()`.
|
||||
|
||||
✅ **State Tracking** - Added `_previous_playerboard_state` to detect newly placed tiles and trigger effects only on changes.
|
||||
|
||||
**Playerboard Display Fix**
|
||||
|
||||
✅ **Modulate Logic** - Fixed `update_playerboard_ui()` in `ui_manager.gd` where broken if/else structure caused non-center slots to inherit wrong modulate values. Now center slots show goals dimmed, collected tiles bright, and non-center slots always at full brightness.
|
||||
Reference in New Issue
Block a user