Files
gplan-2/design/gdd/ux/level-clear.md
T

120 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UX Spec: 关卡结算屏(Level Clear)
> **Status**: 新立——义务锁定版(呈现形态随实装批定,视觉终稿以表现层样张为前置,见 P1/OQ4)
> **Author**: user + ZCode(UX 文档欠账处置批)
> **Last Updated**: 2026-09-27
> **Platform Target**: PC (Steam)——Keyboard/Mouse 主,全部操作纯鼠标可完成(同 battle.md)
> **Template**: UX Spec
> **来源**: battle.md OQ8 欠账处置(2026-09-27 用户拍板建档)+ 2026-09-26 GP/钥石去向拍板(battle.md OQ14、06 待办「GP/钥石迁出战斗屏后的展示面接线」)
---
## Purpose & Player Need
关卡结算屏是关卡收束时刻的清算面:末节点 Boss 倒下、本关结束,玩家在这里领到这一关的账——大奖励三件套的兑现、钥石入账的「存档变厚」反馈——然后确认进入下一关。
一句话目的:**让「打穿了一关」的收束感落在一笔算得清的账上,并让钥石入账成为驱动下一次冒险的可见钩子。**
- 大奖励三件套承载 P2(规划的延迟兑现)的收尾一拍:属性提升看得见、血回满体感直接
- 钥石入账承载元进度驱动力([01-核心循环](../01-核心循环.md)「存档在变厚」——每杀一个 Boss 都能看到进账)
若此屏缺失或难用:关卡切换沦为无声的场景跳转(收束感缺失);钥石入账不可见(元进度驱动力的呈现链断在最后一环)。
## 现行载体与目标形态(重要边界)
本屏**没有独立新屏**:现行与 MVP 目标载体都是关卡收束时刻的覆盖层反馈([HUD框架](../systems/表现与支撑/HUD框架.md) P1 行「相邻域屏完整屏形态:MVP 以覆盖层反馈承载」)。本 spec 锁义务与数据锚,不锁视觉形态;完整屏形态归 P1 实装批。
| 时刻 | 现行载体(已实装,代码锚) | 呈现内容 |
|---|---|---|
| 非末关通关 | 中场确认覆盖层(_inter_overlay,main.gd `_on_big_reward`) | 大奖励文案一行:第 N 层通过 + 生命上限提升(新上限)+ 血回满 + 钥石增量(累计) |
| 末关通关 / 失败 / 放弃 | 冒险结算(复用战斗终局 overlay,main.gd `_on_adventure_finished`) | 冒险摘要五件事 + 钥石入账明细——**相邻域**(冒险终结面,非本屏职责) |
## Navigation Position
```
战斗屏 ──胜利(末节点 Boss)──▶ 【关卡结算(level_clear)】
├─ 非末关:确认 → 大奖励兑付 → 下一关开始(→ 关卡画面选路)
└─ 末关通关:→ 冒险结算(冒险摘要,相邻域)→ 返回存档/营地
失败不经本屏(战斗屏失败分支直达冒险终结)。
```
- 上游屏:战斗屏(胜利终局 overlay「下一节点」确认——battle.md Exit 表)
- 下游屏:关卡画面(下一关开始,选路枢纽——屏级 spec:[level-map.md](level-map.md),2026-09-27 建档);末关时改接冒险结算(相邻域屏)
## Entry & Exit Points
| 方向 | 触发 | 携带语境 |
|---|---|---|
| 进入 | 战斗屏胜利终局确认 → LevelRunner 判定末节点 Boss 战胜利(level_clear) | 大奖励兑付快照(上限/回满/钥石);GP 账本余额(跨关延续,冒险收束才清零) |
| 离开 | 确认按钮(唯一出口) | 非末关 → 下一关开始;末关 → 冒险结算 |
零自动推进的冒险级停点(main.gd 实装口径):确认前玩家不被推着走,大奖励兑付恰一次(重复宣布被拒——冒险结构 结算受理只算一次)。
## Information Hierarchy(义务锁定)
按 2026-09-26 信息归属两铁律(循环口径 + 单一展示面)过闸后的准入清单:
1. **大奖励三件套**(第一注视点):生命上限提升(含新上限读数)、生命回满、钥石入账(增量 + 累计)——中循环边界事件的兑付账,本屏是它唯一消费口。钥石入账与营地的钥石存量不同义(进账瞬间 vs 存量可用),不构成重复展示
2. **GP 结算呈现——归属已收口(2026-09-27 用户拍板)**:GP 不进本屏。战斗总结结算展示获得的资源(目前 = GP),GP 增量+总量归战斗总结结算承载(battle.md OQ14 口径为准;呈现 spec:[settlement-summary.md](settlement-summary.md) v1.0——本屏旧用「战斗胜利总结结算」系四字变体,随 spec 命名收口退役);关卡画面另设常驻总量。本屏维持现行大奖励文案无 GP
3. **清库反馈**(预留,随魔法道具 P0):关卡收束清库义务载体 = 魔法道具背包;现行切片无库存容器,义务挂账、本批不设计呈现(battle.md Exit 表同源)
**禁入清单**(两铁律推导):战斗小循环数据(结算明细、状态效果——留在战斗屏);GP(呈现位已拍板 = 战斗总结结算 + 关卡画面常驻,见 06);营地柜台全量(解锁清单/定价——不陈列);冒险摘要五件事(末关时由相邻域冒险结算屏承载,本屏不重复)。
## States & Variants
| State | Trigger | What Changes |
|---|---|---|
| 非末关通关(默认态) | level_clear 且非末关 | 大奖励兑付呈现 → 确认 → 下一关开始 |
| 末关通关 | level_clear 且末关 | 直通冒险结算(摘要 + 钥石入账明细)——本屏收缩为过场确认与否随实装批定(OQ2;现行 = 直通) |
| Boss 入口语境 | 击杀 Boss(恒为本屏入口时刻) | 入口演出归战斗屏(紫赤影子族,battle.md §States);本屏不另设 Boss 演出 |
## Interaction Map
| 组件 | 动作 | 输入 | 即时反馈 | 结果(经组合根) |
|---|---|---|---|---|
| 确认按钮 | 接受结算、推进 | 左键 | 按钮下压 | 非末关:AdventureRunner 推进下一关;末关:转冒险结算 |
| 结算文案 | 只读 | — | — | 读数 = big_reward_paid 载荷快照(despawn 前捕获纪律,同 battle.md 数据锚) |
零新增交互范式:复用 label + 确认按钮(现行 _inter_overlay 即此形态)。
## Data Requirements
| Data | Source System | Read / Write | Notes |
|---|---|---|---|
| 大奖励兑付快照(hp_bonus / new_max_hp / keystone_gained / keystone_total) | 冒险结构 big_reward_paid 载荷 | Read | 载荷自包含、despawn 前捕获(战斗结算 快照纪律同族) |
| 冒险摘要(五件事) | 冒险结构 adventure_finished 载荷 | Read | 末关分支数据锚(相邻域冒险结算屏消费) |
| GP 账本 | 冒险结构 GP 冒险账本 | — | 不进本屏(2026-09-27 拍板:GP 呈现归战斗总结结算〔增量+总量,spec:settlement-summary.md〕与关卡画面〔常驻总量〕,接线登记 06);账本本身跨关延续、冒险收束清零 |
| 钥石入账 | 元进度 settle_adventure | Write(相邻域) | 唯一写档点不变(冒险收束时结算,main.gd `_on_adventure_finished`)——本屏只呈现进账读数,不写账 |
| 清库反馈 | 魔法道具(P0 后) | Read | 预留——载体 = 魔法道具背包,随 P0 落地补设计 |
## Accessibility
沿用 [HUD框架](../systems/表现与支撑/HUD框架.md)「可访问性基线」节全量(对比/色弱/字号/闪烁/减动效/纯鼠标/中文字体)——本屏无新增承诺。结算数字是本屏信息主载体,遵守同一字号下限与对比硬指标。
## Acceptance Criteria
- [ ] 非末关通关必经本屏确认,零自动推进;大奖励兑付恰一次(重复宣布被拒)
- [ ] 大奖励三件套读数可见且与载荷一致(上限提升/新上限/血回满/钥石增量+累计)
- [ ] 末关通关分支正确转接冒险结算,冒险摘要五件事完整
- [ ] 确认前冒险状态冻结(无后台推进、无战斗事件串扰)
- [ ] 呈现遵循 HUD框架 可访问性基线(对比 ≥4.5:1、字号下限、纯鼠标可完成)
- [ ] 清库反馈:随魔法道具 P0 落地补验收(现行切片无库存容器,义务挂账)
## Open Questions
1. **GP 增量展示面归属——已收口(2026-09-27 用户拍板)**:战斗胜利出现战斗总结结算、展示获得的资源(目前只有 GP);战斗失败出现冒险总结结算、确认后回存档首页——GP 总量+增量归战斗胜利总结结算(battle.md OQ14 口径为准);06 归属行「结算画面批 GP 增量」系登记偏差已同批修正。本屏不承载 GP,无遗留。两面呈现 spec 已出生:[settlement-summary.md](settlement-summary.md) v1.0(2026-09-30)
2. **末关分支形态**:末关通关时本屏收缩为过场确认 vs 直通冒险结算(现行 = 直通)——随完整屏形态实装批一并定
3. **「结算画面」口径——已收口(2026-09-27,随 GP 拍板一并落定)**:「钥石 = 结算画面 + 营地」中「结算画面」= 冒险总结结算(冒险摘要 + 钥石入账明细);大奖励屏的钥石增量+累计 = Boss 层进账呈现——两处并存系「进账时刻 vs 收束明细」不同义,不构成重复展示,维持现状。「结算画面」单用为两义词(battle.md 旧语境指战斗面),已随 [settlement-summary.md](settlement-summary.md) 命名收口退役,叙述用全称
4. **视觉终稿**:以表现层样张过审为前置(06 待办登记);本 spec 的 AC 为功能性判据,不含视觉终稿判据
5. **清库反馈呈现**:载体 = 魔法道具背包,随魔法道具 P0 落地设计(义务挂账,本批不设计)
---
## 修订记录
| 日期 | 改动 |
|---|---|
| 2026-09-27 | 初稿(UX 文档欠账处置批,用户拍板建档):义务锁定版——大奖励三件套/钥石入账/清库反馈预留成文;现行载体(_inter_overlay 与 BattleEndOverlay 复用)与代码锚如实登记;GP 归属两处登记不一致挂 OQ1,拍板前不新增 GP 呈现义务 |
| 2026-09-27 | GP 归属拍板对齐批(用户口径:战斗胜利→战斗总结结算展示获得资源〔目前 GP〕;战斗失败→冒险总结结算→确认回存档首页):OQ1 收口——GP 总量+增量归战斗胜利总结结算(battle.md OQ14 为准),本屏不承载 GP;OQ3 收口——「结算画面」指认 = 冒险总结结算,大奖励屏钥石进账 + 冒险总结结算明细两处并存维持;信息归属 GP 移入禁入清单;Data Requirements GP 行改零访问;06 归属行同步修正 |
| 2026-09-27 | 关卡画面 UX spec 建档联动:§Navigation Position 下游屏行挂 level-map.md 屏级 spec 指针。零机制改动 |