/// <summary> /// If player deals attack, defended can reveal reaction cards. /// If any of revealed cards is Moad attack effect wont be executed. /// </summary> /// <param name="attack"></param> /// <param name="attacker"></param> /// <param name="attackCard"></param> public void DealAttack(Player attacker, Card attackCard) { Game.Logger?.Log($"{Name} deals attack."); // before attack is executed defender can select some reaction cards. Card card = null; bool defended = false; var reactions = new LinkedList <Card>(ps.Hand.Where(c => c.IsReaction)); for (int i = 0; i < reactions.Count; i++) { if (reactions.Count == 0) { break; } card = User.PlayCard(reactions, ps, Game.Kingdom, Phase.Reaction, attackCard); reactions.Remove(card); if (card == null) { break; } defended |= card.Reaction(this); } if (!defended) { attackCard.Attack(this, attacker); } }