コード例 #1
0
 void SetUnitVisibility(Unit Unit, UnitVisibility Visibility)
 {
     if (Visibility.LastSeen == null)
     {
         RemoveUnit(Unit);
     }
     else
     {
         MoveUnit(Unit, new MovementEventArgs(Visibility.LastSeen, null, null), Visibility.Visible);
     }
 }
コード例 #2
0
        UnitVisibility MergeVisibility(Unit Unit, bool Visible, bool Remove = false, Tile OverrideLastSeen = null)
        {
            UnitVisibility visibility;

            _UnitVisibilities.TryGetValue(Unit, out visibility);

            if (Visible)
            {
                visibility = new UnitVisibility(Visible, Unit.Position);
            }
            else
            {
                visibility = new UnitVisibility(Visible, Remove ? null : (OverrideLastSeen ?? visibility.LastSeen));
            }

            _UnitVisibilities[Unit] = visibility;
            return(visibility);
        }