using System.Linq; using System.Text; using EDPlayerJournal.BGS; namespace EliteBGS.LogGenerator; public class FailedMissionFormat : LogFormatter { public string GenerateLog(Objective objective) { var missions = objective.EnabledOfType(); if (missions.Count <= 0) { return ""; } StringBuilder builder = new StringBuilder(); var grouping = missions .GroupBy(x => x.Mission.IsOnFoot) ; foreach (var group in grouping) { int amount = group.Count(); if (group.Key) { builder.AppendFormat("Failed {0} On Foot Mission(s)\n", amount); } else { builder.AppendFormat("Failed {0} Ship Mission(s)\n", amount); } } return builder.ToString().Trim(); } public string GenerateSummary(Objective objective) { var missions = objective.EnabledOfType(); if (missions.Count <= 0) { return ""; } StringBuilder sb = new(); int onFootFails = missions.Where(x => x.Mission.IsOnFoot).Count(); int shipFails = missions.Where(x => !x.Mission.IsOnFoot).Count(); sb.Append("Fails: "); if (onFootFails > 0) { sb.AppendFormat("{0} Ground", onFootFails); } if (shipFails > 0) { if (onFootFails > 0) { sb.Append(", "); } sb.AppendFormat("{0} Ship", shipFails); } return sb.ToString(); } }