public ArrayList Undo() { ArrayList undo = new ArrayList(); undo.Add(Eliminated[Index]); undo.Add(EliminatedObjects[Index]); undo.Add(PieceMoved[Index]); undo.Add(PreviousXPosition[Index]); undo.Add(PreviousZPosition[Index]); undo.Add(CurrentXPosition[Index]); undo.Add(CurrentZPosition[Index]); undo.Add(Check[Index]); undo.Add(PawnPromoted[Index]); Eliminated.RemoveAt(Index); EliminatedObjects.RemoveAt(Index); PieceMoved.RemoveAt(Index); PreviousXPosition.RemoveAt(Index); PreviousZPosition.RemoveAt(Index); CurrentXPosition.RemoveAt(Index); CurrentZPosition.RemoveAt(Index); Check.RemoveAt(Index); PawnPromoted.RemoveAt(Index); Count--; return(undo); }
/// <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++; }
private void OnBattleRoyalePlayerEliminated(object sender, PlayerBattleRoyaleEliminatedEventArgs e) { var name = "Player"; if (e.UserId == OnlineManager.Self.OnlineUser.Id) { name = OnlineManager.Self.OnlineUser.Username; } else { var view = (GameplayScreenView)Screen.View; var user = view.ScoreboardLeft.Users.Find(x => x.LocalScore?.PlayerId == e.UserId); if (user != null) { name = user.UsernameRaw; } } Username.Text = name; Eliminated.X = Username.Width + 1; Size = new ScalableVector2(Username.Width + Eliminated.Width + 1, Eliminated.Height); Username.ClearAnimations(); Eliminated.ClearAnimations(); Username.FadeTo(1, Easing.Linear, 300).Wait(1200); Eliminated.FadeTo(1, Easing.Linear, 300).Wait(1200); Username.FadeTo(0, Easing.Linear, 500); Eliminated.FadeTo(0, Easing.Linear, 500); }
/// <summary> /// Get a unique code that is equal for any two equal MurtyNodes. /// </summary> /// <returns>Hash code.</returns> public override int GetHashCode() { int hash = 17; hash = unchecked (37 * hash + Eliminated.GetHashCode()); hash = unchecked (37 * hash + Forced.GetHashCode()); if (Assignment != null) { hash = unchecked (37 * hash + Assignment.GetHashCode()); } return(hash); }