From 310a335ee36612f1ccee9df95bd7c9129eee5d18 Mon Sep 17 00:00:00 2001 From: Richard Griffiths Date: Fri, 11 Jun 2021 09:54:29 +0200 Subject: [PATCH] Quickfix on Flashpoint check in Skirmish causing a crash --- src/Core/MissionControl.cs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Core/MissionControl.cs b/src/Core/MissionControl.cs index a92ecbe6..4d0e981c 100644 --- a/src/Core/MissionControl.cs +++ b/src/Core/MissionControl.cs @@ -188,7 +188,7 @@ public void SetContract(Contract contract) { if (AllowMissionControl()) { Main.Logger.Log($"[MissionControl] Mission Control IS allowed to run. "); - if (IsAnyStoryContract()) Main.Logger.Log($"[MissionControl] Contract is a Story contract {(IsInActiveFlashpointContract()? "and it's being used in a Flashpoint." : "")}"); + if (IsAnyStoryContract()) Main.Logger.Log($"[MissionControl] Contract is a Story contract {(IsInActiveFlashpointContract() ? "and it's being used in a Flashpoint." : "")}"); if (IsAnyFlashpointContract()) Main.Logger.Log($"[MissionControl] Contract is a Flashpoint contract."); Main.Logger.Log($"[MissionControl] Player drop difficulty: '{PlayerLanceDropDifficultyValue}' (Skull value '{PlayerLanceDropSkullRating}')"); Main.Logger.Log($"[MissionControl] Player drop tonnage: '{PlayerLanceDropTonnage}' tons"); @@ -370,7 +370,7 @@ public bool AreAdditionalLancesAllowed(string teamType) { if (Main.Settings.AdditionalLanceSettings.Enable) { bool areLancesAllowed = !Main.Settings.AdditionalLanceSettings.IsTeamDisabled(teamType); - if (areLancesAllowed) areLancesAllowed = (!IsAnyFlashpointContract() && !IsAnyStoryContract())|| (IsAnyFlashpointContract() && Main.Settings.EnableFlashpointOverrides && Main.Settings.AdditionalLanceSettings.EnableForFlashpoints || (IsAnyStoryContract() && Main.Settings.EnableStoryOverrides && Main.Settings.AdditionalLanceSettings.EnableForStory)); + if (areLancesAllowed) areLancesAllowed = (!IsAnyFlashpointContract() && !IsAnyStoryContract()) || (IsAnyFlashpointContract() && Main.Settings.EnableFlashpointOverrides && Main.Settings.AdditionalLanceSettings.EnableForFlashpoints || (IsAnyStoryContract() && Main.Settings.EnableStoryOverrides && Main.Settings.AdditionalLanceSettings.EnableForStory)); if (areLancesAllowed) areLancesAllowed = Main.Settings.AdditionalLanceSettings.GetValidContractTypes().Contains(CurrentContractType); if (areLancesAllowed) areLancesAllowed = Main.Settings.AdditionalLanceSettings.DisableWhenMaxTonnage.AreLancesAllowed((int)this.CurrentContract.Override.lanceMaxTonnage); if (areLancesAllowed) areLancesAllowed = Main.Settings.ActiveAdditionalLances.GetValidContractTypes(teamType).Contains(CurrentContractType); @@ -480,6 +480,8 @@ public bool IsAnyFlashpointContract() { } public bool IsInActiveFlashpointContract() { + if (IsSkirmish()) return false; + return UnityGameInstance.BattleTechGame.Simulation.ActiveFlashpoint?.ActiveContract.encounterObjectGuid == this.CurrentContract.encounterObjectGuid; } @@ -511,7 +513,7 @@ public bool AllowMissionControl(bool SkipFromSaveCheck = false) { // Allow for story contracts that have overrides or player lances allowed if (IsAnyStoryContract() && (Main.Settings.EnableStoryOverrides || Main.Settings.EnableAdditionalPlayerMechsForStory)) return true; - + // Allow for flashpoints contracts that manually override flashpoints - even if flashpoint settings are off if (IsAnyFlashpointContract() && Main.Settings.ActiveContractSettings.Enabled) return true;