From 090e4833cd7edcfc06ef17da9c7b86b0a7bf43d7 Mon Sep 17 00:00:00 2001 From: matthewevans Date: Tue, 11 Aug 2026 16:44:03 -0700 Subject: [PATCH] fix(engine): align reciprocal fight target slots --- crates/engine/src/game/ability_utils.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/engine/src/game/ability_utils.rs b/crates/engine/src/game/ability_utils.rs index 4db37cb296..21db1ab40f 100644 --- a/crates/engine/src/game/ability_utils.rs +++ b/crates/engine/src/game/ability_utils.rs @@ -4469,7 +4469,8 @@ fn collect_target_slot_specs( } filters.push(target); for filter in filters { - if matches!(filter, TargetFilter::SelfRef | TargetFilter::ParentTarget) { + // Keep per-slot metadata aligned with the surfaced cast-time slots. + if filter.is_context_ref() { continue; } let id = TargetInstanceId(*next_instance); @@ -6761,7 +6762,10 @@ fn assign_selected_slots_recursive( } filters.push(target); for filter in filters { - if matches!(filter, TargetFilter::SelfRef | TargetFilter::ParentTarget) { + // Mirror `collect_target_slots` and `assign_targets_recursive`: + // context-reference fighters resolve from the ability chain, so they + // consume no interactive target-selection slot. + if filter.is_context_ref() { continue; } let Some(selected_slot) = selected_slots.get(*next_slot) else {