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 }; 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; } }
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; } }
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 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 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); } }
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); }
internal List <Card> GetPlayerCardList(bool removeNotInDeck, bool highlightCardsInHand, bool includeCreatedInHand) { var createdInHand = includeCreatedInHand ? CreatedCardsInHand : new List <Card>(); if (DeckList.Instance.ActiveDeck == null) { return(RevealedCards.Concat(createdInHand).Concat(KnownCardsInDeck).Concat(PredictedCardsInDeck).ToSortedCardList()); } var deckState = GetDeckState(); var inDeck = deckState.RemainingInDeck.ToList(); var notInDeck = deckState.RemovedFromDeck.Where(x => inDeck.All(c => x.Id != c.Id)).ToList(); if (!removeNotInDeck) { return(inDeck.Concat(notInDeck).Concat(createdInHand).ToSortedCardList()); } if (highlightCardsInHand) { return(inDeck.Concat(GetHighlightedCardsInHand(inDeck)).Concat(createdInHand).ToSortedCardList()); } return(inDeck.Concat(createdInHand).ToSortedCardList()); }
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)); } }