• Pure relational predicate behind SohlCombatantLogic.isEnemyOf.

    Under the SoHL combat invariant, two combatants are enemies iff they belong to different CombatantGroups. A combatant is never its own enemy. Absent grouping (a null/undefined group id on either side) is treated defensively as enemy.

    Parameters

    • thisGroupId: undefined | null | string

      The group id of the subject combatant.

    • otherGroupId: undefined | null | string

      The group id of the other combatant.

    • isSelf: boolean

      True when both ids refer to the same combatant.

    Returns boolean

    True if the two combatants are enemies.