Пример #1
0
        public void CreateInDeck(Entity entity, int turn)
        {
            CardEntity ce;

            if (IsLocalPlayer)
            {
                ce = new CardEntity(entity)
                {
                    Turn = turn
                };
                Deck.Add(ce);
                RevealedCards.Add(new CardEntity(entity)
                {
                    Turn = turn
                });
            }
            else
            {
                Deck.Add(new CardEntity(null));
                RevealDeckCard(entity.CardId, turn);
                ce = new CardEntity(entity.CardId, null)
                {
                    Turn = turn
                };
                RevealedCards.Add(ce);
            }
            Log("CreateInDeck", ce);
        }
Пример #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
                };
                RevealedCards.Add(revealed);
            }
            if (discarded.HasValue)
            {
                revealed.Discarded = discarded.Value;
            }
            if (cardMark.HasValue)
            {
                revealed.CardMark = cardMark.Value;
            }
        }
Пример #3
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;
            }
        }
        public void CreateInDeck(Entity entity, int turn)
        {
            CardEntity ce;
            var        created = turn > 1;

            if (IsLocalPlayer)
            {
                ce = new CardEntity(entity)
                {
                    Turn = turn, Created = created
                };
                Deck.Add(ce);
                RevealedCards.Add(new CardEntity(entity)
                {
                    Turn = turn, Created = created
                });
            }
            else
            {
                Deck.Add(new CardEntity(null));
                RevealDeckCard(entity.CardId, turn, created);
                ce = new CardEntity(entity.CardId, null)
                {
                    Turn = turn, Created = created
                };
                RevealedCards.Add(ce);
            }
            Log(ce);
        }
Пример #5
0
 public void JoustReveal(Entity entity, int turn)
 {
     if (Deck.Where(ce => ce.InDeck).All(ce => ce.CardId != entity.CardId))
     {
         RevealDeckCard(entity.CardId, turn);
         var ce = new CardEntity(entity.CardId, null)
         {
             Turn = turn
         };
         RevealedCards.Add(ce);
         Log("JoustReveal", ce);
     }
 }