From 769914681178150374cf1e8e58af7962f15c4e4c Mon Sep 17 00:00:00 2001 From: god Date: Mon, 6 Jul 2026 03:07:42 +0800 Subject: [PATCH] update TODO.md with comprehensive list of completed Candy Survival implementations --- TODO.md | 61 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 47 insertions(+), 14 deletions(-) diff --git a/TODO.md b/TODO.md index 5754f7c..fb82ce7 100644 --- a/TODO.md +++ b/TODO.md @@ -1,20 +1,53 @@ -# Tekton Game - TODO +# Candy Survival Implementation (Completed) -## Bugs to fix (checked 2026-07-04) +This file contains the complete list of tasks, features, and refactors successfully implemented for the Candy Survival game mode, replacing the legacy Gauntlet mode. -- [x] **Playerboard desync** — doesn't refresh correctly, stuck (fixed sync ready order) -- [x] **Multiple punch SFX** — sounds play more than once per punch (fixed charged strike state clearance) -- [x] **Currency not shared** — gacha wallet and shop wallet are separate (fixed UI state sync) -- [x] **Multiplayer gauntlet mode broken** — single player works, multiplayer doesn't (fixed client crash from bad indentation) +## 1. Project-Wide Renaming & Asset Scrubbing +- [x] **Codebase**: Replaced all `GAUNTLET`, `Gauntlet`, and `gauntlet_` references with `CANDY_SURVIVAL` across 21+ scripts, scenes, and UI nodes. +- [x] **Assets & Models**: Renamed directories and files from `assets/models/arena/gauntlet/` to `candy_survival/`, including `.gltf`, `.bin`, and all texture `.png` files. +- [x] **Meta Scrubbing**: Purged cached Godot importer metadata inside `.import` and `.gltf` files referencing the old paths. +- [x] **Changelog**: Updated historical `version.json` references to use the new naming convention. -## In Progress +## 2. Arena & Environment +- [x] **18x18 Grid**: Set boundaries to 18x18 with solid outer walls. +- [x] **Collision System**: Sticky cells now act as pure collision boundaries (no slow-mo or growth algorithms). +- [x] **Spawn Points**: Updated to `(2,2), (16,2), (2,16), (16,16)` to successfully avoid row 1 stairs geometry. -- [ ] CI release pipeline (`docker network connect` approach pending verification) +## 3. Mekton NPC (Center Boss) +- [x] **Spawning**: Replaced the primitive "Candy Pump" tank with a fully instanced `static_tekton_mesh` at `Vector2i(8,8)`. +- [x] **Face Color Cycling**: The `ted_body` material cycles its emission and albedo color (Heart/Diamond/Star/Coin) every 5 seconds. +- [x] **Integration**: Spawning and color state fully self-contained inside `candy_survival_manager.gd` without relying on `main.gd`. -## Done +## 4. Core Gameplay: Blueprints & Stacks +- [x] **Auto-Pickup Tiles**: Modified `player_movement_manager.gd` so walking over a tile automatically picks it up if the playerboard has an open slot. +- [x] **3x3 Auto-Detection**: Rewrote `_check_goal_completion` in `playerboard_manager.gd` to detect fully filled 3x3 grids of a single dominant color. +- [x] **Off-Color Blueprints**: If the board's majority color is depleted from the arena grid, mixed-color blueprints are accepted for 50% points. +- [x] **Stacking & Multipliers**: Successful blueprints award a candy on the player's head. Generates continuous points: `1.0 + (Stack * 0.1)`. -- [x] Cleanup test runs 96-99 -- [x] Remove test tag `v9.9.9-test` -- [x] Remove orphan Docker containers/networks/volumes -- [x] Prune dangling images (~7.7GB reclaimed) -- [x] Tailscale status check (peer traffic works; coordination-server sync is the only red) +## 5. Core Gameplay: Delivery & Sugar Rush +- [x] **Auto-Delivery**: Proximity trigger (distance <= 2) to the center Mekton automatically attempts delivery. +- [x] **Face Matching**: Delivery succeeds only if the player's candy stack matches the current glowing color of the Mekton's face. +- [x] **Sugar Rush Activation**: Successful delivery clears the stack and triggers `Engine.time_scale = 2.0` (2x global speed) for `2s + (candies * 0.4s)`. + +## 6. Sabotage: Knock & Ghost +- [x] **Knock Mechanic**: Starts with 5 charges. Bound to `action_knock_tekton`. Targets adjacent players to steal their full candy stack and color. +- [x] **Knock Backfire**: Hitting an empty-handed player consumes a charge and backfires (both players get knocked). +- [x] **Ghost Mechanic**: Starts with 5 charges. Bound to `action_grab_tekton`. +- [x] **Ghost Phase-Through**: Hijacks the core game's `is_invisible` state for 4s (40% opacity). Grants knock immunity and explicitly allows walking through sticky collision walls. + +## 7. Visuals & UI (HUD Rewrite) +- [x] **HUD Scene Rebuild**: Removed script-based GUI generation. Rebuilt `candy_survival_hud.tscn` natively using Godot Control nodes for easy artist iteration. +- [x] **UI Elements Added**: `SugarRushBar`, `CandyStackBadge`, `KnockChargesLabel`, `GhostChargesLabel`, and `PointsLabel`. +- [x] **Delivery Indicator**: Added a visual `READY TO DELIVER!` indicator that dynamically listens to the Mekton's 5s color cycle and validates against the player's held stack. +- [x] **3D Visual Candy Stacks**: Hooked `sync_candy_stack` to physically spawn `MeshInstance3D` tiles (Heart/Diamond/Star/Coin) stacked vertically (`y += 0.4`) on the player character's head. + +## 8. AI / Bot Integration +- [x] **Mekton Delivery AI**: Bots prioritize (Priority 0.7) checking if their candy color matches the Mekton's face, pathfinding directly to the center to deliver and score. +- [x] **Ghost AI**: Bots evaluate proximity to sticky walls and actively trigger the native Candy Survival ghost charges to phase through traps. +- [x] **Test Updates**: Re-wrote `test_bot_gauntlet.gd` to test the new mechanics (overlay checks, unsafe neighbor counts) and deleted 8+ obsolete Gauntlet mechanic test files. + +## 9. Code Health & Documentation +- [x] **Compilation**: Fixed a dangling `_on_doors_update` call in `lobby_room.gd`. Verified 100% clean compilation (`godot --headless --build-solutions`). +- [x] **Gitea Issues**: Bulk-closed and commented on issues #54-57 and #65-70 with detailed technical implementation logs. +- [x] **Wiki**: Fully rewrote the `Game-Modes.-.md` wiki page to document the new rules, RPC lists, Sabotage input mappings, and arena coordinates. +- [x] **Git Branching**: Deleted `gauntlet`, verified all features on the clean `candy_survival` tracking branch. \ No newline at end of file