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.
 
 
 
 
AdLike2048/docs/方案-项目结构整理与遗留清理.md

11 KiB

方案:项目结构整理与遗留清理

日期:2026-08-17
状态:实施中(Phase 0 文档已完成)
关联:需求-新项目概述.md、需求-模块保留.md、遗留代码收敛方案.md

1. 目标

将当前仓库(老项目完整复制)收敛为 新产品结构:

  1. 配表、存档、战斗入口对齐 12 张新表 与段位制
  2. 删除不再使用的局外模块、bundle、引流小游戏
  3. 局内战斗接入 阵营区域对抗(非镜像 PvP),裁剪 type3 格子与 Gacha 模式
  4. 保留并扩展 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 — 文档与门禁 ✅

项 状态
需求-新项目概述.md ✅
本文档 ✅
需求-模块保留.md 确认 ✅
项目说明.md 索引更新 ✅

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/attractingTraffic‌Game/          # 引流小游戏
assets/bundles/attractingTraffic‌Game/         # 对应 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. 相关文档

文档 说明
需求-新项目概述.md 产品大致需求
需求-模块保留.md 模块保留/删除决策
遗留代码收敛方案.md 代码规范收敛
开发规范.md 生成代码必遵