using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("DefibroShopMod")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DefibroShopMod")] [assembly: AssemblyCopyright("Copyright © 2024")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e7c7e88a-5b6c-4d4a-9b5e-7f8d9e0c1a2b")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace MoreDefibro; [BepInPlugin("toored.moredefibro", "MoreDefibro", "1.0.0")] public class MoreDefibro : BaseUnityPlugin { [HarmonyPatch(typeof(ShopManager), "ShopInitialize")] private static class ShopManager_ShopInitialize_Patch { private static void Postfix(ShopManager __instance) { //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: 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_01d2: Unknown result type (might be due to invalid IL or missing references) if (!SemiFunc.RunIsShop() || !SemiFunc.IsMasterClientOrSingleplayer()) { return; } if (_minSpawnCount.Value < 0 || _maxSpawnCount.Value < 0) { Log.LogWarning((object)"生成数量不能为负数"); } else if (_minPrice.Value <= 1000 || _maxPrice.Value <= 1000) { Log.LogWarning((object)"价格不得小于等于1000"); } else { if (!StatsManager.instance.itemDictionary.TryGetValue("Item ReviveItem", out var value)) { return; } Transform extractionPoint = __instance.extractionPoint; if ((Object)(object)extractionPoint == (Object)null) { return; } value.value.valueMin = (float)_minPrice.Value / 4f; value.value.valueMax = (float)_maxPrice.Value / 4f; Vector3 val = Vector3.ProjectOnPlane(extractionPoint.forward, Vector3.up); Vector3 normalized = ((Vector3)(ref val)).normalized; Vector3 val2 = Vector3.Cross(normalized, Vector3.up); bool flag = SemiFunc.IsMultiplayer(); int num = Random.Range(_minSpawnCount.Value, _maxSpawnCount.Value + 1); if (num <= 0) { Log.LogInfo((object)"生成数量为0直接跳过"); return; } Log.LogInfo((object)$"正在生成{num}个除颤器..."); for (int i = 0; i < num; i++) { float num2 = 2f + (float)(i % 2) * 1.5f; float num3 = ((i / 2 % 2 != 0) ? 1 : (-1)) * (i / 2 + 1); Vector3 val3 = extractionPoint.position + normalized * num2 + val2 * num3; val3.y = 0.5f; PrefabRef prefab = value.prefab; if ((Object)(object)((prefab != null) ? prefab.Prefab : null) != (Object)null) { if (flag) { PhotonNetwork.InstantiateRoomObject(value.prefab.ResourcePath, val3, Quaternion.identity, (byte)0, (object[])null); } else { Object.Instantiate(value.prefab.Prefab, val3, Quaternion.identity); } } } Log.LogInfo((object)"生成完毕"); } } } private Harmony _harmony; internal static ManualLogSource Log; private static ConfigEntry _minSpawnCount; private static ConfigEntry _maxSpawnCount; private static ConfigEntry _minPrice; private static ConfigEntry _maxPrice; private void Awake() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown Log = ((BaseUnityPlugin)this).Logger; _minSpawnCount = ((BaseUnityPlugin)this).Config.Bind("Settings", "MinSpawnCount", 1, "最小数量"); _maxSpawnCount = ((BaseUnityPlugin)this).Config.Bind("Settings", "MaxSpawnCount", 4, "最大数量"); _minPrice = ((BaseUnityPlugin)this).Config.Bind("Settings", "MinPrice", 2000, "最低价格"); _maxPrice = ((BaseUnityPlugin)this).Config.Bind("Settings", "MaxPrice", 8000, "最高价格"); _harmony = new Harmony("toored.moredefibro"); _harmony.PatchAll(); Log.LogInfo((object)"加载完毕"); } } public static class PluginInfo { public const string PLUGIN_GUID = "toored.moredefibro"; public const string PLUGIN_NAME = "MoreDefibro"; public const string PLUGIN_VERSION = "1.0.0"; }