diff --git a/EDPlayerJournal/BGS/CombatZone.cs b/EDPlayerJournal/BGS/CombatZone.cs index c46f522..e6bb31a 100644 --- a/EDPlayerJournal/BGS/CombatZone.cs +++ b/EDPlayerJournal/BGS/CombatZone.cs @@ -3,9 +3,52 @@ using System.Linq; namespace EDPlayerJournal.BGS; public class CombatZone : Transaction { - public string Type { get; set; } = ""; - public string Grade { get; set; } = ""; - public int Amount { get; set; } = 0; + /// + /// Type, either on foot or ship + /// + public string Type { get; set; } = "Ship"; + + /// + /// Difficulty type, low, medium or high. + /// + public string Grade { get; set; } = "Low"; + + /// + /// How many? + /// + public int Amount { get; set; } = 1; + + /// + /// Whether spec ops were won. + /// + public bool? SpecOps { get; set; } + + /// + /// Whether captain was won + /// + public bool? Captain { get; set; } + + /// + /// Whether correspondent objective was won + /// + public bool? Correspondent { get; set; } + + /// + /// Whether cap ship objective was won + /// + public bool? CapitalShip { get; set; } + + /// + /// How many optional objectives were completed? + /// + public int OptionalObjectivesCompleted { + get { + return new List() { SpecOps, Captain, Correspondent, CapitalShip } + .Where(x => x != null && x == true) + .Count() + ; + } + } public override int CompareTo(Transaction? obj) { if (obj == null || obj.GetType() != typeof(CombatZone)) { diff --git a/EDPlayerJournal/BGS/TransactionParser.cs b/EDPlayerJournal/BGS/TransactionParser.cs index 24665ab..32c4bba 100644 --- a/EDPlayerJournal/BGS/TransactionParser.cs +++ b/EDPlayerJournal/BGS/TransactionParser.cs @@ -106,6 +106,11 @@ internal class TransactionParserContext { Faction = LastRecordedAwardingFaction, Grade = grade, Type = cztype, + // Sad truth is, if HaveSeenXXX is false, we just don't know for certain + CapitalShip = HaveSeenCapShip ? true : null, + SpecOps = HaveSeenSpecOps ? true : null, + Correspondent = HaveSeenCorrespondent ? true : null, + Captain = HaveSeenCaptain ? true : null, Amount = 1, }; zone.Entries.Add(e);