public bool UpdateDeckPile(GameTime gameTime, DiscardPile discardPile) { if (!SSEngine.IsACardMoving) { SSEngine.IsACardMoving = true; deckPile[2].IsCovered = false; deckPile[2].IsMoving = true; deckPile[2].CourseToCard(discardPile.GetDiscardSprite()); 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, discardPile.GetDiscardSprite().Position); } else if (deckPile[2].Time < gameTime.TotalGameTime.TotalMilliseconds - elapsedTime && deckPile[2].IsMoving) { discardPile.DiscardList.Add(RetrieveCard(3)); Deck.RemoveAt(3); 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); }
public bool UpdateHand(GameTime gameTime, int i, DiscardPile discardPile) { if (!SSEngine.IsACardMoving) { SSEngine.IsACardMoving = true; hand[i].IsMoving = true; hand[i].CourseToCard(discardPile.GetDiscardSprite()); cardInHandPos = hand[i].Position; elaspedTime = gameTime.TotalGameTime.TotalMilliseconds; hand[i].IsFromFaceDownToFaceUp = false; } else if (hand[i].Time >= gameTime.TotalGameTime.TotalMilliseconds - elaspedTime && hand[i].IsMoving) { hand[i].Move(gameTime, cardInHandPos, discardPile.GetDiscardSprite().Position); } else if (hand[i].Time < gameTime.TotalGameTime.TotalMilliseconds - elaspedTime && hand[i].IsMoving) { discardPile.DiscardList.Add(hand[i].Clone(discardPile.GetDiscardSprite().Position)); SSEngine.IsACardMoving = false; hand[i].IsMoving = false; elaspedTime = 0.0; RemoveCardFromHand(i); setEffect.Play(); return(true); } return(false); }
public bool UpdateHand(GameTime gameTime, MouseState mouse, DiscardPile discardPile, Suit?changedSuit, ref string cardAbility) { for (int i = end - 1; i >= start; i--) { if (hand[i].CollisionRectangle.Contains(mouse.X, mouse.Y)) { cardsAbility(hand[i], ref cardAbility); } if (!SSEngine.IsACardMoving) { if (mouse.LeftButton == ButtonState.Pressed && hand[i].CollisionRectangle.Contains(mouse.X, mouse.Y) && handChecking(hand[i], discardPile, changedSuit, ref cardAbility)) { SSEngine.IsACardMoving = true; hand[i].IsMoving = true; hand[i].CourseToCard(discardPile.GetDiscardSprite()); elaspedTime = gameTime.TotalGameTime.TotalMilliseconds; cardAbility = String.Empty; if (SSEngine.VersionStage == MenuStage.LAN) { SSEngine.LANClient.Send((byte)NetGame.Set, (byte)i); } else if (SSEngine.VersionStage == MenuStage.Online) { NetOutgoingMessage msg = SSEngine.Peer.CreateMessage(); msg.Write((byte)NetGame.Set); msg.Write((byte)i); SSEngine.Peer.SendMessage(msg, SSEngine.Peer.Connections[0], NetDeliveryMethod.ReliableOrdered); } } if (leftButton.UpdateButton(mouse, gameTime) && start != 0) { if (start > 0) { start--; end--; for (int k = start, j = 0; k < end; k++, j++) { hand[k].Position = positions[j]; } } } else if (rightButton.UpdateButton(mouse, gameTime) && hand.Count > end) { if (hand.Count - end > 0) { start++; end++; for (int k = start, j = 0; k < end; k++, j++) { hand[k].Position = positions[j]; } } } } else if (hand[i].Time >= gameTime.TotalGameTime.TotalMilliseconds - elaspedTime && hand[i].IsMoving) { hand[i].Move(gameTime); } else if (hand[i].Time < gameTime.TotalGameTime.TotalMilliseconds - elaspedTime && hand[i].IsMoving) { discardPile.DiscardList.Add(hand[i].Clone(discardPile.GetDiscardSprite().Position)); SSEngine.IsACardMoving = false; hand[i].IsMoving = false; elaspedTime = 0.0; RemoveCardFromHand(i); setEffect.Play(); return(true); } } return(false); }