using System;
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 HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: IgnoresAccessChecksTo("Assembly-CSharp")]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("All_Mythic")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.1.0.0")]
[assembly: AssemblyInformationalVersion("1.1.0")]
[assembly: AssemblyProduct("All_Mythic")]
[assembly: AssemblyTitle("All Mythic")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.1.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.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)]
internal sealed class NullableAttribute : Attribute
{
public readonly byte[] NullableFlags;
public NullableAttribute(byte P_0)
{
NullableFlags = new byte[1] { P_0 };
}
public NullableAttribute(byte[] P_0)
{
NullableFlags = P_0;
}
}
[CompilerGenerated]
[Microsoft.CodeAnalysis.Embedded]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)]
internal sealed class NullableContextAttribute : Attribute
{
public readonly byte Flag;
public NullableContextAttribute(byte P_0)
{
Flag = P_0;
}
}
[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 allmythic
{
[HarmonyPatch(typeof(Spawner), "GetObjectsToSpawn")]
internal static class allMythic
{
public static float willItMythic;
internal static void Prefix(Spawner __instance, int spawnCount, bool canRepeat = false)
{
//IL_0068: Unknown result type (might be due to invalid IL or missing references)
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
if (!(Plugin.chanceOfMythicValue >= willItMythic))
{
return;
}
if (__instance.isHeightBasedSpawnPool)
{
foreach (HeightBasedSpawnListEntry heightBasedSpawnPool in __instance.heightBasedSpawnPools)
{
heightBasedSpawnPool.spawnPool = (SpawnPool)131072;
}
return;
}
__instance.spawnPool = (SpawnPool)131072;
}
}
[HarmonyPatch(typeof(Spawner), "GetSpawnSpots")]
internal static class allMythic2ndFunc
{
internal static void Prefix(Spawner __instance)
{
//IL_003a: Unknown result type (might be due to invalid IL or missing references)
allMythic.willItMythic = Random.Range(0f, 1f);
if (Plugin.chanceOfMythicValue >= allMythic.willItMythic && Plugin.changeCountValue)
{
__instance.canRepeatSpawns = true;
__instance.spawnPointMode = (SpawnPointMode)0;
while (__instance.spawnSpots.Count > Plugin.changeCountToValue)
{
Transform item = __instance.spawnSpots[0];
__instance.spawnSpots.Remove(item);
}
while (__instance.spawnSpots.Count < Plugin.changeCountToValue)
{
Transform item2 = __instance.spawnSpots[Random.Range(0, __instance.spawnSpots.Count)];
__instance.spawnSpots.Add(item2);
}
}
}
}
[BepInPlugin("helloitsmeallmythic", "all_mythic", "1.1.0")]
public class Plugin : BaseUnityPlugin
{
public ConfigEntry<float> chanceOfMythic;
public ConfigEntry<int> changeCountTo;
public static float chanceOfMythicValue;
public static int changeCountToValue;
public static bool changeCountValue;
public ConfigEntry<bool> changeCount;
internal static ManualLogSource Log { get; private set; }
private void Awake()
{
//IL_00b9: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Expected O, but got Unknown
chanceOfMythic = ((BaseUnityPlugin)this).Config.Bind<float>("Chance", "Chance of mythic luggage", 0.02f, "This is the chance of a luggage to contain mythic items, keep the values inbetween 1 and 0, 1 is 100% and 0 is nearly 0%.");
changeCount = ((BaseUnityPlugin)this).Config.Bind<bool>("Change", "Change item count when mythic", true, "This determines whether or not the count of items in a luggage will change when its mythic.");
changeCountTo = ((BaseUnityPlugin)this).Config.Bind<int>("Count", "Count of mythic items", 1, "Because of the way peak is coded, i have to replace every item in a luggage with a mythic item, so im just giving the option to set the count to whatever you think is best.");
Log = ((BaseUnityPlugin)this).Logger;
changeCountValue = changeCount.Value;
chanceOfMythicValue = chanceOfMythic.Value;
changeCountToValue = changeCountTo.Value;
Log.LogInfo((object)"Plugin All mythic is loaded!");
Harmony val = new Harmony("allmythic");
val.PatchAll();
}
}
}
namespace System.Runtime.CompilerServices
{
[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
internal sealed class IgnoresAccessChecksToAttribute : Attribute
{
public IgnoresAccessChecksToAttribute(string assemblyName)
{
}
}
}