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 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); }