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);
 }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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));
            }
        }