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