public void HandleCardTransferToHand(Player from, Player to, List<Card> cards, MovementHelper helper = null)
{
cards = new List<Card>(cards);
if (to.IsDead)
{
if (cards.Any(cd => cd.Place.DeckType != DeckType.Hand && cd.Place.DeckType != DeckType.Equipment && cd.Place.DeckType != DeckType.DelayedTools))
{
CardsMovement move1 = new CardsMovement();
move1.Cards = new List<Card>(cards);
move1.To = new DeckPlace(null, DeckType.Discard);
MoveCards(move1);
PlayerLostCard(from, cards);
}
return;
}
CardsMovement move = new CardsMovement();
move.Cards = new List<Card>(cards);
move.To = new DeckPlace(to, DeckType.Hand);
if (helper != null)
{
move.Helper = helper;
}
MoveCards(move);
EnterAtomicContext();
PlayerLostCard(from, cards);
PlayerAcquiredCard(to, cards);
ExitAtomicContext();
}