private void Late() { foreach (var other in Check) { if (other?.Associate == default) { continue; } if (!Active.Contains(other)) { OnLeave.Invoke(other.Associate as PhysicsComponent); } } Check.Clear(); foreach (var active in Active) { if (active?.Associate == default) { continue; } Check.Add(active); } }
/// <summary> /// Called when a move is made /// </summary> /// <param name="pieceEliminated"> True if the move eliminate's the opponent's piece </param> /// <param name="eliminatedObject"> Opponent's piece that has been eliminated, otherwise null </param> /// <param name="piece"> Piece that was moved </param> /// <param name="originalPos"> Original Position of the piece ("x z")</param> /// <param name="newPos"> New Position of the Piece ("x z")</param> public void Move(bool pieceEliminated, GameObject eliminatedObject, GameObject piece, string originalPos, string newPos) { Eliminated.Add(pieceEliminated); if (pieceEliminated) { EliminatedObjects.Add(eliminatedObject); } else { EliminatedObjects.Add(null); } PieceMoved.Add(piece); PreviousXPosition.Add((int)char.GetNumericValue(originalPos[0])); PreviousZPosition.Add((int)char.GetNumericValue(originalPos[2])); CurrentXPosition.Add((int)char.GetNumericValue(newPos[0])); CurrentZPosition.Add((int)char.GetNumericValue(newPos[2])); // by default, pawnPromoted = false PawnPromoted.Add(false); // by default, check = false Check.Add(false); Count++; }
public void Run() { int dimentionZero = 0; int dimentionOne = 0; Refresh(); Grid(); while (true) { PrintPlayerInfo(" "); PointerVisualiation(ConsoleColor.Black, dimentionZero, dimentionOne); if (Console.KeyAvailable) { var keyInfo = Console.ReadKey(true); if (keyInfo.Key.Equals(ConsoleKey.UpArrow)) { if (dimentionZero > 0) { dimentionZero--; } } if (keyInfo.Key.Equals(ConsoleKey.DownArrow)) { dimentionZero++; } if (keyInfo.Key.Equals(ConsoleKey.LeftArrow)) { dimentionOne--; } if (keyInfo.Key.Equals(ConsoleKey.RightArrow)) { dimentionOne++; } if (keyInfo.Key.Equals(ConsoleKey.Spacebar)) { if (!CardFace[dimentionZero, dimentionOne].IsVisible) { Check.Add(new CardPosition(dimentionZero, dimentionOne)); } } if (keyInfo.Key.Equals(ConsoleKey.Escape)) { foreach (var position in this.Check) { this.CardBack[position.X, position.Y].IsVisible = true; this.CardFace[position.X, position.Y].IsVisible = false; } GameManager.SaveGame(this.CardBack, this.CardFace, this.Player, this.Check, this.Level); GameManager.ExitGame(); } } dimentionZero %= CardFace.GetLength(0); dimentionOne %= CardFace.GetLength(1); PointerVisualiation(ConsoleColor.Yellow, dimentionZero, dimentionOne); if (Check.Count >= 1) { CheckForEquals(); } System.Threading.Thread.Sleep(200); } }