using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.ExpansionManagement; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.SceneManagement; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ChefBazaar")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+040d4e6ebae57843f8c9a778bd0a85ce04e480cd")] [assembly: AssemblyProduct("ChefBazaar")] [assembly: AssemblyTitle("ChefBazaar")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace ChefBazaar { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("acanthi.ChefBazaar", "ChefBazaar", "1.6.0")] public class ChefBazaar : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static hook_OnInteractionBegin <0>__PickupPickerController_OnInteractionBegin; public static hook_BeginCookingServer <1>__MealPrepController_BeginCookingServer; public static Action <2>__Stage_onStageStartGlobal; } public const string PluginGUID = "acanthi.ChefBazaar"; public const string PluginAuthor = "acanthi"; public const string PluginName = "ChefBazaar"; public const string PluginVersion = "1.6.0"; public static List chefPhrases; public static List chefEscapePhrases; public static ConfigEntry chefChance; public static ConfigEntry spawnScrapper; public static ConfigEntry oshaCompliance; public static ConfigEntry maxUsedTimes; public static ConfigEntry moonChef; public static ConfigEntry moonHooks; public static ConfigEntry classicChef; public static ConfigEntry guaranteedAfterSolusEvent; public static ConfigEntry allowedAfterSolusEvent; public static ExpansionDef expansionNeeded; public static bool isMoonFuckening = false; public static bool isChefInBazaar = false; public static Dictionary usedTimes = new Dictionary(); public void Awake() { //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Expected O, but got Unknown //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); InitConfig(); SpawnTools.CreateTablePrefab(); SpawnTools.CreateBridgePrefab(); NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_1", "I come and I go, but today I am here."); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_2", "Come, mon ami, we shall cook!"); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_3", "Tired, mon ami? Surely a meal will help."); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_4", "It is okay to take a break every once in a while. Come now."); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_5", "Mon Chéri! How wonderful it is to see you here."); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_6", "Ah ah ah, I can already smell the good times!"); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_7", "I'd dispense some advice, but how about some good food instead?"); LanguageAPI.Add("CHEFBAZAAR_IAMHERE_8", "I wonder... would newt meat taste good? Don't tell him I asked that."); chefPhrases = new List(8) { "CHEFBAZAAR_IAMHERE_1", "CHEFBAZAAR_IAMHERE_2", "CHEFBAZAAR_IAMHERE_3", "CHEFBAZAAR_IAMHERE_4", "CHEFBAZAAR_IAMHERE_5", "CHEFBAZAAR_IAMHERE_6", "CHEFBAZAAR_IAMHERE_7", "CHEFBAZAAR_IAMHERE_8" }; chefEscapePhrases = new List(3) { "MEALPREP_DIALOGUE_MOONDETONATION_1", "MEALPREP_DIALOGUE_MOONDETONATION_2", "MEALPREP_DIALOGUE_MOONDETONATION_3" }; if (spawnScrapper.Value) { LanguageAPI.Add("CHEFBAZAAR_IAMHERE_SCRAPPER", "Please, do not use the scrapper as a garbage bin."); chefPhrases.Add("CHEFBAZAAR_IAMHERE_SCRAPPER"); } if (oshaCompliance.Value) { LanguageAPI.Add("CHEFBAZAAR_IAMHERE_OSHA", "Cross safely, mon ami! The last customer... did not."); chefPhrases.Add("CHEFBAZAAR_IAMHERE_OSHA"); } expansionNeeded = Addressables.LoadAssetAsync((object)"RoR2/DLC3/DLC3.asset").WaitForCompletion(); object obj = <>O.<0>__PickupPickerController_OnInteractionBegin; if (obj == null) { hook_OnInteractionBegin val = Hooks.PickupPickerController_OnInteractionBegin; <>O.<0>__PickupPickerController_OnInteractionBegin = val; obj = (object)val; } PickupPickerController.OnInteractionBegin += (hook_OnInteractionBegin)obj; object obj2 = <>O.<1>__MealPrepController_BeginCookingServer; if (obj2 == null) { hook_BeginCookingServer val2 = Hooks.MealPrepController_BeginCookingServer; <>O.<1>__MealPrepController_BeginCookingServer = val2; obj2 = (object)val2; } MealPrepController.BeginCookingServer += (hook_BeginCookingServer)obj2; Stage.onStageStartGlobal += Hooks.Stage_onStageStartGlobal; } private void InitConfig() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Expected O, but got Unknown //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Expected O, but got Unknown //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Expected O, but got Unknown //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Expected O, but got Unknown //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Expected O, but got Unknown //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Expected O, but got Unknown //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Expected O, but got Unknown //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Expected O, but got Unknown //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Expected O, but got Unknown //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Expected O, but got Unknown //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Expected O, but got Unknown chefChance = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "Wandering CHEF Chance", 35f, new ConfigDescription("How likely is the Wandering CHEF to appear in the Bazaar?", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 100f), Array.Empty())); guaranteedAfterSolusEvent = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "Guaranteed After Solus Event", false, "Guarantees Wandering CHEF spawns in the Bazaar after the Solus Event."); allowedAfterSolusEvent = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "Only Allowed After Solus Event", false, "Only allows Wandering CHEF spawns in the Bazaar or moon after the Solus Event."); spawnScrapper = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "Spawn Scrapper", false, "Spawn a Scrapper next to the Wandering CHEF?"); oshaCompliance = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "OSHA Compliance", true, "Spawn a bridge next to the Wandering CHEF?"); maxUsedTimes = ((BaseUnityPlugin)this).Config.Bind("ChefBazaar", "Crafting Limit", 0, "How many times can the Wandering CHEF cook for you in the Bazaar? (0 = Infinite)"); moonChef = ((BaseUnityPlugin)this).Config.Bind("Extras", "Moon CHEF", false, "Re-enables the unused Wandering CHEF on Commencement. Guaranteed."); moonHooks = ((BaseUnityPlugin)this).Config.Bind("Extras", "Moon Hooks", false, "Enable the Wandering CHEF shooing you away during moon detonation for mods that add the Wandering CHEF to the moon."); classicChef = ((BaseUnityPlugin)this).Config.Bind("Extras", "Classic Location", false, "Re-enables the pre-rework location for the Wandering CHEF! (Next to the lunar item table.)"); ModSettingsManager.SetModDescription("Chance for the Wandering CHEF to appear in the Bazaar!"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(chefChance, new StepSliderConfig { min = 0f, max = 100f, increment = 0.5f })); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(guaranteedAfterSolusEvent)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(allowedAfterSolusEvent)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(spawnScrapper)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(oshaCompliance)); ModSettingsManager.AddOption((BaseOption)new IntSliderOption(maxUsedTimes, new IntSliderConfig { min = 0, max = 100 })); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(moonChef)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(moonHooks)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(classicChef)); } } public class Hooks { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static UnityAction <>9__3_0; public static UnityAction <>9__3_1; public static UnityAction <>9__3_2; internal void b__3_0() { ChefBazaar.isMoonFuckening = true; } internal void b__3_1() { ChefBazaar.isMoonFuckening = false; } internal void b__3_2() { ChefBazaar.isMoonFuckening = false; } } public static void MealPrepController_BeginCookingServer(orig_BeginCookingServer orig, MealPrepController self, Interactor activator, PickupIndex[] itemsToTake, PickupIndex reward, int count) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) PlayerCharacterMasterController component = ((Component)((Component)activator).GetComponent().master).GetComponent(); ChefBazaar.usedTimes[component] = ChefBazaar.usedTimes.GetValueOrDefault(component) + 1; orig.Invoke(self, activator, itemsToTake, reward, count); } public static void PickupPickerController_OnInteractionBegin(orig_OnInteractionBegin orig, PickupPickerController self, Interactor activator) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Expected O, but got Unknown //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)((Component)self).GetComponent())) { orig.Invoke(self, activator); return; } if (ChefBazaar.isMoonFuckening) { Chat.SendBroadcastChat((ChatMessageBase)new NpcChatMessage { formatStringToken = "MEALPREP_DIALOGUE_FORMAT", baseToken = ChefBazaar.chefEscapePhrases[Random.Range(0, ChefBazaar.chefEscapePhrases.Count)], sender = null }); return; } Scene activeScene = SceneManager.GetActiveScene(); if (((Scene)(ref activeScene)).name != "bazaar") { orig.Invoke(self, activator); return; } PlayerCharacterMasterController component = ((Component)((Component)activator).GetComponent().master).GetComponent(); if (Object.op_Implicit((Object)(object)component) && ChefBazaar.usedTimes.GetValueOrDefault(component) >= ChefBazaar.maxUsedTimes.Value && ChefBazaar.maxUsedTimes.Value > 0) { Chat.SendBroadcastChat((ChatMessageBase)new NpcChatMessage { formatStringToken = "MEALPREP_DIALOGUE_FORMAT", baseToken = ChefBazaar.chefEscapePhrases[Random.Range(0, ChefBazaar.chefEscapePhrases.Count)], sender = null }); } else { orig.Invoke(self, activator); } } public static void Stage_onStageStartGlobal(Stage stage) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { Log.Warning("HERE! 1"); ChefBazaar.isChefInBazaar = false; if (!Run.instance.IsExpansionEnabled(ChefBazaar.expansionNeeded) || (!Run.instance.GetEventFlag("SolusHeartBeaten") && ChefBazaar.allowedAfterSolusEvent.Value)) { return; } Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; string text = name; if (!(text == "moon2")) { if (text == "bazaar") { SpawnChefBazaarServer(); Log.Warning("HERE! 2"); } } else { MoonHooksInit(); SpawnChefMoonServer(); } } else { Log.Debug("Client :: " + DateTime.Now.ToString() + " " + DateTime.Now.Millisecond); LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser(); NetworkUser val = ((firstLocalUser != null) ? firstLocalUser.currentNetworkUser : null); NetMessageExtensions.Send((INetMessage)(object)new NetMessages.RequestChefMessage(((NetworkBehaviour)val).netIdentity), (NetworkDestination)2); } } public static void MoonHooksInit() { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Expected O, but got Unknown if (!ChefBazaar.moonHooks.Value) { return; } EscapeSequenceController component = GameObject.Find("EscapeSequenceController").GetComponent(); if (!((Object)(object)component != (Object)null)) { return; } UnityEvent onEnterMainEscapeSequence = component.onEnterMainEscapeSequence; object obj = <>c.<>9__3_0; if (obj == null) { UnityAction val = delegate { ChefBazaar.isMoonFuckening = true; }; <>c.<>9__3_0 = val; obj = (object)val; } onEnterMainEscapeSequence.AddListener((UnityAction)obj); UnityEvent onFailEscapeSequenceServer = component.onFailEscapeSequenceServer; object obj2 = <>c.<>9__3_1; if (obj2 == null) { UnityAction val2 = delegate { ChefBazaar.isMoonFuckening = false; }; <>c.<>9__3_1 = val2; obj2 = (object)val2; } onFailEscapeSequenceServer.AddListener((UnityAction)obj2); UnityEvent onCompleteEscapeSequenceServer = component.onCompleteEscapeSequenceServer; object obj3 = <>c.<>9__3_2; if (obj3 == null) { UnityAction val3 = delegate { ChefBazaar.isMoonFuckening = false; }; <>c.<>9__3_2 = val3; obj3 = (object)val3; } onCompleteEscapeSequenceServer.AddListener((UnityAction)obj3); } public static void SpawnChefBazaarServer() { //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Expected O, but got Unknown //IL_01c5: Unknown result type (might be due to invalid IL or missing references) if (Random.Range(0f, 100f) >= ChefBazaar.chefChance.Value && (!Run.instance.GetEventFlag("SolusHeartBeaten") || !ChefBazaar.guaranteedAfterSolusEvent.Value)) { return; } ChefBazaar.isChefInBazaar = true; if (!ChefBazaar.classicChef.Value) { SpawnTools.SpawnChefMealPrep(new Vector3(-95.7066f, -24.9729f, 20.9845f), Quaternion.Euler(0f, 350.4501f, 0f)); if (ChefBazaar.spawnScrapper.Value) { SpawnTools.SpawnScrapper(new Vector3(-94.3094f, -25.7118f, 25.2005f), Quaternion.Euler(2.21f, 1.35f, 0f)); } if (ChefBazaar.oshaCompliance.Value) { SpawnTools.SpawnBridge(); } } else { SpawnTools.SpawnChefMealPrepOld(new Vector3(-97.3184f, -24.2f, -49.48f), Quaternion.Euler(0f, 270f, 0f)); if (ChefBazaar.spawnScrapper.Value) { SpawnTools.SpawnScrapper(new Vector3(-93.5723f, -25.8374f, -47.0965f), Quaternion.Euler(2.21f, 1.35f, 345.91f)); } } Chat.SendBroadcastChat((ChatMessageBase)new NpcChatMessage { formatStringToken = "MEALPREP_DIALOGUE_FORMAT", baseToken = ChefBazaar.chefPhrases[Random.Range(0, ChefBazaar.chefPhrases.Count)], sender = null }); ChefBazaar.usedTimes.Clear(); if (!ChefBazaar.classicChef.Value) { SpawnTools.EnableVanillaTable((Vector3?)new Vector3(-82.2492f, -47.2163f, 14.0186f)); NetMessageExtensions.Send((INetMessage)(object)new NetMessages.SpawnChefTableMessage(), (NetworkDestination)1); } } public static void SpawnChefMoonServer() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) if (ChefBazaar.moonChef.Value) { SpawnTools.SpawnChefMealPrep(new Vector3(-259.18f, -220.2f, -402.91f), Quaternion.Euler(0f, 120.9532f, 0f)); if (ChefBazaar.spawnScrapper.Value) { SpawnTools.SpawnScrapper(new Vector3(-257.9419f, -221.2121f, -407.045f), Quaternion.Euler(359.7326f, 122.0352f, 346.4449f)); } SpawnTools.EnableVanillaTable(); NetMessageExtensions.Send((INetMessage)(object)new NetMessages.SpawnChefTableMessage(), (NetworkDestination)1); } } } internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } internal class NetMessages { public class SpawnChefTableMessage : INetMessage, ISerializableObject { public void Deserialize(NetworkReader reader) { } public void OnReceived() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) Log.Debug("SpawnChefTableMessage Called..."); Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; string text = name; if (!(text == "moon2")) { if (text == "bazaar") { SpawnTools.EnableVanillaTable((Vector3?)new Vector3(-82.2492f, -47.2163f, 14.0186f)); } else { Log.Debug("SpawnChefTableMessage called from invalid scene? How the fuck did you let this happen."); } } else { SpawnTools.EnableVanillaTable(); } } public void Serialize(NetworkWriter writer) { } } public class RequestChefMessage : INetMessage, ISerializableObject { private NetworkIdentity playerNetID; public RequestChefMessage() { } public RequestChefMessage(NetworkIdentity netID) { playerNetID = netID; } public void Deserialize(NetworkReader reader) { playerNetID = reader.ReadNetworkIdentity(); } public void OnReceived() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) if (!ChefBazaar.isChefInBazaar) { Scene activeScene = SceneManager.GetActiveScene(); if (!(((Scene)(ref activeScene)).name == "moon2")) { return; } } NetworkConnection connectionToClient = playerNetID.connectionToClient; Log.Debug(((object)playerNetID).ToString()); if (!ChefBazaar.classicChef.Value) { NetMessageExtensions.Send((INetMessage)(object)new SpawnChefTableMessage(), connectionToClient); } } public void Serialize(NetworkWriter writer) { writer.Write(playerNetID); } } } public class SpawnTools { public static GameObject oldTablePrefab; public static GameObject bridgePrefab; public static void SpawnChefMealPrep(Vector3 location, Quaternion rotation) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync((object)"RoR2/DLC3/MealPrep/MealPrep.prefab").WaitForCompletion(); GameObject val2 = Object.Instantiate(val, location, rotation); NetworkServer.Spawn(val2); } public static void SpawnChefMealPrepOld(Vector3 location, Quaternion rotation) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync((object)"RoR2/DLC3/MealPrep/MealPrep.prefab").WaitForCompletion(); GameObject val2 = Object.Instantiate(val, location, rotation); NetworkServer.Spawn(val2); GameObject val3 = Object.Instantiate(oldTablePrefab); NetworkServer.Spawn(val3); } public static void SpawnBridge() { GameObject val = Object.Instantiate(bridgePrefab); NetworkServer.Spawn(val); } public static void SpawnScrapper(Vector3 location, Quaternion rotation) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/Scrapper/Scrapper.prefab").WaitForCompletion(); GameObject val2 = Object.Instantiate(val, location, rotation); NetworkServer.Spawn(val2); } public static void EnableVanillaTable() { EnableVanillaTable(null); } public static void EnableVanillaTable(Vector3? newLocation) { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) GameObject val = null; GameObject[] array = Object.FindObjectsByType((FindObjectsInactive)1, (FindObjectsSortMode)0); GameObject[] array2 = array; foreach (GameObject val2 in array2) { if (((Object)val2).name == "HOLDER: Mealprep" && !val2.activeSelf) { val = val2; break; } } if (!Object.op_Implicit((Object)(object)val) || (Object)(object)val == (Object)null) { Log.Warning("EnableVanillaTable - CHEF Platform could not be found, or already is enabled..."); return; } val.gameObject.SetActive(true); ((Component)val.transform.Find("MealPrep")).gameObject.SetActive(false); if (newLocation.HasValue) { val.gameObject.transform.position = newLocation.Value; } } public static void CreateTablePrefab() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) oldTablePrefab = PrefabAPI.CreateEmptyPrefab("tablePrefab"); oldTablePrefab.AddComponent(); GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/Bazaar_LunarTable.prefab").WaitForCompletion(); GameObject val2 = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/Bazaar_HangingLight.prefab").WaitForCompletion(); GameObject val3 = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/Bazaar_CrystalLight.prefab").WaitForCompletion(); GameObject val4 = Addressables.LoadAssetAsync((object)"RoR2/DLC2/lemuriantemple/Assets/LTWok.prefab").WaitForCompletion(); GameObject val5 = Object.Instantiate(val, oldTablePrefab.transform); val5.transform.localPosition = new Vector3(-97.28f, -25.3f, -48.88f); val5.transform.localRotation = Quaternion.Euler(270f, 0f, 0f); val5.transform.localScale = Vector3.one; GameObject val6 = Object.Instantiate(val2, oldTablePrefab.transform); val6.transform.localPosition = new Vector3(-97.3327f, -4.507f, -48.562f); val6.transform.localRotation = Quaternion.identity; GameObject val7 = Object.Instantiate(val3, oldTablePrefab.transform); val7.transform.localPosition = new Vector3(-95.1891f, -24.0915f, -48.829f); val7.transform.localRotation = Quaternion.Euler(270f, 0f, 0f); val7.transform.localScale = Vector3.one; GameObject val8 = Object.Instantiate(val4, oldTablePrefab.transform); val8.transform.localPosition = new Vector3(-99.0918f, -23.18367f, -47.74821f); val8.transform.localRotation = Quaternion.Euler(-90f, 0f, 0f); PrefabAPI.RegisterNetworkPrefab(oldTablePrefab); } public static void CreateBridgePrefab() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) bridgePrefab = PrefabAPI.CreateEmptyPrefab("bridgePrefab"); bridgePrefab.AddComponent(); GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/Bazaar_WoodFlooring.prefab").WaitForCompletion(); GameObject val2 = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/Bazaar_WoodColumnFullEntryway.prefab").WaitForCompletion(); GameObject val3 = Object.Instantiate(val, bridgePrefab.transform); val3.transform.localPosition = new Vector3(-84.7494f, -26.1813f, 14.1624f); val3.transform.localRotation = Quaternion.Euler(356.42f, 306.6656f, 180.0001f); val3.transform.localScale = new Vector3(0.4477f, 0.2902f, 0.5077f); GameObject val4 = Object.Instantiate(val2, bridgePrefab.transform); val4.transform.localPosition = new Vector3(-77.2204f, -22.6085f, 16.2715f); val4.transform.localRotation = Quaternion.Euler(270f, 300.426f, 0f); val4.transform.localScale = new Vector3(0.3604f, 0.2902f, 0.5077f); for (int num = 5; num >= 1; num--) { Object.Destroy((Object)(object)((Component)val3.transform.GetChild(num)).gameObject); } PrefabAPI.RegisterNetworkPrefab(bridgePrefab); } } }