Files
tekton/TODO.md
T

4.9 KiB

Candy Survival Implementation (Completed)

This file contains the complete list of tasks, features, and refactors successfully implemented for the Candy Survival game mode, replacing the legacy Gauntlet mode.

1. Project-Wide Renaming & Asset Scrubbing

  • Codebase: Replaced all GAUNTLET, Gauntlet, and gauntlet_ references with CANDY_SURVIVAL across 21+ scripts, scenes, and UI nodes.
  • Assets & Models: Renamed directories and files from assets/models/arena/gauntlet/ to candy_survival/, including .gltf, .bin, and all texture .png files.
  • Meta Scrubbing: Purged cached Godot importer metadata inside .import and .gltf files referencing the old paths.
  • Changelog: Updated historical version.json references to use the new naming convention.

2. Arena & Environment

  • 18x18 Grid: Set boundaries to 18x18 with solid outer walls.
  • Collision System: Sticky cells now act as pure collision boundaries (no slow-mo or growth algorithms).
  • Spawn Points: Updated to (2,2), (16,2), (2,16), (16,16) to successfully avoid row 1 stairs geometry.

3. Mekton NPC (Center Boss)

  • Spawning: Replaced the primitive "Candy Pump" tank with a fully instanced static_tekton_mesh at Vector2i(8,8).
  • Face Color Cycling: The ted_body material cycles its emission and albedo color (Heart/Diamond/Star/Coin) every 5 seconds.
  • Integration: Spawning and color state fully self-contained inside candy_survival_manager.gd without relying on main.gd.

4. Core Gameplay: Blueprints & Stacks

  • Auto-Pickup Tiles: Modified player_movement_manager.gd so walking over a tile automatically picks it up if the playerboard has an open slot.
  • 3x3 Auto-Detection: Rewrote _check_goal_completion in playerboard_manager.gd to detect fully filled 3x3 grids of a single dominant color.
  • Off-Color Blueprints: If the board's majority color is depleted from the arena grid, mixed-color blueprints are accepted for 50% points.
  • Stacking & Multipliers: Successful blueprints award a candy on the player's head. Generates continuous points: 1.0 + (Stack * 0.1).

5. Core Gameplay: Delivery & Sugar Rush

  • Auto-Delivery: Proximity trigger (distance <= 2) to the center Mekton automatically attempts delivery.
  • Face Matching: Delivery succeeds only if the player's candy stack matches the current glowing color of the Mekton's face.
  • 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

  • Knock Mechanic: Starts with 5 charges. Bound to action_knock_tekton. Targets adjacent players to steal their full candy stack and color.
  • Knock Backfire: Hitting an empty-handed player consumes a charge and backfires (both players get knocked).
  • Ghost Mechanic: Starts with 5 charges. Bound to action_grab_tekton.
  • 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)

  • HUD Scene Rebuild: Removed script-based GUI generation. Rebuilt candy_survival_hud.tscn natively using Godot Control nodes for easy artist iteration.
  • UI Elements Added: SugarRushBar, CandyStackBadge, KnockChargesLabel, GhostChargesLabel, and PointsLabel.
  • 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.
  • 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

  • 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.
  • Ghost AI: Bots evaluate proximity to sticky walls and actively trigger the native Candy Survival ghost charges to phase through traps.
  • 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

  • Compilation: Fixed a dangling _on_doors_update call in lobby_room.gd. Verified 100% clean compilation (godot --headless --build-solutions).
  • Gitea Issues: Bulk-closed and commented on issues #54-57 and #65-70 with detailed technical implementation logs.
  • Wiki: Fully rewrote the Game-Modes.-.md wiki page to document the new rules, RPC lists, Sabotage input mappings, and arena coordinates.
  • Git Branching: Deleted gauntlet, verified all features on the clean candy_survival tracking branch.