编排(迭代39追加编卡): 技能池情境条件触发器卡(reports/需求卡片-技能池情境条件触发器批-2026-10-26.md v1.2,估时≈3.0d)追加编入迭代39排末位(主先副后不动)——迭代39总量≈7.15+3.0≈10.15个工作日,行内随带日期特批标记(先例迭代33/34/35);预计周期换代与当前位下一步行同步(三卡≈10.15——特批事实单点活在迭代行预计周期列,当前位散文行不复制标记);待办清单条目状态推进「已编迭代 39」(交叉核8链);编排四查凭据实核=敌人系统.md v1.2+战斗结算/难度曲线与Boss/数据配置三随动v1.0版本头+卡片零待裁点;同批补提上会话已产出未提交的文档设计闭合批(敌人系统v1.2百分比事实阈值式+技能表trigger行+三随动v1.0+待办条目凭据行)与写卡定稿件;在册未编三张呈报不编=卡⑤ESC浮窗(前置卡④退回美术设计段未闭)/冒险前资源配比预设(2026-10-05挂起冻结)/结算明细日志行序重锚(义务已并入迭代38卡T2,状态行滞后归批后收尾订正);pipeline_gate 绿(57条目/39行/8链/15卡)
This commit is contained in:
1 parent
2465a73b83
commit
f3b148ce44
7 files changed
+230
-15
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# 难度曲线与Boss
|
||||
|
||||
> 一句话:难度曲线、期望值带与 Boss 设计
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 状态:已定稿(自旧体系迁移);现行为 v1.0
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -288,13 +288,14 @@ Boss 战的棋盘用本关最大板形(板形行值读棋盘参数表),板
|
||||
|
||||
群伤负向 = 警觉(敌方护甲等级 +1——2026-09-20 八型批伏击退役换装);一轮踩雷数由行动点预算天然封顶(原 advantage_per_round_cap 行值同日先行删除)。攻击浮动开战时掷定一次、整战持久;数量区间同流掷定,教学位与首遇位都不豁免——没有区间上界的行自然取定值,那不是豁免,是区间宽度为零。
|
||||
|
||||
技能池投值(池权重/冷却/保底的所有权本文,机制归[敌人系统](../战斗循环/敌人系统.md);行值读 `skills.tres` 与 `enemy.tres` 的 pool,全部 provisional):
|
||||
技能池投值(池权重/冷却/保底/触发条件的所有权本文,机制归[敌人系统](../战斗循环/敌人系统.md);行值读 `skills.tres` 与 `enemy.tres` 的 pool,全部 provisional):
|
||||
|
||||
| 参数 | 说明 |
|
||||
|---|---|
|
||||
| 池权重 | 权重即旋钮:抬特殊技权重 = 抬输出频率,EV 随之重锚;各敌种行集读表 |
|
||||
| 技能冷却(拍) | 逐技能行读表;普攻冷却恒 0 不可配(空池不可能的结构前提——域校验锁死);撕咬 = 与突刺同倍率错开冷却轴的高频小爆发轮廓;毒爆 = 蛛化卓尔精灵专属池独占技 |
|
||||
| 保底 M | 全局单旋钮,读技能表 pity_threshold;连续 M 拍执行普攻 → 下拍必出特殊技;单特殊技低权重池受保底支配 |
|
||||
| 触发条件 | 情境技与闩型解锁的 fact 阈值读技能表 trigger 行值(2026-10-26 触发条件批设计闭合——词表与机制归敌人系统「触发条件」节);情境技的池内份额照走池权重行 |
|
||||
| 池 EV 锚 | 静态份额与含闸长期速率实测读数登记于调参日志(EV 重锚与权重投值随本表修订)。**2026-09-19 节奏体验验证批登记**(60 distinct seeds × 双策略 × 两关,tools/skill_rhythm_audit.py——20 种子以下批次有种子偏置假象,读数须 ≥50 种子):特殊技执行份额 对表成立——地精 10.4%(静态 10%)/ 地精一伙 8.4% / 熊地精系 28.9–42.4% / 巨蜘蛛 34.8% / 酋长 28.9% / 卓尔 35.4%;**L2 池含闸速率抽样复核完成**(上项即含闸读数);保底越界 0/247(间隔 4 = M=4 合法上界);过涝信号 8/1440 场(最长连击 3);过旱按用户判读带集中在短命杂鱼(生存时长问题非池配置——见待办清单清单 Alpha 条目移交注记) |
|
||||
|
||||
主角表与棋盘参数表(行值分别读 `hero.tres` 与 `board_gen.tres`,provisional):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 战斗结算
|
||||
|
||||
> 一句话:轮末结算的编排与逐行兑现
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 状态:已定稿(自旧体系迁移);现行为 v1.0
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -196,7 +196,7 @@ percent 类(每结算、每层): E = |层数 × 行值| ÷ 100 ×
|
||||
|
||||
战斗段是兑现的最后一刀。主角的基础攻击恒存在——这是项目拍板:若基线为零,百分比增益乘上去永远是零,增益系统就空转了。攻击力域 [1, 999]、0 于加载期拒绝,行值读主角表。顺序固定:主角先基础攻击顺位最前的存活敌人,随后按行序逐个存活敌人按本拍摇定技能还手;每个敌人依次走"按技能行兑现、结算伤害、执行上报(技能进冷却 + 保底计数)"三步且恰行动一次,主角不在其列;**最后兑地图伤害账**——授予段暂存的全部伤害单按授予段事件序补提交,与主角单、敌方单一起攒到战斗段尾统一结账(见[伤害单据与伤害控制器](#伤害单据与伤害控制器所有伤害走同一道门)一节)。主角中途倒下,剩余敌人全部停手,地图伤害账整体不兑(逐单留「未生效(主角已倒下)」行),直接进判定段。施放技不涉伤害、照旧当场落行。案C 后授予段不产出伤害,主角进入战斗段时恒存活、场上恒有敌——先手必兑。
|
||||
|
||||
**开轮摇号与敌方技能兑现**(2026-09-16 敌人技能池批):敌人每拍做什么由开轮摇号决定——每轮轮次开始时,本系统在换算层排除冷却中技能,按行序逐敌从 `behavior_roll` 封闭流的独立子流摇定本拍动作写入实例池(首轮同样摇号;每轮恰摇一次;轮内刷新换图不重摇),随后冷却递减。摇定后、兑现前死亡 → 本拍技能作废、不动手(死亡即不动手)。结算战斗段只按技能行兑现:伤害技走三乘法链(见下),增益技记一行施放行并把状态效果按技能行持续回合挂入[增益状态](增益状态.md)的状态池——0 伤害动作不掷不折。池模板、技能行、冷却与保底语义归[敌人系统](敌人系统.md)(引用不转述)。
|
||||
**开轮摇号与敌方技能兑现**(2026-09-16 敌人技能池批):敌人每拍做什么由开轮摇号决定——每轮轮次开始时,本系统在换算层排除冷却中与触发条件不满足的技能(可摇集合语义归[敌人系统](敌人系统.md)),按行序逐敌从 `behavior_roll` 封闭流的独立子流摇定本拍动作写入实例池(首轮同样摇号;每轮恰摇一次;轮内刷新换图不重摇),随后冷却递减。摇定后、兑现前死亡 → 本拍技能作废、不动手(死亡即不动手)。结算战斗段只按技能行兑现:伤害技走三乘法链(见下),增益技记一行施放行并把状态效果按技能行持续回合挂入[增益状态](增益状态.md)的状态池——0 伤害动作不掷不折。池模板、技能行、冷却、保底与触发条件语义归[敌人系统](敌人系统.md)(引用不转述)。
|
||||
|
||||
**三乘法链**(技能伤害的合成顺序,技能倍率乘在最前,其后既有链一字不动):
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 敌人系统
|
||||
|
||||
> 一句话:敌人数据、技能池出招、意图呈现
|
||||
> 状态:已定稿(自旧体系迁移);现行为 v1.1
|
||||
> 状态:已定稿(自旧体系迁移);现行为 v1.2
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -161,14 +161,14 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
|
||||
| fact | 读数 | 求值归属 |
|
||||
|---|---|---|
|
||||
| self_hp_pct | 自身当前血量百分比(向下取整) | 逐敌各自 |
|
||||
| hero_hp_pct | 主角当前血量百分比(向下取整) | 全局 |
|
||||
| self_hp_pct | 自身血量的阈值比较:先把 value 折算为绝对阈值 round(自身 max_hp × value/100),再与当前 hp 比较 | 逐敌各自 |
|
||||
| hero_hp_pct | 主角血量的阈值比较:先把 value 折算为绝对阈值 round(主角 max_hp × value/100),再与当前 hp 比较 | 全局 |
|
||||
| round_index | 当前轮次(1 基) | 全局 |
|
||||
| last_round_end | 上轮结束方式:无(首轮)/清图/停手/耗尽——取行动经济轮次结束仲裁出的唯一赢家 | 全局 |
|
||||
| mines_hit_last | 上轮踩雷数 | 全局 |
|
||||
| mines_hit_total | 本场累计踩雷数 | 全局 |
|
||||
|
||||
算子词表(首批六比较算子):eq/neq/gt/gte/lt/lte——last_round_end 以枚举值配 eq/neq,数值事实配全六算子;value 为整数,百分比事实取域 [1,99]。
|
||||
算子词表(首批六比较算子):eq/neq/gt/gte/lt/lte——last_round_end 以枚举值配 eq/neq(value 取枚举串),数值事实配全六算子;value 类型随 fact(数值事实整数、百分比事实域 [1,99]、枚举事实枚举串)。百分比事实的算子统一按阈值式求值:折算出的绝对阈值与当前 hp 作比较——lte 形态与半血解锁原式逐位一致(收编行为零变化的结构保证),六算子都在该阈值上定义,不做百分比读数取整。
|
||||
|
||||
与既有机制的互作用(全部按半血解锁先例顺延,无新增裁决面):
|
||||
|
||||
@@ -284,7 +284,7 @@ Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(**技能错
|
||||
| cooldown_beats | [0, 99] | 施放后连续 N 拍不可摇中;普通攻击恒 0 不可配(域校验锁死——空池不可能的结构前提) |
|
||||
| buff_ref / buff_duration | 效果引用 / [1, 99] | 仅增益与妨害技(target_side 路由);悬空引用加载期拒绝 |
|
||||
| pity_threshold(保底 M) | [1, 99] | 全局单旋钮:连续 M 拍执行普攻 → 下拍必出特殊技 |
|
||||
| trigger | {fact, op, value, latch},词表见核心规则「触发条件」节;value 整数,百分比事实域 [1,99] | 全部可省,缺省=无条件技;出域加载期拒绝;情境技与解锁阈值的行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
| trigger | {fact, op, value, latch},词表见核心规则「触发条件」节;value 类型随 fact(数值事实整数、百分比事实域 [1,99]、枚举事实枚举串) | 全部可省,缺省=无条件技;出域加载期拒绝;情境技与解锁阈值的行值投值归[难度曲线与Boss](../冒险循环/难度曲线与Boss.md) |
|
||||
|
||||
主角表(单行全局):
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 数据配置
|
||||
|
||||
> 一句话:数值表与单一事实源管线
|
||||
> 状态:已定稿(自旧体系迁移)
|
||||
> 状态:已定稿(自旧体系迁移);现行为 v1.0
|
||||
|
||||
## 设计目的
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
| 棋盘生成参数表 `BoardGenTable` | 板尺寸、雷密度、可推理率目标等(进度键表) | [棋盘生成](../排雷循环/棋盘生成.md) |
|
||||
| 变异表 `VariationTable` | 变异类型清单(现行六行:region 六行两轴×三关〔2026-09-20 落地〕;首发 global 整图型贫矿脉 2026-10-16 用户令屏蔽删行,global 型机制代码保留) | [地形变异](../排雷循环/地形变异.md) |
|
||||
| 敌人表 `EnemyTable` | 敌种基线数值、遭遇数量区间、护甲类型、技能池模板(进度键表) | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 技能表 `SkillTable` | 技能行定义(类型/倍率/冷却/增益引用)与保底阈值 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 技能表 `SkillTable` | 技能行定义(类型/倍率/冷却/增益引用/触发条件)与保底阈值 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 主角表 `HeroTable` | 主角生命上限、基础攻击与护甲等级(armor_class)等单行战斗数值 | [敌人系统](../战斗循环/敌人系统.md) |
|
||||
| 状态效果表 `StatusEffectTable` | 增益/减益效果定义行 | [增益状态](../战斗循环/增益状态.md) |
|
||||
| 奖励表 `RewardTable` | 奖励条目、类别、权重与档位 | [地图战斗资源](../战斗循环/地图战斗资源.md) |
|
||||
|
||||
@@ -0,0 +1,213 @@
|
||||
# 需求卡片:技能池情境条件触发器批
|
||||
|
||||
> 来源:待办清单「技能池情境条件触发器」条目(2026-10-18 登记)
|
||||
> 唯一事实源:design/gdd/systems/战斗循环/敌人系统.md v1.2 §核心规则「触发条件」节(2026-10-26 文档设计已闭合;v1.0 立节·v1.1 单体寻址批随动·v1.2 百分比事实读数定阈值式——本卡依 v1.2)+ §技能行字段词汇表 trigger 行+ §池构成纪律+ §意图线索(半血解锁弹出规格)
|
||||
> 估时:≈3 个工作日(T0 0.4/T1 0.7/T2 0.8/T3 0.4/T4 0.7)
|
||||
> 状态:v1.2 定稿——grilling 两轮复核(一轮回炉:2 阻断+8 应修+5 建议全折入,含设计文档 v1.2 阈值式联动修订;二轮通过,附残留 R1-R5+S1-S3 已全部折入),零待裁点
|
||||
|
||||
## 一、目标与完成定义
|
||||
|
||||
**做什么**:把敌人系统 v1.2 定稿的触发条件机制实装——技能行加 `trigger` 字段({fact, op, value, latch} 封闭词表),开轮摇号前对每敌求值,条件不满足的技能不进可摇集合与保底集合(门槛过滤);三 Boss 半血解锁技 `unlock_hp_pct` 收编为闩型首用例(行为零变化);两个示范投放(地精池低血防御增益、钩爪恐魔池停手偷袭伤害技);事实面供给埋点(轮次/上轮结束方式/踩雷计数)。
|
||||
|
||||
**完成定义**:
|
||||
1. 六事实词+六算子求值器全实装,fact/op 出域与 latch 语义加载期校验,缺省无 trigger 字段=旧行为零变化。
|
||||
2. 三 Boss 解锁技(quake_smash/venom_curb/rockslide)迁移后同种子战斗行为逐位复现(解锁时点/归因行/enemy_hp_threshold 事件全部保持)。
|
||||
3. 新池构成纪律「每池至少一行无条件特殊技」入跨表校验。
|
||||
4. 两示范投放真实入口可验(低血时防御技可摇出、上轮停手后偷袭技可摇出)。
|
||||
5. 验证闸对照表全行绿,独立验收审计通过。
|
||||
|
||||
## 二、设计事实源
|
||||
|
||||
- `design/gdd/systems/战斗循环/敌人系统.md` v1.2(2026-10-26 文档设计闭合凭据,与待办清单条目实况所记一致):
|
||||
- §核心规则「触发条件:情境技与闩型解锁共用一套门槛」——机制(门槛过滤/求值时点/字段四键/闩语义/事实词表六词/算子六词与百分比阈值式求值/互作用表/半血解锁收编/首批落地);
|
||||
- §技能行字段词汇表 trigger 行(字段域);§池构成纪律(每池至少一行无条件特殊技);§调参表技能表 trigger 行(投值归难度曲线与Boss);§验收标准触发条件条。
|
||||
- 数值投值(权重/阈值终值)所有权:`design/gdd/systems/冒险循环/难度曲线与Boss.md` v1.0「技能池投值」节——本批只投 provisional 示范值。
|
||||
|
||||
## 三、现状事实(开工自行复核)
|
||||
|
||||
| # | 事实 | 位置 |
|
||||
|---|---|---|
|
||||
| 1 | 实例池快照:skill_id/weight/cooldown_left 三键+unlock_hp_pct 快照与 unlocked 闩标记 | game/core/unit_container.gd:84-96 |
|
||||
| 2 | 锁定判定 `_entry_locked`(unlock_hp_pct 且未过闩=锁定) | game/core/unit_container.gd:137-138 |
|
||||
| 3 | 可摇集合 `rollable_skills`(排除锁定+冷却中) | game/core/unit_container.gd:143-153 |
|
||||
| 4 | 保底特殊技集合 `special_skills`(排除锁定;type≠basic) | game/core/unit_container.gd:158-169 |
|
||||
| 5 | 半血解锁闩检查 `check_skill_unlocks`:threshold=round(max_hp×pct/100),hp≤threshold 过门、单向闩、返回新解锁 skill_id 列表 | game/core/unit_container.gd:172-186 |
|
||||
| 6 | 开轮摇号 `_roll_round_actions`:保底判定→roll→behavior_roll 统一流逐敌摇定→tick_cooldowns | game/core/battle_orchestrator.gd:952-991 |
|
||||
| 7 | 解锁归因明细行(skill_unlock 高光键)+enemy_hp_threshold 事件发射+target_attack_bonus 施加(pct 从池条目读) | game/core/battle_orchestrator.gd:962-983 |
|
||||
| 8 | round_index 编排器自有(1 基,开战置 1,轮末递增) | game/core/battle_orchestrator.gd:44,435,1083 |
|
||||
| 9 | 上轮结束方式记录 `_last_round_end={path_tag, continuation_hint}`,path_tag∈{cleared,stopped,ap_exhausted};`last_round_end` 只读属性已有 | game/core/action_economy.gd:32-34,274 |
|
||||
| 10 | 技能表 schema:行字段校验+pity_threshold;无池视野(池构成纪律在跨表通道) | game/data/schemas/skill_table.gd:3,19-97 |
|
||||
| 11 | 敌人表 schema:池条目 weight 校验+unlock_hp_pct 域校验 [1,99] | game/data/schemas/enemy_table.gd:108-116 |
|
||||
| 12 | 跨表池构成纪律校验(每池恰一普攻/增益≤1/妨害≤1/skill_id 悬空) | game/core/config_db_cross_validator.gd:117-156 |
|
||||
| 13 | 现行 8 处 unlock_hp_pct:50 池条目:quake_smash(:148,:176)/venom_curb(:416,:447)/rockslide(:659,:687,:715,:743) | game/data/tables/enemy.tres |
|
||||
| 14 | 三解锁技技能行(quake_smash ×2.5/CD4 · venom_curb ×2.0/CD3 · rockslide ×2.5/CD4) | game/data/tables/skills.tres:67,73,79 |
|
||||
| 15 | 地精池现状:attack w9+lunge w1(无增益行——加增益技不违 ≤1);钩爪恐魔池现状:attack w6+bite w2+charge w1(charge 是增益——加伤害技合规) | game/data/tables/enemy.tres:19-25,490-501 |
|
||||
| 16 | blast 分支统一受理点——**不只过雷**:负向 enemy_alert(雷,reward.tres:90)与正向 spark_aoe(:28)、清图奖励 clear_blast(:110)同走此分支;mines 计数埋点必须加「负向 blast(雷)」守卫,否则正向爆裂格误计入踩雷数 | game/core/battle_orchestrator.gd:861+game/data/tables/reward.tres:28,90,110 |
|
||||
| 17 | 既有测试锚:skill_unlock_test.gd(门谓词/闩不可逆/双面过滤/保底不逼/零扰动/确定性,期望值由表读值推导);round_flow_skill_pool_test.gd V4 池构成纪律复查 | game/tests/unit/battle_settlement/ |
|
||||
| 18 | 单测 manifest 显式注册制(新单测须登记行) | game/tests/run_all.gd:40-49 |
|
||||
| 19 | 减伤状态行先例:fortify(target_side enemy / magnitude −50 / percent / duration 2 / refresh / max_stack 1) | game/data/tables/status_effects.tres:71-79 |
|
||||
| 20 | 编排器经 action_economy 只读属性取上轮读数先例(ap_exhausted_last) | game/core/battle_orchestrator.gd:104 |
|
||||
|
||||
## 四、设计契约(🔴=违反即 L3 停机呈报)
|
||||
|
||||
1. 🔴 **门槛过滤唯一语义**:trigger 只作可摇集合排除项(rollable 与 special 双面);禁权重改写、禁强制触发、禁保底逼出条件不满足的技。摇号公式(权重份额归一)与 `behavior_roll` 流消费序零漂移。
|
||||
2. 🔴 **三 Boss 迁移零变化**:迁移后同种子战斗事件序列(解锁时点/归因行文本/enemy_hp_threshold 载荷)与迁移前逐位一致(target_attack_bonus 施加值不经本批改动面,由 V4 载荷 pct 键+V5 对拍承载)。百分比事实求值=阈值式(v1.2):先把 value 折算为绝对阈值 `round(对应 max_hp × value/100)`、再与当前 hp 作算子比较——六算子都在该阈值上定义,lte 与原解锁式逐位同;禁改为百分比读数取整后比较(取整读数与零变化在非整除血量上互斥)。
|
||||
3. 🔴 **求值时点**=每轮开轮摇号前、读当时快照;逐敌事实各自求值、全局事实全场一份;本系统零随机纪律不变。
|
||||
4. 🔴 **缺省零扰动**:无 trigger 字段的技能行与无 trigger 池条目行为逐位不变;旧表(除三 Boss 迁移行与两示范行外)零改动。
|
||||
5. 🔴 **fail-fast**:fact/op 出域、value 越域、latch 非布尔、键白名单外的 trigger 键——加载期报错并止动;新池构成纪律违规(每池无条件特殊技行数=0)同。
|
||||
6. 🔴 **数值单点**:trigger 行值与示范投放值只落 `game/data/tables/*.tres`;禁代码内数值字面量(表读值推导断言先例=skill_unlock_test)。
|
||||
7. 🔴 **每池增益≤1 纪律不动**:desperate_guard 计入地精池增益预算(现状 0→1 合规);sneak_ambush 为伤害技不计入。
|
||||
8. **闩型保留解锁弹出规格**;非闩型(瞬态)条件技零弹出、零新增呈现(明细行具名即因果承载——敌人系统「意图线索」节)。
|
||||
9. latch=true:首次求值真后整场保持为真(治疗抬血不回锁);latch 缺省=false(每轮重求值)。
|
||||
|
||||
## 五、范围边界
|
||||
|
||||
**做**:trigger 字段全套(schema/校验/求值/过滤/闩);三 Boss unlock_hp_pct 迁移;两示范投放+一个新减伤状态行;四项事实面供给(round_index/last_round_end/mines_hit_last/mines_hit_total)+self_hp_pct/hero_hp_pct 容器内直读;跨表新纪律;测试面与验证集清单重生成。
|
||||
|
||||
**不做**(去向):
|
||||
- hero_hp_pct/round_index/mines_hit_* 四词的投放数据行——机制承载即可,首批无投放内容(后续内容批)。
|
||||
- 权重改写/强制触发形态——设计已淘汰(2026-10-26 设计段裁决记录)。
|
||||
- 呈现新增(toast/归因标注)——非闩型零弹出;玩家反馈「感知不到因果」时另立批。
|
||||
- 全局特殊间隔旋钮、个体化变体池——待办清单独立条目,本批不触。
|
||||
- 数值终值投值——难度曲线调参批;本批示范值全标 provisional。
|
||||
|
||||
## 六、关联文档同步面(实现批禁写 design/ 与根规则文件,全部列反哺点)
|
||||
|
||||
| 文档 | 关联点 | 同步义务 |
|
||||
|---|---|---|
|
||||
| design/gdd/systems/战斗循环/敌人系统.md v1.2 | §P1 表「情境条件触发器」行标注「设计已闭合待实装」→ 实装后应改「已实装(日期)」;§半血解锁收编段「字段换代与行值迁移归实装批」句随迁移完成摘除 | 反哺点:iterN-反哺点清单,文档批落文 |
|
||||
| design/gdd/systems/战斗循环/战斗结算.md v1.0 | 开轮摇号排除句已含触发条件指针——查实装后无新陈述漂移则记「无需改」 | 反哺点清单记行(结论「无需改」亦成行) |
|
||||
| design/engineering/architecture/architecture.md | UnitContainer 新公开方法(check_trigger_unlocks/事实组包口径)若属 API Boundaries 登记面 | 反哺点:架构登记行,文档批落文 |
|
||||
| design/gdd/systems/冒险曲线域(难度曲线与Boss.md v1.0) | 触发条件行值随实装登记读表口径——正文已写机制指针,无陈述变更 | 无需改(查无漂移则记「无」) |
|
||||
| 待办清单.md | 条目「技能池情境条件触发器」实现完成后的退役 | 收尾段义务(batch-closure),非实现批面 |
|
||||
| 体验验证清单.md | 停手被偷袭/低血防御的实机目检观测项入册 | 反哺点:入册观测项一条,文档批落文 |
|
||||
| game/tests/验证集清单.md | 新增断言全体入册 | 随批重生成(tools/extract_checks.py,机械产物) |
|
||||
|
||||
## 七、落位与可复用性预检
|
||||
|
||||
| 新增件 | 复用面判定 | 唯一面与分层 |
|
||||
|---|---|---|
|
||||
| 求值器(UnitContainer 内) | 不复用 effect_engine 的 FACTS/OPS:那边求值面=事件现场 payload,本面=开轮快照,语义不同;**复用的是校验范式**(封闭枚举 const+validate 出域 errs+键白名单——effect_words 同款) | 求值谓词归敌人系统语义层(unit_container,check_skill_unlocks 先例同构:谓词在容器、调用时点在编排器);词表常量落 skill_table.gd(表 schema 是字段域权威——敌人系统「调参表」) |
|
||||
| trigger schema 校验 | 复用 skill_table.validate() 既有 errs 模式(domain/enum/cross_field 类别) | 技能行字段校验在 SkillTable;池构成新纪律在 config_db_cross_validator.gd(池视野唯一处)——两处职责既有分界不动 |
|
||||
| mines 计数(本场累计+上轮值+当轮累计) | grep 全仓无现成战斗域踩雷计数(effect_engine fx_counters 是秘宝效果账,职责不同不复用);blast 受理点 :861 经**负向 blast(雷)守卫后**即每雷恰一次必经点 | battle 域编排事实,落 battle_orchestrator 私有状态(begin_battle 清零/负向 blast 受理累加/轮末转存 last——round_index 同款生命周期) |
|
||||
| round_index/last_round_end 事实 | 直接复用编排器 :44 与 action_economy.last_round_end :33(零新增状态) | facts 组包在编排器开轮摇号前一次成型(:104 ap_exhausted_last 组包先例同构) |
|
||||
| desperate_guard/sneak_ambush 技能行+defensive_stance 状态行 | 状态行复用 fortify 的消费路径(enemy_defense 池乘区——零新消费面);不复用 fortify 行本身(设计段裁「不复用硬化」) | 行落 tres 表本体;display_name 中文白话(「孤注守势」「趁隙偷袭」) |
|
||||
| trigger_cond_test.gd 新单测 | 复用 test_kit(Kit.check/finish)与 skill_unlock_test 的表读值推导范式 | 落 tests/unit/battle_settlement/,manifest 登记(run_all.gd 注册制) |
|
||||
|
||||
## 八、验证闸(改动—验收对照表)
|
||||
|
||||
尾缀〔触发器批 Vn〕;撤销证明=回退该 hunk→跑最窄套件→断言红→还原复绿。
|
||||
|
||||
| # | 需求点 | 改动 | 验收测试 | 层级 | 真实入口 | 撤销证明 |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | trigger 立列+出域拒绝 | skill_table.gd 加 TRIGGER_FACTS/TRIGGER_OPS/TRIGGER_KEYS 常量+validate 校验段 | V1 正反六反例(fact 出域/op 出域/键白名单外/latch 非布尔/last_round_end 配非 eq·neq 算子/枚举事实 value 非法串均报错;合法行零 error)——trigger_cond_test.gd | 单元 | db.load_tables 真实加载含构造行夹具表 | 删校验段→V1 红 |
|
||||
| 2 | 门槛过滤双面 | unit_container rollable_skills/special_skills 增条件排除 | V2 断言:条件假时 rollable 与 special 均不含该技;条件真时含——trigger_cond_test.gd | 单元 | spawn 真实表→直调 rollable/special | 回退过滤→V2 红 |
|
||||
| 3 | 保底不逼条件不满足技 | _roll_round_actions 保底集合取 special_skills(已含排除) | V3 断言:合法构造池(无条件特殊技 A w1+条件假技 B w9999+普攻)basic_streak≥M 时,保底命中摇出的是 A——夹具经加载后内存改行(round_flow:637 白盒先例)注入;固定种子下确定性断言 | 接口 | special_skills 真实入口+SkillLottery.draw 真实摇号 | 回退 special 排除→选定经试跑验证使撤销态摇出 B 的固定种子(w9999 份额 99.99%,种子验证后钉死)→同种子必中 B→红 |
|
||||
| 4 | 闩型语义+归因保持 | check_skill_unlocks 改 check_trigger_unlocks(u, facts):self_hp_pct lte 闩型,返回新过闩列表 | V4 断言:过门恰一次、治疗抬血不回锁、enemy_hp_threshold 载荷三键(unit/pct/is_boss)保持——trigger_cond_test.gd+skill_unlock_test.gd 换代断言(迁移后跑原语义);阈值式判别由 V8 同数据两态承载(hp=3 触发/hp=4 不触发),本行不重复构造 | 单元+接口 | spawn 三 Boss 坐标真实表→直调→编排器事件断言(载荷观测带处刑台订阅夹具——adventure_feats_test 先例) | 回退闩标记→V4 红 |
|
||||
| 5 | 三 Boss 迁移零变化 | enemy.tres 删 8 处 unlock_hp_pct+skills.tres 三行加 trigger{self_hp_pct,lte,50,latch:true} | V5 同种子对拍:固定种子 Boss 战事件序列摘要(解锁时点/归因行文本/载荷)迁移前后逐位一致——trigger_cond_test.gd 存基线比对 | 集成 | begin_battle→逐轮 settle 真实战斗驱动 | 删 skills.tres 三行 trigger 键(表迁移半边)→check_trigger_unlocks 读不到条件→闩永不置→V4/V5 红 |
|
||||
| 6 | 事实面供给 | 编排器 facts 组包(round_index/last_round_end/mines_hit_last/mines_hit_total)+计数埋点(负向 blast 守卫累加/轮末转存/开战清零) | V6 断言:真实踩雷(负向 blast)递增、**正向 blast 格(spark_aoe)与清图奖励(clear_blast)不递增**、轮末转存、开战清零;facts 组包四键在位——trigger_cond_test.gd | 集成 | 真实 request_dig→settle 驱动踩雷与正向爆裂格 | 回退累加行→V6 红;漏守卫→反例断言红 |
|
||||
| 7 | 每池至少一行无条件特殊技 | config_db_cross_validator 加校验 | V7 正反:现行全表零违例;构造全条件池夹具→报 pool_composition 错——trigger_cond_test.gd | 接口 | 跨表校验真实入口 | 删校验段→V7 反例不红 |
|
||||
| 8 | 示范投放:低血防御 | skills.tres desperate_guard 行(buff/defensive_stance/duration 2)+status_effects.tres defensive_stance 行+地精两行池条目 w1+trigger{self_hp_pct,lte,35} | V8 断言:地精(hp 基线 8)按阈值式 T=round(8×35/100)=3——hp>3 时该技不入可摇集合、hp≤3 后入池可摇中——trigger_cond_test.gd | 集成 | spawn 地精行→压 hp→开轮摇号真实路径 | 删池条目→V8 红 |
|
||||
| 9 | 示范投放:停手偷袭 | skills.tres sneak_ambush 行(damage ×1.5/CD4)+钩爪恐魔三行池条目 w2+trigger{last_round_end,eq,"stopped"} | V9 断言:首轮(last=无)与 cleared/ap_exhausted 轮后该技不入集合;stopped 轮后入集合——trigger_cond_test.gd | 集成 | 真实 finish_round_stop→次轮摇号 | 删池条目→V9 红 |
|
||||
| 10 | 缺省零扰动 | trigger 全套对无字段行为零影响 | V10 断言:无 trigger 行的池快照逐键无新增(快照键策略钉死:无 trigger 行快照零新键)、摇号结果同种子不变——skill_unlock_test.gd 既有 _test_plain_rows_zero_drift 扩展 | 单元 | goblin 池真实快照 | 回归钉(防未来给普行塞键),撤销语义由 V2/V5 联合覆盖——如实申报,不单独配撤销 |
|
||||
|
||||
**测试方式两分法**:V1-V10 全部走调试接口直改数据面(构造夹具表/直改 hp/直发 finish_round_stop),归自动化;实机目检项=「上轮停手→下轮结算明细出现『趁隙偷袭』」「地精低血后摇出『孤注守势』」两项,登记实现报告实机目检总清单+体验验证清单反哺点,**登记不阻塞**。
|
||||
|
||||
**闸口径**:本批改动含 game/ 行为载体→按改动域跑 `tools/run_all_gates.sh` 对应域档全绿才合并;里程碑步(T 段)出口跑一次全套,波内修复只做出红最小单元最窄确认,新增测试先行孤立验证再并入。
|
||||
|
||||
**测试削弱申报**:①skill_unlock_test.gd 既有断言因 unlock_hp_pct 字段退役需改写读值来源(表读值路径从池条目改技能行 trigger)——断言语义全部保持,仅数据源换代;②round_flow_skill_pool_test.gd :604 expect_pools 逐行精确比对——地精两行与钩爪恐魔三行的期望值随 T3 投放改写(9/1→9/1/1、6/2/1→6/2/1/2),断言语义不变仍精确比对,消息串中「unlock_hp_pct 50」措辞随字段退役同步清理;③round_flow:654/:660 直调 rollable_skills(u) 原样保留(缺省参下单参调用合法,实现若取改仅限直调面补参);④round_flow V4 池纪律复查段随新纪律扩行(只增不删)。除此之外零删除断言。
|
||||
|
||||
**独立验收审计**:入口=没参与实现的子代理;报告落 `reports/iter<N>-验收审计-<日期>.md`;审计三查(对照表逐行/撤销证明抽查复现/削弱检查)未过禁合并。
|
||||
|
||||
## 九、任务卡
|
||||
|
||||
### 卡前·文件结构图
|
||||
|
||||
| 文件 | 职责 | 行为改动 | 验收行 |
|
||||
|---|---|---|---|
|
||||
| game/data/schemas/skill_table.gd(改) | trigger 词表常量+行校验 | 行为改动 | V1 |
|
||||
| game/core/config_db_cross_validator.gd(改) | 每池至少一行无条件特殊技 | 行为改动 | V7 |
|
||||
| game/core/unit_container.gd(改) | 快照 trigger/闩标记、双面过滤、check_trigger_unlocks 求值 | 行为改动 | V2/V4/V10 |
|
||||
| game/core/battle_orchestrator.gd(改) | facts 组包、mines 计数埋点、解锁调用迁移 | 行为改动 | V4/V5/V6 |
|
||||
| game/data/tables/skills.tres(改) | 三 Boss 行加 trigger+两新技能行 | 行为改动 | V5/V8/V9 |
|
||||
| game/data/tables/enemy.tres(改) | 删 8 处 unlock_hp_pct+五处示范池条目 | 行为改动 | V5/V8/V9 |
|
||||
| game/data/tables/status_effects.tres(改) | defensive_stance 新行 | 行为改动 | V8 |
|
||||
| game/tests/unit/battle_settlement/trigger_cond_test.gd(新增) | V1-V10 主体 | 新增测试 | 全行 |
|
||||
| game/tests/unit/battle_settlement/skill_unlock_test.gd(改) | T1 段随改名/签名/读值源换代(语义零变化)+零扰动扩展 | 测试维护 | V4/V10 |
|
||||
| game/tests/unit/battle_settlement/round_flow_skill_pool_test.gd(改) | V4 池纪律复查扩行+expect_pools 期望值随投放改写+直调面 facts 适配 | 测试维护(含申报②③) | V7 |
|
||||
| game/tests/run_all.gd(改) | manifest 登记新套件 | 非行为改动(注册表) | — |
|
||||
|
||||
### T0 · 基线录制与表/ schema 迁移(≈0.4d)
|
||||
|
||||
取用:无(首卡)。
|
||||
产出:`TRIGGER_FACTS := ["self_hp_pct","hero_hp_pct","round_index","last_round_end","mines_hit_last","mines_hit_total"]`、`TRIGGER_OPS := ["eq","neq","gt","gte","lt","lte"]`、`TRIGGER_KEYS := ["fact","op","value","latch"]` 三常量(skill_table.gd);skills.tres 三 Boss 行 trigger 落位;enemy.tres 8 处键删除;V5 基线文件。
|
||||
|
||||
- [ ] 步骤 1(基线录制):迁移前用固定种子驱动三 Boss 各一场真实战斗(begin_battle→循环 settle 至战斗结束),把事件序列中 skill_unlock 归因行文本、enemy_hp_threshold 载荷、每轮各敌 pending_skill 序列摘要落 `game/tests/evidence/trigger_baseline.md`(批内凭据,非长期基线)——这是 V5 的「改前」半边。
|
||||
- [ ] 步骤 2(schema 校验段):skill_table.validate() 加 trigger 校验——四键白名单、fact∈TRIGGER_FACTS、op∈TRIGGER_OPS、**last_round_end 行 op 只许 eq/neq(枚举算子限域)、value 类型随 fact(数值事实必整数、百分比事实域 [1,99]、枚举事实必枚举串 {none,cleared,stopped,ap_exhausted})**、latch 必须 bool;普攻行禁配 trigger(普攻恒可摇的结构前提,与倍率/冷却禁配同款 cross_field)。V1 正反断言随本步骤落地(trigger_cond_test.gd 于本卡立件——V1 是本批首组断言,含算子限域与类型分派反例,先行孤立验证后并入 manifest)。
|
||||
- [ ] 步骤 3(表迁移):skills.tres quake_smash/venom_curb/rockslide 三行加 `"trigger": {"fact":"self_hp_pct","op":"lte","value":50,"latch":true}`;enemy.tres 删 8 处 `"unlock_hp_pct": 50` 行;enemy_table.gd:111-116 unlock_hp_pct 域校验段删除(字段退役);**enemy.tres:780 池注与 skills.tres:134-135 头注提及 unlock_hp_pct/解锁语义的措辞随字段退役同步清理**(J 面:注释不残留退役字段名)。
|
||||
- [ ] 步骤 4(加载验证):`python tools/run_smoke.py` 绿(表加载零 error——若红,红点即迁移漏项)。
|
||||
|
||||
### T1 · 求值器与实例池快照(≈0.7d)
|
||||
|
||||
取用:T0 的 TRIGGER_* 常量与已迁移表。
|
||||
产出:`UnitContainer.check_trigger_unlocks(u: Dictionary, facts: Dictionary) -> Array`(闩型条目求值,返回新过闩 skill_id 列表)、快照键 `trigger_latched: bool`(迁移原 unlocked);`rollable_skills(u, facts := {}) / special_skills(u, facts := {})` 增可选参(**缺省空字典——既有单参调用零破坏,skill_unlock_test/round_flow 直调面在 T2 前不红**)。
|
||||
|
||||
- [ ] 步骤 1(快照扩展):池快照循环节(unit_container.gd:85-96)——从 db.skill_row 读 trigger 存快照(技能行是字段权威);带 latch=true 行写 `trigger_latched:false` 初始;unlock_hp_pct/unlocked 双键退役。**百分比事实求值契约(v1.2 阈值式)在此钉死:六算子统一为「先折算绝对阈值 T=round(对应 max_hp × value/100),再以 hp op T 比较」——self_hp_pct/hero_hp_pct 两 fact 同式。**
|
||||
- [ ] 步骤 2(求值谓词):`_entry_blocked(e: Dictionary, u: Dictionary, facts: Dictionary) -> bool`——无 trigger 恒 false;latch 已闩恒 false(过闩即不再拦);否则按 fact 分派求值(self 类读 u 自身、hero 类读主角行、其余读 facts 键,枚举事实按字符串比较);**facts 缺键=条件假(拦)——fail-safe,缺省 {} 调用遇上非 self/hero 事实时不放行**;`_entry_locked` 退役由本谓词收编。
|
||||
- [ ] 步骤 3(双面过滤):rollable_skills/special_skills 接入 `_entry_blocked`(与冷却排除并列;facts 缺省 {} 对无 trigger 行为零差)。
|
||||
- [ ] 步骤 4(闩检查换代):check_skill_unlocks 改名 check_trigger_unlocks(u, facts)——只处理 latch=true 且未闩条目,求值真即置 trigger_latched 并收集返回;**本方法只读 facts 原值,last_round_end 的 none 映射不在本层(唯一落点=T2 facts 组包)**。同步改 skill_unlock_test.gd 全部直调面(改名+facts 签名)与读值源(unlock_hp_pct 池键→技能行 trigger.value),断言语义零变化——**本卡出口全套必须绿**(签名缺省值保证 round_flow:654/:660 单参调用不破)。
|
||||
- [ ] 步骤 5(V2/V4 并入):trigger_cond_test.gd 承接 T0 立件——V2 双面过滤、V4 闩语义(过门恰一次/抬血不回锁/阈值式判别例 max_hp=8/value=35:hp=3 触发 hp=4 不触发)断言落地,直跑本套件绿。
|
||||
|
||||
### T2 · 编排器接线与事实面供给(≈0.8d)
|
||||
|
||||
取用:T1 的 check_trigger_unlocks 与 facts 签名。
|
||||
产出:`_roll_round_actions` 内 facts 组包(`{round_index, last_round_end, mines_hit_last, mines_hit_total}`);编排器私有 `_mines_hit_total/_mines_hit_last/_mines_hit_round: int`(定名与步骤 1 一致);解锁调用点迁移完成。
|
||||
|
||||
- [ ] 步骤 1(计数埋点):battle_orchestrator 加三变量——`_mines_hit_total`(本场累计)/`_mines_hit_last`(上轮值)/`_mines_hit_round`(当轮累计);三条公式:负向 blast(雷)受理时 `_mines_hit_round` 与 `_mines_hit_total` 各 +1(**守卫:只计负向 blast 行——正向 spark_aoe 与清图奖励 clear_blast 同走 blast 分支不得计入,reward.tres 极性判读**);轮次真正结束后 `_mines_hit_last=_mines_hit_round`、`_mines_hit_round=0`(轮内部分结算不更新);begin_battle 三者清零。
|
||||
- [ ] 步骤 2(facts 组包):_roll_round_actions 开头组包 facts 字典(round_index 直读、last_round_end 经 action_economy.last_round_end——**空字典(首轮)映射 "none",否则 path_tag 原值;none 映射唯一落点在本组包处**、双 mines 键);hero 事实不进 facts(容器内直读主角行——T1 已定)。
|
||||
- [ ] 步骤 3(解锁调用迁移)::965 check_skill_unlocks(u) 改 check_trigger_unlocks(u, facts);:972-975 pct_v 读值源从池条目 unlock_hp_pct 改技能行 trigger.value;归因行文本/enemy_hp_threshold 载荷格式零改动。
|
||||
- [ ] 步骤 4(摇号接线)::984/:986 rollable_skills(u)/special_skills(u) 调用补 facts 实参。
|
||||
- [ ] 步骤 5(V5/V6 落地):V5 同种子对拍断言(与 T0 步骤 1 基线逐位比对——解锁时点/归因文本/载荷/pending 序列);V6 计数埋点断言(真实 request_dig 踩雷→settle→读数递增/转存/清零)。直跑本套件绿。
|
||||
|
||||
### T3 · 跨表纪律与示范投放(≈0.4d)
|
||||
|
||||
取用:T0-T2 全套机制。
|
||||
产出:config_db_cross_validator 新校验;desperate_guard/sneak_ambush/defensive_stance 三新行与五处池条目。
|
||||
|
||||
- [ ] 步骤 1(新纪律):config_db_cross_validator.gd 池构成段加「无条件特殊技行数 ≥1」校验(普攻不计;trigger 缺省行计数)——V7 正反断言(现行全表零违例+构造全条件池夹具报错)。
|
||||
- [ ] 步骤 2(状态行):status_effects.tres 加 defensive_stance 行(display_name「护身」/target_side enemy/magnitude −25 provisional/percent/duration_settlements 2/refresh/max_stack 1——fortify 同构消费路径)。
|
||||
- [ ] 步骤 3(技能行+池条目):skills.tres 加 desperate_guard(buff/「孤注守势」/buff_ref defensive_stance/duration 2/trigger{self_hp_pct,lte,35})与 sneak_ambush(damage/「趁隙偷袭」/damage_mult 1.5/cooldown 4/trigger{last_round_end,eq,"stopped"}——两行全部 provisional);enemy.tres 地精两行池加 desperate_guard w1、钩爪恐魔三行池加 sneak_ambush w2。
|
||||
- [ ] 步骤 4(V8/V9 落地):低血防御两态断言(hp 高于阈值不入集合/打低后入)、停手偷袭三态断言(首轮无/stopped 后有/cleared 后无)——真实 finish_round_stop 驱动。直跑本套件绿。
|
||||
|
||||
### T4 · 测试收口与产出物落位(≈0.7d)
|
||||
|
||||
取用:T0-T3 全部断言。
|
||||
产出:验证集清单重生成;实现报告/代拍板追认单/反哺点清单三件。
|
||||
|
||||
- [ ] 步骤 1(换代收尾):round_flow_skill_pool_test.gd V4 段扩「无条件特殊技 ≥1」行+expect_pools 期望值改写(申报②③);skill_unlock_test.gd 复核 T1 段换代后全套绿。
|
||||
- [ ] 步骤 2(清单):`python tools/extract_checks.py` 重生成 game/tests/验证集清单.md,diff 核对新增断言全数入册、零意外删改。
|
||||
- [ ] 步骤 3(撤销证明记录):按对照表逐行执行回退→红→还原→复绿,记录落实现报告(V5/V8/V9 三条必含)。
|
||||
- [ ] 步骤 4(全套闸):run_all_gates.sh 本批域档全绿。**MC 口径:本批含 provisional 池权重投放=数值改动——出口闸锚内子集(地精/钩爪恐魔行为面)同种子复放预期判红,按锚流程呈报用户、重锚归用户档位发起,实现批不自行重锚。**
|
||||
- [ ] 步骤 5(三产出物):实现报告(各卡状态+实机目检总清单两项+遗留读数义务)/代拍板追认单(见白名单)/反哺点清单(§六同步面各行逐条落点)。
|
||||
|
||||
## 十、异常分级
|
||||
|
||||
- **L1 自救**:测试夹具构造错误、断言消息措辞、注释与命名微调、tres 格式缩进。
|
||||
- **L2 记录继续**:示范 provisional 数值在同数量级内调整(记代拍板追认单);既有断言因读值源换代的等价改写(已申报范围)。
|
||||
- **L3 停机呈报**:契约任一条触红(尤其 V5 对拍不一致=迁移引入行为漂移);V5 基线无法录制;MC 对拍锚判红;schema 校验与文档词表冲突;行为_roll 消费序漂移嫌疑。
|
||||
|
||||
## 十一、代拍板白名单
|
||||
|
||||
1. 新技/状态行英文 id 与中文 display_name 定名(desperate_guard/sneak_ambush/defensive_stance 为推荐案)。
|
||||
2. 示范 provisional 数值(w1/w2、lte 35、−25、×1.5、CD4、duration 2)同数量级内取值。
|
||||
3. trigger_cond_test.gd 内部断言组织与夹具表构造方式。
|
||||
4. V5 基线摘要的哈希/序列化具体格式。
|
||||
5. 注释与措辞(符合 code-conventions §1.4.1 黑名单)。
|
||||
|
||||
## 十二、待裁点
|
||||
|
||||
零待裁点——机制/词表/收编/纪律/投放位全部经 2026-10-26 文档设计段裁定(敌人系统.md v1.0),本卡为其实现展开。开工门=U0 用户发令。
|
||||
|
||||
## 十三、禁为机检文本保留无效成员
|
||||
|
||||
本卡属机制新增批(兼含 unlock_hp_pct 退役迁移):unlock_hp_pct/unlocked/_entry_locked 等旧成员随迁移**删净**,禁为兼容既有测试文本保留别名或死键;机检/测试期望值与新契约冲突时停卡呈报(V5 对拍基线除外——它锚的就是旧行为的退役前快照,属本卡申报面)。
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
|
||||
- **阶段**:M3——Alpha 版本的完整实现(2026-10-09 立规:未明令宣布完成前停留 M3,迭代只排 M3 需求,M4 不排期;根目录 stage.txt 为旧阶段开关仅存档)。
|
||||
- **迭代位**:迭代 1–37 全部已完成——迭代 37 四卡 2026-10-25 合回并完成批后收尾。
|
||||
- **下一步**:迭代 38 已编七卡(2026-10-26 编入,≈5.225 个工作日)、迭代 39 已编两卡(2026-10-26 编入,≈7 个工作日——P0「AdventureRunner 职责真拆分」主副卡,副卡硬前置主卡),均待开工,实现段由用户以 /iter 38 或 /iter 39 发令。待编池:营地交互重做卡⑤(排卡④之后)、卡④(已退回美术设计段,美术设计闭合后重立卡)、冒险前资源配比预设(冻结备选)、迭代 30 原卡②③(2026-10-17 已剔出迭代 30 规划、退回待设计,待美术/设计定稿后重新立卡)。
|
||||
- **下一步**:迭代 38 已编七卡(2026-10-26 编入,≈5.225 个工作日)、迭代 39 已编三卡(2026-10-26 编入,≈10.15 个工作日——P0「AdventureRunner 职责真拆分」主副卡,副卡硬前置主卡+技能池情境条件触发器卡排末位),均待开工,实现段由用户以 /iter 38 或 /iter 39 发令。待编池:营地交互重做卡⑤(排卡④之后)、卡④(已退回美术设计段,美术设计闭合后重立卡)、冒险前资源配比预设(冻结备选)、迭代 30 原卡②③(2026-10-17 已剔出迭代 30 规划、退回待设计,待美术/设计定稿后重新立卡)。
|
||||
|
||||
## 里程碑时间线
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
| 迭代 36 | 已完成(2026-10-25) | 已退役(git 历史可考) | 2026-10-24 | ≈5.25 个工作日 | 已退役(git 历史可考) |
|
||||
| 迭代 37 | 已完成(2026-10-25) | 已退役(git 历史可考) | 2026-10-25 | ≈8.25 个工作日 | 已退役(git 历史可考) |
|
||||
| 迭代 38 | 待开工 | reports/需求卡片-levelmap装配越界与BFS缓存批-2026-10-26.md<br>reports/需求卡片-结构小件定点修批-2026-10-26.md<br>reports/需求卡片-效果引擎校验文案计数修正批-2026-10-25.md<br>reports/需求卡片-明细行扩展总型收敛批-2026-10-25.md<br>reports/需求卡片-奖励节点过时表述清扫批-2026-10-25.md<br>reports/需求卡片-结算行缓冲类型错修复批-2026-10-26.md<br>reports/需求卡片-调试入口写死行删除批-2026-10-25.md | 2026-10-26 | ≈5.225 个工作日 | — |
|
||||
| 迭代 39 | 待开工 | reports/需求卡片-冒险域拆件与账本实体化批-2026-10-26.md<br>reports/需求卡片-同调配装充能域封装批-2026-10-26.md | 2026-10-26 | ≈7 个工作日 | — |
|
||||
| 迭代 39 | 待开工 | reports/需求卡片-冒险域拆件与账本实体化批-2026-10-26.md<br>reports/需求卡片-同调配装充能域封装批-2026-10-26.md<br>reports/需求卡片-技能池情境条件触发器批-2026-10-26.md | 2026-10-26 | ≈10.15 个工作日〔用户特批 2026-10-26 超 10 个工作日〕 | — |
|
||||
|
||||
- 历史行的「—」= 该列事实不可考:迭代 1~8 早于需求卡片制;编排时点与预计周期不再回溯,细节查 git 提交史。
|
||||
- 「已退役(git 历史可考)」= 需求卡片或实现报告曾存在,已按「证据只留最新」退役;已完成迭代的实现报告列只填 reports/ 现存路径或本保留字,不填「—」。
|
||||
|
||||
@@ -177,12 +177,13 @@
|
||||
#### 技能池情境条件触发器(2026-10-18 登记,来源=会话提及)
|
||||
|
||||
**实况**:低血触发防御、玩家停手时的偷袭技等情境出招——载体=技能行触发条件字段;启用是敌人系统修订,不是调参。(原条目无登记日期,按本批格式整改补登 2026-10-18。)**2026-10-26 文档设计已闭合**——设计裁定:机制=门槛过滤(条件不满足不进可摇集合,与冷却排除同构,不改权重、不强制出手);字段=技能行 trigger {fact, op, value, latch}+封闭词表(首批事实六词 self_hp_pct/hero_hp_pct/round_index/last_round_end/mines_hit_last/mines_hit_total,算子六比较词,闩修饰);半血解锁 unlock_hp_pct 收编为闩型首用例(三 Boss 行为零变化);新池构成纪律=每池至少一行无条件特殊技;呈现零新增(闩型保留解锁弹出,情境技因果由技能名承载);「每池增益≤1」纪律不动、条件技照常计入;首批落地=三 Boss 迁移+两示范投放(地精池低血防御增益、L2/L3 群行位停手偷袭伤害技,投值归难度曲线)。
|
||||
- 设计定稿 design/gdd/systems/战斗循环/敌人系统.md v1.0(2026-10-26,「触发条件」节+技能行 trigger 立列+池构成纪律/调参表/P1 表/验收标准随动)
|
||||
- 设计定稿 design/gdd/systems/战斗循环/敌人系统.md v1.2(2026-10-26,「触发条件」节+技能行 trigger 立列+池构成纪律/调参表/P1 表/验收标准随动;v1.1 单体寻址批随动指针并入、v1.2 百分比事实读数定阈值式——与收编零变化的结构保证)
|
||||
- 需求卡片 reports/需求卡片-技能池情境条件触发器批-2026-10-26.md(2026-10-26 v1.2 定稿,grilling 两轮——一轮回炉 2 阻断+8 应修全折入〔含文档 v1.2 阈值式联动〕+二轮通过附残留 8 条已折入,零待裁点;估时 ≈3 个工作日)
|
||||
- 随动同步:design/gdd/systems/战斗循环/战斗结算.md v1.0(开轮摇号排除句)· design/gdd/systems/冒险循环/难度曲线与Boss.md v1.0(技能池投值面补触发条件)· design/gdd/systems/表现与支撑/数据配置.md v1.0(技能表字段清单补触发条件)
|
||||
|
||||
**改动面**:文档+游戏代码
|
||||
|
||||
**状态**:文档设计已闭合
|
||||
**状态**:文档设计已闭合+已写卡+已编迭代 39
|
||||
|
||||
#### 个体化变体池(2026-10-18 登记,来源=会话提及)
|
||||
|
||||
|
||||
Reference in new issue
Block a user