public bool UpdateDeckPile(GameTime gameTime, IHand hand) { if (hand is PlayerHand) { isPlayer1 = true; } else if (hand is AIHand) { isPlayer1 = false; } if (!SSEngine.IsACardMoving) { SSEngine.IsACardMoving = true; deckPile[2].IsCovered = false; deckPile[2].IsMoving = true; deckPile[2].CourseToCard(hand.GetNextHandPosition()); elapsedTime = gameTime.TotalGameTime.TotalMilliseconds; drawEffect.Play(); } else if (deckPile[2].Time >= gameTime.TotalGameTime.TotalMilliseconds - elapsedTime && deckPile[2].IsMoving) { deckPile[2].Move(gameTime, deckPile[0].Position, hand.GetNextHandPosition()); } else if (deckPile[2].Time < gameTime.TotalGameTime.TotalMilliseconds - elapsedTime && deckPile[2].IsMoving) { hand.AddCardToHand(deckPile[deckPile.Count - 1].Clone()); deckPile.RemoveAt(deckPile.Count - 1); deckPile[2].Position = deckPile[0].Position; deckPile[2].Destination = deckPile[2].CollisionRectangle; SSEngine.IsACardMoving = false; deckPile[2].IsMoving = false; elapsedTime = 0.0; setEffect.Play(); return(true); } return(false); }