public static void PlayerMulligan(string cardId) { PlayerHandCount--; if (string.IsNullOrEmpty(cardId)) { return; } var drawnCard = PlayerDrawn.FirstOrDefault(c => c.Id == cardId); if (drawnCard != null) { drawnCard.Count--; if (drawnCard.Count < 1) { PlayerDrawn.Remove(drawnCard); } } var deckCard = PlayerDeck.FirstOrDefault(c => c.Id == cardId); if (deckCard != null) { deckCard.Count++; deckCard.InHandCount--; LogDeckChange(false, deckCard, false); } else if (Config.Instance.RemoveCardsFromDeck) { deckCard = GetCardFromId(cardId); PlayerDeck.Add(deckCard); Logger.WriteLine("Added " + deckCard.Name + " to deck (count was 0)", "Game"); } }
public static void SetPremadeDeck(Deck deck) { PlayerDeck.Clear(); foreach (var card in deck.GetSelectedDeckVersion().Cards) { PlayerDeck.Add((Card)card.Clone()); } IsUsingPremade = true; }
public static void PlayerGetToDeck(string cardId, int turn) { if (string.IsNullOrEmpty(cardId)) { return; } PlayerDeckSize++; var deckCard = PlayerDeck.FirstOrDefault(c => c.Id == cardId && c.IsStolen); if (deckCard != null) { deckCard.Count++; LogDeckChange(false, deckCard, false); } else { deckCard = GetCardFromId(cardId); deckCard.IsStolen = true; PlayerDeck.Add(deckCard); Logger.WriteLine("Added " + deckCard.Name + " to deck (count was 0)", "Game"); } }
#pragma warning restore 4014 #pragma warning disable 4014 public static void PlayerGet(string cardId, bool fromPlay, int turn) { PlayerHandCount++; if (cardId == "GAME_005" && turn == 0) { OpponentHasCoin = false; OpponentHandMarks[DefaultCoinPosition] = CardMark.None; OpponentHandAge[DefaultCoinPosition] = -1; OpponentStolenCardsInformation[DefaultCoinPosition] = null; Logger.WriteLine("Player got the coin", "Hearthstone"); } var fromSetAside = SetAsideCards.Any(id => cardId == id); if (fromSetAside) { Logger.WriteLine("Got card from setaside: " + cardId, "Game"); foreach (var c in SetAsideCards) { PlayerDeckDiscard(c); } SetAsideCards.Clear(); } var card = PlayerDeck.FirstOrDefault(c => c.Id == cardId && (!c.IsStolen || fromSetAside)); if (card != null) { card.InHandCount++; card.JustDrawn(); } else if (Config.Instance.ShowPlayerGet && !fromPlay) { var drawnCard = PlayerDrawn.FirstOrDefault(c => c.Id == cardId && c.IsStolen); if (drawnCard != null) { drawnCard.Count++; } else { drawnCard = GetCardFromId(cardId); drawnCard.IsStolen = true; PlayerDrawn.Add(drawnCard); } drawnCard.InHandCount++; drawnCard.JustDrawn(); var deckCard = PlayerDeck.FirstOrDefault(c => c.Id == cardId && c.IsStolen); if (deckCard != null) { deckCard.Count++; deckCard.InHandCount++; LogDeckChange(false, deckCard, false); } else { deckCard = GetCardFromId(cardId); deckCard.InHandCount++; deckCard.IsStolen = true; PlayerDeck.Add(deckCard); deckCard.JustDrawn(); } } }