Decompiled source of Super Synergy v1.0.1

SuperWorld.dll

Decompiled 4 months ago
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 Characters.Gear.Items;
using Characters.Gear.Synergy;
using Characters.Gear.Synergy.Inscriptions;
using Characters.Player;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using SuperSynerge;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETFramework,Version=v4.6.2", FrameworkDisplayName = "")]
[assembly: IgnoresAccessChecksTo("")]
[assembly: AssemblyCompany("SuperWorld")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("SuperWorld")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0")]
[assembly: AssemblyProduct("SuperWorld")]
[assembly: AssemblyTitle("SuperWorld")]
[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;
		}
	}
}
[BepInPlugin("SuperWorld", "SuperWorld", "1.0")]
public class Plugin : BaseUnityPlugin
{
	public enum lang
	{
		Kr,
		En
	}

	public static lang CurrentLang;

	public static ConfigEntry<lang> Lang;

	public static ConfigEntry<bool> isNoSuper;

	public static ConfigEntry<bool> isNoFull;

	public static ConfigEntry<bool> isNoOmen;

	public static ConfigEntry<bool> isOmen;

	private void Awake()
	{
		_ = Lang.Value;
		CurrentLang = Lang.Value;
		if (Lang.Value == lang.Kr)
		{
			Lang = ((BaseUnityPlugin)this).Config.Bind<lang>("General", "언어", lang.Kr, "언어");
			isNoSuper = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "각인 각성 정상화", false, "각인을 평범하게 바꿉니다.");
			isNoFull = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "각인 강제 맥스 정상화", false, "밑에 설정한것을 무시하고 정상화 시킵니다.");
			isNoOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "흉조 추가불가 정상화", false, "흉조또한 추가할수있게됩니다.");
			isOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "3흉조화", false, "3흉조로 시작합니다.");
		}
		else
		{
			Lang = ((BaseUnityPlugin)this).Config.Bind<lang>("General", "Lang", lang.En, "Lang");
			isNoSuper = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Super Inscription DeActive", false, "Inscription Super is DeActive");
			isNoFull = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Inscription Force Max DeActive", false, "Force DeActive to Max (Omen Add Possible Setting And Three Omen Setting to Ignore)");
			isNoOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Omen Add Possible", false, "You can also add Omen Inscription.");
			isOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Three Omen Mod", false, "Inscription All Max is Change To Only Omen.");
		}
		Harmony.CreateAndPatchAll(typeof(SuperPath), (string)null);
	}

	private void Update()
	{
		if (Lang.Value != CurrentLang)
		{
			CurrentLang = Lang.Value;
			if (Lang.Value == lang.Kr)
			{
				((BaseUnityPlugin)this).Config.Clear();
				Lang = ((BaseUnityPlugin)this).Config.Bind<lang>("General", "언어", lang.Kr, "세이브후 적용됩니다! 그리고 값이 리셋됩니다.");
				isNoSuper = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "각인 각성 정상화", false, "각인을 평범하게 바꿉니다.");
				isNoFull = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "각인 강제 맥스 정상화", false, "밑에 설정한것을 무시하고 정상화 시킵니다.");
				isNoOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "흉조 추가불가 정상화", false, "흉조또한 추가할수있게됩니다.");
				isOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "3흉조화", false, "3흉조로 시작합니다.");
			}
			else
			{
				((BaseUnityPlugin)this).Config.Clear();
				Lang = ((BaseUnityPlugin)this).Config.Bind<lang>("General", "Lang", lang.En, "Active to Save And Values is Reset");
				isNoSuper = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Super Inscription DeActive", false, "Inscription Super is DeActive");
				isNoFull = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Inscription Force Max DeActive", false, "Force DeActive to Max (Omen Add Possible Setting And Three Omen Setting to Ignore)");
				isNoOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Omen Add Possible", false, "You can also add Omen Inscription.");
				isOmen = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "Three Omen Mod", false, "Inscription All Max is Change To Only Omen.");
			}
		}
		((BaseUnityPlugin)this).Config.Reload();
	}
}
namespace SuperSynerge
{
	public class SuperPath
	{
		[HarmonyPostfix]
		[HarmonyPatch(/*Could not decode attribute arguments.*/)]
		private static void GetSuperIsTrue(ref bool __result, ref Inscription __instance)
		{
			//IL_000f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0016: Invalid comparison between Unknown and I4
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Invalid comparison between Unknown and I4
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			//IL_002c: Invalid comparison between Unknown and I4
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_0037: Invalid comparison between Unknown and I4
			if (!Plugin.isNoSuper.Value && (int)__instance.key != 29 && (int)__instance.key != 23 && (int)__instance.key != 34 && (int)__instance.key != 35 && __instance.isMaxStep)
			{
				__result = true;
			}
		}

		[HarmonyPrefix]
		[HarmonyPatch(typeof(Inventory), "UpdateSynergy")]
		private static bool InscriptionFull(ref Synergy ___synergy, ref Action ___onUpdatedKeywordCounts, ref ItemInventory ___item)
		{
			//IL_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Invalid comparison between Unknown and I4
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			//IL_0038: Invalid comparison between Unknown and I4
			//IL_009c: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a3: Invalid comparison between Unknown and I4
			//IL_0101: Unknown result type (might be due to invalid IL or missing references)
			//IL_0108: Invalid comparison between Unknown and I4
			//IL_00e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ba: 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_011f: Unknown result type (might be due to invalid IL or missing references)
			//IL_029c: Unknown result type (might be due to invalid IL or missing references)
			//IL_02a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_02be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01db: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e0: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01e6: Invalid comparison between Unknown and I4
			//IL_022c: Unknown result type (might be due to invalid IL or missing references)
			//IL_023b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_020a: Unknown result type (might be due to invalid IL or missing references)
			if (Plugin.isNoFull.Value)
			{
				return true;
			}
			foreach (Inscription inscription in ___synergy.inscriptions)
			{
				if (!Plugin.isOmen.Value)
				{
					if ((int)inscription.key != 34)
					{
						inscription.count = inscription.maxStep;
					}
				}
				else if ((int)inscription.key == 34)
				{
					inscription.count = inscription.maxStep;
				}
			}
			foreach (Item item in ___item.items)
			{
				if (!((Object)(object)item == (Object)null))
				{
					if ((int)item.keyword1 != 34 && !Plugin.isNoOmen.Value)
					{
						Inscription obj = ___synergy.inscriptions[item.keyword1];
						obj.count++;
					}
					else if (Plugin.isNoOmen.Value)
					{
						Inscription obj2 = ___synergy.inscriptions[item.keyword1];
						obj2.count++;
					}
					if ((int)item.keyword2 != 34 && !Plugin.isNoOmen.Value)
					{
						Inscription obj3 = ___synergy.inscriptions[item.keyword2];
						obj3.count++;
					}
					else if (Plugin.isNoOmen.Value)
					{
						Inscription obj4 = ___synergy.inscriptions[item.keyword2];
						obj4.count++;
					}
				}
			}
			foreach (Item item2 in ___item.items)
			{
				if ((Object)(object)item2 == (Object)null)
				{
					continue;
				}
				BonusKeyword[] bonusKeyword = item2.bonusKeyword;
				foreach (BonusKeyword obj5 in bonusKeyword)
				{
					obj5.Evaluate();
					EnumArray<Key, int> values = obj5.Values;
					foreach (Key key in Inscription.keys)
					{
						if ((int)key != 34 && !Plugin.isNoOmen.Value)
						{
							Inscription obj6 = ___synergy.inscriptions[key];
							obj6.count += values[key];
						}
						else if (Plugin.isNoOmen.Value)
						{
							Inscription obj7 = ___synergy.inscriptions[key];
							obj7.count += values[key];
						}
					}
				}
			}
			foreach (Key key2 in Inscription.keys)
			{
				Inscription obj8 = ___synergy.inscriptions[key2];
				obj8.count += ___synergy.inscriptions[key2].bonusCount;
			}
			___onUpdatedKeywordCounts?.Invoke();
			___synergy.UpdateBonus();
			return false;
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "SuperWorld";

		public const string PLUGIN_NAME = "SuperWorld";

		public const string PLUGIN_VERSION = "1.0";
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}