void Moving_UponFsmTgtOwnerChgd(IItem_Ltd fsmTgt) { LogEvent(); D.AssertEqual(_fsmTgt, fsmTgt as IFleetNavigable); if (fsmTgt.IsOwnerAccessibleTo(Owner)) { // evaluate reassessing move as target's owner is accessible to us UnitItemOrderFailureCause failCause; if (ShouldMovingBeReassessed(out failCause, __isFsmInfoAccessChgd: false)) { _orderFailureCause = failCause; Return(); } } }
void ExecuteJoinFleetOrder_UponFsmTgtInfoAccessChgd(IItem_Ltd fsmTgt) { LogEvent(); D.AssertEqual(_fsmTgt, fsmTgt as IFleetNavigable); if (fsmTgt.IsOwnerAccessibleTo(Owner)) { Player tgtFleetOwner; bool isAccessible = fsmTgt.TryGetOwner(Owner, out tgtFleetOwner); D.Assert(isAccessible); if (tgtFleetOwner == Owner) { // target fleet owner is still us return; } } // owner is no longer us IssueAssumeFormationOrderFromCmdStaff(); }