docs(gdd): 数值纪律收口批——全树正文 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry)——四路并行审计约 90 条命中、13 处失同步冲突修正:战斗结算(参考敞口12→4/充能cap 8→3/每雷2→1)、棋盘生成(雷密度/推理率/尝试上限)、敌人系统(9×2=18 算例符号化)、魔法道具(AP默认8漏改)、03-内容规模整篇重写为指路体例(同步两关落地/可选类删除)、难度曲线落文 normal 目标带[10,25]%拍板+删过期60%读数;06-待办两处失同步补注;reward.tres 头部两处过期注释标历史注记;行动经济终扫补两处漏网(刷新上限2次/巢穴例句);HUD框架呈现常量声明文档自持唯一事实源;各文件版本历史追加收口批条目(v0.3~v0.12 接排);版本历史/台账留痕/取值域/结构计数按规则豁免
This commit is contained in:
1 parent
3fb6bd2180
commit
cdc226e923
15 files changed
+383
-330
No files matched your search
+21
-46
@@ -1,88 +1,62 @@
|
|||||||
# 内容规模
|
# 内容规模
|
||||||
|
|
||||||
一句话体量:**一关、三种敌人、两档棋盘、八种战斗道具、六种魔法道具、六种状态**——刚好撑起一次完整的"扫雷决策 → 战斗兑现"循环,除此之外一律不做。以下数字以 `data/tables/` 实际行数与 `design/registry/entities.yaml` 登记为准。
|
一句话定位:**两关、两档棋盘、一套格面资源池、一套状态表**——刚好撑起一次完整的"扫雷决策 → 战斗兑现"循环,除此之外一律不做。
|
||||||
|
|
||||||
|
> **体例说明(2026-09-17 数值纪律收口批)**:本文件只写内容规模的结构框架——几个维度、各分几档、扩展走什么流程。具体种数、行数与幅度数值一律不在此抄录,事实源为准:数据表读 `prototypes/dungeon-sweeper-vertical-slice/data/tables/*.tres`,实体登记读 `design/registry/entities.yaml`;现行行数与面值以表和 registry 为准。
|
||||||
|
|
||||||
## 关卡
|
## 关卡
|
||||||
|
|
||||||
现有 **1 关**(level.tres 一行),节点链 7 节、5 场战斗:
|
**两关已落地**,共用一条分支节点链模板(2026-09-17 分支节点图批:第二层幽暗地域随分支节点图落地,序列推进的收尾待办见[待办清单](06-待办清单.md)):
|
||||||
|
|
||||||
| 关卡 | 层名 | 节点链 | 状态 |
|
| 层 | 层名 | 结构 | 状态 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 第一层 | 苔藓回廊 | 战(D0) → 战(D1) → 随机道具 → 战(D2) → 战(D3) → 恢复点 → Boss 战(D4) | 已落地 |
|
| 第一层 | 苔藓回廊 | 分支节点图(战斗 / 随机道具 / 恢复点 / Boss 等节点型) | 已落地 |
|
||||||
| 第二层 | 未定 | 同一条链模板复用,只换数值 | 仅有 D0 锚行,D1–D4 行值待填 |
|
| 第二层 | 幽暗地域 | 同一分支节点图模板复用,第二关深度轴行值填充 | 已落地(正式序列推进待收尾) |
|
||||||
|
|
||||||
MVP 做到两关:第二层不新造结构,与第一层共用节点链模板,靠数值台阶区分。第二层的生效前提是把敌人表与棋盘表的 D1–D4 行值填齐;填齐之前冒险按一关运行——这是合法态,不是残缺。
|
现行节点行集与行值读 `data/tables/level.tres`(registry 为准)。再扩关卡走扩展批流程:先填深度轴行值、再接正式序列推进,不新造节点链结构。
|
||||||
|
|
||||||
## 敌人
|
## 敌人
|
||||||
|
|
||||||
**三种**,含一个 Boss(enemy.tres 六行 = 第一关五场遭遇 + 第二层锚行):
|
**一套封闭敌种池**,含一个 Boss;各敌种配一档护甲,构成"轻甲 → 魔法护甲 → 重甲"的教学梯度。现行敌种清单、各行技能池与权重读 `data/tables/enemy.tres` 与 `data/tables/skills.tres`(registry 为准),出招 = 开轮摇号(2026-09-16 敌人技能池批——固定出招剧本废除,池语义见[敌人系统](systems/战斗循环/敌人系统.md))。
|
||||||
|
|
||||||
| 敌人 | 定位 | 技能池(权重) |
|
MVP 不加新敌种,也不做同深度多敌种混搭;敌种扩容走数据表加行 + registry 登记。
|
||||||
|---|---|---|
|
|
||||||
| 地精 | 教学杂鱼,可成群(1–3 个) | 普攻 9 · 突刺 1 |
|
|
||||||
| 熊地精 | 主力,可成群 | 普攻 6 · 蓄力 2 · 重击 2 |
|
|
||||||
| 食人魔酋长 | 第一关 Boss,单个 | 普攻 6 · 重击 2 · 硬化 2(硬化独占) |
|
|
||||||
|
|
||||||
出招 = 开轮摇号(2026-09-16 敌人技能池批——固定出招剧本废除,池语义见[敌人系统](systems/战斗循环/敌人系统.md))。
|
|
||||||
|
|
||||||
每种敌人配一档护甲(轻甲 / 魔法护甲 / 重甲),正好构成"轻甲 → 魔法护甲 → 重甲"的教学梯度。MVP 不加新敌种,也不做同深度多敌种混搭。
|
|
||||||
|
|
||||||
## 棋盘
|
## 棋盘
|
||||||
|
|
||||||
**两档规格**(board_gen.tres),密度全程一档:
|
**两档尺寸**(档位概念是设计决策:小板 / 大板,Boss 战的台阶靠换大板制造),具体尺寸面值与雷密度读 `data/tables/board_gen.tres`(registry 为准)。密度全程一档,不做密度爬坡;可推理率目标全程恒定,目标值归[排雷玩法](systems/排雷循环/排雷玩法.md)口径。
|
||||||
|
|
||||||
| 档位 | 尺寸 | 雷密度 | 用于 |
|
地形变异暂无内容:岩浆/冰冻等只登记了名字,机制未定(见 `data/tables/variation.tres` 的登记现状)。
|
||||||
|---|---|---|---|
|
|
||||||
| 小板 | 10×10 | 25% | 第一关前两战 |
|
|
||||||
| 大板 | 12×12 | 25% | 第一关后三战(含 Boss) |
|
|
||||||
|
|
||||||
不做密度爬坡——Boss 战的台阶靠换大板制造,可推理率目标全程恒 0.88。地形变异暂无内容:岩浆/冰冻等只登记了名字,机制未定。
|
## 战斗道具(格面资源)
|
||||||
|
|
||||||
## 战斗道具
|
**格面资源池**(`data/tables/reward.tres`,现行行数读表为准):结构为格面五型 × 正负两向,加清图奖励槽一类。全部按交付方式当场兑付、不进背包——入背包的"结算窗口选用"类道具(小刀 / 精工短刀 / 治疗包)已随格面资源批整体删除,现行池内无可选类道具、无轮末结算窗口。
|
||||||
|
|
||||||
**八种**(reward.tres 八行),按交付方式分三类:
|
行级语义见[地图战斗资源](systems/战斗循环/地图战斗资源.md)。MVP 不做道具之间的组合协同;扩池走 reward.tres 加行 + registry 登记。
|
||||||
|
|
||||||
| 类别 | 道具 | 用法 |
|
|
||||||
|---|---|---|
|
|
||||||
| 格子开出、当场生效 | 增伤术、石肤术、爆裂粉尘、急救敷料 | 挖到就兑付,不进背包 |
|
|
||||||
| 入背包、结算窗口选用 | 小刀、精工短刀、治疗包 | 每场战斗至多选用一件 |
|
|
||||||
| 清图奖励 | 清障炸药 | 清完整张雷图当场兑付 |
|
|
||||||
|
|
||||||
MVP 就这么多:两个增益、两件小救急、两把刀、一个清图大奖。不做道具之间的组合协同。
|
|
||||||
|
|
||||||
## 扫雷魔法道具
|
## 扫雷魔法道具
|
||||||
|
|
||||||
registry 登记 **六种**(数据表未建,属待落地内容):显影尘、工兵令、探宝罗盘、探巢摆钟、地穴全图卷、爆破工兵包——四个常规单功能加两个稀有组合。MVP 不新增第七种。
|
registry 登记 **一套封闭清单**(数据表未建,属待落地内容):显影尘、工兵令、探宝罗盘、探巢摆钟、地穴全图卷、爆破工兵包——四个常规单功能加两个稀有组合。件数与登记现状以 `design/registry/entities.yaml` 为准。MVP 不新增。
|
||||||
|
|
||||||
待定一句:显影尘与地穴全图卷的原效果绑定已从设计中移除的地形变异类型(见[不做清单](05-不做清单.md)),两件的效果定位待重定;其余四件定义有效。
|
待定一句:显影尘与地穴全图卷的原效果绑定已从设计中移除的地形变异类型(见[不做清单](05-不做清单.md)),两件的效果定位待重定;其余四件定义有效。
|
||||||
|
|
||||||
## 增益与状态
|
## 增益与状态
|
||||||
|
|
||||||
**六种**(status_effects.tres),全部一轮有效、可叠层、战斗结束清空:
|
**一套封闭状态表**(`data/tables/status_effects.tres`),现行行集以表为准;全部一轮有效、可叠层、战斗结束清空。各状态的归属方、作用方向与表现幅度全幅见 status_effects.tres,本文不复述。语义层见[增益状态](systems/战斗循环/增益状态.md)。
|
||||||
|
|
||||||
| 状态 | 作用方 | 效果 |
|
MVP 不加新状态;扩容走 status_effects.tres 加行 + registry 登记。
|
||||||
|---|---|---|
|
|
||||||
| 增伤 | 主角 | 攻击 +50% |
|
|
||||||
| 护甲强化 | 主角 | 护甲等级 +1/层(×2 层)——掷点折扣阈值(2026-09-16 换装,原减伤 −30% 退役) |
|
|
||||||
| 失衡 | 主角 | 承伤 +25% |
|
|
||||||
| 伏击 | 敌方 | 每次攻击附加固定伤害 |
|
|
||||||
| 削弱 | 敌方 | 输出 −65%(标中巢穴的兑付) |
|
|
||||||
| 暴走 | 敌方 | 输出 +25% |
|
|
||||||
|
|
||||||
MVP 不加新状态。
|
|
||||||
|
|
||||||
## 暂不做 / 后续再说
|
## 暂不做 / 后续再说
|
||||||
|
|
||||||
垂直切片阶段明确砍掉或推迟的内容,写在这里防止回潮:
|
垂直切片阶段明确砍掉或推迟的内容,写在这里防止回潮:
|
||||||
|
|
||||||
- 更多关卡(N>2)与关内分支路线——第二层先按线性模板跑通
|
- 更多关卡(N>2)——第二层落地后,第三关起走扩展批流程
|
||||||
- 精英节点与词缀系统——只预留了字段位,不定义语义
|
- 精英节点与词缀系统——只预留了字段位,不定义语义
|
||||||
- 地形变异内容——岩浆/冰冻等只登记了名字,机制未定
|
- 地形变异内容——岩浆/冰冻等只登记了名字,机制未定
|
||||||
- 道具/增益之间的组合协同(遗物式联动)
|
- 道具/增益之间的组合协同(遗物式联动)
|
||||||
- 战后自动回复——回复只有道具与恢复点两个来源
|
- 战后自动回复——回复只有道具与恢复点两个来源
|
||||||
- 元进度与跨局成长
|
- 元进度与跨局成长
|
||||||
- 新敌种、新棋盘档位、更高密度、同深度多敌种混搭
|
- 新敌种、新棋盘档位、更高密度、同深度多敌种混搭
|
||||||
- 第七种魔法道具、第七种状态
|
- 魔法道具清单之外的新件、状态表之外的新状态
|
||||||
|
|
||||||
> 旧版参考:../archive/gdd-2026-09-14/gdd.md
|
> 旧版参考:../archive/gdd-2026-09-14/gdd.md
|
||||||
|
|
||||||
@@ -92,3 +66,4 @@ MVP 不加新状态。
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-15 | 顶层六文档成文:关卡 / 敌人 / 棋盘 / 战斗道具 / 辅助道具 / 状态六项体量 |
|
| v0.1 | 2026-09-15 | 顶层六文档成文:关卡 / 敌人 / 棋盘 / 战斗道具 / 辅助道具 / 状态六项体量 |
|
||||||
| v0.2 | 2026-09-15 | 雾格残留清理:棋盘、辅助道具、暂不做三处去掉"雾格已移除 / 不依赖雾格"的迁移期注记,改指[不做清单](05-不做清单.md)。体量数字不变 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:棋盘、辅助道具、暂不做三处去掉"雾格已移除 / 不依赖雾格"的迁移期注记,改指[不做清单](05-不做清单.md)。体量数字不变 |
|
||||||
|
| v0.3 | 2026-09-17 | 数值纪律收口批:全文改指路化体例——种数/行数/幅度不再抄配置,事实源改 data/tables/*.tres 与 registry;同步三批次失同步(两关落地/可选类删除/数值压缩) |
|
||||||
+16
-6
@@ -106,7 +106,7 @@
|
|||||||
|
|
||||||
#### 挖掘风险不等式对账破线
|
#### 挖掘风险不等式对账破线
|
||||||
|
|
||||||
**现状**:归档记录现行值链(防御增益时长 1、行值 −30、现行难度曲线)下两参考板形首版验算破线,多敌满配深度破线;破线已升格为曲线级约束,相关参数处禁独立调参联动网络;对账须在难度曲线调参批重跑
|
**现状**:归档记录现行值链(防御增益时长 1、行值 −30、现行难度曲线)(2026-09-17 注:defense_up −30 行已随 2026-09-16 AC 换装批退役,此值链为历史基线口径)下两参考板形首版验算破线,多敌满配深度破线;破线已升格为曲线级约束,相关参数处禁独立调参联动网络;对账须在难度曲线调参批重跑
|
||||||
|
|
||||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)提案,战斗结算闭合共裁
|
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)提案,战斗结算闭合共裁
|
||||||
|
|
||||||
@@ -172,11 +172,11 @@
|
|||||||
|
|
||||||
#### 伏击量纲与上限的联动复核
|
#### 伏击量纲与上限的联动复核
|
||||||
|
|
||||||
**现状**:附加值 3 为 provisional(量纲已定稿);上限与量纲、攻击基线存在联动,联调前须重跑方向性预检并同步 registry
|
**现状**:附加值 3 为 provisional(量纲已定稿);上限与量纲、攻击基线存在联动,联调前须重跑方向性预检并同步 registry。**2026-09-17 数值压缩批注记**:magnitude +3 → +1(量纲未变,参见 `data/tables/status_effects.tres` ambush 行);压缩批后 magnitude=1 状态下,方向性预检须按新值重跑(cap=4 下右臂 m_amb × min(AP,cap) 量级同步压缩——量级当量重核随数值压缩批同步推进)
|
||||||
|
|
||||||
**归属**:战斗结算对账闭合时裁决
|
**归属**:战斗结算对账闭合时裁决
|
||||||
|
|
||||||
**状态**:待办
|
**状态**:待办(2026-09-17 量级当量重核同步推进)
|
||||||
|
|
||||||
#### 零伤害 / 无威胁组合的跨字段护栏
|
#### 零伤害 / 无威胁组合的跨字段护栏
|
||||||
|
|
||||||
@@ -328,11 +328,21 @@
|
|||||||
|
|
||||||
#### heal 负向直伤的量级锚
|
#### heal 负向直伤的量级锚
|
||||||
|
|
||||||
**现状**:−4 为 provisional 直觉值,未过行动经济当量对账
|
**现状**:现行值 power=1(2026-09-17 数值压缩批从 −4 压缩到 −1,原 −4 为 provisional 直觉值未过行动经济当量对账);量级锚登记因压缩批提早落地,对账义务随难度曲线与Boss 调参批执行(与挖掘风险不等式 / 清图支配性两破线一并重跑)
|
||||||
|
|
||||||
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)调参批
|
**归属**:[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)调参批,与战斗结算 / 地图战斗资源 联动
|
||||||
|
|
||||||
**状态**:待办
|
**状态**:已部分收口(2026-09-17)——power=1 已落地;量级当量对账待难度曲线与Boss 调参批执行
|
||||||
|
|
||||||
|
#### 雷格与安全格的资源分布差异化(Alpha 批)
|
||||||
|
|
||||||
|
**现状**:现行雷安同池——安全格与雷格从同一类型池、同一权重分布摇定类型身份(结构冻结项,地图战斗资源 v0.4 七项之一)。用户 2026-09-17 拍板要做这件差异化的事,定位 **Alpha 版本**上线;垂直切片期先「把游戏做完整」不动结构(读数基线刚被护甲换装+技能池批与数值压缩批归零,验收重测与真人试玩未跑)。调研底座已交付:[proposal-reward-cell-differentiation-2026-09-17.md](../research/proposal-reward-cell-differentiation-2026-09-17.md)——三条候选路径(双池切分〔旧提案 mine_cell 有成案可翻〕/ 单池双列 weight_mine / 修饰位摇后过滤);差异化必破「雷安同池」冻结项、走 GDD 修订流程(用户已明示冻结约束执行侧不约束 owner,允许下破冻结即合法修订);纯权重调整零破冻结但有 9 处连带同步位(含 2 处 v0.7 漏网过期注释实证);外部无「同池不同权」中间态先例
|
||||||
|
|
||||||
|
**前置**:① 验收批读数重测与真人试玩先跑——差异化核心未知数(玩家是否利用类型分布先验绕雷/追格)只有真人数据能回答;② 拍掉调研报告第 8 章八个待决项(差异化区分的轴 / 雷·安当量分化后的行动经济条款③⑤与恒等式对账窗口 / heal 权重整数档位 / tier_min_buff 口径 / 同步流程口径扩充等)后出定稿提案
|
||||||
|
|
||||||
|
**归属**:[地图战斗资源](systems/战斗循环/地图战斗资源.md)修订批(定稿提案 + GDD 修订)与切片实施批(挂 Alpha);[行动经济](systems/排雷循环/行动经济.md)与[难度曲线与Boss](systems/冒险循环/难度曲线与Boss.md)对账联动
|
||||||
|
|
||||||
|
**状态**:待办(方向已拍板 2026-09-17;实施窗口 = Alpha)
|
||||||
|
|
||||||
### 战斗表现
|
### 战斗表现
|
||||||
|
|
||||||
|
|||||||
@@ -112,21 +112,21 @@ MVP 的序列是两关线性:第一关是地牢基线,第二关在基线上
|
|||||||
战斗入参: 每战交给战斗的上参 = 当前生命、生效上限
|
战斗入参: 每战交给战斗的上参 = 当前生命、生效上限
|
||||||
```
|
```
|
||||||
|
|
||||||
| 变量 | 含义 | 现行值 |
|
| 变量 | 含义 | 行值出处 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 生效上限 | 基础上限 + 大奖励累加提升 | 基础上限读英雄表 |
|
| 生效上限 | 基础上限 + 大奖励累加提升 | 基础上限读英雄表 |
|
||||||
| 恢复比例 | 恢复点回复生效上限的百分比,逐关配置 | 30(provisional) |
|
| 恢复比例 | 恢复点回复生效上限的百分比,逐关配置 | 读关卡表 rest_heal_pct(provisional) |
|
||||||
| 上限提升 | 每次大奖励的生命上限加成 | 10(provisional) |
|
| 上限提升 | 每次大奖励的生命上限加成 | 读配置表(provisional) |
|
||||||
|
|
||||||
示例轨迹(基础上限 50,示例数值均为 provisional):
|
示例轨迹(纯符号示例、不代具体数值;现行行值读英雄表、关卡表与冒险表,registry 为准):
|
||||||
|
|
||||||
| 时刻 | 账本读数 |
|
| 时刻 | 账本读数 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 冒险开始 | 50/50 |
|
| 冒险开始 | 满血 H₀ / 上限 H₀ |
|
||||||
| 逐场战后(示例) | 43、31、24、17 |
|
| 逐场战后 | 递减序列 H₁ > H₂ > …(示例不代数) |
|
||||||
| 恢复点(50 × 30% = 15) | min(17 + 15, 50) = 32 |
|
| 恢复点 | min(H₂ + floor(H₀ × 恢复比例 ÷ 100), H₀) |
|
||||||
| 关底 Boss 胜后余 8,兑大奖励 | 上限 60、生命 60 |
|
| 关底 Boss 胜后,兑大奖励 | 上限 H₀+Δ、生命 = H₀+Δ |
|
||||||
| 下一关开局 | 60/60 满血 |
|
| 下一关开局 | (H₀+Δ) / (H₀+Δ) 满血 |
|
||||||
|
|
||||||
冒险内没有其他跨关遗留物:增益随战斗结束清空(归战斗结算)、道具库存随关卡结束清空(由关卡节点地图在收束点编排)、储备行动点随战斗结束清零(归[行动经济](../排雷循环/行动经济.md))。冒险层真正跨关留下的,只有这本生命账与冒险摘要。
|
冒险内没有其他跨关遗留物:增益随战斗结束清空(归战斗结算)、道具库存随关卡结束清空(由关卡节点地图在收束点编排)、储备行动点随战斗结束清零(归[行动经济](../排雷循环/行动经济.md))。冒险层真正跨关留下的,只有这本生命账与冒险摘要。
|
||||||
|
|
||||||
@@ -136,13 +136,13 @@ MVP 的序列是两关线性:第一关是地牢基线,第二关在基线上
|
|||||||
|
|
||||||
| 件 | 内容 | 生效方式 |
|
| 件 | 内容 | 生效方式 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 生命上限 +10 | 生效上限累加提升 | 经战斗开始入参的覆盖值通道,对后续每战生效 |
|
| 生命上限提升(行值读表) | 生效上限累加提升 | 经战斗开始入参的覆盖值通道,对后续每战生效 |
|
||||||
| 血回满 | 生命 = 提升后的生效上限 | 直接写生命账本 |
|
| 血回满 | 生命 = 提升后的生效上限 | 直接写生命账本 |
|
||||||
| 钥石入账 +10 | 在冒险摘要里记一笔 | 数值进摘要,消费方归元进度 |
|
| 钥石入账(行值读表) | 在冒险摘要里记一笔 | 数值进摘要,消费方归元进度 |
|
||||||
|
|
||||||
最后一关通关不发大奖励:没有下一战可受益——只做冒险完成结算,钥石照记。设计意图:清库之后才兑付、末关不兑付,都是从"奖励只朝下一战生效"这一条推出来的。
|
最后一关通关不发大奖励:没有下一战可受益——只做冒险完成结算,钥石照记。设计意图:清库之后才兑付、末关不兑付,都是从"奖励只朝下一战生效"这一条推出来的。
|
||||||
|
|
||||||
三件数值(+10 / +10)为 provisional。上限提升的值锚与上调约束(+10 生命 ≈ +1 轮的换算率锚,上调须重扫第二关通关率带)归[难度曲线与Boss](难度曲线与Boss.md);钥石入账的消费归[元进度](元进度.md)。2026-09-17 用户拍板:本件与元进度钥石为**同一资源**(原「代币」概念退役)——钥石渠道有二:关卡大奖励入账与关底 Boss 掉落;产出细则与量级配比归[元进度](元进度.md)设计批。
|
三件数值为 provisional,行值读冒险表 level_clear_hp_bonus / keystone_per_level(registry 为准)。上限提升的值锚与上调约束(换算率估算见 registry / 调参日志,上调须重扫第二关通关率带)归[难度曲线与Boss](难度曲线与Boss.md);钥石入账的消费归[元进度](元进度.md)。2026-09-17 用户拍板:本件与元进度钥石为**同一资源**(原「代币」概念退役)——钥石渠道有二:关卡大奖励入账与关底 Boss 掉落;产出细则与量级配比归[元进度](元进度.md)设计批。
|
||||||
|
|
||||||
### 失败重开与主种子:倒下即终,重开即全新一轮
|
### 失败重开与主种子:倒下即终,重开即全新一轮
|
||||||
|
|
||||||
@@ -223,9 +223,9 @@ MVP 的序列是两关线性:第一关是地牢基线,第二关在基线上
|
|||||||
| 参数 | 域 | 现行值 | 说明 |
|
| 参数 | 域 | 现行值 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 关卡行集(关数与节点链模板) | 关卡表逐关行 | 第一关现行,第二关随扩展批 | 加关 = 内容批(链行 + 敌我数值 + 新元素同批);MVP 链模板 = 两战 → 奖励 → 两战 → 恢复 → 关底 Boss(7 节点,战斗深度 5) |
|
| 关卡行集(关数与节点链模板) | 关卡表逐关行 | 第一关现行,第二关随扩展批 | 加关 = 内容批(链行 + 敌我数值 + 新元素同批);MVP 链模板 = 两战 → 奖励 → 两战 → 恢复 → 关底 Boss(7 节点,战斗深度 5) |
|
||||||
| 恢复比例 | int [0,100],逐关行 | 30(provisional) | 恢复点回复生效上限的百分比;随上限加成同步放大;100 = 恢复点变全满泉,0 = 死节点 |
|
| 恢复比例 | int [0,100],逐关行 | 见 level.tres rest_heal_pct(provisional) | 恢复点回复生效上限的百分比;随上限加成同步放大;100 = 恢复点变全满泉,0 = 死节点 |
|
||||||
| 上限提升 | int [0,999],冒险表单行全局 | 10(provisional) | 大奖励的生命上限加成;值锚与上调约束归难度曲线与Boss |
|
| 上限提升 | int [0,999],冒险表单行全局 | 见 adventure_table level_clear_hp_bonus(provisional) | 大奖励的生命上限加成;值锚与上调约束归难度曲线与Boss |
|
||||||
| 每关钥石入账 | int [0,999],冒险表单行全局 | 10(provisional) | 每通关一关在摘要记的值;消费方归元进度 |
|
| 每关钥石入账 | int [0,999],冒险表单行全局 | 见 adventure_table keystone_per_level(provisional) | 每通关一关在摘要记的值;消费方归元进度 |
|
||||||
|
|
||||||
结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励三件构成、一冒险一主种子、收束点先清库后宣布的次序。
|
结构冻结(非调参项):序列线性无跳关、关底 Boss 恒为末节点、倒下即冒险终、大奖励三件构成、一冒险一主种子、收束点先清库后宣布的次序。
|
||||||
|
|
||||||
@@ -258,3 +258,4 @@ MVP 的序列是两关线性:第一关是地牢基线,第二关在基线上
|
|||||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||||
| v0.2 | 2026-09-15 | 雾格残留清理:第二关"解锁新元素"条目改引用「已从设计中移除的机制」(见不做清单),并明确第二关层名未定稿、随第二关内容批重定。关卡序列与节点模板不变 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:第二关"解锁新元素"条目改引用「已从设计中移除的机制」(见不做清单),并明确第二关层名未定稿、随第二关内容批重定。关卡序列与节点模板不变 |
|
||||||
| v0.3 | 2026-09-17 | 代币→钥石统一拍板(用户裁决):大奖励第三件「代币记账 +10」改「钥石入账 +10」——与元进度钥石同一资源(渠道 = 关卡大奖励入账与 Boss 掉落),「代币」措辞退役;调参表字段名、验收标准、依赖表同步。数值与机制不变 |
|
| 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) |
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
| 关内坡度(节点深度) | 同敌种数值平缓上移,深度也可表达为敌人成群 | 数量是比单体质变更优先的深度表达:保持技能池 EV 读数不变(权重即旋钮、EV 重锚随批登记)、总量受控 |
|
| 关内坡度(节点深度) | 同敌种数值平缓上移,深度也可表达为敌人成群 | 数量是比单体质变更优先的深度表达:保持技能池 EV 读数不变(权重即旋钮、EV 重锚随批登记)、总量受控 |
|
||||||
| Boss 与精英修饰(预留第三轴) | Boss 走最深深度直填行;精英只有字段命名空间预留 | Boss 不走修饰表;修饰乘数表 MVP 为空表、零行为,首个使用场景 = 精英节点(随[关卡节点地图](关卡节点地图.md)定稿联动);数值所有权在本系统,[棋盘生成](../排雷循环/棋盘生成.md)只按表生成 |
|
| Boss 与精英修饰(预留第三轴) | Boss 走最深深度直填行;精英只有字段命名空间预留 | Boss 不走修饰表;修饰乘数表 MVP 为空表、零行为,首个使用场景 = 精英节点(随[关卡节点地图](关卡节点地图.md)定稿联动);数值所有权在本系统,[棋盘生成](../排雷循环/棋盘生成.md)只按表生成 |
|
||||||
|
|
||||||
**结论**:关内坡度 = 每深一档,同敌种生命按 5%–20% 线性上移;关间台阶 = 相邻关同敌种基准乘 1.3–1.6。
|
**结论**:关内坡度 = 每深一档同敌种基准上移,或按"深度也可表达为敌人成群"改由数量承载——单体生命随深度的具体走向以 `enemy.tres` 行值为准(数量优先于单体;s_hp 线性式为建模工具,现行行值不承诺随深度单调上移);关间台阶 = 相邻关同敌种基准乘 1.3–1.6(域语义如上;s_hp / k_L 现行行值读 `enemy.tres`,域登记见 registry)。
|
||||||
|
|
||||||
```
|
```
|
||||||
hp_D = round( hp_0 × (1 + s_hp × D) ) s_hp ∈ [0.05, 0.20]
|
hp_D = round( hp_0 × (1 + s_hp × D) ) s_hp ∈ [0.05, 0.20]
|
||||||
@@ -95,7 +95,7 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
|||||||
| 输出峰值 / 谷值 | 玩家最好 / 最坏一轮的总输出(分量构成同上) |
|
| 输出峰值 / 谷值 | 玩家最好 / 最坏一轮的总输出(分量构成同上) |
|
||||||
| 一次性伤害 | 清障炸药一类当场引爆的大额伤害 |
|
| 一次性伤害 | 清障炸药一类当场引爆的大额伤害 |
|
||||||
|
|
||||||
护甲等级带宽口径(2026-09-16 定稿落地):结算换算层引入护甲等级掷点(1d20 必中、低掷按缺口三档折扣、nat20 暴击 ×2 恒全额,规则归[战斗结算](../战斗循环/战斗结算.md))后,受伤与输出两侧的峰值 / 谷值构成各含一条掷点带宽——同一刀的最坏 / 最好掷点(含暴击档与折扣档)落进谷值 / 峰值,带宽补扫义务含暴击档与折扣档。**换装点锚定**:基准 AC10 自带约 −21% 敌方输出期望(AC11 25% / AC12 28.75%),对比被整体退役的 defense_up 满层 −60% 减伤墙是结构性削弱,且伤害下限(任何攻击落地 ≥1)使"零承伤轮"结构性消失——该方向性偏移与下方已登记的加难杠杆扫描合并处理,不单独重调行值;主角行值 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批)。"零红档"验收与三档判定式不变。
|
护甲等级带宽口径(2026-09-16 定稿落地):结算换算层引入护甲等级掷点(1d20 必中、低掷按缺口三档折扣、nat20 暴击恒全额——档位、折扣与暴击倍率读 `settlement.tres`,规则语义归[战斗结算](../战斗循环/战斗结算.md))后,受伤与输出两侧的峰值 / 谷值构成各含一条掷点带宽——同一刀的最坏 / 最好掷点(含暴击档与折扣档)落进谷值 / 峰值,带宽补扫义务含暴击档与折扣档。**换装点锚定**:基准护甲等级自带对敌方输出期望的结构性削减(具体读数按判定式随行值复算),对比被整体退役的 defense_up 减伤墙是结构性削弱,且伤害下限(任何攻击落地均不为零,下限值读 `settlement.tres`)使"零承伤轮"结构性消失——该方向性偏移与下方已登记的加难杠杆扫描合并处理,不单独重调行值;主角与敌方首关护甲等级行值读配置表(正式行值归怪物设定批)。"零红档"验收与三档判定式不变。
|
||||||
|
|
||||||
关级通关恒等式:**一关打下来,玩家总输出 ≈ 全关敌方总生命期望 ×(1 + 缓冲);其中奖励侧贡献的输出占比须落在 [15%, 40%] 带内。**
|
关级通关恒等式:**一关打下来,玩家总输出 ≈ 全关敌方总生命期望 ×(1 + 缓冲);其中奖励侧贡献的输出占比须落在 [15%, 40%] 带内。**
|
||||||
|
|
||||||
@@ -112,8 +112,8 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
|||||||
|
|
||||||
| 带 | 定稿口径 | 含义 |
|
| 带 | 定稿口径 | 含义 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 第一关通关率带 | 基线档(无元进度加成)通关率 ∈ [30%, 50%] | 首关要明显吃紧但多数玩家能过;现行扫描读数 60% 越上界,加难扫描未执行(见「待办」) |
|
| 第一关通关率带 | 基线档(无元进度加成)通关率 ∈ [10%, 25%](2026-09-16/17 用户拍板,旧带 [30%, 50%] 作废;压缩批后旧读数失效,重测随验收批另批登记) | 首关要明显吃紧但多数玩家能过 |
|
||||||
| 通关余量带 | 通关者通关时剩余生命的 p90 ≤ 13 且 p10 ≥ 3 | **通关余量** = 通关瞬间还剩多少血。余量太肥说明赢得太从容,压生存侧;太瘦说明"剩一两滴血惨胜"成常态,抬治疗供给或恢复点收益 |
|
| 通关余量带 | 通关者通关时剩余生命的 p90 / p10 按现生命轴上限百分比表达(压缩前绝对血量带已作废;界值重标随验收批) | **通关余量** = 通关瞬间还剩多少血。余量太肥说明赢得太从容,压生存侧;太瘦说明"剩一两滴血惨胜"成常态,抬治疗供给或恢复点收益 |
|
||||||
| 第一关形态带 | 教学位绿档 + 中段黄档 + Boss 黄档不红 | **形态带**管一关内各战三档判定的排布形状:第一战必须稳过,中段有输的可能,Boss 战紧但不许是配置事故 |
|
| 第一关形态带 | 教学位绿档 + 中段黄档 + Boss 黄档不红 | **形态带**管一关内各战三档判定的排布形状:第一战必须稳过,中段有输的可能,Boss 战紧但不许是配置事故 |
|
||||||
|
|
||||||
更高加成档(攻击翻倍、三倍)的通关率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),复验义务随最近的减伤调整批执行。
|
更高加成档(攻击翻倍、三倍)的通关率带随档位放宽(翻倍档第一关 ≥95%),其机制承载是生存链区间的平移而不是另拍一套数字(平移换算见调参联动一节)。此外另有一条期望承伤占比带(普通场承伤不超过生命上限两成、Boss 场不超过五成,provisional),复验义务随最近的减伤调整批执行。
|
||||||
@@ -128,26 +128,21 @@ MVP 行值并不逐式现算,而是按此式量级直填经切片验证过的
|
|||||||
boss_hp ≈ round( Σ普通战斗敌方生命期望 × r_boss ) r_boss ∈ [0.5, 1.1]
|
boss_hp ≈ round( Σ普通战斗敌方生命期望 × r_boss ) r_boss ∈ [0.5, 1.1]
|
||||||
```
|
```
|
||||||
|
|
||||||
| 变量 | 现行值 | 说明 |
|
| 变量 | 口径 | 说明 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Σ普通战斗敌方生命期望 | 153.5(第一关,按数量区间期望逐行合计) | 全关非 Boss 节点敌方生命合计,逐数见下方验算 |
|
| Σ普通战斗敌方生命期望 | 按数量区间期望逐行合计(区间中点),行值读敌人表 | 全关非 Boss 节点敌方生命合计;逐数闭合随调参批在调参日志留档 |
|
||||||
| r_boss 现值 | 150 ÷ 153.5 ≈ 0.98,带内 | 对应食人魔酋长 150 生命(provisional) |
|
| r_boss | 域 [0.5, 1.1] | Boss 生命 = Σ × r_boss;Boss 行值读敌人表(provisional) |
|
||||||
| 加难走廊 | [1.1, 1.35](对应 Boss 生命 180–207) | 通关率压带的首选杠杆候选;扫描未执行,处 provisional-pending-scan(见「待办」) |
|
| 加难走廊 | [1.1, 1.35] | 通关率压带的首选杠杆候选;扫描未执行,处 provisional-pending-scan(见「待办」) |
|
||||||
|
|
||||||
Σ 的 153.5 逐数闭合如下——数量走开战掷骰的区间期望(区间中点),教学位地精同样掷骰、按期望 1.5 只计入:
|
Σ 的逐数闭合口径:数量走开战掷骰的区间期望(区间中点),教学位同样掷骰、按区间期望计入;各坐标行值一律读敌人表,本文不重复登记具体数值——防与配置双写失同步。
|
||||||
|
|
||||||
```
|
Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板参数仍受[棋盘生成](../排雷循环/棋盘生成.md)的可推理率绝对锚约束——加难不许加到不可推理。Boss 战胜利即关卡通关,编排归[冒险结构](冒险结构.md);登场仪式感归[战斗表现](../战斗循环/战斗表现.md)。
|
||||||
Σ = 1.5×24(D0 地精 ×[1,2])+ 2.5×13(D1 地精一伙 ×[2,3])+ 1×40(D2 熊地精 ×1)+ 2.5×18(D3 熊地精双雄 ×[2,3])
|
|
||||||
= 36 + 32.5 + 40 + 45 = 153.5
|
|
||||||
```
|
|
||||||
|
|
||||||
Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍受[棋盘生成](../排雷循环/棋盘生成.md)的可推理率绝对锚约束——加难不许加到不可推理。Boss 战胜利即关卡通关,编排归[冒险结构](冒险结构.md);登场仪式感归[战斗表现](../战斗循环/战斗表现.md)。
|
|
||||||
|
|
||||||
### 护甲克制:本文锁行值,矩阵本体归战斗结算
|
### 护甲克制:本文锁行值,矩阵本体归战斗结算
|
||||||
|
|
||||||
三个首发敌种各配一档护甲类型——地精轻甲、熊地精魔法护甲、食人魔酋长重甲——构成"轻甲 → 魔法护甲 → 重甲"的教学梯度:玩家的克制手段随进度逐关解锁。
|
三个首发敌种各配一档护甲类型——地精轻甲、熊地精魔法护甲、食人魔酋长重甲——构成"轻甲 → 魔法护甲 → 重甲"的教学梯度:玩家的克制手段随进度逐关解锁。
|
||||||
|
|
||||||
攻击类型对护甲类型的克制倍率矩阵(克制 150% / 中性 100% / 被克 50%,provisional)是[战斗结算](../战斗循环/战斗结算.md)的甲效表,哪个攻击类型克哪档护甲由它定义,本文不重复。本文只锁两件事:敌种的护甲类型行值(见调参表),以及这份矩阵数值的调参所有权在本系统——敌种护甲变更必须复算 Boss 与普通战的击杀区间。
|
攻击类型对护甲类型的克制倍率矩阵(克制 / 中性 / 被克三档倍率读 `settlement.tres` 甲效表,provisional)是[战斗结算](../战斗循环/战斗结算.md)的甲效表,哪个攻击类型克哪档护甲由它定义,本文不重复。本文只锁两件事:敌种的护甲类型行值(见调参表),以及这份矩阵数值的调参所有权在本系统——敌种护甲变更必须复算 Boss 与普通战的击杀区间。
|
||||||
|
|
||||||
### 调参联动:禁独立调参网络与对账重跑义务
|
### 调参联动:禁独立调参网络与对账重跑义务
|
||||||
|
|
||||||
@@ -161,7 +156,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
| 每轮行动点 ↔ 停手转存规模 | [行动经济](../排雷循环/行动经济.md) | 联动评估记录归本文,调参所有权在行动经济 |
|
| 每轮行动点 ↔ 停手转存规模 | [行动经济](../排雷循环/行动经济.md) | 联动评估记录归本文,调参所有权在行动经济 |
|
||||||
| 削弱强度 ↔ 当量锚 | [增益状态](../战斗循环/增益状态.md)、[战斗结算](../战斗循环/战斗结算.md) | 联动值禁独立调参,修订须重跑锚对照 |
|
| 削弱强度 ↔ 当量锚 | [增益状态](../战斗循环/增益状态.md)、[战斗结算](../战斗循环/战斗结算.md) | 联动值禁独立调参,修订须重跑锚对照 |
|
||||||
| 护甲类型 ↔ 充能奖励(投桶与量) ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间;改充能的投桶或量属奖励侧改动,须重跑本表数值 |
|
| 护甲类型 ↔ 充能奖励(投桶与量) ↔ 克制矩阵 | [战斗结算](../战斗循环/战斗结算.md) | 敌种护甲变更须复算击杀区间;改充能的投桶或量属奖励侧改动,须重跑本表数值 |
|
||||||
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档 / nat20 ×2),护甲等级行值变更仍须复算生存链区间并同步 registry——主角 10 / 敌方首关 0 均暂定,敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
|
| 护甲等级 ↔ 攻击基线 ↔ 区间带宽 | [战斗结算](../战斗循环/战斗结算.md) | 敌种与主角的护甲等级行值变更须复算生存链区间(掷点带宽随折扣档位与攻击基线同向放大);掷点形式与档位已定稿(d20 三档——档位读 `settlement.tres`;nat20 暴击形式留档,倍率同表),护甲等级行值变更仍须复算生存链区间并同步 registry——现行行值读 `hero.tres` / `enemy.tres` 的 armor_class 列(均暂定),敌方正式行值随怪物设定批投值、与加难杠杆扫描合并调 |
|
||||||
|
|
||||||
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收,其中挖掘风险不等式与清图支配性两条的现行验算已破线或存在缺口(现状见其「待办」),重跑义务落在本系统的下一次调参批执行——这是本系统当前最优先的调参义务。完美排雷乘数的调参权在本系统。
|
五条经济契约的对账由[战斗结算](../战斗循环/战斗结算.md)闭合验收,其中挖掘风险不等式与清图支配性两条的现行验算已破线或存在缺口(现状见其「待办」),重跑义务落在本系统的下一次调参批执行——这是本系统当前最优先的调参义务。完美排雷乘数的调参权在本系统。
|
||||||
|
|
||||||
@@ -188,7 +183,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
## P0 最小闭环
|
## P0 最小闭环
|
||||||
|
|
||||||
1. 设计期:按两条轴把行值直填敌人、主角、棋盘参数、奖励各数据表——运行时零公式,游戏只读表。
|
1. 设计期:按两条轴把行值直填敌人、主角、棋盘参数、奖励各数据表——运行时零公式,游戏只读表。
|
||||||
2. 冒险推进到战斗节点,[战斗结算](../战斗循环/战斗结算.md)发起战斗:开战时按行值的数量区间与攻击浮动,用封闭随机流掷定本战实际值;教学位与新敌种首遇位同样走这套掷骰——教学位地精的数量也是掷出来的区间([1,2]),只是区间要求它在任何掷骰结果下都满足绿档。
|
2. 冒险推进到战斗节点,[战斗结算](../战斗循环/战斗结算.md)发起战斗:开战时按行值的数量区间与攻击浮动,用封闭随机流掷定本战实际值;教学位与新敌种首遇位同样走这套掷骰——教学位的数量也是掷出来的区间(行值读表),只是区间要求它在任何掷骰结果下都满足绿档。
|
||||||
3. 各表按坐标行值实例化敌人与棋盘,整场战斗按既有机制运作——本系统不在场。
|
3. 各表按坐标行值实例化敌人与棋盘,整场战斗按既有机制运作——本系统不在场。
|
||||||
4. 战斗产出实际战绩(承伤、输出、治疗、通关余量),供调参期消费。
|
4. 战斗产出实际战绩(承伤、输出、治疗、通关余量),供调参期消费。
|
||||||
5. 调参期批量扫描复算:通关率带、三档区间判定、通关余量带、输出占比带、关级恒等式。
|
5. 调参期批量扫描复算:通关率带、三档区间判定、通关余量带、输出占比带、关级恒等式。
|
||||||
@@ -198,7 +193,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
|
|
||||||
| 优先级 | 内容 | 后置原因 |
|
| 优先级 | 内容 | 后置原因 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减 0.6),扫描未执行;护甲等级换装点锚定(基准 AC10 自带约 −21% 敌方输出期望 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已随批实测,见 v0.7) |
|
| P1 | 加难杠杆扫描落带 | 候选杠杆已登记(血量锚走廊、群战上探、注入衰减上调候选),扫描未执行;护甲等级换装点锚定(基准护甲等级自带敌方输出期望的结构性削减 + 减伤墙退役 + 伤害下限)的方向性偏移并入本扫描一并调带(带宽补扫含暴击档与折扣档);落带前现行行值维持 provisional-pending-scan。第二关行集随分支节点图批落地后并入本扫描(L2 读数基线/加成档已随批实测,见 v0.7) |
|
||||||
| P1 | 挖掘风险不等式与清图支配性对账重跑 | 两条对账现行破线 / 缺口,义务落在本文调参批(现状见[战斗结算](../战斗循环/战斗结算.md)「待办」) |
|
| P1 | 挖掘风险不等式与清图支配性对账重跑 | 两条对账现行破线 / 缺口,义务落在本文调参批(现状见[战斗结算](../战斗循环/战斗结算.md)「待办」) |
|
||||||
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
|
| P1 | 真人通关率修正系数标定 | 带按模拟口径定义;试玩批次实测真人显著强于模拟者,系数待后续试玩批次定量 |
|
||||||
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(见「待办」) |
|
| P1 | 完美策略档的结构性加难杠杆 | 数值杠杆对完美档已被实测证伪,结构候选未裁决(见「待办」) |
|
||||||
@@ -208,62 +203,48 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
|
|
||||||
## 调参表
|
## 调参表
|
||||||
|
|
||||||
本系统是全项目行值最多的系统,本表只收关键行。数值纪律:正文定规则与取值域,行值进数据表——切片数据表位于 `prototypes/dungeon-sweeper-vertical-slice/data/tables/`(enemy、board_gen、hero、reward 等);已锁数值以 [registry 的对应条目](../../../registry/entities.yaml) 为准。
|
本系统是全项目行值最多的系统。数值纪律(2026-09-17 降级批定稿):**正文与调参表只定规则、取值域与口径,具体行值一律读配置表(切片 `prototypes/dungeon-sweeper-vertical-slice/data/tables/` 的 enemy / skills / hero / board_gen / reward / settlement / status_effects 等),已锁数值以 [registry 的对应条目](../../../registry/entities.yaml) 为准,本文不登记具体数值——防双写失同步**(切片 `.tres` 数值压缩批后文档行值滞后,双写失同步已被实证)。
|
||||||
|
|
||||||
首发行值几乎全部 provisional,其中加难相关数值处于 provisional-pending-scan(扫描未执行);完整行集读表,不在此整表搬运。
|
首发行值几乎全部 provisional,其中加难相关数值处于 provisional-pending-scan(扫描未执行);完整行集读表,不在此整表搬运。
|
||||||
|
|
||||||
敌人表行值(第一关五行 + 第二关图版七行,全部 provisional;第二关 = 2026-09-17 分支节点图批投放,生态走 DND 幽暗地域方向):
|
敌人表行值(行集与坐标覆盖随批次扩展,行值读 `enemy.tres`——本文只登记行模板与坐标语义):
|
||||||
|
|
||||||
| 坐标 | 敌种(数据键) | 生命 | 攻击(浮动区间) | 数量 | 技能池(权重) | 护甲 |
|
| 坐标 | 敌种(数据键) | 生命 | 攻击(浮动区间) | 数量 | 技能池(权重) | 护甲 |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| 第一关 D0(教学位) | 地精 goblin | 24 | 7 [4,10] | [1,2] | 普攻 9 · 突刺 1 | 轻甲 |
|
| 关卡序号 × 节点深度 | enemy_id + display_name | hp | atk / [atk_min, atk_max] | [unit_count, unit_count_max] | {skill_id: weight} | armor_type + armor_class |
|
||||||
| 第一关 D1 | 地精 goblin | 13 | 5 [2,8] | [2,3] | 普攻 9 · 突刺 1 | 轻甲 |
|
|
||||||
| 第一关 D2(首遇固定) | 熊地精 bugbear | 40 | 9 [6,12] | 1 | 普攻 6 · 蓄力 2 · 重击 2 | 魔法护甲 |
|
|
||||||
| 第一关 D3 | 熊地精 bugbear | 18 | 6 [3,9] | [2,3] | 普攻 6 · 蓄力 2 · 重击 2 | 魔法护甲 |
|
|
||||||
| 第一关 D4(Boss) | 食人魔酋长 ogre_chief | 150 | 9 [6,12] | 1 | 普攻 6 · 重击 2 · 硬化 2 | 重甲 |
|
|
||||||
| 第二关 编号 0(锚行·首遇教学位) | 熊地精 bugbear | 30 | 7 [4,10] | 1 | 普攻 6 · 突刺 1 · 重击 2 | 魔法护甲 |
|
|
||||||
| 第二关 编号 1 | 熊地精猎群 bugbear | 15 | 5 [3,7] | [2,3] | 普攻 6 · 突刺 1 · 重击 2 | 魔法护甲 |
|
|
||||||
| 第二关 编号 4(首遇固定) | 巨蜘蛛 giant_spider | 14 | 5 [3,7] | 2 | 普攻 6 · 撕咬 2 · 蓄力 1 | 轻甲 |
|
|
||||||
| 第二关 编号 5 | 熊地精重击手 bugbear | 38 | 8 [5,11] | 1 | 普攻 5 · 突刺 2 · 重击 2 | 魔法护甲 |
|
|
||||||
| 第二关 编号 6 | 巨蜘蛛巢群 giant_spider | 12 | 4 [2,6] | [2,3] | 普攻 6 · 撕咬 2 · 蓄力 1 | 轻甲 |
|
|
||||||
| 第二关 编号 7 | 巨蜘蛛巢群 giant_spider | 13 | 5 [3,7] | [2,3] | 普攻 6 · 撕咬 2 · 蓄力 1 | 轻甲 |
|
|
||||||
| 第二关 编号 8(Boss) | 蛛化卓尔精灵 drider | 175 | 8 [5,11] | 1 | 普攻 6 · 重击 2 · 毒爆 2(独占技) | 重甲 |
|
|
||||||
|
|
||||||
第二关图版注记(分支节点图批):兄弟精 = bugbear 复用(幽暗地域部族设定——display_name 与第一关"熊地精"错开;池差异化改造 = 蓄力拍退役换突刺,复用共享技能行);巨蜘蛛 = 新敌种(群行倾向,数量区间 [2,3]、首遇位编号 4 固定 2 不加骰——首遇教学位纪律);蛛化卓尔精灵 = Boss 专属池(独占技毒爆 + 权重轮廓,血量 175 为 r_boss 口径 provisional 锚——定位本关最大单场消耗);护甲面:轻甲(蜘蛛)与魔法护甲(兄弟精)同关错开克制面,Boss 重甲。「兄弟精」称呼经用户 2026-09-17 确认 = 熊地精 bugbear;Boss 定名蛛化卓尔精灵(用户同日拍板)。节点编号 2 = 奖励点(直通空态)、3 = 恢复点(rest_heal_pct 行字段兑付)——不开战斗、无敌人/棋盘行。
|
第二关图版注记(分支节点图批):兄弟精 = bugbear 复用(幽暗地域部族设定——display_name 与第一关"熊地精"错开;池差异化改造 = 蓄力拍退役换突刺,复用共享技能行);巨蜘蛛 = 新敌种(群行倾向、首遇位固定数量不加骰——首遇教学位纪律);蛛化卓尔精灵 = Boss 专属池(独占技毒爆 + 权重轮廓,血量为 r_boss 口径 provisional 锚——定位本关最大单场消耗);护甲面:轻甲(蜘蛛)与魔法护甲(兄弟精)同关错开克制面,Boss 重甲。「兄弟精」称呼经用户 2026-09-17 确认 = 熊地精 bugbear;Boss 定名蛛化卓尔精灵(用户同日拍板)。节点编号 2 = 奖励点(直通空态)、3 = 恢复点(rest_heal_pct 行字段兑付)——不开战斗、无敌人/棋盘行。
|
||||||
|
|
||||||
单轮伏击授予上限 4(已定稿)。攻击浮动开战时掷定一次、整战持久;数量区间同流掷定,教学位(地精 ×[1,2])与首遇位都不豁免——没有区间上界的行自然取定值,那不是豁免,是区间宽度为零。
|
单轮伏击授予上限已定稿(行值读敌人表 advantage_per_round_cap)。攻击浮动开战时掷定一次、整战持久;数量区间同流掷定,教学位与首遇位都不豁免——没有区间上界的行自然取定值,那不是豁免,是区间宽度为零。
|
||||||
|
|
||||||
技能池投值(池权重/冷却/保底的所有权本文,机制归[敌人系统](../战斗循环/敌人系统.md),全部 provisional;建议池行值随 2026-09-16 敌人技能池批落地):
|
技能池投值(池权重/冷却/保底的所有权本文,机制归[敌人系统](../战斗循环/敌人系统.md);行值读 `skills.tres` 与 `enemy.tres` 的 pool,全部 provisional):
|
||||||
|
|
||||||
| 参数 | 现行值 | 说明 |
|
| 参数 | 说明 |
|
||||||
|---|---|---|
|
|
||||||
| 池权重 | 六敌种行集见上表(L1:地精 9/1 · 熊地精 6/2/2 · 酋长 6/2/2;L2:兄弟精 6/1/2 · 巨蜘蛛 6/2/1 · 重击手 5/2/2 · 蛛化卓尔精灵 6/2/2) | 权重即旋钮:抬特殊技权重 = 抬输出频率,EV 随之重锚 |
|
|
||||||
| 技能冷却(拍) | 突刺 2 · 撕咬 1 · 蓄力 3 · 重击 3 · 硬化 4 · 毒爆 4 · 普攻恒 0 | 普攻冷却恒 0 不可配(空池不可能的结构前提——域校验锁死);撕咬 = 与突刺同倍率错开冷却轴的高频小爆发轮廓;毒爆 = 蛛化卓尔精灵专属池独占技 |
|
|
||||||
| 保底 M | 4(全局单旋钮,技能表 pity_threshold) | 连续 M 拍执行普攻 → 下拍必出特殊技;地精这类单特殊技低权重池受保底支配(突刺率 10% → ~22%) |
|
|
||||||
| 池 EV 锚 | 静态份额:L1 地精 1.05 · 熊地精 1.00 · 酋长 1.00;L2 兄弟精 ≈1.28 · 巨蜘蛛 ≈1.11 · 重击手 ≈1.33 · 蛛化卓尔精灵 ≈1.67(权重期望口径) | 含闸长期速率实测(2026-09-16 实施批 ×5000 拍):地精 1.106 / 熊地精 1.000 / 酋长 1.024——L2 池静态份额偏移系冷却闸(撕咬 1 / 毒爆 4)拉低后的实际速率待抽样复核;EV 重锚与权重投值随本表修订 |
|
|
||||||
|
|
||||||
主角表与棋盘参数表(provisional):
|
|
||||||
|
|
||||||
| 表 | 行值 |
|
|
||||||
|---|---|
|
|---|---|
|
||||||
| 主角表 | 生命上限 50 · 基础攻击 6 · 护甲等级 10(暂定) |
|
| 池权重 | 权重即旋钮:抬特殊技权重 = 抬输出频率,EV 随之重锚;各敌种行集读表 |
|
||||||
| 棋盘参数(第一关 D0/D1) | 10×10 · 雷密度 0.25 · 可推理率目标 0.88 · 生成尝试上限 16 |
|
| 技能冷却(拍) | 逐技能行读表;普攻冷却恒 0 不可配(空池不可能的结构前提——域校验锁死);撕咬 = 与突刺同倍率错开冷却轴的高频小爆发轮廓;毒爆 = 蛛化卓尔精灵专属池独占技 |
|
||||||
| 棋盘参数(第一关 D2–D4,含 Boss) | 12×12 · 雷密度 0.25 · 可推理率目标 0.88 · 生成尝试上限 24 |
|
| 保底 M | 全局单旋钮,读技能表 pity_threshold;连续 M 拍执行普攻 → 下拍必出特殊技;单特殊技低权重池受保底支配 |
|
||||||
| 棋盘参数(第二关 编号 0/1/4/5/6/7/8,含 Boss) | 12×12 · 雷密度 0.25 · 可推理率目标 0.88 · 生成尝试上限 24(与第一关高档同值——密度/推理率轴差异化留给调参批;奖励点/恢复点不开战斗无板行) |
|
| 池 EV 锚 | 静态份额与含闸长期速率实测读数登记于调参日志(EV 重锚与权重投值随本表修订);L2 池含闸速率待抽样复核 |
|
||||||
|
|
||||||
战斗侧与奖励侧的关键投值(机制归对方、数值所有权本文,全部 provisional):
|
主角表与棋盘参数表(行值分别读 `hero.tres` 与 `board_gen.tres`,provisional):
|
||||||
|
|
||||||
| 参数 | 现行值 | 说明 |
|
| 表 | 字面 |
|
||||||
|
|---|---|
|
||||||
|
| 主角表 | 生命上限 / 基础攻击 / 护甲等级(armor_class) |
|
||||||
|
| 棋盘参数 | 板形 / 雷密度 / 可推理率目标 / 生成尝试上限(按关卡 × 节点深度坐标行存放;奖励点/恢复点不开战斗无板行) |
|
||||||
|
|
||||||
|
战斗侧与奖励侧的关键投值(机制归对方、数值所有权本文;行值读 `settlement.tres` / `reward.tres` / `status_effects.tres`,全部 provisional——本文只登记口径与取值域):
|
||||||
|
|
||||||
|
| 参数 | 取值域 / 口径 | 说明 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 血量锚比率 r_boss | 0.98(带内) | 带 [0.5, 1.1];加难走廊 [1.1, 1.35] 待扫描 |
|
| 血量锚比率 r_boss | [0.5, 1.1];加难走廊 [1.1, 1.35] 待扫描 | Boss 生命锚 |
|
||||||
| 开格充能(现投穿刺桶)每格 / 单轮计数上限 | 1 / 8 | 充能奖励定义归[战斗结算](../战斗循环/战斗结算.md);投哪个桶是奖励内容,可改 |
|
| 开格 / 标中充能 | 每格 / 每雷与单轮计数上限读表 | 充能奖励定义归[战斗结算](../战斗循环/战斗结算.md);投哪个桶是奖励内容,可改 |
|
||||||
| 标中充能(现投魔法桶)每雷 | 2 | 同上 |
|
| 克制矩阵 | 克制 / 中性 / 被克三档,读 `settlement.tres` 甲效表 | 消费归[战斗结算](../战斗循环/战斗结算.md) |
|
||||||
| 克制矩阵 | 克制 150 / 中性 100 / 被克 50 | 消费归[战斗结算](../战斗循环/战斗结算.md) |
|
| 完美排雷乘数 | 读表 | 调参权本文 |
|
||||||
| 完美排雷乘数 | 200(翻倍) | 调参权本文 |
|
| 当量参考敞口 | 读表 | 变更触发全量对账重跑 |
|
||||||
| 当量参考敞口 | 12 | 变更触发全量对账重跑 |
|
| 注入概率初值 / 衰减 | 读表 | 注入机制归[地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||||
| 注入概率初值 / 衰减 | 0.4 / 0.5(加难候选 0.6) | 注入机制归[地图战斗资源](../战斗循环/地图战斗资源.md) |
|
| 清障炸药威力区间 | 读表 | 清图槽当场引爆 |
|
||||||
| 清障炸药威力区间 | 25–55(中点 40) | 清图槽当场引爆 |
|
| 状态强度 | 读 `status_effects.tres`(掷点轴——2026-09-16 换装,原减伤退役) | 联动评估归本文,禁独立调参 |
|
||||||
| 状态强度 | 增伤 +50 / 护甲强化 +1 护甲等级(×2 层,掷点轴——2026-09-16 换装,原减伤 −30 退役) / 削弱 −65 / 伏击 +3(每层) | 联动评估归本文,禁独立调参 |
|
|
||||||
|
|
||||||
## 验收标准
|
## 验收标准
|
||||||
|
|
||||||
@@ -271,8 +252,8 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
- 零红档:全部行集经区间扫描,不存在"最好情况也打不过"的战斗组合。
|
- 零红档:全部行集经区间扫描,不存在"最好情况也打不过"的战斗组合。
|
||||||
- 教学位绿档:第一关第一战与各新敌种首遇位的区间判定为绿档。
|
- 教学位绿档:第一关第一战与各新敌种首遇位的区间判定为绿档。
|
||||||
- 形态带成立:第一关形态 = 教学位绿 + 中段黄 + Boss 黄不红。
|
- 形态带成立:第一关形态 = 教学位绿 + 中段黄 + Boss 黄不红。
|
||||||
- 通关率带:基线档通关率 ∈ [30%, 50%]——现行读数 60% 越上界,属已登记待执行项,扫描落带前不得视为达标。
|
- 通关率带:基线档通关率 ∈ [10%, 25%](2026-09-16/17 用户拍板,旧带 [30%, 50%] 作废)——压缩批后旧读数失效,重测随验收批另批登记,扫描落带前不得视为达标。
|
||||||
- 通关余量带:通关者剩余生命 p90 ≤ 13 且 p10 ≥ 3。
|
- 通关余量带:通关者剩余生命 p90 / p10 按现生命轴上限百分比表达,界值重标随验收批。
|
||||||
- 恒等式闭合:关级通关恒等式逐项对账闭合,残差 <5%(provisional 阈值);奖励输出占比 ∈ [15%, 40%]。
|
- 恒等式闭合:关级通关恒等式逐项对账闭合,残差 <5%(provisional 阈值);奖励输出占比 ∈ [15%, 40%]。
|
||||||
- Boss 锚在案:每个 Boss 行的血量锚比率记录在案且落在现行带内;越带须登记,不静默变更。
|
- Boss 锚在案:每个 Boss 行的血量锚比率记录在案且落在现行带内;越带须登记,不静默变更。
|
||||||
- 联动可审计:任何行值修订在调参日志留有对应联动组的联合检算记录;越带必须回滚或登记——禁止静默出带、禁止带病前进。
|
- 联动可审计:任何行值修订在调参日志留有对应联动组的联合检算记录;越带必须回滚或登记——禁止静默出带、禁止带病前进。
|
||||||
@@ -292,5 +273,7 @@ Boss 战的棋盘用本关最大板形(第一关为 12×12),板参数仍
|
|||||||
| v0.4 | 2026-09-15 | **护甲等级批(与战斗结算 / 敌人系统 / registry 同批登记)**:生存链区间模型补记护甲等级掷点带宽口径——峰值/谷值构成各含最坏/最好掷点带宽;EV 中性引入成文(期望伤害对齐现行表值、现行行值不重调,折扣档位与掷点形式定稿前区间扫描维持全额口径、带宽项随定稿批补扫,"零红档"验收与三档判定式不变);调参联动表新增"护甲等级 ↔ 攻击基线 ↔ 区间带宽"一行 |
|
| v0.4 | 2026-09-15 | **护甲等级批(与战斗结算 / 敌人系统 / registry 同批登记)**:生存链区间模型补记护甲等级掷点带宽口径——峰值/谷值构成各含最坏/最好掷点带宽;EV 中性引入成文(期望伤害对齐现行表值、现行行值不重调,折扣档位与掷点形式定稿前区间扫描维持全额口径、带宽项随定稿批补扫,"零红档"验收与三档判定式不变);调参联动表新增"护甲等级 ↔ 攻击基线 ↔ 区间带宽"一行 |
|
||||||
| v0.5 | 2026-09-16 | **护甲等级掷点批·定稿落地(与战斗结算 / 敌人系统 / registry / 切片代码同批)**:带宽口径改写为"换装点锚定"——掷点形式与档位定稿(d20 / 缺口 1-3→×0.75 · 4-7→×0.5 · 8+→×0.25 / nat20 暴击 ×2 恒全额),基准 AC10 自带约 −21% 敌方输出期望(AC11 25% / AC12 28.75%),对比退役的 defense_up 满层 −60% 减伤墙为结构性削弱 + 伤害下限使零承伤轮结构性消失,方向性偏移与加难杠杆扫描合并处理、不单独重调行值;带宽补扫义务含暴击档与折扣档(并入加难扫描批);护甲等级行值:主角 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批);调参联动表"护甲等级"行改定稿口径;调参表主角表行与状态强度行同步(减伤 −30 → 护甲强化 +1 AC ×2 层) |
|
| v0.5 | 2026-09-16 | **护甲等级掷点批·定稿落地(与战斗结算 / 敌人系统 / registry / 切片代码同批)**:带宽口径改写为"换装点锚定"——掷点形式与档位定稿(d20 / 缺口 1-3→×0.75 · 4-7→×0.5 · 8+→×0.25 / nat20 暴击 ×2 恒全额),基准 AC10 自带约 −21% 敌方输出期望(AC11 25% / AC12 28.75%),对比退役的 defense_up 满层 −60% 减伤墙为结构性削弱 + 伤害下限使零承伤轮结构性消失,方向性偏移与加难杠杆扫描合并处理、不单独重调行值;带宽补扫义务含暴击档与折扣档(并入加难扫描批);护甲等级行值:主角 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批);调参联动表"护甲等级"行改定稿口径;调参表主角表行与状态强度行同步(减伤 −30 → 护甲强化 +1 AC ×2 层) |
|
||||||
| v0.6 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / 增益状态 / registry / 切片代码同批)**:曲线纪律两处改写(关间台阶"既有敌种新行为环段" → "既有池新技能";关内坡度"保持行为环读数不变" → "保持技能池 EV 读数不变〔权重即旋钮、EV 重锚随批登记〕");Boss 约定改专属池承载(独占技"硬化" + 权重轮廓,旧"专属四拍环且含蓄力拍"退役);调参表敌人行值表"行为环"列改"技能池(权重)"列并落建议池行值,新增"技能池投值"四行(池权重 / 技能冷却 / 保底 M / 池 EV 锚——含闸长期速率实测登记:地精 1.106〔保底闸抬升〕/ 熊地精 1.000 / 酋长 1.024);重击倍率注记随倍率归技能行删除;区间模型受伤峰值/谷值构成改按含闸长期速率复核口径;行值零改动(EV 中性锚定维持,重锚与权重投值随加难扫描批合并处理) |
|
| v0.6 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / 增益状态 / registry / 切片代码同批)**:曲线纪律两处改写(关间台阶"既有敌种新行为环段" → "既有池新技能";关内坡度"保持行为环读数不变" → "保持技能池 EV 读数不变〔权重即旋钮、EV 重锚随批登记〕");Boss 约定改专属池承载(独占技"硬化" + 权重轮廓,旧"专属四拍环且含蓄力拍"退役);调参表敌人行值表"行为环"列改"技能池(权重)"列并落建议池行值,新增"技能池投值"四行(池权重 / 技能冷却 / 保底 M / 池 EV 锚——含闸长期速率实测登记:地精 1.106〔保底闸抬升〕/ 熊地精 1.000 / 酋长 1.024);重击倍率注记随倍率归技能行删除;区间模型受伤峰值/谷值构成改按含闸长期速率复核口径;行值零改动(EV 中性锚定维持,重锚与权重投值随加难扫描批合并处理) |
|
||||||
| v0.7 | 2026-09-17 | **分支节点图批(L2 幽暗地域内容批——与切片代码 / registry / 关卡节点地图 / 06 待办同批)**:第二关深度轴行值填充收口(原 P1 后置项)——图版编号 D0–D8 九节点,战斗/Boss 七坐标在敌人表与棋盘表各有精确行(跨表校验强制);新敌种巨蜘蛛 giant_spider(群行 [2,3]、首遇位固定、轻甲)与 Boss 蛛化卓尔精灵 drider(重甲、血量 175 = r_boss provisional 锚);既有敌种 bugbear 池新技能突刺(兄弟精池差异化——关间台阶纪律两半均兑现);新技能行撕咬(×1.5 冷却 1)/ 毒爆(×2.5 冷却 4,蛛化卓尔精灵专属池独占);技能池投值表 / 棋盘参数表随批扩列,L2 池 EV 锚登记静态份额(≈1.28/1.11/1.33/1.67,含闸速率待抽样);首遇位绿档冒烟断言落地(基线 0 加成完美档 12 种子首遇战全胜且零踩雷)。全部行值 provisional,L2 整关通关率读数随批实测记录于切片汇报(精调归加难杠杆扫描批) |
|
| v0.7 | 2026-09-17 | **分支节点图批(L2 幽暗地域内容批——与切片代码 / registry / 关卡节点地图 / 06 待办同批)**:第二关深度轴行值填充收口(原 P1 后置项)——图版编号 D0–D8 九节点,战斗/Boss 七坐标在敌人表与棋盘表各有精确行(跨表校验强制);新敌种巨蜘蛛 giant_spider(群行 [2,3]、首遇位固定、轻甲)与 Boss 蛛化卓尔精灵 drider(重甲、血量 175 = r_boss provisional 锚);既有敌种 bugbear 池新技能突刺(兄弟精池差异化——关间台阶纪律两半均兑现);新技能行撕咬(×1.5 冷却 1)/ 毒爆(×2.5 冷却 4,蛛化卓尔精灵专属池独占);技能池投值表 / 棋盘参数表随批扩列,L2 池 EV 锚登记静态份额(≈1.28/1.11/1.33/1.67,含闸速率待抽样);首遇位绿档冒烟断言落地(基线 0 加成完美档 12 种子首遇战全胜且零踩雷)。全部行值 provisional,L2 整关通关率读数随批实测记录于切片汇报(精调归加难杠杆扫描批)。〔2026-09-18 注:本条为历史批注——血量 175、撕咬 ×1.5 / 毒爆 ×2.5 等读数已随数值压缩批作废,按数值纪律不再留值,现行值读 `enemy.tres` / `skills.tres`〕 |
|
||||||
|
| v0.8 | 2026-09-17 | **文档降级为模板批(用户拍板,与敌人系统 / 战斗结算同批)**:数值纪律定稿——本文只定规则、取值域与口径,全部具体行值移除、一律读配置表(切片 `data/tables/` 与 registry);调参表敌人行值十二行整表改行模板(敌种语义注记保留),技能池投值 / 主角表 / 棋盘参数 / 关键投值各表删除"现行值"列改口径登记;Boss Σ 逐数验算(153.5 闭合)移除改"调参日志留档"口径;换装点锚定句去 AC 硬读数;伏击上限、保底 M、教学位区间等散落行值改"读表"。背景:切片 `.tres` 数值压缩批后文档行值已滞后,双写失同步被实证 |
|
||||||
|
| v0.9 | 2026-09-17 | 数值纪律收口批:正文 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),8 处失同步修正——曲线结论与换装点句残留读数改读 enemy.tres / settlement.tres;护甲克制 150/100/50 与联动表 d20 ×2 / 主角 10 / 敌 0 改读表(消双写);元进度换算率 +10≈1 轮 / 翻倍≈减半改 registry / 调参日志口径;**normal 模拟档目标带 [30,50]→[10,25] 用户拍板落文,旧读数 60% 删除(压缩批后失效,重测随验收批另批登记)**;通关余量带 p90≤13 / p10≥3 压缩前绝对血量带改相对量口径(含验收标准节同步,清单外顺手修正) |
|
||||||
| v0.10 | 2026-09-18 | **元进度定稿批(与 元进度 v1.0 / registry / 06-待办清单 同批)**:元进度接口预留节改定稿口径——区间平移换算率启用(带平移,判读口径不变),换算率表首版三行与护甲行强条目指路 registry `meta_progression_conversion_table`,数值标定归元进度设计批;P2「区间平移换算率定稿」行同步改剩余面口径。曲线规则与行值零改动 |
|
| v0.10 | 2026-09-18 | **元进度定稿批(与 元进度 v1.0 / registry / 06-待办清单 同批)**:元进度接口预留节改定稿口径——区间平移换算率启用(带平移,判读口径不变),换算率表首版三行与护甲行强条目指路 registry `meta_progression_conversion_table`,数值标定归元进度设计批;P2「区间平移换算率定稿」行同步改剩余面口径。曲线规则与行值零改动 |
|
||||||
@@ -18,9 +18,9 @@
|
|||||||
|
|
||||||
| 负责 | 说明 |
|
| 负责 | 说明 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 格面资源类型封闭枚举 | 五型(attack / defense / heal / blast / weaken);表里出现清单外的类型,数据加载直接拒绝 |
|
| 格面资源类型封闭枚举 | 七型(attack / defense / heal / blast / weaken / pierce / magic——2026-09-18 伤害道具批五→七);表里出现清单外的类型,数据加载直接拒绝 |
|
||||||
| 装板期身份预分配 | 每张图装上时一次摇定全部非封锁格的资源类型身份与清图奖励对象身份;只读、无重摇 |
|
| 装板期身份预分配 | 每张图装上时一次摇定全部非封锁格的资源类型身份与清图奖励对象身份;只读、无重摇 |
|
||||||
| 极性矩阵与五型字典 | 「动作 × 格型 → 正负号」的定义,以及每型正向 / 负向各兑付成什么效果 |
|
| 极性矩阵与七型字典 | 「动作 × 格型 → 正负号」的定义,以及每型正向 / 负向各兑付成什么效果 |
|
||||||
| 清图奖励对象 | 板级作用域的独立奖励封装,可配置可替换,按图类型差异化 |
|
| 清图奖励对象 | 板级作用域的独立奖励封装,可配置可替换,按图类型差异化 |
|
||||||
| 未来功能道具的预留结构位 | 长周期、更强力的功能性道具经其他渠道加入;渠道设计未定,本系统只留结构位不预写 |
|
| 未来功能道具的预留结构位 | 长周期、更强力的功能性道具经其他渠道加入;渠道设计未定,本系统只留结构位不预写 |
|
||||||
|
|
||||||
@@ -67,6 +67,26 @@
|
|||||||
|
|
||||||
举证:本节为流程与状态规则,无计算。
|
举证:本节为流程与状态规则,无计算。
|
||||||
|
|
||||||
|
### 候选集合:安全格与雷格的资源池
|
||||||
|
|
||||||
|
格面资源在每非封锁格上摇定身份时不区分格型——`_rollable_rows()` 把 cell 池正向行全集作为权重表,对所有非封锁格一视同仁地 `weighted_pick`。安全格与雷格候选集相同,权重分布相同,类型频次合计 = reward.tres cell 池正向行 weight 之和(现行值读表):
|
||||||
|
|
||||||
|
| 格型 | 候选集合(cell 池正向行,weight>0) | 类型频次合计 |
|
||||||
|
|---|---|---|
|
||||||
|
| 安全格 | attack_up(attack)· ac_up(defense)· spark_aoe(blast)· heal_minor(heal)· weaken(weaken)· pierce_strike(pierce)· magic_bolt(magic) | 见 `data/tables/reward.tres` |
|
||||||
|
| 雷格 | 同上(雷安同池——七行正向行全集,权重分布相同) | 见 `data/tables/reward.tres` |
|
||||||
|
|
||||||
|
清图槽(clear_default 池,clear_blast)独立于格面资源——作用域为整张板,不挂任何一格。
|
||||||
|
|
||||||
|
引用(代码事实源):
|
||||||
|
- `prototypes/dungeon-sweeper-vertical-slice/core/reward_economy.gd#roll_board`:`_rollable_rows()` 第 207-213 行收 `pool_tag=cell & polarity=positive & weight>0` 全集;循环第 65-67 行对 `eligible` 清单(全部非封锁格)一视同仁。
|
||||||
|
- `prototypes/dungeon-sweeper-vertical-slice/core/minesweeper_rules.gd#_do_dig` 第 256-264 行:chain/dig 通道 `cell_revealed` 事件 `resource=true` 字段对安全格与雷格一致——注释明确"安全格与雷格一视同仁(雷格亦携带,负向兑付归 战斗结算 极性路由)"。
|
||||||
|
- `prototypes/dungeon-sweeper-vertical-slice/data/tables/reward.tres`:7 行正向行 weight 现行值读 `data/tables/reward.tres`。
|
||||||
|
|
||||||
|
候选集合具体行值(power / power_min / power_max / stacks / effect_id)随行更新——以 `data/tables/reward.tres` 为现行值源;GDD 表格只锁行集与权重分布语义。负向 7 行(enrage / off_guard / heal_backlash / ambush_double / sapped / pierce_snare / magic_recoil——2026-09-18 伤害道具批五→七)weight=0 不参与摇号,按(类型, 极性)查表取用,不在候选集合内。
|
||||||
|
|
||||||
|
举证:本节为候选集合枚举,无计算。
|
||||||
|
|
||||||
### 极性矩阵:动作与格型决定符号
|
### 极性矩阵:动作与格型决定符号
|
||||||
|
|
||||||
资源对象只带类型,不带正负。正负号在结算期由「玩家动作 × 格型」决定——这张矩阵是全部奖励与惩罚的统一路由,取代旧体系的四套固定兑付(踩雷固定伏击、标中固定削弱、标错三选一反噬、可选类道具注入):
|
资源对象只带类型,不带正负。正负号在结算期由「玩家动作 × 格型」决定——这张矩阵是全部奖励与惩罚的统一路由,取代旧体系的四套固定兑付(踩雷固定伏击、标中固定削弱、标错三选一反噬、可选类道具注入):
|
||||||
@@ -81,19 +101,21 @@
|
|||||||
|
|
||||||
举证:本节为枚举与路由定义,无计算。
|
举证:本节为枚举与路由定义,无计算。
|
||||||
|
|
||||||
### 五型字典:每型一行正向一行负向
|
### 七型字典:每型一行正向一行负向
|
||||||
|
|
||||||
格面资源的一切兑付从五个类型里出,每个类型恰好一行正向、一行负向——正向是玩家操作正确时拿到的东西,负向是操作失误或踩雷时吃到的东西:
|
格面资源的一切兑付从七个类型里出,每个类型恰好一行正向、一行负向(五型 + 2026-09-18 伤害道具批增补的 pierce / magic 两型)——正向是玩家操作正确时拿到的东西,负向是操作失误或踩雷时吃到的东西:
|
||||||
|
|
||||||
| 类型 | 正向(奖励) | 负向(惩罚) |
|
| 类型 | 正向(奖励) | 负向(惩罚) |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| attack 增伤 | attack_up 增伤 +50%(hero_offense 池) | enrage 敌方暴走 +25%(enemy_output 池) |
|
| attack 增伤 | attack_up(hero_offense 池)——幅度/上限/权重见 `reward.tres` | enrage(enemy_output 池)——幅度/上限见 `status_effects.tres` enrage 行 |
|
||||||
| defense 护甲 | ac_up 护甲强化 +1 护甲等级/层 ×2 层(AC 掷点阈值轴——2026-09-16 换装,不入池) | off_guard 我方失衡 +25%(hero_defense 池,承伤加深) |
|
| defense 护甲 | ac_up 护甲强化(AC 掷点阈值轴——2026-09-16 换装,不入池)——幅度/上限/权重见 `reward.tres` | off_guard(hero_defense 池,承伤加深)——幅度/上限见 `status_effects.tres` off_guard 行 |
|
||||||
| heal 回血 | heal_minor 回血 2–6(满血零兑付照旧) | 直伤:主角 −4(战斗结算直接扣血,不经增益状态) |
|
| heal 回血 | heal_minor(满血零兑付照旧)——威力/权重见 `reward.tres` | heal_backlash 直伤:战斗结算直接扣血,不经增益状态——威力见 `reward.tres` |
|
||||||
| blast 群伤 | spark_aoe 全体存活敌各 −4 | ambush 敌方伏击 +2 层(进伏击池) |
|
| blast 群伤 | spark_aoe 全体存活敌各吃一笔——威力/权重见 `reward.tres` | ambush_double 敌方伏击 +N 层(进伏击池,N=stacks)——见 `reward.tres` |
|
||||||
| weaken 削弱 | weaken 敌方输出 −65%(enemy_output 池) | sapped 我方乏力 −25%(hero_offense 池) |
|
| weaken 削弱 | weaken(enemy_output 池)——幅度见 `status_effects.tres` weaken 行 | sapped(hero_offense 池)——幅度见 `status_effects.tres` sapped 行 |
|
||||||
|
| pierce 穿刺 | pierce_strike 穿刺弹:单目标克制直伤(attack_type=pierce 查克制矩阵,必中全额不掷点;目标 = 固定顺位最前存活敌)——威力/权重见 `reward.tres` | pierce_snare 穿刺陷阱:主角直伤,不经增益状态——威力见 `reward.tres` |
|
||||||
|
| magic 魔法 | magic_bolt 魔法矢:单目标克制直伤(attack_type=magic,同上)——威力/权重见 `reward.tres` | magic_recoil 魔法反噬:主角直伤,不经增益状态——威力见 `reward.tres` |
|
||||||
|
|
||||||
设计意图:读敌拍板的路线规划——敌方要放大招时抢护甲强化、怪重叠时抢削弱,惩罚侧则镜像同一批类型。类型清单是封闭的:加第六型等于修订本文档,不是调参数。
|
设计意图:读敌拍板的路线规划——敌方要放大招时抢护甲强化、怪重叠时抢削弱,惩罚侧则镜像同一批类型。类型清单是封闭的:加新类型等于修订本文档,不是调参数(2026-09-18 伤害道具批即按此修订五→七)。
|
||||||
|
|
||||||
凡"该兑付但没生效"——增益挂满层、满血捡到 heal 正向、场上无敌可打——一律在结算明细里明写一行"奖励未生效",不给折算补偿,也不静默消失。把兑付改成跳过轮末结算直接生效,同样在禁止之列。
|
凡"该兑付但没生效"——增益挂满层、满血捡到 heal 正向、场上无敌可打——一律在结算明细里明写一行"奖励未生效",不给折算补偿,也不静默消失。把兑付改成跳过轮末结算直接生效,同样在禁止之列。
|
||||||
|
|
||||||
@@ -168,30 +190,30 @@
|
|||||||
|
|
||||||
默认内容行(奖励表;威力的区间行在摇号时一次摇定,区间中点即原定值——期望不漂移):
|
默认内容行(奖励表;威力的区间行在摇号时一次摇定,区间中点即原定值——期望不漂移):
|
||||||
|
|
||||||
| 行 | 类型 | 极性 | 威力 | 权重 | 档位 | 所在池 |
|
| 行 | 类型 | 极性 | 取值域 / 字段语义 | 现行值 | 所在池 |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
| attack_up | attack | 正向 | —(不消费) | 20 | 2 | 格面池 |
|
| attack_up | attack | 正向 | weight [0,999] · power 不消费(percent 行 effect_id → StatusEffectTable attack_up 引用) | 见 `data/tables/reward.tres` + `registry/entities.yaml` mvp_content | 格面池 |
|
||||||
| ac_up | defense | 正向 | —(不消费) | 16 | 2 | 格面池 |
|
| ac_up | defense | 正向 | weight [0,999] · power 不消费(percent 行 effect_id → StatusEffectTable ac_up 引用) | 同上 | 同上 |
|
||||||
| spark_aoe | blast | 正向 | 4 | 16 | 1 | 格面池 |
|
| spark_aoe | blast | 正向 | power [0,999]·power_min/power_max 可选区间·weight [0,999](flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||||
| heal_minor | heal | 正向 | 2–6 | 15 | 1 | 格面池 |
|
| heal_minor | heal | 正向 | power [0,999]·power_min/power_max 可选区间·weight [0,999](flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||||
| weaken | weaken | 正向 | —(不消费) | 12 | 1 | 格面池 |
|
| weaken | weaken | 正向 | weight [0,999] · power 不消费(percent 行 effect_id → StatusEffectTable weaken 引用) | 同上 | 同上 |
|
||||||
| enrage | attack | 负向 | —(不消费) | —(不参与摇号) | 2 | 格面池 |
|
| enrage | attack | 负向 | weight=0 不参与摇号·power 不消费(percent 行 effect_id → StatusEffectTable enrage 引用) | 同上 | 同上 |
|
||||||
| off_guard | defense | 负向 | —(不消费) | —(不参与摇号) | 2 | 格面池 |
|
| off_guard | defense | 负向 | weight=0 不参与摇号·power 不消费(percent 行 effect_id → StatusEffectTable off_guard 引用) | 同上 | 同上 |
|
||||||
| 直伤 | heal | 负向 | 4 | —(不参与摇号) | 1 | 格面池 |
|
| heal_backlash | heal | 负向 | weight=0 不参与摇号·power [0,999](flat 行 effect_id 恒空) | 同上 | 同上 |
|
||||||
| ambush+2 | blast | 负向 | —(不消费) | —(不参与摇号) | 1 | 格面池 |
|
| ambush_double | blast | 负向 | weight=0 不参与摇号·stacks [1,16]·effect_id 恒空(伏击非增益态) | 同上 | 同上 |
|
||||||
| sapped | weaken | 负向 | —(不消费) | —(不参与摇号) | 1 | 格面池 |
|
| sapped | weaken | 负向 | weight=0 不参与摇号·power 不消费(percent 行 effect_id → StatusEffectTable sapped 引用) | 同上 | 同上 |
|
||||||
| 清障炸药 | — | — | 25–55 | 1 | 2 | 清图槽 |
|
| clear_blast | blast | 正向 | clear_default 池·power [0,999]·power_min/power_max 可选区间·weight [0,999] | 同上 | 清图槽 |
|
||||||
|
|
||||||
摇号只消费正向行的权重(类型频次由此涌现:attack 20 / defense 16 / blast 16 / heal 15 / weaken 12,合计 79);负向行是纯兑付字典,按(类型,极性)查表取用。清障炸药对全体存活敌各吃一笔大额伤害,当场兑付。奖励配置表(RewardConfigTable)已随可选类删除下线——注入概率、按板保底等参数全部失义。
|
摇号只消费正向格面池的权重(类型频次由此涌现——具体权重读 `reward.tres`);负向行是纯兑付字典,按(类型,极性)查表取用,不消费权重。clear_blast 对全体存活敌各吃一笔当场兑付的 flat 伤害。RewardConfigTable 已随可选类删除下线——注入概率、按板保底等参数全部失义。
|
||||||
|
|
||||||
结构冻结(改动走本文修订流程,不走调参):五型封闭枚举、雷安同池、极性矩阵、装板期预分配且无重摇、负向恒即时无库存、清图恒非空、除摇号外零随机。
|
结构冻结(改动走本文修订流程,不走调参):七型封闭枚举(伤害道具批 2026-09-18 修订五→七)、雷安同池、极性矩阵、装板期预分配且无重摇、负向恒即时无库存、清图恒非空、除摇号外零随机。
|
||||||
|
|
||||||
## 验收标准
|
## 验收标准
|
||||||
|
|
||||||
- 每格必有货:装板摇号后,每个非封锁格恰有一个资源类型、清图槽恰有一个对象身份;封锁格恒无资源;同图跨轮查询结果逐字相同。
|
- 每格必有货:装板摇号后,每个非封锁格恰有一个资源类型、清图槽恰有一个对象身份;封锁格恒无资源;同图跨轮查询结果逐字相同。
|
||||||
- 雷安同池:安全格与雷格从同一类型池、同一权重分布摇定;任何"按格型差异化分配"的分支不存在。
|
- 雷安同池:安全格与雷格从同一类型池、同一权重分布摇定;任何"按格型差异化分配"的分支不存在。
|
||||||
- 恰一次与确定性:摇号对每张新图恰发生一次,重复调用被拒绝且映射不变;同一条随机流轨迹驱动两套实例,映射与兑付回执逐位相同。
|
- 恰一次与确定性:摇号对每张新图恰发生一次,重复调用被拒绝且映射不变;同一条随机流轨迹驱动两套实例,映射与兑付回执逐位相同。
|
||||||
- 类型封闭与字典完整:表里出现五型之外的类型、或任一型缺正向/负向行,加载拒绝。
|
- 类型封闭与字典完整:表里出现七型之外的类型、或任一型缺正向/负向行,加载拒绝。
|
||||||
- 未生效可见:满层增益、满血正向治疗、无存活敌的群伤,各自在结算明细记"奖励未生效"行,零折算、零补偿。
|
- 未生效可见:满层增益、满血正向治疗、无存活敌的群伤,各自在结算明细记"奖励未生效"行,零折算、零补偿。
|
||||||
- 加载护栏:池空、清图池无正当量、增益引用悬空——任一命中即加载报错中止;默认内容加载通过。
|
- 加载护栏:池空、清图池无正当量、增益引用悬空——任一命中即加载报错中止;默认内容加载通过。
|
||||||
- 表实一致:数据表字段与 registry 的 reward_table 条目逐字段一致。
|
- 表实一致:数据表字段与 registry 的 reward_table 条目逐字段一致。
|
||||||
@@ -209,4 +231,8 @@
|
|||||||
| v0.3 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的雾格相关定价约束三条失义条目与随之取消的奖励配置表档位过滤门限 t_fog_min |
|
| v0.3 | 2026-09-15 | 雾格残留清理:关闭「待拍板」的雾格相关定价约束三条失义条目与随之取消的奖励配置表档位过滤门限 t_fog_min |
|
||||||
| v0.4 | 2026-09-15 | **格面资源批(用户拍板,2026-09-15)**:① 核心抽象改为格面资源(CellResource)——安全格与雷格一视同仁、单一类型池装板期摇定,极性由「动作 × 格型」矩阵决定(开安全格/标中雷 = 正向,开雷格/标错安全格 = 负向),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;② 五型字典(attack/defense/heal/blast/weaken,正负各一行;weaken 负向 sapped 为新行,heal 负向为不经增益状态的直伤);③ 封锁格(初始展开格)恒无资源;④ 清图奖励改述为板级、可配置可替换的清图奖励对象,图类型差异化插槽保留;⑤ **可选类道具(刀/治疗包)整体删除**——供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口的数据面全部下线,RewardConfigTable 随批废止;功能道具经其他渠道加入的结构位登记 P1;⑥ 行动经济对账锚与难度曲线重推义务随批登记(见 registry 修订记录) |
|
| v0.4 | 2026-09-15 | **格面资源批(用户拍板,2026-09-15)**:① 核心抽象改为格面资源(CellResource)——安全格与雷格一视同仁、单一类型池装板期摇定,极性由「动作 × 格型」矩阵决定(开安全格/标中雷 = 正向,开雷格/标错安全格 = 负向),取代踩雷固定伏击、标中固定削弱、标错三选一哈希反噬三套固定兑付;② 五型字典(attack/defense/heal/blast/weaken,正负各一行;weaken 负向 sapped 为新行,heal 负向为不经增益状态的直伤);③ 封锁格(初始展开格)恒无资源;④ 清图奖励改述为板级、可配置可替换的清图奖励对象,图类型差异化插槽保留;⑤ **可选类道具(刀/治疗包)整体删除**——供给控制器、注入概率、按板保底、关卡域库存、道具使用窗口的数据面全部下线,RewardConfigTable 随批废止;功能道具经其他渠道加入的结构位登记 P1;⑥ 行动经济对账锚与难度曲线重推义务随批登记(见 registry 修订记录) |
|
||||||
| v0.5 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"奖励道具经济"→"地图战斗资源"——定义双向(正负由动作×格型决定)、格面承载、只在战斗结算生效;文件同步重命名;「待拍板」系统更名条目关闭;英文代号 REWARD_ITEM_ECONOMY 暂沿用 |
|
| v0.5 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"奖励道具经济"→"地图战斗资源"——定义双向(正负由动作×格型决定)、格面承载、只在战斗结算生效;文件同步重命名;「待拍板」系统更名条目关闭;英文代号 REWARD_ITEM_ECONOMY 暂沿用 |
|
||||||
| v0.6 | 2026-09-16 | **护甲等级掷点批·换装(与战斗结算 / 增益状态 / registry / 切片同批)**:defense 型正向行 defense_up(减伤 −30%,hero_defense 池)换装为 ac_up(护甲强化 +1 护甲等级/层 ×2 层,显示名暂定"护甲强化")——百分比减伤行无双轨退役;cell_type defense / 权重 16 / 档位 2 零改动(类型频次合计 79 不变);五型字典表与 mvp 行表同步 |
|
| v0.6 | 2026-09-16 | **护甲等级掷点批·换装(与战斗结算 / 增益状态 / registry / 切片同批)**:defense 型正向行 defense_up(减伤 −30%,hero_defense 池)换装为 ac_up(护甲强化 +1 护甲等级/层 ×2 层,显示名暂定"护甲强化")——百分比减伤行无双轨退役;cell_type defense / 权重 16 / 档位 2 零改动(v0.6 当下类型频次合计 79;v0.7 数值压缩批后 heal_minor 权重 15→3,合计降至 67——见 v0.7 条);五型字典表与 mvp 行表同步 |
|
||||||
|
| v0.7 | 2026-09-17 | **数值压缩批·文档同步(与 doc-conventions.md §5 数值纪律·强制收口条款同批)**:整体绝对值轴 ÷3(24/7→8/2 等,见 `data/tables/enemy.tres` 注释);奖励表 heal_minor 权重 ÷4(15→3);reward.tres 三 flat 行同步(spark_aoe power 4→1 · heal_backlash power 4→1 · heal_minor power [2,6]→[1,1] 定值);clear_blast 区间 [25,55]→[8,18](中点 13,期望不漂移)。**双写失同步收口**:① 五型字典表与调参表数值列改指路存根(指向 `data/tables/reward.tres` 与 `registry/entities.yaml` reward_table mvp_content);② 文档表格只锁字段语义与取值域,不再列具体数;③ 与 `增益状态.md` v0.7 / `registry/entities.yaml` 同批落地——五步收口(`.tres` 落批 · 切片 smoke 跑通 · GDD 表格指路化 · registry mvp_content 指路化 · 待办清单现状刷新)一并兑现 |
|
||||||
|
| v0.8 | 2026-09-17 | **候选集合节补强(与代码对齐)**:在「格面资源」节后新增「候选集合:安全格与雷格的资源池」——明确安全格与雷格候选集 = cell 池正向 5 行全集(attack_up · ac_up · spark_aoe · heal_minor · weaken),权重分布相同,类型频次合计 67(v0.7 压缩批后)。清图槽 clear_blast 独立于格面资源、板级作用域。代码事实源:`core/reward_economy.gd#roll_board`(`_rollable_rows` 不分格型)+ `core/minesweeper_rules.gd#_do_dig`(cell_revealed 通道 `resource=true` 对两种格一致)。同步修正 v0.6 历史条目"类型频次合计 79 不变"——v0.7 后改 67 |
|
||||||
|
| v0.10 | 2026-09-18 | **伤害道具批(用户指令,2026-09-18)**:① 五型→七型——增补 pierce(穿刺)/ magic(魔法)两型,各正负一行:正向 = 单目标克制直伤道具(pierce_strike 穿刺弹 / magic_bolt 魔法矢,attack_type 字段载攻击类型轴,查战斗结算克制矩阵、必中全额不掷点、目标 = 固定顺位最前存活敌);负向 = 主角直伤(pierce_snare 穿刺陷阱 / magic_recoil 魔法反噬,复用反噬通道不经增益状态);② 权重再平衡(用户指令"保爆裂粉尘不变、等比下调其余"):spark_aoe 16 不动,attack_up 20→14 · ac_up 16→11 · heal_minor 3→2 · weaken 12→8(等比基准 ×35/51≈0.686,整取微差登记已知偏差),新行各 8——类型频次合计仍 67;③ 结构冻结"五型封闭"按 owner 修订流程改"七型封闭";切片同批落地(reward.tres 四新行 + schema 七型枚举 + attack_type 校验 + 结算兑付分支 + 棋盘徽标 穿/魔 + smoke 295 全绿;断言"主角先手攻击行存在"放宽为"存在或授予段终局"——单弱敌可被挖掘期兑付单独击杀,战斗段整段跳过为合法结局) |
|
||||||
|
| v0.9 | 2026-09-17 | **数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 `data/tables/*.tres` 与 registry),3 处失同步值修正**——候选集合节"合计 = 67"字面量改指路 reward.tres cell 池正向行 weight 之和(现行值读表);候选集合表"类型频次合计"列两处 67 改"见 reward.tres";代码事实源清单五型 weight 明细(attack_up 20 · ac_up 16 · spark_aoe 16 · heal_minor 3 · weaken 12)改"5 行正向行 weight 现行值读 reward.tres" |
|
||||||
@@ -84,8 +84,8 @@
|
|||||||
|
|
||||||
| 合并策略 | 重复授予时发生什么 | 说明 |
|
| 合并策略 | 重复授予时发生什么 | 说明 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 叠加 | 层数加一;剩余结算次数不动——只有首次授予定钟 | MVP 六行全部用叠加 |
|
| 叠加 | 层数加一;剩余结算次数不动——只有首次授予定钟 | 现行内容行多数用叠加(逐行合并策略读 `status_effects.tres`) |
|
||||||
| 刷新 | 剩余结算次数重置为该实例首次授予时的初始值,层数不变 | MVP 无内容行,语义已就位 |
|
| 刷新 | 剩余结算次数重置为该实例首次授予时的初始值,层数不变 | 刷新类内容行已就位(增益技行 empower / fortify 等——逐行读 `status_effects.tres`) |
|
||||||
| 并存 | 新建一份独立实例,两份各算各的 | 同上 |
|
| 并存 | 新建一份独立实例,两份各算各的 | 同上 |
|
||||||
|
|
||||||
并存分支没有满层上限,但容器规模天然有界:实例数的上界就是受理过的授予数——多受理一份就多一份实例,多少份在授予那一刻就完全确定,不会无限膨胀。
|
并存分支没有满层上限,但容器规模天然有界:实例数的上界就是受理过的授予数——多受理一份就多一份实例,多少份在授予那一刻就完全确定,不会无限膨胀。
|
||||||
@@ -116,7 +116,7 @@
|
|||||||
|
|
||||||
### 幅度与量纲:容器只做加法,换算归结算
|
### 幅度与量纲:容器只做加法,换算归结算
|
||||||
|
|
||||||
容器对每个状态只记两件数值的事:幅度(一个整数)和量纲(百分比还是固定值)。百分比量纲的叠层是纯加法——两层 +50% 合计 +100 个百分点,不是 1.5 的平方;固定值量纲几层就乘几。
|
容器对每个状态只记两件数值的事:幅度(一个整数)和量纲(百分比还是固定值)。百分比量纲的叠层是纯加法——两层合计 = 2 × 单行幅度(读 `status_effects.tres` attack_up 行),不是 1.5 的平方;固定值量纲几层就乘几。
|
||||||
|
|
||||||
**结论**:容器输出的有效值 = 层数 × 行值,原样给出、不封顶不保底;把百分比合计换算成乘数、并在 −100 个百分点处设地板,是[战斗结算](战斗结算.md)的消费侧规则——地板保证减益不会把属性打到绝对负值,最低压到"归零"为止。
|
**结论**:容器输出的有效值 = 层数 × 行值,原样给出、不封顶不保底;把百分比合计换算成乘数、并在 −100 个百分点处设地板,是[战斗结算](战斗结算.md)的消费侧规则——地板保证减益不会把属性打到绝对负值,最低压到"归零"为止。
|
||||||
|
|
||||||
@@ -128,8 +128,8 @@
|
|||||||
|
|
||||||
| 例子 | 容器输出 | 消费侧读法 |
|
| 例子 | 容器输出 | 消费侧读法 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 削弱叠两层 | −130 个百分点(越出单行取值域,原样输出) | 压在地板 −100% 上:敌方输出乘区归零(落地伤害由战斗结算全局下限保底 ≥1) |
|
| 削弱叠两层 | −(2 × weaken 行幅度)(读表;越出单行取值域,原样输出) | 压在地板 −100% 上:敌方输出乘区归零(落地伤害由战斗结算全局下限保底 ≥1) |
|
||||||
| 主角护甲强化叠两层 | +2 个护甲等级 | 不经任何池:掷点判定阈值 AC10 → AC12(期望减免 21.25% → 28.75%) |
|
| 主角护甲强化叠两层 | 每层 +1 AC(读 ac_up 行)× 2 层 | 不经任何池:掷点判定阈值 = 主角基准(读 hero 表)+ 层数 |
|
||||||
|
|
||||||
容器还有一条快照纪律:实例的幅度、初始次数、量纲在授予那一刻从表行拷贝。战斗中配置表即使被重载,已授予实例不受任何影响,只影响后续授予。
|
容器还有一条快照纪律:实例的幅度、初始次数、量纲在授予那一刻从表行拷贝。战斗中配置表即使被重载,已授予实例不受任何影响,只影响后续授予。
|
||||||
|
|
||||||
@@ -150,17 +150,17 @@
|
|||||||
|
|
||||||
| 状态 | 效果一句话 | 发给谁 | 幅度(现行值) | 时限 / 合并 | 来源类别 |
|
| 状态 | 效果一句话 | 发给谁 | 幅度(现行值) | 时限 / 合并 | 来源类别 |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
| attack_up 增伤 | 主角攻击提升 | 主角 | +50%(provisional) | 1 次 / 叠加 ×2 | 安全格 |
|
| attack_up 增伤 | 主角攻击提升 | 主角 | 见 `data/tables/status_effects.tres` attack_up 行 | 时限/上限读表 / 叠加 | 安全格 |
|
||||||
| ac_up 护甲强化 | 主角护甲等级提升(掷点折扣判定阈值——AC 轴,不入池) | 主角 | +1 护甲等级/层(2026-09-16 换装,原 defense_up 减伤 −30% 退役) | 1 次 / 叠加 ×2 | 安全格 |
|
| ac_up 护甲强化 | 主角护甲等级提升(掷点折扣判定阈值——AC 轴,不入池) | 主角 | 见 `status_effects.tres` ac_up 行(2026-09-16 换装,原 defense_up 行已退役,见版本历史) | 时限/上限读表 / 叠加 | 安全格 |
|
||||||
| ambush 伏击 | 敌方攻击附带额外伤害 | 敌方 | +3 固定值/层(provisional) | 1 次 / 叠加 ×16 | 踩雷 / 标空旗反噬 |
|
| ambush 伏击 | 敌方攻击附带额外伤害 | 敌方 | 见 `status_effects.tres` ambush 行 | 时限/上限读表 / 叠加 | 踩雷 / 标空旗反噬 |
|
||||||
| weaken 削弱 | 敌方攻击被削弱 | 敌方 | −65%(provisional,取值域 [60,85]) | 1 次 / 叠加 ×16 | 标中旗 |
|
| weaken 削弱 | 敌方攻击被削弱 | 敌方 | 见 `status_effects.tres` weaken 行(取值域 [60,85],取负生效) | 时限/上限读表 / 叠加 | 标中旗 |
|
||||||
| enrage 暴走 | 敌方攻击提升 | 敌方 | +25%(provisional) | 1 次 / 叠加 ×16 | 标空旗反噬 |
|
| enrage 暴走 | 敌方攻击提升 | 敌方 | 见 `status_effects.tres` enrage 行 | 时限/上限读表 / 叠加 | 标空旗反噬 |
|
||||||
| off_guard 失衡 | 主角承伤加深(+25 个百分点进承伤修正池) | 主角 | +25%(provisional) | 1 次 / 叠加 ×16 | 标空旗反噬 |
|
| off_guard 失衡 | 主角承伤加深(百分比进承伤修正池) | 主角 | 见 `status_effects.tres` off_guard 行 | 时限/上限读表 / 叠加 | 标空旗反噬 |
|
||||||
| sapped 乏力 | 主角输出降低(weaken 型负向,hero_offense 池) | 主角 | −25%(provisional) | 1 次 / 叠加 ×16 | 雷格负向(2026-09-15 格面资源批) |
|
| sapped 乏力 | 主角输出降低(weaken 型负向,hero_offense 池) | 主角 | 见 `status_effects.tres` sapped 行 | 时限/上限读表 / 叠加 | 雷格负向(2026-09-15 格面资源批) |
|
||||||
| empower 蓄力 | 敌方输出 ×2(enemy_output 池——蓄力技载体) | 敌方 | +100%(provisional) | 2 次 = 1 个有效增益拍 / 刷新 ×1 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
| empower 蓄力 | 敌方输出倍率增益(enemy_output 池——蓄力技载体;幅度读表) | 敌方 | 见 `status_effects.tres` empower 行 | duration 读表 = 1 个有效增益拍 / 刷新 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
||||||
| fortify 硬化 | 敌方防御提升(**敌方防御池 enemy_defense**——硬化技载体,主角攻击折半) | 敌方 | +100%(provisional) | 2 次 = 1 个有效增益拍 / 刷新 ×1 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
| fortify 硬化 | 敌方防御提升(**敌方防御池 enemy_defense**——硬化技载体,主角攻击折半) | 敌方 | 见 `status_effects.tres` fortify 行 | duration 读表 = 1 个有效增益拍 / 刷新 | 敌方技能施放(2026-09-16 敌人技能池批) |
|
||||||
|
|
||||||
empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技能行 buff_ref 引用,施放时长由技能行覆盖——技能冷却与增益持续是两个计时器):两行 duration = 2 的口径是"先兑付后衰减含施放当轮"——施放发生在第 N 结算战斗段,存活到第 N+1 结算战斗段才兑付"下一拍",即"持续 1 个有效结算"(proposal 语义的容器落地)。敌方防御池(enemy_defense)是第四个乘区池:敌方作为防守方的百分比修正池,消费面 = [战斗结算](战斗结算.md)主角攻击的池乘区——四池对称(敌打主角 = hero_defense × enemy_output,主角打敌 = hero_offense × enemy_defense),容器语义零延伸:仍是同构实例、side-wide 加算、不封顶不保底。
|
empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技能行 buff_ref 引用,施放时长由技能行覆盖——技能冷却与增益持续是两个计时器):两行 duration 表值(读表)的口径是"先兑付后衰减含施放当轮"——施放发生在第 N 结算战斗段,存活到第 N+1 结算战斗段才兑付"下一拍",即"持续 1 个有效结算"(proposal 语义的容器落地)。敌方防御池(enemy_defense)是第四个乘区池:敌方作为防守方的百分比修正池,消费面 = [战斗结算](战斗结算.md)主角攻击的池乘区——四池对称(敌打主角 = hero_defense × enemy_output,主角打敌 = hero_offense × enemy_defense),容器语义零延伸:仍是同构实例、side-wide 加算、不封顶不保底。
|
||||||
|
|
||||||
削弱行是当量锚在容器侧的数据落点:标中旗的收益折算成统一价值后,必须严格高于最低档主角增益——"标中旗必须比随便挖一格更值",否则没人愿意插旗。这条锚的契约归[行动经济](../排雷循环/行动经济.md),对照验收归[战斗结算](战斗结算.md);伏击行的固定值量纲定义与惩罚上限锚归[敌人系统](敌人系统.md)。暴走与失衡两行是[战斗结算](战斗结算.md)标错反噬机制(标空旗的三选一确定性惩罚)在容器侧的数据落点:三池内容与载体裁决归它,本表只承载行值。
|
削弱行是当量锚在容器侧的数据落点:标中旗的收益折算成统一价值后,必须严格高于最低档主角增益——"标中旗必须比随便挖一格更值",否则没人愿意插旗。这条锚的契约归[行动经济](../排雷循环/行动经济.md),对照验收归[战斗结算](战斗结算.md);伏击行的固定值量纲定义与惩罚上限锚归[敌人系统](敌人系统.md)。暴走与失衡两行是[战斗结算](战斗结算.md)标错反噬机制(标空旗的三选一确定性惩罚)在容器侧的数据落点:三池内容与载体裁决归它,本表只承载行值。
|
||||||
|
|
||||||
@@ -206,21 +206,21 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
|||||||
|
|
||||||
## 调参表
|
## 调参表
|
||||||
|
|
||||||
状态表为定义表,键 = 状态标识;已锁数值以 [registry 的 status_effect 条目](../../../registry/entities.yaml) 为准,六行数值全部 provisional。
|
状态表为定义表,键 = 状态标识;已锁数值以 `data/tables/status_effects.tres` 与 [registry 的 status_effect 条目](../../../registry/entities.yaml) mvp_content 为准,九行数值全部 provisional;现行值**不列于本文**——读 `.tres` 与 registry。
|
||||||
|
|
||||||
| 参数 | 取值域 | 现行值 | 说明 |
|
| 参数 | 取值域 | 字段语义 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| attack_up 幅度 | 百分比 [−100,100] 且非 0 | +50(provisional) | 增伤;当量锚的参照对象(最低档主角增益) |
|
| attack_up 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 增伤;当量锚的参照对象(最低档主角增益) |
|
||||||
| ac_up 幅度 | 护甲等级 [−20,20] 且非 0 | +1/层(2026-09-16 换装定稿,暂定) | 护甲强化;掷点折扣判定阈值(AC10 → 11 → 12),不入任何池、消费归[战斗结算](战斗结算.md)掷点判定 |
|
| ac_up 幅度 | 护甲等级 [−20,20] 且非 0 | ac 行 magnitude | 护甲强化;掷点折扣判定阈值 = 基准 AC(读 hero 表)逐层 +1,不入任何池、消费归[战斗结算](战斗结算.md)掷点判定 |
|
||||||
| ambush 幅度 | 固定值 ≥ 1 | +3(provisional) | 伏击;量纲定义见[敌人系统](敌人系统.md) |
|
| ambush 幅度 | 固定值 ≥ 1 | flat 行 magnitude | 伏击;量纲定义见[敌人系统](敌人系统.md) |
|
||||||
| weaken 幅度 | 百分比取值域 [60,85],取负生效 | −65(provisional) | 削弱;须过"标中旗锚"对照 |
|
| weaken 幅度 | 百分比取值域 [60,85],取负生效 | percent 行 magnitude | 削弱;须过"标中旗锚"对照 |
|
||||||
| enrage 幅度 | 百分比 [−100,100] 且非 0 | +25(provisional) | 暴走;标错反噬三池之一,进敌方输出修正池 |
|
| enrage 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 暴走;标错反噬三池之一,进敌方输出修正池 |
|
||||||
| off_guard 幅度 | 百分比 [−100,100] 且非 0 | +25(provisional) | 失衡;标错反噬三池之一,进主角承伤修正池(承伤 ×1.25) |
|
| off_guard 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 失衡;标错反噬三池之一,进主角承伤修正池 |
|
||||||
| sapped 幅度 | 百分比 [−100,100] 且非 0 | −25(provisional) | 乏力;雷格负向 weaken 型,进主角输出修正池(2026-09-15 格面资源批补登记) |
|
| sapped 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 乏力;雷格负向 weaken 型,进主角输出修正池(2026-09-15 格面资源批补登记) |
|
||||||
| empower 幅度 | 百分比 [−100,100] 且非 0 | +100(provisional) | 蓄力;敌方技能池增益技载体,进敌方输出修正池(敌方输出 ×2) |
|
| empower 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 蓄力;敌方技能池增益技载体,进敌方输出修正池 |
|
||||||
| fortify 幅度 | 百分比 [−100,100] 且非 0 | +100(provisional) | 硬化;敌方技能池增益技载体,进**敌方防御池 enemy_defense**(主角攻击折半) |
|
| fortify 幅度 | 百分比 [−100,100] 且非 0 | percent 行 magnitude | 硬化;敌方技能池增益技载体,进**敌方防御池 enemy_defense** |
|
||||||
| 初始剩余次数 | 整数 [1,99] | 七行 1 次 · empower/fortify 2 次(provisional) | 七行一次性语义;empower/fortify 2 次 = 1 个有效增益拍(先兑付后衰减含施放当轮);拉长 = 恢复跨轮延续、规划变简单 |
|
| 初始剩余次数 | 整数 [1,99] | duration_settlements | 七行一次性语义;empower/fortify duration 读表,语义 = 1 个有效增益拍(先兑付后衰减含施放当轮);拉长 = 恢复跨轮延续、规划变简单 |
|
||||||
| 叠层上限 | 整数 [1,16] | 2 / 2 / 16 / 16 / 16 / 16 / 16 / 1 / 1(provisional) | 仅叠加策略消费;empower/fortify 用刷新 ×1(冷却闸下不可能自叠加) |
|
| 叠层上限 | 整数 [1,16] | max_stack | 仅叠加策略消费;empower/fortify 用刷新 ×1(冷却闸下不可能自叠加) |
|
||||||
|
|
||||||
非调参的冻结项:三类合并策略语义、两种量纲语义、来源类别枚举、"先兑付后衰减"时序、拒绝原子性、零随机——改动走本文修订流程,不走调参。
|
非调参的冻结项:三类合并策略语义、两种量纲语义、来源类别枚举、"先兑付后衰减"时序、拒绝原子性、零随机——改动走本文修订流程,不走调参。
|
||||||
|
|
||||||
@@ -253,3 +253,5 @@ empower 与 fortify 是敌方技能池增益技在容器侧的数据落点(技
|
|||||||
| v0.3 | 2026-09-15 | 并存分支补容量语义(实例数上界 = 受理授予数,有界确定、无满层语义);P2 后置登记并存行高频授予(持续伤害类)的容量复核 |
|
| v0.3 | 2026-09-15 | 并存分支补容量语义(实例数上界 = 受理授予数,有界确定、无满层语义);P2 后置登记并存行高频授予(持续伤害类)的容量复核 |
|
||||||
| v0.4 | 2026-09-16 | **护甲等级掷点批·换装(与战斗结算 / 难度曲线与Boss / registry / 切片同批)**:defense_up(减伤 −30% ×2 层)整行退役换装 ac_up(护甲强化 +1 护甲等级 ×2 层)——unit 新增 ac 量纲(护甲等级阈值轴,幅度域 [−20,20] 且非 0,不入任何池),消费面 = 战斗结算护甲等级掷点判定;例子表与调参表同步;"叠满减伤触池底"的免伤墙随换装结构性消失。注:sapped 行与极性路由措辞的文档同步归增益状态既有修订批(本批不扩 scope) |
|
| v0.4 | 2026-09-16 | **护甲等级掷点批·换装(与战斗结算 / 难度曲线与Boss / registry / 切片同批)**:defense_up(减伤 −30% ×2 层)整行退役换装 ac_up(护甲强化 +1 护甲等级 ×2 层)——unit 新增 ac 量纲(护甲等级阈值轴,幅度域 [−20,20] 且非 0,不入任何池),消费面 = 战斗结算护甲等级掷点判定;例子表与调参表同步;"叠满减伤触池底"的免伤墙随换装结构性消失。注:sapped 行与极性路由措辞的文档同步归增益状态既有修订批(本批不扩 scope) |
|
||||||
| v0.5 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / 难度曲线与Boss / registry / 切片同批)**:状态表六行 → 九行——新增 empower(蓄力:敌方 +100% 入 enemy_output 池)与 fortify(硬化:敌方 +100% 入**敌方防御池 enemy_defense** 新池——硬化技载体,主角攻击乘区消费面归战斗结算)两行敌方技能施放增益,来源类别 = 敌方技能施放(技能行 buff_ref 引用、施放时长由技能行 buff_duration 覆盖——技能冷却与增益持续两个计时器);两行 duration 2 = 1 个有效增益拍的容器口径成文;**顺手清偿 v0.4 挂起的 sapped 文档同步**(2026-09-15 格面资源批入表未登记的文档漂移——状态行表与调参表补行);P1"刷新类首批内容行"核销(empower/fortify 即首批) |
|
| v0.5 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / 难度曲线与Boss / registry / 切片同批)**:状态表六行 → 九行——新增 empower(蓄力:敌方 +100% 入 enemy_output 池)与 fortify(硬化:敌方 +100% 入**敌方防御池 enemy_defense** 新池——硬化技载体,主角攻击乘区消费面归战斗结算)两行敌方技能施放增益,来源类别 = 敌方技能施放(技能行 buff_ref 引用、施放时长由技能行 buff_duration 覆盖——技能冷却与增益持续两个计时器);两行 duration 2 = 1 个有效增益拍的容器口径成文;**顺手清偿 v0.4 挂起的 sapped 文档同步**(2026-09-15 格面资源批入表未登记的文档漂移——状态行表与调参表补行);P1"刷新类首批内容行"核销(empower/fortify 即首批) |
|
||||||
|
| v0.7 | 2026-09-17 | **数值压缩批·文档同步(与 doc-conventions.md §5 数值纪律·强制收口条款同批)**:ambush 幅度 +3 flat → +1 flat(量纲未变、压缩倍数三阶下发,参见 `data/tables/status_effects.tres` 注释)。**双写失同步收口**:① 状态行表与调参表数值列改指路存根(指向 `data/tables/status_effects.tres` 与 `registry/entities.yaml` status_effect mvp_content);② 调参表删除「现行值」列(敌人系统 v0.6 先例),仅保留 schema 模板与取值域;③ 与 `地图战斗资源.md` v0.7 / `registry/entities.yaml` 同批落地——五步收口一并兑现 |
|
||||||
|
| v0.8 | 2026-09-17 | **数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 `data/tables/*.tres` 与 registry),8 处失同步值修正**——幅度例"两层 +50% 合计 +100"改"2 × 单行幅度(读表)";削弱例"−130 个百分点"改"−(2 × weaken 行幅度)(读表)";护甲例"AC10 → AC12(期望减免 21.25% → 28.75%)"改"基准 AC(读 hero 表)+ 层数"、派生读数删除;状态行表"时限/合并"列 1 次/×2/×16/×1 字面量改读表措辞;defense_up 退役条目删"−30%"数值;"两行 duration = 2"改"duration 表值(读表)";empower"×2"幅度与调参表"AC10 → 11 → 12"、"2 次 = 1 个有效增益拍"同步指路化 |
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
| ④ 衰减段 | 移除到期的临时效果;每轮恰好一次,含末轮——清图奖励先兑付、效果后衰减 |
|
| ④ 衰减段 | 移除到期的临时效果;每轮恰好一次,含末轮——清图奖励先兑付、效果后衰减 |
|
||||||
| ⑤ 判定段 | 先判主角倒下(负),再判敌人清空(胜),都不满足则继续下一轮 |
|
| ⑤ 判定段 | 先判主角倒下(负),再判敌人清空(胜),都不满足则继续下一轮 |
|
||||||
|
|
||||||
结算本体是纯逻辑步骤流:零界面依赖、禁止动画等待,随机消费只走封闭随机流。触发只读行动经济的相位读数与轮末标记,这条消息有棋盘路径和停手路径两个发射源,到达先后不承载语义。这些性质共同保证结算可回放:同样的种子、同样的事件序列,跑出的步骤流逐位复现——录像回放与断言复测都建立在它上面。随机消费恰三处(2026-09-16 敌人技能池批由两处扩为三处):战斗开始掷骰定敌方实际数量与攻击基线浮动,属于初始化随机、发生在结算步骤流之外;技能摇号属于回合内随机,但时点前置到每轮开轮、同样发生在结算步骤流之外(消费专用 `behavior_roll` 封闭流,每敌按生成序派生独立子流,单敌出招轨迹可独立复放、互不穿插);护甲等级掷点属于回合内随机、发生在步骤流之内(消费专用 `armor_roll` 封闭流,逐次掷逐次取号,可逐位回放)。三处皆封闭随机流,同种子同输入逐位复现。
|
结算本体是纯逻辑步骤流:零界面依赖、禁止动画等待,随机消费只走封闭随机流。触发只读行动经济的相位读数与轮末标记,这条消息有棋盘路径和停手路径两个发射源,到达先后不承载语义。这些性质共同保证结算可回放:同样的种子、同样的事件序列,跑出的步骤流逐位复现——录像回放与断言复测都建立在它上面。随机消费恰五处(2026-09-16 敌人技能池批由两处扩为三处;2026-09-17 分支节点图批换板入编排后扩为五处):战斗开始掷骰定敌方实际数量与攻击基线浮动,属于初始化随机、发生在结算步骤流之外;技能摇号属于回合内随机,但时点前置到每轮开轮、同样发生在结算步骤流之外(消费专用 `behavior_roll` 封闭流,每敌按生成序派生独立子流,单敌出招轨迹可独立复放、互不穿插);护甲等级掷点属于回合内随机、发生在步骤流之内(消费专用 `armor_roll` 封闭流,逐次掷逐次取号,可逐位回放);奖励格摇号(消费 `reward_roll` 封闭流,装板期格面资源批派发)与换板棋盘生成(消费 `board_gen` 封闭流,清图轮换板时点)均属初始化随机、发生在结算步骤流之外。五处皆封闭随机流,同种子同输入逐位复现。
|
||||||
|
|
||||||
举证:五段为流程编排,无计算;段序常量存配置表,加载时校验与定稿顺序完全一致,不一致拒绝启动。
|
举证:五段为流程编排,无计算;段序常量存配置表,加载时校验与定稿顺序完全一致,不一致拒绝启动。
|
||||||
|
|
||||||
@@ -113,9 +113,9 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
| 变量 | 含义 | 现行值 |
|
| 变量 | 含义 | 现行值 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| E | 效果折算当量(主角生命点) | — |
|
| E | 效果折算当量(主角生命点) | — |
|
||||||
| 参考敞口 | 折算百分比效果所用的代表性伤害敞口,配置值 | 12(provisional) |
|
| 参考敞口 | 折算百分比效果所用的代表性伤害敞口,配置值 | 读 `settlement.tres` equivalence_ref_damage(provisional) |
|
||||||
| 层数 × 行值 | 单条效果的叠层数与行值,读[增益状态](增益状态.md)的实例数据 | 行值归该系统 |
|
| 层数 × 行值 | 单条效果的叠层数与行值,读[增益状态](增益状态.md)的实例数据 | 行值归该系统 |
|
||||||
| 完美乘数 | 完美排雷给清图奖励的乘数,配置值 | 200,即翻倍(provisional) |
|
| 完美乘数 | 完美排雷给清图奖励的乘数,配置值 | 读 `settlement.tres` p_perfect(现行值读表) |
|
||||||
|
|
||||||
### 授予段兑付:极性路由,四类动作各归各账
|
### 授予段兑付:极性路由,四类动作各归各账
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
| 即时全体伤害(flat) | blast 正向 | 当场对全体存活敌各扣表值生命 | 场上无敌可打时零兑付,记"奖励未生效"行 |
|
| 即时全体伤害(flat) | blast 正向 | 当场对全体存活敌各扣表值生命 | 场上无敌可打时零兑付,记"奖励未生效"行 |
|
||||||
| 即时治疗(flat) | heal 正向 | 主角按表值回复并封顶上限 | 满血时零兑付,记"奖励未生效"行 |
|
| 即时治疗(flat) | heal 正向 | 主角按表值回复并封顶上限 | 满血时零兑付,记"奖励未生效"行 |
|
||||||
| 直伤(flat) | heal 负向 | 主角当场扣表值生命,不经增益状态 | 生命归零即走致死短路 |
|
| 直伤(flat) | heal 负向 | 主角当场扣表值生命,不经增益状态 | 生命归零即走致死短路 |
|
||||||
| 伏击加层 | blast 负向 | 敌方还手附加伤害 +2 层,入伏击池 | 超上限部分记"溢出未生效"行 |
|
| 伏击加层 | blast 负向 | 敌方还手附加伤害 +stacks 层(读 `reward.tres` ambush_double 行),入伏击池 | 超上限部分记"溢出未生效"行 |
|
||||||
|
|
||||||
伏击有上限([敌人系统](敌人系统.md)的反灾难护栏):blast 负向兑付超出上限时只有上限内生效,超出的逐颗记"溢出未生效"行。伏击聚成一个池,本结算里多个敌人共享同一池值、互不消耗,且只活一轮、轮末清零。其余四型的负向不受伏击上限约束,各自受池 clamp 与叠层上限承载。
|
伏击有上限([敌人系统](敌人系统.md)的反灾难护栏):blast 负向兑付超出上限时只有上限内生效,超出的逐颗记"溢出未生效"行。伏击聚成一个池,本结算里多个敌人共享同一池值、互不消耗,且只活一轮、轮末清零。其余四型的负向不受伏击上限约束,各自受池 clamp 与叠层上限承载。
|
||||||
|
|
||||||
@@ -145,13 +145,13 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
|
|
||||||
标错的惩罚不再是独立机制:标空旗(标了但格不是雷)= 该安全格格面资源的负向兑付(极性矩阵的"标错"分支),类型化、确定性、零额外派生——旧三选一哈希反噬(暴走 / 失衡 / 伏击+2 三池,坐标×板序号哈希派生)随格面资源批(2026-09-15)整段下线,三池内容收编为 attack / defense / blast 三型的负向行。负向兑付与"标旗未中"归因行同键去重,每雷格实例只触发一次;叠层已满授予被拒时记"奖励未生效"行,不静默吞掉。
|
标错的惩罚不再是独立机制:标空旗(标了但格不是雷)= 该安全格格面资源的负向兑付(极性矩阵的"标错"分支),类型化、确定性、零额外派生——旧三选一哈希反噬(暴走 / 失衡 / 伏击+2 三池,坐标×板序号哈希派生)随格面资源批(2026-09-15)整段下线,三池内容收编为 attack / defense / blast 三型的负向行。负向兑付与"标旗未中"归因行同键去重,每雷格实例只触发一次;叠层已满授予被拒时记"奖励未生效"行,不静默吞掉。
|
||||||
|
|
||||||
完美排雷全有或全无:一张板零误标且至少标中一面旗,清图奖励加倍(现行倍数为翻倍,provisional)。完美计数从装板起算、换图重置;高光行只记实际有效兑付(首份加被接受的第二份),首份即零兑付则高光行不发。标中旗的兑付行自带高光标记,与完美排雷的独立高光行构成两个强制高光检查点。
|
完美排雷全有或全无:一张板零误标且至少标中一面旗,清图奖励加倍(现行倍数读 `settlement.tres` p_perfect)。完美计数从装板起算、换图重置;高光行只记实际有效兑付(首份加被接受的第二份),首份即零兑付则高光行不发。标中旗的兑付行自带高光标记,与完美排雷的独立高光行构成两个强制高光检查点。
|
||||||
|
|
||||||
举证:兑付数值全部读配置表,本节无新公式;完美乘数的入账换算见收益对照表一节。
|
举证:兑付数值全部读配置表,本节无新公式;完美乘数的入账换算见收益对照表一节。
|
||||||
|
|
||||||
### 战斗段与胜负判定:谁先动手、怎么扣血、怎么定胜负
|
### 战斗段与胜负判定:谁先动手、怎么扣血、怎么定胜负
|
||||||
|
|
||||||
战斗段是兑现的最后一刀。主角的基础攻击恒存在——这是项目拍板:若基线为零,百分比增益乘上去永远是零,增益系统就空转了。攻击力域 [1, 999]、0 于加载期拒绝,现行值 6(provisional)。顺序固定:主角先手攻击顺位最前的存活敌人,随后按行序逐个存活敌人按本拍摇定技能还手;每个敌人依次走"按技能行兑现、结算伤害、执行上报(技能进冷却 + 保底计数)"三步且恰行动一次,主角不在其列。主角中途倒下,剩余敌人全部停手,直接进判定段。
|
战斗段是兑现的最后一刀。主角的基础攻击恒存在——这是项目拍板:若基线为零,百分比增益乘上去永远是零,增益系统就空转了。攻击力域 [1, 999]、0 于加载期拒绝,行值读主角表。顺序固定:主角先手攻击顺位最前的存活敌人,随后按行序逐个存活敌人按本拍摇定技能还手;每个敌人依次走"按技能行兑现、结算伤害、执行上报(技能进冷却 + 保底计数)"三步且恰行动一次,主角不在其列。主角中途倒下,剩余敌人全部停手,直接进判定段。
|
||||||
|
|
||||||
**开轮摇号与敌方技能兑现**(2026-09-16 敌人技能池批):敌人每拍做什么由开轮摇号决定——每轮轮次开始时,本系统在换算层排除冷却中技能,按行序逐敌从 `behavior_roll` 封闭流的独立子流摇定本拍动作写入实例池(首轮同样摇号;每轮恰摇一次;轮内刷新换图不重摇),随后冷却递减。摇定后、兑现前死亡 → 本拍技能作废、不动手(死亡即不动手)。结算战斗段只按技能行兑现:伤害技走三乘法链(见下),增益技记一行施放行并把状态效果按技能行持续回合挂入[增益状态](增益状态.md)容器——0 伤害动作不掷不折、不兑付伏击。池模板、技能行、冷却与保底语义归[敌人系统](敌人系统.md)(引用不转述)。
|
**开轮摇号与敌方技能兑现**(2026-09-16 敌人技能池批):敌人每拍做什么由开轮摇号决定——每轮轮次开始时,本系统在换算层排除冷却中技能,按行序逐敌从 `behavior_roll` 封闭流的独立子流摇定本拍动作写入实例池(首轮同样摇号;每轮恰摇一次;轮内刷新换图不重摇),随后冷却递减。摇定后、兑现前死亡 → 本拍技能作废、不动手(死亡即不动手)。结算战斗段只按技能行兑现:伤害技走三乘法链(见下),增益技记一行施放行并把状态效果按技能行持续回合挂入[增益状态](增益状态.md)容器——0 伤害动作不掷不折、不兑付伏击。池模板、技能行、冷却与保底语义归[敌人系统](敌人系统.md)(引用不转述)。
|
||||||
|
|
||||||
@@ -159,8 +159,8 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
|
|
||||||
```
|
```
|
||||||
① 攻击伤害值 A = 攻击基线 × 技能伤害倍率 (普通攻击倍率恒 1;主角侧恒 1)
|
① 攻击伤害值 A = 攻击基线 × 技能伤害倍率 (普通攻击倍率恒 1;主角侧恒 1)
|
||||||
② AC 判断值:d20 vs 防守方护甲等级 → 档位折扣;nat20 → 暴击 ×2(量程上下限)
|
② AC 判断值:掷点(骰面读表)vs 防守方护甲等级 → 档位折扣;天然最大面 → 暴击 ×暴击倍率(读表)(量程上下限)
|
||||||
③ 命中伤害 H = (A × a) × 甲效倍率 (克制 1.5 / 中性 1.0 / 被克 0.5;敌打主角无甲轴恒中性)
|
③ 命中伤害 H = (A × a) × 甲效倍率 (克制/中性/被克三档读 settlement.tres 甲效矩阵;敌打主角无甲轴恒中性)
|
||||||
── 以下既有链不动 ──
|
── 以下既有链不动 ──
|
||||||
增益池乘区(含敌方防御池)→ 伏击附加(后置加法、必中全额、不吃 AC)→ 向下取整 → 伤害下限 max(1,·)
|
增益池乘区(含敌方防御池)→ 伏击附加(后置加法、必中全额、不吃 AC)→ 向下取整 → 伤害下限 max(1,·)
|
||||||
```
|
```
|
||||||
@@ -169,11 +169,11 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
|
|
||||||
| 攻击类型 \ 护甲类型 | 轻甲 | 魔法护甲 | 重甲 | 语义 |
|
| 攻击类型 \ 护甲类型 | 轻甲 | 魔法护甲 | 重甲 | 语义 |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| 普通 | 100 | 100 | 100 | 基线分量:不吃克制,只吃增益修正 |
|
| 普通 | 中性档 | 中性档 | 中性档 | 基线分量:不吃克制,只吃增益修正 |
|
||||||
| 穿刺 | 100 | 150 | 50 | 穿透附魔护甲,破不开重甲 |
|
| 穿刺 | 中性档 | 克制档 | 被克档 | 穿透附魔护甲,破不开重甲 |
|
||||||
| 魔法 | 100 | 50 | 150 | 绕得过重甲,被魔法护甲吸收 |
|
| 魔法 | 中性档 | 被克档 | 克制档 | 绕得过重甲,被魔法护甲吸收 |
|
||||||
|
|
||||||
倍率只三档:克制 ×150、中性 ×100、被克 ×50。攻击类型是分量的固有属性(每个分量恒属普通 / 穿刺 / 魔法 之一),护甲类型是敌单位的固有属性,两者都不随层数、来源与轮次漂移。矩阵键集 3×3 满格、结构冻结,数值 provisional。主角增益只修正普通分量,两个充能分量不吃百分比修正。
|
倍率只三档:克制 / 中性 / 被克(三档倍率读 `settlement.tres` 甲效矩阵)。攻击类型是分量的固有属性(每个分量恒属普通 / 穿刺 / 魔法 之一),护甲类型是敌单位的固有属性,两者都不随层数、来源与轮次漂移。矩阵键集 3×3 满格、结构冻结,数值 provisional。主角增益只修正普通分量,两个充能分量不吃百分比修正。
|
||||||
|
|
||||||
普通分量由攻击力基线直接供给;穿刺与魔法分量由**充能**供给——充能是挖掘期攒下、按攻击类型分桶的附加伤害储备,本结算战斗段一次性消费、轮末清零,跨轮零存量。
|
普通分量由攻击力基线直接供给;穿刺与魔法分量由**充能**供给——充能是挖掘期攒下、按攻击类型分桶的附加伤害储备,本结算战斗段一次性消费、轮末清零,跨轮零存量。
|
||||||
|
|
||||||
@@ -181,33 +181,33 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
|||||||
|
|
||||||
| 奖励触发源 | 现行奖励内容 | 换算与上限 |
|
| 奖励触发源 | 现行奖励内容 | 换算与上限 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 本轮每挖开一个安全格 | 给穿刺桶充能 | 每格表值,单轮计数上限(现行每格 1、上限 8,provisional;每格 0 = 该奖励关闭,上限 0 = 不封顶) |
|
| 本轮每挖开一个安全格 | 给穿刺桶充能 | 每格表值,单轮计数上限(per_unit / cap 现行值读 `settlement.tres` charge_grants;per_unit 0 = 该奖励关闭,cap 0 = 不封顶) |
|
||||||
| 每面首次标中的旗(与削弱兑付同批判定、每雷只计一次) | 给魔法桶充能 | 每雷表值,无上限——行动点预算天然限界(现行每雷 2,provisional) |
|
| 每面首次标中的旗(与削弱兑付同批判定、每雷只计一次) | 给魔法桶充能 | 每雷表值,无上限——行动点预算天然限界(per_unit 现行值读 `settlement.tres` charge_grants) |
|
||||||
|
|
||||||
两条都是奖励侧现行定义(暂存结算表 `charge_grants`,正式归属见「待办」):换桶、换量、或把开格奖励换成增益与道具,都不触动攻击类型与甲效矩阵。
|
两条都是奖励侧现行定义(暂存结算表 `charge_grants`,正式归属见「待办」):换桶、换量、或把开格奖励换成增益与道具,都不触动攻击类型与甲效矩阵。
|
||||||
|
|
||||||
**护甲等级掷点:必中、非归零,只吃基础攻击分量**(2026-09-16 定稿落地,判定式与全部数值已拍板;判定对象措辞随敌人技能池批改述)。防守方由此多了一条数值轴——护甲等级(数据键 `armor_class`):攻击永远命中,没有 miss、没有零收益白回合;只有吃掷点的分量在掷点低于防守方护甲等级时按减伤档位打折,档位再重也不归零。判定式:攻击结算时掷 1d20,掷点 ≥ 防守方护甲等级 + 攻击加成 → 全额;掷点 < 护甲等级按缺口(护甲等级 − 掷点)打折——缺口 1-3 → ×0.75,缺口 4-7 → ×0.5,缺口 8+ → ×0.25,三档皆非零档。暴击:天然 20(nat20)使该次基础攻击分量 ×2,双方同规,且 nat20 恒全额(暴击与折扣互斥;nat20 暴击是掷点层概念,与技能重击〔池技能〕严格区分——两层不得混述)。伤害下限:任何攻击落地伤害至少 1(全局 max(1, ·))——"被减伤归零 v=0"零值伤害行语义随批退役,重档折扣的攻击行在行文本记"被压制"。掷点范围:只有基础攻击分量吃掷点——主角先手攻击的普通分量,敌方技能的基础伤害分量(= 攻击基线 × 技能伤害倍率,普通攻击倍率 1 为特例);无伤害分量的技能(增益类)不掷不折;穿刺与魔法两个充能分量不吃;棋盘来源一律无视护甲等级——伏击附加、爆裂、清障炸药、奖励即时伤害全部必中全额不掷,这是本机制的边界切口,与"奖励/惩罚必中"同构。护甲等级(数值轴,掷点打折)与护甲类型(属性轴,克制乘区)严格分离:护甲类型不做护甲等级映射,克制矩阵 150/100/50 消费面不变,两概念在文档、表字段与代码键中不得混用。数值载体:主角基准护甲等级 10(暂定),ac_up(护甲强化)+1/层 ×2 层在其上加算;敌方首关行值暂定 0,正式行值归怪物设定批(登记[待办清单](../../06-待办清单.md))。攻击加成(`attack_bonus`)为结构位预留字段,切片恒 0,未来归元进度 / 武器附魔投值。掷点时机在结算战斗段内、每次基础攻击伤害计算时判定,消费 `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放)。
|
**护甲等级掷点:必中、非归零,只吃基础攻击分量**(2026-09-16 定稿落地,判定式与全部数值已拍板;判定对象措辞随敌人技能池批改述)。防守方由此多了一条数值轴——护甲等级(数据键 `armor_class`):攻击永远命中,没有 miss、没有零收益白回合;只有吃掷点的分量在掷点低于防守方护甲等级时按减伤档位打折,档位再重也不归零。判定式:攻击结算时掷单骰(骰面读表),掷点 ≥ 防守方护甲等级 + 攻击加成 → 全额;掷点 < 护甲等级按缺口(护甲等级 − 掷点)查减伤档位表打折——边界与档值读 `settlement.tres` 减伤档位表,三档皆非零档。暴击:天然最大面(读表)使该次基础攻击分量 ×暴击倍率(读表),双方同规,且天然最大面恒全额(暴击与折扣互斥;天然最大面〔nat20〕暴击是掷点层概念,与技能重击〔池技能〕严格区分——两层不得混述)。伤害下限:任何攻击落地伤害至少 damage_floor(读表,全局 max(damage_floor, ·))——"被减伤归零 v=0"零值伤害行语义随批退役,重档折扣的攻击行在行文本记"被压制"。掷点范围:只有基础攻击分量吃掷点——主角先手攻击的普通分量,敌方技能的基础伤害分量(= 攻击基线 × 技能伤害倍率,普通攻击倍率 1 为特例);无伤害分量的技能(增益类)不掷不折;穿刺与魔法两个充能分量不吃;棋盘来源一律无视护甲等级——伏击附加、爆裂、清障炸药、奖励即时伤害全部必中全额不掷,这是本机制的边界切口,与"奖励/惩罚必中"同构。护甲等级(数值轴,掷点打折)与护甲类型(属性轴,克制乘区)严格分离:护甲类型不做护甲等级映射,克制矩阵档值读表、消费面不变,两概念在文档、表字段与代码键中不得混用。数值载体:主角与敌方护甲等级行值读 hero / enemy 表的 armor_class 列(正式行值归怪物设定批,登记[待办清单](../../06-待办清单.md)),ac_up(护甲强化)在其上加算(幅度/层数读 `status_effects.tres`)。攻击加成(`attack_bonus`)为结构位预留字段,切片恒 0,未来归元进度 / 武器附魔投值。掷点时机在结算战斗段内、每次基础攻击伤害计算时判定,消费 `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放)。
|
||||||
|
|
||||||
EV 参考数(按判定式复算,作对照锚写进文档):基准 AC10 期望减免 21.25%,AC11 25%,AC12 28.75%;对比旧 defense_up 满层 −60% 的减伤墙已整体退役换装为 AC(无双轨)。微调旋钮 = 档位边界与档位值,不动护甲等级值。换装点锚定:基准 AC10 自带约 −21% 敌方输出期望,该方向性偏移与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)已登记的加难杠杆扫描合并处理;其生存链区间模型按掷点带宽口径复核(带宽含暴击档与折扣档),"零红档"验收保留。
|
EV 参考数不入正文(派生读数,需要时按判定式与现行表值自行复算);旧 defense_up 的减伤墙已整体退役换装为 AC(无双轨,见版本历史)。微调旋钮 = 档位边界与档位值,不动护甲等级值。换装点锚定:基准 AC(读 hero 表)自带的方向性偏移与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)已登记的加难杠杆扫描合并处理;其生存链区间模型按掷点带宽口径复核(带宽含暴击档与折扣档),"零红档"验收保留。
|
||||||
|
|
||||||
**结论**:先合成、再取整、全程非负;吃掷点分量必中非归零、低掷按档位折扣、nat20 暴击翻倍恒全额、落地伤害保底 ≥1;溢杀丢弃、治疗封顶、死亡即时判定。
|
**结论**:先合成、再取整、全程非负;吃掷点分量必中非归零、低掷按档位折扣、天然最大面暴击恒全额(倍率读表)、落地伤害保底 ≥ damage_floor(读表);溢杀丢弃、治疗封顶、死亡即时判定。
|
||||||
|
|
||||||
```
|
```
|
||||||
敌方一次技能攻击 = max(1, floor( 掷点档位技能基础分量 + 伏击附加 ) × 主角防御乘数 × 敌方输出乘数 );伏击为后置加法,不进乘区、不掷不折
|
敌方一次技能攻击 = max(damage_floor, floor( 掷点档位技能基础分量 + 伏击附加 ) × 主角防御乘数 × 敌方输出乘数 );伏击为后置加法,不进乘区、不掷不折
|
||||||
主角一次攻击 = max(1, floor( Σ三分量 × (100 + 敌方防御乘数池合成值) ÷ 100 ) )——敌方防御池(硬化载体)乘在三分量合计之后
|
主角一次攻击 = max(damage_floor, floor( Σ三分量 × (100 + 敌方防御乘数池合成值) ÷ 100 ) )——敌方防御池(硬化载体)乘在三分量合计之后
|
||||||
乘数 = 1 + 池合成值 ÷ 100;池内加算、每池独立封顶 ±100 百分点 → 乘数域 [0, 2];四池对称:敌打主角 = hero_defense × enemy_output,主角打敌 = hero_offense × enemy_defense(切片现状注记:hero_offense 现行走普通分量增益直乘、未并入合计乘区——正式化随 ADR 批收口,见待办清单)
|
乘数 = 1 + 池合成值 ÷ 100;池内加算、每池独立封顶 ±100 百分点 → 乘数域 [0, 2];四池对称:敌打主角 = hero_defense × enemy_output,主角打敌 = hero_offense × enemy_defense(切片现状注记:hero_offense 现行走普通分量增益直乘、未并入合计乘区——正式化随 ADR 批收口,见待办清单)
|
||||||
护甲等级掷点:掷 1d20,掷点 ≥ 护甲等级 + 攻击加成 → 全额;低掷按缺口查档——1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25(无零档)
|
护甲等级掷点:掷单骰(骰面读表),掷点 ≥ 护甲等级 + 攻击加成 → 全额;低掷按缺口查减伤档位表(边界与档值读表,无零档)
|
||||||
暴击:nat20 → 该次基础攻击分量 ×2 且恒全额(双方同规;掷点层概念,与技能重击严格区分)
|
暴击:天然最大面(读表)→ 该次基础攻击分量 ×暴击倍率(读表)且恒全额(双方同规;掷点层概念,与技能重击严格区分)
|
||||||
伤害下限:任何攻击落地伤害 ≥ 1(全局 max(1, ·)——折扣与池归零都不产生 v=0 伤害行)
|
伤害下限:任何攻击落地伤害 ≥ damage_floor(读表,全局 max(damage_floor, ·)——折扣与池归零都不产生 v=0 伤害行)
|
||||||
吃掷点分量 = 主角普通分量 / 敌方技能基础伤害分量;穿刺、魔法、增益施放与棋盘来源伤害不掷不折
|
吃掷点分量 = 主角普通分量 / 敌方技能基础伤害分量;穿刺、魔法、增益施放与棋盘来源伤害不掷不折
|
||||||
治疗量 = min( 当前生命 + 表值, 生命上限 )
|
治疗量 = min( 当前生命 + 表值, 生命上限 )
|
||||||
```
|
```
|
||||||
|
|
||||||
| 边界 | 规则 |
|
| 边界 | 规则 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 修正池封顶 | 同侧百分比修正加算后每池独立收口 ±100 百分点;乘数可为 0——输出压制触池底时落地伤害由全局下限保底 ≥1(叠满免伤归零的结构面已随护甲等级换装消失) |
|
| 修正池封顶 | 同侧百分比修正加算后每池独立收口 ±100 百分点;乘数可为 0——输出压制触池底时落地伤害由全局下限保底 damage_floor(读表)(叠满免伤归零的结构面已随护甲等级换装消失) |
|
||||||
| 伤害下限 | 任何攻击落地伤害至少 1(全局 max(1, ·));"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制"——免伤与零输出仍逐行可见 |
|
| 伤害下限 | 任何攻击落地伤害至少 damage_floor(读表,全局 max(damage_floor, ·));"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制"——免伤与零输出仍逐行可见 |
|
||||||
| 护甲等级掷点 | 必中非归零:掷 1d20 对防守方护甲等级 + 攻击加成(恒 0),低掷按缺口三档折扣、档位不设零档;nat20 暴击 ×2 恒全额;只吃基础攻击分量(主角普通分量、敌方技能基础伤害分量),棋盘来源伤害与增益施放不掷不折 |
|
| 护甲等级掷点 | 必中非归零:掷单骰(骰面读表)对防守方护甲等级 + 攻击加成(恒 0),低掷按缺口查减伤档位表(读表)三档折扣、档位不设零档;天然最大面暴击 ×暴击倍率(读表)恒全额;只吃基础攻击分量(主角普通分量、敌方技能基础伤害分量),棋盘来源伤害与增益施放不掷不折 |
|
||||||
| 溢杀 | 一刀超出目标剩余生命的部分丢弃:不转移给下一个敌人、不存续、无负生命中间态 |
|
| 溢杀 | 一刀超出目标剩余生命的部分丢弃:不转移给下一个敌人、不存续、无负生命中间态 |
|
||||||
| 治疗 | 生命不溢出上限;满血正向治疗零兑付,记"奖励未生效"行 |
|
| 治疗 | 生命不溢出上限;满血正向治疗零兑付,记"奖励未生效"行 |
|
||||||
| 死亡判定 | 生命归 0 即倒下;敌人受击即死;主角倒下战斗段立即短路;判定段先判主角、再判敌人(防御性次序) |
|
| 死亡判定 | 生命归 0 即倒下;敌人受击即死;主角倒下战斗段立即短路;判定段先判主角、再判敌人(防御性次序) |
|
||||||
@@ -272,7 +272,7 @@ EV 参考数(按判定式复算,作对照锚写进文档):基准 AC10
|
|||||||
1. 战斗开始序列跑完(关闸门、开容器、掷骰定敌数、生成敌人、装板并预分配资源、发开轮通知 + 开轮摇号),进入第一轮挖掘期。
|
1. 战斗开始序列跑完(关闸门、开容器、掷骰定敌数、生成敌人、装板并预分配资源、发开轮通知 + 开轮摇号),进入第一轮挖掘期。
|
||||||
2. 挖掘期本系统只缓冲事实流(开格、标旗、撤旗入结算队列),不做任何兑付。
|
2. 挖掘期本系统只缓冲事实流(开格、标旗、撤旗入结算队列),不做任何兑付。
|
||||||
3. 轮末自动触发五段结算,触发与事件到达序无关。
|
3. 轮末自动触发五段结算,触发与事件到达序无关。
|
||||||
4. 授予段先做抵消过滤(标旗后被撤旗的不结算),再按极性矩阵三批兑现:开安全格 / 标中旗兑正向、开雷格 / 标错旗兑负向、清图发清图奖励对象(完美翻倍)。
|
4. 授予段先做抵消过滤(标旗后被撤旗的不结算),再按极性矩阵三批兑现:开安全格 / 标中旗兑正向、开雷格 / 标错旗兑负向、清图发清图奖励对象(完美乘数读 settlement.tres p_perfect)。
|
||||||
5. 增益合成、主角先手加逐敌按摇定技能兑付(伤害技三乘法链 / 增益技施放行)、衰减恰好一次。
|
5. 增益合成、主角先手加逐敌按摇定技能兑付(伤害技三乘法链 / 增益技施放行)、衰减恰好一次。
|
||||||
6. 判定段先主角后敌人:继续通知同图、清图换图续轮、胜负走战斗结束清理(魔法道具背包不清)。
|
6. 判定段先主角后敌人:继续通知同图、清图换图续轮、胜负走战斗结束清理(魔法道具背包不清)。
|
||||||
7. 明细流水全程落行,供呈现、回放与导出。
|
7. 明细流水全程落行,供呈现、回放与导出。
|
||||||
@@ -291,15 +291,15 @@ EV 参考数(按判定式复算,作对照锚写进文档):基准 AC10
|
|||||||
|
|
||||||
| 参数 | 域 | 现行值 | 说明 |
|
| 参数 | 域 | 现行值 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 参考敞口 | int [1, 999] | 12(provisional) | 当量折算的代表性敞口;变更须重跑全部对账 |
|
| 参考敞口 | int [1, 999] | 读 `settlement.tres` equivalence_ref_damage(provisional) | 当量折算的代表性敞口;变更须重跑全部对账 |
|
||||||
| 完美乘数 | percent {100, 200} | 200(provisional) | 100 为仅高光、无第二份;域外加载拒绝 |
|
| 完美乘数 | percent {100, 200} | 读 `settlement.tres` p_perfect(provisional) | 100 为仅高光、无第二份;域外加载拒绝 |
|
||||||
| 充能奖励定义 `charge_grants` | Dictionary:触发源 → {attack_type, per_unit, cap} | 开格 → 穿刺 1/格(计数上限 8)· 标中旗 → 魔法 2/雷(无上限)(provisional) | 奖励侧定义:附加伤害储备按攻击类型分桶,本字典决定哪个源投哪个桶、每单位几点、单轮计数上限;整表替换不改攻击类型与甲效矩阵(正式归属见「待办」) |
|
| 充能奖励定义 `charge_grants` | Dictionary:触发源 → {attack_type, per_unit, cap} | 现行映射读 `settlement.tres` charge_grants:开格 → 穿刺桶 · 标中旗 → 魔法桶(per_unit / cap 读表,provisional) | 奖励侧定义:附加伤害储备按攻击类型分桶,本字典决定哪个源投哪个桶、每单位几点、单轮计数上限;整表替换不改攻击类型与甲效矩阵(正式归属见「待办」) |
|
||||||
| 甲效矩阵 | percent | 克制 150 / 中性 100 / 被克 50(provisional) | 键集 = 攻击类型 {普通, 穿刺, 魔法} × 护甲类型 {轻甲, 魔法护甲, 重甲},3×3 满格结构冻结;数值归调参 |
|
| 甲效矩阵 | percent | 克制/中性/被克三档现行值读 `settlement.tres`(provisional) | 键集 = 攻击类型 {普通, 穿刺, 魔法} × 护甲类型 {轻甲, 魔法护甲, 重甲},3×3 满格结构冻结;数值归调参 |
|
||||||
| 护甲等级掷点 | 骰面 int [2,1000] · nat 最大面 [1,骰面] · 暴击倍率 percent [100,999] | d20 · nat20 · ×200(2026-09-16 拍板定稿) | 回合内随机:每吃掷点分量逐次掷骰,掷点低于防守方护甲等级 + 攻击加成触发档位折扣;nat20 暴击 ×2 且恒全额(双方同规);消费 `armor_roll` 封闭流(逐次掷逐次取号) |
|
| 护甲等级掷点 | 骰面 int [2,1000] · nat 最大面 [1,骰面] · 暴击倍率 percent [100,999] | 骰面 / nat 最大面 / 暴击倍率读表(2026-09-16 拍板定稿) | 回合内随机:每吃掷点分量逐次掷骰,掷点低于防守方护甲等级 + 攻击加成触发档位折扣;天然最大面暴击 ×暴击倍率(读表)且恒全额(双方同规);消费 `armor_roll` 封闭流(逐次掷逐次取号) |
|
||||||
| 减伤档位表 | 边界升序 + 档位值降序 percent [1,99],档数 = 边界数 + 1 | 边界 [3, 7] · 档位 [75, 50, 25](2026-09-16 拍板定稿) | 缺口 1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25;档位不设零档(非归零);EV 参考数:AC10 期望减免 21.25% / AC11 25% / AC12 28.75%;微调旋钮 = 本表,不动护甲等级值 |
|
| 减伤档位表 | 边界升序 + 档位值降序 percent [1,99],档数 = 边界数 + 1 | 边界与档值读 `settlement.tres`(roll_tier_bounds / discount 档位,2026-09-16 拍板定稿) | 低掷缺口按边界查档(读表);档位不设零档(非归零);微调旋钮 = 本表,不动护甲等级值 |
|
||||||
| 伤害下限 `damage_floor` | int [1, 999] | 1(2026-09-16 拍板定稿) | 任何攻击落地伤害全局 max(1, ·);零值伤害行语义随批退役 |
|
| 伤害下限 `damage_floor` | int [1, 999] | 读 `settlement.tres` damage_floor(2026-09-16 拍板定稿) | 任何攻击落地伤害全局 max(damage_floor, ·);零值伤害行语义随批退役 |
|
||||||
| 攻击加成 `attack_bonus` | int [0, 999] | 0(结构位) | 掷点阈值 = 防守方护甲等级 + 攻击加成;切片恒 0,未来归元进度 / 武器附魔投值 |
|
| 攻击加成 `attack_bonus` | int [0, 999] | 0(结构位) | 掷点阈值 = 防守方护甲等级 + 攻击加成;切片恒 0,未来归元进度 / 武器附魔投值 |
|
||||||
| 护甲等级 `armor_class`(防守方字段) | int [0, 999] | 主角 10(暂定)· 敌方首关 0(暂定) | 字段本体在敌人表与主角表(归[敌人系统](敌人系统.md)),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md);敌方正式行值归怪物设定批(见待办清单);与护甲类型(克制属性轴)两概念不得混用 |
|
| 护甲等级 `armor_class`(防守方字段) | int [0, 999] | 主角与敌方现行值读 hero / enemy 表 armor_class 列(暂定) | 字段本体在敌人表与主角表(归[敌人系统](敌人系统.md)),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md);敌方正式行值归怪物设定批(见待办清单);与护甲类型(克制属性轴)两概念不得混用 |
|
||||||
| 段序常量 | 固定五段 | 结构冻结 | 加载期恒等校验,违例拒绝启动 |
|
| 段序常量 | 固定五段 | 结构冻结 | 加载期恒等校验,违例拒绝启动 |
|
||||||
| 池封顶 | ±100 百分点 | 结构冻结 | 乘数域随之 [0, 2] |
|
| 池封顶 | ±100 百分点 | 结构冻结 | 乘数域随之 [0, 2] |
|
||||||
| 取整方向 | 向下取整 | 结构冻结 | 单一规则,非调参项 |
|
| 取整方向 | 向下取整 | 结构冻结 | 单一规则,非调参项 |
|
||||||
@@ -317,12 +317,12 @@ EV 参考数(按判定式复算,作对照锚写进文档):基准 AC10
|
|||||||
- 完美排雷:零误标且至少一面标中时第二份兑付恰一次并发高光行;出现误标或零标中则无高光;计数换图重置。
|
- 完美排雷:零误标且至少一面标中时第二份兑付恰一次并发高光行;出现误标或零标中则无高光;计数换图重置。
|
||||||
- 开轮摇号:每轮恰摇一次(首轮同样;轮内刷新换图不重摇);摇定后兑现前死亡 → 本拍技能作废(零敌方行动行)、不进冷却不进保底计数;已兑现技能进冷却、保底计数按执行结果更新。
|
- 开轮摇号:每轮恰摇一次(首轮同样;轮内刷新换图不重摇);摇定后兑现前死亡 → 本拍技能作废(零敌方行动行)、不进冷却不进保底计数;已兑现技能进冷却、保底计数按执行结果更新。
|
||||||
- 战斗段次序:主角先手后逐敌"按摇定技能行兑现、结算伤害、执行上报"各恰一次;主角倒下立即短路,剩余敌人不行动。
|
- 战斗段次序:主角先手后逐敌"按摇定技能行兑现、结算伤害、执行上报"各恰一次;主角倒下立即短路,剩余敌人不行动。
|
||||||
- 护甲等级掷点:吃掷点分量(主角普通分量、敌方技能基础伤害分量)逐次掷 d20——掷点 ≥ 防守方护甲等级 + 攻击加成全额兑付;低掷按缺口查档(1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25),档位不设零档;nat20 暴击该分量 ×2 且恒全额;穿刺/魔法分量与棋盘来源伤害(伏击附加、爆裂、清障炸药、奖励即时)及增益施放不掷不折。
|
- 护甲等级掷点:吃掷点分量(主角普通分量、敌方技能基础伤害分量)逐次掷单骰(骰面读表)——掷点 ≥ 防守方护甲等级 + 攻击加成全额兑付;低掷按缺口查减伤档位表(边界与档值读表),档位不设零档;天然最大面暴击该分量 ×暴击倍率(读表)且恒全额;穿刺/魔法分量与棋盘来源伤害(伏击附加、爆裂、清障炸药、奖励即时)及增益施放不掷不折。
|
||||||
- 伤害下限与留档:任何攻击落地伤害 ≥1,全流水零 v=0 伤害行、零"被减伤归零"行;掷点读数、护甲等级与档位随伤害行留档,nat20 行带暴击标记。
|
- 伤害下限与留档:任何攻击落地伤害 ≥ damage_floor(读表),全流水零 v=0 伤害行、零"被减伤归零"行;掷点读数、护甲等级与档位随伤害行留档,天然最大面(nat20)行带暴击标记。
|
||||||
- 数值边界:伤害下限保底后全程无零值/负值伤害;溢杀丢弃不转移;治疗封顶不溢出。
|
- 数值边界:伤害下限保底后全程无零值/负值伤害;溢杀丢弃不转移;治疗封顶不溢出。
|
||||||
- 出口分发:先判主角倒下(负)再判敌清空(胜);停手与耗尽轮恒同图,清图轮才允许换图。
|
- 出口分发:先判主角倒下(负)再判敌清空(胜);停手与耗尽轮恒同图,清图轮才允许换图。
|
||||||
- 关卡收束:关卡结束清空魔法道具背包恰一次并返回清空前计数;战斗结束不清背包。
|
- 关卡收束:关卡结束清空魔法道具背包恰一次并返回清空前计数;战斗结束不清背包。
|
||||||
- 可回放(封闭随机流口径):同种子同输入两遍步骤流逐位复现;随机消费仅限三处封闭随机流——开战掷骰(初始化随机)、技能摇号 `behavior_roll`(回合内、开轮时点、步骤流之外)、护甲等级掷点 `armor_roll`(回合内、步骤流之内),无未登记随机源、零界面等待;单敌出招轨迹可独立复放、互不穿插。
|
- 可回放(封闭随机流口径):同种子同输入两遍步骤流逐位复现;随机消费仅限五处封闭随机流——开战掷骰(初始化随机)、技能摇号 `behavior_roll`(回合内、开轮时点、步骤流之外)、护甲等级掷点 `armor_roll`(回合内、步骤流之内)、奖励格摇号 `reward_roll`(初始化、装板期)、换板棋盘生成 `board_gen`(初始化、清图轮换板时点),无未登记随机源、零界面等待;单敌出招轨迹可独立复放、互不穿插。
|
||||||
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
|
- 无来源即炸:每行明细都能指回一个来源事实(棋盘格、单位、清图或段级结论);找不到来源即断言失败,行型与来源类别两层豁免清单见明细流水一节,豁免行仍受其它契约约束。
|
||||||
- 行型封闭:流水只出现本文登记的 10 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。
|
- 行型封闭:流水只出现本文登记的 10 类行型;新增或下线行型必须走本文修订并同步呈现层行格式化,未登记行型不得落行。
|
||||||
|
|
||||||
@@ -345,3 +345,4 @@ EV 参考数(按判定式复算,作对照锚写进文档):基准 AC10
|
|||||||
| v0.9 | 2026-09-16 | 新增「呈现只读面」节(06 清单「呈现只读面契约登记缺口」闭合):把切片已实现的呈现面函数与信号登记为对外契约——呈现状态快照 `presentation_snapshot`、战斗进行中谓词 `is_battle_live`、奖励身份查询 `query_reward_identity`、结算快照信号 `settlement_snapshot`、战斗结束信号 `battle_finished` 五件成文(载荷字段、消费方、销毁前捕获语义),并登记"呈现层唯一状态读取出口、禁链式穿透"的出口纪律与诊断观测面的非契约定位;依赖与输出表 HUD 框架下游行补指路 |
|
| v0.9 | 2026-09-16 | 新增「呈现只读面」节(06 清单「呈现只读面契约登记缺口」闭合):把切片已实现的呈现面函数与信号登记为对外契约——呈现状态快照 `presentation_snapshot`、战斗进行中谓词 `is_battle_live`、奖励身份查询 `query_reward_identity`、结算快照信号 `settlement_snapshot`、战斗结束信号 `battle_finished` 五件成文(载荷字段、消费方、销毁前捕获语义),并登记"呈现层唯一状态读取出口、禁链式穿透"的出口纪律与诊断观测面的非契约定位;依赖与输出表 HUD 框架下游行补指路 |
|
||||||
| v0.10 | 2026-09-16 | **护甲等级掷点批·定稿落地(用户拍板,数字即规范——与敌人系统 / 难度曲线与Boss / registry / 切片代码同批)**:判定式定稿——掷 1d20,掷点 ≥ 防守方护甲等级 + 攻击加成(结构位 `attack_bonus`,切片恒 0)→ 全额,低掷按缺口三档折扣(1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25,无零档);nat20 暴击该基础攻击分量 ×2 且恒全额(双方同规);伤害下限全局 max(1, ·)(`damage_floor` = 1)——"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制";百分比减伤增益 defense_up 整体退役换装 ac_up(护甲强化 +1 AC/层 ×2 层,`unit=ac` 新量纲、不入任何池,无双轨),off_guard 与池结构零改动;护甲等级与护甲类型分离成文(数值轴 / 属性轴,不做映射)。数值载体:主角 armor_class 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批,登记待办清单);掷点流归属定稿 = `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放),调参表掷点/档位/下限/加成五行由未定改拍板值;EV 参考数成文(AC10 21.25% / AC11 25% / AC12 28.75%,按判定式复算),换装点锚定(基准 AC10 自带约 −21% 敌方输出期望)与加难杠杆扫描合并处理;验收标准改写掷点条目 + 新增伤害下限与留档条目;切片同批:settlement.tres 七参数入表、战斗段掷点判定/暴击/下限/行留档(roll/ac/tier/crit 字段)、armor_roll 流接入 rng_service(黄金向量 m=42 scope0 = 4806095330042243845)、零值伤害行分支删除、冒烟护栏与掷点行为断言(nat20 种子 / AC12 档位分布 / 池触底保底 / 棋盘必中)、英雄卡与敌人卡 AC 展示、ac_up 状态槽图标、nat20 金框高亮 |
|
| v0.10 | 2026-09-16 | **护甲等级掷点批·定稿落地(用户拍板,数字即规范——与敌人系统 / 难度曲线与Boss / registry / 切片代码同批)**:判定式定稿——掷 1d20,掷点 ≥ 防守方护甲等级 + 攻击加成(结构位 `attack_bonus`,切片恒 0)→ 全额,低掷按缺口三档折扣(1-3 → ×0.75 · 4-7 → ×0.5 · 8+ → ×0.25,无零档);nat20 暴击该基础攻击分量 ×2 且恒全额(双方同规);伤害下限全局 max(1, ·)(`damage_floor` = 1)——"被减伤归零 v=0"零值伤害行语义退役,重档折扣行文本记"被压制";百分比减伤增益 defense_up 整体退役换装 ac_up(护甲强化 +1 AC/层 ×2 层,`unit=ac` 新量纲、不入任何池,无双轨),off_guard 与池结构零改动;护甲等级与护甲类型分离成文(数值轴 / 属性轴,不做映射)。数值载体:主角 armor_class 10(暂定)、敌方首关 0(暂定,正式行值归怪物设定批,登记待办清单);掷点流归属定稿 = `armor_roll` 封闭流(逐次掷逐次取号,可逐位回放),调参表掷点/档位/下限/加成五行由未定改拍板值;EV 参考数成文(AC10 21.25% / AC11 25% / AC12 28.75%,按判定式复算),换装点锚定(基准 AC10 自带约 −21% 敌方输出期望)与加难杠杆扫描合并处理;验收标准改写掷点条目 + 新增伤害下限与留档条目;切片同批:settlement.tres 七参数入表、战斗段掷点判定/暴击/下限/行留档(roll/ac/tier/crit 字段)、armor_roll 流接入 rng_service(黄金向量 m=42 scope0 = 4806095330042243845)、零值伤害行分支删除、冒烟护栏与掷点行为断言(nat20 种子 / AC12 档位分布 / 池触底保底 / 棋盘必中)、英雄卡与敌人卡 AC 展示、ac_up 状态槽图标、nat20 金框高亮 |
|
||||||
| v0.11 | 2026-09-16 | **敌人技能池批(用户拍板,设计权威 docs/proposal-skill-pool.md v1.0——与敌人系统 / 增益状态 / 难度曲线与Boss / 战斗表现 / HUD框架 / registry / 切片代码同批)**:① 随机口径两处 → 三处——技能摇号 `behavior_roll` 封闭流(回合内、开轮时点、步骤流之外,每敌按生成序派生独立子流、单敌轨迹可独立复放)入册,可回放契约扩写为"三处皆封闭流,同种子同输入逐位复现";② 战斗段成文开轮摇号与敌方技能兑现(每轮恰摇一次、轮内刷新不重摇、摇定后兑现前死亡作废)、增益技 = 施放行 + 状态授予(0 伤害不掷不折不兑伏击);③ 三乘法链成文(技能倍率乘在最前:基线 × 倍率 → AC 掷点 → 甲效 → 既有链不动);④ AC 判定对象措辞四处改述("敌方攻击拍与重击拍基线" → "敌方技能基础伤害分量",含正文/公式行/边界表/验收标准);⑤ 敌方防御池入乘区(`enemy_defense` 新池——硬化载体):主角攻击 Σ三分量后 ×(100+enemy_defense)/100,四池对称成文(hero_offense 现行走普通分量直乘的切片现状登记待办);⑥ 行型改型:蓄力行 `charge` → 施放行 `cast`(10 类封闭不变);⑦ 呈现快照敌人数组字段定稿(当前拍/行动环进度 → 摇定动作三字段 + 敌方增益 effects);验收标准新增开轮摇号条目、战斗段次序与可回放条目改写;切片同批:`_roll_round_actions` 开轮编排、技能摇号器独立服务类、单位容器实例池/冷却/执行上报、settlement.tres effect_pool_map 增 empower/fortify、施放行格式化、摇定动画位 |
|
| v0.11 | 2026-09-16 | **敌人技能池批(用户拍板,设计权威 docs/proposal-skill-pool.md v1.0——与敌人系统 / 增益状态 / 难度曲线与Boss / 战斗表现 / HUD框架 / registry / 切片代码同批)**:① 随机口径两处 → 三处——技能摇号 `behavior_roll` 封闭流(回合内、开轮时点、步骤流之外,每敌按生成序派生独立子流、单敌轨迹可独立复放)入册,可回放契约扩写为"三处皆封闭流,同种子同输入逐位复现";② 战斗段成文开轮摇号与敌方技能兑现(每轮恰摇一次、轮内刷新不重摇、摇定后兑现前死亡作废)、增益技 = 施放行 + 状态授予(0 伤害不掷不折不兑伏击);③ 三乘法链成文(技能倍率乘在最前:基线 × 倍率 → AC 掷点 → 甲效 → 既有链不动);④ AC 判定对象措辞四处改述("敌方攻击拍与重击拍基线" → "敌方技能基础伤害分量",含正文/公式行/边界表/验收标准);⑤ 敌方防御池入乘区(`enemy_defense` 新池——硬化载体):主角攻击 Σ三分量后 ×(100+enemy_defense)/100,四池对称成文(hero_offense 现行走普通分量直乘的切片现状登记待办);⑥ 行型改型:蓄力行 `charge` → 施放行 `cast`(10 类封闭不变);⑦ 呈现快照敌人数组字段定稿(当前拍/行动环进度 → 摇定动作三字段 + 敌方增益 effects);验收标准新增开轮摇号条目、战斗段次序与可回放条目改写;切片同批:`_roll_round_actions` 开轮编排、技能摇号器独立服务类、单位容器实例池/冷却/执行上报、settlement.tres effect_pool_map 增 empower/fortify、施放行格式化、摇定动画位 |
|
||||||
|
| v0.12 | 2026-09-17 | **数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 `data/tables/*.tres` 与 registry),20 余处失同步值修正**——收益对照表参考敞口 12 / 完美乘数 200 改指路 settlement.tres(equivalence_ref_damage / p_perfect);伏击加层"+2 层"改"+stacks 层(读 reward.tres ambush_double 行)";充能供给表与 charge_grants 行"每格 1 / 上限 8 / 每雷 2"改 per_unit/cap 读表;三乘法链与甲效矩阵 1.5/1.0/0.5、150/100/50 改三档读表;掷点判定 1d20 / nat20 ×2 / 缺口档 ×0.75/×0.5/×0.25 / 边界 [3,7] / 档位 [75,50,25] / damage_floor=1 / AC 10·0 / ac_up +1×2 层全部改指路 settlement.tres·status_effects.tres·hero/enemy 表;EV 参考数(AC10 21.25% 等)与"旧 defense_up 满层 −60%"删除(派生读数 / 退役值,版本历史可查);调参表与验收标准同步 |
|
||||||
@@ -78,15 +78,15 @@
|
|||||||
| 基础攻击恒存在 | 基础攻击不许配 0(配置为 0 加载期拒绝)——零基线乘任何百分比增益恒为零,"胜利路径恒有"的保障从数据层杜绝死锁 |
|
| 基础攻击恒存在 | 基础攻击不许配 0(配置为 0 加载期拒绝)——零基线乘任何百分比增益恒为零,"胜利路径恒有"的保障从数据层杜绝死锁 |
|
||||||
| 先手攻击不是敌方技能拍 | 每次结算战斗段主角先手攻击顺位最前的存活敌人,这是固定动作;奖励侧的道具与增益是基础攻击之外的规划面伤害,归[地图战斗资源](地图战斗资源.md) |
|
| 先手攻击不是敌方技能拍 | 每次结算战斗段主角先手攻击顺位最前的存活敌人,这是固定动作;奖励侧的道具与增益是基础攻击之外的规划面伤害,归[地图战斗资源](地图战斗资源.md) |
|
||||||
|
|
||||||
首发敌种共三种,名字是玩家可见专名:地精、熊地精、食人魔酋长(末者为首发关底 Boss)。
|
首发敌种共三种,名字是玩家可见专名:地精、熊地精、食人魔酋长(末者为首发关底 Boss)。池权重与护甲等级行值一律读配置表,本表只存敌种语义模板:
|
||||||
|
|
||||||
| 敌种 | 技能池(权重,provisional) | 护甲类型 | 护甲等级 | 现行定位 |
|
| 敌种 | 技能池构成(权重读表) | 护甲类型 | 护甲等级 | 定位 |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| 地精 | 普通攻击 9 · 突刺 1 | 轻甲 | 0(暂定) | 首发杂兵;教学位节点 ×[1,2],开战掷定 |
|
| 地精 | 普通攻击 + 突刺(低权重特殊技) | 轻甲 | 行值读表 | 首发杂兵;教学位节点数量开战掷定(区间行值读表) |
|
||||||
| 熊地精 | 普通攻击 6 · 蓄力 2 · 重击 2 | 魔法护甲 | 0(暂定) | 首发主力;重击倍率 2 |
|
| 熊地精 | 普通攻击 + 蓄力 + 重击 | 魔法护甲 | 行值读表 | 首发主力 |
|
||||||
| 食人魔酋长 | 普通攻击 6 · 重击 2 · 硬化 2 | 重甲 | 0(暂定) | 首发关底 Boss;重击倍率 2、硬化独占 |
|
| 食人魔酋长 | 普通攻击 + 重击 + 硬化 | 重甲 | 行值读表 | 首发关底 Boss;硬化独占 |
|
||||||
|
|
||||||
护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据。护甲等级是另一条数值轴(防守方字段,基础攻击掷点的折扣判定读数):敌人表与主角表各增 `armor_class` 一列(域 [0, 999]),掷点与折扣的结算归[战斗结算](战斗结算.md),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)——三敌种首关暂定 0(第一关怪物 AC 相对较低,正式行值待怪物设定投值,登记[待办清单](../../06-待办清单.md)),主角暂定 10,两条轴的概念与字段不得混用。举证:生成与护甲为数据面规则,无计算。
|
护甲类型(轻甲 / 魔法护甲 / 重甲)与攻击类型的克制结算矩阵归[战斗结算](战斗结算.md),本系统只提供每个敌种的护甲类型数据。护甲等级是另一条数值轴(防守方字段,基础攻击掷点的折扣判定读数):敌人表与主角表各增 `armor_class` 一列(域 [0, 999]),掷点与折扣的结算归[战斗结算](战斗结算.md),行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)——三敌种首关与主角的护甲等级行值读配置表(第一关怪物 AC 相对较低,正式行值待怪物设定投值,登记[待办清单](../../06-待办清单.md)),两条轴的概念与字段不得混用。举证:生成与护甲为数据面规则,无计算。
|
||||||
|
|
||||||
### 技能池:每敌种一张带权技能池,每拍开轮摇号出招
|
### 技能池:每敌种一张带权技能池,每拍开轮摇号出招
|
||||||
|
|
||||||
@@ -112,16 +112,16 @@
|
|||||||
| buff_ref / buff_duration | 仅增益 | 效果引用(指向状态效果行)与增益持续回合数 |
|
| buff_ref / buff_duration | 仅增益 | 效果引用(指向状态效果行)与增益持续回合数 |
|
||||||
| P1 字段位 | — | 触发条件、命中段数、目标数、固定值分量——随对应后置批加列 |
|
| P1 字段位 | — | 触发条件、命中段数、目标数、固定值分量——随对应后置批加列 |
|
||||||
|
|
||||||
普通攻击也是一行技能行,两条域校验锁死它的特殊性:倍率恒 1、冷却恒 0——想配倍率或冷却的就不是普攻,是伤害技。技能伤害存倍率、不存固定值:伤害 = 施放者攻击基线 × 技能倍率——同一行"重击",熊地精用是 9×2=18,深层强化行自动缩放,这是共享技能表成立的前提;固定值分量若将来需要,是加字段的事(P1)。增益技带效果引用与持续回合,百分比天然按施放者同池生效,无缩放问题。
|
普通攻击也是一行技能行,两条域校验锁死它的特殊性:倍率恒 1、冷却恒 0——想配倍率或冷却的就不是普攻,是伤害技。技能伤害存倍率、不存固定值:伤害 = 施放者攻击基线 × 技能倍率——同一行"重击",不同敌种按各自攻击基线缩放 = 基线 A × 技能倍率 M(行值读 enemy.tres / skills.tres),深层强化行自动缩放,这是共享技能表成立的前提;固定值分量若将来需要,是加字段的事(P1)。增益技带效果引用与持续回合,百分比天然按施放者同池生效,无缩放问题。
|
||||||
|
|
||||||
池构成纪律(加载校验,违规拒绝入表):**每池恰一行普通攻击**(普攻冷却恒 0 → 可摇集合恒非空,"空池不可能"由结构保证,最坏情况怪物平砍等待——那是玩家的反打窗口而非死拍);**每池增益类技能 ≤1**(非 RPG,怪物连出不同增益显得呆);池条目 skill_id 悬空致命;权重 > 0、冷却 ≥ 0。
|
池构成纪律(加载校验,违规拒绝入表):**每池恰一行普通攻击**(普攻冷却恒 0 → 可摇集合恒非空,"空池不可能"由结构保证,最坏情况怪物平砍等待——那是玩家的反打窗口而非死拍);**每池增益类技能 ≤1**(非 RPG,怪物连出不同增益显得呆);池条目 skill_id 悬空致命;权重 > 0、冷却 ≥ 0。
|
||||||
|
|
||||||
两道闸(建议值 provisional,投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)):
|
两道闸(表值 provisional,投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md),行值读技能表):
|
||||||
|
|
||||||
| 闸 | 语义 | 现行值 |
|
| 闸 | 语义 |
|
||||||
|---|---|---|
|
|---|---|
|
||||||
| 技能冷却 | 每技能行带冷却拍数;施放后连续 N 拍不可摇中 | 普攻 0 · 突刺 2 · 蓄力 3 · 重击 3 · 硬化 4 |
|
| 技能冷却 | 每技能行带冷却拍数;施放后连续 N 拍不可摇中——普攻恒 0 不可配,其余行值读技能表 |
|
||||||
| 保底 | 连续 M 拍执行的都是普通攻击 → 下一拍必出特殊技(特殊技内按权重,不受冷却限制) | M = 4 |
|
| 保底 | 连续 M 拍执行的都是普通攻击 → 下一拍必出特殊技(特殊技内按权重,不受冷却限制);M 读技能表 pity_threshold |
|
||||||
|
|
||||||
结构红利:增益存续期内下一拍必是伤害技(池里其余全是伤害技、增益自身还在冷却)——**增益不可能白白过期**,"连出不同增益"被池构成纪律结构性消除。同一技能连发不可能(自身冷却杜绝);异名特殊技背靠背概率低(是变化不是失控,全局特殊间隔闸登记 P1 备用旋钮)。
|
结构红利:增益存续期内下一拍必是伤害技(池里其余全是伤害技、增益自身还在冷却)——**增益不可能白白过期**,"连出不同增益"被池构成纪律结构性消除。同一技能连发不可能(自身冷却杜绝);异名特殊技背靠背概率低(是变化不是失控,全局特殊间隔闸登记 P1 备用旋钮)。
|
||||||
|
|
||||||
@@ -138,7 +138,7 @@
|
|||||||
|
|
||||||
死亡即不动手(保留):摇定后、兑现前死亡(主角先手 / 授予段直伤),本拍技能作废——不动手、不进冷却、不进保底计数;其余存活敌人照常。拍结构保留:**每结算每存活敌恰行动一次、按行序、先作用后推进**——变的只是"轮到什么",由固定剧本改为摇号。同种敌人不再锁步:各自实例池独立摇号、独立冷却,怪物 1 的重击在冷却里不影响怪物 2,轨迹分歧是涌现,不设开战分配机制。
|
死亡即不动手(保留):摇定后、兑现前死亡(主角先手 / 授予段直伤),本拍技能作废——不动手、不进冷却、不进保底计数;其余存活敌人照常。拍结构保留:**每结算每存活敌恰行动一次、按行序、先作用后推进**——变的只是"轮到什么",由固定剧本改为摇号。同种敌人不再锁步:各自实例池独立摇号、独立冷却,怪物 1 的重击在冷却里不影响怪物 2,轨迹分歧是涌现,不设开战分配机制。
|
||||||
|
|
||||||
蓄力语义(2026-09-16 纠偏定稿):蓄力不是重击前奏——它是一行增益技:0 伤害动作,施加"攻击×2"状态,持续 1 个有效结算(provisional)。旧环"蓄力→猛击"的固定配对是哥布林弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是两层乘法共存(×2 遇 ×2 = ×4),蓄力后摇中普通攻击则是基线×2 的加成平砍,两者同为平常事,不是设计的连招。技能冷却(几拍内不能再摇中,技能行属性)与增益持续(状态挂几回合,状态行属性)是两个计时器,互不相干。旧蓄力拍"零兑付、不读伏击"的语义由施放行继承:0 伤害技能不兑付伏击——"本轮喂的伏击若逢施放拍不兑现"的读怪奖励保留。
|
蓄力语义(2026-09-16 纠偏定稿):蓄力不是重击前奏——它是一行增益技:0 伤害动作,施加 empower 状态(幅度读 `status_effects.tres`),持续 1 个有效结算(provisional)。旧环"蓄力→猛击"的固定配对是哥布林弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是增益倍率 × 技能倍率的两层乘法共存(增益幅度 × 增益幅度 = 两层乘法读表可得),蓄力后摇中普通攻击则是增益倍率的加成平砍,两者同为平常事,不是设计的连招。技能冷却(几拍内不能再摇中,技能行属性)与增益持续(状态挂几回合,状态行属性)是两个计时器,互不相干。旧蓄力拍"零兑付、不读伏击"的语义由施放行继承:0 伤害技能不兑付伏击——"本轮喂的伏击若逢施放拍不兑现"的读怪奖励保留。
|
||||||
|
|
||||||
Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋长池含独占增益技"硬化"——敌方防御池词汇载体;旧"专属四拍环且含蓄力拍"约定随批退役,增益 ≤1 纪律下旧蓄力拍不进 Boss 池)。
|
Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋长池含独占增益技"硬化"——敌方防御池词汇载体;旧"专属四拍环且含蓄力拍"约定随批退役,增益 ≤1 纪律下旧蓄力拍不进 Boss 池)。
|
||||||
|
|
||||||
@@ -146,9 +146,9 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
|||||||
|
|
||||||
### 伏击:每踩一颗雷,敌方全体多叠一层附加伤害
|
### 伏击:每踩一颗雷,敌方全体多叠一层附加伤害
|
||||||
|
|
||||||
玩家挖开惩罚格(雷格在玩家侧的叫法,首发类型是怪物巢穴)就是惊动巢穴:敌方全体获得一层"伏击"——敌方侧的增益词条。一层伏击 = 敌人每次伤害类技能(普通攻击或伤害技)额外附加 3 点固定伤害,按主角血量点数计。伏击只活一轮:轮末结算清零,没有跨轮存量。单轮授予有上限(现行 4 层):上限内逐颗叠加,达到上限后多踩的雷不生效,但逐颗记一行"溢出未生效"结算明细——惩罚不静默蒸发。
|
玩家挖开惩罚格(雷格在玩家侧的叫法,首发类型是怪物巢穴)就是惊动巢穴:敌方全体获得一层"伏击"——敌方侧的增益词条。一层伏击 = 敌人每次伤害类技能(普通攻击或伤害技)额外附加固定点数伤害(每层表值,量纲已定稿——按主角血量点数计)。伏击只活一轮:轮末结算清零,没有跨轮存量。单轮授予有上限(表值):上限内逐颗叠加,达到上限后多踩的雷不生效,但逐颗记一行"溢出未生效"结算明细——惩罚不静默蒸发。
|
||||||
|
|
||||||
上限 4 是对"单轮连踩 5–8 颗雷"灾难轮的反灾难护栏;单轮踩雷数天然受每轮行动点预算约束(现行 6 点),这是上限默认值的结构背景。上限配 0 表示该敌种免疫伏击:每颗雷都记明细、都可见、都无效。
|
单轮上限是对"连踩多颗雷"灾难轮的反灾难护栏;单轮踩雷数天然受每轮行动点预算约束(行动点表值归[行动经济](../排雷循环/行动经济.md)),这是上限默认值的结构背景。上限配 0 表示该敌种免疫伏击:每颗雷都记明细、都可见、都无效。
|
||||||
|
|
||||||
| 细则 | 含义 |
|
| 细则 | 含义 |
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -158,16 +158,16 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
|||||||
| 当轮授予当轮兑付 | 授予发生在兑付之前:本轮踩的雷,若该轮有伤害拍,当轮就生效 |
|
| 当轮授予当轮兑付 | 授予发生在兑付之前:本轮踩的雷,若该轮有伤害拍,当轮就生效 |
|
||||||
| 溢出可见 | 生效层数 = min(当轮新踩雷数, 上限),其余逐颗记"溢出未生效"明细 |
|
| 溢出可见 | 生效层数 = min(当轮新踩雷数, 上限),其余逐颗记"溢出未生效"明细 |
|
||||||
|
|
||||||
举证:**伤害拍伤害 = 攻击基线 × 技能倍率 + 层数 × 3;施放拍恒为 0。**
|
举证:**伤害拍伤害 = 攻击基线 × 技能倍率 + 层数 × 每层伏击表值;施放拍恒为 0。**
|
||||||
|
|
||||||
```
|
```
|
||||||
伤害拍:伤害 = atk × 倍率 + 3 × L L = 当轮伏击层数(表值 3 provisional,量纲已定稿)
|
伤害拍:伤害 = atk × 倍率 + a × L L = 当轮伏击层数;a = 每层伏击附加表值(provisional,量纲已定稿)
|
||||||
普攻拍:伤害 = atk + 3 × L 倍率恒 1 的特例
|
普攻拍:伤害 = atk + a × L 倍率恒 1 的特例
|
||||||
施放拍:伤害 = 0 不读伏击层
|
施放拍:伤害 = 0 不读伏击层
|
||||||
生效层数 L = min(当轮新踩雷数, 单轮上限) 溢出 = 雷数 − L,逐颗记明细
|
生效层数 L = min(当轮新踩雷数, 单轮上限) 溢出 = 雷数 − L,逐颗记明细
|
||||||
```
|
```
|
||||||
|
|
||||||
验算(表值 provisional,读数见调参表):熊地精基线 9、重击倍率 2、4 层伏击的重击拍 = 9 × 2 + 12 = 30;若把伏击塞进倍乘会算出 (9 + 12) × 2 = 42——后置加法由此判别。
|
验算(表值 provisional,行值读配置表):设熊地精攻击基线 A、重击倍率 M、L 层伏击的重击拍 = A × M + L × a;若把伏击塞进倍乘会算出 (A + L × a) × M——后置加法由此判别。
|
||||||
|
|
||||||
### 目标顺位与意图线索:打谁不用选,特殊技开轮有一次类型级预告
|
### 目标顺位与意图线索:打谁不用选,特殊技开轮有一次类型级预告
|
||||||
|
|
||||||
@@ -237,41 +237,41 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
|||||||
|
|
||||||
## 调参表
|
## 调参表
|
||||||
|
|
||||||
配置表共三张,参数域如下;首发行值全部 provisional、曲线调参所有权归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md),已锁数值以 [registry 的 enemy / hero / skill 条目](../../../registry/entities.yaml) 为准。
|
配置表共三张。数值纪律(2026-09-17 降级批定稿):**本文只锁字段、取值域与规则,行值一律读配置表(切片 `prototypes/dungeon-sweeper-vertical-slice/data/tables/` 的 enemy / skills / hero 表)与 [registry 的 enemy / hero / skill 条目](../../../registry/entities.yaml),不在本文登记具体数值——防双写失同步**;曲线调参所有权归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||||
|
|
||||||
敌人表(按关卡坐标存放,每坐标行集恰一敌种):
|
敌人表(按关卡坐标存放,每坐标行集恰一敌种):
|
||||||
|
|
||||||
| 参数 | 取值域 | 现行值 | 说明 |
|
| 参数 | 取值域 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|
|
||||||
| unit_count | [1, 3] | 1(provisional) | 遭遇数量区间下界;有上界的行开战时在区间内掷定,教学位节点同样掷骰 |
|
| unit_count | [1, 3] | 遭遇数量区间下界;有上界的行开战时在区间内掷定,教学位节点同样掷骰 |
|
||||||
| unit_count_max | [unit_count, 3],可省略 | 缺省 = 定值 | 数量区间上界;开战时在区间内掷定本战实际数量 |
|
| unit_count_max | [unit_count, 3],可省略 | 数量区间上界;开战时在区间内掷定本战实际数量;缺省 = 定值 |
|
||||||
| atk_min / atk_max | [0, 999] 可选配对 | ±3 浮动(provisional) | 攻击基线区间:开战掷定一次、整战持久;缺省 = 定值行 |
|
| atk_min / atk_max | [0, 999] 可选配对 | 攻击基线区间:开战掷定一次、整战持久;缺省 = 定值行 |
|
||||||
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 地精轻甲 / 熊地精魔法护甲 / 酋长重甲 | 克制结算归[战斗结算](战斗结算.md) |
|
| armor_type | {轻甲, 魔法护甲, 重甲},缺省轻甲 | 克制结算归[战斗结算](战斗结算.md) |
|
||||||
| armor_class(护甲等级) | int [0, 999],缺省 0 | 0(首关暂定——正式行值归怪物设定批) | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念不得混用 |
|
| armor_class(护甲等级) | int [0, 999],缺省 0 | 防守方护甲等级——基础攻击掷点的折扣判定读数,掷点结算归[战斗结算](战斗结算.md);与 armor_type(克制属性轴)两概念不得混用;行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||||
| hp | [1, 999] | provisional | 单位生命基线(难度修饰前) |
|
| hp | [1, 999] | 单位生命基线(难度修饰前) |
|
||||||
| atk | [0, 999] | provisional | 攻击基线;0 合法 = 纯伏击伤敌种 |
|
| atk | [0, 999] | 攻击基线;0 合法 = 纯伏击伤敌种 |
|
||||||
| pool(池模板) | {skill_id, weight} 数组,weight ∈ (0, 9999] | 三敌种见核心规则(全部 provisional) | 技能行引用在技能表;池构成纪律与悬空引用加载期拒绝(校验在数据配置跨表通道) |
|
| pool(池模板) | {skill_id, weight} 数组,weight ∈ (0, 9999] | 技能行引用在技能表;池构成纪律与悬空引用加载期拒绝(校验在数据配置跨表通道) |
|
||||||
| advantage_per_round_cap | [0, 16] | 4(定稿) | 单轮伏击授予上限;0 = 免疫伏击;也是扫雷经济侧对账的惩罚上限供给值 |
|
| advantage_per_round_cap | [0, 16] | 单轮伏击授予上限(行值读表,已定稿);0 = 免疫伏击;也是扫雷经济侧对账的惩罚上限供给值 |
|
||||||
|
|
||||||
技能表(全局单表,技能行主键 skill_id):
|
技能表(全局单表,技能行主键 skill_id):
|
||||||
|
|
||||||
| 参数 | 取值域 | 现行值 | 说明 |
|
| 参数 | 取值域 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|
|
||||||
| type | {普通攻击, 伤害, 增益} | 五行:普攻 / 突刺 / 蓄力 / 重击 / 硬化 | 封闭枚举;新类型走本文修订 |
|
| type | {普通攻击, 伤害, 增益} | 封闭枚举;新类型走本文修订;技能行名录读表 |
|
||||||
| damage_mult | [1.1, 16] | 突刺 1.5 · 重击 2(provisional) | 仅伤害技;普通攻击恒 1 不可配(域校验锁死) |
|
| damage_mult | [1.1, 16] | 仅伤害技;普通攻击恒 1 不可配(域校验锁死) |
|
||||||
| cooldown_beats | [0, 99] | 普攻 0 · 突刺 2 · 蓄力 3 · 重击 3 · 硬化 4(provisional) | 普通攻击恒 0 不可配(域校验锁死——空池不可能的结构前提) |
|
| cooldown_beats | [0, 99] | 施放后连续 N 拍不可摇中;普通攻击恒 0 不可配(域校验锁死——空池不可能的结构前提) |
|
||||||
| buff_ref / buff_duration | 效果引用 / [1, 99] | 蓄力 → empower · 硬化 → fortify(持续 2 结算 = 1 个有效增益拍) | 仅增益技;悬空引用加载期拒绝 |
|
| buff_ref / buff_duration | 效果引用 / [1, 99] | 仅增益技;悬空引用加载期拒绝 |
|
||||||
| pity_threshold(保底 M) | [1, 99] | 4(provisional) | 全局单旋钮:连续 M 拍执行普攻 → 下拍必出特殊技 |
|
| pity_threshold(保底 M) | [1, 99] | 全局单旋钮:连续 M 拍执行普攻 → 下拍必出特殊技 |
|
||||||
|
|
||||||
主角表(单行全局):
|
主角表(单行全局):
|
||||||
|
|
||||||
| 参数 | 取值域 | 现行值 | 说明 |
|
| 参数 | 取值域 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|
|
||||||
| max_hp | [1, 999] | provisional(出处待查) | 主角生命上限 |
|
| max_hp | [1, 999] | 主角生命上限 |
|
||||||
| atk | [1, 999] | 6(原型锚 provisional) | 基础攻击;配 0 加载期拒绝——基础攻击恒在 |
|
| atk | [1, 999] | 基础攻击;配 0 加载期拒绝——基础攻击恒在 |
|
||||||
| armor_class(护甲等级) | int [0, 999] | 10(暂定,2026-09-16 拍板) | 主角作为防守方的护甲等级基准,ac_up(护甲强化 +1/层 ×2 层)在其上加算;掷点结算归[战斗结算](战斗结算.md) |
|
| armor_class(护甲等级) | int [0, 999] | 主角作为防守方的护甲等级基准,ac_up(护甲强化)在其上加算;掷点结算归[战斗结算](战斗结算.md) |
|
||||||
|
|
||||||
三敌种现行行值(全部 provisional,出处 registry):地精教学位 24 生命 / 7 攻击 ×[1,2](开战掷定)、群行 13/5 ×[2,3];熊地精 40/9 ×1、群行 18/6 ×[2,3]、深层锚行 30/7;食人魔酋长 150/9 ×1。护甲等级行值首关暂定 0(正式行值归怪物设定批,登记[待办清单](../../06-待办清单.md))。池 EV 锚(静态份额口径,provisional):地精 1.05(突刺倍率 >1 必然抬 EV,+5% 偏移显式登记不硬凑)、熊地精 1.00、酋长 1.00;**含闸长期速率实测(2026-09-16 实施批,×5000 拍):地精 1.106(保底闸把突刺率从自然 10% 抬到 ~22%——唯一特殊技低权重的池受保底支配)、熊地精 1.000(普攻+重击与蓄力零乘加权守恒,结构性恒 1)、酋长 1.024**——EV 重锚与权重投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
各敌种行值、池权重与池 EV 读数(含闸长期速率实测)一律读配置表与调参日志,本文不登记具体数值;EV 重锚与权重投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)。
|
||||||
|
|
||||||
结构冻结(非调参项,修订走本文流程):技能类型枚举封闭、每池恰一普攻、每池增益 ≤1、死亡即不动手(摇定后兑现前死亡作废不进账)、每结算每存活敌恰行动一次、行序、先作用后推进、伏击层池共享读法、附加后置加法、伏击按主角血量点计量纲、固定顺位、每坐标恰一敌种、零随机(本系统自身语义零随机不变——摇号与掷点随机一律在[战斗结算](战斗结算.md)结算换算层按封闭随机流掷定,可回放契约 = 同种子同输入逐位复现,单敌出招轨迹可独立复放)。联动纪律:单轮上限 × 攻击基线(支配边界联动)、数量 × 上限(单结算上界双线性)、技能倍率 × 攻击(伤害拍支配)、权重 × 冷却 × 保底(池节奏三联动)禁止独立调参,联调须重跑方向性预检并同步 registry(见待办)。
|
结构冻结(非调参项,修订走本文流程):技能类型枚举封闭、每池恰一普攻、每池增益 ≤1、死亡即不动手(摇定后兑现前死亡作废不进账)、每结算每存活敌恰行动一次、行序、先作用后推进、伏击层池共享读法、附加后置加法、伏击按主角血量点计量纲、固定顺位、每坐标恰一敌种、零随机(本系统自身语义零随机不变——摇号与掷点随机一律在[战斗结算](战斗结算.md)结算换算层按封闭随机流掷定,可回放契约 = 同种子同输入逐位复现,单敌出招轨迹可独立复放)。联动纪律:单轮上限 × 攻击基线(支配边界联动)、数量 × 上限(单结算上界双线性)、技能倍率 × 攻击(伤害拍支配)、权重 × 冷却 × 保底(池节奏三联动)禁止独立调参,联调须重跑方向性预检并同步 registry(见待办)。
|
||||||
|
|
||||||
@@ -282,8 +282,8 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
|||||||
- 池节奏:中签率 = 权重 ÷ 可摇权重合计(排除冷却中技能后归一);施放后连续 N 拍不可摇中;连续 M 拍执行普攻 → 下拍必出特殊技(特殊技内按权重、不受冷却限制);同技能连发不可能;首轮摇号、每轮恰摇一次、轮内刷新不重摇。
|
- 池节奏:中签率 = 权重 ÷ 可摇权重合计(排除冷却中技能后归一);施放后连续 N 拍不可摇中;连续 M 拍执行普攻 → 下拍必出特殊技(特殊技内按权重、不受冷却限制);同技能连发不可能;首轮摇号、每轮恰摇一次、轮内刷新不重摇。
|
||||||
- 死亡即不动手:摇定后、兑现前被杀——本拍技能作废(零行动明细行),不进冷却、不进保底计数;行动完成后才死——已兑付已进账;对已死亡单位上报受击被拒绝且状态不变。
|
- 死亡即不动手:摇定后、兑现前被杀——本拍技能作废(零行动明细行),不进冷却、不进保底计数;行动完成后才死——已兑付已进账;对已死亡单位上报受击被拒绝且状态不变。
|
||||||
- 空池不可能:每池恰一行普通攻击(域校验),普攻冷却恒 0 → 任意实例任意拍可摇集合恒非空。
|
- 空池不可能:每池恰一行普通攻击(域校验),普攻冷却恒 0 → 任意实例任意拍可摇集合恒非空。
|
||||||
- 伏击读值:伤害拍读值 = 基线 × 倍率 + 层数 × 3(与"伏击进倍乘"的错算可判别);普攻 = 倍率 1 特例;施放拍恒为 0;同层数多敌读值一致、读值前后单位状态零变化。
|
- 伏击读值:伤害拍读值 = 基线 × 倍率 + 层数 × 每层伏击表值(与"伏击进倍乘"的错算可判别);普攻 = 倍率 1 特例;施放拍恒为 0;同层数多敌读值一致、读值前后单位状态零变化。
|
||||||
- 伏击授予与溢出:生效层数 = min(雷数, 上限),且生效 + 溢出 = 雷数(零静默蒸发);上限 4 时踩 6 颗雷生效 4、溢出 2;上限配 0 时全部记溢出且全部无效。
|
- 伏击授予与溢出:生效层数 = min(雷数, 上限),且生效 + 溢出 = 雷数(零静默蒸发);上限 c 时踩 N 颗雷生效 min(N, c)、溢出 N − c;上限配 0 时全部记溢出且全部无效。
|
||||||
- 目标顺位:多敌时单体目标恒为生成序最前存活者,杀最前后顺延;杀至空返回空;单敌时顺位与范围效果重合。
|
- 目标顺位:多敌时单体目标恒为生成序最前存活者,杀最前后顺延;杀至空返回空;单敌时顺位与范围效果重合。
|
||||||
- 快照抗改表:实例化后修改敌人表,已生成单位的数值投影与实例池逐字不变;新实例才用新表值。
|
- 快照抗改表:实例化后修改敌人表,已生成单位的数值投影与实例池逐字不变;新实例才用新表值。
|
||||||
- 表校验:越域值、池权重 ≤ 0、空池、普攻配倍率/冷却、池增益 > 1、skill_id 悬空、同坐标第二敌种均在加载期报错止动;域内合法极端(攻击基线 0、上限 0)不拒;主角表恰一行、攻击配 0 拒绝。
|
- 表校验:越域值、池权重 ≤ 0、空池、普攻配倍率/冷却、池增益 > 1、skill_id 悬空、同坐标第二敌种均在加载期报错止动;域内合法极端(攻击基线 0、上限 0)不拒;主角表恰一行、攻击配 0 拒绝。
|
||||||
@@ -303,3 +303,5 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行:酋
|
|||||||
| v0.3 | 2026-09-15 | **护甲等级批(用户拍板登记,与战斗结算 / 难度曲线与Boss / registry 同批,不动代码)**:敌人表与主角表 schema 各增 armor_class(护甲等级)字段(取值域随掷点形式定稿,provisional);三敌种表补护甲等级列(行值未定);护甲等级(数值轴)与护甲类型(克制属性轴)命名区分成文;结构冻结清单"零随机"措辞按新口径修订——本系统自身语义零随机不变,掷点随机在战斗结算换算层按封闭随机流消费、可回放契约 = 同种子同输入逐位复现;待拍板新增"护甲等级行值未定"条目 |
|
| v0.3 | 2026-09-15 | **护甲等级批(用户拍板登记,与战斗结算 / 难度曲线与Boss / registry 同批,不动代码)**:敌人表与主角表 schema 各增 armor_class(护甲等级)字段(取值域随掷点形式定稿,provisional);三敌种表补护甲等级列(行值未定);护甲等级(数值轴)与护甲类型(克制属性轴)命名区分成文;结构冻结清单"零随机"措辞按新口径修订——本系统自身语义零随机不变,掷点随机在战斗结算换算层按封闭随机流消费、可回放契约 = 同种子同输入逐位复现;待拍板新增"护甲等级行值未定"条目 |
|
||||||
| v0.4 | 2026-09-16 | **护甲等级掷点批·定稿落地(与战斗结算 / 难度曲线与Boss / registry / 切片代码同批)**:armor_class 域定稿 [0, 999](缺省 0 向后兼容);主角行值 10(暂定)、三敌种首关行值 0(暂定)——"行值未定"改"暂定值 + 待办",敌方正式行值归怪物设定批(第一关怪物 AC 相对较低,值待怪物设定投值,登记待办清单);敌种表护甲等级列同步落值;调参表两行改域与现行值 |
|
| v0.4 | 2026-09-16 | **护甲等级掷点批·定稿落地(与战斗结算 / 难度曲线与Boss / registry / 切片代码同批)**:armor_class 域定稿 [0, 999](缺省 0 向后兼容);主角行值 10(暂定)、三敌种首关行值 0(暂定)——"行值未定"改"暂定值 + 待办",敌方正式行值归怪物设定批(第一关怪物 AC 相对较低,值待怪物设定投值,登记待办清单);敌种表护甲等级列同步落值;调参表两行改域与现行值 |
|
||||||
| v0.5 | 2026-09-16 | **敌人技能池批(用户拍板,设计权威 docs/proposal-skill-pool.md v1.0;与战斗结算 / 增益状态 / 难度曲线与Boss / 战斗表现 / HUD框架 / registry / 切片代码同批)**:行为环章节整体退役——固定出招剧本、拍枚举(攻击/蓄力/重击)、环指针、同种锁步、heavy_multiplier 字段全部废除;技能池语义成文(三层对象〔技能行/池模板/实例池〕、技能行词汇表、池构成纪律、两道闸〔全技能各自冷却 + 保底〕、开轮摇号时序、死亡作废、独立子流);蓄力语义改写(纯攻击增益技、与重击无组合语义——纠偏二;施放行继承零兑付伏击);Boss 专属身份改专属池承载;意图呈现改三档可见性(普攻零表示 / 特殊技类型级预告 / 暴击掷点层);敌人表 schema pattern → pool;调参表增技能表与池 EV 锚(含闸长期速率实测登记);验收标准按摇号口径重写 |
|
| v0.5 | 2026-09-16 | **敌人技能池批(用户拍板,设计权威 docs/proposal-skill-pool.md v1.0;与战斗结算 / 增益状态 / 难度曲线与Boss / 战斗表现 / HUD框架 / registry / 切片代码同批)**:行为环章节整体退役——固定出招剧本、拍枚举(攻击/蓄力/重击)、环指针、同种锁步、heavy_multiplier 字段全部废除;技能池语义成文(三层对象〔技能行/池模板/实例池〕、技能行词汇表、池构成纪律、两道闸〔全技能各自冷却 + 保底〕、开轮摇号时序、死亡作废、独立子流);蓄力语义改写(纯攻击增益技、与重击无组合语义——纠偏二;施放行继承零兑付伏击);Boss 专属身份改专属池承载;意图呈现改三档可见性(普攻零表示 / 特殊技类型级预告 / 暴击掷点层);敌人表 schema pattern → pool;调参表增技能表与池 EV 锚(含闸长期速率实测登记);验收标准按摇号口径重写 |
|
||||||
|
| v0.6 | 2026-09-17 | **文档降级为模板批(用户拍板,与难度曲线与Boss / 战斗结算同批)**:数值纪律定稿——本文只锁字段、取值域与规则,全部具体行值(敌种表池权重 / 护甲等级行值 / 两道闸表值 / 伏击每层附加与上限 / 技能行倍率与冷却 / 主角三字段 / 三敌种行值与池 EV 实测读数)自本文移除、一律读配置表(切片 `data/tables/` 与 registry);调参表三表删除"现行值"列改纯 schema 模板;伏击公式与验算改符号化(a = 每层伏击表值);验收标准同步去数值。背景:切片 `.tres` 数值压缩批后文档行值已滞后,双写失同步被实证 |
|
||||||
|
| v0.7 | 2026-09-17 | **数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 `data/tables/*.tres` 与 registry),2 处失同步值修正**——共享技能表示例"熊地精 9×2=18"改符号化"基线 A × 技能倍率 M(行值读 enemy.tres / skills.tres)";蓄力语义"施加'攻击×2'状态""×2 遇 ×2 = ×4"改"施加 empower 状态(幅度读 status_effects.tres)",两层乘法组合语义保留符号表述 |
|
||||||
@@ -46,11 +46,11 @@
|
|||||||
|
|
||||||
### 挖、插旗、拔旗、移动:每个动作怎么才算合法
|
### 挖、插旗、拔旗、移动:每个动作怎么才算合法
|
||||||
|
|
||||||
玩家对棋盘只做四件事:挖未开格、插旗、拔旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前三个是付费动作,各花 1 点行动点(每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
玩家对棋盘只做四件事:挖未开格、插旗、拔旗,以及移动小人(玩家摆在棋盘上的探险者棋子)。前三个是付费动作,按标准动作价计费(价目见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`;每轮的决策预算,账本归[行动经济](行动经济.md));本文只管棋盘面这一半,总纲只有一条:付费动作只能作用于小人周围一圈 8 格(8 向相邻)之内。
|
||||||
|
|
||||||
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的雷格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
移动不花行动点:点任何已开格,小人沿已探明区一次走到位,"已探明区"包括踩过的雷格残址。点击已开格的唯一含义就是移动——本作没有经典扫雷里"双击数字格一键翻开周围"的 chord(双击快开),每一格的兑现都必须花行动点。
|
||||||
|
|
||||||
挖已插旗的格会被直接拒绝:想改主意,必须先花 1 点拔旗、再花 1 点挖。这条拒绝是故意的——旗是"别挖这里"的承诺,不让玩家零成本反悔。
|
挖已插旗的格会被直接拒绝:想改主意,必须先按价计费拔旗、再按价计费挖。这条拒绝是故意的——旗是"别挖这里"的承诺,不让玩家零成本反悔。
|
||||||
|
|
||||||
| 动作 | 合法对象 | 棋盘面拒绝情形 |
|
| 动作 | 合法对象 | 棋盘面拒绝情形 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
@@ -75,15 +75,15 @@
|
|||||||
|
|
||||||
每个已开安全格都亮着一个数字,恒等于它周围 8 格里的雷数。这条"数字恒真"是全部推理的地基:数据层从不说谎,呈现层怎么遮掩都不改真值——任何让数字失真的实现都在禁止之列。
|
每个已开安全格都亮着一个数字,恒等于它周围 8 格里的雷数。这条"数字恒真"是全部推理的地基:数据层从不说谎,呈现层怎么遮掩都不改真值——任何让数字失真的实现都在禁止之列。
|
||||||
|
|
||||||
挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未插旗的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只花首格挖掘的 1 点,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[地图战斗资源](../战斗循环/地图战斗资源.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。
|
挖开一个数字为 0 的格(周围一圈没有雷)时,它周围未插旗的安全格免费连锁全开,一路递推到没有新的 0 格为止——这就是连锁展开,玩家看到的是"坍塌显形":挖穿一层薄壳,整片松动的地面塌陷露出。连锁格只扣首格挖掘按价计的一笔,照常计入清图进度(清图 = 开完全部安全格),格面资源资格也照常——连锁开出的格与单挖的格同权,资源身份归[地图战斗资源](../战斗循环/地图战斗资源.md)、极性兑付归[战斗结算](../战斗循环/战斗结算.md),本系统不区分。
|
||||||
|
|
||||||
连锁遇到旗就停:旗格不被链开,也不给更远的格当传播跳板。旗花 1 点行动点,正是玩家亲手买下的"链阻断器"——对一片不敢确定的地,提前插一面旗,塌方到它为止。
|
连锁遇到旗就停:旗格不被链开,也不给更远的格当传播跳板。旗按价计费,正是玩家亲手买下的"链阻断器"——对一片不敢确定的地,提前插一面旗,塌方到它为止。
|
||||||
|
|
||||||
清图在每次挖完成后判定;插旗、拔旗、移动都不改已开格,永远不会触发清图。
|
清图在每次挖完成后判定;插旗、拔旗、移动都不改已开格,永远不会触发清图。
|
||||||
|
|
||||||
| 连锁展开的性质 | 含义 |
|
| 连锁展开的性质 | 含义 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 免费 | 只扣首格的 1 点,连锁翻开的格不另收费 |
|
| 免费 | 只扣首格按价计的一笔,连锁翻开的格不另收费 |
|
||||||
| 计入清图进度 | 连锁开的格照常算进"全部安全格开完"的判定 |
|
| 计入清图进度 | 连锁开的格照常算进"全部安全格开完"的判定 |
|
||||||
| 资源资格照常 | 连锁开出的安全格与单挖的安全格同权 |
|
| 资源资格照常 | 连锁开出的安全格与单挖的安全格同权 |
|
||||||
| 遇旗即止 | 旗格不入链、不作传播跳板;旗留在原地,轮末照常判定 |
|
| 遇旗即止 | 旗格不入链、不作传播跳板;旗留在原地,轮末照常判定 |
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
```
|
```
|
||||||
挖开 0 格 → 翻开周围 8 向未插旗的安全格 → 新开格里还有 0 格吗?
|
挖开 0 格 → 翻开周围 8 向未插旗的安全格 → 新开格里还有 0 格吗?
|
||||||
├─ 有 → 对每个新 0 格重复上一行
|
├─ 有 → 对每个新 0 格重复上一行
|
||||||
└─ 没有 → 连锁结束(整段只花首格 1 点)
|
└─ 没有 → 连锁结束(整段只扣首格按价计的一笔)
|
||||||
```
|
```
|
||||||
|
|
||||||
举证:连锁是纯粹的格面翻开闭包(flood fill),无计算。
|
举证:连锁是纯粹的格面翻开闭包(flood fill),无计算。
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
|
|
||||||
挖开雷格不是死亡,是事实上报:轮次不结束,雷格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的雷格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再插旗;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
挖开雷格不是死亡,是事实上报:轮次不结束,雷格从此算已开——小人能站上去,也能穿过它继续挖。挖开后的雷格不计清图进度(图不是靠踩雷清的)、不能再挖、不能再插旗;同一轮连挖多颗雷,每颗都是独立的事实,逐颗上报。
|
||||||
|
|
||||||
因此挖已知雷成了一条"有价捷径":花 1 点行动点、给敌方送去优势,换来一条穿行的近路。它既是玩家主动抄近路的权衡,也是棋盘被挖残时的兜底通路。惊动巢穴的代价在轮末结算兑现,归[战斗结算](../战斗循环/战斗结算.md)。
|
因此挖已知雷成了一条"有价捷径":按价计费、给敌方送去优势,换来一条穿行的近路。它既是玩家主动抄近路的权衡,也是棋盘被挖残时的兜底通路。惊动巢穴的代价在轮末结算兑现,归[战斗结算](../战斗循环/战斗结算.md)。
|
||||||
|
|
||||||
| 已引爆雷格的格态 | 行为 |
|
| 已引爆雷格的格态 | 行为 |
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
| 随战斗结束消失 | 整板退役 | 与板一同清空 |
|
| 随战斗结束消失 | 整板退役 | 与板一同清空 |
|
||||||
|
|
||||||
```
|
```
|
||||||
插旗(1 点,界面即时反馈)→ 旗立在未开格上,跨轮保留
|
插旗(按价计费,界面即时反馈)→ 旗立在未开格上,跨轮保留
|
||||||
每次轮次结束 → 逐旗判定,如实上报(标中 / 标空)
|
每次轮次结束 → 逐旗判定,如实上报(标中 / 标空)
|
||||||
换图(清图或刷新)或战斗结束 → 旗随旧图全量消失
|
换图(清图或刷新)或战斗结束 → 旗随旧图全量消失
|
||||||
```
|
```
|
||||||
@@ -205,7 +205,7 @@
|
|||||||
最小闭环只保留跑通"装板—挖—收轮—兑现—换图"必需的规则:
|
最小闭环只保留跑通"装板—挖—收轮—兑现—换图"必需的规则:
|
||||||
|
|
||||||
1. 战斗开始装上新图:校验结构前提,违例拒绝;初始展开免费翻开出生开阔地,小人落位。
|
1. 战斗开始装上新图:校验结构前提,违例拒绝;初始展开免费翻开出生开阔地,小人落位。
|
||||||
2. 玩家每帧提交一个意图:挖(判棋盘面,请账本扣 1 点,开格加连锁并逐格上报)、插旗拔旗(1 点,旗入棋盘,零事件)、移动(免费,已开区一次走到位)。
|
2. 玩家每帧提交一个意图:挖(判棋盘面,请账本按价扣费,开格加连锁并逐格上报)、插旗拔旗(按价计费,旗入棋盘,零事件)、移动(免费,已开区一次走到位)。
|
||||||
3. 被拒动作带可辨原因、状态不变;批次内轮次结束首次成立处定赢家,其后意图丢弃。
|
3. 被拒动作带可辨原因、状态不变;批次内轮次结束首次成立处定赢家,其后意图丢弃。
|
||||||
4. 收轮:先报完在场旗的逐条判定,再报轮次结束(停手路径由行动经济直发)。
|
4. 收轮:先报完在场旗的逐条判定,再报轮次结束(停手路径由行动经济直发)。
|
||||||
5. 战斗结算订阅事件流逐行兑现;清图或刷新换图时按它回发的指令装新图,旧板旗全量失效,回到第 1 步。
|
5. 战斗结算订阅事件流逐行兑现;清图或刷新换图时按它回发的指令装新图,旧板旗全量失效,回到第 1 步。
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
|
|
||||||
- 数字恒真:任意已开安全格的数字恒等于其 8 向相邻雷数;出生区无雷、数字恒真、初始展开不吞全图三条结构前提任一不满足时,装板被拒绝。
|
- 数字恒真:任意已开安全格的数字恒等于其 8 向相邻雷数;出生区无雷、数字恒真、初始展开不吞全图三条结构前提任一不满足时,装板被拒绝。
|
||||||
- 初始展开恰等:装板后翻开的格集合恰为"出生 3×3 加连通开阔地"——不止 3×3,也不外扩一圈;全程免费、恒无格面资源(封锁格)、计入清图进度;跨轮不重放。
|
- 初始展开恰等:装板后翻开的格集合恰为"出生 3×3 加连通开阔地"——不止 3×3,也不外扩一圈;全程免费、恒无格面资源(封锁格)、计入清图进度;跨轮不重放。
|
||||||
- 连锁免费且遇旗即止:一次触发连锁翻开任意多格,扣费恒为 1 点;旗格不被链开、不作传播跳板;连锁格计入清图进度、资源资格照常。
|
- 连锁免费且遇旗即止:一次触发连锁翻开任意多格,扣费恒为首格按价计的一笔;旗格不被链开、不作传播跳板;连锁格计入清图进度、资源资格照常。
|
||||||
- 挖有旗格被拒:拒绝原因可辨("须先拔旗"与"不相邻"数据可分),棋盘与行动点余额不变。
|
- 挖有旗格被拒:拒绝原因可辨("须先拔旗"与"不相邻"数据可分),棋盘与行动点余额不变。
|
||||||
- 已引爆雷格可通行:挖雷后轮次不结束,小人可站、可经已开区穿行续挖;雷格不计清图、不可再挖再插旗。
|
- 已引爆雷格可通行:挖雷后轮次不结束,小人可站、可经已开区穿行续挖;雷格不计清图、不可再挖再插旗。
|
||||||
- 移动合法且预览同源:目标未开或无已开区连通路径时拒绝;路径预览与实际执行逐格相同;移动免费、零事件。
|
- 移动合法且预览同源:目标未开或无已开区连通路径时拒绝;路径预览与实际执行逐格相同;移动免费、零事件。
|
||||||
@@ -249,4 +249,5 @@
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||||
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」三条雾失义登记(连锁开雾格与雾内旗恒不中、开格事件的变异标记透传、四格态中的两个雾态)——现行连锁与旗判定口径已按"全部安全格"写在正文,开格事件仍携带随格只读的变异标记(通用变异框架保留),格态呈现收窄为已开 / 未开两态。规则本体不变 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」三条雾失义登记(连锁开雾格与雾内旗恒不中、开格事件的变异标记透传、四格态中的两个雾态)——现行连锁与旗判定口径已按"全部安全格"写在正文,开格事件仍携带随格只读的变异标记(通用变异框架保留),格态呈现收窄为已开 / 未开两态。规则本体不变 |
|
||||||
|
| v0.4 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),0 处失同步修正——动作价面值改「按标准动作价计费(价目见 action_economy.tres)」口径,连锁免费、移动免费等结构语义保留 |
|
||||||
| v0.3 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 初始展开格定名**封锁格**(已开、计入清图进度、恒无格面资源、不再有任何加成),铁律表"无奖励"改"无格面资源";② 挖开格事件"奖励资格"字段改"格面资源资格"——安全格与雷格恒有(雷格不再恒无),封锁格恒无;③ 旗生命周期补结算队列口径:标旗 / 撤旗都是动作,轮末经战斗结算抵消过滤(标旗后被撤旗不兑付、行动点不返;开格不可撤);④ 标错惩罚条目与 P1 后置删除——惩罚已定为该安全格格面资源的负向兑付(极性矩阵,归奖励道具经济 / 战斗结算),本系统只报"标空"事实;⑤ 清图呈现口径注记:剩余安全格计数即"剩余未探索安全区域"。玩家说法"失控反噬"随三选一反噬下线改"控制失败" |
|
| v0.3 | 2026-09-15 | **格面资源批(用户拍板四点)**:① 初始展开格定名**封锁格**(已开、计入清图进度、恒无格面资源、不再有任何加成),铁律表"无奖励"改"无格面资源";② 挖开格事件"奖励资格"字段改"格面资源资格"——安全格与雷格恒有(雷格不再恒无),封锁格恒无;③ 旗生命周期补结算队列口径:标旗 / 撤旗都是动作,轮末经战斗结算抵消过滤(标旗后被撤旗不兑付、行动点不返;开格不可撤);④ 标错惩罚条目与 P1 后置删除——惩罚已定为该安全格格面资源的负向兑付(极性矩阵,归奖励道具经济 / 战斗结算),本系统只报"标空"事实;⑤ 清图呈现口径注记:剩余安全格计数即"剩余未探索安全区域"。玩家说法"失控反噬"随三选一反噬下线改"控制失败" |
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
**结论**:重试次数与图尺寸联合受成本闸约束。
|
**结论**:重试次数与图尺寸联合受成本闸约束。
|
||||||
|
|
||||||
```
|
```
|
||||||
成本闸:max_gen_attempts × board_width × board_height ≤ 16384 (provisional 量级护栏,正式值待实现期定)
|
成本闸:max_gen_attempts × board_width × board_height ≤ 成本闸护栏常数 (结构护栏常数,登记于 registry board_gen_table 条目;provisional 量级,正式值待实现期定)
|
||||||
```
|
```
|
||||||
|
|
||||||
| 出口 | 何时走 | 发生什么 |
|
| 出口 | 何时走 | 发生什么 |
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
|
|
||||||
### 图类型标签与第三轴预留:主题恒定、Boss 板有座位
|
### 图类型标签与第三轴预留:主题恒定、Boss 板有座位
|
||||||
|
|
||||||
每张图带一组图类型标签(board_biome 字段;biome 即图的主题、题材)。同关卡同深度的所有图,主题静态恒定——不存在逐图重掷主题的接口,"不会上钓鱼的当"是结构保证而非文案。现行值只有占位 {"dungeon"}(provisional):标签词表尚未定稿,定稿前只校验非空,定稿后补域校验。这组标签是表现侧换色板与[地图战斗资源](../战斗循环/地图战斗资源.md)图类型差异化插槽的数据源。本节为数据约定,无计算。
|
每张图带一组图类型标签(board_biome 字段;biome 即图的主题、题材)。同关卡同深度的所有图,主题静态恒定——不存在逐图重掷主题的接口,"不会上钓鱼的当"是结构保证而非文案。现行占位值见 board_gen.tres(provisional):标签词表尚未定稿,定稿前只校验非空,定稿后补域校验。这组标签是表现侧换色板与[地图战斗资源](../战斗循环/地图战斗资源.md)图类型差异化插槽的数据源。本节为数据约定,无计算。
|
||||||
|
|
||||||
参数表的键是关卡序号 × 节点深度,难度沿这两条轴雕刻;精英与 Boss 修饰是预留的第三条轴。本系统不定任何修饰数值,只锁定落点约定——这也是[关卡节点地图](../冒险循环/关卡节点地图.md)与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)两份文档的输入:
|
参数表的键是关卡序号 × 节点深度,难度沿这两条轴雕刻;精英与 Boss 修饰是预留的第三条轴。本系统不定任何修饰数值,只锁定落点约定——这也是[关卡节点地图](../冒险循环/关卡节点地图.md)与[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)两份文档的输入:
|
||||||
|
|
||||||
@@ -207,15 +207,15 @@
|
|||||||
|
|
||||||
| 参数 | 域 | 现行值 | 说明 |
|
| 参数 | 域 | 现行值 | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| board_width / board_height | int [8, 64] | 10×10 / 12×12(provisional 参考行) | 图尺寸 |
|
| board_width / board_height | int [8, 64] | 两档结构,现行面值见 board_gen.tres(provisional 参考行) | 图尺寸 |
|
||||||
| mine_density | float (0, 0.5] | 0.10 / 0.12(provisional) | 雷密度,与尺寸解耦 |
|
| mine_density | float (0, 0.5] | 现行值见 board_gen.tres | 雷密度,与尺寸解耦 |
|
||||||
| inferability_target | float [0.85, 1] | 0.95 / 0.92(provisional) | 可推理率及格线;域下限 0.85 绝对锚 |
|
| inferability_target | float [0.85, 1] | 现行值见 board_gen.tres | 可推理率及格线;域下限 0.85 绝对锚 |
|
||||||
| solver_rules | enum {single, single_subset} | single_subset(冻结,非调参) | 推理规则域 |
|
| solver_rules | enum {single, single_subset} | single_subset(冻结,非调参) | 推理规则域 |
|
||||||
| min_safe_count | int [1, 999] | 50 / 60(provisional) | 最小安全格数下限 |
|
| min_safe_count | int [1, 999] | 现行值见 board_gen.tres | 最小安全格数下限 |
|
||||||
| max_gen_attempts | int [1, 32] | 16(provisional) | 生成-验证重试上限;受成本闸联合约束 |
|
| max_gen_attempts | int [1, 32] | 域 [1, 32],现行按行取值见 board_gen.tres | 生成-验证重试上限;受成本闸联合约束 |
|
||||||
| board_biome | StringSet 非空 | {"dungeon"}(占位,provisional) | 图类型标签;词表定稿前只校验非空 |
|
| board_biome | StringSet 非空 | 现行值见 board_gen.tres(占位词表,provisional) | 图类型标签;词表定稿前只校验非空 |
|
||||||
|
|
||||||
结构冻结(非调参项):键结构与每关深度 0 锚行、五阶段顺序、solver_rules、可推理率的合法信息源枚举、及格线域下限 0.85、成本闸常数 16384(provisional,调整走文档修订)、先布后删语义。
|
结构冻结(非调参项):键结构与每关深度 0 锚行、五阶段顺序、solver_rules、可推理率的合法信息源枚举、及格线域下限 0.85、成本闸常数(结构护栏,登记于 registry board_gen_table 条目,调整走文档修订)、先布后删语义。
|
||||||
|
|
||||||
## 验收标准
|
## 验收标准
|
||||||
|
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
- 可通关:每个安全格都能从出生区沿安全格八向连通到达;合法性闸先于质量评分。
|
- 可通关:每个安全格都能从出生区沿安全格八向连通到达;合法性闸先于质量评分。
|
||||||
- 及格线:每张图实测可推理率 ≥ 该行及格线;任何行及格线 ≥ 0.85。
|
- 及格线:每张图实测可推理率 ≥ 该行及格线;任何行及格线 ≥ 0.85。
|
||||||
- 重试有界:实际重试次数落在 [1, max_gen_attempts];同一次生成内的重试不开新随机流。
|
- 重试有界:实际重试次数落在 [1, max_gen_attempts];同一次生成内的重试不开新随机流。
|
||||||
- 成本闸:max_gen_attempts × 宽 × 高 > 16384 的行加载期被拒;玩法代码零墙钟依赖、零全局随机函数。
|
- 成本闸:max_gen_attempts × 宽 × 高超过成本闸护栏常数(结构护栏常数,登记于 registry board_gen_table 条目)的行加载期被拒;玩法代码零墙钟依赖、零全局随机函数。
|
||||||
- 降级诚实:零合法板照常出图,必带非法产物标记与最高级告警;进程不死锁,玩家界面得到诚实告知。
|
- 降级诚实:零合法板照常出图,必带非法产物标记与最高级告警;进程不死锁,玩家界面得到诚实告知。
|
||||||
- 加载期校验:布雷数下限、计数可行性、标签非空等违例组合加载期致命。
|
- 加载期校验:布雷数下限、计数可行性、标签非空等违例组合加载期致命。
|
||||||
- 黄金图回归:手工核验小板集的可推理率输出与登记整数对逐位相等(整数对比对,禁浮点容差);换生成参数(推理定义、信息源、定义版本号)必须重制向量并入版本库。
|
- 黄金图回归:手工核验小板集的可推理率输出与登记整数对逐位相等(整数对比对,禁浮点容差);换生成参数(推理定义、信息源、定义版本号)必须重制向量并入版本库。
|
||||||
@@ -238,4 +238,5 @@
|
|||||||
| 版本 | 日期 | 改动 |
|
| 版本 | 日期 | 改动 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||||
|
| v0.3 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),3 处失同步修正(雷密度、可推理率及格线、生成尝试上限——文档面旧 provisional 值与 board_gen.tres 现值不一致,改指路);成本闸 16384 改标注「结构护栏常数,登记于 registry board_gen_table 条目」,其余引用处指路;调参表「现行值」列整列指路化 |
|
||||||
| v0.2 | 2026-09-15 | 雾格残留清理:删除「待拍板」五项旧版失义条目(雾参数两字段与雾域跨字段校验、双判据与 inferability_core、雾相关生成约束、雾致清图预算增量两指标、黄金图向量的 core 整数对);验收标准「表实一致」条去掉指向该节的清理登记。参数表、五阶段管线与三分支出图等现行规则不变 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:删除「待拍板」五项旧版失义条目(雾参数两字段与雾域跨字段校验、双判据与 inferability_core、雾相关生成约束、雾致清图预算增量两指标、黄金图向量的 core 整数对);验收标准「表实一致」条去掉指向该节的清理登记。参数表、五阶段管线与三分支出图等现行规则不变 |
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
## 设计目的
|
## 设计目的
|
||||||
|
|
||||||
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、插旗、拔旗各花 1 点,花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
每场战斗里,玩家真正在花的钱只有一种:行动点(AP)。行动经济就是这本账——每轮发给你固定的行动点,挖格、插旗、拔旗按统一价目计费(价目见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`),花完这一轮就结束了。没有这本账,"挖这一格值不值"就没有统一的价格语言。
|
||||||
|
|
||||||
它还要给"我不想赌了"一个体面的出口:主动停手能把剩余行动点 1:1 存进储备池,攒够了可以当场换掉整张雷图。推理本身不收钱——连锁展开免费——花钱的只是"兑现"这个动作。
|
它还要给"我不想赌了"一个体面的出口:主动停手能把剩余行动点 1:1 存进储备池,攒够了可以当场换掉整张雷图。推理本身不收钱——连锁展开免费——花钱的只是"兑现"这个动作。
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
| 负责 | 说明 |
|
| 负责 | 说明 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 行动点账本 | 全项目唯一扣减入口:余量检查、扣费、结束判定在同一个原子事务里完成,不允许双重折算 |
|
| 行动点账本 | 全项目唯一扣减入口:余量检查、扣费、结束判定在同一个原子事务里完成,不允许双重折算 |
|
||||||
| 统一价目 | 挖 / 插旗 / 拔旗各 1 点;移动与连锁展开免费(冻结项,不参与调参) |
|
| 统一价目 | 挖 / 插旗 / 拔旗同一价目(表值见 action_economy.tres);移动与连锁展开免费(冻结项,不参与调参) |
|
||||||
| 轮次结束仲裁 | 清图、停手、耗尽三种结束方式同时成立时,按固定优先级只裁出一个赢家 |
|
| 轮次结束仲裁 | 清图、停手、耗尽三种结束方式同时成立时,按固定优先级只裁出一个赢家 |
|
||||||
| 储备行动点池 | 停手进账、刷新支出、战斗结束清零(详见核心规则) |
|
| 储备行动点池 | 停手进账、刷新支出、战斗结束清零(详见核心规则) |
|
||||||
| 对下游的经济契约 | 五条契约约束收益兑现侧,由战斗结算负责对账验收 |
|
| 对下游的经济契约 | 五条契约约束收益兑现侧,由战斗结算负责对账验收 |
|
||||||
@@ -47,15 +47,15 @@
|
|||||||
|
|
||||||
### 每轮预算与价目
|
### 每轮预算与价目
|
||||||
|
|
||||||
每轮开始时,行动点被硬重置为表值(现行默认 6 点)——上一轮没用完的不累积、不结转。储备行动点(RAP,停手攒下来的池子)正好相反:开轮时原样保留,一分不动。
|
每轮开始时,行动点被硬重置为表值(见 action_economy.tres)——上一轮没用完的不累积、不结转。储备行动点(RAP,停手攒下来的池子)正好相反:开轮时原样保留,一分不动。
|
||||||
|
|
||||||
花钱的动作只有三种,价格一样:
|
花钱的动作只有三种,价格一样:
|
||||||
|
|
||||||
| 动作 | 花费 | 说明 |
|
| 动作 | 花费 | 说明 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 挖开格 | 1 点 | 只能挖小人 8 向相邻的格子;若触发连锁展开(flood fill 式整片翻开),连锁翻开的部分免费,且计入清图进度 |
|
| 挖开格 | 标准价(见 action_economy.tres) | 只能挖小人 8 向相邻的格子;若触发连锁展开(flood fill 式整片翻开),连锁翻开的部分免费,且计入清图进度 |
|
||||||
| 插旗 | 1 点 | 同样限相邻格。旗只是棋盘上的标记,不是背包里的实物,想用多少有多少——它的稀缺性完全由"要花 1 点行动点"承载 |
|
| 插旗 | 标准价(见 action_economy.tres) | 同样限相邻格。旗只是棋盘上的标记,不是背包里的实物,想用多少有多少——它的稀缺性完全由"要花一次标准价行动点"承载 |
|
||||||
| 拔旗 | 1 点 | 与插旗对称:移除标记,无任何返还 |
|
| 拔旗 | 标准价(见 action_economy.tres) | 与插旗对称:移除标记,无任何返还 |
|
||||||
|
|
||||||
不花钱的有两件事:移动小人(点已翻开的格子走过去,仅限已探明区域)和连锁展开。这两项免费是冻结设计,服务"边缘探索不心疼"的氛围,不是经济杠杆。
|
不花钱的有两件事:移动小人(点已翻开的格子走过去,仅限已探明区域)和连锁展开。这两项免费是冻结设计,服务"边缘探索不心疼"的氛围,不是经济杠杆。
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
|
|
||||||
### 挖掘期刷新:花储备换新图
|
### 挖掘期刷新:花储备换新图
|
||||||
|
|
||||||
储备池唯一的支出是刷新雷图。玩家在挖掘期经界面入口发起,储备值不低于刷新门槛(默认 6 点)时扣费,当场换一张新图继续挖。注意刷新不终结这一轮:行动点不重置、本轮剩余行动点保留;但换来的新图不发清图奖励(它又不是清图),旧图上的旗随旧图一起失效(插旗花的钱不退)。
|
储备池唯一的支出是刷新雷图。玩家在挖掘期经界面入口发起,储备值不低于刷新门槛(rap_refresh_cost,见 action_economy.tres)时扣费,当场换一张新图继续挖。注意刷新不终结这一轮:行动点不重置、本轮剩余行动点保留;但换来的新图不发清图奖励(它又不是清图),旧图上的旗随旧图一起失效(插旗花的钱不退)。
|
||||||
|
|
||||||
每轮最多刷新 2 次(轮内计数,开轮重置),没有冷却,每次独立检查门槛并扣费。禁止"攒满就自动刷"——刷新永远是玩家的决定。
|
每轮最多刷新 2 次(轮内计数,开轮重置),没有冷却,每次独立检查门槛并扣费。禁止"攒满就自动刷"——刷新永远是玩家的决定。
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
|---|---|
|
|---|---|
|
||||||
| 一次性 | 每颗雷在一场战斗内至多兑付一次,资格随首次兑付消费 |
|
| 一次性 | 每颗雷在一场战斗内至多兑付一次,资格随首次兑付消费 |
|
||||||
| 当轮结算 | 旗只是当轮兑付的载体,不囤积到以后 |
|
| 当轮结算 | 旗只是当轮兑付的载体,不囤积到以后 |
|
||||||
| 资格认雷格实例 | 拔掉重插同一格,不恢复已消费的资格——堵死"每轮花 2 点重插刷收益"的农场 |
|
| 资格认雷格实例 | 拔掉重插同一格,不恢复已消费的资格——堵死"重复计费重插刷收益"的农场 |
|
||||||
| 不逐轮重复 | 同一颗雷的收益不会每轮反复发 |
|
| 不逐轮重复 | 同一颗雷的收益不会每轮反复发 |
|
||||||
| 换图重置 | 新图的雷是新实例,资格自然重来 |
|
| 换图重置 | 新图的雷是新实例,资格自然重来 |
|
||||||
|
|
||||||
@@ -154,8 +154,8 @@
|
|||||||
## P0 最小闭环
|
## P0 最小闭环
|
||||||
|
|
||||||
1. 战斗结算发开轮通知:行动点硬重置为表值,储备池不动,进入可操作状态。
|
1. 战斗结算发开轮通知:行动点硬重置为表值,储备池不动,进入可操作状态。
|
||||||
2. 玩家挖 / 插旗 / 拔旗,每个动作过账本扣 1 点;连锁展开免费且计入清图进度。
|
2. 玩家挖 / 插旗 / 拔旗,每个动作过账本按价扣费;连锁展开免费且计入清图进度。
|
||||||
3. 玩家可随时停手(剩余行动点 1:1 入库),或储备够门槛时刷新换图(每轮至多 2 次)。
|
3. 玩家可随时停手(剩余行动点 1:1 入库),或储备够门槛时刷新换图(每轮次数上限读 `data/tables/action_economy.tres`)。
|
||||||
4. 结束路径在账本事务内仲裁,只裁一个赢家。
|
4. 结束路径在账本事务内仲裁,只裁一个赢家。
|
||||||
5. 轮末两字段消息发给战斗结算,后者把收益逐行兑现进结算明细。
|
5. 轮末两字段消息发给战斗结算,后者把收益逐行兑现进结算明细。
|
||||||
6. 战斗结束信号到达:储备池清零,账本休眠,等下一场战斗的开轮通知。
|
6. 战斗结束信号到达:储备池清零,账本休眠,等下一场战斗的开轮通知。
|
||||||
@@ -173,23 +173,25 @@
|
|||||||
|
|
||||||
配置表为单行全局表;已锁数值以 [registry 的 action_economy 条目](../../../registry/entities.yaml) 为准。
|
配置表为单行全局表;已锁数值以 [registry 的 action_economy 条目](../../../registry/entities.yaml) 为准。
|
||||||
|
|
||||||
| 参数 | 域 | 现行值 | 说明 |
|
| 参数 | 域 | 现行值(统一见 `prototypes/dungeon-sweeper-vertical-slice/data/tables/action_economy.tres`) | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| ap_per_round | int [1, 32] | 6 | 每轮行动点;兼作停手转存的规模旋钮 |
|
| ap_per_round | int [1, 32] | 表值 | 每轮行动点;兼作停手转存的规模旋钮 |
|
||||||
| dig_ap_cost | int [1, 8] | 1 | 挖单格成本(下限 1:为 0 则预算系统失效) |
|
| dig_ap_cost | int [1, 8] | 表值 | 挖单格成本(下限 1:为 0 则预算系统失效) |
|
||||||
| flag_place_ap_cost | int [0, 8] | 1 | 插旗成本 |
|
| flag_place_ap_cost | int [0, 8] | 表值 | 插旗成本 |
|
||||||
| flag_pull_ap_cost | int [0, 8] | 1 | 拔旗成本 |
|
| flag_pull_ap_cost | int [0, 8] | 表值 | 拔旗成本 |
|
||||||
| rap_refresh_cost | int [1, 64] | 6 | 刷新门槛;默认等于每轮预算,构成"满预算停手 = 恰好一刷"的基线节拍 |
|
| rap_refresh_cost | int [1, 64] | 表值 | 刷新门槛;默认等于每轮预算,构成"满预算停手 = 恰好一刷"的基线节拍 |
|
||||||
| move_ap_cost | int | 0 | 移动免费——冻结,非调参项 |
|
| move_ap_cost | int | 表值(冻结 0) | 移动免费——冻结,非调参项 |
|
||||||
| chain_ap_cost | int | 0 | 连锁免费——冻结,非调参项 |
|
| chain_ap_cost | int | 表值(冻结 0) | 连锁免费——冻结,非调参项 |
|
||||||
| refresh_cap_per_round | int | 2(provisional,结构位预留) | 每轮刷新上限,开轮重置计数 |
|
| refresh_cap_per_round | int | 表值(provisional,结构位预留) | 每轮刷新上限,开轮重置计数 |
|
||||||
|
|
||||||
|
字段名注记:2026-09-18 措辞收口批已全链对齐正式名——表字段与本文行名统一为 `refresh_cap_per_round`,账本入口统一为 `request_refresh`(registry naming_unification 兑现,切片临时名零残留)。
|
||||||
|
|
||||||
跨字段校验:任一动作成本不得超过每轮预算,违反即加载期致命(fail-fast)。各域上界(8 / 64)是 MVP 量级护栏而非推导界,随调参需要修订。
|
跨字段校验:任一动作成本不得超过每轮预算,违反即加载期致命(fail-fast)。各域上界(8 / 64)是 MVP 量级护栏而非推导界,随调参需要修订。
|
||||||
|
|
||||||
## 验收标准
|
## 验收标准
|
||||||
|
|
||||||
- 开轮硬重置:新一轮开始,行动点回到表值;储备池保持上轮结束时的值不变。
|
- 开轮硬重置:新一轮开始,行动点回到表值;储备池保持上轮结束时的值不变。
|
||||||
- 连锁免费:一次挖掘触发连锁翻开任意多格,扣费恒为 1 点,且连锁格计入清图判定。
|
- 连锁免费:一次挖掘触发连锁翻开任意多格,扣费恒为首格标准价的一笔,且连锁格计入清图判定。
|
||||||
- 耗尽即收轮:行动点扣到 0 的瞬间轮次结束,此后一切动作请求被拒绝且状态不变。
|
- 耗尽即收轮:行动点扣到 0 的瞬间轮次结束,此后一切动作请求被拒绝且状态不变。
|
||||||
- 仲裁唯一:最后 1 点行动点挖开最后一个安全格时,判清图(剩余清零 + 换图 + 清图奖励),不判耗尽;输出恰一条。
|
- 仲裁唯一:最后 1 点行动点挖开最后一个安全格时,判清图(剩余清零 + 换图 + 清图奖励),不判耗尽;输出恰一条。
|
||||||
- 停手 1:1:剩余 3 点停手,储备池加 3,下轮同图继续。
|
- 停手 1:1:剩余 3 点停手,储备池加 3,下轮同图继续。
|
||||||
@@ -208,4 +210,5 @@
|
|||||||
| 版本 | 日期 | 改动 |
|
| 版本 | 日期 | 改动 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-14 | 自归档 GDD 压缩改写 |
|
| v0.1 | 2026-09-14 | 自归档 GDD 压缩改写 |
|
||||||
|
| v0.3 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),0 处失同步修正——价目改「统一价目 / 标准价(见 action_economy.tres)」口径,每轮点数与刷新门槛改表值指路;调参表「现行值」列整列指路化;注记 refresh_cap_per_round 与表字段 refresh_max_per_round 命名不一致(字段名对齐待批)。顺带:P0 闭环「扣 1 点」改「按价扣费」;终扫补两处漏网——巢穴约束例句「每轮花 2 点重插」改「重复计费重插」、P0 闭环「每轮至多 2 次」改刷新上限读表 |
|
||||||
| v0.2 | 2026-09-16 | AP 压速批文档面值同步(用户拍板 8→6,削标旗 rush 单轮兑付吞吐为无伤通关根因的主阀门):ap_per_round 与 rap_refresh_cost 现行值 8→6,随动保持"满预算停手 = 恰好一刷"耦合;数据表与 registry 已同批改,本批补文档面正文两处与调参表两行 |
|
| v0.2 | 2026-09-16 | AP 压速批文档面值同步(用户拍板 8→6,削标旗 rush 单轮兑付吞吐为无伤通关根因的主阀门):ap_per_round 与 rap_refresh_cost 现行值 8→6,随动保持"满预算停手 = 恰好一刷"耦合;数据表与 registry 已同批改,本批补文档面正文两处与调参表两行 |
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 信息 | 恢复推理原料——把棋盘上已有、玩家暂时看不到的信息还给玩家(俗称"显影") | 暂无有效承载:显影尘(信息类道具)与地穴全图卷(全图级稀有道具)效果待重定,见待办 |
|
| 信息 | 恢复推理原料——把棋盘上已有、玩家暂时看不到的信息还给玩家(俗称"显影") | 暂无有效承载:显影尘(信息类道具)与地穴全图卷(全图级稀有道具)效果待重定,见待办 |
|
||||||
| 风险 | 标出惩罚格位置(真视——替玩家完成"这格有没有雷"的判断) | 探巢摆钟(圈定 3×3 窗口标出其中惩罚格)、爆破工兵包(组合效果之一) |
|
| 风险 | 标出惩罚格位置(真视——替玩家完成"这格有没有雷"的判断) | 探巢摆钟(圈定 3×3 窗口标出其中惩罚格)、爆破工兵包(组合效果之一) |
|
||||||
| 行动 | 给当轮行动点加量 | 工兵令(当轮行动点 +2)、爆破工兵包(+4) |
|
| 行动 | 给当轮行动点加量 | 工兵令、爆破工兵包(加量 magnitude 读 registry `aux_items`) |
|
||||||
| 规划 | 预读未挖开格子的奖励身份 | 探宝罗盘(圈定 3×3 窗口,显示窗口内未开格子的奖励身份) |
|
| 规划 | 预读未挖开格子的奖励身份 | 探宝罗盘(圈定 3×3 窗口,显示窗口内未开格子的奖励身份) |
|
||||||
| 反制 | 对抗地形变异(框架契约:地形变异每建一种新类型,至少配一件反制道具) | 暂无有效承载,见待办 |
|
| 反制 | 对抗地形变异(框架契约:地形变异每建一种新类型,至少配一件反制道具) | 暂无有效承载,见待办 |
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
|
|
||||||
道具不卖、不合成,唯一来路是战斗奖励:魔法道具作为一个奖励类别进入掉落池,权重与档位归[地图战斗资源](../战斗循环/地图战斗资源.md)管,本系统只定义道具本体。玩家挖开带道具的格子时,[战斗结算](../战斗循环/战斗结算.md)把道具路由进魔法道具的关卡背包——它和战斗道具背包是两个独立容器,互不混装,寿命相同:都活到关卡结束,无论输赢,关卡末同批清空。
|
道具不卖、不合成,唯一来路是战斗奖励:魔法道具作为一个奖励类别进入掉落池,权重与档位归[地图战斗资源](../战斗循环/地图战斗资源.md)管,本系统只定义道具本体。玩家挖开带道具的格子时,[战斗结算](../战斗循环/战斗结算.md)把道具路由进魔法道具的关卡背包——它和战斗道具背包是两个独立容器,互不混装,寿命相同:都活到关卡结束,无论输赢,关卡末同批清空。
|
||||||
|
|
||||||
每件道具记录它从哪个格子的哪一轮被捡到,来源可归因;用一件少一件、不能反悔;背包不设上限,稀缺完全由掉落权重控制——按默认权重,魔法道具期望约每板 1.7 件、稀有件约每六板一件(provisional 读数,随权重联动)。本节无计算,供给读数见调参表。
|
每件道具记录它从哪个格子的哪一轮被捡到,来源可归因;用一件少一件、不能反悔;背包不设上限,稀缺完全由掉落权重控制——供给读数由掉落权重推导(registry `aux_items` F1),本文不登记读数。本节无计算,供给读数见调参表。
|
||||||
|
|
||||||
### 什么时候怎么用:挖掘期发起,战斗结算编排
|
### 什么时候怎么用:挖掘期发起,战斗结算编排
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
所有会失败的情况都被前两步拦下,后两步在合法输入下不会失败——"产生效果"和"消耗道具"永远成对发生。带两个效果的稀有道具,施加顺序钉死为先空间效果、后加行动点;定义表里效果的书写顺序不承载运行时语义。
|
所有会失败的情况都被前两步拦下,后两步在合法输入下不会失败——"产生效果"和"消耗道具"永远成对发生。带两个效果的稀有道具,施加顺序钉死为先空间效果、后加行动点;定义表里效果的书写顺序不承载运行时语义。
|
||||||
|
|
||||||
用道具不扣行动点:成本在获取时已经付过——捡到它的那个格子没出战斗奖励;挖格、插旗的价格不受任何影响。道具只产生信息与行动点、不产生动作:系统没有任何自动使用入口——不会自动替你挖,也不会自动替你插旗。真视尤其要说清:它是信息不是保护,被标出的惩罚格挖开照样惊动;靠真视插旗仍花 1 点行动点,标中收益照走既有结算路径。本节纯流程,无计算。
|
用道具不扣行动点:成本在获取时已经付过——捡到它的那个格子没出战斗奖励;挖格、插旗的价格不受任何影响。道具只产生信息与行动点、不产生动作:系统没有任何自动使用入口——不会自动替你挖,也不会自动替你插旗。真视尤其要说清:它是信息不是保护,被标出的惩罚格挖开照样惊动;靠真视插旗仍按标准动作价计费(价目见 action_economy.tres),标中收益照走既有结算路径。本节纯流程,无计算。
|
||||||
|
|
||||||
### 信息住在哪:板级叠加层,随图消亡
|
### 信息住在哪:板级叠加层,随图消亡
|
||||||
|
|
||||||
@@ -146,14 +146,9 @@
|
|||||||
|
|
||||||
| 道具 | 稀有度 | 维度 | 效果 | 目标形态 | 数值 | 池权重/档位 |
|
| 道具 | 稀有度 | 维度 | 效果 | 目标形态 | 数值 | 池权重/档位 |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| 探宝罗盘 | 常规 | 规划 | 奖励预读 | 3×3 窗口 | — | 4 / t2 |
|
| 探宝罗盘 / 工兵令 / 探巢摆钟 / 爆破工兵包 / 显影尘 / 地穴全图卷(六行,行结构如左列序) | — | — | — | — | 六行登记值(w / t / mag 等)以 registry `aux_items` mvp_content 为准 | — |
|
||||||
| 工兵令 | 常规 | 行动 | 当轮行动点加量 | 无目标 | +2 | 5 / t2 |
|
|
||||||
| 探巢摆钟 | 常规 | 风险 | 惩罚格真视 | 3×3 窗口 | — | 4 / t2 |
|
|
||||||
| 爆破工兵包 | 稀有 | 行动 + 风险 | 行动点加量 × 3×3 真视组合 | 3×3 窗口 | +4 | 1 / t3 |
|
|
||||||
| 显影尘 | 常规 | 信息 + 反制 | 待重定(见待办) | 待重定 | — | 5 / t2 |
|
|
||||||
| 地穴全图卷 | 稀有 | 信息 + 规划 | 待重定(全图预读半边仍成立,见待办) | 全图 | — | 1 / t3 |
|
|
||||||
|
|
||||||
两件稀有道具的定位读数:双维组合加数值跳档。爆破工兵包的 +4 锚定"半轮预算"(每轮行动点默认 8,见[行动经济](行动经济.md);两者调参联动复核);稀有件供给读数约每六板一件(provisional)。
|
两件稀有道具的定位读数:双维组合加数值跳档。爆破工兵包的加量锚定“半轮预算”(锚定比例见[行动经济](行动经济.md),ap_per_round 现值见 action_economy.tres;两者调参联动复核);稀有件供给读数由掉落权重推导(registry `aux_items`),本文不登记读数。
|
||||||
|
|
||||||
结构冻结(非调参项,改动走本文修订流程):真视窄域护栏、零信息目标不消耗、边缘窗口照常受理、使用零行动点成本、库存关卡域、用后不可逆、零随机。
|
结构冻结(非调参项,改动走本文修订流程):真视窄域护栏、零信息目标不消耗、边缘窗口照常受理、使用零行动点成本、库存关卡域、用后不可逆、零随机。
|
||||||
|
|
||||||
@@ -161,7 +156,7 @@ playtest 预警(预注册,归难度曲线与Boss):
|
|||||||
|
|
||||||
| 预警 | 指标与读法 |
|
| 预警 | 指标与读法 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 道具依赖 | 用了道具的轮次占比超过 50% 即警——扫雷决策被外包给道具 |
|
| 道具依赖 | 用了道具的轮次占比超过道具依赖预警阈值即警——扫雷决策被外包给道具(阈值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md)预注册,registry `aux_items` warnings,本文不登记阈值) |
|
||||||
| 预读覆盖 | 预读格占开格前决策数过高即警——预读在替代推理,与上条联读 |
|
| 预读覆盖 | 预读格占开格前决策数过高即警——预读在替代推理,与上条联读 |
|
||||||
| 加点节奏 | 加行动点道具使用后,停手转存率异常上行即警——加点沦为刷储备的工具 |
|
| 加点节奏 | 加行动点道具使用后,停手转存率异常上行即警——加点沦为刷储备的工具 |
|
||||||
|
|
||||||
@@ -188,4 +183,5 @@ playtest 预警(预注册,归难度曲线与Boss):
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
| v0.1 | 2026-09-15 | 自归档 GDD 压缩改写 |
|
||||||
| v0.2 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"辅助道具"→"魔法道具"——定位已非纯数值道具,含信息/妙用向效果;文件同步重命名;英文代号 AUXILIARY_ITEMS 暂沿用 |
|
| v0.2 | 2026-09-16 | 更名批(用户拍板 2026-09-16):系统更名"辅助道具"→"魔法道具"——定位已非纯数值道具,含信息/妙用向效果;文件同步重命名;英文代号 AUXILIARY_ITEMS 暂沿用 |
|
||||||
|
| v0.4 | 2026-09-17 | 数值纪律收口批:正文与调参表 knob 现行值改指路存根(事实源 data/tables/*.tres 与 registry),1 处失同步修正(AP 8→6 漏改:爆破工兵包定位读数段的「每轮行动点默认 8」改指路 action_economy.tres)——道具加量、供给读数、调参表六行 w/t/mag、道具依赖预警阈值 50% 均改指路 registry `aux_items`;行名与表结构列保留 |
|
||||||
| v0.3 | 2026-09-17 | 切片期空内容拍板(用户拍板):道具定义表为空列为合法态——五维度覆盖检查改为仅对非空清单执行(垂直切片期无道具内容、无掉落面;六行设计值与机制桥接登记保留,内容整批后置至切片收尾后的魔法道具内容批);验收标准覆盖检查条目同步;[06-待办清单](../../06-待办清单.md)「维度覆盖检查破缺」「失义道具的掉落投放」两条随批关闭 |
|
| v0.3 | 2026-09-17 | 切片期空内容拍板(用户拍板):道具定义表为空列为合法态——五维度覆盖检查改为仅对非空清单执行(垂直切片期无道具内容、无掉落面;六行设计值与机制桥接登记保留,内容整批后置至切片收尾后的魔法道具内容批);验收标准覆盖检查条目同步;[06-待办清单](../../06-待办清单.md)「维度覆盖检查破缺」「失义道具的掉落投放」两条随批关闭 |
|
||||||
@@ -200,9 +200,9 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
|||||||
|
|
||||||
## 调参表
|
## 调参表
|
||||||
|
|
||||||
本系统的参数全部是呈现节奏与可读性常量,不是玩法数值——玩法数值一律归[数据配置](数据配置.md)的表,与本表无关。修订本文常量走文档修订流程。
|
本系统的参数全部是呈现节奏与可读性常量,不是玩法数值——玩法数值一律归[数据配置](数据配置.md)的表,与本表无关。修订本文常量走文档修订流程。**本表常量无数据表承载,为文档面唯一事实源;入驻 .tres 时本列改指路。**
|
||||||
|
|
||||||
| 参数 | 域 | 现行值 | 说明 |
|
| 参数 | 域 | 现行值(文档自持,无表承载) | 说明 |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| toast_display_ms | 每条提示 | 2500 | 过长挡节奏,过短读不完拒绝原因 |
|
| toast_display_ms | 每条提示 | 2500 | 过长挡节奏,过短读不完拒绝原因 |
|
||||||
| move_slide_ms | 每次移动 | ≤150(provisional) | 推荐值,移动手感留实测复核 |
|
| move_slide_ms | 每次移动 | ≤150(provisional) | 推荐值,移动手感留实测复核 |
|
||||||
@@ -247,3 +247,4 @@ HUD框架站在玩家与全部玩法系统之间:挖掘期它是输入的翻
|
|||||||
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」五条雾失义登记(雾图例条目、雾首遇一次性提示、四格态中的两个雾态、雾纹带与已开雾格 tint 残留、雾区全开合并域完成信号)。现行口径 = 格态两态一眼可辨(已开 / 未开)、图例面板只载现行格态与变异语义;通用变异框架的纹带形状通道保留为未来变异类型的呈现位 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:关闭「待拍板」五条雾失义登记(雾图例条目、雾首遇一次性提示、四格态中的两个雾态、雾纹带与已开雾格 tint 残留、雾区全开合并域完成信号)。现行口径 = 格态两态一眼可辨(已开 / 未开)、图例面板只载现行格态与变异语义;通用变异框架的纹带形状通道保留为未来变异类型的呈现位 |
|
||||||
| v0.4 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / registry / 切片代码同批)**:敌人卡义务改写——行为环环点拆除(proposal §2.4),意图徽标语义改「本拍摇定结果的动画占位」(普通攻击零表示 / 特殊技类型级提示两型:攻击系 ⚔ / 增益系 ✦),护甲行(护甲类型 + AC)保留常驻;敌方增益显示(蓄力/硬化)入敌卡状态行 + 状态槽图标键增 empower/fortify 两键(状态表九行全映射);呈现快照敌人字段消费面同步(摇定动作三字段 + effects,池与权重不投影);上游敌人系统行与验收条目同步 |
|
| v0.4 | 2026-09-16 | **敌人技能池批(与敌人系统 / 战斗结算 / registry / 切片代码同批)**:敌人卡义务改写——行为环环点拆除(proposal §2.4),意图徽标语义改「本拍摇定结果的动画占位」(普通攻击零表示 / 特殊技类型级提示两型:攻击系 ⚔ / 增益系 ✦),护甲行(护甲类型 + AC)保留常驻;敌方增益显示(蓄力/硬化)入敌卡状态行 + 状态槽图标键增 empower/fortify 两键(状态表九行全映射);呈现快照敌人字段消费面同步(摇定动作三字段 + effects,池与权重不投影);上游敌人系统行与验收条目同步 |
|
||||||
| v0.3 | 2026-09-16 | 格面资源批 UI 欠账收口(可选类道具与其轮末窗口已随 2026-09-15 代码批删除):战斗屏布局五区 → 四区(删 E 道具栏行,D 区加宽至约 1036px 并同步装板校验变量);删道具窗口弹层条款(原位点亮、非模态不入栈)、P0 闭环窗口锚点条目、「道具窗口原位点亮 / 至多选一件 / 禁用件带原因 / 空库存不弹窗」验收行;依赖与输出表的窗口选择提交、道具使用窗口呈现、库存查询义务删除或改述为现行口径(奖励身份投影经 `query_identity` 只读回调,零直读);关卡末清库反馈义务改载魔法道具背包,随魔法道具 P0 落地。魔法道具预留义务行与「待拍板」登记保持 |
|
| v0.3 | 2026-09-16 | 格面资源批 UI 欠账收口(可选类道具与其轮末窗口已随 2026-09-15 代码批删除):战斗屏布局五区 → 四区(删 E 道具栏行,D 区加宽至约 1036px 并同步装板校验变量);删道具窗口弹层条款(原位点亮、非模态不入栈)、P0 闭环窗口锚点条目、「道具窗口原位点亮 / 至多选一件 / 禁用件带原因 / 空库存不弹窗」验收行;依赖与输出表的窗口选择提交、道具使用窗口呈现、库存查询义务删除或改述为现行口径(奖励身份投影经 `query_identity` 只读回调,零直读);关卡末清库反馈义务改载魔法道具背包,随魔法道具 P0 落地。魔法道具预留义务行与「待拍板」登记保持 |
|
||||||
|
| v0.5 | 2026-09-17 | 数值纪律收口批:调参表标注文档自持口径(无表承载常量的唯一事实源声明) |
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来装进这两个容器:
|
HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来装进这两个容器:
|
||||||
|
|
||||||
- **toast 提示条**:用于"第一次遇到"类提示。非模态、自动消退(约 2.5 秒)、不打断挖掘操作。
|
- **toast 提示条**:用于"第一次遇到"类提示。非模态、自动消退(时长归 HUD 框架调参表)、不打断挖掘操作。
|
||||||
- **图例面板**:用于常量性知识。模态覆盖层,恒在、不设解锁门、可随时回看。
|
- **图例面板**:用于常量性知识。模态覆盖层,恒在、不设解锁门、可随时回看。
|
||||||
|
|
||||||
### 已登记的教学条目
|
### 已登记的教学条目
|
||||||
@@ -114,3 +114,4 @@ HUD 框架定稿时已为教学留好两个承载位,本系统的内容将来
|
|||||||
|---|---|---|
|
|---|---|---|
|
||||||
| v0.1 | 2026-09-14 | 自归档线索整合为范围草案(旧体系未单独成文) |
|
| v0.1 | 2026-09-14 | 自归档线索整合为范围草案(旧体系未单独成文) |
|
||||||
| v0.2 | 2026-09-15 | 雾格残留清理:删除「待拍板」的雾类教学条目失义登记(图例条目"迷雾 = 无雷盲区"与雾格首遇三要点提示),"待设计问题清单"第 3 条去掉雾条目删除的限定。教学条目清单与承载设施不变 |
|
| v0.2 | 2026-09-15 | 雾格残留清理:删除「待拍板」的雾类教学条目失义登记(图例条目"迷雾 = 无雷盲区"与雾格首遇三要点提示),"待设计问题清单"第 3 条去掉雾条目删除的限定。教学条目清单与承载设施不变 |
|
||||||
|
| v0.3 | 2026-09-17 | 数值纪律收口批:呈现常量复述改指路 HUD 框架调参表 |
|
||||||
@@ -11,7 +11,7 @@ rows = [{
|
|||||||
"effect_id": "attack_up",
|
"effect_id": "attack_up",
|
||||||
"display_name": "增伤",
|
"display_name": "增伤",
|
||||||
"power": 0,
|
"power": 0,
|
||||||
"weight": 20,
|
"weight": 14,
|
||||||
"pool_tag": "cell",
|
"pool_tag": "cell",
|
||||||
"tier": 2
|
"tier": 2
|
||||||
}, {
|
}, {
|
||||||
@@ -21,7 +21,7 @@ rows = [{
|
|||||||
"effect_id": "ac_up",
|
"effect_id": "ac_up",
|
||||||
"display_name": "护甲强化",
|
"display_name": "护甲强化",
|
||||||
"power": 0,
|
"power": 0,
|
||||||
"weight": 16,
|
"weight": 11,
|
||||||
"pool_tag": "cell",
|
"pool_tag": "cell",
|
||||||
"tier": 2
|
"tier": 2
|
||||||
}, {
|
}, {
|
||||||
@@ -43,7 +43,7 @@ rows = [{
|
|||||||
"power": 1,
|
"power": 1,
|
||||||
"power_min": 1,
|
"power_min": 1,
|
||||||
"power_max": 1,
|
"power_max": 1,
|
||||||
"weight": 3,
|
"weight": 2,
|
||||||
"pool_tag": "cell",
|
"pool_tag": "cell",
|
||||||
"tier": 1
|
"tier": 1
|
||||||
}, {
|
}, {
|
||||||
@@ -53,7 +53,7 @@ rows = [{
|
|||||||
"effect_id": "weaken",
|
"effect_id": "weaken",
|
||||||
"display_name": "削弱",
|
"display_name": "削弱",
|
||||||
"power": 0,
|
"power": 0,
|
||||||
"weight": 12,
|
"weight": 8,
|
||||||
"pool_tag": "cell",
|
"pool_tag": "cell",
|
||||||
"tier": 1
|
"tier": 1
|
||||||
}, {
|
}, {
|
||||||
@@ -119,11 +119,54 @@ rows = [{
|
|||||||
"weight": 1,
|
"weight": 1,
|
||||||
"pool_tag": "clear_default",
|
"pool_tag": "clear_default",
|
||||||
"tier": 2
|
"tier": 2
|
||||||
}]
|
}, {
|
||||||
|
"reward_id": "pierce_strike",
|
||||||
|
"cell_type": "pierce",
|
||||||
|
"polarity": "positive",
|
||||||
|
"effect_id": "",
|
||||||
|
"display_name": "穿刺弹",
|
||||||
|
"power": 2,
|
||||||
|
"weight": 8,
|
||||||
|
"pool_tag": "cell",
|
||||||
|
"tier": 1,
|
||||||
|
"attack_type": "pierce"
|
||||||
|
}, {
|
||||||
|
"reward_id": "magic_bolt",
|
||||||
|
"cell_type": "magic",
|
||||||
|
"polarity": "positive",
|
||||||
|
"effect_id": "",
|
||||||
|
"display_name": "魔法矢",
|
||||||
|
"power": 2,
|
||||||
|
"weight": 8,
|
||||||
|
"pool_tag": "cell",
|
||||||
|
"tier": 1,
|
||||||
|
"attack_type": "magic"
|
||||||
|
}, {
|
||||||
|
"reward_id": "pierce_snare",
|
||||||
|
"cell_type": "pierce",
|
||||||
|
"polarity": "negative",
|
||||||
|
"effect_id": "",
|
||||||
|
"display_name": "穿刺陷阱",
|
||||||
|
"power": 2,
|
||||||
|
"weight": 0,
|
||||||
|
"pool_tag": "cell",
|
||||||
|
"tier": 1
|
||||||
|
}, {
|
||||||
|
"reward_id": "magic_recoil",
|
||||||
|
"cell_type": "magic",
|
||||||
|
"polarity": "negative",
|
||||||
|
"effect_id": "",
|
||||||
|
"display_name": "魔法反噬",
|
||||||
|
"power": 2,
|
||||||
|
"weight": 0,
|
||||||
|
"pool_tag": "cell",
|
||||||
|
"tier": 1
|
||||||
|
}]
|
||||||
|
|
||||||
; 格面资源批(2026-09-15 用户拍板——registry reward_table 条目为现行 schema 事实源):
|
; 格面资源批(2026-09-15 用户拍板——registry reward_table 条目为现行 schema 事实源):
|
||||||
; 十行格面池(五型 × 正负各一行)+ 清图槽一行。安全格与雷格同池同分布(雷安同池),
|
; 十行格面池(五型 × 正负各一行)+ 清图槽一行。安全格与雷格同池同分布(雷安同池),
|
||||||
; 装板期一次摇定;摇号只消费正向行权重(类型频次 = attack 20 / defense 16 / blast 16 / heal 15 / weaken 12,合计 79);
|
; 装板期一次摇定;摇号只消费正向行权重(类型频次 = attack 20 / defense 16 / blast 16 / heal 3 / weaken 12,合计 67;
|
||||||
|
; 头段"heal 15 / weaken 12,合计 79"为历史注记——数值压缩批后 heal 3、合计 67,见本文件尾部 2026-09-17 批注);
|
||||||
; 负向行 weight=0 不参与摇号,纯(类型, 极性)兑付字典——heal 负向 = 主角直伤 4(不经增益状态),
|
; 负向行 weight=0 不参与摇号,纯(类型, 极性)兑付字典——heal 负向 = 主角直伤 4(不经增益状态),
|
||||||
; blast 负向 = ambush +2 层(stacks=2,伏击池 cap 与"溢出未生效"行协议不变)。
|
; blast 负向 = ambush +2 层(stacks=2,伏击池 cap 与"溢出未生效"行协议不变)。
|
||||||
; 可选类三行(knife_t1/knife_adv/heal_pack)与注入池 active_inject 随可选类道具整体删除(供给控制器/保底/窗口同步下线)。
|
; 可选类三行(knife_t1/knife_adv/heal_pack)与注入池 active_inject 随可选类道具整体删除(供给控制器/保底/窗口同步下线)。
|
||||||
@@ -131,7 +174,7 @@ rows = [{
|
|||||||
; roll 时机 = 身份预分配批内追加取号(既有取号序零扰动);spark_aoe 定值行无区间字段。
|
; roll 时机 = 身份预分配批内追加取号(既有取号序零扰动);spark_aoe 定值行无区间字段。
|
||||||
; 减伤墙调参批(2026-09-13):defense_up 权重 24→16——攻击成为池内最高行(历史注记)。
|
; 减伤墙调参批(2026-09-13):defense_up 权重 24→16——攻击成为池内最高行(历史注记)。
|
||||||
; 护甲等级掷点批(2026-09-16 用户拍板):defense 型正向行换装——reward_id/effect_id defense_up → ac_up
|
; 护甲等级掷点批(2026-09-16 用户拍板):defense 型正向行换装——reward_id/effect_id defense_up → ac_up
|
||||||
; (显示名暂定"护甲强化",AC +1/层 ×2 层);cell_type defense / 权重 16 / tier 2 零改动(类型频次合计 79 不变);
|
; (显示名暂定"护甲强化",AC +1/层 ×2 层);cell_type defense / 权重 16 / tier 2 零改动(类型频次合计 79 不变——历史注记,数值压缩批后现合计 67);
|
||||||
; 百分比减伤行无双轨退役——status_effects.tres defense_up 行同批删除。
|
; 百分比减伤行无双轨退役——status_effects.tres defense_up 行同批删除。
|
||||||
;
|
;
|
||||||
; 数值压缩批(2026-09-17 用户拍板暂定):
|
; 数值压缩批(2026-09-17 用户拍板暂定):
|
||||||
@@ -143,3 +186,10 @@ rows = [{
|
|||||||
; ③ 雷安同池连带(结构冻结,自动同侧):heal 权重下调同比例降低踩中 heal 型雷(反噬)的频率——
|
; ③ 雷安同池连带(结构冻结,自动同侧):heal 权重下调同比例降低踩中 heal 型雷(反噬)的频率——
|
||||||
; 负向侧反噬量同步 ÷3(4→1)。
|
; 负向侧反噬量同步 ÷3(4→1)。
|
||||||
; 类型频次合计 79→67(attack 20 / defense 16 / blast 16 / heal 3 / weaken 12)。行值 provisional 归 难度曲线与Boss。
|
; 类型频次合计 79→67(attack 20 / defense 16 / blast 16 / heal 3 / weaken 12)。行值 provisional 归 难度曲线与Boss。
|
||||||
|
;
|
||||||
|
; 伤害道具批(2026-09-18 用户指令):① 七型字典——五型增补 pierce(穿刺)/ magic(魔法)两型,各正负一行:
|
||||||
|
; 正向 = 单目标克制直伤道具(穿刺弹/魔法矢 power 2,attack_type 字段载攻击类型轴,走克制矩阵、
|
||||||
|
; 必中全额不掷点——棋盘来源伤害既有口径);负向 = 主角直伤(穿刺陷阱/魔法反噬 power 2,复用反噬通道不经增益状态)。
|
||||||
|
; ② 权重再平衡(保 spark_aoe 16 不动、总 67 不变):attack_up 20→14 · ac_up 16→11 · heal_minor 3→2 · weaken 12→8;
|
||||||
|
; 新行各 8。等比基准 = 其余四行 51→35(×0.686),整取后 14/11/2/8,微差登记已知偏差。
|
||||||
|
; 类型频次合计仍 67:attack 14 / defense 11 / blast 16 / heal 2 / weaken 8 / pierce 8 / magic 8。
|
||||||
Reference in new issue
Block a user