Пример #1
0
        private void UpdateRevealedEntity(CardEntity entity, int turn, bool?discarded = null, CardMark?cardMark = null)
        {
            var revealed = RevealedCards.FirstOrDefault(ce => ce.Entity == entity.Entity || (ce.CardId == entity.CardId && ce.Entity == null && ce.Turn <= entity.PrevTurn));

            if (revealed != null)
            {
                revealed.Update(entity.Entity);
            }
            else
            {
                revealed = new CardEntity(entity.Entity)
                {
                    Turn = turn, Created = entity.Created, Discarded = entity.Discarded
                };
                RevealedCards.Add(revealed);
            }
            if (discarded.HasValue)
            {
                revealed.Discarded = discarded.Value;
            }
            if (cardMark.HasValue)
            {
                revealed.CardMark = cardMark.Value;
            }
        }
Пример #2
0
        private void UpdateRevealedEntity(CardEntity entity, int turn, bool?discarded = null, CardMark?cardMark = null)
        {
            var revealed =
                RevealedCards.FirstOrDefault(
                    ce =>
                    ce.Entity == entity.Entity ||
                    (ce.CardId == entity.CardId && ce.Entity == null && ce.Turn <= entity.PrevTurn));

            if (revealed != null)
            {
                revealed.Update(entity.Entity);
            }
            else
            {
                revealed = new CardEntity(entity.Entity)
                {
                    Turn = turn, Created = entity.Created, Discarded = entity.Discarded
                };
                var cardType = entity.Entity.GetTag(GAME_TAG.CARDTYPE);
                if (cardType != (int)TAG_CARDTYPE.HERO && cardType != (int)TAG_CARDTYPE.ENCHANTMENT && cardType != (int)TAG_CARDTYPE.HERO_POWER &&
                    cardType != (int)TAG_CARDTYPE.PLAYER)
                {
                    RevealedCards.Add(revealed);
                }
            }
            if (discarded.HasValue)
            {
                revealed.Discarded = discarded.Value;
            }
            if (cardMark.HasValue)
            {
                revealed.CardMark = cardMark.Value;
            }
        }
Пример #3
0
        public void RemoveFromDeck(Entity entity, int turn)
        {
            var revealed = RevealedCards.FirstOrDefault(r => r.Entity == entity);

            if (revealed != null)
            {
                RevealedCards.Remove(revealed);
            }
            var ce = MoveCardEntity(entity, Deck, Removed, turn);

            Log("RemoveFromDeck", ce);
        }
        public void RemoveFromDeck(Entity entity, int turn)
        {
            var revealed = RevealedCards.FirstOrDefault(r => r.Entity == entity);

            if (revealed != null)
            {
                RevealedCards.Remove(revealed);
            }
            var ce = MoveCardEntity(entity, Deck, Removed, turn);

            UpdateRevealedEntity(ce, turn, true);
            VerifyCardMatchesDeck(ce);
            Log(ce);
        }