Files
gplan-2/design/gdd/systems/冒险循环/冒险结构.md
T

30 KiB
Raw Blame History

冒险结构

一句话:整局冒险的关卡序列、失败与大奖励 状态:已定稿(自旧体系迁移) 旧版参考:../../../archive/gdd-2026-09-14/c2-adventure-structure.md

设计目的

冒险结构管的是"一整局"这个层级:这局要依次下探哪几层、通关一层发什么、倒下之后怎么重来。单场战斗打得再好,也需要这层骨架才能变成"越走越深"的进度感;死亡也需要一个明确的边界——死在哪里、失去什么、留下什么。

它还立起本系统的核心张力:主角一条血走完整场冒险,恢复只来自两个显式口,血条跨关只降不自动回。所以越往后,玩家越在意"这局已经走到第几层"。

系统范围

边界这样划:冒险结构只管序列与结构层——冒险从哪开始、有几关、通关发什么、失败怎么算、随机种子怎么接。单关内部怎么走节点归关卡节点地图;一场战斗怎么结算归战斗结算;数值曲线归难度曲线与Boss。

负责:

负责 说明
冒险生命周期 待机 / 进行中 / 结算中三态,与完成、失败、放弃三种结局的判定和产出
关卡序列 关卡表(逐关一行的配置表)行集内容的责任方;推进规则:线性、无跳关
生命账本 跨战斗生命持久性的冒险侧账本:每战交出、战后收回、两个恢复口
GP 冒险账本 战斗掉落货币的局内账本(显示名「金币」):战斗完成统一入账、商店购买出账、冒险收束清零;统一冒险加算区(商店购买与大奖励同账)
关卡大奖励 通关一关固定发放的三件套的兑付
失败重开与放弃 倒下即冒险终;重开等于全新一轮;放弃与失败同型结算
主种子接线 一场冒险一个主种子,冒险内一切随机数派生自它

不负责:

不负责 归谁
单关内节点行进与兑付触发 关卡节点地图
商店房节点的开闭交互与商品陈列 关卡节点地图
轮末结算编排与关卡清库接口 战斗结算
节点奖励内容与库存语义 地图战斗资源
通关率带、敌我数值与 Boss 设计 难度曲线与Boss
钥石与跨局成长 元进度
摘要结算画面与关卡推进指示 HUD框架

在核心循环中的位置

战斗结算(一场战斗的胜负判定)──(战斗结果上报)──▶ 冒险结构(大奖励 / 推进 / 失败重开)──(开始关卡)──▶ 关卡节点地图(单关节点链行进)

核心循环里"一场冒险:关卡串起来的下探"讲的就是本系统的故事线:冒险结构站在"关卡之上、战斗之下"的那一段,向上承接每一场战斗的结果,向下把"下一关开始"的指令交给关卡节点地图。至于存档变厚(钥石攒进存档),发生在冒险之外,归元进度。

核心规则

冒险的一生:开始、推进与三种结局

"冒险"在本文是一个计量单位:玩家从开始新冒险到出局结算的一段完整游玩,由若干关卡串成,全程只有一条命。冒险任何时刻恰处三种状态之一:待机(还没开始,或上一局已结算完毕)、进行中(某一关正在推进)、结算中(一关刚宣布结束,正在算大奖励与结局)。

待机 ──(开始新冒险:注入主种子、生命回满、进第 1 关)──▶ 进行中
进行中 ──(非末关通关)──▶ 兑付大奖励 ──▶ 进下一关(仍在进行中)
进行中 ──(末关通关 / 任意战斗倒下 / 玩家放弃)──▶ 结算中 ──(产出冒险摘要)──▶ 待机

三种结局怎么判、在摘要上留什么标记:

结局 判定时机 摘要标记
冒险完成 最后一关的关底 Boss 被击杀 已打穿
冒险失败 任意一场战斗主角倒下 未打穿
冒险放弃 玩家主动放弃(仅非战斗期受理) 未打穿

每次结算产出一份冒险摘要(本文含义:结算时打出的一份小账单),记五件事:打穿没有、通关几关、止步第几关、钥石入账合计、本局主种子。它是重开后"这局我到第几层"的对照坐标,也是元进度(钥石入账位)与存档序列化(快照域标识与复盘)的输入。

结算受理后只算一次:同一关的结束宣布重复到达时,重复宣布被拒绝并留诊断,账本与摘要零变化。

关卡序列:一局打几关、怎么算通关

一场冒险由关卡串成。关卡(本文含义:地牢一层的完整推进——一条节点链加一个关底 Boss)的序列读关卡表:逐关一行的配置表,本文是它行集内容的责任方,表本体与读取机制归数据配置。

MVP 的序列是两关线性:第一关是地牢基线,第二关在基线上加入新元素并抬高数值台阶("新元素"具体是什么,见「待办」——原表述绑定的机制已从设计中移除)。通关一关(该关关底 Boss 被击杀)自动进下一关;冒险通关 = 最后一关的关底 Boss 被击杀。没有跳关、没有回头路;关卡行进走关卡节点地图的分支节点图(切片第一关为单链特例)。

第二关的生效有前提:要等难度曲线与Boss的第二关深度轴行值填充批落地。未落地前,冒险以单关运行——单关冒险是合法状态,不是缺陷。

加关纪律:加一关等于一个内容批——节点链行、敌我数值、新元素必须同批落,禁止只加序列不加内容。行集里每个战斗与关底节点都必须在敌人、棋盘生成的数值表里有精确行,冒烟期校验;越界关卡按内容生产缺口拦截。运行期对越界的开始关卡请求与缺失的关卡行一律报错停机——那是配置违约,不是玩家能碰到的状态,不做兜底吞掉。

序列的难度排布消费难度曲线与Boss的逐关通关率带。整局难度由长度叠加:

结论:整局通关率 ≈ 各关通关率的连乘——冒险长度就是难度的总闸。

整局通关率 = 第 1 关通关率 × 第 2 关通关率 × … × 第 N 关通关率

各关通关率目标带的取值归难度曲线与Boss,本文不复制其数值。

生命账本:一条血走完整场冒险

主角在一场冒险里只有一条血。战斗里扣的、恢复点回的、大奖励回满的,记的是同一本账;战后剩多少血,就带多少进下一场。关卡切换不做任何生命结算——换的是地图,不是血条。

账本只有四个收支口:

收支口 方向 规则
冒险开始 入 生命置满(基础上限读英雄表)
每场战斗开始 出 账本当前值作为主角生命入参交给这一战
每场战斗结束 入 收回战后生命终值并回写(胜负皆报;倒下记 0,冒险终)
恢复点与大奖励 入 全冒险仅有的两个恢复口

战斗开始的生命交接走主角战斗入参覆盖值通道(每战以显式入参传入生命与上限、不改全局表——契约见战斗结算)。恢复口之一是恢复点节点(关卡节点链上回血的一类节点;节点类型分类学归关卡节点地图,本文只写它兑付时账本怎么变):按比例回血并封顶上限,满血时回复 0,是合法状态。另一个恢复口是通关大奖励(见下一节)。

结论:账本三处写入口一律封顶在 [0, 生效上限];血条跨关只降不自动回。

战后回写:  生命 = 战斗上报的生命终值(倒下记 0,冒险终)
恢复点:    生命 = min( 生命 + floor( 生效上限 × 恢复比例 ÷ 100 ), 生效上限 )
大奖励:    生效上限 = 生效上限 + 上限提升;生命 = 生效上限
战斗入参:  每战交给战斗的上参 = 当前生命、生效上限
变量 含义 行值出处
生效上限 基础上限 + 统一冒险加算区累加(大奖励 + 商店购买,见 GP 冒险账本节) 基础上限读英雄表
恢复比例 恢复点回复生效上限的百分比,逐关配置 读关卡表 rest_heal_pct(provisional)
上限提升 每次大奖励的生命上限加成 读配置表(provisional)

示例轨迹(纯符号示例、不代具体数值;现行行值读英雄表、关卡表与冒险表,registry 为准):

时刻 账本读数
冒险开始 满血 H₀ / 上限 H₀
逐场战后 递减序列 H₁ > H₂ > …(示例不代数)
恢复点 min(H₂ + floor(H₀ × 恢复比例 ÷ 100), H₀)
关底 Boss 胜后,兑大奖励 上限 H₀+Δ、生命 = H₀+Δ
下一关开局 (H₀+Δ) / (H₀+Δ) 满血

冒险内没有其他跨关遗留物:增益随战斗结束清空(归战斗结算)、道具库存随关卡结束清空(由关卡节点地图在收束点编排)、储备行动点随战斗结束清零(归行动经济)。冒险层真正跨关留下的,只有这本生命账与冒险摘要。

GP 冒险账本:战斗掉落的局内钱包与统一冒险加算区

GP(显示名「金币」)是冒险内的一次性属性提升货币:战斗胜利掉落、商店房消费、冒险结束清零。它与钥石记账完全分离——钥石跨局持久、入存档;GP 局内有效、不入存档、不入冒险摘要五件事清单。账本语义归本文,商店房的开闭交互归关卡节点地图。

钱包只有三个收口:

收口 方向 规则
战斗完成 入 每完成一场战斗统一到账一次:金额 = 掉落掷定 + 关级掉落加值 + 本战战斗内缓冲,随战斗结束信号携带的 gp_dropped 一笔入账
商店购买 出 商店房购买按现行价扣减钱包,余额不足拒绝;价格 = 基价 + 关级价格加成 + 步长 × 已购档数
冒险收束 清零 完成 / 失败 / 放弃三种结局都清零;重开后钱包从零开始

战斗内缓冲隔离:战斗进行中从格面兑付拿到的 GP(金币袋正向、破财负向——字典归地图战斗资源)不直接进钱包,而是记入战斗域的中间态缓冲;战斗完成时缓冲随掉落掷定与关级加值一并折进 gp_dropped 统一到账。钱包只在战斗边界变动,战斗域自身零钱包状态——这条隔离让战斗结算保持"折算归我、账本归冒险结构"的既有边界。

统一冒险加算区:商店购买的属性提升与关卡大奖励的上限提升记同一本账——加算区三轴 {攻击, 生命上限, 护甲等级},入战参数 = 基础表值 + 加算区累加,经战斗开始入参的覆盖值通道生效(与生命账本的上参同一条通道)。购买生命上限时,当前生命与上限同步 +Δ(生命账本的连带写入口)。攻击轴现行只有商店一个累加源——MVP 大奖励不含攻击件。

掉落掷定消费 gp_drop 封闭随机流(主种子派生、可回放)。掉落与价格的现行行值读商店表(registry 为准),数值所有权归难度曲线与Boss曲线调参批——本批骨架先行,全部数值 provisional。

关卡大奖励:通关一关发三件

关卡大奖励(本文含义:通关一关时固定发放的三件套)是非末关通关的固定兑付。它不进任何背包、不占任何库存域,收益面只朝"下一战"生效。兑付时点固定:关卡节点地图先调战斗结算的关卡收束接口清空关卡域库存,再向本文宣布关卡结束——大奖励在这之后、下一关开始之前兑付,顺序不可换。上限已有加成时,后续大奖励累加;两关冒险至多兑付一次。

件 内容 生效方式
生命上限提升(行值读表) 生效上限累加提升(记入统一冒险加算区——与商店购买同一本账) 经战斗开始入参的覆盖值通道,对后续每战生效
血回满 生命 = 提升后的生效上限 直接写生命账本
钥石入账(行值读表) 在冒险摘要里记一笔 数值进摘要,消费方归元进度

最后一关通关不发大奖励:没有下一战可受益——只做冒险完成结算,钥石照记。设计意图:清库之后才兑付、末关不兑付,都是从"奖励只朝下一战生效"这一条推出来的。

三件数值为 provisional,行值读冒险表 level_clear_hp_bonus / keystone_per_level(registry 为准)。上限提升的值锚与上调约束(换算率估算见 registry / 调参日志,上调须重扫第二关通关率带)归难度曲线与Boss;钥石入账的消费归元进度。2026-09-17 用户拍板:本件与元进度钥石为同一资源(原「代币」概念退役)——钥石渠道有二:关卡大奖励入账与关底 Boss 掉落;产出细则与量级配比归元进度设计批。

失败重开与主种子:倒下即终,重开即全新一轮

失败没有中间态:任意一场战斗主角倒下,冒险当场结束——没有关卡重试、没有检查点、没有复活,血条归零即终。这是 Roguelike 的既定语义,已锁。

重开 = 全新一轮冒险:注入新主种子、从第一关、满血、空手——不是"重打刚才那一关"。上一局清零的是生命账本、库存与种子;唯一保留面是冒险摘要,它给每次死亡一个可对照的坐标("这局到第二层"),重开因此是新局面而不是复读。

主动放弃按与失败同型结算:已获得的大奖励不追回、已到手的保留,摘要标记未打穿。放弃请求只在非战斗期受理,战斗进行中一律拒绝(战斗域单事务在飞)。放弃的界面入口挂在关卡节点地图的选路覆盖层上——选路停点天然是非战斗期,按钮只在冒险模式开放(选路覆盖层只在冒险模式出现);战斗进行中没有选路停点,入口因此天然不可达,拒绝分支仅作防御兜底。

主种子(本文含义:冒险开始时注入的一个随机种子,本局全部随机性都派生自它)在冒险开始时注入恰一次。冒险内的雷图生成、奖励抽取、遭遇掷骰与 GP 掉落掷定(消费 gp_drop 封闭流)全部派生自它,冒险内不重置、不逐关播种——早期切片"每关开局各自播种"是没有冒险层时的历史简化,已改写为全冒险单一种子。冒险的可复现域 = 主种子 + 各随机流计数器,供复盘与快照(见存档序列化)。重开抽到的种子与上一局相同是允许的(随机源范围小,撞种子不算错误),但生成新种子不得复用玩法里的随机数。

与关卡节点地图的边界:收束点与接口四件套

这条边界是承重的,两边文档都要按它写:冒险结构管序列与结构层——关卡序列、生命账本、关卡大奖励、失败重开、主种子;单关内的节点行进与兑付触发归关卡节点地图。本文对战斗域与库存域零直调:清库存这件事,本文从不亲手做。

两边的交汇点叫收束点:一关的关底 Boss 被击杀,或主角在任意战斗倒下的那一刻。收束点的次序固定,先清库、后宣布:

关卡收束点(关底 Boss 被击杀,或主角倒下)
  ├─ 第一步:关卡节点地图调[战斗结算](../战斗循环/战斗结算.md)的关卡收束接口——清空关卡域库存,返回清空前计数
  └─ 第二步:关卡节点地图向冒险结构宣布关卡结束(通关 / 倒下)
       ├─ 通关且非末关 → 兑付大奖励 → 开始下一关
       ├─ 通关且是末关 → 冒险完成结算
       └─ 倒下 → 冒险失败结算

本文只接结果、不发指令进战斗:不调用任何战斗域接口,也不碰库存。通关宣布到达时,默认库存已清;出现结构性异常(例如宣布通关但生命不为正)按防御断言拦截。

接口契约四件套——开始关卡 / 战斗结果上报 / 治疗封顶回报 / 关卡结束——是关卡节点地图文档的强制输入,本文按现行口径如实登记:

接口 方向 时点 载荷
开始关卡 本文 → 关卡节点地图 冒险开始 / 每次关卡推进 关卡序号、当前生命、生效上限
战斗结果上报 关卡节点地图 → 本文 每场战斗结束后(胜负皆报) 战后生命终值(倒下记 0)
治疗封顶回报 关卡节点地图 → 本文 恢复点节点兑付时 恢复比例(读该关配置行);本文按比例回血并封顶
关卡结束 关卡节点地图 → 本文 关卡收束点(已先清库) 结果(通关 / 倒下)、生命终值、节点位置

至于一场战斗在哪个节点开打、打谁,组装编排归关卡节点地图;它组装战斗开始调用时,主角生命与上限取自本文下放的值,攻击力走表值通道(MVP 冒险内不提升攻击)。

依赖与输出

这张表就是删除任何一方时的影响面清单。

方向 系统 接口要点
上游 难度曲线与Boss 逐关通关率带是序列难度排布的输入;第二关深度轴行值填充批是两关序列的生效前提;大奖励与恢复点数值的联动复验归它
上游 数据配置 关卡表与冒险表(单行全局)的承载与统一读取,本文是两表的内容与回填责任方;主种子的注入入口(随机服务)
上游 战斗结算 主角战斗入参覆盖值通道(本文供生命与上限);关卡收束接口由关卡节点地图收束点调用,本文零直调;战后生命终值与本战 GP 掉落(gp_dropped)经上报读回
下游 关卡节点地图 接口契约四件套 + 收束点语义,本文是定义源,也是其文档的强制输入
下游 元进度 冒险摘要承载钥石入账合计(元进度是消费方);冒险开始参数面预留(未来跨局加成在此注入,MVP 空参数)
下游 存档序列化 快照契约域单位 = 冒险(主种子 + 随机流计数器);摘要含主种子供复盘
下游 HUD框架 摘要结算画面、关卡推进指示、放弃入口(非战斗期)的数据源 = 冒险摘要与状态投影;商店覆盖层与 GP 余额常驻读数的钱包数据源

P0 最小闭环

  1. 待机中开始新冒险:注入新主种子(恰一次)、生命账本置满、序列位置 = 第 1 关。
  2. 开始关卡:把关卡序号、当前生命、生效上限下放关卡节点地图,后者加载节点图并停在入口选路停点(关卡画面),行进自玩家首次选路开始。
  3. 每场战斗结束:战斗结果上报到达,账本回写生命终值;上报为 0(倒下)直接走失败结算。
  4. 恢复点节点:治疗封顶回报到达,按比例回血并封顶。
  5. 关底 Boss 被击杀 = 收束点:关卡节点地图先调战斗结算清库,再向本文宣布关卡结束(通关)。
  6. 非末关通关:兑付大奖励三件,开始下一关;末关通关:只做冒险完成结算。
  7. 冒险结算(完成 / 失败 / 放弃)产出冒险摘要,回到待机;重开即全新一轮,回到第 1 步。

P1 / P2 后置

优先级 内容 后置原因
P2 大奖励形态扩展(三选一 / 攻击型 / 通关加成) 冒险表扩列结构位已留;设计随元进度定稿
P2 冒险开始参数面消费 预留给未来跨局加成注入(MVP 空参数,结构同覆盖值通道);归元进度
P2 冒险长度扩展(多于两关) MVP 两关对比愿景单局 20–40 分钟;扩关 = 内容批,节奏按真人单关时长数据定

调参表

全部数值存配置表、经统一读取口读入,代码里零数值字面量;表本体与读取机制归数据配置。已锁字段以 registry 的 level_table / adventure_table 条目为准。

参数 域 现行值 说明
关卡行集(关数与节点链模板) 关卡表逐关行 第一关现行,第二关随扩展批 加关 = 内容批(链行 + 敌我数值 + 新元素同批);MVP 链模板 = 两战 → 奖励 → 两战 → 恢复 → 关底 Boss(7 节点,战斗深度 5)
恢复比例 int [0,100],逐关行 见 level.tres rest_heal_pct(provisional) 恢复点回复生效上限的百分比;随上限加成同步放大;100 = 恢复点变全满泉,0 = 死节点
上限提升 int [0,999],冒险表单行全局 见 adventure_table level_clear_hp_bonus(provisional) 大奖励的生命上限加成;值锚与上调约束归难度曲线与Boss
每关钥石入账 int [0,999],冒险表单行全局 见 adventure_table keystone_per_level(provisional) 每通关一关在摘要记的值;消费方归元进度
GP 经济参数 商店表逐行 见 shop.tres gp_drops / level_gp_bonus / products / price_level_bonus(provisional,registry 为准) 掉落均值与区间(普通/精英/Boss)、关级掉落加值、商品首价与步长、关级价格加成;公式语义归本文,数值所有权归难度曲线与Boss曲线调参批

结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励三件构成、一冒险一主种子、收束点先清库后宣布的次序。

参数联动:恢复比例越厚通关越有余量(对冲杠杆语义归难度曲线与Boss);上限提升抬高下一关开局强度,上调须按难度曲线与Boss的口径重扫通关率带。

验收标准

  • 开始新冒险:主种子注入恰一次,生命账本置满,从第 1 关起步,关卡行集加载零诊断。
  • 通关推进:非末关宣布通关后,大奖励恰兑付一次(上限累加、血回满、钥石入账),随后开始下一关。
  • 末关通关:只做完成结算——不发上限提升、无下一关;摘要标记已打穿,钥石 = 通关数 × 每关入账值。
  • 任意战斗倒下:冒险失败结算;摘要记通关数与止步关卡;账本封闭。
  • 重开:全状态重置(账本、序列位置、库存域空、摘要新生成)并注入新主种子。
  • 生命一致性:每战开始的上参 = 账本当前生命与生效上限;战后账本 = 上报终值;三处写入口均封顶在 [0, 生效上限]。
  • 恢复点:回复 = floor(生效上限 × 恢复比例 ÷ 100) 后封顶;满血腿回复 0 合法。
  • 大奖励覆盖:大奖励后首战的上限入参 = 旧上限 + 上限提升(覆盖值通道);攻击力恒走表值通道。
  • 收束次序:通关宣布到达时库存已被关卡节点地图先行清空;重复的关卡结束宣布被拒绝,账本与摘要零变化。
  • 覆盖义务:冒烟断言——行集内每个战斗与关底节点(关、深)在敌人与棋盘生成的数值表中有精确行;序列关数 = 行集关数。
  • 生效前提未兑现(第二关行缺行):以单关冒险运行(合法态),两关断言显式跳过而非失败。
  • 放弃:战斗中的放弃请求被拒绝;非战斗期放弃按失败同型结算,已获大奖励不追回;放弃入口仅在选路停点呈现且只在冒险模式开放。
  • 种子域:冒险内零随机流自开,一切随机派生自主种子(含 GP 掉落掷定的 gp_drop 封闭流);同种子同操作序列两局逐位可复现。
  • GP 账本封闭:钱包只有三个收口——战斗完成入账恰一次(掉落掷定 + 关级加值 + 战斗内缓冲合计)、商店购买出账、冒险收束清零;战斗内缓冲与钱包隔离,战斗进行中钱包零变动。
  • GP 不留痕:GP 不入存档、不入冒险摘要;重开后钱包从零开始。
  • 加算区同账:商店购买与大奖励上限提升读同一本统一冒险加算区;购买生命上限后当前生命与上限同步增加等量;入战参数 = 基础表值 + 加算区累加(覆盖值通道)。

待办

本系统待办条目已统一收编至 06-待办清单,本节不再逐条登记。

版本历史

版本 日期 改动
v0.1 2026-09-15 自归档 GDD 压缩改写
v0.2 2026-09-15 雾格残留清理:第二关"解锁新元素"条目改引用「已从设计中移除的机制」(见不做清单),并明确第二关层名未定稿、随第二关内容批重定。关卡序列与节点模板不变
v0.3 2026-09-17 代币→钥石统一拍板(用户裁决):大奖励第三件「代币记账 +10」改「钥石入账 +10」——与元进度钥石同一资源(渠道 = 关卡大奖励入账与 Boss 掉落),「代币」措辞退役;调参表字段名、验收标准、依赖表同步。数值与机制不变
v0.4 2026-09-17 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),3 处失同步修正(示例轨迹改纯符号〔旧 50/50 生命轴示例作废〕、大奖励 +10/+10 改读 adventure_table 行值并删换算率数字锚、调参表 30/10/10 三格改读 level.tres / adventure_table)
v0.5 2026-09-20 GP+商店房批(用户拍板——与关卡节点地图 v1.1 / 战斗结算 v0.23 / 地图战斗资源 v0.15 / 难度曲线与Boss v0.18 / registry / 切片同批):① 新增「GP 冒险账本」节——钱包三收口(战斗完成统一入账 / 商店购买出账 / 冒险收束清零)+ 战斗内缓冲隔离语义(格面兑付入缓冲、战斗完成统一到账、战斗域零钱包状态);② 统一冒险加算区成文——商店购买与关卡大奖励上限提升同一本账(三轴 {攻击, 生命上限, 护甲等级},经覆盖值通道生效;购血 = 上限与当前生命同步 +Δ);③ GP 掉落掷定消费 gp_drop 封闭随机流(主种子派生)登记进主种子节与调参表;④ GP 不入存档、不入冒险摘要;范围表 / 大奖励表 / 依赖表 / 验收标准同步。数值全 provisional-pending-曲线调参批,行值读 shop.tres
v0.6 2026-09-21 冒险结构实现批落地登记(切片 AdventureRunner + LevelRunner 账本外置 + AdventureTable 建表——与切片代码 / registry / 03 / 06 / roadmap 同批):本批只记实现批状态,正文规则口径零改动。落地面 = 三关正式序列生效(首页「开始冒险」)、接口契约四件套正式侧承载(开始关卡 start_level_external / 战斗结果上报共享账本直写 / 治疗封顶回报 apply_rest / 关卡结束 level_finished)、生命账本与 GP 冒险账本上交冒险结构层、大奖励非末关恰兑付一次(末关钥石照记)、冒险摘要五件事产出、主种子恰一次注入(registry rng_service new_adventure 调用权同批登记)、结算受理只算一次;06 待办「两关序列未生效」「切片行进代码与定稿的接口漂移」「冒险表未建表」三条随批解决移除。规划书冲突按代码为准登记两处:①大奖励 _pending_next_level 置位先于 emit(信号同步派发——处理器内立即确认需标记已就位);②放弃受理补 state=running 守卫(契约 7 结算受理只算一次的 abandoned 侧对齐)
v0.7 2026-09-21 放弃入口界面呈现批(用户拍板「放弃接口也要有」——台账 119,推翻本文原「MVP 无界面入口、呈现后置」条款):① 放弃入口挂关卡节点地图选路覆盖层(选路停点 = 天然非战斗期;战斗中拒绝转为防御兜底分支——入口在战斗期不可达);② 入口只在冒险模式开放,单关测试直入口没有可放弃的冒险对象;③ 正文改现行口径(放弃节 / 验收标准放弃条),P1 后置表「放弃入口的界面呈现」随落地移除(同表「两关序列生效」系 v0.6 已落地漏收口,顺手同口径移除);④ 验收闸 = ui_probe 三断言(默认隐藏 / 冒险模式可见 / 首战中按下被拒 state 保持 running)+ 冒烟既有放弃两态 API 断言
v0.8 2026-09-23 单关测试直入口退役(用户拍板——唯一试玩入口 = 完整三关冒险):正文改现行口径两处(放弃节「按钮只在冒险模式开放」的理由从「单关直入口无冒险对象」改为「选路覆盖层只在冒险模式出现」;验收标准放弃条同步去单关直入口从句)——放弃语义对象(整局冒险)与拒绝分支零改动。版本历史行(v0.7)按 ADR 纪律不回改
v0.9 2026-09-23 停点前移批流程口径对齐(用户 2026-09-23 拍板冒险入口流程倒置修复——与 HUD框架 / 关卡节点地图 / battle.md / ../../../dev/architecture/adr-0006-board-node2d-rendering.md 同批):P0 闭环「开始关卡」条改新流程口径——关卡节点地图加载节点图后停在入口选路停点(关卡画面,选路覆盖层常驻形态),行进自玩家首次选路开始;通读复核其余章节——「通关自动进下一关」属关卡序列层语义(进入下一关后仍出图选路,零矛盾)、接口契约四件套、收束点先清库后宣布、放弃入口(选路停点 = 天然非战斗期)等既有裁决零改动。批内代拍板三项已追认(2026-09-24 用户确认)(字母不重编 / 28px 归 C/D 底行 / 进度呈现由选路覆盖层节点态承载)不落本文修订面,登记见 HUD框架 v0.8