public void AddNewThreatsToTracks(int currentTurn) { PhaseStarting(this, new PhaseEventArgs { PhaseHeader = ResolutionPhase.AddNewThreats.GetDescription() }); var newExternalThreats = ExternalThreats.Where(threat => threat.TimeAppears == currentTurn).ToList(); foreach (var newThreat in newExternalThreats) { newThreat.AttackedSittingDuck += (sender, args) => { ThreatAttackedShip(sender, args); }; newThreat.PlaceOnTrack(ExternalTracks[newThreat.CurrentZone]); EventMaster.LogEvent(string.Format(CultureInfo.CurrentCulture, "{0} Appeared", newThreat.DisplayName)); } var newInternalThreats = InternalThreats.Where(threat => threat.TimeAppears == currentTurn).ToList(); foreach (var newThreat in newInternalThreats) { newThreat.AttackedSittingDuck += (sender, args) => { ThreatAttackedShip(sender, args); }; newThreat.PlaceOnTrack(InternalTrack); EventMaster.LogEvent(string.Format(CultureInfo.CurrentCulture, "{0} Appeared", newThreat.DisplayName)); } if (!newExternalThreats.Any() && !newInternalThreats.Any()) { EventMaster.LogEvent("No New Threats Appear."); } }