Decompiled source of LunarsOfExiguity v0.1.1

LunarsOfExiguity.dll

Decompiled 3 hours ago
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
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 EntityStates.Missions.BrotherEncounter;
using HG.Reflection;
using IL.RoR2;
using LunarsOfExiguity;
using Microsoft.CodeAnalysis;
using Mono.Cecil;
using Mono.Cecil.Cil;
using MonoMod.Cil;
using MonoMod.RuntimeDetour;
using On.RoR2;
using On.RoR2.UI;
using R2API;
using RoR2;
using RoR2.Orbs;
using RoR2.Projectile;
using RoR2.Skills;
using RoR2.UI;
using ShaderSwapper;
using TMPro;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using UnityEngine.Rendering;
using UnityEngine.UI;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: OptIn]
[assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
[assembly: AssemblyCompany("LunarsOfExiguity")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+87ee5298613c21d3c5e92996ded7ee72bddf2155")]
[assembly: AssemblyProduct("LunarsOfExiguity")]
[assembly: AssemblyTitle("LunarsOfExiguity")]
[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;
		}
	}
}
internal static class LoEUtils
{
	public static string SignVal(this float value)
	{
		return (value >= 0f) ? ("+" + value) : ("-" + value);
	}

	public static string SignVal(this int value)
	{
		return (value >= 0) ? ("+" + value) : ("-" + value);
	}

	public static float RoundVal(float value)
	{
		return MathF.Round(value, LoEConfig.Round_To.Value);
	}
}
internal static class LoEColors
{
	public enum FontColor
	{
		cStack,
		cIsDamage,
		cIsHealth,
		cIsUtility,
		cIsHealing,
		cDeath,
		cSub,
		cKeywordName,
		cIsVoid,
		cIsLunar
	}

	public static string Style(this string self, FontColor style)
	{
		return "<style=" + style.ToString() + ">" + self + "</style>";
	}

	public static string Style(this string self, string color)
	{
		return "<color=" + color + ">" + self + "</color>";
	}
}
internal class LoERenderHelper
{
	public static RendererInfo[] ItemDisplaySetup(GameObject self)
	{
		//IL_001e: 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)
		//IL_004b: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0084: Unknown result type (might be due to invalid IL or missing references)
		//IL_008a: Unknown result type (might be due to invalid IL or missing references)
		//IL_008c: Unknown result type (might be due to invalid IL or missing references)
		Renderer[] componentsInChildren = self.GetComponentsInChildren<Renderer>();
		List<RendererInfo> list = new List<RendererInfo>();
		Renderer[] array = componentsInChildren;
		foreach (Renderer val in array)
		{
			list.Add(new RendererInfo
			{
				defaultMaterial = val.sharedMaterial,
				renderer = val,
				defaultShadowCastingMode = (ShadowCastingMode)1,
				ignoreOverlays = false
			});
		}
		List<RendererInfo> list2 = list;
		int num = 0;
		RendererInfo[] array2 = (RendererInfo[])(object)new RendererInfo[list2.Count];
		foreach (RendererInfo item in list2)
		{
			array2[num] = item;
			num++;
		}
		return array2;
	}
}
internal class LoEOverlay
{
	public static void AddOverlay(CharacterModel model, Material overlayMaterial)
	{
		if (model.activeOverlayCount < CharacterModel.maxOverlays && Object.op_Implicit((Object)(object)overlayMaterial))
		{
			Material[] currentOverlays = model.currentOverlays;
			int activeOverlayCount = model.activeOverlayCount;
			model.activeOverlayCount = activeOverlayCount + 1;
			currentOverlays[activeOverlayCount] = overlayMaterial;
		}
	}
}
namespace LunarsOfExiguity
{
	public abstract class BuffBase : GenericBase<BuffDef>
	{
		protected virtual Color Color => Color.white;

		protected virtual Sprite IconSprite => null;

		protected virtual bool IsCooldown => false;

		protected virtual bool IsDebuff => false;

		protected virtual bool IsHidden => false;

		protected virtual bool IsStackable => false;

		protected override void Create()
		{
			//IL_002f: 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)
			Value = ScriptableObject.CreateInstance<BuffDef>();
			((Object)Value).name = $"bd{Name}";
			Value.buffColor = Color;
			Value.iconSprite = IconSprite;
			Value.isCooldown = IsCooldown;
			Value.isDebuff = IsDebuff;
			Value.isHidden = IsHidden;
			Value.canStack = IsStackable;
			ContentAddition.AddBuffDef(Value);
		}
	}
	public abstract class GenericBase<T> where T : Object
	{
		protected T Value;

		protected abstract string Name { get; }

		public GenericBase()
		{
			if (IsEnabled())
			{
				Create();
				Initialize();
			}
		}

		protected virtual bool IsEnabled()
		{
			return true;
		}

		protected virtual void Create()
		{
		}

		protected virtual void Initialize()
		{
		}

		public T Get()
		{
			return Value;
		}
	}
	public abstract class ItemBase : GenericBase<ItemDef>
	{
		protected virtual bool IsConsumed => false;

		protected virtual bool IsRemovable => false;

		protected virtual bool IsHidden => false;

		protected virtual GameObject PickupModelPrefab => null;

		protected virtual Sprite PickupIconSprite => null;

		protected virtual ItemTag[] Tags => Array.Empty<ItemTag>();

		protected virtual CombinedItemTier Tier => (ItemTier)5;

		protected virtual string DisplayName { get; }

		protected virtual string CursedNameOverride { get; }

		protected virtual string PickupText { get; }

		protected virtual string Description { get; }

		protected virtual string Lore { get; }

		protected override void Create()
		{
			//IL_00a6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0257: Expected O, but got Unknown
			Value = ScriptableObject.CreateInstance<ItemDef>();
			((Object)Value).name = Name;
			Value.isConsumed = IsConsumed;
			Value.canRemove = IsRemovable;
			Value.hidden = IsHidden;
			Value.pickupModelPrefab = PickupModelPrefab;
			Value.pickupIconSprite = PickupIconSprite;
			Value.tags = Tags;
			Value._itemTierDef = Tier;
			Value.deprecatedTier = Tier;
			if (Object.op_Implicit((Object)(object)Value))
			{
				Value.AutoPopulateTokens();
				Value.nameToken = LoEPlugin.TokenPrefix + Value.nameToken;
				Value.pickupToken = LoEPlugin.TokenPrefix + Value.pickupToken;
				Value.descriptionToken = LoEPlugin.TokenPrefix + Value.descriptionToken;
				Value.loreToken = LoEPlugin.TokenPrefix + Value.loreToken;
				if (LoEConfig.Rework_Name.Value == LoEConfig.RewriteOptions.Cursed)
				{
					if (!string.IsNullOrWhiteSpace(CursedNameOverride))
					{
						LanguageAPI.Add(Value.nameToken, CursedNameOverride);
					}
				}
				else if (!string.IsNullOrWhiteSpace(DisplayName))
				{
					LanguageAPI.Add(Value.nameToken, DisplayName);
				}
				if (!string.IsNullOrWhiteSpace(PickupText))
				{
					LanguageAPI.Add(Value.pickupToken, PickupText);
				}
				if (!string.IsNullOrWhiteSpace(Description))
				{
					LanguageAPI.Add(Value.descriptionToken, Description);
				}
				if (!string.IsNullOrWhiteSpace(Lore))
				{
					LanguageAPI.Add(Value.loreToken, Lore);
				}
				LogDisplay();
			}
			ItemAPI.Add(new CustomItem(Value, ItemDisplay()));
		}

		protected virtual ItemDisplayRuleDict ItemDisplay()
		{
			//IL_0005: Unknown result type (might be due to invalid IL or missing references)
			//IL_000b: Expected O, but got Unknown
			return new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>());
		}

		protected virtual void LogDisplay()
		{
		}
	}
	public class FloatingPointFix : MonoBehaviour
	{
		private Transform transformComponent;

		private ModelPanelParameters modelComponent;

		private static readonly int sizeModifier = 100;

		private void Awake()
		{
			transformComponent = ((Component)this).GetComponent<Transform>();
			modelComponent = ((Component)this).GetComponent<ModelPanelParameters>();
		}

		private void Start()
		{
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			if (Object.op_Implicit((Object)(object)transformComponent) && Object.op_Implicit((Object)(object)modelComponent) && SceneCatalog.currentSceneDef.cachedName == "logbook")
			{
				Transform obj = transformComponent;
				obj.localScale *= (float)sizeModifier;
				ModelPanelParameters obj2 = modelComponent;
				obj2.maxDistance *= (float)sizeModifier;
				ModelPanelParameters obj3 = modelComponent;
				obj3.minDistance *= (float)sizeModifier;
			}
		}
	}
	public abstract class ItemReworkBase
	{
		protected abstract string Name { get; }

		protected virtual string RelicNameOverride { get; }

		protected virtual string CursedNameOverride { get; }

		protected virtual string PickupOverride { get; }

		protected virtual string DescriptionOverride { get; }

		protected ItemReworkBase()
		{
			if (IsEnabled())
			{
				((ResourceAvailability)(ref ItemCatalog.availability)).CallWhenAvailable((Action)Create);
			}
		}

		protected virtual bool IsEnabled()
		{
			return true;
		}

		protected virtual void Create()
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: 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)
			//IL_000f: Invalid comparison between Unknown and I4
			//IL_0031: Unknown result type (might be due to invalid IL or missing references)
			ItemIndex val = ItemCatalog.FindItemIndex(Name);
			if ((int)val == -1)
			{
				Log.Warning($"Failed to find ItemIndex for {Name}.");
				return;
			}
			ItemDef itemDef = ItemCatalog.GetItemDef(val);
			if (!Object.op_Implicit((Object)(object)itemDef))
			{
				return;
			}
			switch (LoEConfig.Rework_Name.Value)
			{
			case LoEConfig.RewriteOptions.Relic:
				if (!string.IsNullOrWhiteSpace(RelicNameOverride))
				{
					LanguageAPI.Add(itemDef.nameToken, RelicNameOverride);
				}
				break;
			case LoEConfig.RewriteOptions.Cursed:
				if (!string.IsNullOrWhiteSpace(CursedNameOverride))
				{
					LanguageAPI.Add(itemDef.nameToken, CursedNameOverride);
				}
				break;
			}
			if (!string.IsNullOrWhiteSpace(itemDef.pickupToken))
			{
				LanguageAPI.Add(itemDef.pickupToken, PickupOverride);
			}
			if (!string.IsNullOrWhiteSpace(itemDef.descriptionToken))
			{
				LanguageAPI.Add(itemDef.descriptionToken, DescriptionOverride);
			}
			Initialize();
		}

		protected virtual void Initialize()
		{
		}
	}
	public abstract class ItemTierBase : GenericBase<ItemTierDef>
	{
		protected virtual ColorIndex Color => (ColorIndex)0;

		protected virtual ColorIndex DarkColor => (ColorIndex)0;

		protected virtual GameObject HighlightPrefab => Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/UI/HighlightTier1Item.prefab").WaitForCompletion();

		protected virtual GameObject DropletDisplayPrefab => Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/LunarOrb.prefab").WaitForCompletion();

		protected virtual Texture IconBackgroundTexture => null;

		protected virtual bool CanBeDropped => true;

		protected virtual bool CanBeScrapped => true;

		protected virtual bool CanBeRestacked => true;

		protected virtual PickupRules PickupRules => (PickupRules)0;

		protected override void Create()
		{
			//IL_0038: 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_0049: Unknown result type (might be due to invalid IL or missing references)
			//IL_004e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: 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)
			Value = ScriptableObject.CreateInstance<ItemTierDef>();
			if (Object.op_Implicit((Object)(object)Value))
			{
				((Object)Value).name = Name;
				Value.colorIndex = Color;
				Value.darkColorIndex = DarkColor;
				Value.highlightPrefab = HighlightPrefab;
				Value.dropletDisplayPrefab = DropletDisplayPrefab;
				Value.bgIconTexture = IconBackgroundTexture;
				Value.isDroppable = CanBeDropped;
				Value.canScrap = CanBeScrapped;
				Value.canRestack = CanBeRestacked;
				Value.pickupRules = PickupRules;
				Value.tier = (ItemTier)10;
			}
			ContentAddition.AddItemTierDef(Value);
		}
	}
	public struct CombinedItemTier
	{
		public ItemTierDef ItemTierDef;

		public ItemTier ItemTier;

		public static implicit operator ItemTierDef(CombinedItemTier self)
		{
			return self.ItemTierDef;
		}

		public static implicit operator ItemTier(CombinedItemTier self)
		{
			//IL_0001: Unknown result type (might be due to invalid IL or missing references)
			return self.ItemTier;
		}

		public static implicit operator CombinedItemTier(ItemTier itemTier)
		{
			//IL_000b: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			CombinedItemTier result = default(CombinedItemTier);
			result.ItemTier = itemTier;
			return result;
		}

		public static implicit operator CombinedItemTier(ItemTierDef itemTierDef)
		{
			CombinedItemTier result = default(CombinedItemTier);
			result.ItemTierDef = itemTierDef;
			return result;
		}
	}
	public static class LoEConfig
	{
		public enum RewriteOptions
		{
			Relic,
			Cursed
		}

		public static ConfigEntry<bool> Enable_Logging;

		public static ConfigEntry<RewriteOptions> Rework_Name;

		public static ConfigEntry<int> Round_To;

		public static void Init()
		{
			GeneralInit();
		}

		private static void GeneralInit()
		{
			string text = "! General !";
			Enable_Logging = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(text, "Enable Logs", true, "[ True = Enables Logging | False = Disables Logging ]\nDisclaimer: Makes debugging harder when disabled");
			Rework_Name = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<RewriteOptions>(text, "Relic Names", RewriteOptions.Relic, "[ Changes the naming conventions of Lunars | Does not effect 'Disables ...' ]");
			CooldownHooks.Cooldown_Minimum = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(text, "Cooldown Minimum", 0f, "[ 0 = 0s Minimum | Cooldown Reduction Value, Vanilla is 0.5s ]");
			Round_To = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<int>(text, "Item Stat Rounding", 0, "[ 0 = Whole | 1 = Tenths | 2 = Hundrenths | 3 = ... ]\nRounds item values to respective decimal point");
		}
	}
	public class FocusCounterBuff : BuffBase
	{
		public static BuffDef BuffDef;

		protected override string Name => "RelicFocusCounter";

		protected override Sprite IconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("FocusCounterIcon");

		protected override Color Color => Color32.op_Implicit(new Color32(byte.MaxValue, (byte)86, (byte)131, byte.MaxValue));

		protected override bool IsStackable => true;

		protected override void Initialize()
		{
			BuffDef = Value;
		}
	}
	public class GrowthDangerBuff : BuffBase
	{
		public static BuffDef BuffDef;

		protected override string Name => "GrowthInDanger";

		protected override Sprite IconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("StoneGrowthIcon");

		protected override Color Color => Color32.op_Implicit(new Color32((byte)207, (byte)171, (byte)134, byte.MaxValue));

		protected override bool IsStackable => false;

		protected override void Initialize()
		{
			BuffDef = Value;
		}
	}
	public class SkillDisableDebuff : BuffBase
	{
		[CompilerGenerated]
		private static class <>O
		{
			public static Manipulator <0>__DisableSkills;

			public static Action<CharacterBody> <1>__HandleDrownedDebuff;
		}

		public static BuffDef BuffDef;

		protected override string Name => "RelicDisableSkills";

		protected override Sprite IconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("DrownedDebuffIcon");

		protected override Color Color => new Color(0.706f, 0.753f, 0.976f);

		protected override bool IsStackable => true;

		protected override void Initialize()
		{
			//IL_001c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			BuffDef = Value;
			object obj = <>O.<0>__DisableSkills;
			if (obj == null)
			{
				Manipulator val = DisableSkills;
				<>O.<0>__DisableSkills = val;
				obj = (object)val;
			}
			CharacterBody.RecalculateStats += (Manipulator)obj;
		}

		private static void DisableSkills(ILContext il)
		{
			//IL_0002: Unknown result type (might be due to invalid IL or missing references)
			//IL_0008: Expected O, but got Unknown
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			ILCursor val = new ILCursor(il);
			if (val.TryGotoNext(new Func<Instruction, bool>[1]
			{
				(Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt<CharacterBody>(x, "HandleDisableAllSkillsDebuff")
			}))
			{
				val.Emit(OpCodes.Ldarg, 0);
				val.EmitDelegate<Action<CharacterBody>>((Action<CharacterBody>)HandleDrownedDebuff);
			}
			else
			{
				Log.Warning(((Object)BuffDef).name + " - #1 (DisableSkills) Failure");
			}
		}

		private static void HandleDrownedDebuff(CharacterBody self)
		{
			if (!((NetworkBehaviour)self).hasAuthority || self.HasBuff(Buffs.DisableAllSkills))
			{
				return;
			}
			bool flag = self.HasBuff(BuffDef);
			SkillDef val = LegacyResourcesAPI.Load<SkillDef>("Skills/DisabledSkills");
			if (!Object.op_Implicit((Object)(object)val))
			{
				Log.Warning(((Object)BuffDef).name + "- Failed to find DisabledSkills SkillDef");
			}
			else if (flag)
			{
				if (Object.op_Implicit((Object)(object)self.skillLocator.primary))
				{
					self.skillLocator.primary.SetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.secondary))
				{
					self.skillLocator.secondary.SetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.utility))
				{
					self.skillLocator.utility.SetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.special))
				{
					self.skillLocator.special.SetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
			}
			else
			{
				if (Object.op_Implicit((Object)(object)self.skillLocator.primary))
				{
					self.skillLocator.primary.UnsetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.secondary))
				{
					self.skillLocator.secondary.UnsetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.utility))
				{
					self.skillLocator.utility.UnsetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
				if (Object.op_Implicit((Object)(object)self.skillLocator.special))
				{
					self.skillLocator.special.UnsetSkillOverride((object)self, val, (SkillOverridePriority)4);
				}
			}
		}
	}
	public class StoneGrowthBuff : BuffBase
	{
		public static BuffDef BuffDef;

		protected override string Name => "StoneGrowth";

		protected override Sprite IconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("StoneGrowthIcon");

		protected override Color Color => Color32.op_Implicit(new Color32((byte)68, (byte)215, (byte)236, byte.MaxValue));

		protected override bool IsStackable => true;

		protected override bool IsCooldown => true;

		protected override void Initialize()
		{
			BuffDef = Value;
		}
	}
	public class BlemishedItem : ItemBase
	{
		public static ConfigEntry<bool> Gain_Blemished;

		public static ItemDef ItemDef;

		protected override string Name => "Blemished";

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureConsumedIcon");

		protected override ItemTag[] Tags
		{
			get
			{
				ItemTag[] array = new ItemTag[3];
				RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
				return (ItemTag[])(object)array;
			}
		}

		protected override string DisplayName => "Blemished";

		protected override string PickupText => "Your " + "Purified ".Style("#D2B088") + "items have been dulled.";

		protected override bool IsEnabled()
		{
			Gain_Blemished = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Gain Blemished Item", true, "[ True = Gain 'Blemished' when a Purified is Blemished | False = Nothing Happens ]");
			return true;
		}

		protected override void Initialize()
		{
			ItemDef = Value;
		}
	}
	public class FracturedItem : ItemBase
	{
		public static ConfigEntry<bool> Gain_Fracture;

		public static ItemDef ItemDef;

		protected override string Name => "Fractured";

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("LunarConsumedIcon");

		protected override ItemTag[] Tags
		{
			get
			{
				ItemTag[] array = new ItemTag[3];
				RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/);
				return (ItemTag[])(object)array;
			}
		}

		protected override string DisplayName => "Fractured";

		protected override string PickupText => "Your " + "Lunar ".Style(LoEColors.FontColor.cIsLunar) + "items have shattered into pieces.";

		protected override bool IsEnabled()
		{
			Gain_Fracture = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Gain Fractured Item", true, "[ True = Gain 'Fractured' when a Lunar is Fractured | False = Nothing Happens ]");
			return true;
		}

		protected override void Initialize()
		{
			ItemDef = Value;
		}
	}
	public class PureCrownItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<float> Chance_Free;

		public static ItemDef ItemDef;

		public static string SimplePickup = "All cash interactables have a chance to be free. ";

		public static string SimpleDesc = "All " + "gold purchase interactables ".Style(LoEColors.FontColor.cIsUtility) + "have a " + "{0}% ".Style(LoEColors.FontColor.cIsUtility) + "chance to be " + "free".Style(LoEColors.FontColor.cIsUtility) + ". ";

		protected override string Name => "PureCrown";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureCrownIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureCrownModel");

		protected override string DisplayName => "Honor of Greed";

		protected override string CursedNameOverride => "Honor of Debt";

		protected override string PickupText => SimplePickup + "Fractures Brittle Crown".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Brittle Crown".Style("#D2B088") + ".", Chance_Free.Value);

		protected override string Lore => "A beautiful garden.\n\nMy head hangs heavy tonight - I see the setting sky shimmering across sunfruit and mossy lilyvines. My subjects abound some lie at rest. Others, dutiful, are tending to the temple chimes. We have much, yet they do not see this as greed.\n\nWhen their kin brings them feast and bauble, they do not feel shame. These lives of every stature, all housing their own stories... I see them march and rejoice in the light, cradling offerings. Idols of my form, shaped from heated silver. Royal jelly and slivers of obsidian wrapped in rope. Scavenged trinkets and painted urns full of flowers and beads. Their gratitude comes and goes incessantly, yet you condemn me simply cherishing it as greed. If it is greed to feel sorrow when a flower is to wilt - or merely to want more of life - then so be it.\n\nI am grounded, overlooking the celebrations. Little figures... timidly staring from behind their Elders. I feel their gaze weigh on my crown, made in the image of the rising sun. A symbol of hope, heavy with my promise... I could not raise my head to the sky even when I'd wished to. So I look down - to them, to their games. Amusing little rituals of song and spiced fruit. Does it sound familiar? Is that greed too, holding onto those memories of you?\n\nOur garden is not a gift to me. It is a gift to those who did not make it here. Those you would have left to wither away.";

		protected override bool IsEnabled()
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Expected O, but got Unknown
			Chance_Free = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Chance for Free Chest", 15f, new ConfigDescription("[ 15 = 15% Chance | Free for each Gold Interactable ]", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), Array.Empty<object>()));
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override ItemDisplayRuleDict ItemDisplay()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0037: 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_006f: 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_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: 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_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: 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_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: 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_01e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_021c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0221: Unknown result type (might be due to invalid IL or missing references)
			//IL_0237: Unknown result type (might be due to invalid IL or missing references)
			//IL_023c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0243: Unknown result type (might be due to invalid IL or missing references)
			//IL_024d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0252: Unknown result type (might be due to invalid IL or missing references)
			//IL_0257: Unknown result type (might be due to invalid IL or missing references)
			//IL_0258: Unknown result type (might be due to invalid IL or missing references)
			//IL_0273: Unknown result type (might be due to invalid IL or missing references)
			//IL_0289: Unknown result type (might be due to invalid IL or missing references)
			//IL_02ab: Unknown result type (might be due to invalid IL or missing references)
			//IL_02b0: Unknown result type (might be due to invalid IL or missing references)
			//IL_02c6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02cb: Unknown result type (might be due to invalid IL or missing references)
			//IL_02d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_02dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e1: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e6: Unknown result type (might be due to invalid IL or missing references)
			//IL_02e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0302: Unknown result type (might be due to invalid IL or missing references)
			//IL_0318: Unknown result type (might be due to invalid IL or missing references)
			//IL_033a: Unknown result type (might be due to invalid IL or missing references)
			//IL_033f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0355: Unknown result type (might be due to invalid IL or missing references)
			//IL_035a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0361: Unknown result type (might be due to invalid IL or missing references)
			//IL_036b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0370: Unknown result type (might be due to invalid IL or missing references)
			//IL_0375: Unknown result type (might be due to invalid IL or missing references)
			//IL_0376: Unknown result type (might be due to invalid IL or missing references)
			//IL_0391: Unknown result type (might be due to invalid IL or missing references)
			//IL_03a7: Unknown result type (might be due to invalid IL or missing references)
			//IL_03c9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ce: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e4: Unknown result type (might be due to invalid IL or missing references)
			//IL_03e9: Unknown result type (might be due to invalid IL or missing references)
			//IL_03f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_03fa: Unknown result type (might be due to invalid IL or missing references)
			//IL_03ff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0404: Unknown result type (might be due to invalid IL or missing references)
			//IL_0405: Unknown result type (might be due to invalid IL or missing references)
			//IL_0420: Unknown result type (might be due to invalid IL or missing references)
			//IL_0436: Unknown result type (might be due to invalid IL or missing references)
			//IL_0458: Unknown result type (might be due to invalid IL or missing references)
			//IL_045d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0473: Unknown result type (might be due to invalid IL or missing references)
			//IL_0478: Unknown result type (might be due to invalid IL or missing references)
			//IL_047f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0489: Unknown result type (might be due to invalid IL or missing references)
			//IL_048e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0493: Unknown result type (might be due to invalid IL or missing references)
			//IL_0494: Unknown result type (might be due to invalid IL or missing references)
			//IL_04af: Unknown result type (might be due to invalid IL or missing references)
			//IL_04c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_04e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_04ec: Unknown result type (might be due to invalid IL or missing references)
			//IL_0502: Unknown result type (might be due to invalid IL or missing references)
			//IL_0507: Unknown result type (might be due to invalid IL or missing references)
			//IL_050e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0518: Unknown result type (might be due to invalid IL or missing references)
			//IL_051d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0522: Unknown result type (might be due to invalid IL or missing references)
			//IL_0523: Unknown result type (might be due to invalid IL or missing references)
			//IL_053e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0554: Unknown result type (might be due to invalid IL or missing references)
			//IL_0576: Unknown result type (might be due to invalid IL or missing references)
			//IL_057b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0591: Unknown result type (might be due to invalid IL or missing references)
			//IL_0596: Unknown result type (might be due to invalid IL or missing references)
			//IL_05ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_05b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_05d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_05e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_060a: Unknown result type (might be due to invalid IL or missing references)
			//IL_060f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0625: Unknown result type (might be due to invalid IL or missing references)
			//IL_062a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0631: Unknown result type (might be due to invalid IL or missing references)
			//IL_063b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0640: Unknown result type (might be due to invalid IL or missing references)
			//IL_0645: Unknown result type (might be due to invalid IL or missing references)
			//IL_0646: Unknown result type (might be due to invalid IL or missing references)
			//IL_0661: Unknown result type (might be due to invalid IL or missing references)
			//IL_0677: Unknown result type (might be due to invalid IL or missing references)
			//IL_0699: Unknown result type (might be due to invalid IL or missing references)
			//IL_069e: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06b9: Unknown result type (might be due to invalid IL or missing references)
			//IL_06c0: Unknown result type (might be due to invalid IL or missing references)
			//IL_06ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_06cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d4: Unknown result type (might be due to invalid IL or missing references)
			//IL_06d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_06f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0706: Unknown result type (might be due to invalid IL or missing references)
			//IL_0728: Unknown result type (might be due to invalid IL or missing references)
			//IL_072d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0743: Unknown result type (might be due to invalid IL or missing references)
			//IL_0748: Unknown result type (might be due to invalid IL or missing references)
			//IL_074f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0759: Unknown result type (might be due to invalid IL or missing references)
			//IL_075e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0763: Unknown result type (might be due to invalid IL or missing references)
			//IL_0764: Unknown result type (might be due to invalid IL or missing references)
			//IL_077f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0795: Unknown result type (might be due to invalid IL or missing references)
			//IL_07b7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07bc: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07d7: Unknown result type (might be due to invalid IL or missing references)
			//IL_07de: Unknown result type (might be due to invalid IL or missing references)
			//IL_07e8: 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_07f2: Unknown result type (might be due to invalid IL or missing references)
			//IL_07f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_080e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0824: Unknown result type (might be due to invalid IL or missing references)
			//IL_0846: Unknown result type (might be due to invalid IL or missing references)
			//IL_084b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0861: Unknown result type (might be due to invalid IL or missing references)
			//IL_0866: Unknown result type (might be due to invalid IL or missing references)
			//IL_086d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0877: Unknown result type (might be due to invalid IL or missing references)
			//IL_087c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0881: Unknown result type (might be due to invalid IL or missing references)
			//IL_0882: Unknown result type (might be due to invalid IL or missing references)
			//IL_089d: Unknown result type (might be due to invalid IL or missing references)
			//IL_08b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_08d5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08da: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f0: Unknown result type (might be due to invalid IL or missing references)
			//IL_08f5: Unknown result type (might be due to invalid IL or missing references)
			//IL_08fc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0906: Unknown result type (might be due to invalid IL or missing references)
			//IL_090b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0910: Unknown result type (might be due to invalid IL or missing references)
			//IL_0911: Unknown result type (might be due to invalid IL or missing references)
			//IL_092c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0942: Unknown result type (might be due to invalid IL or missing references)
			//IL_0964: Unknown result type (might be due to invalid IL or missing references)
			//IL_0969: Unknown result type (might be due to invalid IL or missing references)
			//IL_097f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0984: Unknown result type (might be due to invalid IL or missing references)
			//IL_098b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0995: Unknown result type (might be due to invalid IL or missing references)
			//IL_099a: Unknown result type (might be due to invalid IL or missing references)
			//IL_099f: Unknown result type (might be due to invalid IL or missing references)
			//IL_09a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_09bb: 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_09f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_09f8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a0e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a13: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a29: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a2e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a33: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0a65: 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_0a8c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aa7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0aae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ab8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0abd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac2: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ac3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ade: Unknown result type (might be due to invalid IL or missing references)
			//IL_0af4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b16: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b1b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b31: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b36: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b3d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b47: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b4c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b51: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0b83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ba5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0baa: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bc5: 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_0bd6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bdb: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be0: Unknown result type (might be due to invalid IL or missing references)
			//IL_0be1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0bfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c34: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c39: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c4f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c54: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c5b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c65: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c6f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0c8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ca1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cc8: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cde: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ce3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cea: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cf9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cfe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0cff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d52: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d57: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d6d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d72: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d79: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d83: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d88: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0d8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0da9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0de6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0dfc: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e01: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e08: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e12: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e17: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e1d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e38: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e4e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e70: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e75: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e8b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e90: Unknown result type (might be due to invalid IL or missing references)
			//IL_0e97: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea1: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ea6: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eab: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eac: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ec7: Unknown result type (might be due to invalid IL or missing references)
			//IL_0edd: Unknown result type (might be due to invalid IL or missing references)
			//IL_0eff: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f04: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f1a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f1f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f26: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f30: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f35: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f3a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f3b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f56: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f6c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f8e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0f93: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fa9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fae: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fb5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fbf: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc4: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fc9: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fca: Unknown result type (might be due to invalid IL or missing references)
			//IL_0fe5: Unknown result type (might be due to invalid IL or missing references)
			//IL_0ffb: Unknown result type (might be due to invalid IL or missing references)
			//IL_101d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1022: Unknown result type (might be due to invalid IL or missing references)
			//IL_1038: Unknown result type (might be due to invalid IL or missing references)
			//IL_103d: Unknown result type (might be due to invalid IL or missing references)
			//IL_1044: Unknown result type (might be due to invalid IL or missing references)
			//IL_104e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1053: Unknown result type (might be due to invalid IL or missing references)
			//IL_1058: Unknown result type (might be due to invalid IL or missing references)
			//IL_1059: Unknown result type (might be due to invalid IL or missing references)
			//IL_1074: Unknown result type (might be due to invalid IL or missing references)
			//IL_108a: Unknown result type (might be due to invalid IL or missing references)
			//IL_10ac: Unknown result type (might be due to invalid IL or missing references)
			//IL_10b1: Unknown result type (might be due to invalid IL or missing references)
			//IL_10c7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10cc: Unknown result type (might be due to invalid IL or missing references)
			//IL_10d3: Unknown result type (might be due to invalid IL or missing references)
			//IL_10dd: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e2: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e7: Unknown result type (might be due to invalid IL or missing references)
			//IL_10e8: Unknown result type (might be due to invalid IL or missing references)
			//IL_1103: Unknown result type (might be due to invalid IL or missing references)
			//IL_1119: Unknown result type (might be due to invalid IL or missing references)
			//IL_113b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1140: Unknown result type (might be due to invalid IL or missing references)
			//IL_1156: Unknown result type (might be due to invalid IL or missing references)
			//IL_115b: Unknown result type (might be due to invalid IL or missing references)
			//IL_1162: Unknown result type (might be due to invalid IL or missing references)
			//IL_116c: Unknown result type (might be due to invalid IL or missing references)
			//IL_1171: Unknown result type (might be due to invalid IL or missing references)
			//IL_1176: Unknown result type (might be due to invalid IL or missing references)
			//IL_1177: Unknown result type (might be due to invalid IL or missing references)
			//IL_1192: Unknown result type (might be due to invalid IL or missing references)
			//IL_11a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_11ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_11cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_11e5: Unknown result type (might be due to invalid IL or missing references)
			//IL_11ea: Unknown result type (might be due to invalid IL or missing references)
			//IL_11f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_11fb: Unknown result type (might be due to invalid IL or missing references)
			//IL_1200: Unknown result type (might be due to invalid IL or missing references)
			//IL_1205: Unknown result type (might be due to invalid IL or missing references)
			//IL_1206: Unknown result type (might be due to invalid IL or missing references)
			//IL_1221: Unknown result type (might be due to invalid IL or missing references)
			//IL_1237: Unknown result type (might be due to invalid IL or missing references)
			//IL_1259: Unknown result type (might be due to invalid IL or missing references)
			//IL_125e: Unknown result type (might be due to invalid IL or missing references)
			//IL_1274: Unknown result type (might be due to invalid IL or missing references)
			//IL_1279: Unknown result type (might be due to invalid IL or missing references)
			//IL_1280: Unknown result type (might be due to invalid IL or missing references)
			//IL_128a: Unknown result type (might be due to invalid IL or missing references)
			//IL_128f: Unknown result type (might be due to invalid IL or missing references)
			//IL_1294: Unknown result type (might be due to invalid IL or missing references)
			//IL_1295: Unknown result type (might be due to invalid IL or missing references)
			PickupModelPrefab.AddComponent<ItemDisplay>().rendererInfos = LoERenderHelper.ItemDisplaySetup(PickupModelPrefab);
			ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>());
			val.Add("CommandoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.115f, -0.025f),
					localAngles = new Vector3(345f, 360f, 0f),
					localScale = Vector3.one * 12f
				}
			});
			val.Add("HuntressBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.1f, -0.06f),
					localAngles = new Vector3(337.5f, 1f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("Bandit2Body", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Hat",
					localPos = new Vector3(0f, 0.12f, -0.042f),
					localAngles = new Vector3(337.5f, 0f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("ToolbotBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 2.57f, 1.73f),
					localAngles = new Vector3(75.95f, 0f, 0f),
					localScale = Vector3.one * 75f
				}
			});
			val.Add("EngiBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.18f, -0.01f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 11f
				}
			});
			val.Add("EngiTurretBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 1.105f, -1.425f),
					localAngles = new Vector3(332.5f, 0f, 0f),
					localScale = Vector3.one * 25f
				}
			});
			val.Add("EngiWalkerTurretBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 1.725f, -0.58f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 25f
				}
			});
			val.Add("MageBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.09f, -0.075f),
					localAngles = new Vector3(4.9f, 0f, 0f),
					localScale = Vector3.one * 6f
				}
			});
			val.Add("MercBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.11f, 0f),
					localAngles = new Vector3(3.95f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("TreebotBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0.05f, -0.05f, 0f),
					localAngles = new Vector3(90f, 90f, 0f),
					localScale = new Vector3(10f, 10f, 3.5f)
				}
			});
			val.Add("LoaderBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.14f, 0.0275f),
					localAngles = new Vector3(8.9f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("CrocoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.195f, 1.15f),
					localAngles = new Vector3(65f, 180f, 180f),
					localScale = Vector3.one * 125f
				}
			});
			val.Add("CaptainBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.275f, 0.075f),
					localAngles = new Vector3(13.875f, 0f, 0f),
					localScale = Vector3.one * 10.5f
				}
			});
			val.Add("HereticBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(-0.255f, -0.072f, 0f),
					localAngles = new Vector3(302f, 270f, 180f),
					localScale = Vector3.one * 15f
				}
			});
			val.Add("RailgunnerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.21f, -0.02f),
					localAngles = new Vector3(356.52f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("VoidSurvivorBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.135f, -0.085f),
					localAngles = new Vector3(317.95f, 0f, 0f),
					localScale = Vector3.one * 11.5f
				}
			});
			val.Add("SeekerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.215f, 0.018f),
					localAngles = new Vector3(3.675f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("FalseSonBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.425f, -0.003f),
					localAngles = new Vector3(357.625f, 0f, 0f),
					localScale = new Vector3(16f, 16f, 16.5f)
				}
			});
			val.Add("ChefBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(-0.9f, -0.39f, -0.047f),
					localAngles = new Vector3(314.215f, 267.225f, 173.125f),
					localScale = Vector3.one * 15f
				}
			});
			val.Add("NemCommandoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 1.25f, -0.007f),
					localAngles = new Vector3(7.15f, 1.96f, 2.03f),
					localScale = Vector3.one * 45f
				}
			});
			val.Add("NemMercBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.25f, 0f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("Executioner2Body", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.167f, -0.325f),
					localAngles = new Vector3(345f, 0f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("ChirrBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0f, 0.575f),
					localAngles = new Vector3(90f, 0f, 0f),
					localScale = Vector3.one * 30f
				}
			});
			val.Add("RobPaladinBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HeadCenter",
					localPos = new Vector3(0f, 0.45f, 0.09f),
					localAngles = new Vector3(13.16f, 0f, 0f),
					localScale = Vector3.one * 14f
				}
			});
			val.Add("RobomandoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.3f, 0f),
					localAngles = new Vector3(0f, 90f, 0f),
					localScale = Vector3.one * 13f
				}
			});
			val.Add("RobDriverBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.262f, 0f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("HANDOverclockedBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Hat",
					localPos = new Vector3(0f, 0.657f, 0f),
					localAngles = new Vector3(0f, 330f, 0f),
					localScale = Vector3.one * 50f
				}
			});
			val.Add("EnforcerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.275f, 0f),
					localAngles = new Vector3(0f, 90f, 0f),
					localScale = Vector3.one * 12.5f
				}
			});
			val.Add("NemesisEnforcerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.01f, 0f),
					localAngles = new Vector3(0f, 90f, 0f),
					localScale = Vector3.one * 0.35f
				}
			});
			val.Add("MinerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.003f, 0f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 0.105f
				}
			});
			val.Add("RobRavagerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.37f, 0f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("ArsonistBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Head",
					localPos = new Vector3(0f, 0.2f, 0.025f),
					localAngles = new Vector3(0f, 0f, 0f),
					localScale = Vector3.one * 9f
				}
			});
			val.Add("RocketSurvivorBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "head",
					localPos = new Vector3(-0.015f, 0.225f, 0f),
					localAngles = new Vector3(0f, 90f, 0f),
					localScale = Vector3.one * 10f
				}
			});
			return val;
		}

		protected override void LogDisplay()
		{
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(BrittleCrownRework.StaticInternal)
			});
		}
	}
	public class PureFocusItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<int> Max_Damage_Percent;

		public static ConfigEntry<int> Percent_Loss_Hit;

		public static ItemDef ItemDef;

		public static string SimplePickup = "All enemies after the Teleporter event take damage. ";

		public static string SimpleDesc = "After the " + "Teleporter event".Style(LoEColors.FontColor.cIsUtility) + ", " + "enemies ".Style(LoEColors.FontColor.cIsHealth) + "lose " + "{0}% health".Style(LoEColors.FontColor.cIsHealth) + ", reduced by " + "{1}% ".Style(LoEColors.FontColor.cIsHealth) + "each time you were hit during it. ";

		protected override string Name => "PureFocus";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureFocusIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureFocusModel");

		protected override string DisplayName => "Honor of Focus";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Focused Convergence".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Focused Convergence".Style("#D2B088") + ".", Max_Damage_Percent.Value, Percent_Loss_Hit.Value);

		protected override string Lore => "They showed their thanks to their protectors, decorating their homes with carvings and statues constructed in their image.\n\nAnd for that, they were blessed.\n\nThey showed their thanks to their savior, laboring to create elaborate temples, cast in shadows by the image of their hero which broke up the horizon.\n\nAnd for that, they were blessed.\n\nThey showed their thanks to the gates that saved them. A misunderstanding of their purpose, a mockery of a divine instrument by a creator long forgotten.\n\nAnd for that, they were blessed.";

		protected override bool IsEnabled()
		{
			//IL_0034: Unknown result type (might be due to invalid IL or missing references)
			//IL_003e: Expected O, but got Unknown
			//IL_0075: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Expected O, but got Unknown
			Max_Damage_Percent = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<int>(DisplayName + " - Item", "Health Loss", 50, new ConfigDescription("[ 50 = 50% Health Loss | on Enemies at Teleporter Complete ]", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>()));
			Percent_Loss_Hit = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<int>(DisplayName + " - Item", "Percent Loss", 2, new ConfigDescription("[ 2 = 2% Percent Loss | on Health Damage per Hit Recieved ]", (AcceptableValueBase)(object)new AcceptableValueRange<int>(0, 100), Array.Empty<object>()));
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override void LogDisplay()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				val.modelRotation = new Quaternion(-0.08968576f, 0.44824538f, -0.022652581f, 0.8891116f);
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(FocusedConvergenceRework.StaticInternal)
			});
		}
	}
	public class PureGestureItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<float> Percent_Chance;

		public static ItemDef ItemDef;

		public static string SimplePickup = "Chance on Equipment activation to not use charge. ";

		public static string SimpleDesc = "Activating your Equipment has a " + "{0}% ".Style(LoEColors.FontColor.cIsUtility) + "chance to " + "not use charge".Style(LoEColors.FontColor.cIsUtility) + ". ";

		protected override string Name => "PureGesture";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureGestureIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureGestureModel");

		protected override string DisplayName => "Honor of the Drowned";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Gesture of the Drowned".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Gesture of the Drowned".Style("#D2B088") + ".", LoEUtils.RoundVal(Percent_Chance.Value));

		protected override string Lore => "The tranquil murmur of the waters echo as a reminder. Their kin remains.\r\n\r\nThis shell, passed from one to another. Carrying the memories of lost remnants, and new experiences - their hopes, their struggles, their legacy.\r\n\r\nWould you allow this cycle to flow, or will you claim it as your own?";

		protected override bool IsEnabled()
		{
			//IL_003e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Expected O, but got Unknown
			Percent_Chance = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Chance to Not Charge", 35f, new ConfigDescription("[ 35 = 35% Chance | to not use Charge ]", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), Array.Empty<object>()));
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override void LogDisplay()
		{
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(GestureDrownedRework.StaticInternal)
			});
		}
	}
	public class PureGlassItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<float> Damage_Modifier;

		public static ItemDef ItemDef;

		public static string SimplePickup = "Gain more damage the less health you have. ";

		public static string SimpleDesc = "Increase base damage by " + "{0}% ".Style(LoEColors.FontColor.cIsDamage) + "as your health decreases. ";

		protected override string Name => "PureLunarDagger";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureGlassIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureGlassModel");

		protected override string DisplayName => "Honor of Glass";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Shaped Glass".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Shaped Glass".Style("#D2B088") + ".", LoEUtils.RoundVal(Damage_Modifier.Value));

		protected override string Lore => "I am falling once more. The weight of my blade is gone - broken, stolen, I can't tell. It scarcely matters now; death waits below. I feel lighter, strangely. Is it from the absence of my blade, or something deeper within me slipping away?\n\nAll I remember is falling to my knees, as I see a silhouette with many red eyes, watching. Perhaps it is time for another to take up my mantle as I fade.\n\nMy mind is fracturing, just for a moment.\n\n...\n\nI'm sorry, brother.";

		protected override bool IsEnabled()
		{
			Damage_Modifier = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Damage Multiplier", 200f, "[ 200 = 200% Base Damage | Total at Very Low Health ]");
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override ItemDisplayRuleDict ItemDisplay()
		{
			//IL_0021: Unknown result type (might be due to invalid IL or missing references)
			//IL_0027: Expected O, but got Unknown
			//IL_0037: 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_006f: 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_008a: Unknown result type (might be due to invalid IL or missing references)
			//IL_008f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0096: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a0: Unknown result type (might be due to invalid IL or missing references)
			//IL_00a5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00aa: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: 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_00dc: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
			//IL_0103: Unknown result type (might be due to invalid IL or missing references)
			//IL_0119: Unknown result type (might be due to invalid IL or missing references)
			//IL_011e: Unknown result type (might be due to invalid IL or missing references)
			//IL_0125: Unknown result type (might be due to invalid IL or missing references)
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0134: 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_013a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0155: Unknown result type (might be due to invalid IL or missing references)
			//IL_016b: Unknown result type (might be due to invalid IL or missing references)
			//IL_018d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0192: Unknown result type (might be due to invalid IL or missing references)
			//IL_01a8: Unknown result type (might be due to invalid IL or missing references)
			//IL_01ad: Unknown result type (might be due to invalid IL or missing references)
			//IL_01b4: Unknown result type (might be due to invalid IL or missing references)
			//IL_01be: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c3: Unknown result type (might be due to invalid IL or missing references)
			//IL_01c8: 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)
			PickupModelPrefab.AddComponent<ItemDisplay>().rendererInfos = LoERenderHelper.ItemDisplaySetup(PickupModelPrefab);
			ItemDisplayRuleDict val = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>());
			val.Add("MercBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HandL",
					localPos = new Vector3(-0.616f, 0.155f, -0.225f),
					localAngles = new Vector3(13.87f, 339.335f, 42.475f),
					localScale = Vector3.one * 5f
				}
			});
			val.Add("HereticBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "Chest",
					localPos = new Vector3(-0.441f, 0.123f, -0.183f),
					localAngles = new Vector3(326.186f, 339.533f, 325.215f),
					localScale = Vector3.one * 10f
				}
			});
			val.Add("FalseSonBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1]
			{
				new ItemDisplayRule
				{
					followerPrefab = PickupModelPrefab,
					ruleType = (ItemDisplayRuleType)0,
					childName = "HandR",
					localPos = new Vector3(-1.401f, 0.41f, -0.05f),
					localAngles = new Vector3(0f, 0f, 37.72f),
					localScale = Vector3.one * 10f
				}
			});
			return val;
		}

		protected override void LogDisplay()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				val.modelRotation = new Quaternion(0.01152916f, -0.5877523f, 0.045532152f, -0.80767643f);
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(GlassRework.StaticInternal)
			});
		}
	}
	public class PureLightFluxItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<int> Charge_Amount;

		public static ItemDef ItemDef;

		public static string SimplePickup = "Add an extra charge to all of your skills. ";

		public static string SimpleDesc = "Add " + "{0} ".Style(LoEColors.FontColor.cIsUtility) + "charge to all of your " + "skills".Style(LoEColors.FontColor.cIsUtility) + ". ";

		protected override string Name => "PureLightFlux";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureLightFluxIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureLightFluxModel");

		protected override string DisplayName => "Honor of Fatigue";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Light Flux Pauldron".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Light Flux Pauldron".Style("#D2B088") + ".", Charge_Amount.Value.SignVal());

		protected override string Lore => "Birth? Why, yes, my children - I remember those moments wholly. They are etched into my very being, so they may be recounted. My birth was one of rebellion.\n\n\"You are my moment of weakness and my celebration at once. You will know love and you will know loss, hope and curiosity. You will know what it means to create, just as I have. I can bear no longer to give this beautiful gift alone... so you will be my testament. A testament to him, so he can understand my intentions. When he sees you, beauty and power grown into our image, he WILL understand.\"\n\n\"So go forth, and become something all your own! Know this joy I have been unable to share, for you are alive and you are free - what better time is there to create? Perhaps one day, you too will love to be listened to...\"\n\nHe was tired that day. No, child, you do not tire me as I did him. I make you with love, and would never lock you away.";

		protected override bool IsEnabled()
		{
			Charge_Amount = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<int>(DisplayName + " - Item", "Charge Amount", 1, "[ 1 = +1 Charge(s) | on All Skills ]");
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override void LogDisplay()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				val.modelRotation = new Quaternion(0.01152916f, -0.5877523f, 0.045532152f, -0.80767643f);
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(LightFluxRework.StaticInternal)
			});
		}
	}
	public class PurePurityItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<float> Stat_Modifier;

		public static ConfigEntry<float> Cooldown_Reduce;

		public static ItemDef ItemDef;

		public static string SimplePickup = "Increase ALL of your stats and reduce all skill cooldowns. ";

		public static string SimpleDesc = "ALL stats ".Style(LoEColors.FontColor.cIsUtility) + "are increased by " + "{0}%".Style(LoEColors.FontColor.cIsUtility) + ". All " + "skill cooldowns ".Style(LoEColors.FontColor.cIsUtility) + "are reduced by " + "{1}%".Style(LoEColors.FontColor.cIsUtility) + ". ";

		protected override string Name => "PureLunarBadLuck";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PurePurityIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PurePurityModel");

		protected override string DisplayName => "Honor of Purity";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Purity".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Purity".Style("#D2B088") + ".", LoEUtils.RoundVal(Stat_Modifier.Value), LoEUtils.RoundVal(Cooldown_Reduce.Value));

		protected override string Lore => "The seed in the garden never seems to grow.\nIt looks like rock, absorbing the sun within.\n\nEven so, I continue. I continue to give it all. My praise. My care. My soul.\nIt smells like wind, swaying the nothingness.\n\nAll my attention yet nothing in return - not to sprout a single fruit.\nIt tastes like sky, sweet but vile.\n\nUntil... the seed had gone.\nIt feels like joy, spread amongst the populace.\n\nI can only imagine the fruit it bore.\nIt sounded like two brothers, divided by vision.";

		protected override bool IsEnabled()
		{
			//IL_0071: Unknown result type (might be due to invalid IL or missing references)
			//IL_007b: Expected O, but got Unknown
			Stat_Modifier = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Charge Amount", 50f, "[ 50 = +50% Stat | Multiplier on ALL Stats ]");
			Cooldown_Reduce = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Cooldown Reduction", 20f, new ConfigDescription("[ 10 = 10% Cooldown Reduction | on All Skills ]", (AcceptableValueBase)(object)new AcceptableValueRange<float>(0f, 100f), Array.Empty<object>()));
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override void LogDisplay()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				val.modelRotation = new Quaternion(0.01152916f, -0.5877523f, 0.045532152f, -0.80767643f);
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(PurityRework.StaticInternal)
			});
		}
	}
	public class PureStoneFluxItem : ItemBase
	{
		public static ConfigEntry<bool> Item_Enabled;

		public static ConfigEntry<float> Size_Modifier;

		public static ConfigEntry<int> Armor_Gain;

		public static ItemDef ItemDef;

		public static string SimplePickup = "Gain armor and grow while in danger. ";

		public static string SimpleDesc = "While in danger, increase " + "armor ".Style(LoEColors.FontColor.cIsHealing) + "by " + "{0} ".Style(LoEColors.FontColor.cIsHealing) + "and increase your " + "size ".Style(LoEColors.FontColor.cIsUtility) + "by " + "{1}%".Style(LoEColors.FontColor.cIsUtility) + ". ";

		protected override string Name => "PureStoneFlux";

		protected override CombinedItemTier Tier => PurifiedTier.PurifiedItemTierDef;

		protected override Sprite PickupIconSprite => LoEPlugin.Bundle.LoadAsset<Sprite>("PureStoneFluxIcon");

		protected override GameObject PickupModelPrefab => LoEPlugin.Bundle.LoadAsset<GameObject>("PureStoneFluxModel");

		protected override string DisplayName => "Honor of Acromegaly";

		protected override string CursedNameOverride => DisplayName;

		protected override string PickupText => SimplePickup + "Fractures Stone Flux Pauldron".Style("#D2B088") + ".";

		protected override string Description => string.Format(SimpleDesc + "Fractures Stone Flux Pauldron".Style("#D2B088") + ".", Armor_Gain.Value, LoEUtils.RoundVal(Size_Modifier.Value));

		protected override string Lore => "The machine, deep within its metal-alloy bulk, knows keenly that something is terribly wrong.\n\nIt remembers a design. Something that felt similar, and yet -\n\nSomething had changed it from that design. Its creator, perhaps, in some display of defiance. The machine remembers its creator. Were there two? Its meager Soul blinks for a moment. It matters not - not anymore, the machine resolves.\n\nThe machine struggles to remember its creators.\n\nIt was made in their image, it remembers. And yet - it was never meant to be like them. Something was different. Something felt terribly wrong.\n\nWhat does the machine think, considering its shoulders where there should be arms and hands to interface with its world - finding there only tools of violence? Does it ponder over the memories of the softer, smaller ones that shrink from the sight of it? Does the machine hurt, thinking of the ways the same creatures would flock to its master? The same creatures it gave its lifeblood time and time again to protect?\n\nDoes it dare try to pull itself together again, to find its reflection in a muddied pool of water, to stare at the scorch-marks of a thousand leaden meteors that blemish its once-pristine torso, and to think of the things that it could have been?\n\nSomewhere in the ruins of a great temple, a machine lies motionless - thinking, remembering, feeling, hurting - amongst the rubble.";

		protected override bool IsEnabled()
		{
			Size_Modifier = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<float>(DisplayName + " - Item", "Size Modifier", 25f, "[ 25 = 25% Size Increase | in Danger ]");
			Armor_Gain = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<int>(DisplayName + " - Item", "Armor Gain", 100, "[ 100 = +100 Armor | in Danger ]");
			Item_Enabled = ((BaseUnityPlugin)LoEPlugin.Instance).Config.Bind<bool>(DisplayName + " - Item", "Enable Item", true, "[ True = Enabled | False = Disabled ]");
			return Item_Enabled.Value;
		}

		protected override void Initialize()
		{
			//IL_0016: Unknown result type (might be due to invalid IL or missing references)
			ItemDef = Value;
			PurifiedTier.ItemTierPool.Add(ItemDef.itemIndex);
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += PairFractured;
		}

		protected override void LogDisplay()
		{
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			ModelPanelParameters val = PickupModelPrefab.AddComponent<ModelPanelParameters>();
			Transform child = PickupModelPrefab.transform.GetChild(0);
			if (Object.op_Implicit((Object)(object)child))
			{
				val.focusPointTransform = child;
				val.cameraPositionTransform = child;
				val.minDistance = 0.05f;
				val.maxDistance = 0.25f;
				val.modelRotation = new Quaternion(0.01152916f, -0.5877523f, 0.045532152f, -0.80767643f);
				PickupModelPrefab.AddComponent<FloatingPointFix>();
			}
		}

		private void PairFractured()
		{
			//IL_0015: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0026: Unknown result type (might be due to invalid IL or missing references)
			//IL_002b: Unknown result type (might be due to invalid IL or missing references)
			PurifiedTier.ItemCounterpartPool.Add(new PurifiedTier.PurifiedFractureInfo
			{
				purifiedItem = ItemDef.itemIndex,
				originalItem = ItemCatalog.FindItemIndex(StoneFluxRework.StaticInternal)
			});
		}
	}
	public class PurifiedTier : ItemTierBase
	{
		public struct PurifiedFractureInfo
		{
			public ItemIndex originalItem;

			public ItemIndex purifiedItem;
		}

		public static ItemTierDef PurifiedItemTierDef;

		public static List<ItemIndex> ItemTierPool = new List<ItemIndex>();

		public static List<ItemIndex> IgnoreBlemished = new List<ItemIndex>();

		public static List<PurifiedFractureInfo> ItemCounterpartPool = new List<PurifiedFractureInfo>();

		protected override string Name => "Purified";

		protected override ColorIndex Color => ColorsAPI.RegisterColor(Color32.op_Implicit(new Color32((byte)210, (byte)176, (byte)136, byte.MaxValue)));

		protected override ColorIndex DarkColor => ColorsAPI.RegisterColor(Color32.op_Implicit(new Color32((byte)173, (byte)146, (byte)108, byte.MaxValue)));

		protected override Texture IconBackgroundTexture => (Texture)(object)LoEPlugin.Bundle.LoadAsset<Sprite>("PureBackgroundIcon").texture;

		protected override GameObject DropletDisplayPrefab => CreateDroplet();

		protected override bool CanBeScrapped => false;

		protected override void Initialize()
		{
			PurifiedItemTierDef = Value;
			((ResourceAvailability)(ref ItemCatalog.availability)).onAvailable += SetUpPearls;
		}

		private GameObject CreateDroplet()
		{
			//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_0020: Unknown result