diff --git a/Common/Languages/English/Keyed/RealisticOrbitalTrade.xml b/Common/Languages/English/Keyed/RealisticOrbitalTrade.xml index 6cda12e..6ff0b94 100644 --- a/Common/Languages/English/Keyed/RealisticOrbitalTrade.xml +++ b/Common/Languages/English/Keyed/RealisticOrbitalTrade.xml @@ -52,4 +52,5 @@ (only trades made after renegotiation was added to the mod can be renegotiated) You've set all exchange of goods to zero. Did you intend to cancel the trade rather than renegotiate? Original negotiator: {0} (+{1}) + I've done my very best to test this feature thoroughly, but it is quite complex, so I might have missed some detail or messed up somewhere. I strongly recommend you save your game each time before you use this feature until you've convinced yourself it works 100% correctly. If you encounter any unexpected or incorrect behavior I would very much appreciate it if you reported it to me.\n\nIf you choose "Confirm" below, this message will not show again. diff --git a/Source/RealisticOrbitalTrade/Core/RealisticOrbitalTradeMod.cs b/Source/RealisticOrbitalTrade/Core/RealisticOrbitalTradeMod.cs index fd8be1e..73c0159 100644 --- a/Source/RealisticOrbitalTrade/Core/RealisticOrbitalTradeMod.cs +++ b/Source/RealisticOrbitalTrade/Core/RealisticOrbitalTradeMod.cs @@ -14,11 +14,13 @@ namespace RealisticOrbitalTrade; internal class RealisticOrbitalTradeMod : Mod { - private readonly ModContentPack content; +#pragma warning disable CS8618 // Set by constructor + internal static RealisticOrbitalTradeMod instance; +#pragma warning restore CS8618 public RealisticOrbitalTradeMod(ModContentPack content) : base(content) { - this.content = content; + instance = this; // if (!ModsConfig.RoyaltyActive) // { @@ -41,7 +43,7 @@ public override void DoSettingsWindowContents(Rect inRect) public override string SettingsCategory() { - return content.Name; + return Content.Name; } public static void Message(string msg) diff --git a/Source/RealisticOrbitalTrade/Core/Settings.cs b/Source/RealisticOrbitalTrade/Core/Settings.cs index c0bbf06..8785a71 100644 --- a/Source/RealisticOrbitalTrade/Core/Settings.cs +++ b/Source/RealisticOrbitalTrade/Core/Settings.cs @@ -6,11 +6,13 @@ namespace RealisticOrbitalTrade internal class Settings : ModSettings { private static bool _printDevMessages = false; + private static bool _renegotiationWarningShown = false; private static bool _activeTradePausesDepartureTimer = false; private static int _minTicksUntilDepartureBeforeGraceTime = 20000; private static int _departureGraceTimeTicks = 40000; internal static bool PrintDevMessages { get => _printDevMessages; set => _printDevMessages = value; } + internal static bool RenegotiationWarningShown { get => _renegotiationWarningShown; set => _renegotiationWarningShown = value; } internal static bool ActiveTradePausesDepartureTimer { get => _activeTradePausesDepartureTimer; set => _activeTradePausesDepartureTimer = value; } internal static int MinTicksUntilDepartureBeforeGraceTime { get => _minTicksUntilDepartureBeforeGraceTime; set => _minTicksUntilDepartureBeforeGraceTime = value; } internal static int DepartureGraceTimeTicks { get => _departureGraceTimeTicks; set => _departureGraceTimeTicks = value; } @@ -19,7 +21,11 @@ public override void ExposeData() { base.ExposeData(); + // Meta Scribe_Values.Look(ref _printDevMessages, "printDevMessages", false); + Scribe_Values.Look(ref _renegotiationWarningShown, "renegotiationWarningShown", false); + + // Mod Scribe_Values.Look(ref _activeTradePausesDepartureTimer, "activeTradePausesDepartureTimer", false); Scribe_Values.Look(ref _minTicksUntilDepartureBeforeGraceTime, "minTicksUntilDeparture", 20000); Scribe_Values.Look(ref _departureGraceTimeTicks, "departureGraceTimeTicks", 40000); @@ -32,7 +38,7 @@ public static void DoSettingsWindowContents(Rect inRect) if (Prefs.DevMode) { - listingStandard.CheckboxLabeled("DEV: Print dev messages", ref _printDevMessages); + listingStandard.CheckboxLabeled("DEV: Print dev log messages (rather verbose)", ref _printDevMessages); } listingStandard.CheckboxLabeled( diff --git a/Source/RealisticOrbitalTrade/Dialogs/Dialog_RenegotiateTrade.cs b/Source/RealisticOrbitalTrade/Dialogs/Dialog_RenegotiateTrade.cs index d0bbad0..9ee3624 100644 --- a/Source/RealisticOrbitalTrade/Dialogs/Dialog_RenegotiateTrade.cs +++ b/Source/RealisticOrbitalTrade/Dialogs/Dialog_RenegotiateTrade.cs @@ -78,10 +78,20 @@ public override void PreOpen() quickSearchWidget.Reset(); } + private bool renegotiationMessageShown = false; public override void PostOpen() { base.PostOpen(); CacheTradeables(); + + if (!Settings.RenegotiationWarningShown && !renegotiationMessageShown) + { + Find.WindowStack.Add(Dialog_MessageBox.CreateConfirmation("RealisticOrbitalTrade.RenegotiationWarning".Translate(), () => + { + Settings.RenegotiationWarningShown = true; + RealisticOrbitalTradeMod.instance.WriteSettings(); + })); + } } public override void PostClose()