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);
}
}
}