Exemple #1
0
 public override int GetHashCode()
 {
     unchecked
     {
         var result = 0;
         result = (result * 397) ^ ToBeAdded.ToArray().GetHashCode();
         result = (result * 397) ^ ToBeRemoved.ToArray().GetHashCode();
         result = (result * 397) ^ ToChange.ToArray().GetHashCode();
         return(result);
     }
 }
Exemple #2
0
 public bool Equals(CollectionChanges <TExisting, TUpdated> other)
 {
     if (Object.ReferenceEquals(null, other))
     {
         return(false);
     }
     return
         (ToBeAdded.SequenceEqual(other.ToBeAdded) &&
          ToBeRemoved.SequenceEqual(other.ToBeRemoved) &&
          ToChange.SequenceEqual(other.ToChange));
 }
        public virtual void Step(float elapsedSec)
        {
            if (MoveQueue.Any())
            {
                if (waitTime > 0)
                {
                    waitTime -= elapsedSec;
                }
                else
                {
                    LastMoveResult = base.Move(MoveQueue.Dequeue());
                    if (LastMoveResult != MoveResult.Ok)
                    {
                        Text.WriteLine(LastMoveResult.ToString());
                        if (LastMoveResult == MoveResult.Win)
                        {
                            Text.WriteLine("Congratulations");
                        }
                    }
                    waitTime = 0.1f;
                }
            }
            else
            {
                waitTime = 0;
            }

            foreach (var e in RootElements)
            {
                e.Step(elapsedSec);                             // nested steps handles by GameElement.Step()
            }
            if (ToBeRemoved.Any())
            {
                foreach (var e in ToBeRemoved)
                {
                    RemoveElement(e);
                }
                ToBeRemoved.Clear();
            }
        }