Decompiled source of ExampleMod v0.9.2

plugins/ExampleMod/ExampleMod.dll

Decompiled 2 days ago
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.Core.Logging.Interpolation;
using BepInEx.Logging;
using BepInEx.Unity.IL2CPP;
using ExampleMod.Content.ItemControllers;
using GKAPI;
using GKAPI.Achievements;
using GKAPI.AssetBundles;
using GKAPI.Difficulties;
using GKAPI.Enemies;
using GKAPI.Items;
using GKAPI.Lang;
using Gatekeeper.Enemy.Base.Data;
using Gatekeeper.General.Events.Characters;
using Gatekeeper.General.Predictor;
using Gatekeeper.Items;
using Gatekeeper.MainMenuScripts.Database.ItemsDatabaseController;
using Gatekeeper.PoolScripts;
using Gatekeeper.Utility;
using Microsoft.CodeAnalysis;
using RNGNeeds;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]
[assembly: AssemblyCompany("ExampleMod")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("0.9.2.0")]
[assembly: AssemblyInformationalVersion("0.9.2+c62f57a70729e8ef943485675463869c28012981")]
[assembly: AssemblyProduct("ExampleMod")]
[assembly: AssemblyTitle("ExampleMod")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.9.2.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 ExampleMod
{
	[BepInPlugin("com.robocraft999.examplemod", "ExampleMod", "0.1.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : GkPlugin
	{
		public const string PluginGuid = "com.robocraft999.examplemod";

		public const string PluginName = "ExampleMod";

		private const string PluginVersion = "0.1.0";

		private const string BundlePath = "ExampleMod.Assets.examplebundle";

		internal static ManualLogSource Log;

		public override void Load()
		{
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Expected O, but got Unknown
			((GkPlugin)this).Load();
			Log = ((BasePlugin)this).Log;
			ManualLogSource log = Log;
			bool flag = default(bool);
			BepInExInfoLogInterpolatedStringHandler val = new BepInExInfoLogInterpolatedStringHandler(18, 1, ref flag);
			if (flag)
			{
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral("Plugin ");
				((BepInExLogInterpolatedStringHandler)val).AppendFormatted<string>("ExampleMod");
				((BepInExLogInterpolatedStringHandler)val).AppendLiteral(" is loaded!");
			}
			log.LogInfo(val);
		}

		public override void AddContent()
		{
			//IL_0000: Unknown result type (might be due to invalid IL or missing references)
			//IL_003d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0047: Expected O, but got Unknown
			//IL_0070: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_01de: Unknown result type (might be due to invalid IL or missing references)
			//IL_020e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0247: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0328: Unknown result type (might be due to invalid IL or missing references)
			//IL_032d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0335: Unknown result type (might be due to invalid IL or missing references)
			//IL_03aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_041f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0495: Unknown result type (might be due to invalid IL or missing references)
			//IL_049f: Unknown result type (might be due to invalid IL or missing references)
			//IL_04b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_04be: Unknown result type (might be due to invalid IL or missing references)
			//IL_04d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_04dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_04f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0556: Unknown result type (might be due to invalid IL or missing references)
			//IL_05cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0641: Unknown result type (might be due to invalid IL or missing references)
			//IL_064b: Unknown result type (might be due to invalid IL or missing references)
			//IL_065f: Unknown result type (might be due to invalid IL or missing references)
			//IL_066a: Unknown result type (might be due to invalid IL or missing references)
			//IL_067e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0689: Unknown result type (might be due to invalid IL or missing references)
			//IL_069c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0711: Unknown result type (might be due to invalid IL or missing references)
			//IL_0786: Unknown result type (might be due to invalid IL or missing references)
			//IL_07ed: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f7: Unknown result type (might be due to invalid IL or missing references)
			//IL_080b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0816: Unknown result type (might be due to invalid IL or missing references)
			//IL_082a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0835: Unknown result type (might be due to invalid IL or missing references)
			//IL_0848: Unknown result type (might be due to invalid IL or missing references)
			//IL_08bd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0932: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_09b2: Unknown result type (might be due to invalid IL or missing references)
			//IL_09c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_09e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a03: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a87: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b0b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b9a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bb9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bcc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bd7: Unknown result type (might be due to invalid IL or missing references)
			if ((int)EventHandler.State != 0)
			{
				Log.LogError((object)"Content has to be added during Pre-Init!");
				return;
			}
			SingletonSerializedScriptableObject<GlobalSettings>.Instance.buildCheating = true;
			SingletonSerializedScriptableObject<GlobalSettings>.Instance.buildDebugConsole = true;
			SingletonSerializedScriptableObject<GlobalSettings>.Instance.buildBacktrace = true;
			GkAchievement obj = AchievementsAPI.Instance.AddAchievement(new Builder());
			ItemAPI instance = ItemAPI.Instance;
			GkItem val = instance.AddItem(new Builder("Test Item", "Test item description", ColorHelper.WrapInColorHex("{[Mod1_Lvl1]}% (+{[Mod1_Lvl2]}% per stack)", 15622229) + " to critical damage.").WithId("TEST").SetUnlocked(true).SetHidden(false)
				.AddModification((ItemParamModificationType)83, 0.5f, 0.25f));
			GkItem val2 = instance.AddItem(new Builder("Clover", "Nothing", "You're feeling lucky today").SetUnlocked(true).SetHidden(false).AsRuneOfCreation()
				.WithDropSource((ItemDropSource)138)
				.WithMaxCount(15)
				.WithModel(AssetHelper.LoadAsset<GameObject>("ExampleMod.Assets.examplebundle", "assets/examplebundle/Item_Clover.prefab"))
				.AddModification((ItemParamModificationType)100, 0.02f, 0.02f)
				.AddModification((ItemParamModificationType)138, 0.02f, 0.02f)
				.AddModification((ItemParamModificationType)135, 0.02f, 0.02f)
				.AddModification((ItemParamModificationType)125, 0.02f, 0.01f)
				.AddModification((ItemParamModificationType)85, 0.05f, 0.02f)
				.AddModification((ItemParamModificationType)87, 0.05f, 0.02f)
				.AddModification((ItemParamModificationType)93, 0.05f, 0.02f)
				.AddModification((ItemParamModificationType)69, 0.05f, 0.02f)
				.AddModification((ItemParamModificationType)78, 0.1f, 0.04f)
				.AddModification((ItemParamModificationType)62, 0.05f, 0.04f)
				.AddModification((ItemParamModificationType)73, 0.1f, 0.04f));
			GkItem val3 = instance.AddItem("Min");
			GkItem val4 = instance.AddTriad("TestTriad", new List<ItemID>(3)
			{
				(ItemID)22,
				(ItemID)49,
				val.GetItemID
			}, (Func<Builder, Builder>)((Builder builder) => builder.SetUnlocked(true).SetHidden(false)));
			instance.AddItemController<TestTriadItemController>(val4.GetItemID);
			obj.AddItems((ItemDatabaseInfo[])(object)new ItemDatabaseInfo[3] { val.Info, val3.Info, val2.Info });
			DifficultiesAPI instance2 = DifficultiesAPI.Instance;
			GameDifficulty item = instance2.AddDifficulty(new Builder().WithName("Sentinel").WithDifficultyValues("500%", 2f, 4f).WithGameEventsData(0, 2, 1, instance2.CreateGameEventsProbabilities(0.5f))
				.WithSirenSpawnData(5, 10)
				.WithEliteSpawnData(0.2f, 0.08f, 0.5f, 0.09f, 7f, 3f, 2)
				.WithInstabilityCapsuleSpeed(3f)
				.WithColors(new Color(0.4f, 0.1f, 0.8f), new Color(0.4f, 0.3f, 0.8f))
				.WithExpLoopPow(2f)
				.WithExpPoints(35f, 210f, 60f)
				.WithArenaValues(1.6f, 10f, 1.6f, 0.8f, -40f, 150f)).Item1;
			EnemiesAPI instance3 = EnemiesAPI.Instance;
			ProbabilityList<EnemyCharacterInfo> val5 = new ProbListBuilder().AddItem((PoolItemID)301010, 0.03f).AddItem((PoolItemID)301020, 0.05f).AddItem((PoolItemID)301030, 0.19f)
				.AddItem((PoolItemID)301050, 0.3f)
				.AddItem((PoolItemID)301060, 0.3f)
				.AddItem((PoolItemID)301070, 0.04f)
				.AddItem((PoolItemID)301040, 0.01f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val6 = new ProbListBuilder().AddItem((PoolItemID)301010, 0.01f).AddItem((PoolItemID)301020, 0.02f).AddItem((PoolItemID)301030, 0.18f)
				.AddItem((PoolItemID)301050, 0.33f)
				.AddItem((PoolItemID)301060, 0.35f)
				.AddItem((PoolItemID)301070, 0.1f)
				.AddItem((PoolItemID)301040, 0.01f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val7 = new ProbListBuilder().AddItem((PoolItemID)301010, 0.01f).AddItem((PoolItemID)301020, 0.02f).AddItem((PoolItemID)301030, 0.17f)
				.AddItem((PoolItemID)301050, 0.31f)
				.AddItem((PoolItemID)301060, 0.33f)
				.AddItem((PoolItemID)301070, 0.15f)
				.AddItem((PoolItemID)301040, 0.01f)
				.Build();
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AuroraScenes, new Vector2Int(1, 5), val5, "EST_1XX 1Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AuroraScenes, new Vector2Int(6, 11), val6, "EST_1XX 2Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AuroraScenes, new Vector2Int(12, -1), val7, "EST_1XX 3Loop_500", false);
			ProbabilityList<EnemyCharacterInfo> val8 = new ProbListBuilder().AddItem((PoolItemID)302020, 0.15f).AddItem((PoolItemID)302030, 0.2f).AddItem((PoolItemID)302010, 0.24f)
				.AddItem((PoolItemID)302060, 0.18f)
				.AddItem((PoolItemID)302050, 0.19f)
				.AddItem((PoolItemID)302070, 0.04f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val9 = new ProbListBuilder().AddItem((PoolItemID)302020, 0.06f).AddItem((PoolItemID)302030, 0.08f).AddItem((PoolItemID)302010, 0.1f)
				.AddItem((PoolItemID)302060, 0.35f)
				.AddItem((PoolItemID)302050, 0.3f)
				.AddItem((PoolItemID)302070, 0.1f)
				.AddItem((PoolItemID)302040, 0.01f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val10 = new ProbListBuilder().AddItem((PoolItemID)302020, 0.04f).AddItem((PoolItemID)302030, 0.06f).AddItem((PoolItemID)302010, 0.06f)
				.AddItem((PoolItemID)302060, 0.35f)
				.AddItem((PoolItemID)302050, 0.33f)
				.AddItem((PoolItemID)302070, 0.15f)
				.AddItem((PoolItemID)302040, 0.01f)
				.Build();
			instance3.AddKnowingTemplate(item, true, TemplateHelper.CelestiumScenes, new Vector2Int(1, 5), val8, "EST_2XX 1Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.CelestiumScenes, new Vector2Int(6, 11), val9, "EST_2XX 2Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.CelestiumScenes, new Vector2Int(12, -1), val10, "EST_2XX 3Loop_500", false);
			ProbabilityList<EnemyCharacterInfo> val11 = new ProbListBuilder().AddItem((PoolItemID)303050, 0.17f).AddItem((PoolItemID)303030, 0.12f).AddItem((PoolItemID)303020, 0.12f)
				.AddItem((PoolItemID)303070, 0.16f)
				.AddItem((PoolItemID)303040, 0.19f)
				.AddItem((PoolItemID)303060, 0.2f)
				.AddItem((PoolItemID)303080, 0.04f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val12 = new ProbListBuilder().AddItem((PoolItemID)303050, 0.03f).AddItem((PoolItemID)303030, 0.08f).AddItem((PoolItemID)303020, 0.09f)
				.AddItem((PoolItemID)303070, 0.19f)
				.AddItem((PoolItemID)303040, 0.28f)
				.AddItem((PoolItemID)303060, 0.16f)
				.AddItem((PoolItemID)303080, 0.17f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val13 = new ProbListBuilder().AddItem((PoolItemID)303030, 0.08f).AddItem((PoolItemID)303020, 0.09f).AddItem((PoolItemID)303070, 0.15f)
				.AddItem((PoolItemID)303040, 0.28f)
				.AddItem((PoolItemID)303060, 0.2f)
				.AddItem((PoolItemID)303080, 0.2f)
				.Build();
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PurgatoryScenes, new Vector2Int(1, 5), val11, "EST_3XX 1Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PurgatoryScenes, new Vector2Int(6, 11), val12, "EST_3XX 2Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PurgatoryScenes, new Vector2Int(12, -1), val13, "EST_3XX 3Loop_500", false);
			ProbabilityList<EnemyCharacterInfo> val14 = new ProbListBuilder().AddItem((PoolItemID)304010, 0.16f).AddItem((PoolItemID)304070, 0.17f).AddItem((PoolItemID)304040, 0.12f)
				.AddItem((PoolItemID)304060, 0.18f)
				.AddItem((PoolItemID)304080, 0.08f)
				.AddItem((PoolItemID)304050, 0.25f)
				.AddItem((PoolItemID)304030, 0.04f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val15 = new ProbListBuilder().AddItem((PoolItemID)304010, 0.04f).AddItem((PoolItemID)304070, 0.09f).AddItem((PoolItemID)304040, 0.09f)
				.AddItem((PoolItemID)304060, 0.28f)
				.AddItem((PoolItemID)304080, 0.1f)
				.AddItem((PoolItemID)304050, 0.3f)
				.AddItem((PoolItemID)304030, 0.1f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val16 = new ProbListBuilder().AddItem((PoolItemID)304010, 0.03f).AddItem((PoolItemID)304070, 0.08f).AddItem((PoolItemID)304040, 0.09f)
				.AddItem((PoolItemID)304060, 0.28f)
				.AddItem((PoolItemID)304080, 0.09f)
				.AddItem((PoolItemID)304050, 0.28f)
				.AddItem((PoolItemID)304030, 0.15f)
				.Build();
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AriduneScenes, new Vector2Int(1, 5), val14, "EST_4XX 1Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AriduneScenes, new Vector2Int(6, 11), val15, "EST_4XX 2Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.AriduneScenes, new Vector2Int(12, -1), val16, "EST_4XX 3Loop_500", false);
			ProbabilityList<EnemyCharacterInfo> val17 = new ProbListBuilder().AddItem((PoolItemID)305010, 0.18f).AddItem((PoolItemID)305050, 0.12f).AddItem((PoolItemID)305040, 0.09f)
				.AddItem((PoolItemID)305070, 0.15f)
				.AddItem((PoolItemID)305030, 0.12f)
				.AddItem((PoolItemID)305020, 0.15f)
				.AddItem((PoolItemID)305080, 0.15f)
				.AddItem((PoolItemID)305090, 0.04f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val18 = new ProbListBuilder().AddItem((PoolItemID)305010, 0.11f).AddItem((PoolItemID)305050, 0.12f).AddItem((PoolItemID)305040, 0.09f)
				.AddItem((PoolItemID)305070, 0.2f)
				.AddItem((PoolItemID)305030, 0.12f)
				.AddItem((PoolItemID)305020, 0.13f)
				.AddItem((PoolItemID)305080, 0.13f)
				.AddItem((PoolItemID)305090, 0.1f)
				.Build();
			ProbabilityList<EnemyCharacterInfo> val19 = new ProbListBuilder().AddItem((PoolItemID)305010, 0.03f).AddItem((PoolItemID)305050, 0.04f).AddItem((PoolItemID)305040, 0.08f)
				.AddItem((PoolItemID)305070, 0.3f)
				.AddItem((PoolItemID)305030, 0.12f)
				.AddItem((PoolItemID)305020, 0.12f)
				.AddItem((PoolItemID)305080, 0.13f)
				.AddItem((PoolItemID)305090, 0.18f)
				.Build();
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PaliumScenes, new Vector2Int(1, 5), val17, "EST_5XX 1Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PaliumScenes, new Vector2Int(6, 11), val18, "EST_5XX 2Loop_500", false);
			instance3.AddKnowingTemplate(item, true, TemplateHelper.PaliumScenes, new Vector2Int(12, -1), val19, "EST_5XX 3Loop_500", false);
		}
	}
	public static class MyPluginInfo
	{
		public const string PLUGIN_GUID = "ExampleMod";

		public const string PLUGIN_NAME = "ExampleMod";

		public const string PLUGIN_VERSION = "0.9.2";
	}
}
namespace ExampleMod.Content.ItemControllers
{
	public class TestTriadItemController : CustomItemController
	{
		public override void OwnerHandleSkillUsed(EventClientCharacterSkillUsed eventData)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000f: Invalid comparison between Unknown and I4
			if (((ItemController)this).IsItemInInventory && (int)eventData.SkillType == 3)
			{
				Plugin.Log.LogInfo((object)"TestTriadItemController::HandleThirdSkillUsed");
			}
		}
	}
}