Files
gplan-2/design/gdd/ux/shop.md
T

29 lines
2.2 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(shop)
> 状态:v1.0(2026-09-30 审计拍板点 4B 用户裁决落文——甲+乙并行:编排面小节落关卡节点地图、呈现面独立成文)
> 事实源:`game/presentation/views/shop_overlay_view.gd`(ShopOverlay)
> 机制权威:[关卡节点地图](../systems/冒险循环/关卡节点地图.md)(商店房编排:每关恰 1/Boss 前一位必经/兑付触发);定价数值归[难度曲线与Boss](../systems/冒险循环/难度曲线与Boss.md)(shop.tres,provisional)
## 定位
商店覆盖层是商店房节点的兑付呈现面(**冒险-关卡中循环节点功能**):行进至商店房打开,玩家用 GP(显示名「金币」)购买三属性 flat 档商品,离开后兑付确认回选路。本 spec 只锁呈现;编排与定价归机制文档。
## 布局与交互
- 模态覆盖层(dim + 居中):标题「商店」/ 金币余额(GP 读数)/ 三商品卡全陈列(显示名·档位文案·现价·已购档数)/ 购买按钮(余额不足禁用置灰——pattern 8 禁用态即理由)/ 离开按钮。
- 购买意图 `buy_requested(product_id)` 经组合根转发 runner;成功后 `refresh_state` 就地重刷(现价=基价+关级加成+步长×已购档数,runner 现算)。
- 离开 → 关卡画面兑付确认回选路(零自动推进)。
- 无刷新、无三选一、全陈列(GP+商店房批裁决);商旅信物类刷新件与该校裁决冲突,留同调实施批二选一(同调提案 §5)。
## 口径
- GP 余额读数 = runner 钱包投影(账本归[冒险结构](../systems/冒险循环/冒险结构.md) GP 冒险账本);本层不算账。
- 与关卡画面 GP 常驻徽章的关系:进店语境余额与选路常驻总量不同义(本层带购买语境),不构成重复展示——钥石「进账/存量」拆名逻辑同款。
- 购买确认交互:现行直接购买(无二次确认步);是否需破坏性确认异位(pattern 7)未裁决,本 spec 只登记现状不立新裁。
## 版本历史
| 版本 | 日期 | 改动 |
|---|---|---|
| v1.0 | 2026-09-30 | 首版落文(审计拍板点 4B 裁决:甲+乙并行——编排面小节落关卡节点地图、呈现面独立成文) |