public void QueueIncident(FiringIncident incident, float afterDays) { var qi = new QueuedIncident(incident, (int)(Find.TickManager.TicksGame + GenDate.TicksPerDay * afterDays)); incidentQueue.Add(qi); //Log.Message("Queued Hospitality incident after " + afterDays + " days. Queue has now " + incidentQueue.Count + " items."); }
private static void RemoveSomeIncidents(IncidentQueue incidentQueue) { const int rangeOfDays = 3; IncidentQueue backupQueue = new IncidentQueue(); bool skip = true; int amount = 0; int newAmount = 0; // Copy and thin foreach (QueuedIncident incident in incidentQueue) { // After range of days copy everything if (incident.FireTick - GenTicks.TicksGame >= GenDate.TicksPerDay * rangeOfDays) { backupQueue.Add(incident); } else { // Before, copy every second incident amount++; if (!skip) { backupQueue.Add(incident); newAmount++; } skip = !skip; } } // Add them back incidentQueue.Clear(); foreach (QueuedIncident incident in backupQueue) { incidentQueue.Add(incident); } Log.Message($"Reduced {amount} visits to {newAmount}, by cancelling every 2nd within the next {rangeOfDays} days."); }