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 伤害施放,具名技能