13 KiB
13 KiB
M79 · 区域内容实现(按区域推进到设计门全量)
Owner 指示(2026-09-14):"就按你说的都做"——战斗演员之后开始按区域补内容。
Player-visible stopping point
设计合同 05_CONTENT_CATALOG.md 的全部内容在运行时可达:8 区域(320 装备 / 100 敌人 / 16 Boss /
60 遗物 / 16 合同),每区域有:区域数据、遭遇语法(按区域带抽取敌人)、该区域的装备/遗物商店带、
合同与 Boss 配对、区域战斗/BOSS 音乐、敌人与 Boss 立绘;双语(zh_CN/en)名称与语义标签齐全。
现状(2026-09-14 核实)
- 设计文档已含全部内容(320 EQ / 100 EN / 16 BO / 60 AR / 8 RG ✓)。
- 运行时目录此前只有 RG-01(40/12/2/8 + 2 合同 + 137 条 name_zh/execution_tags)。
- 抽取管线
tools/content/build_catalog_from_contract.py已把全量主数据解析进目录, 但注册表需要每行的 name_zh + execution_tags(作者内容)→ 按区域切片补齐,每片都过门。
Ordered steps
- M79-A(COMPLETE)区域 2:EQ-041..080、EN-R2-01..12、BO-R2-01/02、AR-009..015、 CTR-R2-01/02 的中文名 + 语义标签;注册表计数更新(80/24/4/15/2/4);区域带接线(战斗/装备按区域抽); 区域 2 敌人立绘(12×2)+ Boss(2×2);区域 2 战斗/BOSS 音乐;全流程门。 1b. M79-B(COMPLETE)合同推进/区域前进:合同按序数从目录取行(2/区域),区域带随行落地; 已归还的合同作为历史保留(含其全部回执),修订号 = 已建合同数 + 已提交动作数;第三次合同进区域 2 ✓; 区域 2 战场底图与区域音乐族切换。
- M79-C..H(COMPLETE)区域 3..8 + 收口:同样管线逐区域推进(每区域一片,含立绘/音乐/门)。
- M79-H(COMPLETE)收口:全量计数门(320/100/16/60/8/16)、区域推进(合同按区域前进)、 区域图鉴/解锁与区域差异实拍。
Frozen scope
- 只实现设计合同已写的内容;不发明机制、数值或名称风格之外的规则。
- 合同行(CTR-*)为派生(区域矩阵 + RG-01 基线),已在目录标记
derived,待 Owner/设计复核。 - 像素资产不复活;美术沿用已验收风格族。
M79-A 产出(2026-09-14,数据与本地化部分)
- 抽取管线
tools/content/build_catalog_from_contract.py:按--through-region N从设计合同重建目录, 行内文(装备/遗物/敌人/Boss/区域)全部来自合同;tools/content/content_locale_zh.json提供每行的 中文名 + 语义标签(缺失即构建报错,不含占位)。 - 合同行(CTR-*)按区域派生(2/区域 = 16),标记
derived待复核。 - 注册表改为分阶段:
CONTENT_STAGE_REGIONS = 2(80 装备 / 15 遗物 / 24 敌人 / 4 Boss / 2 区域 / 4 合同; 201 行本地化齐备);收口时改为 8(320/60/100/16/8/16)。 - 区域带接线:市场装备只从本区域 40 件里抽;战斗报价只从本区域敌人里抽(按
region字段过滤)。 - 门:
ABG_P10_0_CONTENT_REGISTRY_OK professions=36 ... equipment=80 artifacts=15 enemies=24 bosses=4 contracts=4 localized=201(marker 现在打印真实计数);音频服务门与 34 步全流程不回归。
M79-C 产出(2026-09-14)
- 数据+本地化:EQ-081..120、EN-R3-01..12、BO-R3-01/02、AR-016..022、RG-03、CTR-R3-01/02
(区域三 64 条中文名与语义标签;全套 265 行本地化齐备;登记了
copy of误报例外,见M79-I02结案)。 - 美术:12 敌人 + 2 Boss × {待机, 出手} = 28 张战斗立绘 + 余烬织坊战场底图(已接线按区域切)。
- 音乐:
MUS-R03-BATTLE-base/MUS-R03-BOSS-base(响度归一,0 错误)+ 清单族battle_r3/boss_r3。 - 门:注册表
equipment=120 artifacts=22 enemies=36 bosses=6 contracts=6 localized=265; 区域推进门扩到第五份合同:ABG_M79_REGION_ADVANCE_OK contracts=5 region=RG-03 equipment=EQ-081..EQ-120 enemies=8 boss=BO-R3-01。
M79-G 区域 7(夜流盆地)产出(2026-09-15)
- 数据+本地化:EQ-241..280(区域反制/触发编织)、EN-R7-01..13、BO-R7-01/02、AR-046..052(长期/恢复/精通)、RG-07、CTR-R7-01/02(66 条中文名与语义标签;全套 526 行本地化齐备,0 缺失)。
- 注册表例外:EQ-248
copy of(M79-I02 预言项)登记为例外;同根因曾导致起草门DRAFT_CONTENT_INVALID(起草先验注册表),一并解释。 - 美术:13 敌人 + 2 Boss × {待机, 出手} = 30 张 + 夜流盆地战场底图;音乐:
MUS-R07-BATTLE/BOSS-base+battle_r7/boss_r7。 - 回收经验:CDN 大文件偶发 IncompleteRead/截断(恰 1MB 的半截文件);处理脚本前先全量校验 PNG 完整性,坏掉的重下或重生成。
- 门:注册表 280/52/87/14/14/526;推进门到第十三份合同:
contracts=13 region=RG-07 equipment=EQ-241..EQ-280 boss=BO-R7-01。
M79-F 区域 6(空轨果园)产出(2026-09-15)
- 数据+本地化:EQ-201..240(恢复/增益/生存)、EN-R6-01..13、BO-R6-01/02、AR-038..045(路线/损失恢复)、RG-06、CTR-R6-01/02(66 条中文名与语义标签;全套 461 行本地化齐备,0 缺失)。
- 注册表测试修正:敌人表
[..,13,12,13,13]中 R6 误写 12,设计矩阵 R6/R7/R8 均为 13(终局 100 吻合);已改为全 13。 - 美术:13 敌人 + 2 Boss × {待机, 出手} = 30 张 + 空轨果园战场底图;音乐:
MUS-R06-BATTLE/BOSS-base+battle_r6/boss_r6。 - 批量提交经验:网关连续 POST 会超时/限流,
--prompts-file整批必挂;改逐条提交 + 12s 间隔 + 失败 45s 退避后 29/29 成功。以后区域沿用此法。 - 门:注册表 240/45/74/12/12/461;推进门到第十一份合同:
contracts=11 region=RG-06 equipment=EQ-201..EQ-240 boss=BO-R6-01。
M79-E 区域 5(潮镜滩)产出(2026-09-15)
- 数据+本地化:EQ-161..200(职业催化/机关投射)、EN-R5-01..13(13 个,设计合同定数)、BO-R5-01/02、AR-031..037(路线奖励)、RG-05、CTR-R5-01/02(65 条中文名与语义标签;全套 395 行本地化齐备,0 缺失)。
- 注册表验证器修复:此前写死每区域 12 敌人,RG-05 的 13 个触发
contiguous_ids:enemies误报;改为按目录实际按区域推导 01..max 连续(设计合同为权威)。 - 美术:13 敌人 + 2 Boss × {待机, 出手} = 30 张 + 潮镜滩战场底图;音乐:
MUS-R05-BATTLE/BOSS-base+battle_r5/boss_r5。 - 门:注册表 200/37/61/10/10/395;推进门到第九份合同:
contracts=9 region=RG-05 equipment=EQ-161..EQ-200 boss=BO-R5-01。
M79-D 数据+本地化(2026-09-15,接手后第一步)
- 数据+本地化:EQ-121..160(资源工具/状态工具)、EN-R4-01..12、BO-R4-01/02、 AR-023..030(战斗法则)、RG-04 卷根档案馆、CTR-R4-01/02 (区域四 65 条中文名与语义标签;全套 330 行本地化齐备,0 缺失)。
- 注册表:
CONTENT_STAGE_REGIONS = 4(160/30/48/8/8/8);推进门扩到第七份合同:ABG_M79_REGION_ADVANCE_OK contracts=7 region=RG-04 equipment=EQ-121..EQ-160 boss=BO-R4-01。 - 美术/音乐(本步已补):28 张 R4 战斗立绘(品红底软抠图→512²,接触表已交 owner 目视)+
卷根档案馆战场底图 +
MUS-R04-BATTLE/BOSS-base(响度归一)+ 清单族battle_r4/boss_r4(战斗音乐按区域后缀自动切换,无需改代码)。 - 附带修复(实测证据):R2/R3 的 56 张战斗立绘此前已落盘但从未接线
(
BATTLE_ENEMY_POSE_ART只有 R1,R2/R3 战斗回退到通用占位图;R3 的.import缺失,editor import 证实)。本步把 R2/R3/R4 共 42 个条目一次性接线 + 战场 4。
M79 完成(2026-09-15)
- 全量内容:320 装备 / 60 遗物 / 100 敌人 / 16 Boss / 8 区域 / 16 合同 / 592 行本地化齐备
(
CONTENT_STAGE_REGIONS = 8= 设计门全量;注册表门 marker 打印真实计数)。 - 8 区域全部可玩:市场装备带按区域(EQ-001..040 → EQ-281..320)、战斗只抽本区域敌人、
每份合同锚定区域 Boss;推进门循环驱动全部 16 份合同:
ABG_M79_REGION_ADVANCE_OK contracts=16 region=RG-08 equipment=EQ-281..EQ-320 enemies=8 boss=BO-R8-02。 - 美术:8 区域 ×(12-13 普通/精英 + 2 Boss)×{待机,出手} + 8 张区域战场底图;
立绘卫生门
ABG_SPRITE_HYGIENE_OK sprites=270 transparent=270 pink_free=270 content_ok=270。 - 音乐:8 区域战斗 + Boss 床(16 条)全部两遍法归一到 -17.5 LUFS(±1.3 LU),清单族
battle_rN/boss_rN自动按区域选族。 - 验收:接管修复 + 区域 8 收官 attempt
m79-region8(见账本)。
Acceptance checks
- 注册表测试通过:计数、连续 ID、name_zh、execution_tags、无填充词(含误报例外登记)
- 每区域的敌人/装备/遗物只在自己的区域带内出现(区域带断言)
- 双语探针(1.0/1.3 × zh/en)0 违规;全流程 34 步 0 阻断;战斗门/音频门不回归
Issue register
| ID | 状态 | 说明 |
|---|---|---|
M79-I01 |
RESOLVED(2026-09-15) | first_clear_renown 已改用玩法合同公式 8 + 2G + 4K(目录带 renown_formula 注释;区域 1 = 14/18 ✓); |
round_count = 12 沿用 RG-01 基线并标记于目录说明,待设计文档补表时替换 |
||
M79-I02 |
RESOLVED(BO-R3-02 已登记例外;EQ-248 属区域 7,届时同样登记) | 填充词检查对 copy of 有误报(机制描述),注册表新增 FILLER_TERM_EXCEPTIONS |
M79-I03 |
RESOLVED(Owner:'超出 MVP 没事,可以支持你做') | 区域 2+ 内容目前在运行时不可达:合同循环只到首份合同(contract_ordinal != 0 即拒绝), |
第二次合同/区域推进属"第二周目"范围(M31-I03 曾判定超出首个 MVP 停点)。按区域补内容要真正可玩,需要一步 |
||
| "合同推进/区域前进"(含区域 Boss Muster、区域音乐与立绘切换)。建议作为 M79 的下一步。 | ||
M79-I04 |
RESOLVED | 区域 2 立绘 28 张 + 战斗/Boss 音乐各 1 套已生成并接线 |
M79-I10 |
RESOLVED(2026-09-15,Owner 点头) | 新增区域图鉴页(region_atlas_page_controller/view):八区行(id/名称/编制语/装备带/敌数/Boss 数) |
- 首通状态徽记 + 底部首通事实/声望汇总 + 返回;公会新增
GuildAtlas(共享导航位,新增图标atlas并登记共享 UI 规则)。 门:ABG_M79_ATLAS_UI_OK regions=8 cleared_regions=0 first_clear=1 renown=14(全流程驱动里从公会点进图鉴 ✓)、 探针ABG_M79_ATLAS_INK_OK scanned=4 violations=0(2 语言 × 2 字号)。charter claims(声望消费/解锁树)仍属后续范围 | |M79-I05| RESOLVED(2026-09-15)| 新增界面驱动runtime/tools/m79_second_cycle_playthrough.gd(纯模拟触摸): 建合同 1/2(区域 1)→ 各自从市场归还 → 建合同 3(区域 2)→ 招募两次 → 编队 → 准备 → 风险 → 开战, 断言合同页标题「淤醒沼泽」、市场带 EQ-041..080、战场敌人仅 EN-R2-/BO-R2-、音乐族battle_r2。 过程中修掉 4 个真实流程缺陷:归还后公会把玩家困住(板按钮被隐藏)、confirm_contract_choice仍用写死的首份合同 id、confirm_state拒绝已归还后的新合同、 编队资格要求"两次招募"导致满编名册的后续合同永远开不了编队(放宽为"满编或两次开局招募")。 markerABG_M79_SECOND_CYCLE_OK contracts=3 region=RG-02 ui_touch=true band=EQ-041..EQ-080 music=battle_r2| |M79-I07| RESOLVED(2026-09-15 接管修复)| 区域 4-7 的 117/118 张战斗立绘没有抠图(品红/粉底仍在,战斗里是彩色方块), 且没有像素级门能拦住它;已从原始生成图重做抠图(tools/art/process_sticker.py),并新增runtime/tests/art/battle_sprite_hygiene_test.gd(透明角 + 主导底色残留 + 内容占比/高度 + 512 画布,读源 PNG 而非导入缓存) | |M79-I08| RESOLVED(2026-09-15 接管修复)| 区域 4-7 音乐未做响度归一(原始档 -12.3..-19.6 LUFS,跨度 7.3 LU);已从原始档两遍法 归一到 -17.5 LUFS(现 17 条床全部 ±1.3 LU),报告docs/audio/music/loudness_pass_report.json| |M79-I09| RESOLVED(2026-09-15 接管修复)| 区域 4-7 的 attempt 只要求 15 个 marker(DEV2、M55/M66/M67/M68 墨迹、M77 战场/节拍/音频未强制); 后续 attempt 恢复 23+ marker 并加入立绘卫生门 | |M79-I06| RESOLVED(2026-09-15)| 声望按玩法合同的公式8 + 2G + 4K落进目录(区域 1:14/18 ✓ 与旧值一致); 胜利结算(观察/旧两条路径共用)授予 clear_fact + first_clear_renown 一次(回执幂等,主动撤退不授予); 16 份合同走完后公会进入 路线完成 状态(板关闭 + 显示声望/首通数 + 回标题开新周目)。 门:ABG_M79_CLEAR_FACT_OK fact=CLEAR-RG01-C01 renown=14、ABG_M79_REGION_ADVANCE_OK … route_complete=true(并断言主动撤退的 16 份循环不产生任何事实/声望) |