rename gauntlet→candy_survival + rewrite Candy Survival per boss design

- Rename enum GAUNTLET→CANDY_SURVIVAL, all gauntlet_*→candy_survival_*
- Rename files: gauntlet_manager→candy_survival_manager, candy_cannon→candy_survival_npc, gauntlet.tscn→candy_survival.tscn
- Rewrite candy_survival_manager.gd: blueprints, candy stack, Mekton delivery, Sugar Rush, knock/ghost charges, sticky-as-wall
- Update player_movement_manager.gd: smack→knock system, ghost integration
- All Candy Survival issues (#54-57, #65-70) retitled per boss design
- Shared managers (goals_cycle, goal, player_race, playerboard, turn) untouched
This commit is contained in:
god
2026-07-06 01:28:39 +08:00
parent 114748a54f
commit 528e22875d
33 changed files with 731 additions and 2181 deletions
+5 -5
View File
@@ -210,7 +210,7 @@ func _run_ai_tick():
print("[BotController] Action Taken: Attack Pursuit")
return
# Priority 0.5: Gauntlet (#075) — use Ghost powerup if boxed in
# Priority 0.5: Candy Survival (#075) — use Ghost powerup if boxed in
if await _try_activate_ghost():
print("[BotController] Action Taken: Ghost (trapped)")
return
@@ -260,7 +260,7 @@ func _run_ai_tick():
return
# =============================================================================
# Gauntlet (#075) — Ghost Powerup + Sticky Avoidance wiring
# Candy Survival (#075) — Ghost Powerup + Sticky Avoidance wiring
# =============================================================================
func _try_activate_ghost() -> bool:
@@ -268,7 +268,7 @@ func _try_activate_ghost() -> bool:
Uses the existing SpecialTilesManager to activate the held ghost powerup.
Returns true if activation was triggered."""
if not strategic_planner or not strategic_planner.is_gauntlet_mode():
if not strategic_planner or not strategic_planner.is_candy_survival_mode():
return false
if not strategic_planner.should_activate_ghost_now():
return false
@@ -291,9 +291,9 @@ func _on_step_onto_unsafe() -> bool:
return false
# Post-move guard: if we somehow landed on a sticky without ghost active,
# burn Ghost powerup to phase through next tick.
if strategic_planner.is_gauntlet_mode() and strategic_planner._is_overlay_unsafe(here):
if strategic_planner.is_candy_survival_mode() and strategic_planner._is_overlay_unsafe(here):
if not strategic_planner._is_bot_ghost_active():
var gm = strategic_planner._get_gauntlet_manager()
var gm = strategic_planner._get_candy_survival_manager()
if gm and gm.has_method("is_sticky_cell") and gm.is_sticky_cell(here):
print("[BotController] %s stepped onto sticky at %s — activating Ghost" % [actor.name, here])
return _try_activate_ghost()