Feature Master List

← Deploy Home
186
Completed
17
Needs Art
5
WIP
235
Todo
6
Blocked
449
Total Tasks
Code Logic Done 45.2%
203/449 (completed + needs-art)
Final Completion 41.4%
186/449 (completed only)
Completed
Needs Art
WIP
Todo
Blocked
Epic 1: 核心棋盘系统 in progress 22/23 (96%)
Story 1.1: 6×6 网格基础设施 8/8
#TaskStatusKey Files
1.1.11D数组网格 (index 0=左下, 35=右上)done`GridUtils.ts`, `GridManager.ts`
1.1.2Index↔Row/Col↔LocalPos 坐标转换done`GridUtils.ts`
1.1.38方向邻居判定 `areNeighbors()`done`GridUtils.ts`
1.1.4重力下落 (condense)done`GridManager.ts`
1.1.5从顶部补充新Tile (refill)done`GridManager.ts`
1.1.6落子周期管理 (FallingPhase状态机)done`GridManager.ts`
1.1.7死锁检测 `isGridDeadlocked()`done+L3`GridManager.ts`
1.1.8死锁自动Shuffle `shuffleGrid()`done+L3`GridManager.ts`
Story 1.2: Tile类型与数据 8/9
#TaskStatusKey Files
1.2.17种TileType枚举定义done`GameTypes.ts`
1.2.2TileBase组件 (类型/资源/伤害/生命/状态旗标)done`TileBase.ts`
1.2.3EnemyTileBase (HP/Armor/Attack显示, 攻击行为, 死亡预览)needs-art`EnemyTileBase.ts`
1.2.4JSON配置加载 (TileConfigs.json)done`ConfigLoader.ts`, `TileDataConfig.ts`
1.2.5加权随机选型 `selectRandomTileType()`done`ConfigLoader.ts`
1.2.6LevelTileManager程序化生成Tiledone`LevelTileManager.ts`
1.2.7Tile视觉状态 (Normal/Selected/Dimmed)needs-art`TileBase.ts`
1.2.8Tile debug文本覆盖层done`TileBase.ts`
1.2.9Mana/Arrow独立sprite资源todo`LevelTileManager.ts`
Story 1.3: 连线系统 6/6
#TaskStatusKey Files
1.3.1连线规则引擎 `canExtendLinkPath()`done`LinkRules.ts`
1.3.2连线管理器 (pick/extend/backtrack)done`LinkLineManager.ts`
1.3.3连线渲染 (Graphics/Sprite两种模式)needs-art`LinkLineRenderer.ts`
1.3.4可选状态广播 GRID_STATE_REFRESHdone`GridManager.ts`
1.3.5连线动画回放 (step-by-step)done`LinkLineReplay.ts`
1.3.6最小连线长度校验 (default=3)done`GameMode.ts`
Epic 2: 回合循环与战斗 in progress 28/29 (97%)
Story 2.1: GameMode状态机 6/6
#TaskStatusKey Files
2.1.112-state游戏循环done+L3`GameMode.ts`
2.1.2回合计数 `_currentRound`done`GameMode.ts`
2.1.3GAME_START重置所有子系统done+L3`GameMode.ts`
2.1.4GameOver检测 (PLAYER_DIED)done+L3`GameMode.ts`
2.1.5GameOverOverlay (重启按钮, 统计面板)done+L3`GameOverOverlay.ts`
2.1.6等待ALL_TILE_FINISH_MOVE再进入敌人阶段done`GameMode.ts`
Story 2.2: 玩家攻击结算 7/8
#TaskStatusKey Files
2.2.1CalculateLinkLine: 武器数→伤害源done`GameMode.ts`, `CombatResolver.ts`
2.2.2逐敌人结算顺序done`GameMode.ts`
2.2.3基础护甲阻挡 `ArmorBlock = max(0, E-I)`done`CombatResolver.ts`
2.2.4`I` 无视护甲点数接入done`CombatResolver.ts`
2.2.5`P%` 概率穿透判定done`CombatResolver.ts`
2.2.6`D%` 护甲无损概率done`CombatResolver.ts`
2.2.7状态附加 `A[i]` 攻击附加debufftodo`CombatResolver.ts`
2.2.8击杀经验奖励 `exp'`done`GameMode.ts`
Story 2.3: 敌人攻击结算 6/6
#TaskStatusKey Files
2.3.1敌人逐个攻击玩家done`GameMode.ts`
2.3.2玩家护甲吸收 + 穿透伤害done`CombatResolver.ts`, `PlayerStats.ts`
2.3.3敌人`piercing'%`穿透概率done`CombatResolver.ts`
2.3.4玩家`dur%`护甲无损概率done`CombatResolver.ts`, `GameMode.ts`
2.3.5敌人出生免疫 (spawn immunity)done`EnemyTileBase.ts`
2.3.6敌人CD系统 + 主动技能done`EnemyTileBase.ts`, `EnemySkillManager.ts`, `EnemySkillHeavyStrike.ts`, `GameMode.ts`
Story 2.4: 普通敌人体系 6/6
#TaskStatusKey Files
2.4.1定义普通敌人原型池(少量 Archetype,不做长等级表)done`assets/configs/EnemyConfigs.json`
2.4.2定义进程缩放规则(按回合/危险度分段)done`EnemyProgressionResolver.ts`, `assets/configs/EnemyConfigs.json`
2.4.3定义精英层规则(强度、奖励、标记)done`EnemyProgressionResolver.ts`, `EnemyTileBase.ts`, `assets/configs/EnemyConfigs.json`
2.4.4定义特殊机制敌人规则(棋盘/资源/节奏压力)done`CoreEnemyTurnResolver.ts`, `EnemyTileBase.ts`, `assets/configs/EnemyConfigs.json`
2.4.5配置加载与运行时接入(EnemyArchetype / EnemyRank / VisualTier)done`ConfigLoader.ts`, `EnemyTileBase.ts`, `LevelTileManager.ts`
2.4.6L2 单元测试:普通敌人配置加载、缩放规则、精英/特殊机制标记done`tests/ConfigLoader.test.ts`, `tests/EnemyProgressionResolver.test.ts`, `tests/CoreEnemyTurnResolver.test.ts`, `tests/EnemyTileBase.test.ts`
Story 2.5: 资源收集 3/3
#TaskStatusKey Files
2.5.1Shield→Armor, Potion→HP, Coin→Moneydone`TileBase.ts`, `PlayerStats.ts`
2.5.2collectResourceMultiplier (倍率)done`GridManager.ts`
2.5.3XP收集 (Mana tile, 当前prob=0)done配置就绪
Epic 3: Bonus概率系统 complete 9/9 (100%)
Story 3.1: Bonus判定引擎 9/9
#TaskStatusKey Files
3.1.1Tier计算: `Extra=L-3, Tier=clamp(floor(Extra/3)+1, 1, 4)`done+L3`BonusResolver.ts`
3.1.24类Bonus基础概率配置 (Bexp%, Bamo%, Bhp%, Bgold%)done+L3`BonusConfigs.json`, `BonusDataConfig.ts`
3.1.3实际概率 = 基础概率 × Tierdone+L3`BonusResolver.ts`
3.1.4结算后逐类独立判定 (Math.random)done+L3`BonusResolver.ts`
3.1.5Bonus奖励发放 (exp/armor/hp/gold增量)done+L3`BonusResolver.ts` → `PlayerStats.ts`
3.1.6GameMode接入: 收集结算后调用Bonus判定done+L3`GameMode.ts`
3.1.7Bonus触发日志 + 事件 (供VFX用)done+L3`GameTypes.ts`
3.1.8L2单元测试: Tier计算, 概率判定, 奖励发放done+L3`tests/BonusResolver.test.ts`
3.1.9L3集成测试: Tier1/Tier2触发, PlayerStats接收done+L3`tools/tests/test_integration_bonus.py`
Epic 4: 五维属性系统 complete 10/10 (100%)
Story 4.1: 属性数据模型 10/10
#TaskStatusKey Files
4.1.1五维枚举: Charisma/Strength/Dexterity/Vitality/Luckdone+L3`GameTypes.ts`
4.1.2属性等级→派生值映射表 (数据驱动)done+L3`DimensionGrowthConfigs.json`, `DimensionGrowthConfig.ts`
4.1.3PlayerAttributes组件 (持有5维等级, 计算派生值)done+L3`RunAttributes.ts`
4.1.4派生值注入到战斗公式 (B, W, f, b, Bonus%)done+L3`AttributeSet.ts`, `CombatAttributes.ts`, `BonusResolver.ts`, `PlayerStats.ts`, `GameMode.ts`
4.1.5L2单元测试done+L3`tests/RunAttributes.test.ts`, `tests/CombatAttributes.test.ts`, `tests/BonusResolver.test.ts`, `tests/PlayerStats.test.ts`
4.1.6AttributeSet属性管线 (base→Add→Multiply→Override→Cap)done`AttributeSet.ts`
4.1.7CombatAttributes桥接层 (player/enemy工厂+snapshot)done`CombatAttributes.ts`
4.1.8PLAYER_ATTRS_CHANGED事件 + GameMode集成done`PlayerStats.ts`, `GameMode.ts`
4.1.9L2单元测试: AttributeSet + CombatAttributesdone`tests/AttributeSet.test.ts`, `tests/CombatAttributes.test.ts`
4.1.10L3集成测试: WeaponRain modifier生命周期done`tools/tests/test_integration_weapon_rain.py`
Epic 5: 技能系统 in progress 11/17 (65%)
Story 5.1: 技能框架 (已有) 4/4
#TaskStatusKey Files
5.1.1SkillBase: CD管理, useSkill/tickCDdone`SkillBase.ts`
5.1.2PlayerSkillManager: 注册/查找技能done`PlayerSkillManager.ts`
5.1.3PlayerController: GAME_START创建技能, SKILL_CD_TICKdone`PlayerController.ts`
5.1.4SkillBarUI + SkillSlotUIdone`SkillBarUI.ts`, `SkillSlotUI.ts`
Story 5.2: 具体技能实现 6/9
#TaskStatusKey Files
5.2.1残废: 赋予Buff, 连线经过首个敌人受最多X伤害todo新建 `SkillCripple.ts`
5.2.2必中: 武器状态附加必成功wip`SkillSureHit.ts`, `GameMode.ts`
5.2.3嗜血: 每杀1敌+n伤害, 可叠加done+L2`SkillBloodthirst.ts`, `GameMode.ts`
5.2.4破甲: 无视对方n%护甲done+L2`SkillArmorBreak.ts`, `GameMode.ts`
5.2.5枪林剑雨: 武器伤害+m%done`SkillWeaponRain.ts`
5.2.6隔空点穴: 连线首个敌人直接扣%HP(不走常规伤害)done+L2`SkillDirectHP.ts`, `GameMode.ts`, `TileBase.ts`
5.2.7技能框架: 连线目标触发器 (TriggerOnNextLink)done+L2`GameMode.ts` 扩展
5.2.8必要消耗 vs 非必要消耗done`SkillBase.ts` 规则口径
5.2.9L2单元测试: 每个技能效果wip`tests/Skill*.test.ts`, `tests/GameMode.test.ts`
Story 5.3: 状态效果扩展 1/4
#TaskStatusKey Files
5.3.1基础状态Tick (Regen/Poison/ArmorRegen/DamageReduce)done`PlayerStats.ts`
5.3.2Lifesteal (按伤害比例回血)todo`PlayerStats.ts` 或 `CombatResolver.ts`
5.3.3常驻资源加成 (ValueBonus)todo`PlayerStats.ts`
5.3.4敌人状态效果 (中毒等)todo`EnemyTileBase.ts`
Epic 6: 单局内成长系统 (In-Run Progression) in progress 27/35 (77%)
Story 6.3: 升级选择面板 (EXP满触发) 9/9
#TaskStatusKey Files
6.3.1升级选项生成器: 从候选池随机抽4个选项done+L3`LevelUpResolver.ts`
6.3.2选项类型: 新技能 (技能槽未满时可出现)done+L3`LevelUpResolver.ts`
6.3.3选项类型: 技能升级 (已有技能升阶)done+L3`LevelUpResolver.ts`, `SkillBase.ts`
6.3.4选项类型: 属性升级 (五维之一+1)done+L3`LevelUpResolver.ts`
6.3.5升级面板UI: 展示4个选项, 玩家选2个done+L3`LevelUpPanel.ts`
6.3.6选择确认后应用效果 (学技能/升技能/加属性)done+L3`LevelUpPanel.ts`
6.3.7关闭面板, 发出`LEVEL_UP_RESOLVED`done+L3`LevelUpPanel.ts`
6.3.8L2单元测试: 选项生成, 效果应用done+L3`tests/LevelUpResolver.test.ts`
6.3.9L3集成测试: EXP满→面板弹出→选择→回合继续done+L3`tools/tests/test_integration_levelup.py`
Story 6.4: 铜币购买面板 (Shop主动打开 / Gold消费) 6/6
#TaskStatusKey Files
6.4.1锦囊数据配置 (id/name/cost/effect)done`ShopConfigs.ts`
6.4.2锦囊效果类型枚举与结算done`ShopConfigs.ts`, `ShopPanel.ts`
6.4.3铜币购买面板UI: 列表+购买按钮done+L3`ShopPanel.ts`
6.4.4购买后: 扣币+效果即时生效+VFXdone+L3`ShopPanel.ts`, `PlayerStats.ts`
6.4.5关闭面板, 发出`SHOP_CLOSE`done`ShopPanel.ts`
6.4.6L2单元测试: 锦囊效果结算done`tests/PlayerStats.test.ts`, `tests/ShopConfigs.test.ts`
Story 6.5: 附魔/词条系统 (后置阻塞, 待正式设计) 0/5
#TaskStatusKey Files
6.5.1附魔词条池配置 (RegenPerTurn/DamageReduce/Lifesteal等)blocked新建 `EnchantConfigs.json`
6.5.2附魔结算: 选装备→选词条→应用StatusEffectblocked新建 `EnchantResolver.ts`
6.5.3附魔面板UI: 装备选择+词条选择blocked新建 `EnchantPanel.ts`
6.5.4关闭面板, 发出`ENCHANT_RESOLVED`blocked`EnchantPanel.ts`
6.5.5L2单元测试: 词条应用blocked`tests/EnchantResolver.test.ts`
Story 6.6: 五维属性基础 (供升级选择使用) 6/6
#TaskStatusKey Files
6.6.1五维属性枚举定义done+L3`GameTypes.ts`
6.6.2RunAttributes组件: 持有5维等级(局内, 从0开始)done+L3`RunAttributes.ts`
6.6.3属性→派生值计算 (B/f/b/p/Bonus%)done+L3`DimensionGrowthConfig.ts`, `RunAttributes.ts`
6.6.4派生值注入: Strength→攻击力, Vitality→HP上限等done+L3`RunAttributes.ts` → `AttributeSet`
6.6.5GAME_START时重置为0done+L3`RunAttributes.ts`
6.6.6L2单元测试: 属性升级→派生值变化done+L3`tests/RunAttributes.test.ts`
Story 6.7: 局内锻造屋 (装备页, 低优先级) 3/5
#TaskStatusKey Files
6.7.1装备值资源追踪done`PlayerStats.ts`
6.7.2锻造项配置 (攻击+N/防御+N/特效+%)done`ShopConfigs.ts`
6.7.3锻造结算: 扣装备值+临时属性加成wip`ShopPanel.ts`, `PlayerStats.ts`, `ShopConfigs.ts`
6.7.4锻造面板UIdone`ShopPanel.ts`
6.7.5L2单元测试todo`tests/ForgeResolver.test.ts`
Story 6.8: 武魂召唤 (武将页, 低优先级) 3/4
#TaskStatusKey Files
6.8.1武魂资源追踪done`PlayerStats.ts`
6.8.2武将召唤配置与结算done`ShopConfigs.ts`, `ShopPanel.ts`, `GameMain.ts`
6.8.3召唤面板UIdone`ShopPanel.ts`
6.8.4武将Buff注入todo
Epic 7: 局内购买UI框架 in progress 3/5 (60%)
Story 7.1: 三页签统一入口 (低优先级) 3/5
#TaskStatusKey Files
7.1.1三页签 (武魂/铜币/装备) 切换框架done+L3`ShopPanel.ts`, `ShopButton.ts`
7.1.2页签状态 (Normal/Selected/Pressed/Disabled)done`ShopPanel.ts`
7.1.3New Tag角标todo
7.1.4滚动列表+底部遮罩todo
7.1.5ShopService单例 + 可购买性驱动glowdone`ShopService.ts`, `ShopButton.ts`, `ShopPanel.ts`
Epic 8: 局外成长与养成 not started 0/9 (0%)
Story 8.1: 主角成长 0/4
#TaskStatusKey Files
8.1.1玩家等级+经验表todo
8.1.2装备系统 (武器/防具/饰品)todo
8.1.3装备强化 (Meta Forge, 持久化)todo
8.1.4装备附加词条 (毒/冰/火/吸血/反震/吸收)todo
Story 8.2: 武将系统 0/3
#TaskStatusKey Files
8.2.1武将数据模型 (等级/品质/技能)todo
8.2.2武将品质成长 (6阶)todo
8.2.3武将获取 (战斗捕获/抽卡)todo
Story 8.3: 抽卡/Gacha 0/2
#TaskStatusKey Files
8.3.1装备抽卡todo
8.3.2武将抽卡todo
Epic 9: UI / HUD / 表现 in progress 9/22 (41%)
Story 9.1: 战斗主界面布局 4/6
#TaskStatusKey Files
9.1.1背景自适应 + 网格锚点needs-art`ScreenBG3Slice.ts`
9.1.2顶部信息栏 (阵法位/头像/锁)wip`GameMain.ts`, `ScreenBG3Slice.ts`, `test-gameloop-codex.scene`
9.1.3底部左面板 (主公形态/角色头像/资源/状态按钮)wip`GameMain.ts`, `ScreenBG3Slice.ts`, `PanelType.ts`, `PanelTransition.ts`
9.1.4底部右面板 (战斗数值Sprite化: BaseAtk/WeaponAtk/Armor + HP材质条)done`PlayerHealthArmorWidgetController.ts`, `GameMain.ts`, `test-gameloop-codex.scene`
9.1.5HUD数据绑定 (PLAYER_STATS_CHANGED→UI)done+L3`PlayerHealthArmorWidgetController.ts`, `GameMain.ts`, `test_integration_player_health_armor_ui.py`
9.1.6Combat Formula Debug面板 (蓝色RichText, 实时公式+modifier)done`CombatFormulaDebug.ts`
Story 9.2: 玩家视觉 2/2
#TaskStatusKey Files
9.2.1PlayerPawn (HP/Armor标签, 受击闪烁)needs-art`PlayerPawn.ts`
9.2.2技能栏UIneeds-art`SkillBarUI.ts`, `SkillSlotUI.ts`, `GameMain.ts`
Story 9.3: VFX特效链 1/9
#TaskStatusKey Files
9.3.1FlipbookFX (sprite sheet动画)needs-art`FlipbookFX.ts`
9.3.2连线阶段: HUD增量数字 (括号+颜色)todo
9.3.3Bonus奖励: 特殊颜色数字todo
9.3.4受击FX (敌人存活时)todo
9.3.5击杀FX: 敌人死亡停顿 + 收缩/爆开 + 掉落具象化todo
9.3.6资源pickup曲线吸附到HUD锚点todo
9.3.7敌人攻击: 屏幕震动+攻击特效todo
9.3.8护甲3分支表现 (全挡/部分/无挡)todo
9.3.9击杀/收集反馈的结算时机对齐todo
Story 9.4: 音效 0/3
#TaskStatusKey Files
9.4.1SFX1: 受击/攻击音效todo
9.4.2SFX2: 死亡/护甲碎裂音效todo
9.4.3SFX3: 爪击/受伤音效todo
Story 9.5: 启动画面与加载反馈 2/2
#TaskStatusKey Files
9.5.1Web 自定义启动画面 (Custom Splash)done`build-templates/web-mobile/index.html`, `build-templates/web-mobile/application.js`, `assets/splash/`
9.5.2加载阶段进度反馈done`build-templates/web-mobile/application.js`, `build-templates/web-mobile/index.html`, `assets/scripts/GameMode.ts`
Epic 10: 工程基础设施 in progress 32/34 (94%)
Story 10.1: 测试体系 19/19
#TaskStatusKey Files
10.1.1L1 TypeScript类型检查done`tsconfig.json`
10.1.2L2 Jest单元测试框架done`tests/`, `__mocks__/cc.ts`
10.1.3L3 Playwright集成测试框架done`tools/tests/harness.py`
10.1.4L3 核心游戏循环测试done`tools/tests/test_integration_gameloop.py`
10.1.5L3 死锁检测测试done`tools/tests/test_integration_deadlock.py`
10.1.6L4 手动会话框架done`tools/tests/harness.py` (ManualSession)
10.1.7L3 商店集成测试 (22断言, 5故事)done`tools/tests/test_integration_shop.py`
10.1.8L3 Bonus概率集成测试done`tools/tests/test_integration_bonus.py`
10.1.9L3 连线预览集成测试 (12场景, 17断言)done`tools/tests/test_link_preview.py`
10.1.10L3 WeaponRain modifier集成测试done`tools/tests/test_integration_weapon_rain.py`
10.1.11L3 五维属性主公模板集成测试done`tools/tests/test_integration_lord_dimensions.py`
10.1.12L3 移动端触摸拖拽集成测试 (稳态注入)done`tools/tests/test_integration_touch_drag.py`
10.1.13L3 升级面板集成测试 (真实战斗+面板选择)done`tools/tests/test_integration_levelup.py`
10.1.14Deterministic replay / validation harness + `render game state to text`done+L3`tests/`, `tools/tests/`, `assets/scripts/core/`
10.1.15GameState ASCII renderer (6x6 grid + player + round + status)done`assets/scripts/core/`, `tools/tests/`
10.1.16Verbose trace sink(按回合 / 状态切片)done`assets/scripts/GameMode.ts`, `assets/scripts/GridManager.ts`, `assets/scripts/core/`
10.1.17Super-verbose trace(每次 tile pick / backtrack / path update)done`assets/scripts/LinkLineManager.ts`, `assets/scripts/GameMode.ts`
10.1.18Debug log bundle format(session metadata + release + scene + timestamp)done`assets/scripts/`, `tools/tests/`, `docs/`
10.1.19L2/L3 验证:text trace 可复盘 board/path/round/state 变化done`tests/`, `tools/tests/`
Story 10.2: 开发工具 11/13
#TaskStatusKey Files
10.2.1CheatManager (代码层: startGame/setHealth/forceGrid)done`CheatManager.ts`
10.2.2CheatManager GM Panel (运行时UI面板)done`GMPanel.ts`, `GMPanelController.ts`, `GameMain.ts`
10.2.3L4死锁手动验证 (依赖GM Panel)todo
10.2.4Debug覆盖: tile type overridedone`LevelTileManager.ts`
10.2.5Coding Standard 门禁 (关键路径禁用Set/Map spread)done`CODING_STANDARD.md`, `tools/scripts/check_coding_standard.js`
10.2.6GM Panel:日志级别控制(off / verbose / super-verbose)done`DebugTraceService.ts`, `GMPanel*.ts`
10.2.7GM Panel:上传日志到 VPS 按钮done`assets/scripts/`, `tools/scripts/`, `tools/tests/`
10.2.8VPS 远端日志入口与索引页 / APIdone`tools/scripts/debug_log_server.py`, `docs/debug_trace_api.md`
10.2.9Codex skill:拉取 VPS 日志并生成诊断报告todo新建 skill(fetch + summarize)
10.2.10Debug trace viewer(VPS 日志预览页)done`tools/deploy_static/debug-trace-viewer/`, `tools/scripts/upload_to_vps.py`
10.2.11FML 状态页(Deploy Home 集成, deploy 时自动生成)done`tools/scripts/generate_fml_status.py`, `tools/scripts/upload_to_vps.py`
10.2.12FML 统计概览自动更新脚本done`tools/scripts/update_fml_stats.py`
10.2.13update-fml skill(FML 更新全流程自动化)done`~/.claude/skills/update-fml/SKILL.md`
Story 10.3: 事件系统 2/2
#TaskStatusKey Files
10.3.1EventBus全局单例done`EventBus.ts`
10.3.2GameEvents枚举 (30+事件)done`GameTypes.ts`
Epic 11: Meta / Frontend UI not started 0/11 (0%)
Story 11.0: (Tasks) 0/11
#TaskStatusKey Files
11.1`HomeUI.ts`todo
11.2`ShopUI.ts`todo
11.3`BackPackUI.ts`todo
11.4`ChallengeUI.ts`todo
11.5`ChargeUI.ts`todo
11.6`HeroSlot.ts`todo
11.7`ItemList.ts` / `ItemTemplate.ts`todo
11.8`SubBtnsUI.ts`todo
11.9`PanelTransition.ts` / `PanelType.ts`todo
11.10`AdapterContent.ts`todo
11.11`ButtonScaler.ts`todo
Epic 12: 美术资产管线 (Content Pipeline) in progress 12/60 (20%)
Story 12.1: 资产管线基础设施 0/5
#TaskStatusKey Files
12.1.1建立AI生图工作流规范 (工具选型/prompt模板/输出尺寸规范)todo新建 `docs/art_pipeline.md`
12.1.2美术资源目录结构规范todo`assets/resources/textures/`
12.1.3Sprite导入标准: 尺寸/格式/命名/九宫格切片规范todo
12.1.4批量导入脚本 (AI生图输出→Cocos资源目录+meta生成)todo新建 `tools/scripts/import_art.py`
12.1.5美术资源审查checklist (尺寸/透明度/边缘/风格一致性)todo
Story 12.2: UE5遗留资产迁移 0/6
#TaskStatusKey Files
12.2.1盘点UE5 Content/下所有美术资产, 建立迁移清单todo
12.2.2提取UE5 uasset中的原始贴图 (PNG/TGA导出)todo
12.2.3迁移角色立绘 (Warrior/: 关公/广仲/祝融)todo`Content/GUI/Warrior/`
12.2.4迁移FX粒子素材 (攻击/星光/爪击/能量)todo`Content/FX/`
12.2.5迁移GUI按钮素材 (商店/技能/菜单)todo`Content/GUI/BTN/`
12.2.6迁移背景素材todo`Content/GUI/BG/`
Story 12.3: Tile棋子素材制作 5/11
#TaskStatusKey Files
12.3.1确定Tile整体美术风格方向 (写实/像素/卡通/国风)todo
12.3.2Sword tile: Normal/Selected/Highlight 三态spriteneeds-art`textures/Tiles/T_Sword*.png`
12.3.3Shield tile: Normal/Selected/Highlight 三态spriteneeds-art`textures/Tiles/T_Shield*.png`
12.3.4Potion tile: Normal/Selected/Highlight 三态spriteneeds-art`textures/Tiles/T_Meat*.png`
12.3.5Coin tile: Normal/Selected/Highlight 三态spriteneeds-art`textures/Tiles/T_Coin*.png`
12.3.6Soldier tile: Normal/Selected/Attack/Dead 四态spriteneeds-art`textures/Tiles/T_Soldier*.png`
12.3.7Mana tile: 新制Normal/Selected spritetodo
12.3.8Arrow tile: 新制Normal/Selected spritetodo
12.3.9敌人视觉语义系统(原型/精英标记/特殊机制标记)todo
12.3.10Tile sprite atlas打包 (减少draw call)todo
12.3.11敌人阶段感微变化素材(头饰/肩饰/材质点缀)todo
Story 12.4: 连线 (Link Line) 视觉打磨 3/6
#TaskStatusKey Files
12.4.1确定连线最终视觉风格 (发光/描边/粒子/渐变)todo
12.4.2重制连线段body spriteneeds-art`textures/LinkLine*/`
12.4.3重制连线head/tail端点spriteneeds-art`textures/LinkLine*/`
12.4.4重制连线corner转角sprite (6个角度)needs-art`textures/LinkLineNormalized/`
12.4.5连线颜色按Tile类型区分todo`LinkLineRenderer.ts`
12.4.6连线动态特效 (流光/粒子跟随)todo
Story 12.5: 战斗背景与场景美术 2/4
#TaskStatusKey Files
12.5.1战斗主背景 (网格区域背景)needs-art`textures/BG/BG-Cut/02_BGAligned_MiddleLeather.png`
12.5.2顶部/底部UI区域背景needs-art`textures/BG/BG-Cut/01_BGAligned_TopParchment.png`, `textures/BG/BG-Cut/03_BGAligned_BottomParchment.png`
12.5.3网格边框/装饰元素todo
12.5.4关卡主题背景变体 (多套场景)todo
Story 12.6: UI界面美术 1/8
#TaskStatusKey Files
12.6.1通用UI框架素材 (面板背景/按钮/边框/分隔线)todo
12.6.2GameOver面板正式美术todo`GameOverOverlay.ts`
12.6.3商店面板正式美术 (三页签+列表+购买按钮)todo`ShopPanel.ts`
12.6.4技能栏+技能图标正式美术todo`SkillBarUI.ts`
12.6.5HUD资源栏正式美术 (HP材质条/Armor&Attack sprite/Gold&XP条)done`PlayerHealthArmorWidgetController.ts`, `BG_Health.png`, `BG_Armor.png`, `Fill_Armor.png`, `Container_WeaponAttack.png`, `Container_BaseAttack.png`
12.6.6升级选择面板美术 (4选2卡片)todo
12.6.7附魔面板美术todo
12.6.8字体资源: 数值字体/标题字体/正文字体todo`font/`
Story 12.7: 角色与怪物立绘 1/4
#TaskStatusKey Files
12.7.1玩家角色主立绘 (战斗界面用, 含主公形态底部面板适配)done`PlayerPawn.ts`
12.7.2玩家角色头像 (HUD用)todo
12.7.3Boss怪物立绘 (多种)todo
12.7.4武将立绘 (已有UE5三国系列, 需评估复用/重制)todo`textures/portrait/`
Story 12.8: 特效素材 (VFX Assets) 0/6
#TaskStatusKey Files
12.8.1受击特效sprite sheettodo
12.8.2击杀爆炸特效sprite sheettodo
12.8.3资源飞行粒子素材 (金币/药水/盾等图标)todo
12.8.4屏幕震动受击遮罩todo
12.8.5护甲碎裂效果素材todo
12.8.6Bonus触发特效 (4种Bonus各一套)todo
Story 12.9: 音频资源 0/10
#TaskStatusKey Files
12.9.1BGM: 战斗主题音乐todo
12.9.2BGM: 主界面音乐todo
12.9.3SFX: 连线拾取音效 (pick/extend)todo
12.9.4SFX: 连线确认/释放音效todo
12.9.5SFX: 攻击命中音效todo
12.9.6SFX: 敌人死亡音效todo
12.9.7SFX: 受伤/护甲碎裂音效todo
12.9.8SFX: UI操作音效 (按钮/面板开关/购买)todo
12.9.9SFX: 资源收集音效todo
12.9.10SFX: GameOver音效todo
Epic 13: 构建、打包与发布 (Build & Deploy) in progress 8/42 (19%)
Story 13.1: 构建基础设施 8/9
#TaskStatusKey Files
13.1.1在Cocos Creator编辑器中完成首次Web-Mobile构建done`build/web-mobile/`
13.1.2确认构建后游戏功能完整 (手动浏览器验证)done
13.1.3构建脚本自动化 (npm run build)done`package.json`, `tools/scripts/upload_to_vps.py`
13.1.4资源压缩配置 (纹理压缩/音频压缩/JSON压缩)done`settings/v2/packages/builder.json`
13.1.5Source Map配置 (Debug vs Release)todo
13.1.6构建产物体积分析与优化done`update_build_settings.js`, `tools/tests/test_deploy_verify.py`
13.1.7VPS 域名绑定 (sgame.reiwang.cn)done`tools/scripts/setup_nginx.py`
13.1.8VPS 迁移至国内服务器 + HTTPSdone`tools/scripts/setup_vps.py`, `tools/scripts/upload_to_vps.py`
13.1.9部署基础设施重构(集中配置 + 一键初始化 + 双服务器支持)done`tools/scripts/server_config.py`, `tools/scripts/setup_server.py`, `/deploy` skill
Story 13.2: Android原生打包 0/9
#TaskStatusKey Files
13.2.1安装Android开发环境 (Android Studio + SDK + NDK)todo
13.2.2配置Android包名 (com.xxx.sgame) 和版本号todo`profiles/v2/packages/android.json`
13.2.3首次Android构建 (Debug APK)todo`build/android/`
13.2.4真机调试: APK安装到Android设备并运行todo
13.2.5横竖屏与分辨率适配 (portrait 640x960)todo`AndroidManifest.xml` (生成)
13.2.6App图标与启动页 (Splash Screen)todo`build-templates/android/`
13.2.7签名证书生成 (Release Keystore)todo
13.2.8Release APK/AAB构建todo
13.2.9性能测试: 中低端Android设备帧率todo
Story 13.3: iOS原生打包 0/9
#TaskStatusKey Files
13.3.1确认是否有macOS开发机 + Xcode环境todo
13.3.2注册Apple Developer Programtodo
13.3.3配置iOS Bundle Identifier与版本号todo`profiles/v2/packages/ios.json`
13.3.4首次iOS构建 (模拟器/真机Debug)todo`build/ios/`
13.3.5真机调试: 安装到iPhone/iPadtodo
13.3.6App图标与LaunchScreen配置todo
13.3.7安全区适配 (notch/Dynamic Island)todo
13.3.8Release Archive + TestFlight分发todo
13.3.9App Store审核准备 (截图/描述/隐私政策)todo
Story 13.4: 微信小游戏发布 0/8
#TaskStatusKey Files
13.4.1注册微信小游戏AppIDtodo
13.4.2安装微信开发者工具todo
13.4.3首次微信小游戏构建todo`build/wechatgame/`
13.4.4微信开发者工具预览 + 真机扫码测试todo`build/wechatgame/game.json`
13.4.5包体优化: 首包≤4MB (引擎裁剪/代码分包)todo
13.4.6资源分包/远程资源加载todo
13.4.7微信API适配 (分享/排行榜/广告/支付)todo
13.4.8微信小游戏审核与发布todo
Story 13.5: 其他小游戏平台 (低优先级) 0/3
#TaskStatusKey Files
13.5.1抖音小游戏构建与发布todo`profiles/v2/packages/bytedance-mini-game.json`
13.5.2支付宝小游戏构建与发布todo`profiles/v2/packages/alipay-mini-game.json`
13.5.3OPPO/VIVO快游戏todo
Story 13.6: 持续集成与分发 (CI/CD) 0/4
#TaskStatusKey Files
13.6.1CI构建流水线 (GitHub Actions / Jenkins / 其他)todo
13.6.2版本号自动递增策略todo
13.6.3测试分发渠道 (蒲公英/TestFlight/内部APK)todo
13.6.4热更新机制 (Cocos资源热更)todo
Epic 14: Boss系统 not started 0/23 (0%)
Story 14.1: Boss数据配置与生成 0/7
#TaskStatusKey Files
14.1.1Boss Tile配置: 高HP/Armor/Attack数值模板todo`TileConfigs.json`, `ConfigLoader.ts`
14.1.2Boss EnemyConfig条目 (category='boss', bossConfig)todo`EnemyConfigs.json`, `ConfigLoader.ts`
14.1.3Boss生成节奏: 与普通敌生成池解耦todo`LevelTileManager.ts` 或新建 `WaveManager.ts`
14.1.4Boss占位: 单格 vs 多格 (2x2)blocked`GridManager.ts`
14.1.5L2单元测试: Boss配置加载与数值验证todo`tests/ConfigLoader.test.ts`
14.1.6Boss并存数上限与唯一性约束todo`LevelTileManager.ts` 或新建 `WaveManager.ts`
14.1.7Boss出场预告/telegraph 节奏todo`GameMode.ts`, `LevelTileManager.ts`, `EnemyTileBase.ts`
Story 14.2: Boss技能与行为 0/7
#TaskStatusKey Files
14.2.1Boss技能框架: 复用SkillBase, 敌人侧技能触发todo`EnemyTileBase.ts`, `SkillBase.ts`
14.2.2Boss技能: 重击 (倍率伤害, 长CD)todo新建 `BossSkillHeavyStrike.ts`
14.2.3Boss技能: 召唤 (生成额外minion)todo新建 `BossSkillSummon.ts`
14.2.4Boss技能: 护盾强化 (自我回复Armor)todo新建 `BossSkillFortify.ts`
14.2.5Boss阶段切换: phaseThresholds触发行为变化todo`EnemyTileBase.ts`
14.2.6Boss狂暴状态 (enrageOnLowHp)todo`EnemyTileBase.ts`
14.2.7L2单元测试: Boss技能效果与阶段切换todo`tests/BossSkill*.test.ts`
Story 14.3: Boss击杀奖励与资源掉落 0/5
#TaskStatusKey Files
14.3.1Boss击杀奖励配置: 额外XP/武魂/装备值/金币todo`EnemyConfigs.json` 扩展
14.3.2击杀掉落结算: Boss死亡时发放奖励到PlayerStatstodo`GameMode.ts`, `PlayerStats.ts`
14.3.3Boss击杀后武将捕获概率todo
14.3.4Boss击杀VFX: 特殊死亡动画+掉落特效todo
14.3.5L2单元测试: Boss奖励发放todo`tests/BossReward.test.ts`
Story 14.4: Boss美术资源 0/4
#TaskStatusKey Files
14.4.1Boss tile sprite: Normal/Damaged/Enraged/Dead 多态todo
14.4.2Boss技能特效sprite sheettodo
14.4.3Boss击杀掉落物spritetodo
14.4.4多种Boss视觉变体 (不同Boss不同外观)todo
Epic 15: 性能与优化 (Performance & Optimization) in progress 8/17 (47%)
Story 15.1: 包体与资源体积优化 3/5
#TaskStatusKey Files
15.1.1剔除未使用的大体积资源与场景done`update_build_settings.js`
15.1.2碎图合并为 AutoAtlas 自动图集done`*.pac.meta`
15.1.3启用 ASTC 纹理压缩done`buildConfig.json`, `builder.json`
15.1.4引擎模块裁剪 (Engine Feature Crop)todo`project.json`
15.1.5资源远程加载与首包优化todo
Story 15.2: 渲染效率与 GPU 优化 5/6
#TaskStatusKey Files
15.2.1连线系统节点合批 (Dynamic Batching)done`LinkLineRenderer.ts`
15.2.2棋盘网格 DrawCall 优化done`GridManager.ts`, `TileBase.ts`
15.2.3过度绘制 (Overdraw) 排查todo
15.2.4敌人属性浮层 DrawCall 优化done`EnemyTileBase.ts`
15.2.5HUD Graphics→Sprite 替换done`ShopButton.ts`, `GameMain.ts`, `GameOverOverlay.ts`, `SingleColorSpriteUtil.ts`
15.2.6Sorting2D 有效性验证与清理done`TileBase.ts`, `LinkLineRenderer.ts`
Story 15.3: CPU 性能与顿卡排查 0/3
#TaskStatusKey Files
15.3.1对象池 (Node Pool) 接入todo`GridManager.ts`, `LinkLineRenderer.ts`
15.3.2复杂寻路与死锁检测算法拆分todo`GridManager.ts`
15.3.3帧率监控与性能剖析面板todo
Story 15.4: 内存泄漏与崩溃追踪 0/3
#TaskStatusKey Files
15.4.1全局事件 EventBus 内存泄漏排查todo`EventBus.ts`
15.4.2动态资源加载引用计数管理todo`AssetManager`
15.4.3原生端 Crash 收集接入todo
Epic 16: 平台服务与账户管理 (Platform Services & Account) not started 0/9 (0%)
Story 16.1: 登录与鉴权 (Auth) 0/3
#TaskStatusKey Files
16.1.1渠道SDK接入 (微信小游戏 / Apple Sign-In / Google Play)todo`PlatformManager.ts`
16.1.2游客登录模式 (Guest Login)todo
16.1.3账户绑定与数据继承todo
Story 16.2: 玩家信息档案 (Player Profile) 0/3
#TaskStatusKey Files
16.2.1玩家基础数据结构 (UID, 昵称, 头像, 注册时间)todo`PlayerProfileModel.ts`
16.2.2主界面玩家信息 UI 面板todo`PlayerProfileUI.ts`
16.2.3修改昵称与头像逻辑todo
Story 16.3: 云端数据同步与反作弊 0/3
#TaskStatusKey Files
16.3.1本地存档数据序列化与加密todo`SaveManager.ts`
16.3.2云端同步机制 (Cloud Save)todo`NetworkManager.ts`
16.3.3核心数值服务端校验 (可选)todo
Epic 17: 运营活动与商业化 (LiveOps & Monetization) not started 0/6 (0%)
Story 17.1: 任务与成就系统 0/2
#TaskStatusKey Files
17.1.1每日任务 / 每周任务系统todo`TaskManager.ts`
17.1.2永久成就系统 (Achievements)todo`AchievementManager.ts`
Story 17.2: 签到与邮件系统 0/2
#TaskStatusKey Files
17.2.17日循环签到奖励todo`SignInUI.ts`
17.2.2基础邮件箱功能todo`MailManager.ts`
Story 17.3: 广告与商业化 (Monetization) 0/2
#TaskStatusKey Files
17.3.1激励视频广告 (Rewarded Video)todo`AdManager.ts`
17.3.2内购商城模块 (IAP)todo`IAPManager.ts`
Epic 18: 运行时架构重构 (Runtime Architecture Refactor) complete 21/21 (100%)
Story 18.1: GameMode / EventBus 编排拆解 5/5
#TaskStatusKey Files
18.1.1盘点 `GameMode` 私有字段、事件监听与状态切换,输出职责矩阵done+L3`GameMode.ts`, `GameTypes.ts`
18.1.2提取 `LinkResolveCoordinator` 与 `LinkResolveResult` 应用层对象done+L3`GameMode.ts`, `LinkLineManager.ts`, `CombatResolver.ts`
18.1.3提取 `EnemyTurnCoordinator` 与 `EnemyTurnResult`done+L3`GameMode.ts`, `EnemyTileBase.ts`, `PlayerStats.ts`
18.1.4提取 `GameFlowCoordinator + GameFlowEffectRunner + GameModeSession` 处理奖励、升级、Shop 与 modal 分支done+L3`GameMode.ts`, `assets/scripts/core/flow/`, `assets/scripts/core/runtime/`
18.1.5收敛 `GAME_STATUS_UPDATE` 等泛广播事件,替换为更窄的子系统契约done+L3`EventBus.ts`, `GameTypes.ts`, `GameMode.ts`
Story 18.2: Pure Game Core 抽离 4/4
#TaskStatusKey Files
18.2.1定义可序列化 `GameState` 快照模型done`assets/scripts/core/CoreTypes.ts`, `assets/scripts/core/GameStateFactory.ts`, `GameMode.ts`
18.2.2定义核心 `Command` / `EventLog` 契约done`assets/scripts/core/CoreTypes.ts`, `assets/scripts/core/CoreReducer.ts`
18.2.3抽离纯规则入口:连线合法性、战斗预览、伤害结算、死锁判断done`LinkRules.ts`, `CombatResolver.ts`, `assets/scripts/core/CoreLinkResolver.ts`, `assets/scripts/core/CoreEnemyTurnResolver.ts`, `assets/scripts/core/analysis/BoardDeadlockAnalyzer.ts`
18.2.4建立 Cocos adapter boundary,将输入采集与表现更新隔离到适配层done`GameMode.ts`, `GridManager.ts`, `LinkLineManager.ts`, `assets/scripts/core/flow/`, `assets/scripts/core/runtime/`, `assets/scripts/subsystems/`
Story 18.3: Config 单一数据源与 fallback 数据化 5/5
#TaskStatusKey Files
18.3.1清点所有在代码内嵌 fallback 的配置域done`ConfigLoader.ts`, `DimensionGrowthConfig.ts`, 相关 config loader
18.3.2设计 JSON 侧 fallback/default schemadone`assets/configs/*.json`, 相关 schema 定义
18.3.3实现 loader precedence 与结构化校验错误done`ConfigLoader.ts`, `DimensionGrowthConfig.ts`
18.3.4迁移 `ConfigLoader` / `DimensionGrowthConfig` 到单源策略done`ConfigLoader.ts`, `DimensionGrowthConfig.ts`, `assets/configs/`
18.3.5补 L2 回归测试:缺失配置、部分配置、fallback 迁移done`tests/ConfigLoader.test.ts`, `tests/DimensionGrowthConfig.test.ts`
Story 18.4: GameMain (原 GameLoopTest) Bootstrapper 职责拆分 7/7
#TaskStatusKey Files
18.4.1抽离 GM Panel 构建到独立 Builder 组件done(skipped)
18.4.2抽离 SkillBar UI 构建 (~230行) 到 SkillBarVCdone`SkillBarVC.ts`
18.4.3抽离肖像呼吸动画 (~130行) 到 PortraitVCdone`PortraitVC.ts`
18.4.3b抽离资源标签/HP条到 PlayerInfoBarVCdone`PlayerInfoBarVC.ts`
18.4.4将 onSummonGeneral 移入 PlayerControllerdone`PlayerController.ts`
18.4.5收束 + 重命名 GameLoopTest → GameMain,L1+L2 通过done`GameMain.ts`, `GameSettings.ts`
18.4.6GridManager 职责拆分:删除 autoAttach* + L3 测试迁移done+L3`GridManager.ts`, `GameMain.ts`, `tools/tests/test_linkline_*.py`
Epic 19: 资源管理与包拆分 (Asset Management & Bundle Splitting) not started 0/22 (0%)
Story 19.1: 资源审计与分包策略设计 0/4
#TaskStatusKey Files
19.1.1当前构建产物资源清单与体积分析todo`build/web-mobile/`
19.1.2定义包拆分策略:首包 / 核心战斗包 / 二阶包todo
19.1.3资源依赖图分析(哪些资源被哪些场景/脚本引用)todo
19.1.4制定各平台包体预算(Web: 首包≤2MB;微信: 首包≤4MB;原生: 总包≤50MB)todo
Story 19.2: Cocos Asset Bundle 配置与构建 0/4
#TaskStatusKey Files
19.2.1将 `assets/` 拆分为多个 Asset Bundle(main / battle / shop / boss / audio)todo`assets/` 目录结构, Bundle 配置
19.2.2配置 Bundle 优先级与加载策略(main=内置, battle=预加载, 其余=按需)todo`profiles/v2/packages/builder.json`
19.2.3构建验证:确认拆包后各 Bundle 产物体积符合预算todo`build/`
19.2.4L1 验证:拆包后 TypeScript 编译无报错todo
Story 19.3: 首包进入与 Loading 场景 0/5
#TaskStatusKey Files
19.3.1创建 Loading 场景(首包内置,作为启动场景)todo`assets/scene/loading.scene`
19.3.2Loading 场景加载核心战斗 Bundle(带进度回调)todo新建 `LoadingController.ts`
19.3.3核心 Bundle 加载完成后切换到游戏场景todo`LoadingController.ts`
19.3.4加载失败重试与错误提示todo`LoadingController.ts`
19.3.5L3 集成测试:Loading → 战斗场景切换流程todo`tools/tests/test_integration_loading.py`
Story 19.4: 按需二阶包加载 0/4
#TaskStatusKey Files
19.4.1商店/技能 Bundle 按需加载(首次打开商店时触发)todo`ShopPanel.ts`, `ShopButton.ts`
19.4.2Boss Bundle 按需加载(Boss 生成前触发预加载)todo`LevelTileManager.ts` 或 `WaveManager.ts`
19.4.3音效 Bundle 后台静默加载(进入游戏后立即开始)todo`LoadingController.ts` 或 `AudioManager.ts`
19.4.4Bundle 加载状态管理(已加载/加载中/未加载)todo新建 `BundleManager.ts`
Story 19.5: 缓存策略与增量更新 0/5
#TaskStatusKey Files
19.5.1Web 平台:利用浏览器缓存(Cache-Control / Service Worker)todo
19.5.2小游戏平台:利用微信文件系统缓存todo
19.5.3原生平台:Cocos `AssetsManager` 热更新集成todo
19.5.4版本化 Bundle 命名(内容哈希),确保缓存失效正确todo构建脚本
19.5.5缓存空间管理与清理策略todo
Epic 20: 用户存档与断点续玩 (Save System & Session Resume) in progress 3/22 (14%)
Story 20.1: 用户身份识别与会话匹配 0/4
#TaskStatusKey Files
20.1.1Cookie / LocalStorage 匿名身份持久化(Web 平台)todo
20.1.2设备 ID 匿名身份持久化(原生 / 小游戏平台)todo
20.1.3账户登录后身份合并(匿名 → 正式账户)todo
20.1.4会话匹配:启动时检测是否有进行中的存档todo
Story 20.2: 局内状态快照与持久化 0/5
#TaskStatusKey Files
20.2.1扩展 `GameState` 快照覆盖完整局内状态todo`core/CoreTypes.ts`, `GameStateFactory.ts`
20.2.2定义存档触发时机(回合结束 / 状态机空闲点)todo`GameMode.ts`
20.2.3本地存档写入(LocalStorage / 文件系统)todo新建 `SaveManager.ts`
20.2.4存档数据压缩与校验(可选加密)todo`SaveManager.ts`
20.2.5存档版本号与向前兼容迁移todo`SaveManager.ts`
Story 20.3: 确定性 Replay 与状态重建 3/4
#TaskStatusKey Files
20.3.1RNG 种子化:所有随机源替换为 seeded PRNGdone+L3`RunRandom.ts`, `GameMode.ts`, `BonusResolver.ts`, `CombatResolver.ts`, `LevelTileManager.ts`
20.3.2操作日志记录:每次玩家输入记录为 `CoreCommand`done+L3`assets/scripts/core/replay/`, `GameMode.ts`
20.3.3确定性回放验证:从初始状态 + 操作日志重建,断言与实际快照一致done+L3`assets/scripts/core/replay/ReplayValidator.ts`, `tests/`, `tools/tests/`
20.3.4两种恢复策略:快照恢复 vs 操作日志 replaytodo
Story 20.4: 断点续玩 UI 与流程 0/5
#TaskStatusKey Files
20.4.1启动时存档检测 → 续玩/新开选择 UItodo`LoadingController.ts` 或新建 `SessionResumeUI.ts`
20.4.2从快照恢复局内状态(GridManager / PlayerStats / GameMode / 技能 / 商店)todo`GameMode.ts`, `GridManager.ts`, `PlayerStats.ts`
20.4.3恢复后状态校验(快照 vs 当前 GameState 一致性断言)todo
20.4.4存档清理:正常结局(GameOver / 通关)后删除进行中存档todo`SaveManager.ts`, `GameMode.ts`
20.4.5L3 集成测试:模拟中断 → 重新加载 → 断言状态恢复正确todo`tools/tests/test_integration_resume.py`
Story 20.5: 云端存档同步(依赖 Epic 16) 0/4
#TaskStatusKey Files
20.5.1本地存档上传到云端(回合结束时异步推送)todo`SaveManager.ts`, `NetworkManager.ts`
20.5.2启动时云端存档拉取与本地比对todo
20.5.3跨设备续玩:设备 A 中断 → 设备 B 继续todo
20.5.4离线模式降级:无网时使用本地存档,联网后自动同步todo
Epic 21: 新手引导系统 (Tutorial / Onboarding) not started 0/23 (0%)
Story 21.1: 固定初始棋盘 0/4
#TaskStatusKey Files
21.1.1预设棋盘数据格式:定义 JSON schema 描述 6×6 固定 tile 布局(TileType + 位置)todo`assets/configs/TutorialBoard.json`
21.1.2GridManager 支持从预设数据初始化棋盘(跳过随机生成)todo`GridManager.ts`
21.1.3预设棋盘内容设计:选择合适的 tile 分布,确保引导步骤可执行todo`TutorialBoard.json`
21.1.4引导期间禁用 condensation + refill 的随机性(仅在引导步骤间使用预设补充)todo`GridManager.ts`
Story 21.2: 引导流程控制 0/7
#TaskStatusKey Files
21.2.1TutorialManager 组件:状态机驱动引导步骤(step[]顺序执行)todo`TutorialManager.ts`
21.2.2引导步骤:教连线操作(高亮目标 tiles,等待玩家完成连线)todo`TutorialManager.ts`
21.2.3引导步骤:教攻击/战斗(展示敌人受伤、玩家受击反馈)todo`TutorialManager.ts`
21.2.4引导步骤:教资源收集(Coin/Potion/Shield 效果说明)todo`TutorialManager.ts`
21.2.5引导步骤:教技能使用(如果技能系统已完成)todo`TutorialManager.ts`
21.2.6引导结束 → 发射 EventBus 事件 `TUTORIAL_COMPLETE`,通知各子系统切换到正常模式todo`TutorialManager.ts`, `EventBus.ts`
21.2.7输入遮罩:引导期间只允许点击/连线高亮区域,屏蔽其余输入todo`TutorialManager.ts`, `InputManager.ts`
Story 21.3: 引导 UI 表现 0/4
#TaskStatusKey Files
21.3.1引导提示气泡/对话框 UI 组件(文字 + 箭头指向目标区域)todo`TutorialBubble.ts`
21.3.2高亮遮罩:半透明黑色遮罩 + 目标区域镂空效果todo`TutorialMask.ts`
21.3.3手指动画提示:指示滑动/点击方向的动态手指图标todo
21.3.4引导步骤过渡动画(淡入/淡出、气泡弹出)todo`TutorialManager.ts`
Story 21.4: 引导完成标记与持久化 0/4
#TaskStatusKey Files
21.4.1本地持久化:引导完成后写入 localStorage 标记todo`TutorialManager.ts`
21.4.2启动时检测:GameMain 初始化时读取标记,决定走引导流程还是正常流程todo`GameMain.ts`, `TutorialManager.ts`
21.4.3云端同步引导状态(依赖 Epic 16 / Epic 20 存档系统)todo`SaveManager.ts`
21.4.4开发/调试用重置引导入口(清除 localStorage 标记)todo`TutorialManager.ts`
Story 21.5: 测试与验证 0/4
#TaskStatusKey Files
21.5.1L2 单元测试:TutorialManager 状态机步骤推进逻辑todo`tests/TutorialManager.test.ts`
21.5.2L2 单元测试:固定棋盘加载与校验todo`tests/GridManager.test.ts`
21.5.3L3 集成测试:完整引导流程 → 引导结束 → RNG 棋盘生效todo`tools/tests/test_integration_tutorial.py`
21.5.4L3 集成测试:已完成引导的玩家 → 启动直接跳过引导todo`tools/tests/test_integration_tutorial.py`
Generated from feature_master_list.md