[T.15] 团队项目:Beta 阶段项目计划
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 软件工程 |
| 这个作业的要求在哪里 | [T.15]Beta 阶段项目计划 |
| 我在这个课程的目标是 | 掌握软件工程的核心理论,协作完成软件项目开发 |
| 这个作业在哪个具体方面帮助我实现目标 | 分配Beta阶段任务,确定具体执行计划 |
1. 功能规格
1.1 角色系统
-
戴夫地图形态重绘,简单像素风,支持待机动画和运动动画。
-
戴夫战斗形态优化。
-
戴夫其他界面(商店界面、教程界面)优化。
1.2 卡牌系统
-
完成黑夜、泳池、迷雾、屋顶共32张战斗卡的设计与实现。
-
完成道具卡系统的重构,道具卡使用pvz中商店的8种植物。
-
完成卡牌UI的增强,增加关键词预览功能,增强卡牌描述清晰度。
1.3 探图系统
-
优化地图演出效果。
-
确保每个新地图引入新的体系与机制,保持游戏的新颖性。预计黑夜地图引入墓碑组件,泳池地图引入渡水功能,迷雾地图引入局部视野,屋顶地图暂定。
1.4 战斗系统
-
战斗内卡牌释放特效的实现与增强。
-
引入新的战斗机制,预计黑夜引入阳光限制,泳池引入抽牌限制,屋顶引入站位限制。
-
平衡性测试与调整。
1.5 辅助系统
-
音量调节功能。
-
阶段性存档功能。
-
游戏窗口全屏功能。
2. 技术规格
当前 src/data/ 已经混入了非数据内容(UI 几何、UI 字符串、卡牌目标判定逻辑、资源 key 助手等),违反了仓库约定(src/data/ 只放设计/数值数据)。同时地图相关代码散落在 src/map/、src/scenes/MapScene.ts、src/ui/map/、src/ui/battle/ 多处,UI 与逻辑没有清晰边界。
2.1 现状审计
2.1.1 src/data/ 中非数据文件(应迁出)
| 文件 | 内容 | 现状 | 处置 |
|---|---|---|---|
| battleLayout.ts | 战斗 UI 几何常量 + getEnemySlotX | 是 UI 概念,被 BattleScene/Animator/Visualizer 使用 | → src/ui/battle/battleLayout.ts |
| handLayoutMath.ts | 手牌扇形几何纯数学 | 依赖 battleLayout,是 UI 几何 | → src/ui/battle/handLayoutMath.ts |
| consumableVisuals.ts | 道具贴图 key + 备用字形 + getter | UI 资源映射 | → src/ui/battle/consumableVisuals.ts |
| statusLabels.ts | 状态中文标签 + 列表格式化 | UI 文案 | → src/ui/common/statusLabels.ts |
| cardTargeting.ts | cardNeedsTarget 卡牌目标推断 | 卡牌域逻辑,不是数据 | → src/card/CardTargeting.ts |
| eventBackgrounds.ts | 背景 ID 列表 + key/path 助手 | 资源 key 助手 | → src/scenes/eventBackgrounds.ts |
| mapTileColors.ts | 战斗内地图 peek 配色 + getter | 无任何调用方(已死代码) | 删除 |
2.1.2 src/data/ 留下(确实是设计数据)
balance.ts、cards.ts、enemies.ts、events.ts、map.ts、shop.ts、consumableEffects.ts(每个一次性道具的伤害/状态规格——属于平衡数据)。
2.1.3 地图 UI 散落
| 文件 | 现状 | 处置 |
|---|---|---|
| src/map/MapDecorations.ts (244 行) | Phaser 装饰渲染 | → src/ui/map/MapDecorations.ts |
| src/map/MinimapPanel.ts (189 行) | UI 面板 | → src/ui/map/MinimapPanel.ts |
| src/map/ProximityHintController.ts (84 行) | "按 E 交互" 提示 UI | → src/ui/map/ProximityHintController.ts |
| src/map/MapV2Assets.ts (151 行) | 房屋簇贴图 + 邻接形状助手 | UI 渲染辅助 → src/ui/map/MapV2Assets.ts |
| src/map/MapNode.ts | 类型定义 | 留下 |
| src/map/MapGenerator.ts | 楼层地图生成纯逻辑 | 留下 |
| src/map/WorldMapData.ts | 世界地图数据 + 解析 | 本次不动(避免 PR 进一步膨胀,留作后续 issue) |
2.2 推进方式
一个 issue,一个 PR,多次迭代提交,每次迭代后跑 npm run typecheck + npm test + npm run build 验证:
-
迭代 1:清理
src/data/迁移 6 个文件 + 删除 1 个死文件,更新所有调用方 import;同步更新test/battle-layout.test.js、test/item-frame.test.js中的源码路径断言。 -
迭代 2:地图 UI 集中 把
src/map/下 4 个 UI 文件迁到src/ui/map/,更新MapScene.ts等调用方 import;同步更新test/map-v2-assets.test.js路径断言。 -
迭代 3:刷 CLAUDE.md 把已经过时的章节(如
TopBar、MapStatusHud已不存在;src/data/实际内容;src/ui/map/新边界)改成现状。
2.3 范围限制(Karpathy 风格的克制)
-
仅做"搬家 + 删死代码 + 更新引用"。不重写、不拆分
MapScene/ShopPanel等 god class(留作后续 issue)。 -
不动
WorldMapData.ts(移它需要再次扫所有引用)。 -
不动
consumableEffects.ts(确实是平衡数据)。 -
每次迭代 typecheck + test + build 全绿才进下一步。
2.4 验收
-
npm run action(CI 同款)通过 -
浏览器 / Electron 手测:进战斗、出牌、用道具、进商店、看小地图 → 行为不变
3. 任务分配
3.1 设计与美术准备周 (5.14 - 5.21)
本阶段重点:产出所有新场景的机制设计、卡牌数值表,以及角色地图/战斗的新美术素材。
| 任务编号 | 任务名称 | 预期时间 | 人员分配 | 任务说明 |
|---|---|---|---|---|
| 3.1.1 | [策划] 四大场景新卡牌与道具设计 | 12h | 刘昶(策划) | 设计黑夜、泳池、迷雾、屋顶共32张战斗卡数值;完成8种PvZ植物道具卡的效果设计与机制说明。 |
| 3.1.2 | [策划] 新场景机制与战斗限制设计 | 8h | 刘昶(策划) | 敲定新地图探图机制(墓碑/渡水/局部视野/屋顶机制)及战斗限制(阳光/抽牌/站位)的具体数值与逻辑判定规则。 |
| 3.1.3 | [美术] 戴夫地图形态与动作重绘 | 12h | 周子强(美术) | 绘制戴夫地图形态的简单像素风,并切分/制作待机动画与运动动画帧序列。 |
| 3.1.4 | [美术] 戴夫战斗形态与界面UI优化 | 10h | 周子强(美术) | 优化战斗内戴夫形态;重绘商店、教程界面的UI切图;为卡牌增强设计关键词Tip框及高亮底图。 |
| 3.1.5 | [美术] 战斗特效与地图演出素材制作 | 12h | 周子强(美术) | 制作卡牌释放的新特效序列帧;准备地图演出所需的环境特效(如迷雾、水花等)。 |
| 3.1.6 | [工程] Beta版本看板更新与排期对齐 | 4h | 丁宇城(PM) | 拆解Beta阶段Issue,分配到对应里程碑;组织会议对齐新机制的技术可行性。 |
| 3.1.7 | [架构] 新增机制的数据结构拓展 | 6h | 琚长昊(后端) | 根据策划新表,扩展卡牌JSON结构(增加关键词字段、场景特定字段)和道具卡数据模型。 |
3.2 系统机制与内容实现周 (5.22 - 6.4)
本阶段重点:程序集中攻坚,实现所有新卡牌、道具系统重构、探图新机制以及战斗新规则。
| 任务编号 | 任务名称 | 预期时间 | 人员分配 | 任务说明 |
|---|---|---|---|---|
| 3.2.1 | [前端] 戴夫动画状态机与地图演出实现 | 10h | 陈申学佳(前端) | 接入戴夫像素风素材,配置待机与移动动画状态机;优化地图界面的视觉演出效果。 |
| 3.2.2 | [算法] 四大场景探图特殊机制实现 | 16h | 琚长昊(后端) | 在原有树状地图基础上,编写算法引入黑夜墓碑组件、泳池渡水功能、迷雾局部视野生成与屋顶机制。 |
| 3.2.3 | [逻辑] 道具系统重构与8种植物道具实现 | 12h | 丁宇城(PM) | 拆分原有道具卡逻辑,重构为独立的战斗/局外消耗品系统,实装商店购买的8种植物道具效果。 |
| 3.2.4 | [架构] 战斗限制新机制底层开发 | 12h | 罗春宇(Tech) | 修改战斗状态机,引入:黑夜的阳光产出限制、泳池的回合抽牌数限制、屋顶的可用站位限制逻辑。 |
| 3.2.5 | [前端] 卡牌UI增强与关键词预览功能 | 8h | 陈申学佳(前端) | 增强卡牌描述文本的排版清晰度;实现鼠标悬停/长按时弹出关键词解释Tip的交互功能。 |
| 3.2.6 | [前端] 界面UI替换与全面优化 | 8h | 陈申学佳(前端) | 接入优化后的戴夫战斗形态;替换商店界面、教程界面的新版美术素材。 |
| 3.2.7 | [后端] 阶段性本地存档功能实装 | 8h | 琚长昊(后端) | 扩展Alpha阶段存档功能,实现“阶段性保存”(如每打完一个精英怪或过一层后自动覆盖存档),防止坏档。 |
3.3 表现增强、辅助系统与测试周 (6.5 - 6.14)
本阶段重点:特效实装、周边系统完善(全屏、音量)、以及最重要的战斗平衡性测试。
| 任务编号 | 任务名称 | 预期时间 | 人员分配 | 任务说明 |
|---|---|---|---|---|
| 3.3.1 | [前端] 战斗内卡牌释放特效接入 | 10h | 陈申学佳(前端) | 配合美术实装32张新战斗卡及原有卡牌的释放特效(投射物、受击、Buff等视觉表现)。 |
| 3.3.2 | [系统] 游戏窗口全屏与音量调节完善 | 6h | 罗春宇(Tech) | 实现Windows/Mac客户端的窗口化与全屏切换功能;完善BGM与音效的独立音量调节及本地配置保存。 |
| 3.3.3 | [逻辑] 32张新战斗卡实际效果编写 | 16h | 丁宇城(PM) | 编写并实装黑夜、泳池、迷雾、屋顶新战斗卡的具体Action逻辑(伤害、护盾、特殊状态等)。 |
| 3.3.4 | [测试] 各场景流派打法与平衡性测试 | 16h | 刘昶(策划) | 在打包版本中反复通关测试,评估新限制机制下的难度曲线;调整怪物血量、卡牌费用及道具价格。 |
| 3.3.5 | [美术] 测试反馈的美术细节修改 | 6h | 周子强(美术) | 根据测试反馈,调整不明显的UI提示、补充缺失的特效或修正穿模动作。 |
| 3.3.6 | [工程] Bug修复与Beta版本发版准备 | 12h | 全员 | 集中清理Bug,优化运行内存与帧率;丁宇城负责出包、书写Beta版本更新日志(Changelog)。 |


浙公网安备 33010602011771号