public void UpdateRealtime(TimeSpan delta) { HistoryRecent.RemoveAll(e => (e.ScreenTime -= delta.TotalSeconds) < 0); foreach (var i in Inventory) { i.UpdateRealtime(delta); } }
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); } } }