public bool IsAlliedWith(Player p) { // Observers are considered allies to active combatants return p == null || Stances[p] == Stance.Ally || (p.Spectating && !NonCombatant); }