public void PlayerAboutToDiscardCard(Player p, List<Card> cards, DiscardReason reason)
{
SyncCardsAll(cards);
try
{
var arg = new DiscardCardEventArgs();
arg.Source = p;
arg.Targets = null;
arg.Cards = cards;
arg.Reason = reason;
Emit(GameEvent.CardsEnteringDiscardDeck, arg, true);
}
catch (TriggerResultException)
{
throw new NotImplementedException();
}
}