0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 09:50:43 -05:00
modules/project/SPT.Custom/Patches/SetPreRaidSettingsScreenDefaultsPatch.cs

62 lines
2.6 KiB
C#
Raw Normal View History

2024-05-21 19:10:17 +01:00
using SPT.Common.Http;
using SPT.Common.Utils;
using SPT.Reflection.Patching;
using SPT.Custom.Models;
2023-03-03 18:52:31 +00:00
using EFT.UI;
using EFT.UI.Matchmaker;
using System.Reflection;
using EFT;
using HarmonyLib;
2024-05-21 19:10:17 +01:00
using SPT.Reflection.Utils;
2023-03-03 18:52:31 +00:00
2024-05-21 19:10:17 +01:00
namespace SPT.Custom.Patches
2023-03-03 18:52:31 +00:00
{
public class SetPreRaidSettingsScreenDefaultsPatch : ModulePatch
2023-03-03 18:52:31 +00:00
{
protected override MethodBase GetTargetMethod()
{
return AccessTools.GetDeclaredMethods(typeof(MatchmakerOfflineRaidScreen))
.SingleCustom(m => m.Name == nameof(MatchmakerOfflineRaidScreen.Show) && m.GetParameters().Length == 1);
2023-03-03 18:52:31 +00:00
}
[PatchPrefix]
public static void PatchPrefix(object controller, UpdatableToggle ____offlineModeToggle)
2023-03-03 18:52:31 +00:00
{
//var raidSettings = Traverse.Create(controller).Field<RaidSettings>("RaidSettings").Value;
var offlineRaidSettings = Traverse.Create(controller).Field<RaidSettings>("OfflineRaidSettings").Value;
2023-03-03 18:52:31 +00:00
// Default checkbox to be unchecked so we're in PvE
____offlineModeToggle.isOn = false;
2023-03-03 18:52:31 +00:00
2024-07-08 14:31:04 +01:00
// Get settings from server
2023-03-03 18:52:31 +00:00
var json = RequestHandler.GetJson("/singleplayer/settings/raid/menu");
2024-11-22 22:43:29 +00:00
var defaultSettings = Json.Deserialize<DefaultRaidSettings>(json);
2023-03-03 18:52:31 +00:00
// TODO: Not all settings are used and they also don't cover all the new settings that are available client-side
2024-11-22 22:43:29 +00:00
if (defaultSettings == null)
2023-03-03 18:52:31 +00:00
{
return;
2023-03-03 18:52:31 +00:00
}
// We use PVE mode from Tarkov now we need to modify PVE MODE instead of ONLINE Mode
2024-11-22 22:43:29 +00:00
offlineRaidSettings.BotSettings.BotAmount = defaultSettings.AiAmount;
offlineRaidSettings.WavesSettings.BotAmount = defaultSettings.AiAmount;
offlineRaidSettings.WavesSettings.BotDifficulty = defaultSettings.AiDifficulty;
offlineRaidSettings.WavesSettings.IsBosses = defaultSettings.BossEnabled;
offlineRaidSettings.BotSettings.IsScavWars = false;
2024-11-22 22:43:29 +00:00
offlineRaidSettings.WavesSettings.IsTaggedAndCursed = defaultSettings.TaggedAndCursed;
offlineRaidSettings.TimeAndWeatherSettings.IsRandomWeather = defaultSettings.RandomWeather;
offlineRaidSettings.TimeAndWeatherSettings.IsRandomTime = defaultSettings.RandomTime;
}
2023-03-03 18:52:31 +00:00
[PatchPostfix]
public static void PatchPostfix(MatchmakerOfflineRaidScreen __instance, DefaultUIButton ____changeSettingsButton, UiElementBlocker ____onlineBlocker)
2023-03-03 18:52:31 +00:00
{
____onlineBlocker.gameObject.SetActive(false);
____changeSettingsButton.Interactable = true;
__instance.transform.Find("Content/WarningPanelHorLayout").gameObject.SetActive(false);
2023-03-03 18:52:31 +00:00
}
}
}