修复: 卡④T2——提灯视野呈现桥接线(生产路径贯通=完成度 0→1):①battle_orchestrator.gd 装配集公共只读访问器 attune_has(item_id)(_attune_has 契约化出口,save v6 只读访问器先例;private 面零改动)②main.gd 呈现桥 _sync_fog_lantern——settlement.attune_has(fog_lantern) 真值显式写给 board_view.set_fog_lantern(写入即 refresh 全板重算);挂点=_on_round_started ri==1 每战首轮装配链显式重算含否〔🔴 契约 7 Q8.1 复原语义=禁战斗结束隐式复原;时序依据:round_started 首轮发射位在 begin_battle 尾 attunement 注入后——board_changed 在 _install_new_board 内先发装配集后注入,同帧直挂 _on_board_changed 会读到上一战旧集,故不挂〕;未装配=false 写 0=缺省零扰动基线逐位不变;冒烟 840/0 回归零破

This commit is contained in:
DKChan committed 2026-10-08 17:01:49 +08:00
1 parent fff25fe648
commit fd6c208b2e
2 files changed
+25

No files matched your search

+7
View File
@@ -125,6 +125,13 @@ func _attune_has(item_id: String) -> bool:
return attunement.has(item_id)
# 装配集只读出口(迭代 19 卡④——呈现桥消费面:组合根每战装配链判「装配集含 fog_lantern」→
# board_view.set_fog_lantern。_attune_has 契约化出口,save v6 只读访问器先例;private 面内部调用
# 零改动。只读零副作用——呈现侧判定专用,非结算写入口)
func attune_has(item_id: String) -> bool:
return _attune_has(item_id)
# 装备件表值读取(charge_n 等——TreasureItemTable 行;未装配不读表。magnitude 读数面随 T4
# 秘宝订阅迁移退役——行值经 value_from 在 rebuild 定影,零运行期按件取值)
func _attune_row(item_id: String) -> Dictionary:
+18
View File
@@ -849,6 +849,14 @@ func _on_round_started(ri: int) -> void:
else:
_row_pacer.enqueue({"__round_line": ri})
settlement_fx.play_round_banner(ri)
# 提灯视野同步(迭代 19 卡④——呈现桥:每战首轮按装配集显式重算 set_fog_lantern 含否〔🔴 契约 7
# Q8.1 复原语义:禁依赖战斗结束隐式复原——下一战装配链重算即含「未装配→写 0」复原〕)。挂点时序
# 依据:round_started 首轮发射位在 begin_battle 尾(attunement 注入之后)——board_changed 在
# _install_new_board 内先发、装配集后注入,同帧直挂会读到上一战的旧集,故挂此处不挂 _on_board_changed。
# settlement 空防御照 :854 既有形态(接手先于本信号:冒险路径 board_changed 内 runner 同步、debug
# 路径 battle_created 先于 begin_battle)。未装配=false→写 0=缺省零扰动基线逐位不变。
if ri == 1:
_sync_fog_lantern()
# 开战横幅——板级地形变异预告(全局作用域变异首发批 2026-10-04):首轮快照 board_variants
# 非空才发射(Boss 图恒带一型=替换制;普通图空快照零发射);轮横幅下方叠行,view 内判减动效。
if ri == 1 and settlement != null:
@@ -872,6 +880,16 @@ func _on_board_changed() -> void:
_refresh_presentations()
# 提灯视野呈现桥(迭代 19 卡④——装配集只读出口消费面:settlement.attune_has("fog_lantern") 真值
# 显式写给 board_view.set_fog_lantern(true=半径 8+2 / false=复原 0),写入即 setter 内 refresh 全板
# 重算雾态。调用点=每战首轮装配链(_on_round_started ri==1)——纯呈现边界 🔴 契约 2:只写呈现态布尔,
# minesweeper 结算零触碰;off 态(未装配)写 0=与既有基线逐位一致。
func _sync_fog_lantern() -> void:
if settlement == null or board_view == null:
return
board_view.set_fog_lantern(settlement.attune_has("fog_lantern"))
# ---- 一次性非模态提示(每 run 一次——pattern 10)与诚实提示 ----
func _check_board_hints() -> void: