public Competition(List <Property> properties, World world) : base(properties, world) { OccasionType = OccasionType.Competition; Competitors = new List <HistoricalFigure>(); foreach (Property property in properties) { switch (property.Name) { case "winner_hfid": Winner = world.GetHistoricalFigure(Convert.ToInt32(property.Value)); break; case "competitor_hfid": Competitors.Add(world.GetHistoricalFigure(Convert.ToInt32(property.Value))); break; } } Winner.AddEvent(this); Competitors.ForEach(competitor => { if (competitor != Winner && competitor != HistoricalFigure.Unknown) { competitor.AddEvent(this); } }); }