public void SaveFighter(int round, Fighter fighter)
{
IDictionary<string, IEnumerable<Cell<Content>>> replayEvents;
if (!Frames.TryGetValue(round, out replayEvents))
{
replayEvents = new Dictionary<string, IEnumerable<Cell<Content>>>();
Frames.Add(round, replayEvents);
}
var cells = fighter.Body.Select(x => new Cell<Content> { X = x.X, Y = x.Y, Content = Content.Body }).ToList();
if (fighter.Head != null)
cells.Add(new Cell<Content> { X = fighter.Head.X, Y = fighter.Head.Y, Content = Content.Head });
if (fighter.Tail != null)
cells.Add(new Cell<Content> { X = fighter.Tail.X, Y = fighter.Tail.Y, Content = Content.Tail });
replayEvents.Add(fighter.Id, cells);
}
}