public void AddMessage(PlayerMessage e) { var desc = e.Desc; if (HistoryLog.Count == 0) { var entry = new HistoryEntry(desc); HistoryLog.Add(entry); HistoryRecent.Add(entry); } else { var last = HistoryLog.Last(); if (last._desc.ToString() == desc.ToString()) { last.times++; last.SetScreenTime(); if (HistoryRecent.Any()) { if (HistoryRecent.Last() != last) { HistoryRecent.Remove(last); HistoryRecent.Add(last); } } else { HistoryRecent.Add(last); } } else { var entry = new HistoryEntry(desc); HistoryLog.Add(entry); HistoryRecent.Add(entry); } } }