From 091c4434407f31732ff6584e9df4e7d7609347ea Mon Sep 17 00:00:00 2001 From: Florian Stinglmayr Date: Fri, 25 Nov 2022 10:44:48 +0100 Subject: [PATCH] reintroduce human readable mission names --- EDPlayerJournal/BGS/MissionCompleted.cs | 6 +- EDPlayerJournal/BGS/MissionFailed.cs | 8 +- EDPlayerJournal/EDPlayerJournal.csproj | 6 -- EDPlayerJournal/EnglishMissionNames.cs | 105 ++++++++++++++++++++++++ EDPlayerJournal/Mission.cs | 24 ++++++ EDPlayerJournal/MissionNames.xml | 84 ------------------- 6 files changed, 134 insertions(+), 99 deletions(-) create mode 100644 EDPlayerJournal/EnglishMissionNames.cs delete mode 100644 EDPlayerJournal/MissionNames.xml diff --git a/EDPlayerJournal/BGS/MissionCompleted.cs b/EDPlayerJournal/BGS/MissionCompleted.cs index f080ba4..fc8536b 100644 --- a/EDPlayerJournal/BGS/MissionCompleted.cs +++ b/EDPlayerJournal/BGS/MissionCompleted.cs @@ -16,11 +16,7 @@ public class MissionCompleted : Transaction { return ""; } - if (string.IsNullOrEmpty(c.Mission.LocalisedName)) { - return (c.Mission.Name ?? ""); - } else { - return c.Mission.LocalisedName; - } + return c.Mission.FriendlyName; } } diff --git a/EDPlayerJournal/BGS/MissionFailed.cs b/EDPlayerJournal/BGS/MissionFailed.cs index 98770f2..56abb37 100644 --- a/EDPlayerJournal/BGS/MissionFailed.cs +++ b/EDPlayerJournal/BGS/MissionFailed.cs @@ -39,8 +39,9 @@ public class MissionFailed : Transaction { return -1; } - // +1 since the other entries are just copies of the one we have in our properties - public int Amount => Entries.Count + 1; + public int Amount { + get { return Entries.Count + 1; } + } public override string ToString() { StringBuilder builder = new StringBuilder(); @@ -51,8 +52,7 @@ public class MissionFailed : Transaction { builder.AppendFormat("{0}x Mission failed: \"{1}\"", Amount, - Failed?.Mission?.LocalisedName != null ? - Failed?.Mission?.LocalisedName : Failed?.Mission?.Name + Failed?.Mission?.FriendlyName ); return builder.ToString(); diff --git a/EDPlayerJournal/EDPlayerJournal.csproj b/EDPlayerJournal/EDPlayerJournal.csproj index ac784af..adbf5fa 100644 --- a/EDPlayerJournal/EDPlayerJournal.csproj +++ b/EDPlayerJournal/EDPlayerJournal.csproj @@ -10,10 +10,4 @@ - - - Always - - - diff --git a/EDPlayerJournal/EnglishMissionNames.cs b/EDPlayerJournal/EnglishMissionNames.cs new file mode 100644 index 0000000..85e66d9 --- /dev/null +++ b/EDPlayerJournal/EnglishMissionNames.cs @@ -0,0 +1,105 @@ +using EDPlayerJournal.BGS; +using static System.Runtime.InteropServices.JavaScript.JSType; +using System.Collections.ObjectModel; +using System.Diagnostics.Metrics; +using System.Net.NetworkInformation; +using System.Numerics; +using System.Runtime.InteropServices; +using System.Security.Cryptography; +using System; + +namespace EDPlayerJournal; + +public class EnglishMissionNames { + public static Dictionary MissionNames { get; } = new Dictionary() { + {"Chain_FindThePirateLord_name", "Assassination (Pirate Lord) (Chain)"}, + {"Chain_RegainFooting_name", "Regain Footing (Chain)"}, + {"Chain_SalvageJustice_name", "Assassination (Legal) (Chain)"}, + {"Mission_Altruism_name", "Donate"}, + {"Mission_AltruismCredits_Bust_name", "Donate Credits (Bust)"}, + {"Mission_AltruismCredits_Famine_name", "Donate Credits (Famine)"}, + {"Mission_AltruismCredits_name", "Donate Credits"}, + {"Mission_Assassinate_Illegal_BLOPS_name", "Assassination (Illegal)"}, + {"Mission_Assassinate_Legal_Corporate_name", "Corporate Assassination (Legal)"}, + {"Mission_Assassinate_name", "Assassination"}, + {"Mission_Assassinate_Planetary_name", "Assassination (Planetary Scan)"}, + {"Mission_Collect_Bust_name", "Provide (Bust)"}, + {"Mission_Collect_CivilLiberty_name", "Provide (Civil Liberty)"}, + {"Mission_Collect_CivilUnrest_name", "Provide (Civil Unrest)"}, + {"Mission_Collect_Famine_name", "Provide (Famine)"}, + {"Mission_Collect_Industrial_name", "Provide (Industrial)"}, + {"Mission_Collect_name", "Provide"}, + {"Mission_Collect_RankEmp_name", "Provide (Imperial Navy)"}, + {"Mission_Collect_Retreat_name", "Provide (Retreat)"}, + {"Mission_Courier_Democracy_name", "Courier (Democracy)"}, + {"Mission_Courier_Elections_name", "Courier (Elections)"}, + {"Mission_Courier_Expansion_name", "Courier (Expansion)"}, + {"Mission_Courier_Famine_name", "Courier (Famine)"}, + {"Mission_Courier_Lockdown_name", "Courier (Lockdown)"}, + {"Mission_Courier_name", "Courier"}, + {"Mission_Courier_RankEmp_name", "Courier (Imperial Navy)"}, + {"Mission_Delivery_Agriculture_name", "Delivery (Agriculture)"}, + {"Mission_Delivery_Boom_name", "Delivery (Boom)"}, + {"Mission_Delivery_Democracy_name", "Delivery (Democracy)"}, + {"Mission_Delivery_Investment_name", "Delivery (Investment)"}, + {"Mission_Delivery_name", "Delivery"}, + {"Mission_Delivery_RankEmp_name", "Delivery (Imperial Navy)"}, + {"Mission_Delivery_Retreat_name", "Delivery (Retreat)"}, + {"Mission_DeliveryWing_name", "Delivery (Wing)"}, + {"Mission_DeliveryWing_War_name", "Delivery (Wing) (War)"}, + {"Mission_Hack_BLOPS_Boom_name", "Hack Surface Installation (Boom)"}, + {"Mission_Hack_BLOPS_Elections_name", "Hack Surface Installation (Elections)"}, + {"Mission_Hack_BLOPS_Expansion_name", "Hack Surface Installation (Expansion)"}, + {"MISSION_Hack_BLOPS_name", "Hack Surface Installation"}, + {"Mission_HackMegaship_name", "Hack Megaship"}, + {"Mission_LongDistanceExpedition_Explorer_Boom_name", "Long Distance Expedition (Boom)"}, + {"Mission_LongDistanceExpedition_name", "Long Distance Expedition"}, + {"Mission_Massacre_Conflict_CivilWar_name", "Massacre (Civil War)"}, + {"Mission_Massacre_name", "Massacre"}, + {"Mission_Massacre_RankEmp_name", "Massacre (Imperial Navy)"}, + {"Mission_MassacreWing_Legal_Bust_name", "Massacre (Wing) (Bust)"}, + {"Mission_MassacreWing_name", "Massacre (Wing)"}, + {"Mission_OnFoot_Assassination_MB_name", "On Foot Assassination"}, + {"Mission_OnFoot_AssassinationIllegal_MB_name", "On Foot Assassination (Illegal)"}, + {"Mission_OnFoot_Collect_Contact_MB_name", "On Foot Collect"}, + {"Mission_OnFoot_Collect_MB_name", "On Foot Collection"}, + {"Mission_OnFoot_Delivery_Contact_MB_name", "On Foot Delivery (Contact)"}, + {"Mission_OnFoot_Hack_Upload_Covert_MB_name", "On Foot Hack (Covert Upload)"}, + {"Mission_OnFoot_Hack_Upload_MB_name", "On Foot Hack (Upload)"}, + {"Mission_OnFoot_Heist_POI_MB_name", "On Foot Heist (POI)"}, + {"Mission_OnFoot_Onslaught_MB_name", "On Foot Onslaught"}, + {"Mission_OnFoot_Onslaught_Offline_MB_name", "On Foot Onslaught (Offline)"}, + {"Mission_OnFoot_ProductionHeist_Covert_MB_name", "On Foot Production Heist (Covert)"}, + {"Mission_OnFoot_ProductionHeist_MB_name", "On Foot Production Heist"}, + {"Mission_OnFoot_Reboot_MB_name", "On Foot Reboot"}, + {"Mission_OnFoot_RebootRestore_MB_name", "On Foot Reboot/Restore"}, + {"Mission_OnFoot_Sabotage_Production_Covert_MB_name", "On Foot Sabotage Production (Covert)"}, + {"Mission_OnFoot_Salvage_MB_name", "On Foot Salvage"}, + {"Mission_OnFoot_SalvageIllegal_MB_name", "On Foot Salvage (Illegal)"}, + {"Mission_PassengerBulk_AIDWORKER_ARRIVING", "Aid Workers Seeking Transport"}, + {"Mission_PassengerVIP", "Passenger (VIP)"}, + {"Mission_PassengerVIP_Criminal_BOOM_name", "Passenger Criminal (VIP) (Boom)"}, + {"Mission_PassengerVIP_name", "Passenger (VIP)"}, + {"Mission_PassengerVIP_Scientist_FAMINE_name", "Passenger Scientist (VIP) (Famine)"}, + {"Mission_PassengerVIP_Tourist_BOOM_name", "Passenger Tourist (VIP) (Boom)"}, + {"Mission_Rescue_Planet_name", "Planet Rescue"}, + {"MISSION_Salvage_CivilUnrest_name", "Salvage (Civil Unrest)"}, + {"MISSION_Salvage_Expansion_name", "Salvage (Expansion)"}, + {"MISSION_Salvage_Illegal_name", "Salvage (Illegal)"}, + {"Mission_Salvage_name", "Salvage"}, + {"Mission_Salvage_RankEmp_name", "Salvage (Imperial Navy)"}, + {"MISSION_Salvage_Refinery_name", "Salvage (Refinery)"}, + {"MISSION_Salvage_Retreat_name", "Salvage (Retreat)"}, + {"MISSION_Scan_name", "Scan"}, + {"Mission_Sightseeing_Criminal_FAMINE_name", "Sightseeing (Criminal) (Famine)"}, + {"Mission_Sightseeing_name", "Sightseeing"}, + }; + + public static string? Translate(string name) { + if (MissionNames.ContainsKey(name)) { + return MissionNames[name]; + } + + return null; + } +} diff --git a/EDPlayerJournal/Mission.cs b/EDPlayerJournal/Mission.cs index 141a7cd..adfc475 100644 --- a/EDPlayerJournal/Mission.cs +++ b/EDPlayerJournal/Mission.cs @@ -250,6 +250,30 @@ public class Mission : IComparable { /// public List FactionEffects { get; set; } = new List(); + /// + /// Returns a friendly human-readable name for the mission. If a localised name is available + /// it will use that, baring that it will check EnglishMissionNames for a translation, and + /// if that ain't available either, it will just use the internal Name. + /// + public string FriendlyName { + get { + if (!string.IsNullOrEmpty(LocalisedName)) { + return LocalisedName; + } + + if (string.IsNullOrEmpty(Name)) { + return "Unknown Mission"; + } + + string? translate = EnglishMissionNames.Translate(Name); + if (!string.IsNullOrEmpty(translate)) { + return translate; + } + + return Name; + } + } + public int CompareTo(Mission? other) { if (other == null) { return 1; diff --git a/EDPlayerJournal/MissionNames.xml b/EDPlayerJournal/MissionNames.xml deleted file mode 100644 index 72ece73..0000000 --- a/EDPlayerJournal/MissionNames.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - Assassination (Pirate Lord) (Chain) - Regain Footing (Chain) - Assassination (Legal) (Chain) - Donate - Donate Credits (Bust) - Donate Credits (Famine) - Donate Credits - Assassination (Illegal) - Corporate Assassination (Legal) - Assassination - Assassination (Planetary Scan) - Provide (Bust) - Provide (Civil Liberty) - Provide (Civil Unrest) - Provide (Famine) - Provide (Industrial) - Provide - Provide (Imperial Navy) - Provide (Retreat) - Courier (Democracy) - Courier (Elections) - Courier (Expansion) - Courier (Famine) - Courier (Lockdown) - Courier - Courier (Imperial Navy) - Delivery (Agriculture) - Delivery (Boom) - Delivery (Democracy) - Delivery (Investment) - Delivery - Delivery (Imperial Navy) - Delivery (Retreat) - Delivery (Wing) - Delivery (Wing) (War) - Hack Surface Installation (Boom) - Hack Surface Installation (Elections) - Hack Surface Installation (Expansion) - Hack Surface Installation - Hack Megaship - Long Distance Expedition (Boom) - Long Distance Expedition - Massacre (Civil War) - Massacre - Massacre (Imperial Navy) - Massacre (Wing) (Bust) - Massacre (Wing) - On Foot Assassination - On Foot Assassination (Illegal) - On Foot Collect - On Foot Collection - On Foot Delivery (Contact) - On Foot Hack (Covert Upload) - On Foot Hack (Upload) - On Foot Heist (POI) - On Foot Onslaught - On Foot Onslaught (Offline) - On Foot Production Heist (Covert) - On Foot Production Heist - On Foot Reboot - On Foot Reboot/Restore - On Foot Sabotage Production (Covert) - On Foot Salvage - On Foot Salvage (Illegal) - Aid Workers Seeking Transport - Passenger (VIP) - Passenger Criminal (VIP) (Boom) - Passenger (VIP) - Passenger Scientist (VIP) (Famine) - Passenger Tourist (VIP) (Boom) - Planet Rescue - Salvage (Civil Unrest) - Salvage (Expansion) - Salvage (Illegal) - Salvage - Salvage (Imperial Navy) - Salvage (Refinery) - Salvage (Retreat) - Scan - Sightseeing (Criminal) (Famine) - Sightseeing -