private void VerifyCardMatchesDeck(CardEntity ce) { if (string.IsNullOrEmpty(ce?.Entity?.CardId) || ce.Created || ce.Returned || ce.Stolen) { return; } if (IsLocalPlayer && (DeckList.Instance.ActiveDeckVersion?.Cards.All(c => c.Id != ce.Entity.CardId) ?? false)) { DrawnCardsMatchDeck = false; } DrawnCardIds.Add(ce.Entity.CardId); DrawnCardIdsTotal.Add(ce.Entity.CardId); }
public void SecretPlayedFromDeck(Entity entity, int turn) { var ce = MoveCardEntity(entity, Deck, Secrets, turn); UpdateRevealedEntity(ce, turn); if (!string.IsNullOrEmpty(entity.CardId)) { if (IsLocalPlayer && !CardMatchesActiveDeck(entity.CardId)) { DrawnCardsMatchDeck = false; } DrawnCardIds.Add(entity.CardId); DrawnCardIdsTotal.Add(entity.CardId); } Log("SecretPlayedFromDeck", ce); }
public void DeckDiscard(Entity entity, int turn) { var ce = MoveCardEntity(entity, Deck, Graveyard, turn); UpdateRevealedEntity(ce, turn, true); if (!string.IsNullOrEmpty(entity.CardId) && ce.CardMark != CardMark.Created && ce.CardMark != CardMark.Returned) { if (IsLocalPlayer && !CardMatchesActiveDeck(entity.CardId)) { DrawnCardsMatchDeck = false; } DrawnCardIds.Add(entity.CardId); DrawnCardIdsTotal.Add(entity.CardId); } Log("DeckDiscard", ce); }
public void Draw(Entity entity, int turn) { var ce = MoveCardEntity(entity, Deck, Hand, turn); if (IsLocalPlayer) { Highlight(entity.CardId); } else { ce.Reset(); } if (!string.IsNullOrEmpty(entity.CardId) && ce.CardMark != CardMark.Created && ce.CardMark != CardMark.Returned && !ce.Created) { if (IsLocalPlayer && !CardMatchesActiveDeck(entity.CardId)) { DrawnCardsMatchDeck = false; } DrawnCardIds.Add(entity.CardId); DrawnCardIdsTotal.Add(entity.CardId); } Log("Draw", ce); }
public void Reset() { Name = ""; Class = ""; Id = -1; GoingFirst = false; Fatigue = 0; DrawnCardsMatchDeck = true; Hand.Clear(); Board.Clear(); Deck.Clear(); Graveyard.Clear(); Secrets.Clear(); DrawnCardIds.Clear(); DrawnCardIdsTotal.Clear(); RevealedCards.Clear(); CreatedInHandCardIds.Clear(); Removed.Clear(); for (var i = 0; i < DeckSize; i++) { Deck.Add(new CardEntity(null)); } }