Sanguosha.UI.Controls.GameLogs.AppendCardMoveLog C# (CSharp) Méthode

AppendCardMoveLog() public méthode

public AppendCardMoveLog ( List cards, DeckPlace source, DeckPlace dest ) : void
cards List
source Sanguosha.Core.Cards.DeckPlace
dest Sanguosha.Core.Cards.DeckPlace
Résultat void
        public void AppendCardMoveLog(List<Card> cards, DeckPlace source, DeckPlace dest)
        {
            if (source.Player == null && dest.Player == null || cards.Count == 0)
            {
                return;
            }
            var reasons = (from card in cards select card.Log.GameAction).Distinct();
            Trace.Assert(reasons.Count() == 1);
            var reason = reasons.First();

            var docs = (from pair in Logs
                        where (source.Player == pair.Key || dest.Player == pair.Key)
                        select pair.Value).Concat(new List<FlowDocument>() { GlobalLog });

            foreach (var doc in docs)
            {
                var paragraph = LogFormatter.RichTranslateCardMove(cards, source, dest, reason);

                if (paragraph.Inlines.Count > 0)
                {
                    doc.Blocks.Add(paragraph);
                }
            }
        }