From 1bbbdba48acb7a18e71927658670f1bf1573ba72 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 20 Oct 2026 20:48:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(T7/N7):=20=E5=BD=92=E5=9B=A0=E9=94=9A?= =?UTF-8?q?=E6=94=B9=E7=94=A8=E6=9C=89=E6=95=88=E8=AF=AF=E6=A0=87=E5=88=A4?= =?UTF-8?q?=E6=8D=AE=20+=20=5Femit=5Frow=20=E5=90=8E=E7=A7=BB=20+=20?= =?UTF-8?q?=E4=B8=A4=E6=80=81=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _emit_row("seal_miss") 后移到 _fx_emit("seal_missed") 循环之后,使 _perfect_forgiven 先就位 - 判据从 RAW(_perfect_hit_false==1)改为有效误标(hit_false - forgiven == 1) - battle_log_view seal_miss 文案两态:已破态加金框、豁免态普通色 - "本板"→"本图" 概念对齐 - 修复 suffix 变量遮蔽(改名 miss_note) --- game/core/settlement/grant_segment.gd | 6 ++---- game/presentation/views/battle_log_view.gd | 7 ++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/game/core/settlement/grant_segment.gd b/game/core/settlement/grant_segment.gd index fe6a4d9a..59a0bc30 100644 --- a/game/core/settlement/grant_segment.gd +++ b/game/core/settlement/grant_segment.gd @@ -296,10 +296,6 @@ func _judge_seal(evt: Dictionary, ri: int) -> void: if oc._seal_miss_seen.has(cell): return # 每格实例一次去重(归因行与负向兑付同键——防逐轮惩罚轰炸) oc._seal_miss_seen[cell] = true - var hl := "" - if oc._perfect_hit_false == 1: - hl = "perfect_broken" # 本板完美谓词已破的归因锚 - oc._emit_row("seal_miss", "seal_miss", cell, ri, "封印未中", 0, {}, hl) # 危险直觉·守挂点(seal_missed 发射:契约 12 触发主语=「当回合发生的标错 # 动作」——去重闸=新旧标错判别器〔后续轮重判旧封印被闸挡回零触发〕;双条件②「结算时封印仍在 # 场」由发射面既有过滤承载〔被挖开的封印已随挖掘擦除零兑付〕;grant_ap mode:queue 下一轮 @@ -315,6 +311,8 @@ func _judge_seal(evt: Dictionary, ri: int) -> void: _apply_counter_hit(h) # 豁免同时记账(insurance_used battle 域——下次标错 when lt 1 不再命中) oc._emit_row("insurance_used", "seal_miss", cell, ri, "完美保险·标错豁免", 0, {"forgiven": oc._perfect_forgiven}, "") + var hl := "perfect_broken" if oc._perfect_hit_false - oc._perfect_forgiven == 1 else "" + oc._emit_row("seal_miss", "seal_miss", cell, ri, "封印未中", 0, {}, hl) var snap = oc._reward_economy.grant(cell) if not (snap is Dictionary): return diff --git a/game/presentation/views/battle_log_view.gd b/game/presentation/views/battle_log_view.gd index 11c7fa04..905e7cf4 100644 --- a/game/presentation/views/battle_log_view.gd +++ b/game/presentation/views/battle_log_view.gd @@ -189,7 +189,12 @@ func _format_row(row: Dictionary, agg_count := -1) -> String: var n := (" ×%d" % agg_count) if agg_count > 1 else "" return prefix + "[s][color=#%s]⚠ %s%s[/color][/s]%s" % [UiKit.HEX_LOG_VOIDED, name_, n, suffix] "seal_miss": - var body := "✗ %s%s" % [name_, "(本板完美封印已破——归因此封印)" if hl == "perfect_broken" else ""] + var miss_note := "" + if hl == "perfect_broken": + miss_note = "(本图完美封印已破——清图奖励不再加倍)" + elif hl == "": + miss_note = "(首次封印落空已豁免——不计入完美封印判定)" + var body := "✗ %s%s" % [name_, miss_note] return prefix + (_gold_frame(body) if hl == "perfect_broken" else "[color=#%s]%s[/color]" % [UiKit.HEX_LOG_ROUND, body]) "cast": # 施放行:增益技 0 伤害施放,具名技能