private SituationReport EndOneDay() { city.EndDay(); SituationReport situationReport = city.DailyUpdates.Last(); var document = new DailyUpdateDocument($"Day {city.DailyUpdates.Count}", situationReport); city.allDocuments.Add(document); DocumentBrowser.GoTo(document); documentsListBox.SelectedItem = document; if (city.People.Count(ppl => ppl.IsActiveCase) == 0 && !city.OutbreakEnded) { city.OutbreakEnded = true; theChart.SetValue(Grid.ColumnSpanProperty, 1); theChart2.Visibility = Visibility.Visible; int cases = city.People.Count(ppl => ppl.DiseaseStatus != DiseaseStage.Susceptible); var endDocument = new InformationDocument("Outbreak contained!", $@"There are no more active cases. We can declare the outbreak in Sorpigal contained. You contained this outbreak in {city.Today} days. A total of {cases} people caught the disease. You needed to quarantine {city.People.Count(ppl => ppl.Quarantined)} people. " + (cases < 20 ? "Well done and thank you for playing our game!" : "This could have gone a bit better...")); city.allDocuments.Add(endDocument); documentsListBox.SelectedItem = endDocument; } return(situationReport); }
public void AddCurrentStatus(SituationReport report) { foreach (Person person in report.PositiveOrdered.Concat(report.PositiveSentinel)) { KnownCases.Add(person); } SeriesCollection[0].Values.Add(KnownCases.Count); }
private void PassTime_Click(object sender, RoutedEventArgs e) { SituationReport report = EndOneDay(); while (!city.OutbreakEnded && report.PositiveOrdered.Count == 0 && report.PositiveSentinel.Count == 0) { report = EndOneDay(); } }