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