예제 #1
0
            public static void Postfix(SGNavigationScreen __instance)
            {
                HarmonyManager.LogExceptions(() =>
                {
                    MapType?newMapType = null;
                    if (Input.GetKeyUp(KeyCode.F1))
                    {
                        newMapType = MapType.None;
                    }
                    else if (Input.GetKeyUp(KeyCode.F2))
                    {
                        newMapType = MapType.Difficulty;
                    }
                    else if (Input.GetKeyUp(KeyCode.F3))
                    {
                        newMapType = MapType.Visited;
                    }
                    else if (Input.GetKeyUp(KeyCode.F4))
                    {
                        newMapType = MapType.MaxContracts;
                    }

                    if (newMapType.HasValue && newMapType.Value != CurrentMapType)
                    {
                        CurrentMapType = newMapType.Value;
                        __instance.GetSimGameState().Starmap.Screen.RefreshSystems();
                        __instance.RefreshSystemIndicators();
                    }
                });
            }
예제 #2
0
 public static void Init(string directory, string settingsJSON)
 {
     HarmonyManager = new HarmonyManager <Settings>(
         assembly: Assembly.GetExecutingAssembly(),
         settingsJSON: settingsJSON,
         harmonyUniqId: "io.github.clintonmead.ContractTime");
 }
 public static void Init(string directory, string settingsJSON)
 {
     _harmonyManager = new HarmonyManager <Settings>(
         assembly: Assembly.GetExecutingAssembly(),
         settingsJSON: settingsJSON,
         harmonyUniqId: "io.github.clintonmead.FixRepShopAdjustment");
 }
예제 #4
0
 public static void Init(string directory, string settingsJSON)
 {
     HarmonyManager = new HarmonyManager <AlwaysDetectSettings>(
         Assembly.GetExecutingAssembly(),
         settingsJSON,
         "io.github.clintonmead.AlwaysDetect");
 }
예제 #5
0
 public static void Init(string directory, string settingsJSON)
 {
     HarmonyManager = new HarmonyManager <Settings>(
         Assembly.GetExecutingAssembly(),
         settingsJSON,
         "io.github.clintonmead.EnhancedStarMap");
 }
예제 #6
0
        public void OnApplicationStart()
        {
            Plugin.Log?.Info($"MultiplayerAvatars: '{VersionInfo.Description}'");

            HarmonyManager.ApplyDefaultPatches();
            Task versionTask = CheckVersion();

            Harmony.PatchAll();
        }
        public override void Start()
        {
            lobbyPlayerDataPatch = HarmonyManager.GetPatch <LobbyPlayersDataModelPatch>();

            if (lobbyPlayerDataPatch != null)
            {
                HarmonyManager.ApplyPatch(lobbyPlayerDataPatch);
            }
        }
예제 #8
0
        public void OnApplicationStart()
        {
            Plugin.Log?.Info($"MultiplayerExtensions: '{VersionInfo.Description}'");
            BSMLSettings.instance.AddSettingsMenu("Multiplayer", "MultiplayerExtensions.UI.settings.bsml", MPSettings.instance);

            Plugin.Config.MaxPlayers = Math.Max(Math.Min(Config.MaxPlayers, MaxPlayers), MinPlayers);
            MPState.FreeModEnabled   = false;

            HarmonyManager.ApplyDefaultPatches();
            Task versionTask = CheckVersion();

            MPEvents_Test();
        }
예제 #9
0
 public static bool Prefix(StarSystem __instance)
 {
     return(HarmonyManager.PrefixLogExceptions(() =>
     {
         int num = __instance.Sim.DaysPassed - __instance.LastRefreshDay;
         if (num >= __instance.Sim.Constants.Story.DefaultContractRefreshRate)
         {
             __instance.SetLastRefreshDay(__instance.Sim.DaysPassed);
             if (__instance.CurMaxContracts < __instance.GetSystemMaxContracts() &&
                 !__instance.Def.Depletable)
             {
                 __instance.SetCurMaxContracts(Mathf.Min(__instance.GetSystemMaxContracts(),
                                                         __instance.CurMaxContracts +
                                                         __instance.Sim.Constants.Story.ContractRenewalPerWeek * num / 7));
             }
         }
     }));
 }
예제 #10
0
        public void OnApplicationStart()
        {
            Plugin.Log?.Info($"MultiplayerExtensions: '{VersionInfo.Description}'");

            if (Plugin.Config.MaxPlayers > 100)
            {
                Plugin.Config.MaxPlayers = 100;
            }
            if (Plugin.Config.MaxPlayers < 10)
            {
                Plugin.Config.MaxPlayers = 10;
            }

            HarmonyManager.ApplyDefaultPatches();
            Task versionTask = CheckVersion();

            MPEvents_Test();
        }
예제 #11
0
            public static bool Prefix(
                StarmapRenderer __instance,
                StarSystemNode node,
                StarmapSystemRenderer renderer)
            {
                return(HarmonyManager.PrefixLogExceptions(() =>
                {
                    bool flag = __instance.starmap.CanTravelToNode(node, false);
                    RGBColor <float> color = new RGBColor <float>(1, 1, 1);

                    VisitedColors visitedColors = HarmonyManager.Settings.VisitedColors;

                    switch (CurrentMapType)
                    {
                    case MapType.None:
                        return true;

                    case MapType.Difficulty:
                        color = GetDifficultyColor(__instance, node);
                        break;

                    case MapType.Visited:
                        color = __instance.starmap.HasStarSystemBeenVisited(node)
                                        ? visitedColors.VisitedColor
                                        : visitedColors.NotVisitedColor;
                        break;

                    case MapType.MaxContracts:
                        color = GetDifficultyColor((int)node.System.CurMaxContracts);
                        break;

                    default:
                        throw new InvalidEnumArgumentException("'CurrentMapType' has invalid value. This should never happen. Please report this as a bug.");
                    }
                    if (renderer.Init(node, flag ? color.FromRGBColor() : __instance.unavailableColor, flag))
                    {
                        __instance.RefreshBorders();
                    }

                    // Don't call the original method, we've replaced it.
                    return false;
                }));
            }
예제 #12
0
        public static void Init(string directory, string settingsJSON)
        {
            MethodInfo original = typeof(MechStatisticsRules).GetMethod("GetHardpointCountForLocation", new Type[]
            {
                typeof(MechDef),
                typeof(ChassisLocations),
                typeof(int).MakeByRefType(),
                typeof(int).MakeByRefType(),
                typeof(int).MakeByRefType(),
                typeof(int).MakeByRefType()
            });
            MethodInfo prefix =
                typeof(Patch_MechStatisticsRules).GetMethod(nameof(Patch_MechStatisticsRules
                                                                   .GetHardpointCountForLocation_Prefix));

            _harmonyManager = new HarmonyManager <Settings>(
                assembly: Assembly.GetExecutingAssembly(),
                settingsJSON: settingsJSON,
                harmonyUniqId: "io.github.clintonmead.StrictHardpoints");

            _harmonyManager.Patch(original, prefix: prefix);
        }
예제 #13
0
 public void OnApplicationStart()
 {
     Plugin.Log?.Info($"MultiplayerExtensions: '{VersionInfo.Description}'");
     HarmonyManager.ApplyDefaultPatches();
 }