コード例 #1
0
        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");
            }
        }
コード例 #2
0
 public static void SetPremadeDeck(Deck deck)
 {
     PlayerDeck.Clear();
     foreach (var card in deck.GetSelectedDeckVersion().Cards)
     {
         PlayerDeck.Add((Card)card.Clone());
     }
     IsUsingPremade = true;
 }
コード例 #3
0
        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");
            }
        }
コード例 #4
0
#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();
                }
            }
        }