You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
方案:项目结构整理与遗留清理
日期:2026-08-17
状态:实施中(Phase 0 文档已完成)
关联:需求-新项目概述.md、需求-模块保留.md、遗留代码收敛方案.md
1. 目标
将当前仓库(老项目完整复制)收敛为 新产品结构:
- 配表、存档、战斗入口对齐 12 张新表 与段位制
- 删除不再使用的局外模块、bundle、引流小游戏
- 局内战斗接入 阵营区域对抗(非镜像 PvP),裁剪 type3 格子与 Gacha 模式
- 保留并扩展 MX 框架层,避免重复造轮子
2. 现状与目标差距
| 层面 |
现状 |
目标 |
| 配表 |
first/config 已换 12 张新表;大量 TS 仍引用 Chapter/Shop/Weapon1 等 |
代码只读新表;清理死类型与枚举 |
| 存档 |
GameData 含 chapter、关卡进度等 |
改为 rankId、rankStars、dailyWins、昨日段位等 |
| 局外 UI |
5 Tab + 70+ 弹窗,多数绑旧表 |
保留首页/神兵/商店/转盘/排行榜等,删副本/角色/任务等 |
| 战斗 |
Solo PVE + type3 改路 + Gacha |
阵营 PvAI + 固定路线 + Text 字池 |
| 对抗架构 |
早期半图镜像(已删除) |
CampAreaPolicy=pvp + 双 campAreaId |
| 资源 |
attractingTrafficGame、allBuyShops、replica 等 bundle 仍在 |
按清单删除并更新预载 |
3. 分阶段实施
Phase 0 — 文档与门禁 ✅
Phase 1 — 配表与类型层迁移
目标:编译层面对齐新表,不删 UI,避免雪崩。
| 任务 |
文件/动作 |
| 清理死代码 |
ConfigTableData.ts 中 SkillCostType 章节相关、IShopItemData 等旧接口 |
| 类型对齐 |
AutoTable.ts 保留新表接口;旧表接口标记废弃或删除(无引用后) |
| Level 构建 |
改造 ChapterLevelBuilder.ts → 读 Level 表,重命名为 LevelDefBuilder 或等价 |
| 合成配置 |
WeaponComposeConfigProvider → TextComposeConfigProvider(Text + Hero) |
| 存档字段 |
GameData.ts / ConfigProjectData.ts:删 chapter 相关,增段位字段 |
| Rank 消费 |
新建 RankDataManager 或并入 ConfigProjectData 读 Rank 表 |
禁止:Phase 1 完成前批量删除 UI 目录。
Phase 2 — 局外裁剪与壳改造
删除顺序(先断引用,再删文件,最后删 bundle):
ConfigRes.UIID 注销
→ 删除对应 TS 脚本
→ 删除 prefab / bundle
→ 更新 ResPkgBuilder 预载
| 步骤 |
内容 |
| 2.1 |
ConfigRes.ts 注销废弃 UIID(见 §5.1) |
| 2.2 |
删除 TS 目录(见 §5.2) |
| 2.3 |
改造保留模块:PanelHome、pageWeapon、TurnTable |
| 2.4 |
新建:论功行赏 UI、排行榜 UI、新商店 UI |
| 2.5 |
删除 bundle:attractingTrafficGame、replica、allBuyShops 子包;视情况 role |
| 2.6 |
大厅导航按美术方案 A/B 落地(§7) |
Phase 3 — 局内战斗改造
| 步骤 |
内容 |
| 3.1 |
地图:mapLayer1 校验双 CampAreaID;补齐 mapLayer2~4 |
| 3.2 |
开战:resolveCampAreaPolicy(topology, 'pvp');双玩家槽绑 campAreaId |
| 3.3 |
PvPBattleMode 双槽全图;部署隔离按 campAreaId |
| 3.4 |
BattleBagSession:删 type3、路径 rebuild、MapPlaceValidator type3 逻辑 |
| 3.5 |
刷新池:BagWeaponPool 改读 Text 表;铲子 = Text type=4 |
| 3.6 |
新建 AiOpponentController(Rank.aiweapon / aiusead / charactersweight) |
| 3.7 |
UIBattleGame 裁剪:Gacha、副本机制 UI、章节引导 |
| 3.8 |
对抗 UI:上下阵营信息栏、局外道具槽 |
Phase 4 — 资源与引用清扫
| 任务 |
说明 |
| grep 旧表名 |
Chapter|Weapon1|Weapon2|Lottery|ShopBuy|NewFun |
| 规范审计 |
python tools/规范审计.py --list |
| 删未引用资源 |
prefab、spine、音效(按 bundle 逐项) |
| 更新预载 |
ResPkgBuilder.ts、ConfigRes.ts bundle 映射 |
| 战斗文档 |
battle/docs/需求说明.md 增「新项目差异」章节 |
Phase 5 — 验收
| 项 |
标准 |
| 启动链 |
test/启动链冒烟清单.md 通过 |
| 配表 |
12 张表全加载,Const 校验无 error |
| 编译 |
无旧表名引用 |
| 单局流程 |
首页 → 匹配 → 阵营战斗 → 胜负加星 |
| 每日 |
论功行赏可领;平台奖励入口可用 |
4. 必改核心文件
4.1 配表与数据
| 文件 |
改动 |
assets/script/game/ConfigTableData.ts |
仅 12 表;清理旧 getter |
assets/script/interface/AutoTable.ts |
新表类型;删旧表 interface |
assets/script/game/GameData.ts |
段位存档字段 |
assets/script/game/ConfigProjectData.ts |
删闯关逻辑,增 Rank/Level |
assets/script/game/ConfigRes.ts |
UIID 与 bundle 裁剪 |
assets/script/game/ResPkgBuilder.ts |
预载列表 |
4.2 战斗
| 文件 |
改动 |
assets/script/battle/config/ChapterLevelBuilder.ts |
→ Level 表 |
assets/script/battle/bag/WeaponComposeConfigProvider.ts |
→ Text + Hero |
assets/script/battle/bag/BattleBagSession.ts |
删 type3/路径逻辑 |
assets/script/battle/bag/BagWeaponPool.ts |
读 Text 表 |
assets/script/battle/runtime/BattleRuntime.ts |
阵营双玩家 + AI |
assets/script/ui/BattleGame/UIBattleGame.ts |
大幅裁剪 |
assets/mx/module/battle/core/BattleSession.ts |
campPolicy=pvp |
4.3 局外
| 文件 |
改动 |
assets/script/ui/PanelHome/UIPanelHome.ts |
段位首页 |
assets/script/ui/pageWeapon/UIpageWeapon.ts |
Weapon/Hero 新表 |
assets/script/ui/TurnTable/UITurnTable.ts |
Battlebuff 配置 |
assets/script/ui/MainUI/UIMainUI.ts |
Tab 裁剪(待美术) |
5. 可删除清单
5.1 ConfigRes UIID(计划注销)
以下 UI 模块在新产品中 不做,开发时从 UIID / UIConfigs 移除:
| 类别 |
UI 目录 |
| 副本 |
Replica/, ReplicaBox/, pageDungeon/, dungeonBox/, PopHelp/ |
| 角色养成 |
pageUserLevelup/, pageUserLevelupDetail/, skin/, skinLevel/ |
| 章节相关 |
selectDifficult/, jumpGameLevel/, chapterGift/, challengeTip/ |
| 任务 |
taskView/ |
| 签到主流程 |
sign7Day/(论功行赏替代) |
| 商业化 |
PopFund/, PopGiftmonth/, PopFirstRecharge/, PopContinuouslyBag/, diamondShop/ |
| 活动 |
SignNewYear/ |
| 功能解锁 |
GetNewFun/, PopUnLockBtn/ |
| 叙事 |
saveText/, LayerGuide/, StoryLine 相关 |
| 引流 |
atGameChoose 及 attractingTraffic 相关 UIID |
| 其他 |
wipeOut/, boxLevelupDetail/, PanelCDK/, PanelComplain/ |
5.2 TS 目录(Phase 2 删除)
assets/script/attractingTrafficGame/ # 引流小游戏
assets/bundles/attractingTrafficGame/ # 对应 bundle
assets/script/ui/Replica/
assets/script/ui/ReplicaBox/
assets/script/ui/pageDungeon/
assets/script/ui/taskView/
assets/script/ui/sign7Day/ # 主流程替代后
assets/script/ui/PopFund/
assets/script/ui/PopGiftmonth/
assets/script/ui/PopFirstRecharge/
assets/script/ui/PopContinuouslyBag/
assets/script/ui/pageUserLevelup/
assets/script/ui/pageUserLevelupDetail/
assets/script/ui/skin/
assets/script/ui/skinLevel/
assets/script/ui/selectDifficult/
assets/script/ui/jumpGameLevel/
assets/script/ui/chapterGift/
assets/script/newFun/ # NewFun 解锁
assets/script/manager/TargetTaskManager.ts
assets/script/manager/ConstReplicaManager.ts
assets/script/manager/ChapterDataManager.ts # 评估后删或极简化
assets/script/manager/ChapterFieldResolver.ts
assets/script/activity/ # 季节性活动
5.3 Bundle(Phase 2~4 删除)
| Bundle |
说明 |
attractingTrafficGame |
引流小游戏 |
replica |
副本 |
role |
角色 Tab(若无其他引用) |
fund, giftMonth, firstRecharge, continuouslyBag, diamondShop, chapterGift |
商业化子包 |
5.4 战斗遗留(Phase 3 删除或停用)
| 路径 |
说明 |
PvPBattleMode |
双玩家槽 + 全图部署区;半图镜像 API 已删 |
assets/script/ui/BattleGame/ChoukaScript.ts |
Gacha 模式 |
assets/script/ui/BattleGame/ObstacleBrushController.ts |
障碍刷格 |
assets/script/battle/view/Chapter1BattleGuidePresenter.ts |
拖格子引导 |
assets/script/battle/view/MapLayer2BattleGuidePresenter.ts |
金手指引导(视新引导重做) |
assets/script/battle/view/PathFlowLinePresenter.ts |
拖路预览 |
assets/script/ui/BattleGame/JPS.ts |
旧寻路 |
6. 配表与存档迁移
6.1 存档字段(建议)
| 新字段 |
类型 |
说明 |
rankId |
number |
当前段位 id(Rank 表) |
rankStars |
number |
当前段内星数(0~level) |
dailyWins |
number |
今日胜场 |
yesterdayRankId |
number |
昨日结算时段位(论功行赏) |
yesterdayWins |
number |
昨日胜场 |
meritClaimedDate |
string |
论功行赏领取日期 |
dailyItems |
array |
当日 Battlebuff 道具(主动+被动) |
heroWeapons |
object |
神将装备映射 |
删除字段(迁移后):chapter、chapterBox、replicaProgress、taskProgress、sign7Day 等。
6.2 旧存档策略
- 新产品上线视为 新档;不做老档自动迁移(除非另行需求)
- 开发阶段可清空本地存储验证
7. 局外导航方案(待美术定稿)
| 方案 |
描述 |
影响文件 |
| A:单页入口 |
首页集中入口(原型) |
UIPanelHome 承载全部跳转;可简化或移除 UIMainUI Tab |
| B:精简 Tab |
底部 2~3 Tab(首页/商店/神将武器) |
改造 UIMainUI,删 Role/Replica Tab |
共同约束:
- 删除 Role、Replica Tab 及 bundle 依赖
- 排行榜、论功行赏、转盘可作为首页入口或独立弹窗
8. 风险与回滚
| 风险 |
缓解 |
| 代码仍引旧表导致编译失败 |
Phase 1 先改类型与 Builder,再删 UI |
| 删 bundle 后 prefab 引用断裂 |
用编辑器「引用查找」+ grep 确认零引用 |
| 阵营地图配置错误 |
campAreaMapValidation 开战前校验,失败 warn 并中止 |
| 原型细节与正式需求不符 |
文档标「待正式需求」,不擅自实现 |
回滚:按 Phase 提交 Git,每 Phase 结束前保持可编译、可进游戏。
9. 相关文档