static void PatchPostfix(MainMenuController __instance) { var healthController = __instance.HealthController; var listener = Utils.Player.HealthListener.Instance; listener.Init(healthController, false); }
public static void LoadOfflineRaidScreenForScav() { MenuController menuController = GetMenuController(); MatchmakerOfflineRaid.GClass1908 gclass = new MatchmakerOfflineRaid.GClass1908(); gclass.OnShowNextScreen += LoadOfflineRaidNextScreen; gclass.OnShowReadyScreen += (OfflineRaidAction)Delegate.CreateDelegate(typeof(OfflineRaidAction), (object)menuController, kReadyMethodName); gclass.ShowScreen(EScreenState.Queued); }
// Refer to MatchmakerOfflineRaid's subclass's OnShowNextScreen action definitions if these structs numbers change. public static void LoadOfflineRaidNextScreen(bool local, WeatherSettings weatherSettings, BotsSettings botsSettings, WavesSettings wavesSettings) { MenuController menuController = GetMenuController(); if (menuController.SelectedLocation.Id == "laboratory") { wavesSettings.IsBosses = true; } SetMenuControllerFieldValue(menuController, "bool_0", local); SetMenuControllerFieldValue(menuController, kBotsSettingsFieldName, botsSettings); SetMenuControllerFieldValue(menuController, kWavesSettingsFieldName, wavesSettings); SetMenuControllerFieldValue(menuController, kWeatherSettingsFieldName, weatherSettings); typeof(MenuController).GetMethod(kLoadReadyScreenMethodName, BindingFlags.NonPublic | BindingFlags.Instance).Invoke(menuController, null); }
private static void SetMenuControllerFieldValue(MenuController instance, string fieldName, object value) { PrivateValueAccessor.SetPrivateFieldValue(typeof(MenuController), fieldName, instance, value); }