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

HandleCardDiscard() public méthode

public HandleCardDiscard ( Player p, List cards, DiscardReason reason = DiscardReason.Discard ) : void
p Player
cards List
reason DiscardReason
Résultat void
        public void HandleCardDiscard(Player p, List<Card> cards, DiscardReason reason = DiscardReason.Discard)
        {
            cards = new List<Card>(cards);
            CardsMovement move = new CardsMovement();
            move.Cards = new List<Card>(cards);
            foreach (Card c in cards)
            {
                c.Log.Source = p;
                if (reason == DiscardReason.Discard)
                    c.Log.GameAction = GameAction.Discard;
                else if (reason == DiscardReason.Play)
                    c.Log.GameAction = GameAction.Play;
                else if (reason == DiscardReason.Use)
                    c.Log.GameAction = GameAction.Use;
            }
            List<Card> backup = new List<Card>(move.Cards);
            move.To = new DeckPlace(null, DeckType.Discard);
            PlayerAboutToDiscardCard(p, move.Cards, reason);
            MoveCards(move, false, GameDelays.Discard);
            if (p != null)
            {
                PlayerLostCard(p, move.Cards);
                PlayerDiscardedCard(p, backup, reason);
            }
        }