merge: 分支并入 master(吸收卡③⑤落籍 de067ae/0dbe3c3+台账 f8c064c/a65d8d2)——roadmap 相邻行换代冲突按 union 解=⑤行取 master 落籍版+⑦行取本卡状态版〔措辞「未合并待实机人闸」更正「实机人闸挂账待用户」〕,行序 ③④⑤⑦⑲ 保持;先例=台账 386 分支内并入

This commit is contained in:
DKChan committed 2026-10-07 08:02:54 +08:00
commit b159d77970
9 files changed
+589 -7

No files matched your search

+4
View File
@@ -11,6 +11,8 @@
- **工程路线图**:`production/roadmap.md`(2026-09-17 建——里程碑时间线 + 路线图;实时状态看下方快照节)
## 当前状态快照(收口批先更新本节,再追加台账;≤10 行)
- **更新于**:2026-10-07(**迭代18卡⑤混编遭遇首批投放批落籍 master 0dbe3c3**,worktree g-plan2-iter18-mixenc 分支 iter18-mixenc 四提交 ad36e35/6272fc8/43b1306/36882e2+主区 merge --no-ff,工作日志 392;纯内容零代码):首个混编行 (2,5) 巨蜘蛛+熊地精双行行集落表+断言面随迁(expect_pools 三元键+行数 20+⑦b 三断言),主区冒烟复跑 814/0(基线 811+3);实机目检三项待用户(报告 §7)。四卡进度=③⑤✅落籍/⑦在飞/④硬等⑦落籍后 Wave 2 开工
- **更新于**:2026-10-07(**迭代18卡③武器锻造提案批落籍 master de067ae**,worktree g-plan2-iter18-forge 分支 iter18-forge 三提交 42e9f5d/6b0fdcf/0bbed80+主区 merge --no-ff,工作日志 391;纯文档零代码零测试):提案 311 行八节框架+17 裁点全备选案呈用户盘问(异步不阻塞,一览在 design/qa/iter18-forge-exit-report-2026-10-07.md §四);主区冒烟复跑 811/0 全绿。四卡进度=③✅落籍/⑤⑦Wave 1 在飞/④硬等⑦落籍后 Wave 2 开工
- **更新于**:2026-10-07(**迭代18四卡任务书起草落籍 master 78bf43c**,worktree g-plan2-iter18tb 单提交 7688334+主区 merge --no-ff,工作日志 387;纯文档零代码零测试):⑦种子随机化与调试浮窗升级v1.0〔实装级裁点P1-P5待裁,估2.0d〕/⑤混编遭遇首批投放v1.0〔纯内容批零代码,前置=17卡①落籍,裁点P1-P3待裁,估1.75d MC顺延〕/④生涯界面实装v1.0〔范围=提纲期一+存档v6,门=提纲评审人闸,裁点P1-P3待裁,估2.5d〕/③武器锻造设计提案v1.0〔提纲版零待裁点,裁点在提案产物内呈裁,估1.5d一轮基线〕;四份考证file:line在册(双subagent取证+自查);roadmap四行挂任务书与估时
- **更新于**:2026-10-07(**迭代 17 四卡全部合并落籍+批末验收全绿**,编排会话收口):卡④生涯提纲 44328b1〔台账 379〕→卡③暂停层 c8beaa2〔台账 380〕→卡⓪数据驱动扩展 e535436〔台账 383,与并行迭代 18 两批 union 解+预配号 381 撞号改登〕→卡①敌人行集 9cc4b8b〔台账 388,改前锚丢失 L3 经用户裁甲案补采、MC 总量 80 超二档例外已裁〕;终验主区复跑全绿=冒烟 811/0+run_all 17 套+探针含 click 全 PASS;遗留全部为人闸面〔实机目检/提纲评审/代拍板追认〕,明细见各卡出口报告。
- **更新于**:2026-10-07(**迭代18修正批落籍 master 3609624**,worktree g-plan2-iter18fix 单提交 b56531d+主区 merge --no-ff,工作日志 385;纯文档零代码零测试):用户令撤回越权编入——卡①奇物内容补全/卡②呈现优化移出迭代18〔仍在文档探讨探索阶段、上下文不足,不进实现〕退回06登记态;卡⑥M4数值批移出迭代18改「迭代19+」行〔暂不启动,保持Alpha收官位未排期待发令〕;迭代18现存四卡=③武器锻造提案/④生涯实装/⑤混编投放/⑦种子随机化+调试浮窗;06八处+07一处引用随迁
@@ -890,3 +892,5 @@
388. **敌人表行集多行批完成(2026-10-07,迭代 17 卡①——纯结构批零内容投放;worktree g-plan2-iter17-enemy 分支 iter17-enemy-20261007 基点 e535436,批内提交 a0b06b4(L3 停机报告)/5b9cf59(用户甲案裁决留痕)/18cdcb0(T0 基线回填+事实表 L2 修订)/ab5ddad(T1 组 A GDD)/8690230(T2 组 B)/bc73fa3(T3 组 C)/c583940(T4 组 D)+T7/T8 收口批,全部在 worktree 未合并)**:敌人表同一(关卡序号×节点深度)坐标行集放开混编多种敌人——「每行集恰一敌种」加载期校验退役,换行集构成纪律三条=①行集内 enemy_id 唯一(同敌种第二行仍 dup_key 拦)②同坐标多行必须文件内相邻且行序=声明序=生成序(行序即契约,加载期相邻校验兜底报 rowset_rule)③行集实例总数(各行骰后数量求和)≤4(常量 EnemyTable.ROWSET_INSTANCE_MAX,spawn 期守卫 fail-fast——骰后值加载期不可判);Boss 行集同样放开(P4 乙),Boss 混编叙述取首行 display_name 为知情代价登记。floor 版 resolve_rowset 退役全仓统走 resolver ceil 行集数组(P2 甲——工作日志 312 双算法待裁项销号;冒烟四调用点迁移,坐标全精确命中零行为差);spawn 行集受理逐行实例化(生成序=文件行序、handle_id 连续、难度修饰行集同乘);遭遇骰改逐行各掷(Q8 用户裁——先逐行数量骰再逐行 atk 骰,单行行集判定/开流/消费序/次数与既有逐位一致=零内容期随机流零变化;atk 区间逐行同构属「每行一骰」预批准语义内代拍板留痕)。批中一次 L3 停机=任务书预设复用的卡⓪改前锚两份 jsonl 随卡⓪ worktree 删除丢失(sim-data 数据件不入 git 无历史可回溯,全盘核查零命中)→用户裁甲案=T0 现态补采改前锚 40 局(等价性已证:6e7b5d1..e535436 间 core/data/MC 脚本零 diff+引擎确定性)、本批 MC 总量 80 局超二档字面上限经用户明示批准(后续批次不得援引)。闸=冒烟 811/0(基线 805/0,+6=混编运行面正反断言)+run_all 17 套(含新增行集纪律套:混编相邻合法/Boss 坐标混编合法/隔断 rowset_rule 定位坐标/dup_key 不回归/单行域闸不回归)+probe_gate 含 click 全绿(残留 Godot=0)+doc 三闸/熵增闸对基线零新增(存量=link 死链 4/lint 2/熵增 diagrams 1)+MC 改前改后 40 局同种子配对全字段(每腿 660 字段)零差异——零内容期行为零漂移铁证;补采锚 L1 口径读数 off 4/20·formed 16/20 与卡⓪出口报告逐位同值=补采锚与丢失锚等价的旁证。异常=L2 一次(expect_pools 三元键换代连续 3 轮红:坐标敌种映射臆断错 4 键+3_7 池值手抄错,第 4 轮离线解析 tres 全量对账收敛——教训=三元键换代先离线全量对账再落码)。文档=敌人系统 v0.15(行集构成纪律三条成文+开战生成节逐行实例化口径+F10 前提句去同种假设)/难度曲线与Boss v0.24(混编难度归属注记)/registry rowset_rule 换代/06 状态行收口/roadmap 卡①行换代;出口报告=design/qa/iter17-enemy-exit-report-2026-10-07.md(P4 乙两读数面登记——叙述取首行成立、遭遇骰首行区间面经 Q8 逐行骰消解);人闸材料=design/qa/iter17-enemy-人闸材料-2026-10-07.md(实机目检四项+代拍板追认九项);遗留=实机目检归用户+Boss 多行投放时 unlock_hp_pct 无闸面逐行复核义务(内容批)+damage_probe A1 红灯=基线既有(stash 对照实证,非本批)。**下一步待用户=实机目检+代拍板追认,过闸后合并落 master;首个混编行内容投放归迭代 18 卡⑤**。
389. **迭代 17 四卡收官(2026-10-07,编排会话收口批——worktree g-plan2-iter17-close 分支 iter17-close-20261007 单提交,主区 merge --no-ff,纯文档零代码零测试)**:四卡全部合并落籍并终验——卡⓪内容数据驱动扩展〔落籍 e535436,台账 383〕/卡①敌人表行集多行〔落籍 9cc4b8b,台账 388〕/卡③暂停层只读入口〔落籍 c8beaa2,台账 380〕/卡④生涯界面设计提纲〔落籍 44328b1,台账 379〕;终验主区复跑(master 9cc4b8b,零并发环境)=冒烟 811 项 0 失败+单元 17 套全绿+探针闸含 click 全 PASS;批内事故与裁决留痕=卡⓪续跑中断后由续跑会话接手完成、卡①改前锚丢失 L3 经用户裁甲案(补采 40 局+改后 40 局,总量 80 超二档例外明示批准,后续批次不得援引)、主区两次探针超时与 run_all 一次挂死经证系多工程并发跑测互踩(user:// 目录共用)非代码缺陷、主区合并后首跑冒烟红系全局类名缓存陈旧(--import 重刷即愈,卡⓪新增 EffectEngine 类实证);台账撞号两次(预配 381→改登 383、预配 384→改登 388,均系并行迭代 18 文档批先占,先例同 374);**遗留全为人闸面**=卡①实机目检四项+代拍板九项追认(design/qa/iter17-enemy-人闸材料-2026-10-07.md)、卡③实机目检八节(design/qa/iter17-pause-human-gate-checklist-2026-10-06.md,重点排播排空副作用确认项 D2)、卡⓪实机抽查专长/秘宝卡文案(掘进蓄能积点模判定留编排器侧归词汇表扩展批裁决)、卡④提纲评审+随裁 P6 营地最近冒险条带去留;roadmap 迭代 17 四行本批刷新为已落籍口径。
390. **迭代 17 代拍板追认(2026-10-07 用户 chat 裁;worktree g-plan2-iter17-ratify 分支 iter17-ratify-20261007 单提交,主区 merge --no-ff,纯文档零代码零测试)**:四卡 22 项代拍板(卡⓪八/卡①九/卡③六〔目检清单口径〕/卡④无实质项)逐项呈报后用户核验——裁决口径=「实现相关不挑理,符合架构规范+验证约束测试全绿+表现正确即可」;除目检相关可见面外全部即日追认:纯实现与机检面全部追认,可见面落法追认、最终观感归实机目检(卡③角标/行序/关闭钮+层标题与空态句 F1-F5、卡⓪两件秘宝卡新文案、卡① Boss 名取首行呈现面待迭代 18 卡⑤内容投放时随内容再核);追认行已落三份人闸材料(iter17-enemy-人闸材料 §二/iter17-pause-human-gate-checklist F 节/iter17-datadrive-exit-report §四)。
391. **迭代 18 卡③武器锻造系统设计提案批落籍(2026-10-07,goal 编排 Wave 1 首卡;worktree g-plan2-iter18-forge 分支 iter18-forge 基点 adadf56 三提交 42e9f5d T1 提案成文/6b0fdcf 收口换代/0bbed80 出口报告,主区 merge --no-ff de067ae;纯文档零代码零测试)**:提案=design/research/提案-武器锻造系统-2026-10-07.md(311 行,八节框架全齐=武器实体化程度/攻击类型轴关系/护甲实体化/成长曲线定位/经济与解锁/满级特效清单框架/provisional 数值框架/迁移面与裁点汇总);**17 裁点全备选案并列呈用户盘问**(推荐主线=丙案「当前武器单选+每件武器独立等级与特效」两向可逆/类型轴与格面直伤件叠加共存/魔法甲=现役 ward 零扩矩阵/甲型差异现行边界下以基础 AC 各异表达/成长曲线前缓后陡回应 F6/就地改造属性锻造柜台生命行保留/纯金币不引入材料/满级特效复用现役效果引擎词表为主+三新参数位标红;magic_vs_magic 永假死条件三案呈裁荐改值复活 magic_vs_ward Boss 战专长执行归实装批)——一览表在出口报告 §四;playnote 手迹三条逐条对照(剑=放大/长枪法杖=放大且承接休眠 attack_type 轴/护甲=克制反向处收窄+基础 AC 各异处放大);T0 六事实复核全一致零停机(S1 未触发;playnote 手迹读自主区未提交工作副本并引用入提案、该文件未提交);闸=doc 四闸基线对拍零新增(死链 4/lint 2 文件/退役词疑似 3/熵增 diagrams 1 全为基线存量)+主区合并后冒烟复跑 811/0 三闸全过;06 专条+roadmap 卡③行已换代「提案已成文交付待盘问裁决」。**下一步待用户=提案盘问裁决(异步不阻塞迭代 18 其余三卡;通过后实装批另行立项)**。
392. **迭代 18 卡⑤混编遭遇首批投放批落籍(2026-10-07,goal 编排 Wave 1;worktree g-plan2-iter18-mixenc 分支 iter18-mixenc 基点 adadf56 四提交 ad36e35 T1 设计稿/6272fc8 T3 落表/43b1306 T4 断言随迁/36882e2 T5 收口,主区 merge --no-ff 0dbe3c3;纯内容批零代码)**:enemy.tres 首个混编遭遇行落表——(2,5,giant_spider) 巨蜘蛛巢群紧随既有 (2,5,bugbear) 熊地精行,同坐标双行行集=R6 行序契约(文件内相邻+行序=声明序=生成序,行序重击手在前=默认目标前排坦克);P1 甲 L2 单点试水 d5 案(d7 淘汰依据=落 min/max 集成路径+Σ 顶格零余量仅容固定 1 搭档);行值整行复制 (2,6) 巢群行=P4 甲零数值新增(2-3 只/hp26/atk1[1,2]/light/ac2);Σ 最坏骰和静态自证 1+3=4≤4(守卫同口径);教学位两处注释/Boss d9/既有 19 行现值零触碰;「开工令摘要新增两行 vs 任务书新行」出入按任务书口径执行并留痕(既有行+1 新行=双行行集,同坐标新增两行结构性不可行)。断言面随迁=expect_pools 增 (2,5,giant_spider) 三元键池模板+池文案 19→20 行+混编断言段 19→20 行+⑦b 新三断言(双行行序 bugbear→giant_spider/静态最坏骰和 Σ≤4/新行行值同源 (2,6));首遇位断言 (2,4) 恰一行语义零触碰复核绿。07 两处=:174「Boss 遭遇骰读首行区间」订正为逐行区间骰口径(卡① Q8 消解旧口径)+新立 ⑱ 首批混编目检与读数义务节(难度带读数随 Alpha 收官 M4 数值批执行届时另报批);roadmap 卡⑤行换代。闸=worktree 基线冒烟 811/0→批末 814/0 三闸全过+probe_gate 全绿+run_all 17 套+doc 三闸/熵增对基线零新增(07 自增 lint 一处当轮改写消除)+MC/verifier 零跑(顺延 Alpha 收官 M4 数值批在案);主区合并后冒烟复跑 814/0 三闸全过。环境偏差一笔=worktree 缺字体 .import 边车(gitignored)致 ui_font_asset_test 首跑红,自主区只读补拷后全绿未入 git。**下一步待用户=实机目检三项+首遇位回归(design/qa/iter18-mixenc-exit-report-2026-10-07.md §7 六项清单);Boss 多行归第二批待首批读数回看。**
+1 -1
View File
@@ -116,7 +116,7 @@
**归属**:待提案批定(候选=[奇物](systems/冒险循环/奇物.md) 属性值提升分类修订 + [战斗结算](systems/战斗循环/战斗结算.md) 攻击类型轴 + [元进度](systems/跨局循环/元进度.md) 营地柜台锻造经济)
**状态**:已立项设计提案批=roadmap 迭代 18 卡③(2026-10-06 用户令;纯文档零代码,裁点呈用户裁决,实装批另行立项;数值框架 provisional 终值归 Alpha 收官 M4 数值批统一调整〔未排期〕)
**状态**:已立项设计提案批=roadmap 迭代 18 卡③(2026-10-06 用户令;纯文档零代码,裁点呈用户裁决,实装批另行立项;数值框架 provisional 终值归 Alpha 收官 M4 数值批统一调整〔未排期〕)。提案已落盘 design/research/提案-武器锻造系统-2026-10-07.md,待用户盘问裁决(17 裁点全备选案并列,推荐案与淘汰依据随文;异步不阻塞收口)
#### 内部分类禁写入玩家可见面——奇物呈现三处违规待改(2026-10-04 用户立意登记)
+10 -1
View File
@@ -165,10 +165,19 @@
- **红灯信号**:战斗结算后弹奇物;门票进持有集;货架出现专长单件(非门票形态);refresh 件写进角色加成区。
- **结论回流**:呈现面违规改法+档位呈现三路=C1 待裁(呈现批);强度体感归 M-4 带判读(本批 MC 只测不判)。
### ⑱ 首批混编遭遇目检与读数义务(迭代 18 卡⑤投放随批登记——首个混编遭遇落表)
- **投放内容**:(2,5) 双行行集 = 熊地精重击手(既有行零变更)+ 巨蜘蛛巢群(新行,行值整行复制 (2,6) 巢群行——零数值新增);行序 = 重击手在前(默认目标)·巢群在后(R6 行序契约:文件序 = 声明序 = 生成序)。
- **实机目检三项**(混编遭遇至少触发一次——L2 节点 5):同场两敌种呈现(重击手与蜘蛛同屏);行序与表一致(默认目标 = 重击手,蜘蛛随后);实例总数 ≤4 目视(3-4 只 = 重击手 1 + 蜘蛛 2-3)。
- **难度带读数义务**:L2 含混编后的难度带位移——随 Alpha 收官 M4 数值批统一执行,届时另报批(本批 MC 零跑)。
- **首遇教学位与断言面复核(本批已履行)**:巨蜘蛛首遇位 (2,4)「固定 2 不加骰」零触碰、钩爪恐魔 (3,0)/(3,1) 固定数量零触碰;expect_pools 三元键池模板 + (2,5) 行集构成/行序/静态最坏骰和 ≤4 断言随批入冒烟全绿。
- **红灯信号**:(2,5) 只出一种敌种;敌人数 5 只以上(越 spawn 守卫应不可能——出现即报缺陷);首遇位 (2,4) 数量出现掷骰波动(应恒 2)。
- **Boss 多行(第二批投放)六面读数清单维持**:Boss 名取首行显示 / Boss 遭遇骰逐行区间骰(每行各掷自己区间——卡① Q8 逐行骰换代口径)/ 半血解锁 / 独占技 / 难度带 / 首遇教学位复核——逐项过,随第二批任务书执行。
## 验收读数重测义务(履行留痕 + 现行义务)
**已履行**(按序换代,旧读数各随其批作废留痕不入本单):①验收读数重测批(2026-09-19——Boss 单独出列/承伤带/通关率基线全量重测,硬化翻倍期·乏力死效果期·充能期旧读数作废);②迭代 5 基线重测(统一随机流后 MC+verifier 双窗);③**数值修复批新尺重测(2026-10-01)**——模拟档位重构后全量重测,新锚 `sim-data/runsum_numfix_final_n200_20261001.jsonl`,全旧带作废只测不判([numfix 报告](../qa/numfix-newruler-readings-2026-10-01.md));④**迭代 10 奖励重构批重锚(2026-10-01)**——四代锚 77000/78000/79000/80000(改前/重构后/共享池后/掷定前置后,各 400 局),普通 L1 41.8%/L2 10.2% 带内([读数报告](../qa/m3-iter10-clear-rate-readings-2026-10-01.md));⑤**T19 真人标定局收口(2026-10-03 用户裁)**——有效局 2(1 通关 1 死于 L3 首战,[读数报告](../qa/t19-real-playtest-readings-2026-10-02.md)),用户裁定**佐证级收口不再补局**;k 预期带同日立(**正常 >0.5、预警 <0.3**),字段随 81000 重锚入库后补算终值。
**现行义务**:**T7 技能池节奏重测(2026-10-05 技能池执行批挂单)**——≥50 distinct seeds 节奏重测(过涝判读带=Boss 半血后特殊技密度上探;跑批须用户批准;S2 过涝越带→解锁技权重/倍率回调呈报禁自动调;**2026-10-06 联审批注:判读带立单于案C 行为换代前,执行前须按案C 新行为复核「半血后」窗口与密度分母是否仍有效,失权即停机呈报重立带**)→ ~~T19 真人标定局~~(⑤已收口)→ 真人侧读数换 81000 锚补算 k 终值(随迭代 9 出口重锚批出,模拟锚 2026-09-19 判读报告的现行锚地位由 81000 锚+真人两局承接)。工具面:`analyze_playtest.py` / `balance_verifier.py` 冒险段 / JSONL 日志现役。
**后续内容批义务(2026-10-06 敌人表行集多行批 P3 丙二裁挂单)**:首个混编遭遇行投放(连同 Boss 多行内容,敌种候选与坐标由内容批裁)——投时 MC 取证先报批(数值验证场景二档起)、难度带读数义务随投登记、首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准)、Boss 多行投放时 Boss 名取首行显示/Boss 遭遇骰读首行区间/半血解锁/独占技/难度带六面读数逐项过。——**已编入 roadmap 迭代 18 卡⑤混编遭遇首批投放批(2026-10-06 用户令;读数义务维持随批登记,MC 取证跑批顺延 Alpha 收官 M4 数值批统一执行〔未排期,届时另令——数值统一调整殿后〕)**
**后续内容批义务(2026-10-06 敌人表行集多行批 P3 丙二裁挂单)**:首个混编遭遇行投放(连同 Boss 多行内容,敌种候选与坐标由内容批裁)——投时 MC 取证先报批(数值验证场景二档起)、难度带读数义务随投登记、首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准)、Boss 多行投放时 Boss 名取首行显示/Boss 遭遇骰逐行区间骰〔每行各掷自己区间——2026-10-07 卡① Q8 逐行骰换代,旧「读首行区间」口径消解〕/半血解锁/独占技/难度带六面读数逐项过。——**已编入 roadmap 迭代 18 卡⑤混编遭遇首批投放批(2026-10-06 用户令;读数义务维持随批登记,MC 取证跑批顺延 Alpha 收官 M4 数值批统一执行〔未排期,届时另令——数值统一调整殿后〕)。进展:首批已于 2026-10-07 落表((2,5) 双行,目检与读数义务见 ⑱);剩余面 = Boss 多行第二批(六面读数随投逐项过)**
@@ -0,0 +1,72 @@
# 迭代 18 卡③出口报告:武器锻造系统设计提案批(2026-10-07)
> worktree `g-plan2-iter18-forge`(分支 iter18-forge,基线 adadf56)。纯文档批:零代码、零数据表改动、零游戏测试(冒烟/探针/MC 全部未跑——测试执行两入口铁规)。本报告是中间文档,按吸收即死条款在迭代出口随批退役;台账条目与快照草稿在本文件第五、六节,由主控转记 active.md(本批未触碰 active.md)。
## 一、提交清单
| hash | 内容 |
|---|---|
| 42e9f5d | ③T1: 武器锻造系统设计提案成文——八节框架全齐+原案三条逐条对照+17 裁点全备选案并列+数值 provisional 量纲锚点 |
| 6b0fdcf | ③收口: 06「武器锻造系统」专条状态追加提案落盘句 + roadmap 卡③行状态列换代「提案已成文交付待盘问裁决(异步不阻塞)」 |
交付物:
- **提案正文**:`design/research/提案-武器锻造系统-2026-10-07.md`(311 行,待用户盘问裁决)
- 收口两处:`design/gdd/06-待办清单.md`(专条状态行追加)、`roadmap.md`(第 71 行状态列)
## 二、闸读数(改前基线 → 改后对拍,四闸全部零新增违例)
| 闸 | 基线(adadf56) | 改后(6b0fdcf) | 判定 |
|---|---|---|---|
| doc_link_audit(--known tools/doc_link_known.txt) | 扫描 41 文件 · 链接 1005 处 · 死链 4 处 · 已知死链 0 处 | 同左(41/1005/4/0,同一批存量:06 两条+奇物两条,均 .zcode/plans、archive、ux 目标类假红在册) | 零新增 |
| gdd_lint | 8 文件 · 2 不通过(06-待办清单.md、07-体验验证清单.md,存量表格占比/R3/R4/R7) | 同左(同两文件同款存量) | 零新增 |
| doc_term_audit | 41 文件 · 命中 219 处 · 疑似现行 3 处(heavy_multiplier/可选类道具/拔旗,全存量留档类判定) | 同左(41/219/3) | 零新增 |
| repo_structure_audit(熵增闸) | 违例 1 处(design/diagrams 子目录越界——迭代 17 存量移交项,主区同红) | 同左(1 处,同一项) | 零新增 |
本批新增文件(design/research/提案、design/qa/本报告)均不在三闸扫描域(扫描域=design/gdd、design/registry、design/ux);唯一被扫域改动是 06-待办清单.md 状态行一句话,四闸读数逐位持平。
## 三、完成定义自证(任务书 §1.2 五条逐条判定)
| # | 完成定义 | 判定 | 证据 |
|---|---|---|---|
| 1 | 提案文档落 design/research/(命名 提案-武器锻造系统-2026-10-XX.md),§5 框架八节齐全 | **达成** | `design/research/提案-武器锻造系统-2026-10-07.md`,章节 三~十=八节框架(武器实体化/攻击类型轴/护甲实体化/成长曲线/经济与解锁/满级特效/数值框架/迁移面与裁点汇总),另有 〇 原案对照、一 事实基准、二 范围红线三节前置 |
| 2 | 全部现役事实引用可溯(file:line/表行),零凭空断言 | **达成** | T0 逐条复核过(meta.tres:7-25 / shop.tres:36-57,68-94,107-109 / config_db.gd:329-334 / hero.tres:8-11,21-27 / hero_table.gd:12-13 / settlement.tres:31-47,50-52,74 / enemy_table.gd:110-113 / enemy.tres 21 行 armor_type 分布 light×14/heavy×4/ward×1 逐行核对 / feats.tres:29-31,47-49,205-207 / battle_orchestrator.gd:172,830,846-854,1155,1294 / damage_controller.gd:19,513 / effect_engine.gd:28-35;正主文档对读=战斗结算/敌人系统/元进度/奇物/冒险结构五份)。任务书 §2 六事实(F1-F5+F6)全部验证一致,**无 S1 失真、未触发停机** |
| 3 | 每个设计裁点呈全备选案(含淘汰依据+各自代价) | **达成** | 17 个裁点(1/1a/1b/1c/2a/2b/2c/3a/3b/3c/4a/4b/5a/5b-1/5c/6/8a)全部甲乙丙(或甲乙)并列,逐案带淘汰依据与代价;推荐列显式标注为提案立场非打包方案;第八节(特效深度)在节内补三案并列块 |
| 4 | 数值只给框架与量纲(provisional),终值显式标注归 Alpha 收官 M4 数值批 | **达成** | 第九节专表:七行量纲锚点全部标 provisional+归宿 M4;第三节基础 AC 锚点、第七节定价/cap、第八节特效值同口径;全文零投值承诺(第九节总承诺+红线 1) |
| 5 | 06 专条与 roadmap 卡③行状态随批换代 | **达成** | 06 专条状态行追加提案落盘句(6b0fdcf);roadmap 第 71 行状态列=「🔨 提案已成文交付(2026-10-07)待盘问裁决(异步不阻塞)」(6b0fdcf) |
## 四、全裁点一览表(T2 转呈用户盘问用——每裁点一行备选案摘要)
| # | 裁点 | 备选案摘要 | 提案推荐 |
|---|---|---|---|
| 1 | 武器实体化程度 | 甲=纯升级路线(攻击锻造改名+类型标签,最省但差异化感知最弱)/乙=武器槽实体(装备+库存,感知最强但单开实体系统超诉求、不可逆)/丙=当前武器单选+每件独立等级与特效(中点、两向可逆) | 丙 |
| 1a | 携带数 | 单持 / 多持轮换(收益被穿刺弹/魔法矢直伤件承载、战斗内换械动行动经济) | 单持 |
| 1b | 换械时机 | 营地内 / 战斗中(结算管线无"中途改类型"位;与"克制归冒险前配型"既有定稿一致) | 营地内 |
| 1c | 换械收费 | 免费 / 小额收费(收费惩罚构筑尝试,逆 F6 诉求) | 免费 |
| 2a | 类型轴共存 | 叠加(武器类型与格面直伤件独立、共用一张矩阵)/替代(接管,强耦合+砍内容池)/互斥(同类型件不出现,无依据收窄) | 叠加 |
| 2b | 矩阵扩维 | 不扩(九格结构冻结,武器三型正好映射)/加第四甲型(矩阵 4×3 全链成本) | 不扩 |
| 2c | 死条件 magic_vs_magic | 删行(有先例)/保留+注记(零代码但废卡占池)/改值复活 magic_vs_ward(一行 value,L2 Boss 战专长;行为变更归实装批配测试) | 丙(执行归实装批) |
| 3a | 甲域定名 | 魔法甲=ward(现役第三型中文正名即"魔法护甲",零扩域)/新造第四甲域(全链成本、无可感知差异点) | 甲 |
| 3b | 甲型可感面 | 基础 AC 差异先行+克制反向留结构位(敌方攻击无类型不查矩阵=克制反向现行无数值效果,显式收窄)/等敌方攻击类型批捆绑(无限期推迟原案诉求) | 甲 |
| 3c | 护甲升级结构 | 每型独立路线(逐句对齐原案)/单轨+甲型当门槛(表达不了三型各异基础 AC) | 甲 |
| 4a | 成长曲线形状 | 前缓后陡(正面回应 F6)/线性(现役状,零呼应)/阶梯(体感跳跃、调参空间最小) | 甲(只锁方向,值归 M4) |
| 4b | 解锁节奏 | 锻造内自闭环(原案精神)/绑关卡进度(与营地定位冲突、首局绑死剑) | 甲 |
| 5a | 柜台承载 | 就地改造属性锻造柜台(攻击/护甲行改造、生命行保留)/新第四柜台(拆剩一行、界面重排、"锻"字三处更乱)/塞道具工坊(货币与职责不同源) | 甲 |
| 5b-1 | 货币 | 纯金币(同现役攻击锻造)/金币+钥石(解锁被 Boss 掉落绑死)/纯钥石(与"攻击力提升改造"相逆) | 纯金币 |
| 5c | 材料经济 | 纯金币(零新经济面,原案未提材料)/金币+材料(grant_material 账号层化=新存档域+同名混淆)/纯材料(脱钩金币经济,实装最大) | 纯金币 |
| 6 | 满级特效深度 | 全复用现役效果类型(零代码但表现力受限)/复用为主+三条新参数位(暴击面/折扣档/护盾量,实装批小改)/引入新效果类型(引擎闭集高代价变更,无候选真需要) | 乙 |
| 8a | 货架现名 | 保留"攻击锻升" / 改"训练·攻击"式中性名(防与营地"武器锻造"品牌混淆;呈现面归实装批) | 随实装批呈现细节定 |
配比预设挂起批边界注记(裁点 5d,非呈裁项):A4 配比预设批 2026-10-05 挂起冻结维持,提案不预设其重启口径;实装落地后该批若重启,其任务书须核对预算包络×武器类型、容量柜台竞争两处交汇面。
## 五、active.md 台账条目草稿(主控转记用,完整白话句)
- 迭代 18 卡③(武器锻造系统设计提案批)当日完成:T0 把任务书 §2 的六条现状事实逐条回到代码与数据表复核(营地锻造行、商店货架行族、主角攻击类型轴与甲型轴、克制矩阵九格、专长死条件、敌方装甲分布、效果引擎词表),全部与任务书一致,没有触发事实失真停机。T1 把用户 playnote 的武器锻造三条原案写成设计提案(design/research/提案-武器锻造系统-2026-10-07.md,提交 42e9f5d):提案对原案三条的关系逐条写明(剑=放大、长枪法杖=放大且直接启用代码里已登记的休眠类型轴、护甲=克制反向一处显式收窄+基础 AC 各异承接);共 17 个设计裁点全部甲乙丙并列给出淘汰依据与代价,推荐=武器做"当前武器单选+每件独立等级与特效"的折中形态、类型轴与棋盘直伤件叠加共存、魔法甲直接对应现役"魔法护甲(ward)"不扩矩阵、甲型差异先行以基础 AC 表达、成长曲线前缓后陡、就地改造营地属性锻造柜台、纯金币不引入材料、满级特效复用现役效果引擎词表为主;另发现专长里 magic_vs_magic 条件在现行甲型域下永不触发(废卡),给了删行/注记/改值复活三案(推荐改成 magic_vs_ward 变成 Boss 战专长,执行归实装批)。全部数值只有量纲和锚点,终值归 Alpha 收官 M4 数值批。收口改了 06-待办清单「武器锻造系统」专条状态行和 roadmap 卡③行状态列(提交 6b0fdcf)。四道文档闸与目录结构闸改前改后读数逐位持平,零新增违例。提案现在等用户盘问裁决,裁决异步进行不阻塞迭代 18 收尾;裁决通过后实装批另行立项。
## 六、active.md 当前状态快照草稿(主控转记用)
> 迭代 18 卡③(武器锻造系统设计提案批,worktree g-plan2-iter18-forge 分支 iter18-forge 基线 adadf56)**已完成待合并**:纯文档零代码零测试,两提交 42e9f5d(提案成文)+6b0fdcf(06 专条+roadmap 卡③行状态换代)。产物=design/research/提案-武器锻造系统-2026-10-07.md(17 裁点全备选案,推荐案随文)。闸=doc 三闸+熵增闸改前改后逐位持平零新增(死链 4/失效 lint 存量 2 文件/退役词疑似 3/结构越界 1,全为基线存量)。**待办=①用户盘问裁决提案(异步,T2 人闸;裁决结果由后续批回写 06 专条与 roadmap)②合并落 master(主控统一执行)。** active.md 本批未触碰(台账与快照草稿见出口报告第五、六节,design/qa/iter18-forge-exit-report-2026-10-07.md)。
## 七、停机点与遗留
- **停机点:无。** T0 未发现任务书 §2 事实失真(S1 未触发);本批无机制卡点。
- 遗留(非本批义务,均已显式登记):①T2 人闸=提案盘问裁决,异步进行,轮次扩展估时另计(任务书 §6:每轮追加约 0.25d);②实装批另行立项,以本提案+裁决记录为任务书输入;③magic_vs_magic 死条件处置归实装批;④design/diagrams 目录越界为迭代 17 移交存量,主区同红,非本批引入。
@@ -0,0 +1,132 @@
# 出口报告:混编遭遇首批投放批(迭代 18 卡⑤)
> 成文 2026-10-07。执行 worktree `D:/code/g-plan2-iter18-mixenc`(分支 `iter18-mixenc`,基点 `adadf56`)。任务书 = [任务书-混编遭遇首批投放批-2026-10-07.md](../research/任务书-混编遭遇首批投放批-2026-10-07.md)(v1.2 裁点全裁:P1-P4 全甲)。前置 = 迭代 17 卡①敌人表行集多行批(落籍 `9cc4b8b`,在基线内)。性质 = 纯内容批零代码:只动 `enemy.tres` 数据行 + 表注释 + 冒烟断言面随迁 + 07 清单两处。
---
## §1 T0 开工三查与机制到位复核(2026-10-07 实测)
| 查项 | 结果 |
|---|---|
| 基线冒烟 | `python tools/run_smoke.py` → **811 项检查 0 项失败,三闸全过**(退出码/摘要失败数/脚本错误扫描),无 SCRIPT ERROR——与主控 2026-10-07 实测 master `adadf56` 的 811/0 同数,基线成立 |
| git status 归属 | worktree 树干净(nothing to commit),分支 `iter18-mixenc`,头 = `adadf56`;无并行卡遗留脏文件 |
| 卡①机制①行集校验放开 | `enemy_table.gd` 原「每行集恰一敌种」校验已退役,现为 R6 行序纪律校验(同坐标多行必须文件内相邻,违例报 `rowset_rule`);同坐标同敌种第二行仍由 dup_key(键含 enemy_id)拦截 |
| 卡①机制②每行一骰数量骰 | `battle_orchestrator.gd` 遭遇骰段已逐行化:按行序逐行数量骰、再逐行 atk 骰(区间宽度为零的行不掷 = 定值不骰既有口径);单行行集消费序/次数逐位一致 |
| 卡①机制③expect_pools 新键 | `smoke_all.gd` 池模板断言已换代 `(L,D,enemy_id)` 三元键(19 条目逐行精确比对) |
| 卡①机制④实例总数守卫 | `enemy_table.gd` `ROWSET_INSTANCE_MAX = 4`;`unit_container.gd` spawn 行集受理逐行实例化、各行骰后数量求和 ≤4 fail-fast(超限当场拒启) |
| 07:174 义务对读 | 「后续内容批义务」条在档:MC 取证顺延 Alpha 收官 M4 数值批统一执行(届时另令);「Boss 遭遇骰读首行区间」旧口径在文——本批 T5 订正为逐行骰口径 |
**结论:卡①四件机制全部在 master(=本 worktree 基线)生效,无机制缺口,S1 停机点不触发。**
## §2 T1 设计稿——候选组合 × 坐标全备选案(留痕,白名单内代拍板)
### 2.1 方案族(P1 甲已裁,不再重议)
L2 单点试水,「巨蜘蛛 + 熊地精」双行混编,一处普通节点(d5/d7 候选二选一,属代拍板白名单「候选坐标在同方案族内的微调」)。Boss 多行不入首批(P2 甲);L1 教学段零混编(P3 甲);新行全行值复制同敌种既有行(P4 甲)。
### 2.2 坐标候选全案对照
| 案 | 行集构成(行序 = 文件序 = 生成序) | 静态最坏骰和 Σ(unit_count_max) | 冲突排查 | 裁决 |
|---|---|---|---|---|
| **d5 案**(选定) | 既有 (2,5) 熊地精重击手(固定 1)+ 新增 giant_spider 行(复制 (2,6) 巢群行值:unit_count 2 / max 3) | 1 + 3 = **4 ≤ 4 ✓** | d5 非首遇位(巨蜘蛛首遇位 = (2,4) 固定 2 教学位,不动);非 Boss 位(d9 不动);(2,5,bugbear) 无 dup 冲突(新键 (2,5,giant_spider));**d5 不在 L2 min/max 存储种子集成路径上**(min 0→1→3→7→8→9 / max 0→2→6→7→8→9 均不含节点 5)——冒烟集成跑测零波及 | **选定** |
| d7 案(淘汰) | 既有 (2,7) 巨蜘蛛巢群 [2,3] + 新增 bugbear 行(仅容固定 1 搭档:复制 (2,0) 熊地精 或 (2,5) 重击手行值) | 3 + 1 = 4 ≤ 4 ✓(但零余量顶格) | 淘汰依据:①**d7 同时落在 L2 min/max 两条存储种子集成路径上**(win_min/win_max 通关断言 + 手动驱动选节点 6 开战场面),难度变化直接进入集成跑测的战斗与 RNG 消费面,首批试水波及面最大;②Σ 顶格 4 无余量,静态判据贴守卫上限;③搭档被区间挤到只剩固定 1 一种形态,设计空间最窄;④(2,7) 本就是 L2 最强蜘蛛行(atk 2 / [1,3] / ac 3),再叠伙伴 = 在最难普通节点二次加难,与「单点最小试水」相悖 | 淘汰 |
### 2.3 d5 案内子候选——新行行值来源(P4 甲执行细则,同方案族微调)
| 子案 | 复制来源 | 行值 | Σ 自证 | 裁决 |
|---|---|---|---|---|
| 甲1:复制 (2,4) 首遇教学行 | unit_count 2(固定无 max)/ hp 28 / atk 1 / atk [0,2] / 池 6/2/1 / light / ac 2 | 1 + 2 = 3(全固定,零数量骰) | 淘汰依据:固定数复制会让首批生产内容**完全绕开卡①核心交付面「每行一骰数量骰」**(仅 atk 骰逐行化被触发),单点试水的机制验证价值缩水;且任务书 §4.2 与开工令给的 d5 案演算形态即「固定 1 + 蜘蛛 [2,3]」 | 淘汰 |
| **甲2:复制 (2,6) 巢群行**(选定) | unit_count 2 / unit_count_max 3 / hp 26 / atk 1 / atk [1,2] / 池 6/2/1 / light / ac 2 / display_name 巨蜘蛛巢群 | 1 + 3 = **4 ≤ 4 ✓** | 选定依据:与两份文件演算形态一致(least surprise);**生产内容实打「每行一骰」机制**(重击手定值不骰、蜘蛛掷 [2,3]——同场两种数量语义并存,正是混编试水要验的形态);hp 26 较教学行 28 更低一档,难度噪音并不更大;(2,6) 是文件序上 d5 的下一行,值属同段 progression | **选定** |
| 甲3:复制 (2,7) 巢群行 | unit_count 2 / max 3 / hp 26 / atk 2 / atk [1,3] / ac 3 | 1 + 3 = 4 ≤ 4 ✓ | 淘汰依据:L2 后段强度(atk 2 / ac 3)用于首批单点试水取偏难形态;且复制后 d5/d7 两场蜘蛛面板完全雷同,目检可读性差 | 淘汰 |
### 2.4 行序候选(R6:行序 = 声明序 = 生成序)
| 案 | 生成序 | 裁决 |
|---|---|---|
| **重击手在前、巨蜘蛛巢群在后**(选定) | 默认目标 = 首行重击手(ac 8 精英坦克顶前排),蜘蛛后排输出 | 选定依据:强弱搭配的经典前后排形态;且既有行文件位置零移动,diff 最小、R6 相邻由「新行紧随既有行之后」满足 |
| 巨蜘蛛巢群在前(淘汰) | 默认目标 = 蜘蛛(脆) | 淘汰依据:前排坦克语义倒置;需把新行插在既有行之前,既有行文件位置移动,diff 噪音大 |
### 2.5 禁区与禁令排查(逐项)
- 巨蜘蛛首遇位 **(2,4) 固定 2 不加骰**:零触碰(表注释 :486-487 逐字保持;行集断言「恰一行」语义不受影响——本批不动 (2,4))。
- L2·L3 Boss 位 **d9**:零触碰(P2 甲,Boss 多行不入首批)。
- **跨关混编禁令**(敌种不得早于其首遇位所在关出现):giant_spider 首遇关 = L2、bugbear 首遇关 = L1(L1 d2 教学位)⊂ 投放关 L2 ✓;L1/L3 零触碰 ✓。
- **教学位钩爪恐魔((3,0)/(3,1) 固定数量不加骰)**:L3 零触碰,注释 :518-519 逐字保持。
- 既有 19 行现值(hp/atk/pool/权重/倍率/display_name):零变更,纯插入。
- dup_key:新键 (2,5,giant_spider) 全表唯一 ✓。
### 2.6 执行口径备注(指令摘要与任务书出入留痕)
开工令摘要写「enemy.tres 新增两行」,任务书 v1.2(最高执行依据)T3 写「enemy.tres 新行」且 §4.2 Σ 演算(固定 1 + 蜘蛛 [2,3] → 上限 4)为「既有行 + 1 新行」口径。结构上「同坐标新增两行」不可行:任一 L2 战斗坐标均已有行,双行混编 = 既有行 + 1 新行(若再加一行即成三行行集,超出演算且 (2,5,bugbear) 会撞 dup_key)。**按任务书执行:新增 1 行,行集 = 既有重击手行 + 新巨蜘蛛巢群行,表 19 行 → 20 行。**
### 2.7 选定案白名单依据汇总
坐标 d5(二选一)、行值来源 (2,6) 复制、行序重击手在前——三者均属任务书 §7 代拍板白名单「候选坐标在同方案族内的微调」;敌种组合(P1 甲)、Boss 不入(P2 甲)、教学段保护(P3 甲)、复制行值(P4 甲)全为已裁项,零重裁。
## §3 T3 数据行落地(提交 `6272fc8`)
`game/data/tables/enemy.tres`:新增 1 行 (2,5,giant_spider)「巨蜘蛛巢群」,紧随既有 (2,5,bugbear)「熊地精重击手」行之后(R6 相邻;行序 = 重击手在前、巢群在后);行值整行复制 (2,6) 巢群行(unit_count 2 / unit_count_max 3 / hp 26 / atk 1 / atk_min 1 / atk_max 2 / 池 普攻6·撕咬2·蓄力1 / light / armor_class 2)。表尾追加本批注释块(设计意图/读数预期/Σ 自证/禁区排查)。教学位注释两处(:486-487 巨蜘蛛、:518-519 钩爪恐魔)逐字保持;既有 19 行现值零变更;表 19 行 → 20 行。
## §4 T4 断言面随迁(提交 `43b1306`)
`game/smoke/smoke_all.gd` 四处:
1. expect_pools 增 `"2_5_giant_spider": {"attack": 6, "bite": 2, "charge": 1}`(键 = 卡① (L,D,enemy_id) 三元口径)。
2. 池模板文案「十九行九种」→「二十行九种」,尾部口径改「首批投放 (2,5) 双行……其余坐标仍恰一行」。
3. 混编断言段还原断言 `rows.size() == 19` → `== 20`(表回 20 行零污染)。
4. 新增 ⑦b 三断言:(2,5) 双行且行序 [bugbear → giant_spider](R6 运行面);静态最坏骰和 Σ(unit_count_max,固定行缺省=unit_count) = 4 ≤ 4(守卫同口径);新行行值 = 复制 (2,6)(P4 甲零数值新增)。
首遇位断言逐项复核绿:(2,4) 巨蜘蛛首遇行集「恰一行·固定 2」、L1 D2 固定 1、L3 (3,0)/(3,1) 固定数量——零触碰全绿。
## §5 验证闸数字
| 闸 | 结果 |
|---|---|
| 基线冒烟(T0) | 811/0,三闸全过(与 master 基线同数) |
| 轻闸冒烟(批内两次:T4 后 + 终态复跑) | **814/0 三闸全过**(基线 811 + 3 新断言) |
| probe_gate(ui_input/ui_struct/ui_contrast + 残留清点) | 全绿,本闸残留 Godot = 0 |
| run_all(单元/契约 17 套件) | **all green(17 suites)**——首跑 1 套红(ui_font_asset_test)归 worktree 环境缺口(见 §11),补拷 gitignored 字体 .import 边车后 17 套全绿;与本批改动无关(本批零触碰字体/呈现面) |
| doc 三闸 | 对基线**零新增**:gdd_lint 07 文件 R3 命中 20 = 基线 20(曾自增 1 处=⑱ 标题括号含日期+「批」,当轮改写消除)、R4/R7 与基线逐字同值(存量);doc_link 07 命中 0;doc_term 07 疑似现行 0;全仓存量红(06/03/奇物/design-diagrams 等)均非本批触碰文件 |
| 熵增闸 repo_structure_audit | design/diagrams 越界 1 项 = 存量(基线在案,非本批产生);本批零新文件类别 |
| MC / verifier | **零跑**(顺延 Alpha 收官 M4 数值批,硬约束在案) |
## §6 T5 文档收口(本提交)
1. `design/gdd/07-体验验证清单.md` 两处:
- :174 义务段「Boss 遭遇骰读首行区间」→「Boss 遭遇骰逐行区间骰〔每行各掷自己区间——卡① Q8 逐行骰换代,旧口径消解〕」,并补进展注记(首批已落表,剩余面 = Boss 多行第二批)。
- 新增 **⑱ 首批混编遭遇目检与读数义务** 节:投放内容 / 实机目检三项 / 难度带读数义务(随 Alpha 收官 M4 数值批统一执行、届时另报批)/ 教学位与断言面复核(本批已履行)/ 红灯信号 / Boss 多行第二批六面读数清单维持。
2. `roadmap.md` 卡⑤行状态列换代(✅ 已全批落表 + worktree/提交/闸数字/出口报告指引)——仅动本卡行,符合指令边界。
## §7 实机目检清单(人闸材料——归用户执行,亲口确认方验收)
| # | 目检项 | 通过判据 |
|---|---|---|
| 1 | 混编遭遇呈现(L2 节点 5,至少触发一次) | 同场两敌种:熊地精重击手 ×1 与巨蜘蛛巢群同屏 |
| 2 | 行序与表一致 | 默认目标 = 重击手(前排坦克 ac 8 先接战),蜘蛛随后 |
| 3 | 实例总数 ≤4 目视 | 场上 3-4 只(重击手 1 + 蜘蛛 2-3;蜘蛛数量骰 [2,3] 两形态均正常) |
| 4 | 首遇教学位回归 | L1 d2 熊地精恒 1 只;L2 d4 巨蜘蛛恒 2 只(无掷骰波动);L3 d0 灰矮人恒 1 / d1 钩爪恐魔恒 2 |
| 5 | Boss 位不变 | L2 d9 蛛化卓尔精灵单独出场(无护卫行) |
| 6 | 红灯信号(任一出现即报缺陷) | (2,5) 只出一种敌种;敌人数 ≥5;首遇位数量波动 |
## §8 台账条目草稿(预配号 391——供主控誊入 active.md,本批禁碰 active.md)
> 391. 混编遭遇首批投放批完成(迭代 18 卡⑤,worktree g-plan2-iter18-mixenc 分支 iter18-mixenc 基点 adadf56,批内提交 ad36e35/6272fc8/43b1306/⑤T5 收口批,全部在 worktree 未合并):首个混编遭遇行落表 = (2,5) 双行行集〔熊地精重击手(既有零变更)+巨蜘蛛巢群(新行行值复制 (2,6),P4 甲零数值新增),R6 行序 = 重击手在前〕;设计稿全案留痕(坐标 d5/d7 对照选 d5——d7 落 min/max 集成路径淘汰;行值来源三子案选复制 (2,6)——生产内容实打「每行一骰」;行序重击手在前 = 前排坦克默认目标)。闸 = 冒烟 814/0(基线 811/0,+3 断言)+run_all 17 套+probe_gate 全绿+doc 三闸/熵增存量红零新增(07 ⑱ 标题曾自增 R3 一处、当轮改写消除);一次环境缺口 = worktree 缺字体 .import 边车致 ui_font_asset_test 红,自主区补拷边车(gitignored 不入库)后 17 套全绿,与本批无关。07 收口 = ⑱ 目检与读数义务新节+:174 逐行骰措辞订正;MC 零跑(顺延 Alpha 收官 M4 数值批在案);roadmap 卡⑤行状态列已换代。**下一步待用户 = 实机目检三项+首遇位回归(出口报告 §7),过闸后主区合并落 master。**
## §9 快照草稿(供主控誊入 active.md 顶部快照节)
> 迭代 18 卡⑤混编遭遇首批投放批已实施完成(worktree iter18-mixenc,四提交,未合并):(2,5) 双行混编落表(重击手+巨蜘蛛巢群复制行值,零数值新增)、断言面随迁 814/0、07 ⑱ 义务登记、全闸绿(run_all 17 套/doc 三闸零新增/熵增存量);待用户实机目检三项(§7)后主区合并;Boss 多行第二批与 MC 取证(难度带读数)分别顺延第二批任务书与 Alpha 收官 M4 数值批。
## §10 提交清单
| 提交 | 卡 | 内容 |
|---|---|---|
| `ad36e35` | ⑤T1 | 出口报告落档(T0 三查 + T1 设计稿全案留痕),纯文档 |
| `6272fc8` | ⑤T3 | enemy.tres 新行落表 + 表尾注释块(R6 相邻/行序纪律) |
| `43b1306` | ⑤T4 | 冒烟断言面随迁(expect_pools 模板 + 行数换代 + ⑦b 三断言) |
| 本提交 | ⑤T5 | 07 两处 + roadmap 卡⑤状态列 + 出口报告收尾回填 |
## §11 停机点与偏差记录
- **停机点:无**(T0 机制四件全在位,S1/S2/S3 未触发;全程零 MC 零跑批零机制代码)。
- **偏差一(§2.6)**:开工令摘要「新增两行」与任务书「新行」(单数 + Σ 演算口径)出入——按任务书执行为既有行 + 1 新行 = 双行行集,已留痕。
- **偏差二(环境缺口,非本批缺陷)**:worktree 缺 `game/assets/fonts/ui_font_fusion_pixel_zh_hans.ttf.import` 边车(gitignored,主控建 worktree 拷缓存时漏此件),run_all 首跑 ui_font_asset_test 红("No loader found")。处置 = 自主区只读补拷边车(不改动主区;边车不入 git),复跑 17 套全绿。归 L1 环境自救,与批内容零关联(本批零触碰字体/呈现面)。
@@ -0,0 +1,311 @@
# 提案:武器锻造系统(2026-10-07)· 设计提案待裁决稿
> **这是什么**:把用户的武器锻造想法写成一份可以逐点拍板的设计提案。本文件只做设计,不写代码、不改数据表、不占排期——每一个设计分岔点都把全部备选方案(甲/乙/丙)并排列出,附淘汰理由与各自代价,交用户盘问裁决。裁决通过后,实装另立批次走完整流程。
> **想法来源**:用户 2026-10-06 手记(`design/research/playnote.md` 第 14-23 行),已登记 [06-待办清单](../gdd/06-待办清单.md)「武器锻造系统」专条。
> **状态**:待用户盘问裁决。文中所有数值只有量纲和参考锚点,全部标注 provisional,终值归 Alpha 收官 M4 数值批统一调整(该批未排期)。
---
## 〇、用户原案逐条对照(提案与原案的关系显式化)
先引原案原文,再说明本提案对每一条是放大、收窄还是替代。**不静默改案**。
**原案一(playnote.md:16-17)**:「剑(普通攻击):通过锻造升级可以增加攻击力,升到最高等级时,还可以增加一些额外的效果。」
→ **提案是放大**。游戏现在已经有"攻击锻造"这个营地消费点(营地花金币,攻击力 +1,可重复买——`game/data/tables/meta.tres:14-18`)。提案把它改造成一条有等级、有成长曲线、有满级特效的"剑"升级路线。方向与原案一致,范围扩大。
**原案二(playnote.md:19-22)**:「长枪与法杖:后续可以增加长枪、法杖等武器,它们的攻击类型要分别变为"穿刺"和"魔法"。同样在最高等级时,也会有一些特殊的效果。……实现武器之间的差异化。」
→ **提案是放大,且承接现役结构**。考证发现:主角的攻击类型字段已经登记在数据表里(`hero.tres:11`,取值 normal/pierce/magic),是 2026-09-18 一个前置批次立好的、当前没有数值效果的休眠轴。提案直接唤醒这根轴来承载"武器决定攻击类型",不需要新建任何类型系统。差异化的深度(武器是标签还是实体)是本提案第三节的三个备选案。
**原案三(playnote.md:23)**:「同样的护甲,我们也可以做成不同的护甲,然后去做升级,一开始我们只有轻甲,提升只会提升我们的 AC 值;但是在最高等级的时候,我们就可以拿到不同的额外效果;解锁魔法甲或者重甲之后,我们得到的基础 AC 值可能是不一样的,也可以通过提升来提高它的 AC 值,最后还有一些不同的额外效果」
→ **提案收窄一处、放大一处**。收窄:原案读起来像"换甲型立刻改变战斗手感"。考证后必须说清——敌方的攻击现行不带类型、不查克制矩阵(`game/core/damage_controller.gd:19` 单据类型栏允许空串、`damage_controller.gd:513` 空串恒不查矩阵),所以换甲型在"克制"这个维度上暂时没有任何数值效果。甲型差异在现行边界下玩家唯一能立刻感知的就是基础 AC 不同。提案把这一点写成显式边界,而不是含糊承诺。放大:三种甲各自的基础 AC、各自独立的升级路线、各自的满级特效,都是原案的直接承接与展开。
**成长曲线反馈(playnote.md:5,同日原文)**:「一开始不能让角色的成长系数太高。比如在没经过升级之前,你的成长系数是跟不上关卡怪物难度提升的;但是后续能力解锁之后,成长系数才能匹配得上」
→ **提案第六节正面回应**:锻造的成长曲线形状与解锁节奏,就是为这条反馈服务的。
---
## 一、现状事实基准(本提案全部论断的依据,2026-10-07 逐条复核)
以下六条是提案的对齐基准,全部经过代码级复核。引用格式 = 文件:行号。
| # | 事实 | 出处 |
|---|---|---|
| F1 | 攻击力提升现有两个来源,都是直接加数字,没有"武器"这个实体:①营地属性锻造(攻击锻造 +1 / 生命锻造 +3 / 护甲锻造 +1,单次价 20 金币、每次涨价 150%)②关卡内商店货架(六行共享池+乘法价格公式,`game/core/config_db.gd:329-334` 现役访问器)。商店里还有一组旧的三行商品定义(`shop.tres:36-57`),只在对照模式承载,属遗留(`game/data/schemas/shop_table.gd:16`、`shop.tres:107-109`) | `meta.tres:7-25`、`shop.tres:68-94` |
| F2 | 主角攻击类型轴**已存在、休眠中**:`hero.tres:11` 值为 "normal",字段枚举 {normal, pierce, magic}(`hero_table.gd:13`)。战斗段主角基础攻击按此查克制矩阵。棋盘上的穿刺/魔法直伤奖励件走同一张矩阵但必中全额不掷点(`battle_orchestrator.gd:830` 注、`:846-854`)。**克制矩阵已经是 3×3 九格满格**(`settlement.tres:31-47`:普通/穿刺/魔法 × 轻甲/魔法护甲/重甲)。专长里的三个条件值(pierce_vs_light / magic_vs_heavy / magic_vs_magic)是专长的触发条件值、不是矩阵本体——其中 magic_vs_magic 在现行甲型域下永远为假(见第四节裁点 2c)。敌方装甲类型域 {light, ward, heavy}(`enemy_table.gd:110-113`,缺省 light),实际分布:light×14 行 / heavy×4 行 / ward×1 行(`enemy.tres`;L1 全轻甲、L2 只有 Boss 蛛化卓尔精灵是魔法护甲、L3 灰矮人族四行重甲)。敌方攻击无类型、不查矩阵(`damage_controller.gd:19/:513`)。克制矩阵的定义文档 = [战斗结算](../gdd/systems/战斗循环/战斗结算.md)与[敌人系统](../gdd/systems/战斗循环/敌人系统.md) | 见左 |
| F3 | 主角护甲现状:AC(护甲等级,掷点减伤判定用)单值现役生效(`hero.tres:9` 值 10,判定消费 `battle_orchestrator.gd:172`);**甲型结构位已在册休眠**(`hero.tres:10` armor_type="light",`hero_table.gd:12`)——休眠原因是敌方攻击不查矩阵,属结构性而非数值性(《敌人系统》主角字段表注记)。甲型域三值 = {light, ward, heavy}。AC 现有提升渠道 = 营地护甲锻造 +1 / 商店货架护甲件 / 局内奇物属性件 | 见左 |
| F4 | 局内属性件:奇物三分类里的"属性值提升"分类 = 生命上限 / AC / 攻击三轴,进冒险加算区,关间不清零([奇物](../gdd/systems/冒险循环/奇物.md) §1.2,分类封闭:"只有这三项,多一项就要走文档修订")。它与 F1 的营地/商店构成"账号层永久 + 局内单冒险"两层结构,现役并存 | `design/gdd/systems/冒险循环/奇物.md` |
| F5 | 相邻系统:营地三个柜台(属性锻造 / 道具工坊 / 奖励格图鉴,[元进度](../gdd/systems/跨局循环/元进度.md));商店经济两个价格参数 provisional 在册;效果引擎已落地——效果类型闭集 24 种(`effect_engine.gd:31-35`,源码注记"23"系笔误),武器满级特效优先复用现役效果类型,需要新效果类型的部分=实装批的代码面 | `design/gdd/systems/跨局循环/元进度.md` |
| F6 | 成长曲线反馈原文见第〇节 | `playnote.md:5` |
---
## 二、范围与不做什么(红线)
1. **纯文档**:零代码、零数据表改动、零数值投值。本提案全部表格值只有量纲与锚点。
2. **不占排期**:提案裁决通过后实装另立批次,本提案不在路线图预占实装卡。
3. **不动现役系统**:第十节"迁移面"只描述改造方案,不执行。
4. **白话**:全文按文档规范用语纪律写作,不自造机制名词;武器/甲的正式名字本身是裁点之一,随裁决定名后才登记术语表。
5. **不与奇物既有裁决冲突**:凡涉及属性值提升分类或获取渠道的地方,显式引用《奇物》现行口径并说明关系(见第五节末)。
---
## 三、武器实体化程度(本提案最核心的裁点)
**这一节回答的问题**:"武器"在游戏里到底是什么东西?是攻击力数字旁边的一个标签,还是玩家能看见、能持有、能更换的一件装备?三个备选案按实装量从小到大排列,**每一案都回答两个通用必答题**(携带几把、什么时候能换)。
### 案甲:纯升级路线——"武器"只是攻击锻造这条路线的新名字
**做法**:营地攻击锻造改名为"武器锻造",从"花钱买 +1"改成一条等级路线(1 级到上限,每级攻击力按成长曲线上涨);玩家在营地随时选择武器类型(剑=普通 / 长枪=穿刺 / 法杖=魔法),类型写进现役的 attack_type 字段;到达满级解锁该类型的专属特效。
- 与现有系统的关系:直接吸收现役攻击锻造行(`meta.tres:14-18`);与局内奇物属性件并存(两层现役结构不变);商店货架不动。
- 携带数:单持——它本质就是一个字段,一次只有一种类型在身。
- 换械时机:营地内任意时刻可换,零成本。
**优点**:实装量三案最小(一条等级数据+一个字段切换+特效挂点);与现役"营地永久强化换攻击类型 = 改字段"的既有设计注记逐字同源(`hero.tres:25-27` 注记)。
**缺点(为什么不够)**:"武器"没有实体感——玩家看到的只是数字和伤害类型的区别。原案的核心诉求是"实现武器之间的差异化"(playnote.md:22),甲案给的是"一条路线+三个标签",差异化感知最弱。另外满级特效只能挂在类型上:换类型=特效跟着换,三件武器不可能各自满级并存。
### 案乙:武器槽实体——武器是一件装备
**做法**:新增"武器"装备位。武器是有编号、有等级、有类型、有特效的实体;玩家持有武器库、装备其中一把;每把武器的等级独立。
- 与现有系统的关系:现役攻击锻造行改造为"初始剑"的等级路线;新增一种实体类型——存档结构、营地界面、装备逻辑全部新做;还要新增一段说明:武器不属于奇物三分类的任何一类(它不是单局获得的奇物,是跨局装备)。
- 携带数:单持(一生主械);若做多持=双武器轮换,代价见通用必答。
- 换械时机:营地内换;战斗中禁换(理由见通用必答)。
**优点**:差异化感知最强;满级特效有清晰的承载主体;未来扩展面宽(武器稀有度、词条、分解重铸都有地方挂)。
**缺点(为什么不推荐现在做)**:实装量三案最大——本项目目前没有任何"装备"概念,为三把武器单开一套实体系统(库存、存档域、装备界面),投入超出"武器差异化"这个原案诉求所需的复杂度;且这个决定不易回退(实体一旦进存档,删实体=存档迁移)。若未来确需装备系统,丙案是它的可逆前站。
### 案丙(推荐):折中——"当前武器"单选 + 每件武器一条独立成长路线
**做法**:营地武器锻造柜台呈现三件武器(剑/长枪/法杖)。每件武器有自己的等级(1 到上限)、自己的攻击成长曲线、自己的满级特效。玩家指定其中一件为"当前武器"出场——类型由武器决定(选长枪=穿刺),写现役 attack_type 字段。三件武器的等级各自独立保留,换"当前武器"不丢任何进度。
- 与现有系统的关系:现役攻击锻造行 = 剑路线的前身(吸收改造,见第十节迁移面);存档面 = 三行等级数字 + 一个当前选中标记,**没有实体列表、没有库存**;生命锻造行的处置见第七节裁点 5a。
- 携带数:单持(同一时刻只有一件武器出场)。
- 换械时机:营地内随时换,切换不收费。理由:等级都是玩家花资源练出来的,切换只是决定"今天带谁出门",二次收费会惩罚尝试性构筑,与成长曲线反馈"能力解锁后才能匹配关卡难度"的诉求相逆(玩家需要低成本试错来找到当前关卡匹配的武器)。
**优点**:差异化感知接近乙案(三件武器各有名字、等级、特效,玩家分得清);实装量中等(无库存管理面);数据面是现役 meta 表锻造行族的直接扩形(加列,不是新表);"选哪把武器"天然承载类型切换,attack_type 轴的营地换型口径原样生效。
**缺点**:比甲案多两组等级数据与界面;武器库在界面上要克制呈现(三张卡,不是背包)。
**为什么推荐丙**:它在"差异化感知"与"实装复杂度"之间取中点,且**两向可逆**——砍掉独立等级就退化成甲案,加上库存实体就升级成乙案。裁决者可以先取丙,日后按玩家反馈滑向两侧,不需要推倒重来。
### 通用必答一:携带数——单持还是多持?
**呈交:单持**(三案同答)。多持(同时带两把、战斗内轮换)的淘汰依据:
1. 收益小——多武器轮换的战术价值是"面对不同甲型敌人换着打",但这个价值棋盘上的穿刺弹/魔法矢直伤件已经承载(`battle_orchestrator.gd:846-854`,必中全额、自己查矩阵行),轮换武器的增量收益有限。
2. 代价大——战斗内换武器要新开一套动作语义(算不算行动?耗不耗行动点?战斗结算的流程与伤害单据九栏都没有"中途改类型"的位置,`design/gdd/systems/战斗循环/战斗结算.md` 战斗段一节),牵动行动经济。
### 通用必答二:换械时机——营地还是战斗中?
**呈交:营地内可换,战斗中禁换**(三案同答)。依据:战斗段结算次序固定(主角先手→逐敌还手→地图账),伤害单据的类型在开单时声明、管线内不变;战斗中换械=给结算管线新开一个"类型可变"维度,收益(每场战斗微调克制)不成比例于管线改动与测试面。这个边界与"克制应对从局内攒弹药改为冒险前配型"的既有定稿方向一致(`战斗结算.md`:原"挖掘攒充能换攻击分量"的弹药系统 2026-09-19 已整体退役,克制策略归冒险前配置)。
---
## 四、攻击类型轴关系
**这一节回答的问题**:武器带来的攻击类型,和棋盘上现存的穿刺/魔法直伤奖励件,是什么关系?
### 现状(复核结论)
游戏里现在有两处"类型":①主角基础攻击的类型(attack_type 字段,休眠中,F2)——决定主角先手攻击查克制矩阵的哪一行;②棋盘格面资源的类型(穿刺弹/魔法矢等奖励件)——必中全额、自己查矩阵行。两处消费**同一张 3×3 克制矩阵**(`settlement.tres:31-47`,九格满格,结构冻结)。
### 裁点 2a:共存方式
- **甲=叠加(推荐)**:武器类型只改主角基础攻击分量查矩阵的行;格面直伤件照旧独立。两根轴互不干涉、共用一张矩阵。零新机制。
- **乙=替代**:武器类型接管一切类型化伤害(选法杖后穿刺弹也按魔法算)。**淘汰依据**:格面资源是地图侧的独立九型字典(定义文档 [地图战斗资源](../gdd/systems/战斗循环/地图战斗资源.md)),把它的类型语义绑到武器上=两个系统强耦合;且没换法杖的玩家,魔法矢这件奖励就没有存在意义了——砍掉内容池换不来任何设计收益。
- **丙=互斥**:选了某武器,相同类型的格面件不再出现(法杖玩家抽不到魔法矢)。**淘汰依据**:没有设计依据的池子收窄。同类型叠加是构筑加深不是冗余——魔法武器+魔法矢=魔法构筑的一致性,正是差异化的价值所在。
**呈交甲,并要求把一句防混述声明写进 [战斗结算](../gdd/systems/战斗循环/战斗结算.md) 定义文档**:「武器类型(主角基础攻击的属性)与格面资源类型(棋盘直伤件的属性)是两根独立参数,只共用同一张克制矩阵。」这与战斗结算既有纪律同源(攻击类型是伤害分量的固有属性,定义里不含任何棋盘来源)。
### 裁点 2b:要不要加第四种类型或第四种甲型?
- **甲=不加(推荐)**:矩阵九格结构冻结是既有条款(`战斗结算.md` 参数表"键集 3×3 满格结构冻结")。武器三型正好映射现有三行,矩阵零改动。
- **乙=加第四甲型**(若原案的"魔法甲"不映射现有 ward):触发矩阵扩成 4×3、战斗结算结构冻结条款修订、敌方甲型数据面重配、专长条件值族扩充——为一型甲付出全链成本。**淘汰依据**见裁点 3a:现役 ward 的中文正名就是"魔法护甲",原案"魔法甲"可直接对号,第四型没有可感知的差异点。
### 裁点 2c:专长联动与死条件清理
**专长会被武器选择影响**:专长(改规则的奇物件)里有一族"克制面强化"件,条件是"当前对局出现某某对某某的克制 matchup"。武器锻造唤醒类型轴后,玩家选什么武器会改变主角攻击的 matchup 行——选长枪会激活穿刺系专长的价值。这是设计意图内的联动,不是缺陷。
**死条件现状**:`feats.tres:29-31` 有一件专长条件值为 magic_vs_magic(魔法打魔法甲)。现行甲型域是 {light, ward, heavy},没有"magic"这个甲型,所以对局中的 matchup 字符串永远不会是 magic_vs_magic——**这件专长在现行数据下永远无法触发,等于一张废卡**。三个处理方案:
- **甲=删行**(随实装批执行):先例=2026-10-06 内容数据驱动批删除旧挂点枚举(06-待办清单在册)。代价:若日后甲域真的扩第四型,要重新加回。
- **乙=保留+文档注记**:零代码。代价:一张永假废卡继续占专长池配额,玩家视角是坏体验。
- **丙=改值复活(推荐,归实装批执行)**:把条件值改成活条件——候选 magic_vs_ward(魔法打魔法护甲;现役 L2 Boss 蛛化卓尔精灵正是 ward,`enemy.tres`),一行 value 字段的改动把废卡变成"Boss 战专长"。代价:改专长行为=行为变更,必须随实装批一起做、配行为测试;且本提案阶段不改值(纯文档边界)。
---
## 五、护甲实体化
### 现状(复核结论)
AC(护甲等级)单值现役生效(`hero.tres:9`=10;敌方攻击掷点对它的减伤判定在 `battle_orchestrator.gd:172` 合流入参)。甲型结构位已登记休眠(`hero.tres:10`,域 {light, ward, heavy})。休眠原因=敌方攻击不带类型、不查矩阵,是结构性的(《敌人系统》主角字段表注记:"轴生效待敌方技能攻击类型批"——这个批次在敌方系统侧有登记方向,未排期)。
### 裁点 3a:甲域定名映射——"魔法甲"是什么?
- **甲=魔法甲就是 ward(推荐)**:现役甲域第三型 ward 的中文正名就是"魔法护甲"(《敌人系统》敌方字段表:甲域 {轻甲, 魔法护甲, 重甲})。用户原案的"魔法甲"直接对号入座。零扩域、零扩矩阵、零数据面改动。
- **乙=新造第四甲域**:"魔法甲"作为独立于 ward 的新甲型。触发裁点 2b 乙案的全部成本(矩阵 4×3、结构冻结条款修订、敌方数据面、专长条件值族)。**淘汰依据**:"魔法护甲"和"魔法甲"在玩家语感上是同一个东西,第四型给不出可感知的差异点。
### 裁点 3b:甲型差异的可感面(对原案的显式收窄处)
**必须诚实写清的边界**:敌方攻击现行无类型、不查矩阵(`damage_controller.gd:19/:513`)。所以在现行边界下,换甲型在"克制"维度上没有任何数值效果——"魔法甲怕穿刺打"这类克制反向要等敌方攻击带类型的批次才生效。两个处理方案:
- **甲=现在就落甲型结构(推荐)**:甲型差异以"基础 AC 各异"为现行唯一可感轴(这正是原案明说的诉求),克制反向作为前瞻结构位随轴休眠。理由:①基础 AC 差异本身就有构筑价值(重甲硬、魔法甲便宜灵活之类的取舍);②甲型位是现役代码已留好的扩展缝,现在立结构、敌方攻击类型批到来时零结构改动;③不需要动矩阵就能完整兑现原案。
- **乙=等敌方攻击类型批一起落**:甲型推迟到克制反向能生效时再上。**淘汰依据**:无限期推迟原案明说的"基础 AC 各异"诉求;且把两件独立的事(甲型结构、敌方攻击类型)捆绑排期,违背"实装批另行立项"的本批边界。
**基础 AC 锚点(provisional)**:轻甲 =10(现役主角值,不动);重甲 =12(+2);魔法甲 =9(−1)。量纲依据:现役掷点折扣档为缺口 1-3 打七五折(`settlement.tres:50-51`),每 1 点 AC 的期望减伤约 3.75%量级(`settlement.tres:74` EV 复算锚:AC10 期望减免 21.25%、AC11 25%)。终值全部归 Alpha 收官 M4 数值批。
### 裁点 3c:护甲的升级路线结构
- **甲=每型甲一条独立等级路线(推荐)**:轻甲路线=现役护甲锻造行改造(每级 AC +1);解锁重甲/魔法甲后各自从 1 级练起、各自升级、各自满级特效;"当前甲"单选与"当前武器"单选同构。与原案"一开始只有轻甲(只提 AC)→解锁后基础 AC 各异→各自可续升→各带满级效果"逐句对齐。
- **乙=单一 AC 路线+甲型当门槛**:AC 一条轨,甲型只是轨上的里程碑(练到 3 级才能换重甲)。**淘汰依据**:三型基础 AC 不同,一条数字轨表达不了三型各异的基础值;原案明说"解锁之后基础 AC 值可能是不一样的"。
### 与《奇物》现行口径的显式关系(红线第 5 条)
《奇物》现行口径:属性值提升分类 = 生命上限/AC/攻击三轴**封闭**("只有这三项,多一项就要走文档修订",§1.2);获取渠道 = 局内(奖励节点/商店训练/共享池),关间不清零;渠道开关表已有用户定案。
**本提案的关系 = 分层并存,互不侵入**:武器/护甲锻造动的是**账号层基础值**(营地永久强化,冒险开始时经参数面传给战斗——《元进度》执行口径:开局按存档内永久强化状态算好覆盖参数逐字段传入);奇物属性件动的是**单次冒险加算区**(关间不清零、冒险结束清零——[冒险结构](../gdd/systems/冒险循环/冒险结构.md) 统一冒险加算区四轴)。本提案不扩奇物三轴、不动渠道开关表、不往局内池加任何东西——武器锻造不是奇物,是永久强化的内容改造。入战 AC 的三层语义清晰可加:甲型基础 AC + 营地甲路线等级加值 + 局内加算区累加。
---
## 六、成长曲线定位(回应 F6)
用户反馈原文(playnote.md:5):前期成长系数不能太高——没升级前跟不上怪物难度提升,能力解锁后才能匹配。武器锻造恰恰是执行这条曲线诉求的最佳载体,因为它同时握着两样东西:**数字成长的速率**(每级加多少)和**能力解锁的节奏**(什么时候拿到新武器/新甲/满级特效)。
### 裁点 4a:成长曲线形状
- **甲=前缓后陡(推荐)**:低等级每级攻击增量小(+0 或 +1 量级),高等级每级 +1 或 +2 量级。前期刻意压数字——玩家靠挖掘技巧过关(这正是 F6 要求的"没升级前跟不上",是特性不是缺陷);能力解锁(新武器、满级特效)成为曲线的台阶。
- **乙=线性每级 +1**:现役锻造就是线性。**淘汰依据**:与 F6 反馈零呼应——数字匀速涨,"能力解锁"的节奏感全靠特效单腿支撑,曲线本身不参与。
- **丙=阶梯解锁制**:平时每级 +0,每两级跳 +2。**淘汰依据**:数字体感跳跃,中间等级像白升级;provisional 调参空间最小(只有跳变点可调)。
**呈交甲,但只锁形状方向不锁数值**——曲线参数全体 provisional 归 M4 数值批。
### 裁点 4b:解锁节奏从哪来
- **甲=锻造内自闭环(推荐)**:新武器/新甲型的解锁条件在锻造系统内部(练满前一档或花一次性解锁价,见第七节);满级特效是每条路线的终点奖励。这是原案的精神("最高等级时拿到额外效果""最高等级时解锁重甲/魔法甲")。
- **乙=绑关卡进度**:L1 通关解锁长枪之类。**淘汰依据**:①把永久强化做成关卡奖励,与"营地 = 消费钥石/金币的成长枢纽"的现役定位(《元进度》营地定义)冲突;②首通关卡前玩家零武器选择,第一局体验被绑死在剑上——而第一局恰恰是教学局。
### 裁点 4c:与难度曲线的匹配义务(显式登记,不在本批执行)
锻造改的是账号层成长,会直接平移全部关卡的通关率——这是数值敏感变更。**显式登记义务**:实装批必须带改前/改后同随机种子配对读数验证难度影响;统一调整归 Alpha 收官 M4 数值批(未排期)。本提案零数值投值、零模拟跑批(纯文档批零测试纪律)。
---
## 七、经济与解锁
### 裁点 5a:柜台承载——武器锻造放哪?
现状:营地三个柜台 = 属性锻造(生命/攻击/护甲三档直购)/ 道具工坊 / 奖励格图鉴(《元进度》营地三柜台节)。
- **甲=就地改造属性锻造柜台(推荐)**:柜台改名"武器与护甲锻造"——攻击行改造为武器锻造区(三件武器路线),护甲行改造为护甲锻造区(三型甲路线),**生命行原样保留**(原案没有覆盖生命,保留是唯一不失义的处理)。三柜台结构不动,营地界面零重排。
- **乙=新开第四柜台**:武器锻造独立成柜,属性锻造柜台的攻击/护甲两行退役。**淘汰依据**:属性锻造被拆剩一行生命,柜台语义残废;营地从三柜台变四柜台=界面结构改动;"锻造"两个字同时出现在两个柜台(外加商店货架的"攻击锻升","锻"字已有三处)——词汇更乱。
- **丙=塞进道具工坊**:**淘汰依据**:工坊的消费货币是通关次数/钥石(`meta.tres:39-88`),与武器锻造的金币定价体系不同源;工坊职责已有明确归属(秘宝解锁与同调装配,《元进度》形态沿革节),塞武器=职责混装。
### 裁点 5b:等级上限与定价结构
- **等级上限**:每件武器/每型甲各自封顶(provisional 锚点 = 5 级量级)。量纲理由:满级特效要"值得等",级数太多会稀释解锁节奏(与 F6 冲突)。终值归 M4。
- **定价结构**:沿用现役几何递增——每级价格 = 基础价 × 150%^(已购级数)(现役参数:单次 20 金币、每级涨 150%,`meta.tres:11-24`;《元进度》定价曲线几何递增是已拍板条款)。甲型解锁 = 一次性解锁价(量纲 ≈ 中段几级锻造的花费,provisional)。全部终值归 M4。
- **货币裁点**:
- **甲=纯金币(推荐)**:与现役属性锻造同币——原案语义是"攻击力提升改造",即同一笔钱换个花法,不是新经济。
- **乙=金币+钥石双币**(解锁新武器/甲用钥石):钥石现役 = Boss 击杀掉落、用于直购强化(`meta.tres:26-38`)。**淘汰依据**:解锁节奏被 Boss 掉落概率绑死,与裁点 4b"解锁在锻造内自闭环"矛盾;双币定价面翻倍。
- **丙=纯钥石**:**淘汰依据**:与"攻击力提升改造"直接相逆(现役攻击锻造吃金币),等于换了一个系统而不是改造它。
### 裁点 5c:材料经济——金币之外要不要材料/掉落物?
**现状钩子**:效果引擎有效果类型 grant_material(`effect_engine.gd:32`;`feats.tres` 四件专长在用,形态=局内材料计数器,如"雷区图谱")。注意:这个钩子现役是**局内**计数器,不是账号层库存——提案若引入账号层锻造材料,是全新经济面(存档域、获取渠道、囤积规则全要新建)。
- **甲=纯金币(推荐)**:零新经济面。原案全文只字未提材料;武器差异化的价值轴是类型与特效,不是采集刷料。
- **乙=金币+材料**:敌杀掉落锻造材料,高阶解锁或满级特效需要材料(grant_material 账号层化)。**代价(不淘汰,并列呈交)**:新存档域+新掉落配置+囤积/回收规则;且"局内材料计数器"与"账号层锻造材料"同名易混,呈现层必须区分两个概念。
- **丙=纯材料**:金币买不了武器,只有材料能锻。**淘汰依据**:与"攻击力提升改造"直接相逆(把现有金币消费点脱钩);双货币双定价体系,实装量三案最大。
### 裁点 5d:配比预设挂起批的边界注记(强制条目)
冒险前资源配比预设批已于 2026-10-05 用户令挂起冻结(06-待办清单在册:"重启须用户另行发令",八项裁决与任务书全部冻结保留)。**边界声明**:该批的预算点数、容量柜台、克制注记三面都会直接受"武器类型轴"与"柜台结构"变更影响——本提案**不预设该批的重启口径、不占用其任何冻结裁决、不改其冻结文本**。若提案裁决通过且实装落地后该批重启,其任务书须显式核对两处交汇面:①预算包络是否把武器类型计入克制注;②容量柜台与武器锻造柜台(同在营地)的资源竞争关系。同理,裁点 2c 若裁"改值复活 magic_vs_ward",也只登记不预设——玩家可控类型增多会改变配比博弈面,该影响归配比批重启时统一核对。
---
## 八、满级特效清单框架
**原则**:每件武器/每型甲满级各 1-2 条特效;逐条标注数据驱动兼容性——**复用现役效果引擎效果类型(24 种闭集,`effect_engine.gd:31-35`)= 实装批零新效果代码**;需要新效果类型或新参数位的 = 实装批代码面,显式标出。
下表是**框架示意**(每格给量纲方向),不是承诺清单——终选清单与数值归实装批任务书+M4 数值批:
### 裁点 6:特效清单的实现深度(三案并列)
- **甲=全复用现役效果类型**:只从零代码候选里选(破甲/先手连击/开局魔法矢/反震/护盾),剑与轻甲改用复用型特效或减配。代价:清单表现力受限——"暴击面扩大""折扣档放缓"这类现役表上恒定的参数做不进特效。
- **乙=复用为主+三条新参数位(推荐)**:上面框架表的完整形态——四条零代码、三条需新参数位(暴击面/折扣档/护盾量进战斗开场参数),后者是实装批的小改代码面(改表值常量读法,不加效果类型词)。代价:实装批多三处代码改动与对应测试。
- **丙=引入新效果类型**:为特效往引擎效果类型闭集加新词。**淘汰依据**:效果类型闭集是高代价变更面(加载校验、文档词表、回归测试三处连带),本框架所有候选特效都能用现有词表或参数位表达,无一真正需要新词——为表达便利付引擎级代价不成比例。
| 件 | 满级特效候选(量纲方向) | 数据驱动兼容性 |
|---|---|---|
| 剑 | 破甲:命中重甲时克制修正额外 +1 点量级 | 复用现役——modify_ticket 效果类型+matchup 条件算子均已在册(`effect_engine.gd:32/:46`),零新代码面 |
| 剑(第二条) | 暴击面扩大:暴击骰面 −1 量级 | **需新参数位**——暴击面现役是表上恒定值(`settlement.tres:52`),武器级可变=实装批小改(标红) |
| 长枪 | 先手连击:战斗开场追加一次普攻量级的攻击 | 复用现役——attack_segments 效果类型在册(`effect_engine.gd:32`),零新代码面 |
| 法杖 | 开局魔法矢:每场战斗开场自动对最前敌人放一次魔法直伤(必中全额量级) | 复用现役——spawn_spell 效果类型在册,零新代码面(次数/回合数 provisional) |
| 轻甲 | 灵巧:掷点折扣临界档再缓一档量级 | **需新参数位**——折扣档现役读表恒定(`settlement.tres:51`),标红 |
| 重甲 | 反震:被命中时对攻击者反贴 1 点量级伤害 | 复用现役——spike 效果类型在册,零新代码面 |
| 魔法甲 | 护盾:每场战斗开场自带若干层护盾(X 层量级) | 复用现役——shield 效果类型在册;护盾层数进战斗开场参数=实装批桥接面(标黄) |
**呈交立场**:特效清单走"复用为主"——上表七条中四条零新代码、三条需新参数位/桥接(标红/标黄)。需要新**效果类型**(往引擎闭集加词)的方案一件都没有:引擎闭集动词表是高代价变更(校验面+文档面+回归面),本框架刻意避开。
---
## 九、数值框架(全部 provisional)
**总承诺**:本提案零数值投值。下表全部是量纲与锚点,终值统一归 Alpha 收官 M4 数值批(未排期)。实装批立项前不动任何数据表行值。
| 项 | 量纲/锚点 | 锚点出处 | 归宿 |
|---|---|---|---|
| 武器成长曲线 | 前缓后陡:低级每级攻击 +0/+1 量级,高级 +1/+2 量级 | 现役攻击锻造 +1/次(`meta.tres:16-17`);主角基础攻击 =2(`hero.tres:8`) | M4 |
| 甲型基础 AC | 轻 10(现役不动)/ 重 +2 / 魔法甲 −1 | 主角 AC=10(`hero.tres:9`);每 1 AC ≈ 3.75% 期望减伤(`settlement.tres:74` EV 锚) | M4 |
| 等级上限 | 每件/每型各自 5 级量级 | 满级特效节奏需要(F6) | M4 |
| 升级定价 | 基础价 20 金币 × 150%^(级数),几何递增 | 现役参数沿用(`meta.tres:11-24`、《元进度》几何递增条款) | M4 |
| 甲型解锁价 | ≈ 中段几级锻造花费的一次性价 | 同上量纲系 | M4 |
| 满级特效值 | 各 +1 点/若干层量级,逐条配 | 第八节框架表 | M4 |
| 数值验证义务 | 实装批改前/改后同种子配对读数;统一调整归 M4 | 裁点 4c | M4 |
---
## 十、迁移面与裁点汇总
### 迁移面(只描述方案,不执行——红线第 3 条)
1. **`meta.tres` forge_products(`meta.tres:7-25`)**:攻击行 → 武器路线改造(吸收,随裁点 5a 裁决改名);护甲行 → 护甲路线改造;生命行保留原样。同表 boss_keystone / workshop_items / conversion / attune_refresh_upgrade 四行族零触碰。
2. **`shop.tres` pool_shelf 现役六行(`shop.tres:68-92`)**:局内货架的"攻击锻升/护甲锻升"与营地武器锻造是两层并存(局内层进冒险加算区、账号层是永久强化——现役分工:《冒险结构》统一冒险加算区节、《元进度》执行口径节)。**提案不动行集**;唯一迁移裁点 = 现名是否去"锻"字防混淆(甲=保留现名零改动 / 乙=改"训练·攻击"式中性名——呈现面文字变更,归实装批呈现细节,随裁决)。
3. **`shop.tres` products 行族(`shop.tres:36-57`)**:**遗留代码路径**(只在对照模式承载,`shop_table.gd:16`、`shop.tres:107-109`)。本提案零触碰;它的退役是既有在册义务(归对照锚换代批),不是本提案新增。
4. **`hero.tres` 两根轴(`hero.tres:10-11`)**:唤醒语义 = 营地选中的武器/甲型写轴。这与 2026-09-18 营地扩展前置批的既有设计注记(`hero.tres:21-27`:"营地永久强化换攻击类型 = 改此字段")逐字同源——**不是新设计,是既有预留位的启用**。
5. **`feats.tres` magic_vs_magic 死行(`feats.tres:29-31`)**:三案随裁点 2c 裁决(删/注记/改值复活),执行归实装批。
6. **术语登记**:武器/甲型的正式名("魔法甲"="魔法护甲"=ward 之类的定名)随裁决定案后,实装批随批登记 `design/registry/entities.yaml` 术语条目。本提案阶段零登记(名字未定)。
### 全裁点一览表(供盘问轮逐点拍板)
| # | 裁点 | 甲 | 乙 | 丙 | 提案推荐 |
|---|---|---|---|---|---|
| 1 | 武器实体化程度 | 纯升级路线(一条轨+类型标签) | 武器槽实体(装备+库存) | 当前武器单选+每件独立路线 | **丙** |
| 1a | 携带数 | 单持 | 多持(轮换) | — | 单持 |
| 1b | 换械时机 | 营地内可换 | 战斗中可换 | — | 营地内 |
| 1c | 换械是否收费 | 免费 | 小额收费 | — | 免费 |
| 2a | 类型轴共存 | 叠加(两根独立轴共用矩阵) | 替代(武器类型接管) | 互斥(同类型件不出现) | 叠加 |
| 2b | 矩阵扩维 | 不扩(九格冻结) | 加第四甲型 | — | 不扩 |
| 2c | 死条件 magic_vs_magic | 删行 | 保留+注记 | 改值复活(magic_vs_ward) | 丙(执行归实装批) |
| 3a | 甲域定名 | 魔法甲=ward(现役域对号) | 新造第四甲域 | — | 甲 |
| 3b | 甲型可感面 | 基础 AC 差异先行,克制反向留结构位 | 等敌方攻击类型批一起落 | — | 甲 |
| 3c | 护甲升级结构 | 每型独立路线 | 单轨+甲型当门槛 | — | 甲 |
| 4a | 成长曲线形状 | 前缓后陡 | 线性 | 阶梯 | 甲(只锁方向,值归 M4) |
| 4b | 解锁节奏 | 锻造内自闭环 | 绑关卡进度 | — | 甲 |
| 5a | 柜台承载 | 就地改造属性锻造柜台 | 新开第四柜台 | 塞进道具工坊 | 甲 |
| 5b-1 | 货币 | 纯金币 | 金币+钥石双币 | 纯钥石 | 纯金币 |
| 5c | 材料经济 | 纯金币 | 金币+材料 | 纯材料 | 纯金币 |
| 6 | 满级特效 | 全复用现役效果类型 | 含新参数位(三条标红) | 引入新效果类型 | 乙(复用为主,零新效果类型) |
| 8a | 货架现名 | 保留"攻击锻升"现名 | 改"训练·攻击"式中性名 | — | 随实装批呈现细节定 |
---
## 附:本提案的裁决方式
每个裁点独立拍板,互不绑死(推荐列只是提案立场,不是打包方案)。裁决结果落 06-待办清单「武器锻造系统」专条与路线图卡③行;裁决通过后实装批另行立项,以本提案+裁决记录为任务书输入。
+37
View File
@@ -206,6 +206,29 @@ rows = [{
"armor_class": 8
}, {
"level_index": 2,
"node_depth": 5,
"enemy_id": "giant_spider",
"display_name": "巨蜘蛛巢群",
"unit_count": 2,
"unit_count_max": 3,
"hp": 26,
"atk": 1,
"atk_min": 1,
"atk_max": 2,
"pool": [{
"skill_id": "attack",
"weight": 6
}, {
"skill_id": "bite",
"weight": 2
}, {
"skill_id": "charge",
"weight": 1
}],
"armor_type": "light",
"armor_class": 2
}, {
"level_index": 2,
"node_depth": 6,
"enemy_id": "giant_spider",
"display_name": "巨蜘蛛巢群",
@@ -587,3 +610,17 @@ rows = [{
; 「危险来自雷,不来自杂兵」:杂兵垫刀减半,雷直伤 6/8/8 维持痛感;L2/L3(atk 3 系)本刀不动。
; 全旧带读数随新尺作废重测归本批。
; 调参二补充:上述八行 atk 区间 1-3→0-2(中点恒等期望当量锚不变式——atk=1 需区间中点同步 1;0=掷点空刀,保随机手感)。
;
; 混编遭遇首批投放批(2026-10-07 迭代 18 卡⑤——任务书 v1.2 裁点全裁 P1-P4 甲;机制前置=敌人表行集多行批
; 已落籍 9cc4b8b):首个混编遭遇行落表 = (2,5) 双行行集〔R6 行序契约:同坐标两行文件内相邻、
; 行序=声明序=生成序——resolver 返回序/生成序/断言面全依赖文件行序〕:
; 行 1 = 既有 熊地精重击手 (2,5,bugbear)(行值零变更);
; 行 2 = 新增 (2,5,giant_spider) 巨蜘蛛巢群——行值整行复制 (2,6) 巢群行(P4 甲零数值新增:unit_count 2/
; unit_count_max 3/hp 26/atk 1/atk [1,2]/池 普攻6·撕咬2·蓄力1/light/armor_class 2),
; 行序=重击手在前(默认目标=前排坦克 ac 8,蜘蛛后排输出——强弱搭配形态)。
; 设计意图(P1 甲单点试水):「巨蜘蛛+熊地精」同场混编——生产内容实打卡①「每行一骰数量骰」交付面
; (重击手定值不骰、蜘蛛掷 [2,3],同场两种数量语义并存);静态最坏骰和 = 1+3 = 4 ≤ ENEMY_ROWSET_INSTANCE_MAX
; (spawn 期守卫内)。
; 读数预期:(2,5) 场敌人 3-4 只(3=重击手 1+蜘蛛 2,4=蜘蛛掷 3);L2 难度带位移读数随 Alpha 收官 M4 数值批
; 统一执行(07 在册义务——MC 取证跑批届时另报批,本批零跑)。禁区排查:巨蜘蛛首遇位 (2,4)「固定 2 不加骰」
; 零触碰、Boss d9 零触碰、跨关混编禁令过(两敌种首遇关均 ≤L2)、既有 19 行现值零变更。
+19 -2
View File
@@ -3060,6 +3060,7 @@ func _smoke_skill_pool_data() -> void:
"2_0_bugbear": {"attack": 6, "lunge": 1, "heavy": 2},
"2_1_bugbear": {"attack": 6, "lunge": 1, "heavy": 2},
"2_4_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
"2_5_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
"2_5_bugbear": {"attack": 5, "lunge": 2, "heavy": 2},
"2_6_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
"2_7_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
@@ -3083,7 +3084,7 @@ func _smoke_skill_pool_data() -> void:
got[String(entry.skill_id)] = int(entry.weight)
if got != expect_pools[rk]:
pools_ok = false
check(pools_ok, "十九行九种池模板 = 建议池行值((L,D,enemy_id) 三元键逐行精确比对——2026-10-07 行集多行批口径;L1 地精 9/1 · 熊地精 6/2/2 · 酋长 6/2/2;L2 熊地精 6/1/2 · 蜘蛛 6/2/1 · 重击手 5/2/2 · 蛛化卓尔精灵 6/2/2/2〔(2,9)——商店房批 Boss 重编号〕;L3 灰矮人 6/2/2 · 钩爪恐魔 6/2/1 · 重装手 5/2/2 · 石君王 6/2/2〔earth_pulse·(3,9)〕——全部 provisional;三 Boss 池尾 +1 门控条目〔quake_smash/venom_curb/rockslide 权重 2+unlock_hp_pct 50——迭代14④ T5〕;混编行集同坐标多行各一池合法,零内容期每坐标仍恰一行)")
check(pools_ok, "二十行九种池模板 = 建议池行值((L,D,enemy_id) 三元键逐行精确比对——2026-10-07 行集多行批口径;L1 地精 9/1 · 熊地精 6/2/2 · 酋长 6/2/2;L2 熊地精 6/1/2 · 蜘蛛 6/2/1 · 重击手 5/2/2 · 蛛化卓尔精灵 6/2/2/2〔(2,9)——商店房批 Boss 重编号〕;L3 灰矮人 6/2/2 · 钩爪恐魔 6/2/1 · 重装手 5/2/2 · 石君王 6/2/2〔earth_pulse·(3,9)〕——全部 provisional;三 Boss 池尾 +1 门控条目〔quake_smash/venom_curb/rockslide 权重 2+unlock_hp_pct 50——迭代14④ T5〕;混编行集同坐标多行各一池合法——首批投放 (2,5) 双行〔迭代 18 卡⑤:重击手+巢群,新行行值复制 (2,6)〕,其余坐标仍恰一行)")
var basic_count_ok := true
for row in _db.enemy.rows:
var n := 0
@@ -3548,6 +3549,22 @@ func _smoke_level_graph() -> void:
l2_boss_ids[String(r.get("enemy_id", ""))] = true
check(l2_boss_ids.has("drider") and l2_boss_ids.size() == 1 and String(l2_boss_set[0].get("armor_type", "")) == "ward",
"蛛化卓尔精灵 Boss 行集 (2,9) = {drider} 恰一行且首行魔法甲(护甲类型重配批 2026-09-18:关卡 2 唯一非轻甲;商店房批重编号 (2,8)→(2,9);P4 乙 Boss 行集多行合法——零内容期仍单行)")
# ⑦b 定点:首批混编遭遇行集 (2,5)(2026-10-07 迭代 18 卡⑤投放——R6 行序契约运行面:
# 行集两行文件内相邻、行序 = 声明序 = 生成序;静态最坏骰和 Σ(unit_count_max,固定行缺省 = unit_count) ≤ 4)
var l2_mix_set: Array = _db.resolve_enemy_rowset(2, 5)
var mix_shape_ok: bool = l2_mix_set.size() == 2 \
and String(l2_mix_set[0].get("enemy_id", "")) == "bugbear" \
and String(l2_mix_set[1].get("enemy_id", "")) == "giant_spider"
check(mix_shape_ok,
"首批混编行集 (2,5) = 双行且行序 [bugbear 重击手 → giant_spider 巢群](R6 行序契约——文件序 = 声明序 = 生成序,首行默认目标 = 前排坦克;迭代 18 卡⑤投放)")
var mix_sum_max := 0
for r in l2_mix_set:
mix_sum_max += int(r.get("unit_count_max", int(r.get("unit_count", 1))))
check(mix_sum_max <= 4,
"首批混编行集 (2,5) 静态最坏骰和 = Σ(unit_count_max,固定行缺省=unit_count) = %d ≤ 4(行集实例总数守卫同口径——重击手固定 1 + 巢群 [2,3])" % mix_sum_max)
check(int(l2_mix_set[1].get("unit_count", 0)) == 2 and int(l2_mix_set[1].get("unit_count_max", 0)) == 3 \
and int(l2_mix_set[1].get("hp", 0)) == 26 and int(l2_mix_set[1].get("armor_class", -1)) == 2,
"首批混编新行 (2,5,giant_spider) 行值 = 复制 (2,6) 巢群行(P4 甲零数值新增——2-3 只/hp 26/atk [1,2]/light/ac 2;既有 19 行现值零变更)")
# ---- 第三关内容批(2026-09-20)L3 灰矮人矿城断言段 ----
# ⑧ L3 行集结构(复用 L2 九节点图模板——6 战 + Boss + 奖励 + 恢复,真实岔路 4 处)
var l3 := {}
@@ -3635,7 +3652,7 @@ func _smoke_level_graph() -> void:
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
check(int(_db.enemy.rows.size()) == 19, "混编断言段注入行全量还原(表回 19 行——后续断言面零污染)")
check(int(_db.enemy.rows.size()) == 20, "混编断言段注入行全量还原(表回 20 行——首批混编投放后基线行数,迭代 18 卡⑤;后续断言面零污染)")
# 冒烟隔离用全新 RngService(同 master 种子——回放确定性纪律)
+3 -3
View File
@@ -68,10 +68,10 @@
| 迭代 17 | **①敌人表行集多行批(2026-10-05 用户令编入本迭代,纯功能与数值轴四卡之一)**:放开敌人表「同一(关卡序号 × 节点深度)行集恰一敌种」加载期校验(enemy_table.gd:108-112 考证在册),允许同场遭遇混编多种敌人——生成(unit_container spawn 行集受理)/编排(battle_orchestrator/narrator)/断言面全链接通 + GDD 结构冻结面修订先行(敌人系统.md:75/:263)。事实源=06「同深度第二敌种与精英/Boss 编码位」条剩余面(前半已由关卡节点地图 v1.0 消解);前置=技能池实施批已落籍(d3fa887)开工门已解。任务书=`design/research/任务书-敌人表行集多行批-2026-10-05.md`(**v1.1 2026-10-06 联审修订**:F7 勘误 19 行 9 敌种/P1 补遭遇骰交互〔每行一骰·RNG 扩签先报批〕与实例总数≤4 消歧/P3 改裁丙撤投放/新增契约 R6 混编行行序纪律/expect_pools 断言换代入组 D;T0-T8≈3.75d〔T5 撤投后,超软盒预挂,T4 末切分点〕;🔴 契约 6 条;**✅ 裁点全裁(2026-10-06 用户令:P1甲〔Q8/Q9 二裁补全〕/P2甲/P3丙〔Q3 二裁撤投放——一裁乙与首遇教学位纪律三面冲突〕/P4乙 Boss 行亦放开·知情代价六面在册);开工=U0**) | 迭代 15 出口 | **✅ 已全批落码落籍(2026-10-07,主区 merge --no-ff 9cc4b8b,闸全绿+主区复跑全绿〔合并后冒烟 811/0〕,worktree g-plan2-iter17-enemy 分支 iter17-enemy-20261007 基点 e535436,批内提交 a0b06b4(L3 报告)/5b9cf59(甲案裁决)/18cdcb0(T0)/ab5ddad(T1)/8690230(T2)/bc73fa3(T3)/c583940(T4)+收口批;一次 L3 停机=卡⓪改前锚随 worktree 删除丢失不可恢复→用户裁甲案补采改前锚 40 局·总量 80 局明示批准;出口报告=[iter17-enemy-exit-report](design/qa/iter17-enemy-exit-report-2026-10-07.md))**:行集构成纪律三条落码(同坐标多行混编放开含 Boss 行集 P4乙+行序相邻加载校验 R6+实例总数≤4 spawn 守卫 P1甲)+floor 版解析退役全仓统走 ceil 行集数组(P2 甲,工作日志 312 销号)+spawn 行集受理逐行实例化+遭遇骰逐行各掷(Q8——单行行集消费序/次数逐位一致=零内容期随机流零变化)+断言面换代(expect_pools 三元键/双表精确行集契约/L2L3 定点行集口径)+混编正反断言十一条(冒烟六+单测五);文档=敌人系统 v0.15/难度曲线与Boss v0.24/registry/06 状态行;闸=冒烟 811/0(基线 805/0,+6 混编断言)+run_all 17 套+probe_gate 含 click 全绿+doc 三闸/熵增存量红零新增+MC 改前改后 40 局同种子全字段零差异(零漂移铁证;补采锚 L1 口径读数 off 4/20·formed 16/20 与卡⓪出口报告逐位同值=等价旁证);**人闸=实机目检四项+代拍板追认九项**(design/qa/iter17-enemy-人闸材料-2026-10-07.md。原估 T0-T8≈3.75d) |
| 迭代 17 | **③暂停层只读入口批(2026-10-05 用户令编入本迭代)**:新增局内暂停层,承载钥石余额与解锁态(营地三柜台进度)只读查看——事实源=06「解锁界面与钥石呈现的交互形态(残余:暂停层只读入口)」条。考证在册:现行无暂停层;模态栈/设置面/调试浮窗三先例齐;UiKit 公共件(modal_shell/bcard/verb_button/徽章形制)与色板 token 单点现成;MetaProgression 只读访问器面齐全;战斗屏 GP/钥石已迁出=局内零查看入口正是本批由来。**美术红线:复用现行公共件与色板,零新素材零新色值(2026-10-05 用户立规)**。任务书=`design/research/任务书-暂停层只读入口批-2026-10-05.md`(T0-T5≈3.0d;🔴 契约 5 条含公共件单点/模态登记纪律;**✅ 裁点全裁(2026-10-06 用户令全按推荐:P1丁/P2甲/P3甲/P4甲);开工=U0**) | 迭代 15 出口 | **✅ 已全批落码落籍(2026-10-06/07,主区 merge --no-ff c8beaa2,闸全绿,worktree g-plan2-iter17-pause 分支 iter17-pause-20261006 两会话接力完成,提交 c08a901/fc9eb1e/d44fdd5+收口笔;出口报告=[iter17-pause-exit-report](design/qa/iter17-pause-exit-report-2026-10-06.md))**:暂停层本体+badge 工厂件收编(Q10 甲,营地钥石徽同步迁移观感零变化)+两屏常驻角标入口与 has_open 守卫+四探针断言(结构/点击/输入锁 case⑯/只读巡检/零动效契约/对比度对)+冒烟投影一致性 5 断言;闸=冒烟 788/0(基线 783/0)+run_all 17 套+probe_gate --click 全绿+doc 三闸零新增+MC 零跑(纯呈现零数值);存量移交=熵增闸 design/diagrams 越界(00712d5 总图批落籍漏步,主区同红)+06/07 gdd_lint 存量注记红(本批零触碰);**人闸=用户实机目检**(design/qa/iter17-pause-human-gate-checklist-2026-10-06.md,重点含排播排空副作用确认项 D2。原估 T0-T5≈3.0d 贴软盒内) |
| 迭代 17 | **④生涯界面设计立项(2026-10-05 用户令编入本迭代;只做设计提纲不做实装)**:事实源=06「『生涯』界面——冒险中数据回看的唯一承接处」条(P-C7 裁:M9 已退役局内结算明细回看,历史数据现无承接面=用户知情裁决)。考证在册:回看退役已落码(battle_end_overlay/battle_log_view/ui_assembler 三处注记)+settlement_review_overlay.gd 遗留件在盘+跨局持久面=save v5 meta 域+recent_summaries 现役逐局留痕(cap=10,save_manager.gd SUMMARY_CAP——2026-10-06 联审勘误:原记「无历史冒险记录面」系事实错误;真实缺口=cap 扩容+用时埋点+总局数/通关局数 lifetime 计数域〔涉存档 schema〕+营地既有最近冒险清单的去留设计)。任务书形态=设计提纲版:信息架构+承载内容清单(跨局汇总/历史冒险回看/图鉴承接)+与既有界面关系+三期实装建议+待裁点,标注「实装批另行立项」。任务书=`design/research/任务书-生涯界面设计立项-2026-10-05.md`(**v1.1 2026-10-06 联审修订**:F4 改正 recent_summaries 现役/P2 甲口径重述=扩容+用时埋点/总局数通关局数标注涉 schema/营地清单去列入设计稿必答项/N 候选补「维持 10」;T0-T2≈1.25d 纯文档零测试;**✅ 裁点全裁(2026-10-06 用户令全按推荐:P0甲/P1甲/P2甲〔N 实装期定〕/P3甲/P4甲/P5甲);开工=U0**) | 迭代 15 出口 | ✅ **设计提纲已成文待用户评审(2026-10-06 卡④设计批完成,worktree iter17-career-20261006,纯文档零代码零测试)**:提纲=design/gdd/systems/跨局循环/生涯.md v0.1(范围草案——信息架构/承载内容清单/界面关系/分期建议/待裁点五节,P0-P5 已裁结论落文,新发现待裁点 P6 营地最近冒险条带去留随评审一并裁);02 根索引补行+06 状态行换代「设计提纲已成文待评审」。**人闸=用户评审提纲**;评审通过后期一/二/三实装批另行立项(不预占排期。原估 T0-T2≈1.25d 软盒内) |
| 迭代 18 | **③武器锻造系统设计提案批(2026-10-06 用户令入迭代 18;纯文档零代码——提案源=playnote 2026-10-06)**:用户提案=攻击力提升改造为「武器锻造」——剑(普攻)锻造升级加攻击、满级附带额外效果;后续增列长枪/法杖,攻击类型分别走穿刺/魔法;护甲由轻甲起级(先只提 AC)→解锁重甲/魔法甲(基础 AC 各异、可续升、满级各带额外效果)——武器/护甲差异化。产出=系统设计提案文档(与奇物属性值提升分类/护甲克制轴/营地柜台/锻造经济边界对齐,数值框架 provisional 终值归 Alpha 收官 M4 数值批统一调整〔未排期〕),裁点呈用户裁决;实装批另行立项。06 已登记专条。任务书=`design/research/任务书-武器锻造系统设计提案批-2026-10-07.md`(提纲版 v1.0——设计裁点在提案产物内全备选呈裁,任务书零待裁点;开工=U0) | ✅ 定稿 v1.2(零待裁点)——开工=U0 | T0-T2≈1.5d(一轮呈裁基线,盘问轮次扩展另计) |
| 迭代 18 | **③武器锻造系统设计提案批(2026-10-06 用户令入迭代 18;纯文档零代码——提案源=playnote 2026-10-06)**:用户提案=攻击力提升改造为「武器锻造」——剑(普攻)锻造升级加攻击、满级附带额外效果;后续增列长枪/法杖,攻击类型分别走穿刺/魔法;护甲由轻甲起级(先只提 AC)→解锁重甲/魔法甲(基础 AC 各异、可续升、满级各带额外效果)——武器/护甲差异化。产出=系统设计提案文档(与奇物属性值提升分类/护甲克制轴/营地柜台/锻造经济边界对齐,数值框架 provisional 终值归 Alpha 收官 M4 数值批统一调整〔未排期〕),裁点呈用户裁决;实装批另行立项。06 已登记专条。任务书=`design/research/任务书-武器锻造系统设计提案批-2026-10-07.md`(提纲版 v1.0——设计裁点在提案产物内全备选呈裁,任务书零待裁点;开工=U0) | 🔨 提案已成文交付(2026-10-07)待盘问裁决(异步不阻塞) | T0-T2≈1.5d(一轮呈裁基线,盘问轮次扩展另计) |
| 迭代 18 | **④生涯界面实装批(2026-10-06 用户令入迭代 18)**:按迭代 17 卡④设计提纲(design/gdd/systems/跨局循环/生涯.md v0.1,master 44328b1)实装「生涯」界面——跨局汇总/历史冒险回看/图鉴承接;提纲在册要点=recent_summaries 现役 cap10 扩容+用时埋点/总局数与通关局数(涉存档 schema)/营地最近冒险清单去留(P6 必答项随评审定);分期建议随提纲。任务书=`design/research/任务书-生涯界面实装批-2026-10-07.md`(v1.0——范围=提纲期一〔汇总页+主菜单入口+终身计数域存档 v6〕,期二/期三零触碰;裁点 P1 通关局数口径/P2 汇总条目集/P3 模态登记序待裁;提纲评审若改期一范围则任务书升版) | **✅ 提纲期一追认+裁点全裁(2026-10-07 用户令代解/全甲;P6 随期二)**——开工=U0 | T0-T5≈2.5d |
| 迭代 18 | **⑤混编遭遇首批投放批(2026-10-06 用户令入迭代 18;纯内容批——机制前置=迭代 17 卡①敌人表行集多行批)**:07「后续内容批义务」落地——首个混编遭遇行+Boss 多行内容投放(敌种候选与坐标=本批裁点);首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准);难度带读数义务随批登记 07,MC 取证跑批**顺延 Alpha 收官 M4 数值批统一执行**〔未排期,届时另令——2026-10-06 用户令:数值统一调整殿后;投放本身不阻塞〕。任务书=`design/research/任务书-混编遭遇首批投放批-2026-10-07.md`(v1.0——纯内容批零代码,机制面全由卡①承载,机制缺口=L3 停机;裁点 P1 首批投放方案〔荐甲=L2 单点试水〕/P2 Boss 多行不入首批/P3 教学界保护待裁) | 迭代 17 卡①落籍(✅ 已满足 9cc4b8b)+**✅ 裁点全裁(P1-P4 甲,2026-10-07)**——开工=U0 | T0-T5≈1.75d(MC 取证顺延另计) |
| 迭代 18 | **⑦新冒险种子随机化+调试浮窗升级(2026-10-07 用户令入迭代 18,同日两裁点全裁+浮窗目标态已定)**:**(a) 种子随机化**——现状考证 main.gd:1210 `_seed_value()` 调试种子框为空时硬编码返回 42=每次新冒险同一种子全程可复现;改法=玩家界面入口(主菜单开新冒险)默认分支随机生成;**✅ 裁点全裁(2026-10-07 用户令):①首次冒险维持固定种子(教学态可复现)/②测试脚本与调试接口维持显式指定种子(冒烟·MC·探针全链显式传种子零影响,锚零作废)/③种子不进玩家 UI**;断点续玩零影响(存档已载 master_seed 回填,main.gd:447 现役);与⑥收官批零耦合、排序自由。**(b) 调试浮窗升级**(承载「调试浮窗可查当局数据」裁点=种子的唯一查看位;**本项修订迭代 15 卡① P3 甲「仅开始菜单可开·对局不可达」裁决**)——目标态三件:独立于整体界面的**最高层浮窗**(对局中也可开)/DS_DEBUG=1 调试态下**默认打开**/新增**当局数据只读区块**(当前局种子/关卡/节点/HP/GP/钥石等——玩家 UI 不展示、调试浮窗可查)。考证在册(2026-10-07 实查):现行=开始覆盖层角标入口〔main.gd:292-293,DS_DEBUG=1 点亮〕+main.gd:1189 门禁「仅开始菜单可开」+Dialog 形态走 ModalStack 模态栈登记〔非最高层〕+visible=false 初始非默认开+五区块(胜利演出/种子输入/数值滑条/批量模拟/两层调试)无当局数据面。任务书待裁点:最高层与模态栈登记制的关系〔置顶/登记序末+move_child 或独立层〕/输入吞噬边界〔浮窗矩形外透传游戏输入〕/对局发起「随开随收」逻辑改向/ui_tune_probe 断言面换代/入口形态(角标宿主迁移或热键)。任务书=`design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md`(v1.0——实装级裁点 P1 遮挡语义〔荐甲=维持登记制〕/P2 入口形态〔荐甲=角标迁宿主〕/P3 默认打开范围〔荐甲=启动即开〕/P4 当局数据字段集〔荐甲=六项〕/P5 首局种子值〔荐甲=沿用 42〕待裁;估时勘误 1d→2.0d 含探针换代与收口) | **✅ 已落地(2026-10-07 worktree iter18-seed:C1 种子三分+浮窗升级 P1-P6 甲全落;批末重闸全绿=冒烟 811/0+四探针+run_all 17 套+doc 三闸/熵增闸零新增;MC 零跑;未合并待实机人闸)** | T0-T5≈2.0d |
| 迭代 18 | **⑤混编遭遇首批投放批(2026-10-06 用户令入迭代 18;纯内容批——机制前置=迭代 17 卡①敌人表行集多行批)**:07「后续内容批义务」落地——首个混编遭遇行+Boss 多行内容投放(敌种候选与坐标=本批裁点);首遇教学位纪律与 expect_pools 断言面逐项复核(巨蜘蛛首遇位「固定 2 不加骰」等表注释为准);难度带读数义务随批登记 07,MC 取证跑批**顺延 Alpha 收官 M4 数值批统一执行**〔未排期,届时另令——2026-10-06 用户令:数值统一调整殿后;投放本身不阻塞〕。任务书=`design/research/任务书-混编遭遇首批投放批-2026-10-07.md`(v1.0——纯内容批零代码,机制面全由卡①承载,机制缺口=L3 停机;裁点 P1 首批投放方案〔荐甲=L2 单点试水〕/P2 Boss 多行不入首批/P3 教学界保护待裁) | 迭代 17 卡①落籍(✅ 已满足 9cc4b8b)+**✅ 裁点全裁(P1-P4 甲,2026-10-07)**——开工=U0 | T0-T5≈1.75d(MC 取证顺延另计)——**✅ 已全批落表(2026-10-07,worktree g-plan2-iter18-mixenc 分支 iter18-mixenc 基点 adadf56,批内提交 ad36e35(T1 设计稿)/6272fc8(T3 落表)/43b1306(T4 断言)/⑤T5 收口批;出口报告=[iter18-mixenc-exit-report](design/qa/iter18-mixenc-exit-report-2026-10-07.md))**:(2,5) 双行混编落表〔重击手+巨蜘蛛巢群(行值复制 (2,6),P4 甲零数值新增),R6 行序=重击手在前〕;d5/d7 候选与行值来源全案留痕(d5 案选定);断言面随迁(expect_pools 三元键新池模板+行集构成/行序/Σ≤4 断言);首遇教学位 (2,4)/(3,0)/(3,1) 零触碰;07 ⑱ 目检与读数义务登记+:174 逐行骰措辞订正;闸=冒烟 814/0(基线 811/0,+3)+run_all+doc 三闸/熵增零新增(批末重闸数字见出口报告);实机目检三项归用户(同场两敌种/行序/总数 ≤4);MC 零跑(顺延 Alpha 收官 M4 数值批在案) |
| 迭代 18 | **⑦新冒险种子随机化+调试浮窗升级(2026-10-07 用户令入迭代 18,同日两裁点全裁+浮窗目标态已定)**:**(a) 种子随机化**——现状考证 main.gd:1210 `_seed_value()` 调试种子框为空时硬编码返回 42=每次新冒险同一种子全程可复现;改法=玩家界面入口(主菜单开新冒险)默认分支随机生成;**✅ 裁点全裁(2026-10-07 用户令):①首次冒险维持固定种子(教学态可复现)/②测试脚本与调试接口维持显式指定种子(冒烟·MC·探针全链显式传种子零影响,锚零作废)/③种子不进玩家 UI**;断点续玩零影响(存档已载 master_seed 回填,main.gd:447 现役);与⑥收官批零耦合、排序自由。**(b) 调试浮窗升级**(承载「调试浮窗可查当局数据」裁点=种子的唯一查看位;**本项修订迭代 15 卡① P3 甲「仅开始菜单可开·对局不可达」裁决**)——目标态三件:独立于整体界面的**最高层浮窗**(对局中也可开)/DS_DEBUG=1 调试态下**默认打开**/新增**当局数据只读区块**(当前局种子/关卡/节点/HP/GP/钥石等——玩家 UI 不展示、调试浮窗可查)。考证在册(2026-10-07 实查):现行=开始覆盖层角标入口〔main.gd:292-293,DS_DEBUG=1 点亮〕+main.gd:1189 门禁「仅开始菜单可开」+Dialog 形态走 ModalStack 模态栈登记〔非最高层〕+visible=false 初始非默认开+五区块(胜利演出/种子输入/数值滑条/批量模拟/两层调试)无当局数据面。任务书待裁点:最高层与模态栈登记制的关系〔置顶/登记序末+move_child 或独立层〕/输入吞噬边界〔浮窗矩形外透传游戏输入〕/对局发起「随开随收」逻辑改向/ui_tune_probe 断言面换代/入口形态(角标宿主迁移或热键)。任务书=`design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md`(v1.0——实装级裁点 P1 遮挡语义〔荐甲=维持登记制〕/P2 入口形态〔荐甲=角标迁宿主〕/P3 默认打开范围〔荐甲=启动即开〕/P4 当局数据字段集〔荐甲=六项〕/P5 首局种子值〔荐甲=沿用 42〕待裁;估时勘误 1d→2.0d 含探针换代与收口) | **✅ 已落地(2026-10-07 worktree iter18-seed:C1 种子三分+浮窗升级 P1-P6 甲全落;批末重闸全绿=冒烟 811/0+四探针+run_all 17 套+doc 三闸/熵增闸零新增;MC 零跑;实机人闸挂账待用户〔不阻塞落籍与后续卡④〕)** | T0-T5≈2.0d |
| 迭代 19+ | **M4 数值批(**Alpha 收官位·未排期**——2026-10-05 用户令编入迭代 17 卡②;2026-10-06 用户令移出独立成批并定序「Alpha 阶段最后——内容补全先行、统一数值调整殿后」〔当日曾被编入迭代 18 为收官卡,2026-10-07 用户令撤回〕;2026-10-07 用户令:**暂不启动**,移出迭代 18,保持 Alpha 收官位待用户发令)**:四件数值欠账合一批——①削弱档位终值(weaken 现值 −65/duration 2/refresh 考证在册;叠层改续时语义已定案,差 duration 终值+当量锚复算)②调参批数值点评(06 条目现行登记五条——任务口径「八条」与条目五条不符,任务书 §2.2 已呈报差异以条目为准)③迭代 10 奖励重构联动欠账①②(钥石产出重标 boss_keystone 首杀 3/3/3·复杀 2/2/3 provisional + 通关率带重扫〔通关回血 20%+AP 件首轮 +1〕)④元进度定价剩余面(forge base 20/比 150 考证在册——06 条目文本「base 10」滞后于 2026-09-22 对齿批已呈报;Boss 两档终值)。读数义务随批=迭代 14 两件后置复算(T6 MC 四带复算+T7 技能池节奏重测,均挂 07);顺路修复 damage_probe A1 改前既有红灯(判式换代批出口报告 §四.7 在册)。**硬约束:一切 MC/verifier 跑批发起前须用户批准;调参联动禁独立调参网络(β 带 [1.2,2.5] 逐 u 检算)**。任务书=`design/research/任务书-M4数值批-2026-10-05.md`(**v1.2 2026-10-06 案C 增补+联审修订**:v1.1 三事实与第五推算件照旧;联审=P3 转正顺延至重扫读数后/检算工具 WEAKEN_PCT 入同步面/F11 两句死文本全刷/T3·T5 四带复算并账一次跑批双认账/R5 改前锚=本批新立案C 锚/估时段一勘误 4.25d;案C 增补内容照旧=§2.6 三事实〔行为换代/锚全作废/难度预判〕+T0 推算稿第五件=对拍锚按新序重推导+T6 四带复算按案C 新行为首采;T0-T8≈6.25d,天然切分点 T4 末;🔴 契约 5 条含跑批批准制;**✅ 裁点全裁(2026-10-06 用户令:P1甲=维持 2 场·magnitude [60,85] 带内当量锚复算、具体值随出口 provisional 追认/P2甲 不对称有意/P3甲 3-3-3·2-2-3 维持、转正顺延至重扫读数到账且带内(Q4 二裁)/P4甲 不立直购价);开工=U0**) | 迭代 18 全部内容卡(③④⑤⑦)出口+全部内容批行为变更落定+**用户发令(未排期)**——重锚窗口须收尽全部内容批行为变更 | T0-T8≈6.25d(超软盒预挂,段一 T0-T4≈4.25d〔v1.2 勘误,原 4.5 系加总错误〕/段二 T5-T8≈2.0d) |
## 执行纪律(2026-09-27 用户立规)