mirror of
https://github.com/Heretek-AI/AetherTable.git
synced 2026-10-12 02:02:28 +00:00
Condition::Invisible was half-wired: the target-side clause (attacks against it have disadvantage) existed via inflicts_disadvantage_on_attacker, but the attacker-side clause (the creature's own attacks have advantage) had no path. Added Condition::grants_advantage_on_own_attacks and wired it into RulesEvaluator::edge_from_conditions alongside the target-side advantage sources. Cancellation semantics preserved: a blind+invisible attacker sets both flags and resolves as a straight d20 in resolve_attack. 3 new unit tests (own-attack advantage, symmetric target-side non-regression, blind+invisible cancellation) — cargo test --workspace 524/0 (was 523), clippy -D warnings clean.