Esempio n. 1
0
        public void OpponentPlay(CardPosChangeArgs args)
        {
            OpponentHandCount--;

            if (args.Id == "GAME_005")
            {
                OpponentHasCoin = false;
            }
            if (!string.IsNullOrEmpty(args.Id))
            {
                var stolen = args.From != -1 && OpponentHandMarks[args.From - 1] == CardMark.Stolen;
                var card = OpponentCards.FirstOrDefault(c => c.Id == args.Id && c.IsStolen == stolen);

                if (card != null)
                {
                    card.Count++;
                }
                else
                {
                    card = GetCardFromId(args.Id);
                    card.IsStolen = stolen;
                    OpponentCards.Add(card);
                }

                LogDeckChange(true, card, false);

                if (card.IsStolen)
                    Logger.WriteLine("Opponent played stolen card from " + args.From);
            }

            for (int i = args.From - 1; i < MaxHandSize - 1; i++)
            {
                OpponentHandAge[i] = OpponentHandAge[i + 1];
                OpponentHandMarks[i] = OpponentHandMarks[i + 1];
            }

            OpponentHandAge[MaxHandSize - 1] = -1;
            OpponentHandMarks[MaxHandSize - 1] = CardMark.None;

            LogOpponentHand();
        }
Esempio n. 2
0
        public void OpponentDraw(CardPosChangeArgs args)
        {
            OpponentHandCount++;
            OpponentDeckCount--;

            if (!ValidateOpponentHandCount())
                return;

            if (OpponentHandAge[OpponentHandCount - 1] != -1)
            {
                Logger.WriteLine(string.Format("Card {0} is already set to {1}", OpponentHandCount - 1,
                                              OpponentHandAge[OpponentHandCount - 1]), "Hearthstone");

                return;
            }

            Logger.WriteLine(string.Format("Set card {0} to age {1}", OpponentHandCount - 1, args.Turn), "Hearthstone");

            OpponentHandAge[OpponentHandCount - 1] = args.Turn;
            OpponentHandMarks[OpponentHandCount - 1] = CardMark.None;

            LogOpponentHand();
        }