public static bool Prefix(ref SubRoot __instance) { var cyclopsLife = (LiveMixin)__instance.GetInstanceField("live"); if (__instance.upgradeConsole == null || !cyclopsLife.IsAlive()) { return(true); // safety check } __instance.shieldUpgrade = false; __instance.sonarUpgrade = false; __instance.vehicleRepairUpgrade = false; __instance.decoyTubeSizeIncreaseUpgrade = false; bool hasFireSupression = false; HandleToggleableUpgrades(__instance, __instance.upgradeConsole.modules, ref hasFireSupression); foreach (AuxUpgradeConsole auxConsole in UpgradeConsoleCache.AuxUpgradeConsoles) { HandleToggleableUpgrades(__instance, auxConsole.Modules, ref hasFireSupression); } var cyclopsHUD = __instance.GetComponentInChildren <CyclopsHolographicHUD>(); cyclopsHUD.fireSuppressionSystem.SetActive(hasFireSupression); // No need to execute original method anymore return(false); // Completely override the method and do not continue with original execution }
public static bool Prefix(ref SubRoot __instance) { var cyclopsLife = (LiveMixin)__instance.GetInstanceField("live"); if (cyclopsLife == null || !cyclopsLife.IsAlive()) { return(true); // safety check } UpgradeManager upgradeMgr = CyclopsManager.GetUpgradeManager(__instance); if (upgradeMgr == null) { return(true); // safety check } upgradeMgr.HandleUpgrades(); // No need to execute original method anymore return(false); // Completely override the method and do not continue with original execution }