Sanguosha.Core.Games.Game.HandleCardTransfer C# (CSharp) Méthode

HandleCardTransfer() public méthode

public HandleCardTransfer ( Player from, Player to, DeckType target, List cards, Hero tag = null ) : void
from Player
to Player
target DeckType
cards List
tag Hero
Résultat void
        public void HandleCardTransfer(Player from, Player to, DeckType target, List<Card> cards, Hero tag = 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, target);
            move.Helper = new MovementHelper();
            move.Helper.PrivateDeckHeroTag = tag;
            MoveCards(move);
            bool triggerAcquiredCard = target == DeckType.Hand || target == DeckType.Equipment;
            EnterAtomicContext();
            PlayerLostCard(from, cards);
            if (triggerAcquiredCard) PlayerAcquiredCard(to, cards);
            ExitAtomicContext();
        }