diff --git a/BGS/LogEntry.cs b/BGS/LogEntry.cs index 63aaadb..c4d040f 100644 --- a/BGS/LogEntry.cs +++ b/BGS/LogEntry.cs @@ -7,6 +7,11 @@ namespace NonaBGS.BGS { public class LogEntry : IComparable { private List entries = new List(); + /// + /// Controlling faction of the station this entry was made/turned into. + /// + public string ControllingFaction { get; set; } = ""; + public List Entries => entries; public string Station { get; set; } public string System { get; set; } diff --git a/BGS/Report.cs b/BGS/Report.cs index b9a0cd0..6dc358d 100644 --- a/BGS/Report.cs +++ b/BGS/Report.cs @@ -93,19 +93,17 @@ namespace NonaBGS.BGS { entry.Entries.Add(e); entry.System = current_system; entry.Station = current_station; - entry.Faction = controlling_faction; - - collate = true; - } else if (e.Is(Events.FactionKillBond)) { - entry = new FactionKillBonds(); - entry.Entries.Add(e); - entry.System = current_system; - entry.Station = current_station; - entry.Faction = (e as FactionKillBondEntry).AwardingFaction; + entry.Faction = (e as RedeemVoucherEntry).Factions.First(); + entry.ControllingFaction = controlling_faction; collate = true; } else if (e.Is(Events.SellMicroResources)) { - entry = new SellMicroResources(current_system, current_station); + entry = new SellMicroResources() { + Faction = controlling_faction, + Station = current_station, + System = current_system + }; + entry.Entries.Add(e); } else if (e.Is(Events.MarketSell)) { entry = new SellCargo() { diff --git a/BGS/SellMicroResources.cs b/BGS/SellMicroResources.cs index ab52099..e1a4ce1 100644 --- a/BGS/SellMicroResources.cs +++ b/BGS/SellMicroResources.cs @@ -3,11 +3,6 @@ using EDJournal; namespace NonaBGS.BGS { public class SellMicroResources : LogEntry { - public SellMicroResources(string system, string station) { - System = system; - Station = station; - } - public int TotalSum { get { return Entries diff --git a/BGS/Vouchers.cs b/BGS/Vouchers.cs index 5f79fd7..7926136 100644 --- a/BGS/Vouchers.cs +++ b/BGS/Vouchers.cs @@ -23,7 +23,13 @@ namespace NonaBGS.BGS { .GroupBy(x => (x as RedeemVoucherEntry).Type) .Select(x => x.Key) .First(); - type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(v); + if (v == "CombatBond") { + type = "Combat Bond"; + } else if (v == "bounty") { + type = "Bounty"; + } else { + type = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(v); + } } return type; @@ -46,10 +52,5 @@ namespace NonaBGS.BGS { public override string ToString() { return string.Format("{0} Vouchers: {1}", Type, Credits.FormatCredits(TotalSum)); } - - /// - /// Vouchers only help the controlling faction - /// - public override bool OnlyControllingFaction => true; } } diff --git a/README.md b/README.md index 1473baf..33829fb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # NonaBGS -This tool is meant to help people contributing to the Novay Navy BGS effor to create +This tool is meant to help people contributing to the Nova Navy BGS effor to create BGS reports. The tool allows you to configure BGS objectives, and will then parse your player journal for tasks you completed relating to that BGS objective. Once the JSON player journal has been parsed, you may then generate a BGS report for the Nova Navy @@ -27,8 +27,9 @@ recognises the following completed tasks: * Vouchers, including bounty vouchers, combat bonds, and settlement vouchers (aka intel packages) * Selling of micro resources (Odyssey only) * Selling cartography data +* Selling of cargo to stations -Please note that cartography data, micro resources, and vouchers only help the controlling faction +Please note that cartography data, and micro resources only help the controlling faction of a station. The tool is clever enough to exclude these if the station you turn them in at, is not controlled by the faction you specified in the objective. @@ -53,6 +54,27 @@ The resulting discord report is kept in the Nova Navy format. Before you copy/pa Nova Navy discord, you should check the log. You can of course edit it, if something is wrong or the tool itself missed something. +## Known Issues and Bugs + +Settlement vouchers (aka Intel Packages) help every faction aligned with the given superpower. +So if you turn in an Imperial intel package on an imperial station, all factions aligned with +the Empire will gain a bit of INF boost. The tool currently cannot handle that. All intel packages +are displayed instead. + +The player journal currently does not make an entry when you win or lose a combat zone. This is a +an ommission from FDev: + +* [https://issues.frontierstore.net/issue-detail/43509](https://issues.frontierstore.net/issue-detail/43509) + +Please upvote the issue to get it fixed. Until then, you have to add combat zone wins manually. + +Also missions accepted from NPCs in Odyssey concourses do not get a player journal entry. This is +also an ommission from FDev: + +* [https://issues.frontierstore.net/issue-detail/43586](https://issues.frontierstore.net/issue-detail/43586) + +Until this is fixed, please edit the resulting BGS log text, and manually add such entries. + ## Use EDDB information NonaBGS can download information from EDDB to auto complete system- and station names. You can