Decompiled source of HIFUVariants v1.0.0

plugins/HIFUVariants/HIFUVariants.dll

Decompiled 13 hours ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Security;
using System.Security.Permissions;
using BepInEx;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using BepInEx.Logging;
using EntityStates;
using EntityStates.BrotherMonster;
using EntityStates.GlobalSkills.LunarNeedle;
using EntityStates.GravekeeperBoss;
using EntityStates.ImpBossMonster;
using EntityStates.NullifierMonster;
using EntityStates.TitanMonster;
using HG.Reflection;
using MSU;
using Microsoft.CodeAnalysis;
using RoR2;
using RoR2.CharacterAI;
using RoR2.ContentManagement;
using RoR2.Skills;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.Networking;
using VAPI;

[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("HIFUVariants")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0+c988079955e49d627ea90ee7f89be9a0c0585f20")]
[assembly: AssemblyProduct("HIFUVariants")]
[assembly: AssemblyTitle("HIFUVariants")]
[assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("1.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace HIFUVariants
{
	internal sealed class Content : IContentPackProvider
	{
		private readonly ContentPack contentPack = new ContentPack();

		private Dictionary<string, Material> monsterMaterials;

		private Dictionary<string, Material> bossMaterials;

		private static readonly Dictionary<string, string> stubbedShaders = new Dictionary<string, string>
		{
			["StubbedShader/deferred/hgstandard"] = "RoR2/Base/Shaders/HGStandard.shader",
			["StubbedShader/fx/hgopaquecloudremap"] = "RoR2/Base/Shaders/HGOpaqueCloudRemap.shader"
		};

		private static readonly Dictionary<string, string> moddedBodies = new Dictionary<string, string>
		{
			["MoffeinArchWisp"] = "com.Moffein.ArchaicWisp",
			["MoffeinClayManBody"] = "com.Moffein.ClayMen"
		};

		public string identifier => "com.HIFU.HIFUVariants";

		private static bool BodyAvailable(VariantDefs.Variant v)
		{
			string value;
			return !moddedBodies.TryGetValue(v.body, out value) || Chainloader.PluginInfos.ContainsKey(value);
		}

		public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
		{
			contentPack.identifier = identifier;
			Shader hgStandard = Addressables.LoadAssetAsync<Shader>((object)stubbedShaders["StubbedShader/deferred/hgstandard"]).WaitForCompletion();
			monsterMaterials = LoadMaterials("hifuvariantsassets", hgStandard);
			bossMaterials = LoadMaterials("hifuvariantsbossesassets", hgStandard);
			bossMaterials["@CDLeggy"] = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/ClayBoss/matGooTrailLegs.mat").WaitForCompletion();
			Log.Info($"Loaded {VariantData.Monsters.all.Length} monster and {VariantData.Bosses.all.Length} boss variants", "D:\\Games\\LostItems\\hifuvariants\\HIFUVariants\\Content.cs", "LoadStaticContentAsync", 49);
			contentPack.skillDefs.Add(VariantDefs.allSkills.ToArray());
			args.ReportProgress(1f);
			yield break;
		}

		private static Dictionary<string, Material> LoadMaterials(string bundleName, Shader fallback)
		{
			//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d6: Unknown result type (might be due to invalid IL or missing references)
			Dictionary<string, Material> dictionary = new Dictionary<string, Material>();
			AssetBundle val = AssetBundle.LoadFromFile(Path.Combine(Main.PluginDirectory, bundleName));
			if (!Object.op_Implicit((Object)(object)val))
			{
				Log.Error("Failed to load " + bundleName + ", variants will use vanilla visuals", "D:\\Games\\LostItems\\hifuvariants\\HIFUVariants\\Content.cs", "LoadMaterials", 62);
				return dictionary;
			}
			foreach (string item in from p in val.GetAllAssetNames()
				where p.EndsWith(".mat")
				select p)
			{
				Material val2 = val.LoadAsset<Material>(item);
				string key = (Object.op_Implicit((Object)(object)val2.shader) ? ((Object)val2.shader).name : "");
				val2.shader = (stubbedShaders.TryGetValue(key, out var value) ? Addressables.LoadAssetAsync<Shader>((object)value).WaitForCompletion() : fallback);
				dictionary[((Object)val2).name] = val2;
			}
			return dictionary;
		}

		public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args)
		{
			ContentPack.Copy(contentPack, args.output);
			args.ReportProgress(1f);
			yield break;
		}

		public IEnumerator FinalizeAsync(FinalizeAsyncArgs args)
		{
			AddPack("HIFU_PACK_MONSTERS", "icon.png", VariantData.Monsters.all, monsterMaterials, ((BaseUnityPlugin)Main.Instance).Config);
			AddPack("HIFU_PACK_BOSSES", "iconBosses.png", VariantData.Bosses.all, bossMaterials, new ConfigFile(Path.Combine(Paths.ConfigPath, "com.HIFU.HIFUVariants.Bosses.cfg"), true));
			args.ReportProgress(1f);
			yield break;
		}

		private static Sprite LoadIcon(string fileName)
		{
			//IL_0003: Unknown result type (might be due to invalid IL or missing references)
			//IL_0009: Expected O, but got Unknown
			//IL_0039: Unknown result type (might be due to invalid IL or missing references)
			//IL_0048: Unknown result type (might be due to invalid IL or missing references)
			Texture2D val = new Texture2D(2, 2);
			ImageConversion.LoadImage(val, File.ReadAllBytes(Path.Combine(Main.PluginDirectory, fileName)));
			return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f));
		}

		private void AddPack(string token, string iconFile, VariantDefs.Variant[] variants, Dictionary<string, Material> materials, ConfigFile config)
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0050: Expected O, but got Unknown
			VariantPack val = new VariantPack("com.HIFU.HIFUVariants." + token, token + "_NAME", token + "_NAME", token + "_DESC", LoadIcon(iconFile), (BaseUnityPlugin)(object)Main.Instance, (ConfigFile)null, config, false);
			val.characterVariantDefs.Add((from v in variants.Where(BodyAvailable)
				select VariantDefs.Build(v, materials) into def
				where Object.op_Implicit((Object)(object)def)
				select def).ToArray());
			VariantPackManager.AddVariantPack(val);
		}
	}
	internal static class Log
	{
		internal static ManualLogSource _logSource;

		internal static void Init(ManualLogSource logSource)
		{
			_logSource = logSource;
		}

		private static string getLogPrefix(string callerPath, string callerMemberName, int callerLineNumber)
		{
			int num = callerPath.LastIndexOf("HIFUVariants");
			if (num >= 0)
			{
				callerPath = callerPath.Substring(num + "HIFUVariants".Length + 1);
			}
			return $"{callerPath}:{callerLineNumber} ({callerMemberName}) ";
		}

		internal static void Debug(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogDebug((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Debug_NoCallerPrefix(object data)
		{
			_logSource.LogDebug(data);
		}

		internal static void Error(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogError((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Error_NoCallerPrefix(object data)
		{
			_logSource.LogError(data);
		}

		internal static void Fatal(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogFatal((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Fatal_NoCallerPrefix(object data)
		{
			_logSource.LogFatal(data);
		}

		internal static void Info(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogInfo((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Info_NoCallerPrefix(object data)
		{
			_logSource.LogInfo(data);
		}

		internal static void Message(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogMessage((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Message_NoCallerPrefix(object data)
		{
			_logSource.LogMessage(data);
		}

		internal static void Warning(object data, [CallerFilePath] string callerPath = "", [CallerMemberName] string callerMemberName = "", [CallerLineNumber] int callerLineNumber = -1)
		{
			_logSource.LogWarning((object)(getLogPrefix(callerPath, callerMemberName, callerLineNumber) + data));
		}

		internal static void Warning_NoCallerPrefix(object data)
		{
			_logSource.LogWarning(data);
		}
	}
	[BepInPlugin("com.HIFU.HIFUVariants", "HIFUVariants", "1.0.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Main : BaseUnityPlugin
	{
		[Serializable]
		[CompilerGenerated]
		private sealed class <>c
		{
			public static readonly <>c <>9 = new <>c();

			public static CollectContentPackProvidersDelegate <>9__12_0;

			internal void <Awake>b__12_0(AddContentPackProviderDelegate add)
			{
				add.Invoke((IContentPackProvider)(object)new Content());
			}
		}

		public const string PluginGUID = "com.HIFU.HIFUVariants";

		public const string PluginAuthor = "HIFU";

		public const string PluginName = "HIFUVariants";

		public const string PluginVersion = "1.0.0";

		internal static Main Instance { get; private set; }

		public static string PluginDirectory { get; private set; }

		public void Awake()
		{
			//IL_004a: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0055: Expected O, but got Unknown
			Instance = this;
			Log.Init(((BaseUnityPlugin)this).Logger);
			PluginDirectory = Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location);
			LanguageFileLoader.AddLanguageFilesFromMod((BaseUnityPlugin)(object)this, "languages");
			object obj = <>c.<>9__12_0;
			if (obj == null)
			{
				CollectContentPackProvidersDelegate val = delegate(AddContentPackProviderDelegate add)
				{
					add.Invoke((IContentPackProvider)(object)new Content());
				};
				<>c.<>9__12_0 = val;
				obj = (object)val;
			}
			ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)obj;
		}
	}
	internal static class VariantData
	{
		internal static class Monsters
		{
			private static readonly VariantDefs.VariantItems BrilliantItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("Behemoth", 3),
					("HealthDecay", 30)
				}
			};

			private static readonly VariantDefs.VariantItems ColossalItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("Knurl", 4),
					("Seed", 10),
					("BarrierOnOverHeal", 20)
				}
			};

			private static readonly VariantDefs.VariantItems CorruptedItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("RandomDamageZone", 3),
					("ShieldOnly", 1)
				},
				equipment = "Meteor",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 0f, 0f, 0f),
					new Keyframe(1f, 0.7464f, 2f, 2f)
				}
			};

			private static readonly VariantDefs.VariantItems CrazedItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("SecondarySkillMagazine", 4),
					("UtilitySkillMagazine", 1),
					("SecondaryCDR", 30)
				}
			};

			private static readonly VariantDefs.VariantItems CurativeItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[4]
				{
					("Mushroom", 10),
					("HealWhileSafe", 7),
					("RepeatHeal", 3),
					("AutoCastEquipment", 1)
				},
				equipment = "PassiveHealing",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 1f, 0f, 0f),
					new Keyframe(1f, 1f, 0f, 0f)
				}
			};

			private static readonly VariantDefs.VariantItems HavocItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("Plus1Crit", 100),
					("AttackSpeedOnCrit", 2)
				},
				equipment = "TeamWarCry",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 0f, 0f, 0f),
					new Keyframe(1f, 0.7464f, 2f, 2f)
				}
			};

			private static readonly VariantDefs.VariantItems HereticItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("LunarSecondaryReplacement", 1),
					("ExtraPrimary", 1),
					("ExtraSecondary", 1)
				}
			};

			private static readonly VariantDefs.VariantItems JuggernautItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[4]
				{
					("Knurl", 4),
					("HealWhileSafe", 3),
					("RepeatHeal", 1),
					("Medkit", 1)
				},
				equipment = "CommandMissile",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 0f, 0f, 0f),
					new Keyframe(1f, 0.7464f, 2f, 2f)
				},
				buffs = new(string, int, float)[1] { ("bdLunarShell", 1, 2f) }
			};

			private static readonly VariantDefs.VariantItems NeverdieItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("ExtraLife", 2),
					("ArmorPlate", 1)
				},
				equipment = "Fruit",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 0f, 0f, 0f),
					new Keyframe(1f, 0.7464f, 2f, 2f)
				}
			};

			private static readonly VariantDefs.VariantItems NocturneItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("GlobalCDR", 75),
					("ArmorReductionOnHit", 1)
				}
			};

			private static readonly VariantDefs.VariantItems PredatoryItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("SprintOutOfCombat", 2),
					("Hoof", 2)
				},
				equipment = "Tonic",
				useChance = (Keyframe[])(object)new Keyframe[2]
				{
					new Keyframe(0f, 0f, 0f, 0f),
					new Keyframe(1f, 0.7464f, 2f, 2f)
				}
			};

			private static readonly VariantDefs.VariantItems PrimalItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("Plus1Crit", 100),
					("CooldownOnCrit", 1)
				}
			};

			private static readonly VariantDefs.VariantItems RammingItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("Hoof", 7),
					("SprintBonus", 7),
					("SprintOutOfCombat", 5)
				}
			};

			private static readonly VariantDefs.VariantItems WardingItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("CrippleWardOnLevel", 2),
					("WardOnLevel", 1),
					("LevelBonus", 1)
				}
			};

			private static readonly VariantDefs.Visual AlloyVultureBrilliantMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (4, "Brilliant") }
			};

			private static readonly VariantDefs.Visual AlloyVultureCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (3, "Corrupted") }
			};

			private static readonly VariantDefs.Visual AlloyVultureCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Crazed") }
			};

			private static readonly VariantDefs.Visual AlloyVultureHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Havoc") }
			};

			private static readonly VariantDefs.Visual AlloyVultureJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual AlloyVultureNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Neverdie") }
			};

			private static readonly VariantDefs.Visual AlloyVultureNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (3, "Nocturne") }
			};

			private static readonly VariantDefs.Visual AlloyVulturePredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (3, "Predatory") }
			};

			private static readonly VariantDefs.Visual AlloyVulturePrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (4, "Primal") }
			};

			private static readonly VariantDefs.Visual AlloyVultureWardingMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Warding") }
			};

			private static readonly VariantDefs.Visual ClayManColossalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Colossal") }
			};

			private static readonly VariantDefs.Visual ClayManCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Corrupted") }
			};

			private static readonly VariantDefs.Visual ClayManCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Crazed") }
			};

			private static readonly VariantDefs.Visual ClayManHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Havoc") }
			};

			private static readonly VariantDefs.Visual ClayManJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual ClayManNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Neverdie") }
			};

			private static readonly VariantDefs.Visual ClayManNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Nocturne") }
			};

			private static readonly VariantDefs.Visual ClayManPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Predatory") }
			};

			private static readonly VariantDefs.Visual ClayManPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Primal") }
			};

			private static readonly VariantDefs.Visual ClayTemplarCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (4, "Corrupted") }
			};

			private static readonly VariantDefs.Visual ClayTemplarCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Crazed") }
			};

			private static readonly VariantDefs.Visual ClayTemplarCurativeMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Curative") }
			};

			private static readonly VariantDefs.Visual ClayTemplarHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (3, "Havoc") }
			};

			private static readonly VariantDefs.Visual ClayTemplarJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual ClayTemplarNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (2, "Corrupted") }
			};

			private static readonly VariantDefs.Visual ClayTemplarNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (4, "Nocturne") }
			};

			private static readonly VariantDefs.Visual ClayTemplarPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (4, "Predatory") }
			};

			private static readonly VariantDefs.Visual ClayTemplarPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (3, "Primal") }
			};

			private static readonly VariantDefs.Visual GreaterWispCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Corrupted") },
				lights = new(int, Color)[1] { (0, new Color(0.1961f, 0.1451f, 0.3608f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Crazed") },
				lights = new(int, Color)[1] { (0, new Color(0.4667f, 0.3294f, 0.1725f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Havoc") },
				lights = new(int, Color)[1] { (0, new Color(0.5686f, 0.3529f, 0.6431f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Juggernaut") },
				lights = new(int, Color)[1] { (0, new Color(0.1569f, 0.4f, 0.3255f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Neverdie") },
				lights = new(int, Color)[1] { (0, new Color(0.2706f, 0.1765f, 0.4353f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Nocturne") },
				lights = new(int, Color)[1] { (0, new Color(0.6981f, 0.1493f, 0.135f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Predatory") },
				lights = new(int, Color)[1] { (0, new Color(0.2392f, 0.1412f, 0.1686f, 1f)) }
			};

			private static readonly VariantDefs.Visual GreaterWispPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Primal") },
				lights = new(int, Color)[1] { (0, new Color(0.4667f, 0.3569f, 0.3529f, 1f)) }
			};

			private static readonly VariantDefs.Visual LunarExploderCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Corrupted") }
			};

			private static readonly VariantDefs.Visual LunarExploderCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Crazed") }
			};

			private static readonly VariantDefs.Visual LunarExploderHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Havoc") }
			};

			private static readonly VariantDefs.Visual LunarExploderJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual LunarExploderNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Neverdie") }
			};

			private static readonly VariantDefs.Visual LunarExploderNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Nocturne") }
			};

			private static readonly VariantDefs.Visual LunarExploderPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Predatory") }
			};

			private static readonly VariantDefs.Visual LunarExploderPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Primal") }
			};

			private static readonly VariantDefs.Visual ParentCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Corrupted") }
			};

			private static readonly VariantDefs.Visual ParentCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Crazed") }
			};

			private static readonly VariantDefs.Visual ParentHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Havoc") }
			};

			private static readonly VariantDefs.Visual ParentJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Juggernaut") },
				lights = new(int, Color)[1] { (0, new Color(0.1569f, 0.4f, 0.3255f, 1f)) }
			};

			private static readonly VariantDefs.Visual ParentNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Neverdie") }
			};

			private static readonly VariantDefs.Visual ParentNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Nocturne") }
			};

			private static readonly VariantDefs.Visual ParentPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Predatory") },
				lights = new(int, Color)[1] { (0, new Color(0.2392f, 0.1412f, 0.1686f, 1f)) }
			};

			private static readonly VariantDefs.Visual ParentPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Primal") }
			};

			private static readonly VariantDefs.Visual SharedBrilliantMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Brilliant") }
			};

			private static readonly VariantDefs.Visual SharedColossalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Colossal") }
			};

			private static readonly VariantDefs.Visual SharedCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Corrupted") }
			};

			private static readonly VariantDefs.Visual SharedCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Crazed") }
			};

			private static readonly VariantDefs.Visual SharedCurativeMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Curative") }
			};

			private static readonly VariantDefs.Visual SharedHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Havoc") }
			};

			private static readonly VariantDefs.Visual SharedHereticMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Heretic") }
			};

			private static readonly VariantDefs.Visual SharedJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual SharedNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Neverdie") }
			};

			private static readonly VariantDefs.Visual SharedNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Nocturne") }
			};

			private static readonly VariantDefs.Visual SharedPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Predatory") }
			};

			private static readonly VariantDefs.Visual SharedPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Primal") }
			};

			private static readonly VariantDefs.Visual SharedRammingMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Ramming") }
			};

			private static readonly VariantDefs.Visual SharedWardingMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Warding") }
			};

			private static readonly VariantDefs.Visual VoidReaverCorruptedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Corrupted") }
			};

			private static readonly VariantDefs.Visual VoidReaverCrazedMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Crazed") }
			};

			private static readonly VariantDefs.Visual VoidReaverHavocMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Havoc") }
			};

			private static readonly VariantDefs.Visual VoidReaverJuggernautMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Juggernaut") }
			};

			private static readonly VariantDefs.Visual VoidReaverNeverdieMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Neverdie") }
			};

			private static readonly VariantDefs.Visual VoidReaverNocturneMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Nocturne") }
			};

			private static readonly VariantDefs.Visual VoidReaverPredatoryMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (1, "Predatory") }
			};

			private static readonly VariantDefs.Visual VoidReaverPrimalMat = new VariantDefs.Visual
			{
				materials = new(int, string)[1] { (0, "Primal") }
			};

			internal static readonly VariantDefs.Variant[] all = new VariantDefs.Variant[218]
			{
				new VariantDefs.Variant("HIFU_CorruptedBeetle", "BeetleBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedBeetle", "BeetleBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocBeetle", "BeetleBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_HereticBeetle", "BeetleBody", "HIFU_VARIANT_HERETIC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(1f, 1.25f, 1f, 0.15f, 1f, 0f),
					scale = 1.25f,
					inventory = HereticItems,
					visual = SharedHereticMat,
					skills = new(SkillSlot, SkillDef)[1] { ((SkillSlot)0, LunarSecondaryReplacement) }
				},
				new VariantDefs.Variant("HIFU_JuggernautBeetle", "BeetleBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieBeetle", "BeetleBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneBeetle", "BeetleBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryBeetle", "BeetleBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalBeetle", "BeetleBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_ColossalBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = SharedColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalBeetleGuard", "BeetleGuardBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedBrassContraption", "BellBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedBrassContraption", "BellBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocBrassContraption", "BellBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautBrassContraption", "BellBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieBrassContraption", "BellBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneBrassContraption", "BellBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryBrassContraption", "BellBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalBrassContraption", "BellBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedBighornBison", "BisonBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedBighornBison", "BisonBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocBighornBison", "BisonBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautBighornBison", "BisonBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieBighornBison", "BisonBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneBighornBison", "BisonBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryBighornBison", "BisonBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalBighornBison", "BisonBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_RammingBighornBison", "BisonBody", "HIFU_VARIANT_RAMMING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.25f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1f, 0.75f, 1f, 0f),
					scale = 1.5f,
					inventory = RammingItems,
					visual = SharedRammingMat
				},
				new VariantDefs.Variant("HIFU_CorruptedClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = ClayTemplarCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = ClayTemplarCrazedMat
				},
				new VariantDefs.Variant("HIFU_CurativeClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_CURATIVE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					stats = new VariantDefs.Stats(0.5f, 0f, 1.25f, 1f, 1f, 0f),
					scale = 1.25f,
					inventory = CurativeItems,
					visual = ClayTemplarCurativeMat
				},
				new VariantDefs.Variant("HIFU_HavocClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = ClayTemplarHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = ClayTemplarJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = ClayTemplarNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = ClayTemplarNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = ClayTemplarPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalClayTemplar", "ClayBruiserBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = ClayTemplarPrimalMat
				},
				new VariantDefs.Variant("HIFU_ColossalStoneGolem", "GolemBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = SharedColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedStoneGolem", "GolemBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedStoneGolem", "GolemBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocStoneGolem", "GolemBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_HereticStoneGolem", "GolemBody", "HIFU_VARIANT_HERETIC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 0.66f, 0.1f, 1f, 0f),
					scale = 1.25f,
					inventory = HereticItems,
					visual = SharedHereticMat,
					skills = new(SkillSlot, SkillDef)[1] { ((SkillSlot)0, LunarSecondaryReplacement) }
				},
				new VariantDefs.Variant("HIFU_JuggernautStoneGolem", "GolemBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieStoneGolem", "GolemBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneStoneGolem", "GolemBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryStoneGolem", "GolemBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalStoneGolem", "GolemBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = GreaterWispCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = GreaterWispCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = GreaterWispHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = GreaterWispJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = GreaterWispNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = GreaterWispNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = GreaterWispPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalGreaterWisp", "GreaterWispBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = GreaterWispPrimalMat
				},
				new VariantDefs.Variant("HIFU_BrilliantHermitCrab", "HermitCrabBody", "HIFU_VARIANT_BRILLIANT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1f, 1.35f, 1f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = BrilliantItems,
					visual = SharedBrilliantMat
				},
				new VariantDefs.Variant("HIFU_CorruptedHermitCrab", "HermitCrabBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedHermitCrab", "HermitCrabBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_CurativeHermitCrab", "HermitCrabBody", "HIFU_VARIANT_CURATIVE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					stats = new VariantDefs.Stats(0.5f, 0f, 1.25f, 1f, 1f, 0f),
					scale = 1.25f,
					inventory = CurativeItems,
					visual = SharedCurativeMat
				},
				new VariantDefs.Variant("HIFU_HavocHermitCrab", "HermitCrabBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautHermitCrab", "HermitCrabBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieHermitCrab", "HermitCrabBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneHermitCrab", "HermitCrabBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryHermitCrab", "HermitCrabBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalHermitCrab", "HermitCrabBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedImp", "ImpBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedImp", "ImpBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocImp", "ImpBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautImp", "ImpBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieImp", "ImpBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneImp", "ImpBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryImp", "ImpBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalImp", "ImpBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedJellyfish", "JellyfishBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedJellyfish", "JellyfishBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocJellyfish", "JellyfishBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautJellyfish", "JellyfishBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieJellyfish", "JellyfishBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneJellyfish", "JellyfishBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryJellyfish", "JellyfishBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalJellyfish", "JellyfishBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_BrilliantLemurian", "LemurianBody", "HIFU_VARIANT_BRILLIANT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1f, 1.35f, 1f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = BrilliantItems,
					visual = SharedBrilliantMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLemurian", "LemurianBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLemurian", "LemurianBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLemurian", "LemurianBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLemurian", "LemurianBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLemurian", "LemurianBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLemurian", "LemurianBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLemurian", "LemurianBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLemurian", "LemurianBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_ColossalElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = SharedColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalElderLemurian", "LemurianBruiserBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLunarChimera", "LunarExploderBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = LunarExploderCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLunarChimera", "LunarExploderBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = LunarExploderCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLunarChimera", "LunarExploderBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = LunarExploderHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLunarChimera", "LunarExploderBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = LunarExploderJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLunarChimera", "LunarExploderBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = LunarExploderNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLunarChimera", "LunarExploderBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = LunarExploderNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLunarChimera", "LunarExploderBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = LunarExploderPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLunarChimera", "LunarExploderBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = LunarExploderPrimalMat
				},
				new VariantDefs.Variant("HIFU_RammingLunarChimera", "LunarExploderBody", "HIFU_VARIANT_RAMMING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.25f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1f, 0.75f, 1f, 0f),
					scale = 1.5f,
					inventory = RammingItems,
					visual = SharedRammingMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_RammingLunarChimera_LunarGolemBody", "LunarGolemBody", "HIFU_VARIANT_RAMMING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.25f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1f, 0.75f, 1f, 0f),
					scale = 1.5f,
					inventory = RammingItems,
					visual = SharedRammingMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_RammingLunarChimera_LunarWispBody", "LunarWispBody", "HIFU_VARIANT_RAMMING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.25f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1f, 0.75f, 1f, 0f),
					scale = 1.5f,
					inventory = RammingItems,
					visual = SharedRammingMat
				},
				new VariantDefs.Variant("HIFU_WardingLunarChimera", "LunarWispBody", "HIFU_VARIANT_WARDING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.75f, 0.75f, 0.75f, 1f, 0f),
					scale = 0.75f,
					inventory = WardingItems,
					visual = SharedWardingMat
				},
				new VariantDefs.Variant("HIFU_CorruptedMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_CurativeMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_CURATIVE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					stats = new VariantDefs.Stats(0.5f, 0f, 1.25f, 1f, 1f, 0f),
					scale = 1.25f,
					inventory = CurativeItems,
					visual = SharedCurativeMat
				},
				new VariantDefs.Variant("HIFU_HavocMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalMiniMushrum", "MiniMushroomBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_ColossalClayMan", "MoffeinClayManBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = ClayManColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedClayMan", "MoffeinClayManBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = ClayManCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedClayMan", "MoffeinClayManBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = ClayManCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocClayMan", "MoffeinClayManBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = ClayManHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautClayMan", "MoffeinClayManBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = ClayManJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieClayMan", "MoffeinClayManBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = ClayManNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneClayMan", "MoffeinClayManBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = ClayManNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryClayMan", "MoffeinClayManBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = ClayManPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalClayMan", "MoffeinClayManBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = ClayManPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = GreaterWispCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = GreaterWispCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = GreaterWispHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = GreaterWispJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = GreaterWispNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = GreaterWispNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = GreaterWispPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalArchaicWisp", "MoffeinArchWisp", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = GreaterWispPrimalMat
				},
				new VariantDefs.Variant("HIFU_ColossalVoidReaver", "NullifierBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = SharedColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedVoidReaver", "NullifierBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = VoidReaverCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedVoidReaver", "NullifierBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = VoidReaverCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocVoidReaver", "NullifierBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = VoidReaverHavocMat
				},
				new VariantDefs.Variant("HIFU_HereticVoidReaver", "NullifierBody", "HIFU_VARIANT_HERETIC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 0.66f, 0.1f, 1f, 0f),
					scale = 1.25f,
					inventory = HereticItems,
					visual = SharedHereticMat,
					skills = new(SkillSlot, SkillDef)[1] { ((SkillSlot)0, LunarSecondaryReplacement) }
				},
				new VariantDefs.Variant("HIFU_JuggernautVoidReaver", "NullifierBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = VoidReaverJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieVoidReaver", "NullifierBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = VoidReaverNeverdieMat
				},
				new VariantDefs.Variant("HIFU_PredatoryVoidReaver", "NullifierBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = VoidReaverPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalVoidReaver", "NullifierBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = VoidReaverPrimalMat
				},
				new VariantDefs.Variant("HIFU_RammingVoidReaver", "NullifierBody", "HIFU_VARIANT_RAMMING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.25f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1f, 0.75f, 1f, 0f),
					scale = 1.5f,
					inventory = RammingItems,
					visual = SharedRammingMat
				},
				new VariantDefs.Variant("HIFU_NocturneVoidReaver", "NullifierBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = VoidReaverNocturneMat
				},
				new VariantDefs.Variant("HIFU_ColossalParent", "ParentBody", "HIFU_VARIANT_COLOSSAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.6f, 0.75f, 1f, 1.2f, 25f),
					scale = 2.5f,
					inventory = ColossalItems,
					visual = SharedColossalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedParent", "ParentBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = ParentCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedParent", "ParentBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = ParentCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocParent", "ParentBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = ParentHavocMat
				},
				new VariantDefs.Variant("HIFU_HereticParent", "ParentBody", "HIFU_VARIANT_HERETIC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 0.66f, 0.1f, 1f, 0f),
					scale = 1.25f,
					inventory = HereticItems,
					visual = SharedHereticMat,
					skills = new(SkillSlot, SkillDef)[1] { ((SkillSlot)0, LunarSecondaryReplacement) }
				},
				new VariantDefs.Variant("HIFU_JuggernautParent", "ParentBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = ParentJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieParent", "ParentBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = ParentNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneParent", "ParentBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = ParentNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryParent", "ParentBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = ParentPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalParent", "ParentBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = ParentPrimalMat
				},
				new VariantDefs.Variant("HIFU_CorruptedSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatorySolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_WardingSolusProbe", "RoboBallMiniBody", "HIFU_VARIANT_WARDING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.75f, 0.75f, 0.75f, 1f, 0f),
					scale = 0.75f,
					inventory = WardingItems,
					visual = SharedWardingMat
				},
				new VariantDefs.Variant("HIFU_BrilliantAlloyVulture", "VultureBody", "HIFU_VARIANT_BRILLIANT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1f, 1.35f, 1f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = BrilliantItems,
					visual = AlloyVultureBrilliantMat
				},
				new VariantDefs.Variant("HIFU_CorruptedAlloyVulture", "VultureBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = AlloyVultureCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedAlloyVulture", "VultureBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = AlloyVultureCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocAlloyVulture", "VultureBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = AlloyVultureHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautAlloyVulture", "VultureBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = AlloyVultureJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieAlloyVulture", "VultureBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = AlloyVultureNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneAlloyVulture", "VultureBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = AlloyVultureNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryAlloyVulture", "VultureBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = AlloyVulturePredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalAlloyVulture", "VultureBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = AlloyVulturePrimalMat
				},
				new VariantDefs.Variant("HIFU_WardingAlloyVulture", "VultureBody", "HIFU_VARIANT_WARDING", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.5f, 0.75f, 0.75f, 0.75f, 1f, 0f),
					scale = 0.75f,
					inventory = WardingItems,
					visual = AlloyVultureWardingMat
				},
				new VariantDefs.Variant("HIFU_BrilliantLesserWisp", "WispBody", "HIFU_VARIANT_BRILLIANT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1f, 1.35f, 1f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = BrilliantItems,
					visual = SharedBrilliantMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLesserWisp", "WispBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLesserWisp", "WispBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLesserWisp", "WispBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLesserWisp", "WispBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLesserWisp", "WispBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLesserWisp", "WispBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLesserWisp", "WispBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLesserWisp", "WispBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				},
				new VariantDefs.Variant("HIFU_BrilliantLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_BRILLIANT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 4f)
				{
					stats = new VariantDefs.Stats(1f, 1.35f, 1f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = BrilliantItems,
					visual = SharedBrilliantMat
				},
				new VariantDefs.Variant("HIFU_CorruptedLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_CORRUPTED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					alwaysSprint = true,
					stats = new VariantDefs.Stats(1.25f, 1f, 0.75f, 1f, 1f, 10f),
					scale = 1.25f,
					inventory = CorruptedItems,
					visual = SharedCorruptedMat
				},
				new VariantDefs.Variant("HIFU_CrazedLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_CRAZED", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 5f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1.5f, 0.75f, 1f, 10f),
					inventory = CrazedItems,
					visual = SharedCrazedMat
				},
				new VariantDefs.Variant("HIFU_HavocLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_HAVOC", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.75f, 1f, 0f),
					scale = 1.25f,
					inventory = HavocItems,
					visual = SharedHavocMat
				},
				new VariantDefs.Variant("HIFU_JuggernautLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_JUGGERNAUT", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 2.5f)
				{
					stats = new VariantDefs.Stats(1.25f, 1f, 1f, 0.2f, 1f, 20f),
					scale = 1.5f,
					inventory = JuggernautItems,
					visual = SharedJuggernautMat
				},
				new VariantDefs.Variant("HIFU_NeverdieLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_NEVERDIE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 1f)
				{
					unique = true,
					stats = new VariantDefs.Stats(0.4f, 1f, 1f, 1f, 1f, 20f),
					scale = 1.25f,
					inventory = NeverdieItems,
					visual = SharedNeverdieMat
				},
				new VariantDefs.Variant("HIFU_NocturneLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_NOCTURNE", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3f)
				{
					stats = new VariantDefs.Stats(1f, 1f, 1f, 0.75f, 1f, 0f),
					scale = 0.6f,
					inventory = NocturneItems,
					visual = SharedNocturneMat
				},
				new VariantDefs.Variant("HIFU_PredatoryLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_PREDATORY", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 6f)
				{
					stats = new VariantDefs.Stats(0.75f, 1f, 1f, 1f, 1f, 0f),
					scale = 0.6f,
					inventory = PredatoryItems,
					visual = SharedPredatoryMat
				},
				new VariantDefs.Variant("HIFU_PrimalLesserWisp_WispSoulBody", "WispSoulBody", "HIFU_VARIANT_PRIMAL", VariantDefs.NameType.Prefix, VariantDefs.Tier.Common, 3.5f)
				{
					unstable = true,
					stats = new VariantDefs.Stats(0.75f, 1.25f, 1.25f, 0.5f, 1f, 0f),
					scale = 1.5f,
					inventory = PrimalItems,
					visual = SharedPrimalMat
				}
			};
		}

		internal static class Bosses
		{
			private static readonly VariantDefs.VariantItems BrilliantBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("Behemoth", 2),
					("HealthDecay", 30),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantItems ButcheringBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("BounceNearby", 2),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantItems ColossalBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("Knurl", 4),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantItems CrazedBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("SecondarySkillMagazine", 3),
					("UtilitySkillMagazine", 1),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantItems DeathWaltzItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[2]
				{
					("GreenHealthbar", 1),
					("GlobalCDR", 25)
				}
			};

			private static readonly VariantDefs.VariantItems EarthquakeBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("SecondaryCDR", 40),
					("SecondarySkillMagazine", 3),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantItems EphemeralBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[1] { ("GreenHealthbar", 1) }
			};

			private static readonly VariantDefs.VariantItems ErraiBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[1] { ("GreenHealthbar", 1) }
			};

			private static readonly VariantDefs.VariantItems EruptingBossItems = new VariantDefs.VariantItems
			{
				items = new(string, int)[3]
				{
					("SpecialCDR", 40),
					("ExtraSpecial", 2),
					("GreenHealthbar", 1)
				}
			};

			private static readonly VariantDefs.VariantIte