迭代11第②批:GP商店房重构——三选一同构化(P1共享池账本+抽3买1全重抽+A/b乘法定价ceil+断点扩键+货架同构呈现+MC off/on分层;冒烟671/0+off对拍off_n60逐位PASS+探针三件绿)
This commit is contained in:
1 parent
bc17b66c00
commit
d79afd2241
18 files changed
+557
-45
No files matched your search
@@ -214,9 +214,9 @@
|
||||
|
||||
**现状**:现行商店(2026-09-20 GP+商店房批落地)= 固定品类陈列、可重复购买、无刷新(09-20 裁决「三件全陈列、无刷新、无三选一」,底稿 git 提交 9ac1540 可考(已按生命周期条款退役))。**2026-10-02 用户裁决取代 09-20 无刷新裁决**——商店与三选一奖励同构成同一「三选一」交互:①进店从随机池抽 3 展示;②买 1 → **三个全重抽**(未买两件不保留);③无独立刷新动作(重抽绑定购买,每次「钓鱼」=真实购买一次);④价格 = 基价 × b^(关序−1) × A^(本次进店已购次数)——A=店内递增(方向 1.5-2)≫ b=跨关递增(方向 1.1),**具体系数归 game-balancer 研究**(对照 roguelike 商店定价惯例+本作 GP 供给面)出提案值后用户拍板,provisional 归调参批;⑤商店池维持**纯数值道具**(flat 攻/血/甲族)——机制件永不入店(2026-09-22 同调裁决 1「局内只许商店式数值道具」锁死,不随本裁松动);⑥无限购买加深 GP 沉淀,与关间大奖励/回复供给的对账窗口随批重开。三选一奖励本身本质不变(一次免费「购买」后结束);其刷新增强(X/Y 双源)已随同调实施批任务书 v1.1 落文([任务书-魔法道具同调实施批-2026-10-02.md](../research/任务书-魔法道具同调实施批-2026-10-02.md) §五 P1)。
|
||||
|
||||
**归属**:GP 商店房重构批(主责:商店 UI+购买/重抽逻辑+定价表+读数复测)+ 元进度/关卡节点地图/难度曲线与Boss 随批连带;A/b 系数研究归 game-balancer 工作流随批执行。
|
||||
**归属**:~~GP 商店房重构批(主责:商店 UI+购买/重抽逻辑+定价表+读数复测)+ 元进度/关卡节点地图/难度曲线与Boss 随批连带;A/b 系数研究归 game-balancer 工作流随批执行~~(已落籍,见状态)
|
||||
|
||||
**状态**:已拍板待立项(2026-10-02;排期建议=Alpha 读数后 M-4 迭代 11 评估窗口,与同调实施批/反制批并列排序——动奖励经济必扰通关率读数,迭代 10 刚锚 80000);**裁决面全闭·任务书 v1.3 定稿**(2026-10-02,[任务书-GP商店房重构-三选一同构化-2026-10-02.md](../research/任务书-GP商店房重构-三选一同构化-2026-10-02.md) §五)——P1 改裁**共享池**:商店池=奖励池同一池(六种现行池,跨渠道消耗,库存=上限吸收「达上限剔牌库」语义),魔法道具件/GP 袋对店面切边(三轴 doctrine/负交易,翻案须用户明示);P2 甲货架+账本入断点/P3 甲程序占位/P4 甲 ceil/P5 甲随批 game-balancer;**子项双甲已裁**:P1-a 库存=现行上限口径(属性 3/AP 2)/P1-b 全冒险一次性(L1 买光则后关属性件枯竭=池空硬闸既定后果,用户知情)——**开工=用户发令;已编入迭代 11、序位第二(2026-10-03 用户裁)——随同调批后落,共享池建在 aux 卡退役后的终局池上,通关率读数只锚一次**
|
||||
**状态**:**已落籍(2026-10-03 迭代 11 第②批开发批收官,worktree m4-iter11b-shop-20261003/合并落 master——出口人闸后移迭代 12 随第①批一并)**:P1 共享池账本落地(货架候选=池∖{GP 袋}∖{机制件}=四种,库存=上限即库存全冒险一次性,两渠道同一账本 `_bonus_taken` 单点,池空硬闸+空架合法态);shop_draw 扩签(每次抽 3 恰一 scope);价格=ceil(基价×b^(关序−1)×A^(进店已购次数)),**A=1.8/b=1.1 provisional 投值**(原 P5 甲「game-balancer 研究→用户拍板」依 2026-10-03 零人工令改 provisional+后置追认——追认单随迭代 11 出口包,研究复核归调参批);P2 甲断点扩键 shop_shelf/shop_visit_buys(save v4 域内,货架续玩=确定性重放承载);P3 甲货架三选一同构程序占位(UiKit);MC off 对拍 off_n60 逐位(legacy 对照承载)+on 新锚 N=60 双策略(终局池读数只测不判,锚留盘 sim-data);连带修订=冒险结构 v0.13(共享池账本段+定价公式换代)/关卡节点地图 v1.5/难度曲线与Boss v0.22/node-reward v2.3/registry(shop_table 扩列+shop_draw)。遗留=shop=on 带平移判读+换算率登记+UI 视觉终稿归调参批/表现批;off 锚换代时 products 行族+legacy 模式随行退役。
|
||||
|
||||
### 关卡节点地图
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
| Boss | 恒为图终点;行进至此开 Boss 战;胜利即关卡收束点 |
|
||||
| 奖励 | 行进至此触发节点奖励(兑付见下节);反馈呈现后回到选路 |
|
||||
| 恢复 | 行进至此向冒险结构发治疗封顶回报;反馈呈现后回到选路 |
|
||||
| 商店 | 行进至此打开商店覆盖层,用 GP(显示名「金币」,战斗掉落的冒险内货币)购买属性提升;离开后兑付确认回选路;不携带战斗行 |
|
||||
| 商店 | 行进至此打开商店覆盖层,用 GP(显示名「金币」,战斗掉落的冒险内货币)购买属性提升;离开后兑付确认回选路;不携带战斗行。**v1.5 兑付换代(pool 模式现行)**:进店从共享池抽 3 展示、买 1 后三件全重抽(未买不保留、无独立刷新动作——重抽绑购买)、货架买空=空架合法态;账本与定价归[冒险结构](冒险结构.md)共享池账本节 |
|
||||
|
||||
商店房的编排规则(2026-09-20 用户拍板):每关**恰 1 个**商店房,位置 = **关底 Boss 前一位**——哈迪斯式的"决战前最后一个补给点":买到的属性还有整段战斗可消费,错过的成长也没有第二家店可补。Boss 前一位同时是**必经位**:图拓扑收束使所有入口→Boss 的路径都穿过它,成长保底成为图结构事实而非玩家自觉。这条位置约束不由加载校验承载——图合法性六检零新增,商店房的"每关恰 1 + 必经"由冒烟断言把关。
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
呈现侧口径(2026-09-17 用户拍板):节点图的画面表达走**方块地牢观感**——节点画成地牢房间的方块、连线画成通道——但逻辑拓扑就是本文的节点图,不产生任何额外选路或探索语义。关卡画面本体即节点链进度的呈现载体(选路覆盖层的常驻形态,节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 封印黑描边(旗朱→封印紫→封印黑 #000000,2026-09-28 用户拍板现行)),不另设进度条组件;视觉规格归 [HUD 框架](../表现与支撑/HUD框架.md)。
|
||||
|
||||
**商店覆盖层呈现**(呈现 spec:[design/gdd/ux/shop.md](../../ux/shop.md) v1.0,2026-09-30):兑付 = 打开商店覆盖层(模态)——三商品卡全陈列、GP 余额读数、购买/离开;离开后兑付确认回选路。本节锁编排面(何时开/何时关/回选路),呈现细节归 spec;定价数值归[难度曲线与Boss](难度曲线与Boss.md)(shop.tres)。
|
||||
**商店覆盖层呈现**(呈现 spec:[design/gdd/ux/shop.md](../../ux/shop.md) v1.0,2026-09-30;**v1.5 注记**——pool 模式货架面=共享池三选一同构卡〔进店抽 3/买 1 全重抽/库存余量就近/空架售罄态〕,与三选一奖励同一交互语言;legacy 固定三件面随对照模式保留):兑付 = 打开商店覆盖层(模态)——货架卡陈列、GP 余额读数、购买/离开;离开后兑付确认回选路。本节锁编排面(何时开/何时关/回选路),呈现细节归 spec;定价数值归[难度曲线与Boss](难度曲线与Boss.md)(shop.tres)。
|
||||
|
||||
### 行进与选路:兑付后确认,选路就是行进
|
||||
|
||||
@@ -99,7 +99,7 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
| 战斗 / Boss | 组装定位信息(关卡序号 + 节点编号),移交[战斗结算](../战斗循环/战斗结算.md)开战;战斗结果(胜负与战后生命)经战斗结果上报回流冒险结构(契约语义归[冒险结构](冒险结构.md),本文不复述) |
|
||||
| 恢复 | 向冒险结构发治疗封顶回报(载荷 = 该关恢复比例,读本关配置行);按比例回血并封顶的执行归冒险结构 |
|
||||
| 奖励 | 触发节点奖励兑付:提升三选一(与通关三选一共享同池——六种加权抽 3 点选一件,同次数上限;见下节) |
|
||||
| 商店 | 打开商店覆盖层(商品陈列与定价读商店表);购买即时生效、写统一冒险加算区(与关卡大奖励同一本账——账本语义归[冒险结构](冒险结构.md),本文不复述);离开覆盖层即兑付确认。商店房不携带战斗行:零敌人、零棋盘、零战斗初始化 |
|
||||
| 商店 | 打开商店覆盖层(pool 模式:进店抽 3〔shop_draw 封闭流恰一 scope〕+买 1 全重抽;legacy 对照模式:商品陈列读商店表);购买即时生效、经共享池账本写统一冒险加算区(与关卡大奖励同一本账——账本语义归[冒险结构](冒险结构.md),本文不复述);离开覆盖层即兑付确认。商店房不携带战斗行:零敌人、零棋盘、零战斗初始化 |
|
||||
|
||||
**遭遇构成的编排面**——本文对"放什么敌人"的全部职责只有三条:
|
||||
|
||||
@@ -190,3 +190,4 @@ Boss 兑付(胜利或英雄死亡)触发关卡收束点,此后不再有选
|
||||
| v1.2 | 2026-09-23 | **停点前移批(冒险入口流程倒置修复,用户 2026-09-23 拍板;上位裁决 `../../../dev/architecture/adr-0006-board-node2d-rendering.md` 与 `../../../dev/architecture/board-node2d-migration-plan.md` §1,代码实装另批并行)**:① 行进循环改停点前移口径——关卡开始即呈现节点图选路停点(关卡画面 = 选路覆盖层常驻化,入口节点不自动进入,第一次选路就是"出发"),选路确认进节点,兑付确认后返回关卡画面再选路(战后回图);兑付后确认、零自动推进两条纪律语义不变,只改承载位;② 呈现侧口径补进度承载条款——关卡画面本体即节点链进度呈现载体(节点态直接读图:已过暗金 / 当前金 / 候选下一跳通道亮金 / Boss 旗朱描边),不另设进度条组件(战斗屏 A 区进度条随批退役);③ P0 闭环两条、依赖表 HUD 框架行、验收标准「行进自主」条同步。**批内代拍板三项已追认(2026-09-24 用户确认)**:① B/C/D 字母保持不重编;② 28px 纵向空间划归 C/D 底行;③ 关卡画面进度呈现由选路覆盖层节点态承载(登记面见 HUD框架 v0.8) |
|
||||
| v1.3 | 2026-10-01 | **图合法性第七检(T17 目检用户拍板「节点出度最大为 2」)**:`validate` 新增 `fanout_violation`(单节点出边 >2 加载致命);规则连带层宽上限 4(原 5 与出度约束不相容,废止)——生成侧规则与模板池重建归[关卡节点图生成](关卡节点图生成.md) v0.6 同批 |
|
||||
| v1.4 | 2026-10-03 | **奖励节点道具渠道退役注记(迭代 11 第①批同调实施批——与 node-reward.md v2.2 / registry 同批)**:奖励节点的魔法道具件渠道随停点渠道退役拆除(BONUS_IDS 词表除名 aux_item,池五种;三选一刷新件面新增见 node-reward.md v2.2)——奖励节点兑付面=提升三选一(属性/GP/AP 五种)+刷新,零结构改动(节点类型词表/图合法性六检零新增) |
|
||||
| v1.5 | 2026-10-03 | **商店房兑付换代注记(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 全裁;冒险结构 v0.13 / registry / 难度曲线与Boss 同批)**:商店节点类型词表与编排规则零改动(每关恰 1/Boss 前一位必经位/图合法性六检零新增);兑付面换代 = pool 模式进店抽 3(shop_draw 封闭流)+买 1 全重抽+重抽绑购买+空架合法态,货架候选与库存账本归冒险结构共享池账本节;覆盖层呈现面=货架三选一同构卡(legacy 固定三件面随对照模式保留注记) |
|
||||
@@ -142,14 +142,16 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| 收口 | 方向 | 规则 |
|
||||
|---|---|---|
|
||||
| 战斗完成 | 入 | 每完成一场战斗统一到账一次:金额 = 掉落掷定 + 关级掉落加值 + 本战战斗内缓冲,随战斗结束信号携带的 gp_dropped 一笔入账 |
|
||||
| 商店购买 | 出 | 商店房购买按现行价扣减钱包,余额不足拒绝;价格 = 基价 + 关级价格加成 + 步长 × 已购档数 |
|
||||
| 商店购买 | 出 | 商店房购买按现行价扣减钱包,余额不足拒绝。价格公式(**v0.13 换代——pool 模式现行**):ceil(基价 × b^(关序−1) × A^(本次进店已购次数)),A=店内递增/b=跨关递增表因子(provisional 1.8/1.1),ceil 向上单一取整(玩家不利向,杜绝「差 1 GP 反复钓」套利角);legacy 固定三件模式(shop=off 对照承载)沿用旧式 = 基价 + 关级价格加成 + 步长 × 已购档数 |
|
||||
| 冒险收束 | 清零 | 完成 / 失败 / 放弃三种结局都清零;重开后钱包从零开始 |
|
||||
|
||||
**战斗内缓冲隔离**:战斗进行中从格面兑付拿到的 GP(金币袋正向、破财负向——字典归[地图战斗资源](../战斗循环/地图战斗资源.md))不直接进钱包,而是记入战斗域的中间态缓冲;战斗完成时缓冲随掉落掷定与关级加值一并折进 gp_dropped 统一到账。钱包只在战斗边界变动,战斗域自身零钱包状态——这条隔离让战斗结算保持"折算归我、账本归冒险结构"的既有边界。
|
||||
|
||||
**统一冒险加算区**:商店购买的属性提升与提升三选一的属性件记**同一本账**——加算区四轴 {攻击, 生命上限, 护甲等级, 行动点},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时,当前生命与上限同步 +Δ(生命账本的连带写入口)。属性轴累加源 = 商店购买与三选一属性件两类;行动点轴累加源 = 三选一 AP 件一类(每场战斗开始的首轮行动点基线 +1,语义细节归[行动经济](../排雷循环/行动经济.md)跨冒险加成轴节;全冒险获取次数上限最紧,provisional 2 次)。
|
||||
**统一冒险加算区**:商店购买的属性提升与提升三选一的属性件记**同一本账**——加算区四轴 {攻击, 生命上限, 护甲等级, 行动点},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时:pool 模式(v0.13——货架件=奖励件本体)只加上限不回当前生命(与三选一件同语义);legacy 模式当前生命与上限同步 +Δ(生命账本的连带写入口)。属性轴累加源 = 商店购买与三选一属性件两类;行动点轴累加源 = 三选一 AP 件与商店 AP 件两类(每场战斗开始的首轮行动点基线 +1,语义细节归[行动经济](../排雷循环/行动经济.md)跨冒险加成轴节;全冒险获取次数上限最紧,provisional 2 次——pool 模式下商店购买与三选一共用该库存,见下)。
|
||||
|
||||
掉落掷定消费 gp_drop 封闭随机流(主种子派生、可回放)。掉落与价格的现行行值读商店表(registry 为准),数值所有权归[难度曲线与Boss](难度曲线与Boss.md)曲线调参批——本批骨架先行,全部数值 provisional。
|
||||
掉落掷定消费 gp_drop 封闭随机流(主种子派生、可回放)。**商店货架抽签消费 shop_draw 封闭随机流**(v0.13 扩签——每次抽 3〔进店+每次买后重抽〕恰一 scope,与 reward_pick 分签防取数序互扰)。掉落与价格的现行行值读商店表(registry 为准),数值所有权归[难度曲线与Boss](难度曲线与Boss.md)曲线调参批——本批骨架先行,全部数值 provisional。
|
||||
|
||||
**共享池账本(v0.13——P1 共享池单点)**:商店货架与提升三选一是**同一个池**——货架候选 = 池∖{GP 袋}(用钱买钱恒负交易)∖{魔法道具件}(三轴 doctrine,机制件永不入店)= {攻击, 生命上限, 护甲, 行动点} 四种;库存 = 上限即库存(属性件各 3、AP 件 2——与「达上限剔牌库」同一账本承载,全冒险一次性跨关卡不补给):商店买一件,奖励面就少一件;「无限购买」收敛为**钱尽或池空为止**(池空=硬闸、A 链爬价=软闸),空货架合法态。两渠道不得各自私记库存——消费走同一入口写同一账本(实现=AdventureRunner._bonus_taken 单点,冒险结构 owner)。
|
||||
|
||||
### 关卡大奖励:通关回血 + 提升三选一(钥石退役出大奖励)
|
||||
|
||||
@@ -199,7 +201,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
冒险进行中随时关游戏走人(**中断**),下次启动可从最近停点继续——承载 = 存档 `breakpoint` 域(格式归[存档序列化](../表现与支撑/存档序列化.md),内容口径归本文)。
|
||||
|
||||
- **停点粒度**:快照只挂选路停点(入口呈现/战斗胜利后/兑付确认后的选路态)——这是唯一可恢复停点形态。战斗进行中不写快照:中断恢复后**当场战斗从头打**,棋盘中局不入档。
|
||||
- **七字段拍板面**:关卡序号 / 节点位 / 生命 / 本关加成区 / GP 钱包 / 商店已购档 / 已抽模板。附随件(续玩正确性必需,随批登记):主种子 + 取数计数器(rng 快照契约回填——续玩从断点号位精确续接原随机时间线,已抽模板零重抽)、钥石累计(Boss 掉落逐杀入账的中途值,终局摘要不失真)、已到节点序(关卡画面图条重建)、魔法道具库存(奖励节点已选件防静默丢失)、魔法道具库存(奖励节点已选件防静默丢失)、**奖励选择态**(三选一停点中断:已选件 / 同调位替换在途——续玩已选不丢失;候选一致性=快照现状非强求 feature,2026-10-01 用户裁决)、**件获取次数计数**(攻击/生命上限/护甲/行动点四件各自已获取次数——次数上限判定不可由加算区累加值反推,牌库剔除态依赖它,迭代 10 扩)。
|
||||
- **七字段拍板面**:关卡序号 / 节点位 / 生命 / 本关加成区 / GP 钱包 / 商店已购档 / 已抽模板。附随件(续玩正确性必需,随批登记):主种子 + 取数计数器(rng 快照契约回填——续玩从断点号位精确续接原随机时间线,已抽模板零重抽)、钥石累计(Boss 掉落逐杀入账的中途值,终局摘要不失真)、已到节点序(关卡画面图条重建)、魔法道具库存(奖励节点已选件防静默丢失)、魔法道具库存(奖励节点已选件防静默丢失)、**奖励选择态**(三选一停点中断:已选件 / 同调位替换在途——续玩已选不丢失;候选一致性=快照现状非强求 feature,2026-10-01 用户裁决)、**件获取次数计数**(攻击/生命上限/护甲/行动点四件各自已获取次数——次数上限判定不可由加算区累加值反推,牌库剔除态依赖它,迭代 10 扩)、**商店货架态**(当前货架三件 + 本次进店已购次数——P2 甲扩列随迭代 11 第②批;离开店=空架合法态,货架续玩由确定性重放承载:重进店同种子同货架逐位)。
|
||||
- **中断与退出两口径分离**(2026-09-29 用户裁决):中断(关游戏)= 留断点可续;**退出冒险**(放弃流程)= 失败同型结算 + **清除断点**——退出后「继续上局」不再出现。
|
||||
- **续玩**:自断点重建到最近停点(账面逐字段回填 + 随机流回填),停点处玩家重新选路。三结局(通关/失败/放弃)一律清断点——断点只活在一个进行中的冒险上。
|
||||
- 与测量面的关系:断点面只在注入存档承载的正式冒险路径生效;模拟/冒烟不注入 = 整面静默,MC 对拍零扰动。
|
||||
@@ -278,7 +280,7 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| 通关回血比例 | int [0,100],冒险表单行全局 | adventure_table clear_heal_pct(provisional 20) | 通关部分回血回复生效上限的百分比;封顶上限不回满 |
|
||||
| 同调位过渡键 | int [0,9],冒险表单行全局 | adventure_table transitional_sync_slots(provisional 1) | 道具持有上限过渡读数源;正主 = 同调位里程碑谓词表(同调实施批,切换义务在册) |
|
||||
| Boss 钥石掉落 | int [0,999],meta 表逐关行 | meta.tres boss_keystone 首杀 3 / 复杀 2(provisional) | 逐杀实时入账;精英怪掉 1 预留;消费方归元进度 |
|
||||
| GP 经济参数 | 商店表逐行 | 见 shop.tres gp_drops / level_gp_bonus / products / price_level_bonus(provisional,registry 为准) | 掉落均值与区间(普通/精英/Boss)、关级掉落加值、商品首价与步长、关级价格加成;公式语义归本文,数值所有权归难度曲线与Boss曲线调参批 |
|
||||
| GP 经济参数 | 商店表逐行 | 见 shop.tres gp_drops / level_gp_bonus / pool_shelf / price_a / price_b(provisional,registry 为准;legacy products / price_level_bonus 随对照模式保留) | 掉落均值与区间(普通/精英/Boss)、关级掉落加值、货架基价、A/b 价格因子;公式语义归本文,数值所有权归难度曲线与Boss曲线调参批 |
|
||||
|
||||
结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励构成 = 通关部分回血 + 提升三选一(钥石退役出大奖励,改 Boss/精英击杀掉落——2026-09-30 拍板重构)、一冒险一主种子、收束点先清库后宣布的次序。
|
||||
|
||||
@@ -326,3 +328,4 @@ GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗
|
||||
| v0.10 | 2026-09-27 | **统一随机流批口径对齐(ADR-0007 裁丙——rng 架构批随批)**:主种子节「可复现域 = 主种子 + 各随机流计数器」改「主种子 + 全局取数计数器」(语义权威指数据配置);本文规则面零改动——主种子恰一次注入、重开即全新一轮、摘要五件事均不变。代码实证与七消费点迁移见数据配置 v0.5 |
|
||||
| v0.11 | 2026-09-29 | **冒险断点批(迭代 8 卡①③——中断可续玩/退出即结算两口径分离)**:核心规则新增「冒险断点」节(停点粒度/七字段拍板面+附随件/中断退出两口径/续玩语义/测量面静默);依赖表存档序列化行补断点域 owner 登记;验收标准 GP 不留痕条补断点域豁免口径。实现落点 = AdventureRunner 快照/清除/续玩 + SaveManager breakpoint 域 + rng restore_adventure |
|
||||
| v0.12 | 2026-10-01 | **关卡大奖励重构批(迭代 10——用户 2026-09-30 拍板案丙 + P-A~P-E 全裁毕;冒险表扩列 / meta.tres 重锚 / registry / 行动经济 / 元进度 / 01-核心循环 / 03-内容规模 / 难度曲线与Boss / 关卡节点地图 / 06 同批落文)**:①大奖励「固定三件套」退役改两层兑付——非末关通关 = 部分回血(clear_heal_pct 20 provisional)+ 提升三选一(池六种:攻击/生命上限/护甲/GP 袋/魔法道具/行动点件;加权洗牌不放回 E-S weight-key 消费 reward_pick 封闭流;属性件上限各 3、AP 件上限 2,达上限先剔牌库);②统一冒险加算区三轴扩四轴 +行动点(AP 件 = 每场战斗开始首轮基线 +1);③钥石退役出大奖励改 Boss/精英击杀逐杀掉落(boss_keystone 重锚首杀 3/复杀 2,末关照常入账,精英掉 1 预留);④魔法道具件受同调位约束(过渡键 transitional_sync_slots=1 provisional,正主 = 同调实施批谓词表;超位替换交互 N+1 选 N、战斗内渠道沉没不入);⑤断点附随件扩奖励选择态 + 件获取次数计数;⑥选择停点零自动推进/可中断。渲染层验证冻结(用户 2026-10-01 提前开工拍板——不合入 master、目检待批),目检清单随批交付 |
|
||||
| v0.13 | 2026-10-03 | **GP 商店房重构批(迭代 11 第②批——任务书 v1.3 全裁 P1 共享池/P1-a/P1-b 双甲/P2 甲/P3 甲/P4 ceil/P5 甲;06「GP 商店房重构」条 2026-10-02 用户裁决取代 09-20 无刷新裁决)**:①GP 冒险账本节商店购买行换代——价格公式 = ceil(基价 × b^(关序−1) × A^(本次进店已购次数))(A/b provisional 1.8/1.1;legacy 旧式随对照模式保留注记);②新增「共享池账本」段——商店货架 = 池∖{GP 袋}∖{魔法道具件} 四种,库存=上限即库存全冒险一次性,两渠道同一账本(买一件=奖励面少一件),池空硬闸+空架合法态;③shop_draw 扩签登记;④统一冒险加算区段——pool 模式买上限不回血(池件=奖励件本体)、AP 件累加源并商店;⑤断点附随件扩商店货架态(shop_shelf/shop_visit_buys,P2 甲;确定性重放承载注记);⑥调参表 GP 经济参数行随表换代。实现=AdventureRunner/LevelRunner 池模式(缺省 legacy 对照承载,真实入口投 pool) |
|
||||
@@ -156,21 +156,23 @@ GP(显示名「金币」)与商店房随 2026-09-20 GP+商店房批落地,
|
||||
|
||||
```
|
||||
每战 GP 掉落 = 掷定(均值 ± 方差,按战斗节点身份查 gp_drops 行) + 关级掉落加值 + 战斗内缓冲
|
||||
商品价格 = 基价 + 关级价格加成 + 步长 × 已购档数
|
||||
商品价格(pool 现行,v0.22) = ceil(基价 × b^(关序−1) × A^(本次进店已购次数)) —— A=1.8 / b=1.1 provisional 投值
|
||||
商品价格(legacy 对照) = 基价 + 关级价格加成 + 步长 × 已购档数
|
||||
```
|
||||
|
||||
定价锚定口径:商品价格按"正常运气可购档数 / 运气极好可购档数"两读数的数学期望制定(期望账进商店表批注)——正常运气的玩家买得到成长保底档,运气极好也不至于全表买穿,两个失速态都不出现。
|
||||
定价锚定口径:商品价格按"正常运气可购档数 / 运气极好可购档数"两读数的数学期望制定(期望账进商店表批注)——正常运气的玩家买得到成长保底档,运气极好也不至于全表买穿,两个失速态都不出现。**v0.22 换代注记(迭代 11 第②批)**:A=店内递增 ≫ b=跨关递增的方向裁决随 06「GP 商店房重构」条落定;A/b 具体系数原裁决=game-balancer 研究后用户拍板(P5 甲),迭代 11 第②批依零人工令改 provisional 投值 1.8/1.1+后置追认(追认单随迭代 11 出口包,研究归调参批复核);ceil 向上单一取整(玩家不利向)。
|
||||
|
||||
| 杠杆位 | 口径 | 说明 |
|
||||
|---|---|---|
|
||||
| GP 掉落均值与方差 | 普通 / 精英(预留行)/ Boss 三行掷定区间 | 掉落量级与战斗节奏同族;格面 gp 型(金币袋,低概率)是"惊喜意外获取"的补充供给 |
|
||||
| 关级掉落加值 | 逐关一行 | 关间供给抬升的半边 |
|
||||
| 关级价格加成 | 逐关一行 | 关间价格上涨对应关间掉落上升的另一半——两轴同向联动的对子 |
|
||||
| 商品首价与步长 | 商品三行(攻击 / 生命上限 / 护甲等级 flat 档) | 重复购买逐档递增,堆单一属性自然衰减 |
|
||||
| 关级价格加成 | 逐关一行 | 关间价格上涨对应关间掉落上升的另一半——两轴同向联动的对子(legacy 模式轴;pool 模式由 b 因子承载同一杠杆位) |
|
||||
| 货架基价 | pool_shelf 四行(攻击 / 生命上限 / 护甲 / 行动点件) | **v0.22 换代**:重复购买爬价由 A 链承载(同店买越多越贵)+ b 跨关递增(后关整体更贵),步长逐档递增语义退役随 legacy 模式保留 |
|
||||
| 价格因子 A / b | 表因子 price_a / price_b | A=店内递增(进店已购次数幂)、b=跨关递增(关序−1 幂);provisional 1.8/1.1,方向裁决 A ≫ b |
|
||||
|
||||
公式语义与钱包账本归[冒险结构](冒险结构.md)(GP 冒险账本节),商店房编排归[关卡节点地图](关卡节点地图.md);行值读 `data/tables/shop.tres`(registry 为准),全部 provisional 归本文曲线调参批。
|
||||
|
||||
**分层验收 defer(2026-09-20 用户拍板成文)**:按"商店存在与否"分层的通关率验收——MC 双格(shop=off 现行基线 / shop=on 购买画像)、shop=on 的带平移量、商店属性提升的换算率登记(换算率强条目纪律同类)——**全部随曲线调参批执行**,与「基线通关率越带」同窗(原「L2 Boss 承伤微越带」「大奖励数值随难度曲线联动」两 06 条目已收口移除——前者 2026-09-28 读数自愈、后者随迭代 10 大奖励退役失义)。执行前 shop=off 续用现行带判读,shop=on 读数只登记不判读、不得用 shop=off 读数外推 shop=on。L3 首遇绿档冒烟断言仍按成长代理档口径,不因商店批改判。
|
||||
**分层验收 defer(2026-09-20 用户拍板成文)**:按"商店存在与否"分层的通关率验收——MC 双格(shop=off 现行基线 / shop=on 购买画像)、shop=on 的带平移量、商店属性提升的换算率登记(换算率强条目纪律同类)——**全部随曲线调参批执行**,与「基线通关率越带」同窗(原「L2 Boss 承伤微越带」「大奖励数值随难度曲线联动」两 06 条目已收口移除——前者 2026-09-28 读数自愈、后者随迭代 10 大奖励退役失义)。执行前 shop=off 续用现行带判读,shop=on 读数只登记不判读、不得用 shop=off 读数外推 shop=on。L3 首遇绿档冒烟断言仍按成长代理档口径,不因商店批改判。**v0.22 注记(迭代 11 第②批)**:shop=off 对照 = legacy 固定三件模式(MC 对拍 off_n60 逐位,迭代 11 第②批 T5);shop=on 首锚 = 共享池货架面 N=60 双策略(`runsum_m4iter11b_t5shopon_n60_20261003.jsonl`,attune=off 同种子配对)——带平移判读仍归调参批,终局池读数(pool_stock)随行只测不判。
|
||||
|
||||
### Boss 设计:食人魔酋长与关底血量锚
|
||||
|
||||
@@ -302,7 +304,7 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
| 注入概率初值 / 衰减 | 读表 | 注入机制归[地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
| 清障炸药威力区间 | 读表 | 清图槽当场引爆 |
|
||||
| 状态强度 | 读 `status_effects.tres`(掷点轴——2026-09-16 换装,原减伤退役) | 联动评估归本文,禁独立调参 |
|
||||
| GP 掉落与商店价格参数 | 读 `shop.tres`(gp_drops 均值±方差 / level_gp_bonus / products 首价与步长 / price_level_bonus) | GP+商店房批新增;公式语义归[冒险结构](冒险结构.md),数值全部 provisional-pending-曲线调参批,与分层带联动禁独立调参 |
|
||||
| GP 掉落与商店价格参数 | 读 `shop.tres`(gp_drops 均值±方差 / level_gp_bonus / pool_shelf 货架基价四行 / price_a / price_b;legacy products 首价与步长 / price_level_bonus 随对照模式保留) | GP+商店房批新增,pool 换代随迭代 11 第②批;公式语义归[冒险结构](冒险结构.md),数值全部 provisional-pending-曲线调参批(A/b 投值 1.8/1.1 后置追认),与分层带联动禁独立调参 |
|
||||
|
||||
## 验收标准
|
||||
|
||||
@@ -347,3 +349,4 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
| v0.19 | 2026-09-23 | **基线通关率带测量口径退役(用户拍板单关直入口口径退役——与单关试玩入口退役同批)**:原带(第 1 关 [35,55] / 第 2 关 [25,45],v0.16 分带批)锚定直入口单关读数——满血零上下文进关,与真实冒险的条件通关率脱节(实证:直入口 L2 普通 5% 与营地检查点 L2 条件 90% 同期并存,曾误导曲线调参)。逐关读数改冒险条件口径(balance_verifier 冒险段派生:通关数/到达数);新带值重锚归曲线调参批,重锚前只测不判;调参表「基线通关率带」行与验收标准通关率带条同步改口径退役注记。行值零改动 |
|
||||
| v0.20 | 2026-09-28 | 判读口径落档+回滚阶梯收编+Boss 锚漂移登记 |
|
||||
| v0.21 | 2026-09-30 | 普通档改带 L1 [35,55]/L2 [10,15]+带表与验收标准回写现行口径 |
|
||||
| v0.22 | 2026-10-03 | **商店定价公式换代(迭代 11 第②批 GP 商店房重构批——任务书 v1.3 P1 共享池/P4 ceil/P5 甲;06 条 2026-10-02 用户裁决)**:商店与 GP 经济杠杆节公式换代 = ceil(基价 × b^(关序−1) × A^(进店已购次数)),A/b provisional 投值 1.8/1.1(原 P5 甲 game-balancer 研究拍板改后置追认——零人工令);杠杆位表换货架基价四行+价格因子 A/b 两行;分层验收 defer 节补 v0.22 注记(shop=off=legacy 对照 off_n60 逐位 / shop=on 首锚 N=60 双策略带平移归调参批/终局池读数只测不判)。行值零结构改动(shop.tres 扩列不退役) |
|
||||
@@ -18,9 +18,9 @@
|
||||
|
||||
## 口径
|
||||
|
||||
- **同池同上限**:件获取次数计数为冒险级单例——奖励节点与通关三选一两渠道合计判上限(达上限件在两渠道同样剔牌库);权重与牌库口径读冒险表(registry adventure_table 为准)。
|
||||
- **同池同上限**:件获取次数计数为冒险级单例——奖励节点与通关三选一两渠道合计判上限(达上限件在两渠道同样剔牌库);权重与牌库口径读冒险表(registry adventure_table 为准)。**v2.3 起第三渠道并账**:商店货架=同池付费渠道(买一件=奖励面少一件),库存=上限即库存,账本语义与切边注记归[冒险结构](../systems/冒险循环/冒险结构.md)共享池账本节。
|
||||
- ~~道具件入本关库存~~(v2.2 退役——魔法道具局内不掉落机制道具,三轴 doctrine 锁死)。
|
||||
- 「池空直通」合法态随共享池退役:池含无次数上限的 GP 件,牌库恒非空。
|
||||
- 「池空直通」合法态随共享池退役:池含无次数上限的 GP 件,牌库恒非空(GP 袋对商店面切边、奖励面照常——奖励牌库恒非空结构保证不变)。
|
||||
|
||||
## 版本历史
|
||||
|
||||
@@ -31,3 +31,4 @@
|
||||
| v2.1 | 2026-10-01 | **掷定前置(目检反馈批——用户反馈「抽到魔法道具不显示详情不直观」,推荐案获批)**:道具件具体道具随候选抽定(reward_pick 流序内挪,消费数不变),卡片直显「魔法道具 / 道具名 · 效果摘要」;断点停点快照随载 aux_detail(续玩卡片详情不丢);node_bonus_candidates 返回扩 dict {candidates, aux_detail} |
|
||||
| v2.2 | 2026-10-03 | **池种退役+刷新件面(迭代 11 第①批同调实施批 T7/T5b——P1 甲)**:①aux_item 池种退役出三选一牌库(BONUS_IDS 除名+权重/件数/掷定前置字段随批退役)——魔法道具改走营地同调装配面(三轴 doctrine),v2.1 直显/满位替换两面随渠道退役(机械惰性承载零投放);②三选一刷新件面新增(X/Y 双源:刷新件每碰三选一重给优先消耗不结转+营地刷新升级冒险周期池;重抽消费 reward_pick 既有洗牌流池规则全保留;autoplay 默认不刷) |
|
||||
| v2.2 | 2026-10-03 | **三档位令牌池(用户全裁——待 M-4 数值批实施,现行 v2.1 平铺池维持到实施)**:池改固定配额令牌池(普通 70/稀有 25/罕见 5=100 张;洗牌不放回抽 3、选中踢池未选回池、池耗即枯竭);档位构成=普通〔小GP 18/小增伤 18/小护甲 17/小生命 17〕+稀有〔大GP/大增伤/大护甲/大生命/恢复 各 5〕+罕见〔AP 3/道具 2〕;数值对 20/50、+1/+2、+1/+2、+5/+10、恢复+6、AP+1、道具 1 件;**种类次数上限退役**(池消耗即上限;同调位上限保留);恢复件=新入池种类;MC 策略改判 1 级最稀有/2 级最左(确定性)——设计全稿与执行口径见 [06 待办「奖励池三档位令牌池重设计」条](../06-待办清单.md);卡片呈现面(本 spec 交互节)零改动 |
|
||||
| v2.3 | 2026-10-03 | **商店并账注记(迭代 11 第②批 GP 商店房重构批——P1 共享池)**:口径节「同池同上限」扩第三渠道=商店货架(pool 模式付费渠道,买一件=奖励面少一件;库存=上限即库存全冒险一次性);本 spec 交互面零改动(商店货架面归 shop.md 与 ShopOverlay,非三选一覆盖层);GP 袋对商店面切边(负交易)、奖励面照常(牌库恒非空结构保证不变) |
|
||||
@@ -21,11 +21,11 @@ entities:
|
||||
attributes:
|
||||
kind: autoload
|
||||
stream_architecture: **统一流(ADR-0007 裁丙 2026-09-27——用户两轮复裁终选「统一用一个流」并拍「全面执行」,七流并一+全事件日志)**:唯一主种子 + 单盐派生 + 唯一全局取数计数器;历史注记 = 2026-09-12 encounter 增流〔遭遇随机化批〕/ 2026-09-16 armor_roll〔护甲掷点批〕+ behavior_roll〔敌人技能池批〕/ 2026-09-20 variant_place〔地形变异批〕/ 2026-09-21 gp_drop〔GP+商店房批〕——分盐分流架构随并流批整体退役;combat_var 已于 2026-09-07 full 评审删除(玩法随机不预置基础设施)
|
||||
purpose_tags: [board_gen, reward_roll, encounter, armor_roll, behavior_roll, variant_place, gp_drop](封闭词表 = 并流前七流名全保留;扩签需改代码 + 评审;结算表 armor_roll_stream 字段降格为纯标签)
|
||||
purpose_tags: [board_gen, reward_roll, encounter, armor_roll, behavior_roll, variant_place, gp_drop, node_map, reward_pick, shop_draw](封闭词表 = 并流前七流名全保留 + node_map〔关卡节点图生成 v0.4〕+ reward_pick〔迭代 10 奖励重构〕+ shop_draw〔迭代 11 第②批 T1——商店货架抽签,每次抽 3 恰一 scope〕;扩签需改代码 + 评审;结算表 armor_roll_stream 字段降格为纯标签)
|
||||
stream_facade: open_stream(purpose) 取号(purpose 只进事件日志不参与派生;全局计数器 +1 → 单盐派生 → 返回已播种实例 → 落日志);derive_at(scope) 纯函数供测试/预览/日志回放(不推计数器);open_scope 显式位取号门随子流派生向量退役(behavior_roll 逐敌顺序取号替代)
|
||||
event_log: 冒险会话制全事件落盘——user://logs/rng_log_<主种子>.jsonl,会话行 + 逐次取数行(scope / 用途标签 / 派生种子);写盘失败告警降级不致命;号位全序化后不再单独回答「第 N 次某类事件」(路线依赖为已裁决代价),单点定位由日志承载
|
||||
new_adventure: 冒险开始重播种入口——调用权 = AdventureRunner.start_adventure 唯一正式调用方(切片单关测试路径 LevelRunner.start_level 除外;冒险结构实现批 2026-09-21——主种子全冒险恰一次注入,冒险内不重置不逐关播种);并流批加重播种同时开日志会话
|
||||
tag_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(地图战斗资源);encounter=每次战斗实例化(战斗结算 begin_battle 实例化期、扫雷开始前——**实证先于 board_gen 取号**);armor_roll=每次掷点(战斗结算 1d20);behavior_roll=每敌每轮开轮摇号(战斗结算——并流后顺序取号,spawn_index×STRIDE 派生向量退役);variant_place=每次装板(战斗结算 布置段);gp_drop=每场战斗结束掉落掷定(战斗结算)——标签绑定只描述取号时机语义,不再承载派生隔离
|
||||
tag_event_binding: board_gen=每次生成新扫雷图(棋盘生成);reward_roll=每次 board install(地图战斗资源);encounter=每次战斗实例化(战斗结算 begin_battle 实例化期、扫雷开始前——**实证先于 board_gen 取号**);armor_roll=每次掷点(战斗结算 1d20);behavior_roll=每敌每轮开轮摇号(战斗结算——并流后顺序取号,spawn_index×STRIDE 派生向量退役);variant_place=每次装板(战斗结算 布置段);gp_drop=每场战斗结束掉落掷定(战斗结算);reward_pick=每次三选一抽签恰一 scope(冒险结构——通关/节点两停点+刷新重抽);shop_draw=每次货架抽 3 恰一 scope(LevelRunner pool 模式——进店+每次买后全重抽,shop=off 零消费零扰动)——标签绑定只描述取号时机语义,不再承载派生隔离
|
||||
unseeded_access: 致命中止
|
||||
snapshot_contract: 续玩/复盘快照 = master_seed + 全局取数计数器(消费方 存档序列化;并流前「各流计数器」口径退役——现行存档未持久化计数器,契约面登记变更)
|
||||
referenced_by: [棋盘生成, 战斗结算, 地图战斗资源, 冒险结构, 存档序列化, 关卡节点图生成]
|
||||
@@ -595,10 +595,10 @@ entities:
|
||||
type: schema_data
|
||||
owner: design/gdd/systems/冒险循环/冒险结构.md
|
||||
attributes:
|
||||
table: ShopTable(数据配置 承载;**2026-09-20 GP+商店房批新建**——商店房商品与 GP 经济的行集;冒险结构 回填 owner,公式语义归其 GP 冒险账本节,数值所有权归 难度曲线与Boss 曲线调参批)
|
||||
fields: gp_drops 三行(键 = 战斗节点身份 {normal, elite, boss}——普通 均值 3 区间 [2,4] / 精英 均值 5 区间 [4,6] 预留行 / Boss 均值 8 区间 [6,10],掷定 + 均值方差口径)· level_gp_bonus(逐关——L1 0 / L2 1 / L3 2)· products 三行(atk_up 基础攻击 +1 首价 4 / hp_up 生命上限 +3 首价 2 / armor_up 护甲等级 +1 首价 4,步长均 2)· price_level_bonus(逐关——L1 0 / L2 2 / L3 4)
|
||||
formulas: 每战 GP 掉落 = 掷定 + 关级掉落加值 + 战斗内缓冲(战斗完成随 battle_finished.gp_dropped 统一入钱包——冒险结构 GP 冒险账本三收口);商品价格 = 基价 + 关级价格加成 + 步长 × 已购档数;定价锚 = 「正常运气可购档数 / 运气极好可购档数」两读数的数学期望(期望账进表批注)
|
||||
value_status: 全部行值 provisional-pending-曲线调参批(用户 2026-09-20 拍板「骨架先行、数值整体后置」)——shop=off/on 分层 MC、shop=on 带平移、换算率登记全部随曲线调参批执行(难度曲线与Boss v0.18 商店与 GP 经济杠杆节)
|
||||
table: ShopTable(数据配置 承载;**2026-09-20 GP+商店房批新建,2026-10-03 迭代 11 第②批扩列**——商店房商品与 GP 经济的行集;冒险结构 回填 owner,公式语义归其 GP 冒险账本节(共享池账本段 v0.13),数值所有权归 难度曲线与Boss 曲线调参批)
|
||||
fields: gp_drops 三行(键 = 战斗节点身份 {normal, elite, boss}——普通 均值 3 区间 [2,4] / 精英 均值 5 区间 [4,6] 预留行 / Boss 均值 8 区间 [6,10],掷定 + 均值方差口径)· level_gp_bonus(逐关——L1 0 / L2 1 / L3 2)· **pool_shelf 四行(迭代 11 第②批 T1——kind_id 词表封闭 {attack, max_hp, armor, ap}=四切边后种〔GP 袋负交易切边/机制件三轴切边〕:attack 基价 4 / max_hp 4 / armor 4 / ap 5 provisional;库存=上限即库存,账本在 AdventureRunner._bonus_taken 单点共享,行族不记库存)· price_a=1.8 / price_b=1.1(乘法价格因子 provisional,后置追认)** · products 三行(atk_up +1 首价 4 / hp_up +3 首价 2 / armor_up +1 首价 4,步长均 2——legacy 对照模式承载,退役归 off 锚换代批)· price_level_bonus(逐关——L1 0 / L2 2 / L3 4,legacy 同上)
|
||||
formulas: 每战 GP 掉落 = 掷定 + 关级掉落加值 + 战斗内缓冲(战斗完成随 battle_finished.gp_dropped 统一入钱包——冒险结构 GP 冒险账本三收口);**货架现价(pool 现行)= ceil(基价 × b^(关序−1) × A^(本次进店已购次数))**;商品价格(legacy 对照)= 基价 + 关级价格加成 + 步长 × 已购档数;定价锚 = 「正常运气可购档数 / 运气极好可购档数」两读数的数学期望(期望账进表批注)
|
||||
value_status: 全部行值 provisional-pending-曲线调参批(用户 2026-09-20 拍板「骨架先行、数值整体后置」;A/b 投值 1.8/1.1 系迭代 11 第②批零人工令改 provisional+后置追认)——shop=off/on 分层 MC(off=legacy 对照 off_n60 逐位 / on=共享池首锚 N=60 双策略)、shop=on 带平移、换算率登记全部随曲线调参批执行(难度曲线与Boss v0.22 商店与 GP 经济杠杆节)
|
||||
rule4_status: 进度成长表(数值随关卡与商品档变化,无 Rule 4 豁免)
|
||||
referenced_by: [冒险结构, 关卡节点地图, 难度曲线与Boss, 战斗结算, 数据配置]
|
||||
|
||||
|
||||
Reference in new issue
Block a user