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.AI.Walker; using EntityStates.Commando.CommandoWeapon; using HG; using HG.BlendableTypes; using HazeMod.Characters.Survivors.Haze; using HazeMod.Characters.Survivors.Haze.Components; using HazeMod.Characters.Survivors.Haze.Content; using HazeMod.Characters.Survivors.Haze.SkillStates; using HazeMod.Modules; using HazeMod.Modules.Achievements; using HazeMod.Modules.BaseStates; using HazeMod.Modules.Characters; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("HazeMod")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+42797355aa18cb54232bd773db55ce2dc50df84b")] [assembly: AssemblyProduct("HazeMod")] [assembly: AssemblyTitle("HazeMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace HazeMod { [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.perl.HazeMod", "HazeMod", "1.0.4")] public class HazePlugin : BaseUnityPlugin { public const string MODUID = "com.perl.HazeMod"; public const string MODNAME = "HazeMod"; public const string MODVERSION = "1.0.4"; public const string DEVELOPER_PREFIX = "PERL"; public static HazePlugin instance; private void Awake() { instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Language.Init(); new HazeSurvivor().Initialize(); new ContentPacks().Initialize(); } } internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void ErrorAssetBundle(string assetName, string bundleName) { Error("failed to load asset, " + assetName + ", because it does not exist in asset bundle, " + bundleName); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } } namespace HazeMod.Modules { internal static class Asset { internal static Dictionary loadedBundles = new Dictionary(); internal static AssetBundle LoadAssetBundle(string bundleName) { if (loadedBundles.ContainsKey(bundleName)) { return loadedBundles[bundleName]; } AssetBundle val = null; try { val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)HazePlugin.instance).Info.Location), "AssetBundles", bundleName)); } catch (Exception arg) { Log.Error($"Error loading asset bundle, {bundleName}. Your asset bundle must be in a folder next to your mod dll called 'AssetBundles'. Follow the guide to build and install your mod correctly!\n{arg}"); } loadedBundles[bundleName] = val; return val; } internal static GameObject CloneTracer(string originalTracerName, string newTracerName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName) == (Object)null) { return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName), newTracerName, true); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } val.GetComponent().speed = 250f; val.GetComponent().length = 50f; Content.CreateAndAddEffectDef(val); return val; } internal static void ConvertAllRenderersToHopooShader(GameObject objectToConvert) { if (!Object.op_Implicit((Object)(object)objectToConvert)) { return; } MeshRenderer[] componentsInChildren = objectToConvert.GetComponentsInChildren(); foreach (MeshRenderer val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial.ConvertDefaultShaderToHopoo(); } } SkinnedMeshRenderer[] componentsInChildren2 = objectToConvert.GetComponentsInChildren(); foreach (SkinnedMeshRenderer val2 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)((Renderer)val2).sharedMaterial)) { ((Renderer)val2).sharedMaterial.ConvertDefaultShaderToHopoo(); } } } internal static GameObject LoadCrosshair(string crosshairName) { GameObject val = LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); if ((Object)(object)val == (Object)null) { Log.Error("could not load crosshair with the name " + crosshairName + ". defaulting to Standard"); return LegacyResourcesAPI.Load("Prefabs/Crosshair/StandardCrosshair"); } return val; } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, bool parentToTransform) { return assetBundle.LoadEffect(resourceName, "", parentToTransform); } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, string soundName = "", bool parentToTransform = false) { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(resourceName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(resourceName, ((Object)assetBundle).name); return null; } val.AddComponent().duration = 12f; val.AddComponent(); val.AddComponent().vfxPriority = (VFXPriority)2; EffectComponent obj = val.AddComponent(); obj.applyScale = false; obj.effectIndex = (EffectIndex)(-1); obj.parentToReferencedTransform = parentToTransform; obj.positionAtReferencedTransform = true; obj.soundName = soundName; Content.CreateAndAddEffectDef(val); return val; } internal static GameObject CreateProjectileGhostPrefab(this AssetBundle assetBundle, string ghostName) { GameObject val = assetBundle.LoadAsset(ghostName); if ((Object)(object)val == (Object)null) { Log.Error("Failed to load ghost prefab " + ghostName); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } ConvertAllRenderersToHopooShader(val); return val; } internal static GameObject CloneProjectilePrefab(string prefabName, string newPrefabName) { return PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/" + prefabName), newPrefabName); } internal static GameObject LoadAndAddProjectilePrefab(this AssetBundle assetBundle, string newPrefabName) { GameObject val = assetBundle.LoadAsset(newPrefabName); if ((Object)(object)val == (Object)null) { Log.ErrorAssetBundle(newPrefabName, ((Object)assetBundle).name); return null; } Content.AddProjectilePrefab(val); return val; } } public static class Config { public static ConfigFile MyConfig = ((BaseUnityPlugin)HazePlugin.instance).Config; public static ConfigEntry CharacterEnableConfig(string section, string characterName, string description = "", bool enabledByDefault = true) { if (string.IsNullOrEmpty(description)) { description = "Set to false to disable this character and as much of its code and content as possible"; } return BindAndOptions(section, "Enable " + characterName, enabledByDefault, description, restartRequired: true); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, string description = "", bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, 0f, 20f, description, restartRequired); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, float min, float max, string description = "", bool restartRequired = false) { if (string.IsNullOrEmpty(description)) { description = name; } if (restartRequired) { description += " (restart required)"; } ConfigEntry result = MyConfig.Bind(section, name, defaultValue, description); Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions"); return result; } public static ConfigEntry BindAndOptionsSlider(string section, string name, float defaultValue, string description, float min = 0f, float max = 20f, bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, min, max, description, restartRequired); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void TryRegisterOption(ConfigEntry entry, float min, float max, bool restartRequired) { } public static bool GetKeyPressed(KeyboardShortcut entry) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) foreach (KeyCode modifier in ((KeyboardShortcut)(ref entry)).Modifiers) { if (!Input.GetKey(modifier)) { return false; } } return Input.GetKeyDown(((KeyboardShortcut)(ref entry)).MainKey); } } internal class Content { internal static void AddCharacterBodyPrefab(GameObject bprefab) { ContentPacks.bodyPrefabs.Add(bprefab); } internal static void AddMasterPrefab(GameObject prefab) { ContentPacks.masterPrefabs.Add(prefab); } internal static void AddProjectilePrefab(GameObject prefab) { ContentPacks.projectilePrefabs.Add(prefab); } internal static void AddSurvivorDef(SurvivorDef survivorDef) { ContentPacks.survivorDefs.Add(survivorDef); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, float sortPosition) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, sortPosition); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) SurvivorDef obj = ScriptableObject.CreateInstance(); obj.bodyPrefab = bodyPrefab; obj.displayPrefab = displayPrefab; obj.primaryColor = charColor; obj.cachedName = ((Object)bodyPrefab).name.Replace("Body", ""); obj.displayNameToken = tokenPrefix + "NAME"; obj.descriptionToken = tokenPrefix + "DESCRIPTION"; obj.outroFlavorToken = tokenPrefix + "OUTRO_FLAVOR"; obj.mainEndingEscapeFailureFlavorToken = tokenPrefix + "OUTRO_FAILURE"; obj.desiredSortPosition = sortPosition; obj.unlockableDef = unlockableDef; AddSurvivorDef(obj); } internal static void AddUnlockableDef(UnlockableDef unlockableDef) { ContentPacks.unlockableDefs.Add(unlockableDef); } internal static UnlockableDef CreateAndAddUnlockbleDef(string identifier, string nameToken, Sprite achievementIcon) { UnlockableDef obj = ScriptableObject.CreateInstance(); obj.cachedName = identifier; obj.nameToken = nameToken; obj.achievementIcon = achievementIcon; AddUnlockableDef(obj); return obj; } internal static void AddSkillDef(SkillDef skillDef) { ContentPacks.skillDefs.Add(skillDef); } internal static void AddSkillFamily(SkillFamily skillFamily) { ContentPacks.skillFamilies.Add(skillFamily); } internal static void AddEntityState(Type entityState) { ContentPacks.entityStates.Add(entityState); } internal static void AddBuffDef(BuffDef buffDef) { ContentPacks.buffDefs.Add(buffDef); } internal static BuffDef CreateAndAddBuff(string buffName, Sprite buffIcon, Color buffColor, bool canStack, bool isDebuff) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) BuffDef obj = ScriptableObject.CreateInstance(); ((Object)obj).name = buffName; obj.buffColor = buffColor; obj.canStack = canStack; obj.isDebuff = isDebuff; obj.eliteDef = null; obj.iconSprite = buffIcon; AddBuffDef(obj); return obj; } internal static void AddEffectDef(EffectDef effectDef) { ContentPacks.effectDefs.Add(effectDef); } internal static EffectDef CreateAndAddEffectDef(GameObject effectPrefab) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_000d: Expected O, but got Unknown EffectDef val = new EffectDef(effectPrefab); AddEffectDef(val); return val; } internal static void AddNetworkSoundEventDef(NetworkSoundEventDef networkSoundEventDef) { ContentPacks.networkSoundEventDefs.Add(networkSoundEventDef); } internal static NetworkSoundEventDef CreateAndAddNetworkSoundEventDef(string eventName) { NetworkSoundEventDef obj = ScriptableObject.CreateInstance(); obj.akId = AkSoundEngine.GetIDFromString(eventName); obj.eventName = eventName; AddNetworkSoundEventDef(obj); return obj; } } internal class ContentPacks : IContentPackProvider { internal ContentPack contentPack = new ContentPack(); public static List bodyPrefabs = new List(); public static List masterPrefabs = new List(); public static List projectilePrefabs = new List(); public static List survivorDefs = new List(); public static List unlockableDefs = new List(); public static List skillFamilies = new List(); public static List skillDefs = new List(); public static List entityStates = new List(); public static List buffDefs = new List(); public static List effectDefs = new List(); public static List networkSoundEventDefs = new List(); public string identifier => "com.perl.HazeMod"; public void Initialize() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { contentPack.identifier = identifier; contentPack.bodyPrefabs.Add(bodyPrefabs.ToArray()); contentPack.masterPrefabs.Add(masterPrefabs.ToArray()); contentPack.projectilePrefabs.Add(projectilePrefabs.ToArray()); contentPack.survivorDefs.Add(survivorDefs.ToArray()); contentPack.unlockableDefs.Add(unlockableDefs.ToArray()); contentPack.skillDefs.Add(skillDefs.ToArray()); contentPack.skillFamilies.Add(skillFamilies.ToArray()); contentPack.entityStateTypes.Add(entityStates.ToArray()); contentPack.buffDefs.Add(buffDefs.ToArray()); contentPack.effectDefs.Add(effectDefs.ToArray()); contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray()); args.ReportProgress(1f); yield break; } public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { ContentPack.Copy(contentPack, args.output); args.ReportProgress(1f); yield break; } public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { args.ReportProgress(1f); yield break; } } internal static class ItemDisplayCheck { public static List allDisplayedItems; public static void PrintUnused(ItemDisplayRuleSet itemDisplayRuleSet, string bodyName = "") { PrintUnused((IEnumerable)itemDisplayRuleSet.keyAssetRuleGroups.ToList(), bodyName); } public static void PrintUnused(IEnumerable ruleSet = null, string bodyName = "") { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) string text = "generating item displays for " + bodyName; if (allDisplayedItems == null) { LazyGatherAllItems(); } List list = new List(allDisplayedItems); string text2 = ""; if (ruleSet != null) { foreach (KeyAssetRuleGroup item in ruleSet) { if (item.displayRuleGroup.rules.Length != 0) { list.Remove(item.keyAsset); if (string.IsNullOrEmpty(text2)) { text2 = item.displayRuleGroup.rules[0].childName; } } } } if (string.IsNullOrEmpty(text2)) { text2 = "Chest"; } foreach (Object item2 in list) { string text3 = ""; if (ItemDisplays.KeyAssetDisplayPrefabs.ContainsKey(item2)) { text3 += SpitOutNewRule(item2, text2, ItemDisplays.KeyAssetDisplayPrefabs[item2]); } else { Log.Error($"COULD NOT FIND DISPLAY PREFABS FOR KEYASSET {item2}"); } text += text3; } Log.Message(text); } private static void LazyGatherAllItems() { allDisplayedItems = new List(ItemDisplays.KeyAssetDisplayPrefabs.Keys); allDisplayedItems.Sort(delegate(Object item1, Object item2) { if (item1 is ItemDef && item2 is ItemDef) { return item1.name.CompareTo(item2.name); } if (item1 is EquipmentDef && item2 is EquipmentDef) { return item1.name.CompareTo(item2.name); } if (item1 is ItemDef && item2 is EquipmentDef) { return -1; } return (item1 is EquipmentDef && item2 is ItemDef) ? 1 : 0; }); } private static string SpitOutNewRule(Object asset, string firstCompatibleChild, ItemDisplayRule[] displayRules) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) if (displayRules.Length == 0) { return $"\n[NO DISPLAY RULES FOUND FOR THE KEYASSET {asset}"; } string text = "\n itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets[\"" + asset.name + "\"]"; for (int i = 0; i < displayRules.Length; i++) { text = (((int)displayRules[i].limbMask != 0) ? (text + ",\n" + $" ItemDisplays.CreateLimbMaskDisplayRule(LimbFlags.{displayRules[i].limbMask})") : (text + ",\n ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay(\"" + ((Object)displayRules[i].followerPrefab).name + "\"),\n \"" + firstCompatibleChild + "\",\n new Vector3(2, 2, 2),\n new Vector3(0, 0, 0),\n new Vector3(1, 1, 1)\n )")); } return text + "\n ));"; } } internal static class ItemDisplays { private static Dictionary itemDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssetDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssets = new Dictionary(); public static int queuedDisplays; public static bool initialized = false; public static void LazyInit() { if (!initialized) { initialized = true; PopulateDisplays(); } } internal static void DisposeWhenDone() { queuedDisplays--; if (queuedDisplays <= 0 && initialized) { initialized = false; itemDisplayPrefabs = null; KeyAssetDisplayPrefabs = null; KeyAssets = null; } } internal static void PopulateDisplays() { PopulateFromBody("LoaderBody"); } private static void PopulateFromBody(string bodyName) { KeyAssetRuleGroup[] keyAssetRuleGroups = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName).GetComponent().modelTransform).GetComponent().itemDisplayRuleSet.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; KeyAssetDisplayPrefabs[keyAssetRuleGroups[i].keyAsset] = rules; KeyAssets[keyAssetRuleGroups[i].keyAsset.name] = keyAssetRuleGroups[i].keyAsset; for (int j = 0; j < rules.Length; j++) { GameObject followerPrefab = rules[j].followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLowerInvariant(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } private static void PopulateCustomLightningArm() { GameObject val = PrefabAPI.InstantiateClone(itemDisplayPrefabs["displaylightningarmright"], "DisplayLightningCustom", false); LimbMatcher component = val.GetComponent(); component.limbPairs[0].targetChildLimb = "LightningArm1"; component.limbPairs[1].targetChildLimb = "LightningArm2"; component.limbPairs[2].targetChildLimb = "LightningArmEnd"; itemDisplayPrefabs["displaylightningarmcustom"] = val; } public static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLowerInvariant()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLowerInvariant()])) { return itemDisplayPrefabs[name.ToLowerInvariant()]; } Log.Error("item display " + name + " returned null"); return null; } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(string itemName, params ItemDisplayRule[] rules) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRuleGroupWithRules(GetKeyAssetFromString(itemName), rules); } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(Object keyAsset_, params ItemDisplayRule[] rules) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) if (keyAsset_ == (Object)null) { Log.Error("could not find keyasset"); } return new KeyAssetRuleGroup { keyAsset = keyAsset_, displayRuleGroup = new DisplayRuleGroup { rules = rules } }; } public static ItemDisplayRule CreateDisplayRule(string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRule(LoadDisplay(prefabName), childName, position, rotation, scale); } public static ItemDisplayRule CreateDisplayRule(GameObject itemPrefab, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) return new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = itemPrefab, limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale }; } public static ItemDisplayRule CreateLimbMaskDisplayRule(LimbFlags limb) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) return new ItemDisplayRule { ruleType = (ItemDisplayRuleType)1, limbMask = limb, childName = "", followerPrefab = null }; } private static Object GetKeyAssetFromString(string itemName) { Object val = (Object)(object)LegacyResourcesAPI.Load("ItemDefs/" + itemName); if (val == (Object)null) { val = (Object)(object)LegacyResourcesAPI.Load("EquipmentDefs/" + itemName); } if (val == (Object)null) { Log.Error("Could not load keyasset for " + itemName); } return val; } } internal static class Language { public static string TokensOutput = ""; public static bool usingLanguageFolder = true; public static bool printingEnabled = false; public static void Init() { if (usingLanguageFolder) { Language.collectLanguageRootFolders += Language_collectLanguageRootFolders; } } private static void Language_collectLanguageRootFolders(List obj) { string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)HazePlugin.instance).Info.Location), "Language"); if (Directory.Exists(text)) { obj.Add(text); } } public static void Add(string token, string text) { if (!usingLanguageFolder) { LanguageAPI.Add(token, text); } if (printingEnabled) { Log.Message("\n \"" + token + "\" : \"" + text.Replace(Environment.NewLine, "\\n").Replace("\n", "\\n") + "\","); TokensOutput = TokensOutput + "\n \"" + token + "\" : \"" + text.Replace(Environment.NewLine, "\\n").Replace("\n", "\\n") + "\","; } } public static void PrintOutput(string fileName = "") { if (printingEnabled) { string text = "{\n strings:\n {" + TokensOutput + "\n }\n}"; Log.Message(fileName + ": \n" + text); if (!string.IsNullOrEmpty(fileName)) { File.WriteAllText(Path.Combine(Directory.GetParent(((BaseUnityPlugin)HazePlugin.instance).Info.Location).FullName, "Language", "en", fileName), text); } TokensOutput = ""; } } } internal static class Materials { private static List cachedMaterials = new List(); internal static Shader hotpoo = LegacyResourcesAPI.Load("Shaders/Deferred/HGStandard"); public static Material LoadMaterial(this AssetBundle assetBundle, string materialName) { return assetBundle.CreateHopooMaterialFromBundle(materialName); } public static Material CreateHopooMaterialFromBundle(this AssetBundle assetBundle, string materialName) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown Material val = cachedMaterials.Find(delegate(Material mat) { materialName.Replace(" (Instance)", ""); return ((Object)mat).name.Contains(materialName); }); if (Object.op_Implicit((Object)(object)val)) { Log.Debug(((Object)val).name + " has already been loaded. returning cached"); return val; } val = assetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(materialName, ((Object)assetBundle).name); return new Material(hotpoo); } return val.ConvertDefaultShaderToHopoo(); } public static Material SetHopooMaterial(this Material tempMat) { return tempMat.ConvertDefaultShaderToHopoo(); } public static Material ConvertDefaultShaderToHopoo(this Material tempMat) { //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) if (cachedMaterials.Contains(tempMat)) { Log.Debug(((Object)tempMat).name + " has already been converted. returning cached"); return tempMat; } string text = ((Object)tempMat.shader).name.ToLowerInvariant(); if (!text.StartsWith("standard") && !text.StartsWith("autodesk")) { Log.Debug(((Object)tempMat).name + " is not unity standard shader. aborting material conversion"); return tempMat; } float? num = null; Color? val = null; if (tempMat.IsKeywordEnabled("_NORMALMAP")) { num = tempMat.GetFloat("_BumpScale"); } if (tempMat.IsKeywordEnabled("_EMISSION")) { val = tempMat.GetColor("_EmissionColor"); } tempMat.shader = hotpoo; tempMat.SetTexture("_EmTex", tempMat.GetTexture("_EmissionMap")); tempMat.EnableKeyword("DITHER"); if (num.HasValue) { tempMat.SetFloat("_NormalStrength", num.Value); tempMat.SetTexture("_NormalTex", tempMat.GetTexture("_BumpMap")); } if (val.HasValue) { tempMat.SetColor("_EmColor", val.Value); tempMat.SetFloat("_EmPower", 1f); } if (tempMat.IsKeywordEnabled("NOCULL")) { tempMat.SetInt("_Cull", 0); } if (tempMat.IsKeywordEnabled("LIMBREMOVAL")) { tempMat.SetInt("_LimbRemovalOn", 1); } cachedMaterials.Add(tempMat); return tempMat; } public static Material MakeUnique(this Material material) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown if (cachedMaterials.Contains(material)) { return new Material(material); } return material; } public static Material SetColor(this Material material, Color color) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) material.SetColor("_Color", color); return material; } public static Material SetNormal(this Material material, float normalStrength = 1f) { material.SetFloat("_NormalStrength", normalStrength); return material; } public static Material SetEmission(this Material material) { return material.SetEmission(1f); } public static Material SetEmission(this Material material, float emission) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return material.SetEmission(emission, Color.white); } public static Material SetEmission(this Material material, float emission, Color emissionColor) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) material.SetFloat("_EmPower", emission); material.SetColor("_EmColor", emissionColor); return material; } public static Material SetCull(this Material material, bool cull = false) { material.SetInt("_Cull", cull ? 1 : 0); return material; } public static Material SetSpecular(this Material material, float strength) { material.SetFloat("_SpecularStrength", strength); return material; } public static Material SetSpecular(this Material material, float strength, float exponent) { material.SetFloat("_SpecularStrength", strength); material.SetFloat("SpecularExponent", exponent); return material; } } internal static class Prefabs { private static PhysicMaterial ragdollMaterial; public static GameObject CreateDisplayPrefab(AssetBundle assetBundle, string displayPrefabName, GameObject prefab) { GameObject val = assetBundle.LoadAsset(displayPrefabName); if ((Object)(object)val == (Object)null) { Log.Error("could not load display prefab " + displayPrefabName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } CharacterModel val2 = val.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = val.AddComponent(); } val2.baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; Asset.ConvertAllRenderersToHopooShader(val); return val; } public static GameObject LoadCharacterModel(AssetBundle assetBundle, string modelName) { GameObject val = assetBundle.LoadAsset(modelName); if ((Object)(object)val == (Object)null) { Log.Error("could not load model prefab " + modelName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject LoadCharacterBody(AssetBundle assetBundle, string bodyName) { GameObject val = assetBundle.LoadAsset(bodyName); if ((Object)(object)val == (Object)null) { Log.Error("could not load body prefab " + bodyName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject CloneCharacterBody(BodyInfo bodyInfo) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion(); if (!Object.op_Implicit((Object)(object)val)) { Log.Error(bodyInfo.bodyNameToClone + " Body to clone is not a valid body, character creation failed"); return null; } GameObject val2 = PrefabAPI.InstantiateClone(val, bodyInfo.bodyName); for (int num = val2.transform.childCount - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)((Component)val2.transform.GetChild(num)).gameObject); } return val2; } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject model, BodyInfo bodyInfo) { return CreateBodyPrefab(CloneCharacterBody(bodyInfo), model, bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, AssetBundle assetBundle, string modelName, BodyInfo bodyInfo) { return CreateBodyPrefab(newBodyPrefab, LoadCharacterModel(assetBundle, modelName), bodyInfo); } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string bodyPrefabName, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterBody(assetBundle, bodyPrefabName), LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, GameObject model, BodyInfo bodyInfo) { if ((Object)(object)model == (Object)null || (Object)(object)newBodyPrefab == (Object)null) { Log.Error($"Character creation failed. Model: {model}, Body: {newBodyPrefab}"); return null; } SetupCharacterBody(newBodyPrefab, bodyInfo); Transform modelBaseTransform = AddCharacterModelToSurvivorBody(newBodyPrefab, model.transform, bodyInfo); SetupModelLocator(newBodyPrefab, modelBaseTransform, model.transform); SetupCharacterDirection(newBodyPrefab, modelBaseTransform, model.transform); SetupCameraTargetParams(newBodyPrefab, bodyInfo); SetupCapsuleCollider(newBodyPrefab); Content.AddCharacterBodyPrefab(newBodyPrefab); return newBodyPrefab; } private static void SetupCharacterBody(GameObject newBodyPrefab, BodyInfo bodyInfo) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = newBodyPrefab.GetComponent(); component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component.bodyColor = bodyInfo.bodyColor; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.hideCrosshair = false; component.preferredPodPrefab = bodyInfo.podPrefab; component.baseMaxHealth = bodyInfo.maxHealth; component.baseRegen = bodyInfo.healthRegen; component.baseArmor = bodyInfo.armor; component.baseMaxShield = bodyInfo.shield; component.baseDamage = bodyInfo.damage; component.baseAttackSpeed = bodyInfo.attackSpeed; component.baseCrit = bodyInfo.crit; component.baseMoveSpeed = bodyInfo.moveSpeed; component.baseJumpPower = bodyInfo.jumpPower; component.autoCalculateLevelStats = bodyInfo.autoCalculateLevelStats; if (bodyInfo.autoCalculateLevelStats) { component.levelMaxHealth = Mathf.Round(component.baseMaxHealth * 0.3f); component.levelMaxShield = Mathf.Round(component.baseMaxShield * 0.3f); component.levelRegen = component.baseRegen * 0.2f; component.levelMoveSpeed = 0f; component.levelJumpPower = 0f; component.levelDamage = component.baseDamage * 0.2f; component.levelAttackSpeed = 0f; component.levelCrit = 0f; component.levelArmor = 0f; } else { component.levelMaxHealth = bodyInfo.healthGrowth; component.levelMaxShield = bodyInfo.shieldGrowth; component.levelRegen = bodyInfo.regenGrowth; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.levelDamage = bodyInfo.damageGrowth; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.levelCrit = bodyInfo.critGrowth; component.levelArmor = bodyInfo.armorGrowth; } component.baseAcceleration = bodyInfo.acceleration; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.hullClassification = (HullClassification)0; component.isChampion = false; } private static Transform AddCharacterModelToSurvivorBody(GameObject bodyPrefab, Transform modelTransform, BodyInfo bodyInfo) { //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) Transform val = bodyPrefab.transform.Find("ModelBase"); if ((Object)(object)val == (Object)null) { val = new GameObject("ModelBase").transform; val.parent = bodyPrefab.transform; val.localPosition = bodyInfo.modelBasePosition; val.localRotation = Quaternion.identity; } modelTransform.parent = ((Component)val).transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; if ((Object)(object)bodyPrefab.transform.Find("CameraPivot") == (Object)null) { Transform transform = new GameObject("CameraPivot").transform; transform.parent = bodyPrefab.transform; transform.localPosition = bodyInfo.cameraPivotPosition; transform.localRotation = Quaternion.identity; } Transform val2 = bodyPrefab.transform.Find("AimOrigin"); if ((Object)(object)val2 == (Object)null) { val2 = new GameObject("AimOrigin").transform; val2.parent = bodyPrefab.transform; val2.localPosition = bodyInfo.aimOriginPosition; val2.localRotation = Quaternion.identity; } bodyPrefab.GetComponent().aimOriginTransform = val2; return ((Component)val).transform; } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { if (Object.op_Implicit((Object)(object)prefab.GetComponent())) { CharacterDirection component = prefab.GetComponent(); component.targetTransform = modelBaseTransform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = ((Component)modelTransform).GetComponent(); component.driveFromRootRotation = false; component.turnSpeed = 720f; } } private static void SetupCameraTargetParams(GameObject prefab, BodyInfo bodyInfo) { CameraTargetParams component = prefab.GetComponent(); component.cameraParams = bodyInfo.cameraParams; component.cameraPivotTransform = prefab.transform.Find("CameraPivot"); } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupCapsuleCollider(GameObject prefab) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) CapsuleCollider component = prefab.GetComponent(); component.center = new Vector3(0f, 0f, 0f); component.radius = 0.5f; component.height = 1.82f; component.direction = 1; } public static CharacterModel SetupCharacterModel(GameObject bodyPrefab, CustomRendererInfo[] customInfos = null) { CharacterModel val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.GetComponent(); bool num = (Object)(object)val != (Object)null; if (!num) { val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.AddComponent(); } val.body = bodyPrefab.GetComponent(); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List(); if (!num) { SetupCustomRendererInfos(val, customInfos); } else { SetupPreAttachedRendererInfos(val); } SetupHurtboxGroup(bodyPrefab, ((Component)val).gameObject); SetupAimAnimator(bodyPrefab, ((Component)val).gameObject); SetupFootstepController(((Component)val).gameObject); SetupRagdoll(((Component)val).gameObject); return val; } public static void SetupPreAttachedRendererInfos(CharacterModel characterModel) { for (int i = 0; i < characterModel.baseRendererInfos.Length; i++) { if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { characterModel.baseRendererInfos[i].defaultMaterial = characterModel.baseRendererInfos[i].renderer.sharedMaterial; } if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { Log.Error($"no material for rendererinfo of this renderer: {characterModel.baseRendererInfos[i].renderer}"); } characterModel.baseRendererInfos[i].defaultMaterial.ConvertDefaultShaderToHopoo(); } } public static void SetupCustomRendererInfos(CharacterModel characterModel, CustomRendererInfo[] customInfos) { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) ChildLocator component = ((Component)characterModel).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("Failed CharacterModel setup: ChildLocator component does not exist on the model"); return; } List list = new List(); for (int i = 0; i < customInfos.Length; i++) { if (!Object.op_Implicit((Object)(object)component.FindChild(customInfos[i].childName))) { Log.Error("Trying to add a RendererInfo for a renderer that does not exist: " + customInfos[i].childName); continue; } Renderer component2 = ((Component)component.FindChild(customInfos[i].childName)).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { Material val = customInfos[i].material; if ((Object)(object)val == (Object)null) { val = ((!customInfos[i].dontHotpoo) ? component2.sharedMaterial.ConvertDefaultShaderToHopoo() : component2.sharedMaterial); } list.Add(new RendererInfo { renderer = component2, defaultMaterial = val, ignoreOverlays = customInfos[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } } characterModel.baseRendererInfos = list.ToArray(); } private static void SetupHurtboxGroup(GameObject bodyPrefab, GameObject model) { SetupMainHurtboxesFromChildLocator(bodyPrefab, model); SetHurtboxesHealthComponents(bodyPrefab); } private static void SetupMainHurtboxesFromChildLocator(GameObject bodyPrefab, GameObject model) { //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)bodyPrefab.GetComponent() != (Object)null) { Log.Debug("Hitboxgroup already exists on model prefab. aborting code setup"); return; } ChildLocator component = model.GetComponent(); if (string.IsNullOrEmpty(component.FindChildNameInsensitive("MainHurtbox"))) { Log.Error("Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator called 'MainHurtbox'"); return; } HurtBoxGroup val = model.AddComponent(); HurtBox val2 = null; GameObject val3 = component.FindChildGameObjectInsensitive("HeadHurtbox"); if (Object.op_Implicit((Object)(object)val3)) { Log.Debug("HeadHurtboxFound. Setting up"); val2 = val3.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = bodyPrefab.GetComponent(); val2.isBullseye = false; val2.isSniperTarget = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 1; } HurtBox val4 = component.FindChildGameObjectInsensitive("MainHurtbox").AddComponent(); ((Component)val4).gameObject.layer = LayerIndex.entityPrecise.intVal; val4.healthComponent = bodyPrefab.GetComponent(); val4.isBullseye = true; val4.isSniperTarget = (Object)(object)val2 == (Object)null; val4.damageModifier = (DamageModifier)0; val4.hurtBoxGroup = val; val4.indexInGroup = 0; if (Object.op_Implicit((Object)(object)val2)) { val.hurtBoxes = (HurtBox[])(object)new HurtBox[2] { val4, val2 }; } else { val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val4 }; } val.mainHurtBox = val4; val.bullseyeCount = 1; } private static string FindChildNameInsensitive(this ChildLocator childLocator, string child) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) return childLocator.transformPairs.Where((NameTransformPair pair) => pair.name.ToLowerInvariant() == child.ToLowerInvariant()).FirstOrDefault().name; } private static Transform FindChildInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChild(childLocator.FindChildNameInsensitive(child)); } private static GameObject FindChildGameObjectInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChildGameObject(childLocator.FindChildNameInsensitive(child)); } public static void SetHurtboxesHealthComponents(GameObject bodyPrefab) { HealthComponent component = bodyPrefab.GetComponent(); HurtBoxGroup[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (HurtBoxGroup val in componentsInChildren) { val.mainHurtBox.healthComponent = component; for (int j = 0; j < val.hurtBoxes.Length; j++) { val.hurtBoxes[j].healthComponent = component; } } } private static void SetupFootstepController(GameObject model) { FootstepHandler obj = model.AddComponent(); obj.baseFootstepString = "Play_player_footstep"; obj.sprintFootstepOverrideString = ""; obj.enableFootstepDust = true; obj.footstepDustPrefab = LegacyResourcesAPI.Load("Prefabs/GenericFootstepDust"); } private static void SetupRagdoll(GameObject model) { RagdollController component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if ((Object)(object)ragdollMaterial == (Object)null) { ragdollMaterial = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().bones[1]).GetComponent().material; } Transform[] bones = component.bones; foreach (Transform val in bones) { if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = LayerIndex.ragdoll.intVal; Collider component2 = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.sharedMaterial = ragdollMaterial; } else { Log.Error($"Ragdoll bone {((Component)val).gameObject} doesn't have a collider. Ragdoll will break."); } } } } private static void SetupAimAnimator(GameObject prefab, GameObject model) { AimAnimator obj = model.AddComponent(); obj.directionComponent = prefab.GetComponent(); obj.pitchRangeMax = 60f; obj.pitchRangeMin = -60f; obj.yawRangeMin = -80f; obj.yawRangeMax = 80f; obj.pitchGiveupRange = 30f; obj.yawGiveupRange = 10f; obj.giveupDuration = 3f; obj.inputBank = prefab.GetComponent(); } public static void CreateGenericDoppelganger(GameObject bodyPrefab, string masterName, string masterToCopy) { CloneDopplegangerMaster(bodyPrefab, masterName, masterToCopy); } public static GameObject CloneDopplegangerMaster(GameObject bodyPrefab, string masterName, string masterToCopy) { GameObject obj = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/" + masterToCopy + "MonsterMaster"), masterName, true); obj.GetComponent().bodyPrefab = bodyPrefab; Content.AddMasterPrefab(obj); return obj; } public static GameObject CreateBlankMasterPrefab(GameObject bodyPrefab, string masterName) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), masterName, true); ContentPacks.masterPrefabs.Add(val); val.GetComponent().bodyPrefab = bodyPrefab; AISkillDriver[] components = val.GetComponents(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } return val; } public static GameObject LoadMaster(this AssetBundle assetBundle, GameObject bodyPrefab, string assetName) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(assetName); BaseAI val2 = val.GetComponent(); if ((Object)(object)val2 == (Object)null) { val2 = val.AddComponent(); val2.aimVectorDampTime = 0.1f; val2.aimVectorMaxSpeed = 360f; } val2.scanState = new SerializableEntityStateType(typeof(Wander)); EntityStateMachine component = val.GetComponent(); if ((Object)(object)component == (Object)null) { AddEntityStateMachine(val, "AI", typeof(Wander), typeof(Wander)); } val2.stateMachine = component; CharacterMaster val3 = val.GetComponent(); if ((Object)(object)val3 == (Object)null) { val3 = val.AddComponent(); } val3.bodyPrefab = bodyPrefab; val3.teamIndex = (TeamIndex)2; Content.AddMasterPrefab(val); return val; } public static void ClearEntityStateMachines(GameObject bodyPrefab) { EntityStateMachine[] components = bodyPrefab.GetComponents(); for (int num = components.Length - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)components[num]); } bodyPrefab.GetComponent().stateMachines = Array.Empty(); CharacterDeathBehavior component = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.idleStateMachine = Array.Empty(); } SetStateOnHurt component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.idleStateMachine = Array.Empty(); } CharacterBody component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.vehicleIdleStateMachine = Array.Empty(); } } public static EntityStateMachine AddEntityStateMachine(GameObject prefab, string machineName, Type mainStateType = null, Type initalStateType = null, bool addToHurt = true, bool addToDeath = true) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(prefab, machineName); if ((Object)(object)val == (Object)null) { val = prefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(Idle); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(Idle); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2) && addToDeath) { component2.idleStateMachine = component2.idleStateMachine.Append(val).ToArray(); } SetStateOnHurt component3 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3) && addToHurt) { component3.idleStateMachine = component3.idleStateMachine.Append(val).ToArray(); } CharacterBody component4 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.vehicleIdleStateMachine = component4.vehicleIdleStateMachine.Append(val).ToArray(); } return val; } public static EntityStateMachine AddMainEntityStateMachine(GameObject bodyPrefab, string machineName = "Body", Type mainStateType = null, Type initalStateType = null) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(bodyPrefab, machineName); if ((Object)(object)val == (Object)null) { val = bodyPrefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(GenericCharacterMain); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(SpawnTeleporterState); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.deathStateMachine = val; } SetStateOnHurt component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.targetStateMachine = val; } return val; } public static void SetupHitBoxGroup(GameObject modelPrefab, string hitBoxGroupName, params string[] hitboxChildNames) { ChildLocator component = modelPrefab.GetComponent(); Transform[] array = (Transform[])(object)new Transform[hitboxChildNames.Length]; for (int i = 0; i < hitboxChildNames.Length; i++) { array[i] = component.FindChild(hitboxChildNames[i]); if ((Object)(object)array[i] == (Object)null) { Log.Error("missing hitbox for " + hitboxChildNames[i]); } } SetupHitBoxGroup(modelPrefab, hitBoxGroupName, array); } public static void SetupHitBoxGroup(GameObject prefab, string hitBoxGroupName, params Transform[] hitBoxTransforms) { List list = new List(); foreach (Transform val in hitBoxTransforms) { if ((Object)(object)val == (Object)null) { Log.Error("Error setting up hitboxGroup for " + hitBoxGroupName + ": hitbox transform was null"); continue; } HitBox item = ((Component)val).gameObject.AddComponent(); ((Component)val).gameObject.layer = LayerIndex.projectile.intVal; list.Add(item); } if (list.Count == 0) { Log.Error("No hitboxes were set up. aborting setting up hitboxGroup for " + hitBoxGroupName); return; } HitBoxGroup obj = prefab.AddComponent(); obj.hitBoxes = list.ToArray(); obj.groupName = hitBoxGroupName; } } public class CustomRendererInfo { public string childName; public Material material; public bool dontHotpoo; public bool ignoreOverlays; } internal static class Skills { public static void CreateSkillFamilies(GameObject targetPrefab) { SkillSlot[] array = new SkillSlot[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); CreateSkillFamilies(targetPrefab, (SkillSlot[])(object)array); } public static void CreateSkillFamilies(GameObject targetPrefab, params SkillSlot[] slots) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected I4, but got Unknown SkillLocator component = targetPrefab.GetComponent(); foreach (SkillSlot val in slots) { switch (val - -1) { case 1: component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary"); break; case 2: component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary"); break; case 3: component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility"); break; case 4: component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special"); break; } } } public static void ClearGenericSkills(GameObject targetPrefab) { GenericSkill[] componentsInChildren = targetPrefab.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { Object.DestroyImmediate((Object)(object)componentsInChildren[i]); } } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, SkillSlot skillSlot, bool hidden = false) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Expected I4, but got Unknown SkillLocator component = targetPrefab.GetComponent(); switch (skillSlot - -1) { case 1: return component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary", hidden); case 2: return component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary", hidden); case 3: return component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility", hidden); case 4: return component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special", hidden); case 0: Log.Error("Failed to create GenericSkill with skillslot None. If making a GenericSkill outside of the main 4, specify a familyName, and optionally a genericSkillName"); return null; default: return null; } } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string familyName, bool hidden = false) { return CreateGenericSkillWithSkillFamily(targetPrefab, familyName, familyName, hidden); } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string genericSkillName, string familyName, bool hidden = false) { GenericSkill obj = targetPrefab.AddComponent(); obj.skillName = genericSkillName; obj.hideInCharacterSelect = hidden; SkillFamily val = ScriptableObject.CreateInstance(); ((Object)val).name = ((Object)targetPrefab).name + familyName + "Family"; val.variants = (Variant[])(object)new Variant[0]; obj._skillFamily = val; Content.AddSkillFamily(val); return obj; } public static void AddSkillToFamily(SkillFamily skillFamily, SkillDef skillDef, UnlockableDef unlockableDef = null) { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val = new Variant { skillDef = skillDef, unlockableDef = unlockableDef }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); variants[num] = val; } public static void AddSkillsToFamily(SkillFamily skillFamily, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSkillToFamily(skillFamily, skillDef); } } public static void AddPrimarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().primary.skillFamily, skillDefs); } public static void AddSecondarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().secondary.skillFamily, skillDefs); } public static void AddUtilitySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().utility.skillFamily, skillDefs); } public static void AddSpecialSkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().special.skillFamily, skillDefs); } public static void AddUnlockablesToFamily(SkillFamily skillFamily, params UnlockableDef[] unlockableDefs) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < unlockableDefs.Length; i++) { Variant val = skillFamily.variants[i]; val.unlockableDef = unlockableDefs[i]; skillFamily.variants[i] = val; } } public static SkillDef CreateSkillDef(SkillDefInfo skillDefInfo) { return Skills.CreateSkillDef(skillDefInfo); } public static T CreateSkillDef(SkillDefInfo skillDefInfo) where T : SkillDef { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) T val = ScriptableObject.CreateInstance(); ((SkillDef)val).skillName = skillDefInfo.skillName; ((Object)(object)val).name = skillDefInfo.skillName; ((SkillDef)val).skillNameToken = skillDefInfo.skillNameToken; ((SkillDef)val).skillDescriptionToken = skillDefInfo.skillDescriptionToken; ((SkillDef)val).icon = skillDefInfo.skillIcon; ((SkillDef)val).activationState = skillDefInfo.activationState; ((SkillDef)val).activationStateMachineName = skillDefInfo.activationStateMachineName; ((SkillDef)val).interruptPriority = skillDefInfo.interruptPriority; ((SkillDef)val).baseMaxStock = skillDefInfo.baseMaxStock; ((SkillDef)val).baseRechargeInterval = skillDefInfo.baseRechargeInterval; ((SkillDef)val).rechargeStock = skillDefInfo.rechargeStock; ((SkillDef)val).requiredStock = skillDefInfo.requiredStock; ((SkillDef)val).stockToConsume = skillDefInfo.stockToConsume; ((SkillDef)val).dontAllowPastMaxStocks = skillDefInfo.dontAllowPastMaxStocks; ((SkillDef)val).beginSkillCooldownOnSkillEnd = skillDefInfo.beginSkillCooldownOnSkillEnd; ((SkillDef)val).canceledFromSprinting = skillDefInfo.canceledFromSprinting; ((SkillDef)val).forceSprintDuringState = skillDefInfo.forceSprintDuringState; ((SkillDef)val).fullRestockOnAssign = skillDefInfo.fullRestockOnAssign; ((SkillDef)val).resetCooldownTimerOnUse = skillDefInfo.resetCooldownTimerOnUse; ((SkillDef)val).isCombatSkill = skillDefInfo.isCombatSkill; ((SkillDef)val).mustKeyPress = skillDefInfo.mustKeyPress; ((SkillDef)val).cancelSprintingOnActivation = skillDefInfo.cancelSprintingOnActivation; ((SkillDef)val).keywordTokens = skillDefInfo.keywordTokens; Content.AddSkillDef((SkillDef)(object)val); return val; } } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public string[] keywordTokens = Array.Empty(); public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public InterruptPriority interruptPriority; public float baseRechargeInterval; public int baseMaxStock = 1; public int rechargeStock = 1; public int requiredStock = 1; public int stockToConsume = 1; public bool resetCooldownTimerOnUse; public bool fullRestockOnAssign = true; public bool dontAllowPastMaxStocks; public bool beginSkillCooldownOnSkillEnd; public bool mustKeyPress; public bool isCombatSkill = true; public bool canceledFromSprinting; public bool cancelSprintingOnActivation = true; public bool forceSprintDuringState; public SkillDefInfo() { } public SkillDefInfo(string skillName, string skillNameToken, string skillDescriptionToken, Sprite skillIcon, SerializableEntityStateType activationState, string activationStateMachineName = "Weapon", bool agile = false) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) this.skillName = skillName; this.skillNameToken = skillNameToken; this.skillDescriptionToken = skillDescriptionToken; this.skillIcon = skillIcon; this.activationState = activationState; this.activationStateMachineName = activationStateMachineName; cancelSprintingOnActivation = !agile; if (agile) { keywordTokens = new string[1] { "KEYWORD_AGILE" }; } interruptPriority = (InterruptPriority)0; isCombatSkill = true; baseRechargeInterval = 0f; requiredStock = 0; stockToConsume = 0; } } internal static class Skins { internal struct SkinDefInfo { internal SkinDef[] BaseSkins; internal Sprite Icon; internal string NameToken; internal UnlockableDef UnlockableDef; internal GameObject RootObject; internal RendererInfo[] RendererInfos; internal MeshReplacement[] MeshReplacements; internal GameObjectActivation[] GameObjectActivations; internal ProjectileGhostReplacement[] ProjectileGhostReplacements; internal MinionSkinReplacement[] MinionSkinReplacements; internal string Name; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] defaultRendererInfos, GameObject root, UnlockableDef unlockableDef = null) { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Expected O, but got Unknown SkinDefInfo skinDefInfo = new SkinDefInfo { BaseSkins = Array.Empty(), GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0], Icon = skinIcon, MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0], MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0], Name = skinName, NameToken = skinName, ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0], RendererInfos = (RendererInfo[])(object)new RendererInfo[defaultRendererInfos.Length], RootObject = root, UnlockableDef = unlockableDef }; SkinDef.Awake += new hook_Awake(DoNothing); SkinDef obj = ScriptableObject.CreateInstance(); obj.baseSkins = skinDefInfo.BaseSkins; obj.icon = skinDefInfo.Icon; obj.unlockableDef = skinDefInfo.UnlockableDef; obj.rootObject = skinDefInfo.RootObject; defaultRendererInfos.CopyTo(skinDefInfo.RendererInfos, 0); obj.rendererInfos = skinDefInfo.RendererInfos; obj.gameObjectActivations = skinDefInfo.GameObjectActivations; obj.meshReplacements = skinDefInfo.MeshReplacements; obj.projectileGhostReplacements = skinDefInfo.ProjectileGhostReplacements; obj.minionSkinReplacements = skinDefInfo.MinionSkinReplacements; obj.nameToken = skinDefInfo.NameToken; ((Object)obj).name = skinDefInfo.Name; SkinDef.Awake -= new hook_Awake(DoNothing); return obj; } private static void DoNothing(orig_Awake orig, SkinDef self) { } private static RendererInfo[] getRendererMaterials(RendererInfo[] defaultRenderers, params Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); for (int i = 0; i < array.Length; i++) { try { array[i].defaultMaterial = materials[i]; } catch { Log.Error("error adding skin rendererinfo material. make sure you're not passing in too many"); } } return array; } internal static MeshReplacement[] getMeshReplacements(AssetBundle assetBundle, RendererInfo[] defaultRendererInfos, params string[] meshes) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < defaultRendererInfos.Length; i++) { if (!string.IsNullOrEmpty(meshes[i])) { list.Add(new MeshReplacement { renderer = defaultRendererInfos[i].renderer, mesh = assetBundle.LoadAsset(meshes[i]) }); } } return list.ToArray(); } } internal static class Tokens { public const string agilePrefix = "Agile. "; public static string DamageText(string text) { return "" + text + ""; } public static string DamageValueText(float value) { return $"{value * 100f}% damage"; } public static string UtilityText(string text) { return "" + text + ""; } public static string RedText(string text) { return HealthText(text); } public static string HealthText(string text) { return "" + text + ""; } public static string HealingText(string text) { return "" + text + ""; } public static string KeywordText(string keyword, string sub) { return "" + keyword + "" + sub + ""; } public static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } public static string GetAchievementNameToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_NAME"; } public static string GetAchievementDescriptionToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_DESCRIPTION"; } } } namespace HazeMod.Modules.Characters { public abstract class CharacterBase where T : CharacterBase, new() { public abstract string assetBundleName { get; } public abstract string bodyName { get; } public abstract string modelPrefabName { get; } public abstract BodyInfo bodyInfo { get; } public virtual CustomRendererInfo[] customRendererInfos { get; } public virtual ItemDisplaysBase itemDisplays { get; } public static T instance { get; private set; } public abstract AssetBundle assetBundle { get; protected set; } public abstract GameObject bodyPrefab { get; protected set; } public abstract CharacterBody prefabCharacterBody { get; protected set; } public abstract GameObject characterModelObject { get; protected set; } public abstract CharacterModel prefabCharacterModel { get; protected set; } public virtual void Initialize() { instance = this as T; assetBundle = Asset.LoadAssetBundle(assetBundleName); InitializeCharacter(); } public virtual void InitializeCharacter() { InitializeCharacterBodyPrefab(); InitializeItemDisplays(); } protected virtual void InitializeCharacterBodyPrefab() { characterModelObject = Prefabs.LoadCharacterModel(assetBundle, modelPrefabName); Log.Debug(characterModelObject); bodyPrefab = Prefabs.CreateBodyPrefab(characterModelObject, bodyInfo); prefabCharacterBody = bodyPrefab.GetComponent(); prefabCharacterModel = Prefabs.SetupCharacterModel(bodyPrefab, customRendererInfos); } public virtual void InitializeItemDisplays() { ItemDisplayRuleSet val = ScriptableObject.CreateInstance(); ((Object)val).name = "idrs" + bodyName; prefabCharacterModel.itemDisplayRuleSet = val; if (itemDisplays != null) { ItemDisplays.queuedDisplays++; ContentManager.onContentPacksAssigned += SetItemDisplays; } } public void SetItemDisplays(ReadOnlyArray obj) { itemDisplays.SetItemDisplays(prefabCharacterModel.itemDisplayRuleSet); } public abstract void InitializeEntityStateMachines(); public abstract void InitializeSkills(); public abstract void InitializeSkins(); public abstract void InitializeCharacterMaster(); } public class BodyInfo { public string bodyName = ""; public string bodyNameToken = ""; public string subtitleNameToken = ""; public string bodyNameToClone = "Commando"; public Color bodyColor = Color.white; public Texture characterPortrait; public float sortPosition = 100f; public GameObject crosshair; public GameObject podPrefab; public float maxHealth = 100f; public float healthRegen = 1f; public float armor; public float shield; public int jumpCount = 1; public float damage = 12f; public float attackSpeed = 1f; public float crit = 1f; public float moveSpeed = 7f; public float acceleration = 80f; public float jumpPower = 15f; public bool autoCalculateLevelStats = true; public float healthGrowth = 30.000002f; public float regenGrowth = 0.2f; public float armorGrowth; public float shieldGrowth; public float damageGrowth = 2.4f; public float attackSpeedGrowth; public float critGrowth; public float moveSpeedGrowth; public float jumpPowerGrowth; public Vector3 aimOriginPosition = new Vector3(0f, 1.6f, 0f); public Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); public Vector3 cameraPivotPosition = new Vector3(0f, 0.8f, 0f); public float cameraParamsVerticalOffset = 1.37f; public float cameraParamsDepth = -10f; private CharacterCameraParams _cameraParams; public CharacterCameraParams cameraParams { get { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_cameraParams == (Object)null) { _cameraParams = ScriptableObject.CreateInstance(); _cameraParams.data.minPitch = BlendableFloat.op_Implicit(-70f); _cameraParams.data.maxPitch = BlendableFloat.op_Implicit(70f); _cameraParams.data.wallCushion = BlendableFloat.op_Implicit(0.1f); _cameraParams.data.pivotVerticalOffset = BlendableFloat.op_Implicit(cameraParamsVerticalOffset); _cameraParams.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, cameraParamsDepth)); } return _cameraParams; } set { _cameraParams = value; } } } public abstract class ItemDisplaysBase { public void SetItemDisplays(ItemDisplayRuleSet itemDisplayRuleSet) { List list = new List(); ItemDisplays.LazyInit(); SetItemDisplayRules(list); itemDisplayRuleSet.keyAssetRuleGroups = list.ToArray(); ItemDisplays.DisposeWhenDone(); } protected abstract void SetItemDisplayRules(List itemDisplayRules); } public abstract class SurvivorBase : CharacterBase where T : SurvivorBase, new() { public abstract string masterName { get; } public abstract string displayPrefabName { get; } public abstract string survivorTokenPrefix { get; } public abstract UnlockableDef characterUnlockableDef { get; } public abstract GameObject displayPrefab { get; protected set; } public override void InitializeCharacter() { base.InitializeCharacter(); InitializeDisplayPrefab(); InitializeSurvivor(); } protected virtual void InitializeDisplayPrefab() { displayPrefab = Prefabs.CreateDisplayPrefab(assetBundle, displayPrefabName, bodyPrefab); } protected virtual void InitializeSurvivor() { //IL_0012: Unknown result type (might be due to invalid IL or missing references) Content.CreateSurvivor(bodyPrefab, displayPrefab, bodyInfo.bodyColor, survivorTokenPrefix, characterUnlockableDef, bodyInfo.sortPosition); } protected virtual void AddCssPreviewSkill(int indexFromEditor, SkillFamily skillFamily, SkillDef skillDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skillChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); return; } component.skillChangeResponses[indexFromEditor].triggerSkillFamily = skillFamily; component.skillChangeResponses[indexFromEditor].triggerSkill = skillDef; } protected virtual void AddCssPreviewSkin(int indexFromEditor, SkinDef skinDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skinChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); } else { component.skinChangeResponses[indexFromEditor].triggerSkin = skinDef; } } protected virtual void FinalizeCSSPreviewDisplayController() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)displayPrefab)) { return; } CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } component.bodyPrefab = bodyPrefab; List list = new List(); for (int i = 0; i < component.skillChangeResponses.Length; i++) { if ((Object)(object)component.skillChangeResponses[i].triggerSkillFamily != (Object)null) { list.Add(component.skillChangeResponses[i]); } } component.skillChangeResponses = list.ToArray(); } } } namespace HazeMod.Modules.BaseStates { public abstract class BaseMeleeAttack : BaseSkillState, IStepSetter { public int swingIndex; protected string hitboxGroupName = "SwordGroup"; protected DamageTypeCombo damageType = DamageTypeCombo.op_Implicit((DamageType)0); protected float damageCoefficient = 3.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 1f; protected float attackStartPercentTime = 0.2f; protected float attackEndPercentTime = 0.4f; protected float earlyExitPercentTime = 0.4f; protected float hitStopDuration = 0.012f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 4f; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected string playbackRateParam = "Slash.playbackRate"; protected GameObject swingEffectPrefab; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound = (NetworkSoundEventIndex)(-1); protected OverlapAttack attack; public float duration; private bool hasFired; private float hitPauseTimer; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); PlayAttackAnimation(); attack = new OverlapAttack(); attack.damageType = damageType; attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxGroupName); attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; ModifyOverlapAttack(attack); } protected virtual void ModifyOverlapAttack(OverlapAttack attack) { } protected virtual void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash" + (1 + swingIndex), playbackRateParam, duration, 0.05f); } public override void OnExit() { if (inHitPause) { RemoveHitstop(); } ((EntityState)this).OnExit(); } protected virtual void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); } protected virtual void OnHitEnemyAuthority() { Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } ApplyHitstop(); } protected void ApplyHitstop() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, playbackRateParam); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void FireAttack() { if (((EntityState)this).isAuthority && attack.Fire((List)null)) { OnHitEnemyAuthority(); } } private void EnterAttack() { hasFired = true; Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); PlaySwingEffect(); if (((EntityState)this).isAuthority) { ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } public override void FixedUpdate() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitPauseTimer -= Time.deltaTime; if (hitPauseTimer <= 0f && inHitPause) { RemoveHitstop(); } if (!inHitPause) { stopwatch += Time.deltaTime; } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat(playbackRateParam, 0f); } } bool flag = stopwatch >= duration * attackStartPercentTime; bool flag2 = stopwatch >= duration * attackEndPercentTime; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { if (!hasFired) { EnterAttack(); } FireAttack(); } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void RemoveHitstop() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } public override InterruptPriority GetMinimumInterruptPriority() { if (!(stopwatch >= duration * earlyExitPercentTime)) { return (InterruptPriority)1; } return (InterruptPriority)0; } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(swingIndex); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); swingIndex = reader.ReadInt32(); } public void SetStep(int i) { swingIndex = i; } } public abstract class BaseTimedSkillState : BaseSkillState { protected float duration; protected float castStartTime; protected float castEndTime; protected bool hasFired; protected bool isFiring; protected bool hasExited; public abstract float TimedBaseDuration { get; } public abstract float TimedBaseCastStartPercentTime { get; } public virtual float TimedBaseCastEndPercentTime => 1f; public override void OnEnter() { InitDurationValues(); ((BaseState)this).OnEnter(); } protected virtual void InitDurationValues() { duration = TimedBaseDuration / ((BaseState)this).attackSpeedStat; castStartTime = TimedBaseCastStartPercentTime * duration; castEndTime = TimedBaseCastEndPercentTime * duration; } protected virtual void OnCastEnter() { } protected virtual void OnCastFixedUpdate() { } protected virtual void OnCastUpdate() { } protected virtual void OnCastExit() { } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); bool flag = ((EntityState)this).fixedAge >= castStartTime; bool flag2 = ((EntityState)this).fixedAge >= castEndTime; isFiring = false; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { isFiring = true; OnCastFixedUpdate(); if (!hasFired) { OnCastEnter(); hasFired = true; } } if (flag2 && !hasExited) { hasExited = true; OnCastExit(); } if (((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void Update() { ((EntityState)this).Update(); if (isFiring) { OnCastUpdate(); } } } public class ExampleTimedSkillState : BaseTimedSkillState { public override float TimedBaseDuration => 1.5f; public override float TimedBaseCastStartPercentTime => 0.2f; public override float TimedBaseCastEndPercentTime => 0.9f; protected override void OnCastEnter() { } protected override void OnCastFixedUpdate() { } protected override void OnCastExit() { } } public class ExampleDelayedSkillState : BaseTimedSkillState { public override float TimedBaseDuration => 1.5f; public override float TimedBaseCastStartPercentTime => 0.2f; protected override void OnCastEnter() { } } public abstract class BaseTimedSkillStateWithoutAttackSpeedScaling : BaseSkillState { protected float duration; protected float castStartTime; protected float castEndTime; protected bool hasFired; protected bool isFiring; protected bool hasExited; public abstract float TimedBaseDuration { get; } public abstract float TimedBaseCastStartPercentTime { get; } public virtual float TimedBaseCastEndPercentTime => 1f; public override void OnEnter() { InitDurationValues(); ((BaseState)this).OnEnter(); } protected virtual void InitDurationValues() { duration = TimedBaseDuration; castStartTime = TimedBaseCastStartPercentTime * duration; castEndTime = TimedBaseCastEndPercentTime * duration; } protected virtual void OnCastEnter() { } protected virtual void OnCastFixedUpdate() { } protected virtual void OnCastUpdate() { } protected virtual void OnCastExit() { } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); bool flag = ((EntityState)this).fixedAge >= castStartTime; bool flag2 = ((EntityState)this).fixedAge >= castEndTime; isFiring = false; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { isFiring = true; OnCastFixedUpdate(); if (!hasFired) { OnCastEnter(); hasFired = true; } } if (flag2 && !hasExited) { hasExited = true; OnCastExit(); } if (((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void Update() { ((EntityState)this).Update(); if (isFiring) { OnCastUpdate(); } } } } namespace HazeMod.Modules.Achievements { public abstract class BaseMasteryAchievement : BaseAchievement { public abstract string RequiredCharacterBody { get; } public abstract float RequiredDifficultyCoefficient { get; } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(RequiredCharacterBody); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Invalid comparison between Unknown and I4 //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)runReport.gameEnding) || !runReport.gameEnding.isWin) { return; } DifficultyIndex val = runReport.ruleBook.FindDifficulty(); DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(val); if (difficultyDef != null) { bool num = difficultyDef.countsAsHardMode && difficultyDef.scalingValue >= RequiredDifficultyCoefficient; bool flag = difficultyDef.nameToken == "INFERNO_NAME"; bool flag2 = (int)val >= 3 && (int)val <= 10; if (num || flag || flag2) { ((BaseAchievement)this).Grant(); } } } } } namespace HazeMod.Characters.Survivors.Haze { public class HazeSurvivor : SurvivorBase { public const string HAZE_PREFIX = "PERL_HAZE_"; public override string assetBundleName => "hazeassetbundle"; public override string bodyName => "HazeBody"; public override string masterName => "HazeMonsterMaster"; public override string modelPrefabName => "mdlHaze"; public override string displayPrefabName => "HazeDisplay"; public override string survivorTokenPrefix => "PERL_HAZE_"; public override BodyInfo bodyInfo => new BodyInfo { bodyName = bodyName, bodyNameToken = "PERL_HAZE_NAME", subtitleNameToken = "PERL_HAZE_SUBTITLE", characterPortrait = assetBundle.LoadAsset("texHazeIcon"), bodyColor = Color.white, sortPosition = 100f, crosshair = Asset.LoadCrosshair("Standard"), podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), maxHealth = 90f, healthRegen = 1.5f, armor = 0f, moveSpeed = 9f, jumpCount = 1 }; public override CustomRendererInfo[] customRendererInfos => new CustomRendererInfo[2] { new CustomRendererInfo { childName = "GunLeft" }, new CustomRendererInfo { childName = "GunRight" } }; public override UnlockableDef characterUnlockableDef => HazeUnlockables.characterUnlockableDef; public override ItemDisplaysBase itemDisplays => new HazeItemDisplays(); public override AssetBundle assetBundle { get; protected set; } public override GameObject bodyPrefab { get; protected set; } public override CharacterBody prefabCharacterBody { get; protected set; } public override GameObject characterModelObject { get; protected set; } public override CharacterModel prefabCharacterModel { get; protected set; } public override GameObject displayPrefab { get; protected set; } public override void Initialize() { base.Initialize(); } public override void InitializeCharacter() { HazeUnlockables.Init(); base.InitializeCharacter(); HazeConfig.Init(); HazeStates.Init(); HazeTokens.Init(); HazeDamageTypes.Init(); HazeAssets.Init(assetBundle); HazeBuffs.Init(assetBundle); InitializeEntityStateMachines(); InitializeSkills(); InitializeSkins(); InitializeCharacterMaster(); AdditionalBodySetup(); AddHooks(); } private void AdditionalBodySetup() { AddHitboxes(); bodyPrefab.AddComponent(); } public void AddHitboxes() { } public override void InitializeEntityStateMachines() { Prefabs.ClearEntityStateMachines(bodyPrefab); Prefabs.AddMainEntityStateMachine(bodyPrefab, "Body", typeof(GenericCharacterMain), typeof(SpawnTeleporterState)); Prefabs.AddEntityStateMachine(bodyPrefab, "Weapon"); Prefabs.AddEntityStateMachine(bodyPrefab, "Secondary"); Prefabs.AddEntityStateMachine(bodyPrefab, "Utility"); } public override void InitializeSkills() { Skills.ClearGenericSkills(bodyPrefab); AddPassiveSkill(); AddPrimarySkills(); AddSecondarySkills(); AddUtiitySkills(); AddSpecialSkills(); } private void AddPassiveSkill() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) bodyPrefab.GetComponent().passiveSkill = new PassiveSkill { enabled = true, skillNameToken = "PERL_HAZE_PASSIVE_NAME", skillDescriptionToken = "PERL_HAZE_PASSIVE_DESCRIPTION", icon = assetBundle.LoadAsset("fixationIcon") }; } private void AddPrimarySkills() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)0); SteppedSkillDef val = Skills.CreateSkillDef(new SkillDefInfo("HazePrimaryWeapon", "PERL_HAZE_PRIMARY_WEAPON_NAME", "PERL_HAZE_PRIMARY_WEAPON_DESCRIPTION", assetBundle.LoadAsset("censure&PenanceIcon"), new SerializableEntityStateType(typeof(PrimaryWeapon)), "Weapon", agile: true)); Skills.AddPrimarySkills(bodyPrefab, (SkillDef)val); } private void AddSecondarySkills() { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)1); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "HazeSleepDagger"; skillDefInfo.skillNameToken = "PERL_HAZE_SLEEP_DAGGER_NAME"; skillDefInfo.skillDescriptionToken = "PERL_HAZE_SLEEP_DAGGER_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "PERL_HAZE_KEYWORD_SLEEP" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("sleepDaggerIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(SleepDagger)); skillDefInfo.activationStateMachineName = "Secondary"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val); } private void AddUtiitySkills() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)2); SkillDef val = Skills.CreateSkillDef(new SkillDefInfo { skillName = "HazeSmokeBomb", skillNameToken = "PERL_HAZE_SMOKE_BOMB_NAME", skillDescriptionToken = "PERL_HAZE_SMOKE_BOMB_DESCRIPTION", skillIcon = assetBundle.LoadAsset("smokeBombIcon"), activationState = new SerializableEntityStateType(typeof(SmokeBomb)), activationStateMachineName = "Utility", interruptPriority = (InterruptPriority)1, baseRechargeInterval = 20f, baseMaxStock = 1, rechargeStock = 1, requiredStock = 1, stockToConsume = 1, resetCooldownTimerOnUse = false, fullRestockOnAssign = true, dontAllowPastMaxStocks = false, mustKeyPress = false, beginSkillCooldownOnSkillEnd = false, isCombatSkill = false, canceledFromSprinting = false, cancelSprintingOnActivation = false, forceSprintDuringState = false }); Skills.AddUtilitySkills(bodyPrefab, val); } private void AddSpecialSkills() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)3); SkillDef val = Skills.CreateSkillDef(new SkillDefInfo { skillName = "HazeBulletDance", skillNameToken = "PERL_HAZE_SPECIAL_BULLETDANCE_NAME", skillDescriptionToken = "PERL_HAZE_SPECIAL_BULLETDANCE_DESCRIPTION", skillIcon = assetBundle.LoadAsset("bulletDanceIcon"), activationState = new SerializableEntityStateType(typeof(BulletDance)), activationStateMachineName = "Weapon", interruptPriority = (InterruptPriority)2, baseMaxStock = 1, baseRechargeInterval = 40f, isCombatSkill = true, mustKeyPress = false }); Skills.AddSpecialSkills(bodyPrefab, val); } public override void InitializeSkins() { ModelSkinController obj = ((Component)prefabCharacterModel).gameObject.AddComponent(); ((Component)prefabCharacterModel).GetComponent(); RendererInfo[] baseRendererInfos = prefabCharacterModel.baseRendererInfos; List list = new List(); SkinDef item = Skins.CreateSkinDef("DEFAULT_SKIN", assetBundle.LoadAsset("texMainSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); list.Add(item); obj.skins = list.ToArray(); } public override void InitializeCharacterMaster() { HazeAI.Init(bodyPrefab, masterName); } private void AddHooks() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); GlobalEventManager.ProcessHitEnemy += new hook_ProcessHitEnemy(GlobalEventManager_ProcessHitEnemy); } private void GlobalEventManager_ProcessHitEnemy(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo, victim); CharacterBody val = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent() : null); CharacterBody val2 = (Object.op_Implicit((Object)(object)victim) ? victim.GetComponent() : null); if ((Object)(object)val != (Object)null && val.HasBuff(HazeBuffs.lifestealBuff)) { float num = damageInfo.damage * 0.1f; val.healthComponent.Heal(num, damageInfo.procChainMask, true); } if ((Object)(object)val != (Object)null && (Object)(object)val2 != (Object)null && val2.HasBuff(HazeBuffs.sleepDebuff) && damageInfo.damage >= val.damage) { val2.ClearTimedBuffs(HazeBuffs.sleepDebuff); val2.ClearTimedBuffs(Buffs.DisableAllSkills); } if ((Object)(object)val2 != (Object)null && DamageAPI.HasModdedDamageType(ref damageInfo.damageType, HazeDamageTypes.SleepOnHit)) { val2.AddTimedBuff(HazeBuffs.sleepDebuff, 3f); val2.AddTimedBuff(Buffs.DisableAllSkills, 3f); } } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.HasBuff(HazeBuffs.sleepDebuff)) { args.moveSpeedTotalMult = 0f; } } } } namespace HazeMod.Characters.Survivors.Haze.SkillStates { public class BulletDance : BaseTimedSkillStateWithoutAttackSpeedScaling { public static GameObject muzzleEffectPrefab = FirePistol2.muzzleEffectPrefab; public static GameObject hitEffectPrefab = FirePistol2.hitEffectPrefab; public static GameObject tracerEffectPrefab = FirePistol2.tracerEffectPrefab; private GameObject nearbyDamageBonusIndicator; private float timeBetweenShots; private float ageLastFired; private int muzzleIndex; private int maxTargets; private Ray aimRay; public override float TimedBaseDuration => 10f; public override float TimedBaseCastStartPercentTime => 0.1f; public override float TimedBaseCastEndPercentTime => 1f; public override void OnEnter() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); muzzleIndex = 0; aimRay = ((BaseState)this).GetAimRay(); maxTargets = 2; timeBetweenShots = 0.10504201f / ((BaseState)this).attackSpeedStat; ageLastFired = timeBetweenShots; Util.PlaySound("Play_haze_bullet_flurry_cast_delay", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelAnimator())) { ((EntityState)this).PlayAnimation("FullBody, Override", "BulletDanceWindup"); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(HazeBuffs.bulletDanceBuff); } GameObject val = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/NearbyDamageBonusIndicator"); nearbyDamageBonusIndicator = Object.Instantiate(val, ((EntityState)this).characterBody.corePosition, Quaternion.identity); nearbyDamageBonusIndicator.GetComponent().AttachToGameObjectAndSpawn(((EntityState)this).gameObject, (string)null); } protected override void OnCastEnter() { Util.PlaySound("Play_haze_bullet_flurry_cast_start", ((EntityState)this).gameObject); Util.PlaySound("Play_haze_bullet_flurry_cast_lp", ((EntityState)this).gameObject); } protected override void OnCastExit() { Object.Destroy((Object)(object)nearbyDamageBonusIndicator); nearbyDamageBonusIndicator = null; Util.PlaySound("Stop_haze_bullet_flurry_cast_lp", ((EntityState)this).gameObject); } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(HazeBuffs.bulletDanceBuff); } if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelAnimator())) { ((EntityState)this).PlayAnimation("FullBody, Override", "BulletDanceExit"); } } protected override void OnCastFixedUpdate() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Expected O, but got Unknown if (!((EntityState)this).isAuthority || ((EntityState)this).fixedAge - ageLastFired <= timeBetweenShots) { return; } ageLastFired = ((EntityState)this).fixedAge; BlastAttack val = new BlastAttack { radius = 25f, position = ((EntityState)this).transform.position, procCoefficient = 0f, attacker = ((EntityState)this).gameObject }; val.teamIndex = TeamComponent.GetObjectTeam(val.attacker); val.attackerFiltering = (AttackerFiltering)2; val.damageType.damageSource = (DamageSource)8; Result val2 = val.Fire(); int num = 0; HitPoint[] hitPoints = val2.hitPoints; foreach (HitPoint val3 in hitPoints) { string text = ((muzzleIndex % 2 == 0) ? "MuzzleRight" : "MuzzleLeft"); if (Object.op_Implicit((Object)(object)muzzleEffectPrefab)) { EffectManager.SimpleMuzzleFlash(muzzleEffectPrefab, ((EntityState)this).gameObject, text, false); } if (!val3.hurtBox.healthComponent.alive || num >= maxTargets) { break; } BulletAttack val4 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin }; Vector3 val5 = val3.hurtBox.healthComponent.body.corePosition - ((Ray)(ref aimRay)).origin; val4.aimVector = ((Vector3)(ref val5)).normalized; val4.minSpread = 0f; val4.maxSpread = ((EntityState)this).characterBody.spreadBloomAngle; val4.damage = ((BaseState)this).damageStat; val4.force = 20f; val4.tracerEffectPrefab = tracerEffectPrefab; val4.muzzleName = text; val4.hitEffectPrefab = hitEffectPrefab; val4.isCrit = Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master); val4.radius = 0.1f; val4.smartCollision = true; val4.damageType = DamageTypeCombo.GenericSpecial; val4.modifyOutgoingDamageCallback = new ModifyOutgoingDamageCallback(OnModifyOutgoingDamage); val4.Fire(); num++; muzzleIndex++; } } public void OnModifyOutgoingDamage(BulletAttack bulletAttack, ref BulletHit hitInfo, DamageInfo damageInfo) { if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox)) { CharacterBody component = hitInfo.entityObject.GetComponent(); if (!((Object)(object)component == (Object)null)) { int buffCount = component.GetBuffCount(HazeBuffs.fixationDebuff); damageInfo.damage *= 0.25f + 0.05f * (float)buffCount; component.AddTimedBuff(HazeBuffs.fixationDebuff, 6f, 80); } } } public override InterruptPriority GetMinimumInterruptPriority() { return (InterruptPriority)5; } } public class PrimaryWeapon : BaseSkillState, IStepSetter { public static GameObject muzzleEffectPrefab = FirePistol2.muzzleEffectPrefab; public static GameObject hitEffectPrefab = FirePistol2.hitEffectPrefab; public static GameObject tracerEffectPrefab = FirePistol2.tracerEffectPrefab; public static float force = 10f; public static float baseDuration = 0.10504201f; public static string firePistolSoundString = "Play_commando_R"; public static float recoilAmplitude = 0f; public static float spreadBloomValue = 0f; public static float trajectoryAimAssistMultiplier = 0.75f; private int pistol; private Ray aimRay; private float duration; void IStepSetter.SetStep(int i) { pistol = i; } private void FireBullet(string targetMuzzle) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Expected O, but got Unknown Util.PlaySound("Play_haze_weapon_fire", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)muzzleEffectPrefab)) { EffectManager.SimpleMuzzleFlash(muzzleEffectPrefab, ((EntityState)this).gameObject, targetMuzzle, false); } ((BaseState)this).AddRecoil(-0.4f * recoilAmplitude, -0.8f * recoilAmplitude, -0.3f * recoilAmplitude, 0.3f * recoilAmplitude); if (((EntityState)this).isAuthority) { new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = ((EntityState)this).characterBody.spreadBloomAngle, damage = ((BaseState)this).damageStat, force = force, tracerEffectPrefab = tracerEffectPrefab, muzzleName = targetMuzzle, hitEffectPrefab = hitEffectPrefab, isCrit = Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), radius = 0.1f, smartCollision = true, trajectoryAimAssistMultiplier = trajectoryAimAssistMultiplier, damageType = DamageTypeCombo.GenericPrimary, modifyOutgoingDamageCallback = new ModifyOutgoingDamageCallback(OnModifyOutgoingDamage) }.Fire(); } ((EntityState)this).characterBody.AddSpreadBloom(spreadBloomValue); } public void OnModifyOutgoingDamage(BulletAttack bulletAttack, ref BulletHit hitInfo, DamageInfo damageInfo) { if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox)) { CharacterBody component = hitInfo.entityObject.GetComponent(); if (!((Object)(object)component == (Object)null)) { int buffCount = component.GetBuffCount(HazeBuffs.fixationDebuff); damageInfo.damage *= 0.25f + 0.05f * (float)buffCount; component.AddTimedBuff(HazeBuffs.fixationDebuff, 6f, 80); } } } public override void OnEnter() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 3f, false); if (((BaseSkillState)this).IsKeyJustPressedAuthority()) { Util.PlaySound("Play_haze_weapon_fire_first", ((EntityState)this).gameObject); } if (pistol % 2 == 0) { FireBullet("muzzle_fx_L"); } else { FireBullet("muzzle_fx"); } } public override void OnExit() { if (((BaseSkillState)this).IsKeyJustPressedAuthority()) { Util.PlaySound("Play_haze_weapon_fire_release", ((EntityState)this).gameObject); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { return (InterruptPriority)2; } } public class SleepDagger : GenericProjectileBaseState { public override void OnEnter() { base.projectilePrefab = HazeAssets.sleepDaggerProjectilePrefab; base.baseDuration = 0.42f; base.damageCoefficient = 9f; base.force = 1000f; base.recoilAmplitude = 0.1f; if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelAnimator())) { ((EntityState)this).PlayAnimation("Gesture, Override", "ThrowSleepDagger"); } Util.PlaySound("Play_haze_sleep_dagger_cast", ((EntityState)this).gameObject); ((GenericProjectileBaseState)this).OnEnter(); } public override void ModifyProjectileInfo(ref FireProjectileInfo fireProjectileInfo) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) ((GenericProjectileBaseState)this).ModifyProjectileInfo(ref fireProjectileInfo); DamageTypeCombo value = default(DamageTypeCombo); ((DamageTypeCombo)(ref value))..ctor(DamageTypeCombo.op_Implicit((DamageType)0), (DamageTypeExtended)0, (DamageSource)2); DamageAPI.AddModdedDamageType(ref value, HazeDamageTypes.SleepOnHit); fireProjectileInfo.damageTypeOverride = value; } public override InterruptPriority GetMinimumInterruptPriority() { return (InterruptPriority)2; } public override void PlayAnimation(float duration) { } } public class SmokeBomb : BaseSkillState { public static float duration; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = 20f; animator = ((EntityState)this).GetModelAnimator(); Object.op_Implicit((Object)(object)animator); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { if (((EntityState)this).characterBody.HasBuff(HazeBuffs.bulletDanceBuff)) { ((EntityState)this).outer.SetNextStateToMain(); } if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.Cloak); ((EntityState)this).characterBody.AddBuff(Buffs.CloakSpeed); } ((EntityState)this).characterBody.onSkillActivatedAuthority += OnSkillActivatedAuthority; } ((EntityState)this).PlayAnimation("Gesture, Override", "UseSmokeBomb"); Util.PlaySound("Play_haze_smoke_bomb_cast", ((EntityState)this).gameObject); Util.PlaySound("Play_haze_smoke_bomb_lp", ((EntityState)this).gameObject); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { Util.PlaySound("Stop_haze_smoke_bomb_lp", ((EntityState)this).gameObject); Util.PlaySound("Play_haze_smoke_bomb_end", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.onSkillActivatedAuthority -= OnSkillActivatedAuthority; if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.CloakSpeed); ((EntityState)this).characterBody.RemoveBuff(Buffs.Cloak); ((EntityState)this).characterBody.AddTimedBuff(HazeBuffs.lifestealBuff, 2f); } } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { return (InterruptPriority)2; } private void OnSkillActivatedAuthority(GenericSkill skill) { if (!skill.skillDef.skillName.Equals("HazeSleepDagger") && skill.skillDef.isCombatSkill) { ((EntityState)this).outer.SetNextStateToMain(); } } } } namespace HazeMod.Characters.Survivors.Haze.Content { public static class HazeAI { public static void Init(GameObject bodyPrefab, string masterName) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_0325: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) GameObject obj = Prefabs.CreateBlankMasterPrefab(bodyPrefab, masterName); BaseAI component = obj.GetComponent(); component.aimVectorDampTime = 0.1f; component.aimVectorMaxSpeed = 360f; AISkillDriver obj2 = obj.AddComponent(); obj2.customName = "Use Primary Swing"; obj2.skillSlot = (SkillSlot)0; obj2.requiredSkill = null; obj2.requireSkillReady = false; obj2.requireEquipmentReady = false; obj2.minUserHealthFraction = float.NegativeInfinity; obj2.maxUserHealthFraction = float.PositiveInfinity; obj2.minTargetHealthFraction = float.NegativeInfinity; obj2.maxTargetHealthFraction = float.PositiveInfinity; obj2.minDistance = 0f; obj2.maxDistance = 8f; obj2.selectionRequiresTargetLoS = false; obj2.selectionRequiresOnGround = false; obj2.selectionRequiresAimTarget = false; obj2.maxTimesSelected = -1; obj2.moveTargetType = (TargetType)0; obj2.activationRequiresTargetLoS = false; obj2.activationRequiresAimTargetLoS = false; obj2.activationRequiresAimConfirmation = false; obj2.movementType = (MovementType)1; obj2.moveInputScale = 1f; obj2.aimType = (AimType)1; obj2.ignoreNodeGraph = false; obj2.shouldSprint = false; obj2.shouldFireEquipment = false; obj2.buttonPressType = (ButtonPressType)0; obj2.driverUpdateTimerOverride = -1f; obj2.resetCurrentEnemyOnNextDriverSelection = false; obj2.noRepeat = false; obj2.nextHighPriorityOverride = null; AISkillDriver obj3 = obj.AddComponent(); obj3.customName = "Use Secondary Shoot"; obj3.skillSlot = (SkillSlot)1; obj3.requireSkillReady = true; obj3.minDistance = 0f; obj3.maxDistance = 25f; obj3.selectionRequiresTargetLoS = false; obj3.selectionRequiresOnGround = false; obj3.selectionRequiresAimTarget = false; obj3.maxTimesSelected = -1; obj3.moveTargetType = (TargetType)0; obj3.activationRequiresTargetLoS = false; obj3.activationRequiresAimTargetLoS = false; obj3.activationRequiresAimConfirmation = true; obj3.movementType = (MovementType)1; obj3.moveInputScale = 1f; obj3.aimType = (AimType)1; obj3.buttonPressType = (ButtonPressType)0; AISkillDriver obj4 = obj.AddComponent(); obj4.customName = "Use Utility Roll"; obj4.skillSlot = (SkillSlot)2; obj4.requireSkillReady = true; obj4.minDistance = 8f; obj4.maxDistance = 20f; obj4.selectionRequiresTargetLoS = true; obj4.selectionRequiresOnGround = false; obj4.selectionRequiresAimTarget = false; obj4.maxTimesSelected = -1; obj4.moveTargetType = (TargetType)0; obj4.activationRequiresTargetLoS = false; obj4.activationRequiresAimTargetLoS = false; obj4.activationRequiresAimConfirmation = false; obj4.movementType = (MovementType)2; obj4.moveInputScale = 1f; obj4.aimType = (AimType)1; obj4.buttonPressType = (ButtonPressType)0; AISkillDriver obj5 = obj.AddComponent(); obj5.customName = "Use Special bomb"; obj5.skillSlot = (SkillSlot)3; obj5.requireSkillReady = true; obj5.minDistance = 0f; obj5.maxDistance = 20f; obj5.selectionRequiresTargetLoS = false; obj5.selectionRequiresOnGround = false; obj5.selectionRequiresAimTarget = false; obj5.maxTimesSelected = -1; obj5.moveTargetType = (TargetType)0; obj5.activationRequiresTargetLoS = false; obj5.activationRequiresAimTargetLoS = false; obj5.activationRequiresAimConfirmation = false; obj5.movementType = (MovementType)1; obj5.moveInputScale = 1f; obj5.aimType = (AimType)1; obj5.buttonPressType = (ButtonPressType)0; AISkillDriver obj6 = obj.AddComponent(); obj6.customName = "Chase"; obj6.skillSlot = (SkillSlot)(-1); obj6.requireSkillReady = false; obj6.minDistance = 0f; obj6.maxDistance = float.PositiveInfinity; obj6.moveTargetType = (TargetType)0; obj6.activationRequiresTargetLoS = false; obj6.activationRequiresAimTargetLoS = false; obj6.activationRequiresAimConfirmation = false; obj6.movementType = (MovementType)1; obj6.moveInputScale = 1f; obj6.aimType = (AimType)1; obj6.buttonPressType = (ButtonPressType)0; } } public static class HazeAssets { public static GameObject swordSwingEffect; public static GameObject swordHitImpactEffect; public static GameObject bombExplosionEffect; public static NetworkSoundEventDef sleepDaggerHitSoundEvent; public static LoopSoundDef sleepDaggerFlightSoundLoop; public static GameObject bombProjectilePrefab; public static GameObject sleepDaggerProjectilePrefab; private static AssetBundle _assetBundle; public static void Init(AssetBundle assetBundle) { _assetBundle = assetBundle; sleepDaggerHitSoundEvent = HazeMod.Modules.Content.CreateAndAddNetworkSoundEventDef("Play_haze_sleep_dagger_hit"); sleepDaggerFlightSoundLoop = ScriptableObject.CreateInstance(); sleepDaggerFlightSoundLoop.startSoundName = "Play_haze_sleep_dagger_lp"; sleepDaggerFlightSoundLoop.stopSoundName = "Stop_haze_sleep_dagger_lp"; CreateEffects(); CreateProjectiles(); } private static void CreateEffects() { CreateBombExplosionEffect(); swordSwingEffect = _assetBundle.LoadEffect("HenrySwordSwingEffect", parentToTransform: true); swordHitImpactEffect = _assetBundle.LoadEffect("ImpactHenrySlash"); } private static void CreateBombExplosionEffect() { //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) bombExplosionEffect = _assetBundle.LoadEffect("BombExplosionEffect", "HenryBombExplosion"); if (Object.op_Implicit((Object)(object)bombExplosionEffect)) { ShakeEmitter obj = bombExplosionEffect.AddComponent(); obj.amplitudeTimeDecay = true; obj.duration = 0.5f; obj.radius = 200f; obj.scaleShakeRadiusWithLocalScale = false; obj.wave = new Wave { amplitude = 1f, frequency = 40f, cycleOffset = 0f }; } } private static void CreateProjectiles() { CreateSleepDaggerProjectile(); HazeMod.Modules.Content.AddProjectilePrefab(sleepDaggerProjectilePrefab); } private static void CreateSleepDaggerProjectile() { sleepDaggerProjectilePrefab = Asset.CloneProjectilePrefab("CommandoGrenadeProjectile", "HazeSleepDaggerProjectile"); Object.Destroy((Object)(object)sleepDaggerProjectilePrefab.GetComponent()); ProjectileSingleTargetImpact obj = sleepDaggerProjectilePrefab.AddComponent(); obj.destroyWhenNotAlive = true; obj.destroyOnWorld = true; obj.enemyHitSound = sleepDaggerHitSoundEvent; sleepDaggerProjectilePrefab.GetComponent().desiredForwardSpeed = 130f; sleepDaggerProjectilePrefab.AddComponent().radius = 0.5f; ProjectileController component = sleepDaggerProjectilePrefab.GetComponent(); if ((Object)(object)_assetBundle.LoadAsset("HazeSleepDagger") != (Object)null) { component.ghostPrefab = _assetBundle.CreateProjectileGhostPrefab("HazeSleepDagger"); } component.flightSoundLoop = sleepDaggerFlightSoundLoop; } } public static class HazeBuffs { public static BuffDef fixationDebuff; public static BuffDef sleepDebuff; public static BuffDef lifestealBuff; public static BuffDef bulletDanceBuff; public static void Init(AssetBundle assetBundle) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) fixationDebuff = HazeMod.Modules.Content.CreateAndAddBuff("HazeFixationDebuff", assetBundle.LoadAsset("buffDefFixation"), Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, (byte)177, byte.MaxValue)), canStack: true, isDebuff: true); sleepDebuff = HazeMod.Modules.Content.CreateAndAddBuff("HazeSleepDebuff", assetBundle.LoadAsset("buffDefSleep"), Color.white, canStack: false, isDebuff: true); lifestealBuff = HazeMod.Modules.Content.CreateAndAddBuff("HazeLifestealBuff", assetBundle.LoadAsset("buffDefLifesteal"), Color.red, canStack: false, isDebuff: false); bulletDanceBuff = HazeMod.Modules.Content.CreateAndAddBuff("HazeBulletDanceBuff", assetBundle.LoadAsset("buffDefBulletDance"), Color32.op_Implicit(new Color32(byte.MaxValue, (byte)170, (byte)130, byte.MaxValue)), canStack: false, isDebuff: false); } } public static class HazeConfig { public static ConfigEntry someConfigBool; public static ConfigEntry someConfigFloat; public static ConfigEntry someConfigFloatWithCustomRange; public static void Init() { someConfigBool = Config.BindAndOptions("Haze", "someConfigBool", defaultValue: true, "this creates a bool config, and a checkbox option in risk of options"); someConfigFloat = Config.BindAndOptions("Haze", "someConfigfloat", 5f); someConfigFloatWithCustomRange = Config.BindAndOptions("Haze", "someConfigfloat2", 5f, 0f, 50f, "if a custom range is not passed in, a float will default to a slider with range 0-20. risk of options only has sliders"); } } public static class HazeDamageTypes { public static ModdedDamageType SleepOnHit; public static void Init() { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) SleepOnHit = DamageAPI.ReserveDamageType(); } } public class HazeItemDisplays : ItemDisplaysBase { protected override void SetItemDisplayRules(List itemDisplayRules) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0314: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03ae: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0420: Unknown result type (might be due to invalid IL or missing references) //IL_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0465: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04f0: Unknown result type (might be due to invalid IL or missing references) //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_050e: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0585: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05f2: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_0655: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Unknown result type (might be due to invalid IL or missing references) //IL_06b8: Unknown result type (might be due to invalid IL or missing references) //IL_06cc: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0757: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_0766: Unknown result type (might be due to invalid IL or missing references) //IL_07a6: Unknown result type (might be due to invalid IL or missing references) //IL_07ba: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07d8: Unknown result type (might be due to invalid IL or missing references) //IL_07dd: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_0831: Unknown result type (might be due to invalid IL or missing references) //IL_0845: Unknown result type (might be due to invalid IL or missing references) //IL_084a: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Unknown result type (might be due to invalid IL or missing references) //IL_0854: Unknown result type (might be due to invalid IL or missing references) //IL_0894: Unknown result type (might be due to invalid IL or missing references) //IL_08a8: Unknown result type (might be due to invalid IL or missing references) //IL_08bc: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08cb: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0938: Unknown result type (might be due to invalid IL or missing references) //IL_093d: Unknown result type (might be due to invalid IL or missing references) //IL_0942: Unknown result type (might be due to invalid IL or missing references) //IL_0982: Unknown result type (might be due to invalid IL or missing references) //IL_0996: Unknown result type (might be due to invalid IL or missing references) //IL_09aa: Unknown result type (might be due to invalid IL or missing references) //IL_09af: Unknown result type (might be due to invalid IL or missing references) //IL_09b4: Unknown result type (might be due to invalid IL or missing references) //IL_09b9: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a2b: Unknown result type (might be due to invalid IL or missing references) //IL_0a30: Unknown result type (might be due to invalid IL or missing references) //IL_0a70: Unknown result type (might be due to invalid IL or missing references) //IL_0a84: Unknown result type (might be due to invalid IL or missing references) //IL_0a98: Unknown result type (might be due to invalid IL or missing references) //IL_0a9d: Unknown result type (might be due to invalid IL or missing references) //IL_0aa2: Unknown result type (might be due to invalid IL or missing references) //IL_0aa7: Unknown result type (might be due to invalid IL or missing references) //IL_0ae7: Unknown result type (might be due to invalid IL or missing references) //IL_0afb: Unknown result type (might be due to invalid IL or missing references) //IL_0b0f: Unknown result type (might be due to invalid IL or missing references) //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b19: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) //IL_0b5e: Unknown result type (might be due to invalid IL or missing references) //IL_0b72: Unknown result type (might be due to invalid IL or missing references) //IL_0b86: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b90: Unknown result type (might be due to invalid IL or missing references) //IL_0b95: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0be9: Unknown result type (might be due to invalid IL or missing references) //IL_0bfd: Unknown result type (might be due to invalid IL or missing references) //IL_0c02: Unknown result type (might be due to invalid IL or missing references) //IL_0c07: Unknown result type (might be due to invalid IL or missing references) //IL_0c0c: Unknown result type (might be due to invalid IL or missing references) //IL_0c4c: Unknown result type (might be due to invalid IL or missing references) //IL_0c60: Unknown result type (might be due to invalid IL or missing references) //IL_0c74: Unknown result type (might be due to invalid IL or missing references) //IL_0c79: Unknown result type (might be due to invalid IL or missing references) //IL_0c7e: Unknown result type (might be due to invalid IL or missing references) //IL_0c83: Unknown result type (might be due to invalid IL or missing references) //IL_0cc3: Unknown result type (might be due to invalid IL or missing references) //IL_0cd7: Unknown result type (might be due to invalid IL or missing references) //IL_0ceb: Unknown result type (might be due to invalid IL or missing references) //IL_0cf0: Unknown result type (might be due to invalid IL or missing references) //IL_0cf5: Unknown result type (might be due to invalid IL or missing references) //IL_0cfa: Unknown result type (might be due to invalid IL or missing references) //IL_0d3a: Unknown result type (might be due to invalid IL or missing references) //IL_0d4e: Unknown result type (might be due to invalid IL or missing references) //IL_0d62: Unknown result type (might be due to invalid IL or missing references) //IL_0d67: Unknown result type (might be due to invalid IL or missing references) //IL_0d6c: Unknown result type (might be due to invalid IL or missing references) //IL_0d71: Unknown result type (might be due to invalid IL or missing references) //IL_0db1: Unknown result type (might be due to invalid IL or missing references) //IL_0dc5: Unknown result type (might be due to invalid IL or missing references) //IL_0dd9: Unknown result type (might be due to invalid IL or missing references) //IL_0dde: Unknown result type (might be due to invalid IL or missing references) //IL_0de3: Unknown result type (might be due to invalid IL or missing references) //IL_0de8: Unknown result type (might be due to invalid IL or missing references) //IL_0e28: Unknown result type (might be due to invalid IL or missing references) //IL_0e3c: Unknown result type (might be due to invalid IL or missing references) //IL_0e50: Unknown result type (might be due to invalid IL or missing references) //IL_0e55: Unknown result type (might be due to invalid IL or missing references) //IL_0e5a: Unknown result type (might be due to invalid IL or missing references) //IL_0e5f: Unknown result type (might be due to invalid IL or missing references) //IL_0e82: Unknown result type (might be due to invalid IL or missing references) //IL_0e87: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0ec0: Unknown result type (might be due to invalid IL or missing references) //IL_0ed4: Unknown result type (might be due to invalid IL or missing references) //IL_0ed9: Unknown result type (might be due to invalid IL or missing references) //IL_0ede: Unknown result type (might be due to invalid IL or missing references) //IL_0f03: Unknown result type (might be due to invalid IL or missing references) //IL_0f17: Unknown result type (might be due to invalid IL or missing references) //IL_0f2b: Unknown result type (might be due to invalid IL or missing references) //IL_0f30: Unknown result type (might be due to invalid IL or missing references) //IL_0f35: Unknown result type (might be due to invalid IL or missing references) //IL_0f3a: Unknown result type (might be due to invalid IL or missing references) //IL_0f7a: Unknown result type (might be due to invalid IL or missing references) //IL_0f8e: Unknown result type (might be due to invalid IL or missing references) //IL_0fa2: Unknown result type (might be due to invalid IL or missing references) //IL_0fa7: Unknown result type (might be due to invalid IL or missing references) //IL_0fac: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0ff1: Unknown result type (might be due to invalid IL or missing references) //IL_1005: Unknown result type (might be due to invalid IL or missing references) //IL_1019: Unknown result type (might be due to invalid IL or missing references) //IL_101e: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_1028: Unknown result type (might be due to invalid IL or missing references) //IL_1068: Unknown result type (might be due to invalid IL or missing references) //IL_107c: Unknown result type (might be due to invalid IL or missing references) //IL_1090: Unknown result type (might be due to invalid IL or missing references) //IL_1095: Unknown result type (might be due to invalid IL or missing references) //IL_109a: Unknown result type (might be due to invalid IL or missing references) //IL_109f: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_10f3: Unknown result type (might be due to invalid IL or missing references) //IL_1107: Unknown result type (might be due to invalid IL or missing references) //IL_110c: Unknown result type (might be due to invalid IL or missing references) //IL_1111: Unknown result type (might be due to invalid IL or missing references) //IL_1116: Unknown result type (might be due to invalid IL or missing references) //IL_1156: Unknown result type (might be due to invalid IL or missing references) //IL_116a: Unknown result type (might be due to invalid IL or missing references) //IL_117e: Unknown result type (might be due to invalid IL or missing references) //IL_1183: Unknown result type (might be due to invalid IL or missing references) //IL_1188: Unknown result type (might be due to invalid IL or missing references) //IL_118d: Unknown result type (might be due to invalid IL or missing references) //IL_11cd: Unknown result type (might be due to invalid IL or missing references) //IL_11e1: Unknown result type (might be due to invalid IL or missing references) //IL_11f5: Unknown result type (might be due to invalid IL or missing references) //IL_11fa: Unknown result type (might be due to invalid IL or missing references) //IL_11ff: Unknown result type (might be due to invalid IL or missing references) //IL_1204: Unknown result type (might be due to invalid IL or missing references) //IL_1244: Unknown result type (might be due to invalid IL or missing references) //IL_1258: Unknown result type (might be due to invalid IL or missing references) //IL_126c: Unknown result type (might be due to invalid IL or missing references) //IL_1271: Unknown result type (might be due to invalid IL or missing references) //IL_1276: Unknown result type (might be due to invalid IL or missing references) //IL_127b: Unknown result type (might be due to invalid IL or missing references) //IL_12bb: Unknown result type (might be due to invalid IL or missing references) //IL_12cf: Unknown result type (might be due to invalid IL or missing references) //IL_12e3: Unknown result type (might be due to invalid IL or missing references) //IL_12e8: Unknown result type (might be due to invalid IL or missing references) //IL_12ed: Unknown result type (might be due to invalid IL or missing references) //IL_12f2: Unknown result type (might be due to invalid IL or missing references) //IL_1332: Unknown result type (might be due to invalid IL or missing references) //IL_1346: Unknown result type (might be due to invalid IL or missing references) //IL_135a: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1364: Unknown result type (might be due to invalid IL or missing references) //IL_1389: Unknown result type (might be due to invalid IL or missing references) //IL_139d: Unknown result type (might be due to invalid IL or missing references) //IL_13b1: Unknown result type (might be due to invalid IL or missing references) //IL_13b6: Unknown result type (might be due to invalid IL or missing references) //IL_13bb: Unknown result type (might be due to invalid IL or missing references) //IL_13c0: Unknown result type (might be due to invalid IL or missing references) //IL_1400: Unknown result type (might be due to invalid IL or missing references) //IL_1414: Unknown result type (might be due to invalid IL or missing references) //IL_1428: Unknown result type (might be due to invalid IL or missing references) //IL_142d: Unknown result type (might be due to invalid IL or missing references) //IL_1432: Unknown result type (might be due to invalid IL or missing references) //IL_1437: Unknown result type (might be due to invalid IL or missing references) //IL_1477: Unknown result type (might be due to invalid IL or missing references) //IL_148b: Unknown result type (might be due to invalid IL or missing references) //IL_149f: Unknown result type (might be due to invalid IL or missing references) //IL_14a4: Unknown result type (might be due to invalid IL or missing references) //IL_14a9: Unknown result type (might be due to invalid IL or missing references) //IL_14ae: Unknown result type (might be due to invalid IL or missing references) //IL_14ee: Unknown result type (might be due to invalid IL or missing references) //IL_1502: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Unknown result type (might be due to invalid IL or missing references) //IL_151b: Unknown result type (might be due to invalid IL or missing references) //IL_1520: Unknown result type (might be due to invalid IL or missing references) //IL_1525: Unknown result type (might be due to invalid IL or missing references) //IL_1565: Unknown result type (might be due to invalid IL or missing references) //IL_1579: Unknown result type (might be due to invalid IL or missing references) //IL_158d: Unknown result type (might be due to invalid IL or missing references) //IL_1592: Unknown result type (might be due to invalid IL or missing references) //IL_1597: Unknown result type (might be due to invalid IL or missing references) //IL_159c: Unknown result type (might be due to invalid IL or missing references) //IL_15dc: Unknown result type (might be due to invalid IL or missing references) //IL_15f0: Unknown result type (might be due to invalid IL or missing references) //IL_1604: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_160e: Unknown result type (might be due to invalid IL or missing references) //IL_1613: Unknown result type (might be due to invalid IL or missing references) //IL_1653: Unknown result type (might be due to invalid IL or missing references) //IL_1667: Unknown result type (might be due to invalid IL or missing references) //IL_167b: Unknown result type (might be due to invalid IL or missing references) //IL_1680: Unknown result type (might be due to invalid IL or missing references) //IL_1685: Unknown result type (might be due to invalid IL or missing references) //IL_168a: Unknown result type (might be due to invalid IL or missing references) //IL_16ca: Unknown result type (might be due to invalid IL or missing references) //IL_16de: Unknown result type (might be due to invalid IL or missing references) //IL_16f2: Unknown result type (might be due to invalid IL or missing references) //IL_16f7: Unknown result type (might be due to invalid IL or missing references) //IL_16fc: Unknown result type (might be due to invalid IL or missing references) //IL_1701: Unknown result type (might be due to invalid IL or missing references) //IL_1741: Unknown result type (might be due to invalid IL or missing references) //IL_1755: Unknown result type (might be due to invalid IL or missing references) //IL_1769: Unknown result type (might be due to invalid IL or missing references) //IL_176e: Unknown result type (might be due to invalid IL or missing references) //IL_1773: Unknown result type (might be due to invalid IL or missing references) //IL_1778: Unknown result type (might be due to invalid IL or missing references) //IL_17b8: Unknown result type (might be due to invalid IL or missing references) //IL_17cc: Unknown result type (might be due to invalid IL or missing references) //IL_17e0: Unknown result type (might be due to invalid IL or missing references) //IL_17e5: Unknown result type (might be due to invalid IL or missing references) //IL_17ea: Unknown result type (might be due to invalid IL or missing references) //IL_17ef: Unknown result type (might be due to invalid IL or missing references) //IL_182f: Unknown result type (might be due to invalid IL or missing references) //IL_1843: Unknown result type (might be due to invalid IL or missing references) //IL_1857: Unknown result type (might be due to invalid IL or missing references) //IL_185c: Unknown result type (might be due to invalid IL or missing references) //IL_1861: Unknown result type (might be due to invalid IL or missing references) //IL_1866: Unknown result type (might be due to invalid IL or missing references) //IL_18a6: Unknown result type (might be due to invalid IL or missing references) //IL_18ba: Unknown result type (might be due to invalid IL or missing references) //IL_18ce: Unknown result type (might be due to invalid IL or missing references) //IL_18d3: Unknown result type (might be due to invalid IL or missing references) //IL_18d8: Unknown result type (might be due to invalid IL or missing references) //IL_18dd: Unknown result type (might be due to invalid IL or missing references) //IL_191d: Unknown result type (might be due to invalid IL or missing references) //IL_1931: Unknown result type (might be due to invalid IL or missing references) //IL_1945: Unknown result type (might be due to invalid IL or missing references) //IL_194a: Unknown result type (might be due to invalid IL or missing references) //IL_194f: Unknown result type (might be due to invalid IL or missing references) //IL_1954: Unknown result type (might be due to invalid IL or missing references) //IL_1994: Unknown result type (might be due to invalid IL or missing references) //IL_19a8: Unknown result type (might be due to invalid IL or missing references) //IL_19bc: Unknown result type (might be due to invalid IL or missing references) //IL_19c1: Unknown result type (might be due to invalid IL or missing references) //IL_19c6: Unknown result type (might be due to invalid IL or missing references) //IL_19cb: Unknown result type (might be due to invalid IL or missing references) //IL_1a0b: Unknown result type (might be due to invalid IL or missing references) //IL_1a1f: Unknown result type (might be due to invalid IL or missing references) //IL_1a33: Unknown result type (might be due to invalid IL or missing references) //IL_1a38: Unknown result type (might be due to invalid IL or missing references) //IL_1a3d: Unknown result type (might be due to invalid IL or missing references) //IL_1a42: Unknown result type (might be due to invalid IL or missing references) //IL_1a82: Unknown result type (might be due to invalid IL or missing references) //IL_1a96: Unknown result type (might be due to invalid IL or missing references) //IL_1aaa: Unknown result type (might be due to invalid IL or missing references) //IL_1aaf: Unknown result type (might be due to invalid IL or missing references) //IL_1ab4: Unknown result type (might be due to invalid IL or missing references) //IL_1ab9: Unknown result type (might be due to invalid IL or missing references) //IL_1af9: Unknown result type (might be due to invalid IL or missing references) //IL_1b0d: Unknown result type (might be due to invalid IL or missing references) //IL_1b21: Unknown result type (might be due to invalid IL or missing references) //IL_1b26: Unknown result type (might be due to invalid IL or missing references) //IL_1b2b: Unknown result type (might be due to invalid IL or missing references) //IL_1b30: Unknown result type (might be due to invalid IL or missing references) //IL_1b70: Unknown result type (might be due to invalid IL or missing references) //IL_1b84: Unknown result type (might be due to invalid IL or missing references) //IL_1b98: Unknown result type (might be due to invalid IL or missing references) //IL_1b9d: Unknown result type (might be due to invalid IL or missing references) //IL_1ba2: Unknown result type (might be due to invalid IL or missing references) //IL_1ba7: Unknown result type (might be due to invalid IL or missing references) //IL_1be7: Unknown result type (might be due to invalid IL or missing references) //IL_1bfb: Unknown result type (might be due to invalid IL or missing references) //IL_1c0f: Unknown result type (might be due to invalid IL or missing references) //IL_1c14: Unknown result type (might be due to invalid IL or missing references) //IL_1c19: Unknown result type (might be due to invalid IL or missing references) //IL_1c21: Unknown result type (might be due to invalid IL or missing references) //IL_1c26: Unknown result type (might be due to invalid IL or missing references) //IL_1c2b: Unknown result type (might be due to invalid IL or missing references) //IL_1c6b: Unknown result type (might be due to invalid IL or missing references) //IL_1c7f: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c98: Unknown result type (might be due to invalid IL or missing references) //IL_1c9d: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1ce2: Unknown result type (might be due to invalid IL or missing references) //IL_1cf6: Unknown result type (might be due to invalid IL or missing references) //IL_1d0a: Unknown result type (might be due to invalid IL or missing references) //IL_1d0f: Unknown result type (might be due to invalid IL or missing references) //IL_1d14: Unknown result type (might be due to invalid IL or missing references) //IL_1d19: Unknown result type (might be due to invalid IL or missing references) //IL_1d59: Unknown result type (might be due to invalid IL or missing references) //IL_1d6d: Unknown result type (might be due to invalid IL or missing references) //IL_1d81: Unknown result type (might be due to invalid IL or missing references) //IL_1d86: Unknown result type (might be due to invalid IL or missing references) //IL_1d8b: Unknown result type (might be due to invalid IL or missing references) //IL_1d90: Unknown result type (might be due to invalid IL or missing references) //IL_1dd0: Unknown result type (might be due to invalid IL or missing references) //IL_1de4: Unknown result type (might be due to invalid IL or missing references) //IL_1df8: Unknown result type (might be due to invalid IL or missing references) //IL_1dfd: Unknown result type (might be due to invalid IL or missing references) //IL_1e02: Unknown result type (might be due to invalid IL or missing references) //IL_1e07: Unknown result type (might be due to invalid IL or missing references) //IL_1e47: Unknown result type (might be due to invalid IL or missing references) //IL_1e5b: Unknown result type (might be due to invalid IL or missing references) //IL_1e6f: Unknown result type (might be due to invalid IL or missing references) //IL_1e74: Unknown result type (might be due to invalid IL or missing references) //IL_1e79: Unknown result type (might be due to invalid IL or missing references) //IL_1e9e: Unknown result type (might be due to invalid IL or missing references) //IL_1eb2: Unknown result type (might be due to invalid IL or missing references) //IL_1ec6: Unknown result type (might be due to invalid IL or missing references) //IL_1ecb: Unknown result type (might be due to invalid IL or missing references) //IL_1ed0: Unknown result type (might be due to invalid IL or missing references) //IL_1ed5: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f29: Unknown result type (might be due to invalid IL or missing references) //IL_1f3d: Unknown result type (might be due to invalid IL or missing references) //IL_1f42: Unknown result type (might be due to invalid IL or missing references) //IL_1f47: Unknown result type (might be due to invalid IL or missing references) //IL_1f4c: Unknown result type (might be due to invalid IL or missing references) //IL_1f8c: Unknown result type (might be due to invalid IL or missing references) //IL_1fa0: Unknown result type (might be due to invalid IL or missing references) //IL_1fb4: Unknown result type (might be due to invalid IL or missing references) //IL_1fb9: Unknown result type (might be due to invalid IL or missing references) //IL_1fbe: Unknown result type (might be due to invalid IL or missing references) //IL_1fc3: Unknown result type (might be due to invalid IL or missing references) //IL_2003: Unknown result type (might be due to invalid IL or missing references) //IL_2017: Unknown result type (might be due to invalid IL or missing references) //IL_202b: Unknown result type (might be due to invalid IL or missing references) //IL_2030: Unknown result type (might be due to invalid IL or missing references) //IL_2035: Unknown result type (might be due to invalid IL or missing references) //IL_203a: Unknown result type (might be due to invalid IL or missing references) //IL_207a: Unknown result type (might be due to invalid IL or missing references) //IL_208e: Unknown result type (might be due to invalid IL or missing references) //IL_20a2: Unknown result type (might be due to invalid IL or missing references) //IL_20a7: Unknown result type (might be due to invalid IL or missing references) //IL_20ac: Unknown result type (might be due to invalid IL or missing references) //IL_20b1: Unknown result type (might be due to invalid IL or missing references) //IL_20f1: Unknown result type (might be due to invalid IL or missing references) //IL_2105: Unknown result type (might be due to invalid IL or missing references) //IL_2119: Unknown result type (might be due to invalid IL or missing references) //IL_211e: Unknown result type (might be due to invalid IL or missing references) //IL_2123: Unknown result type (might be due to invalid IL or missing references) //IL_2128: Unknown result type (might be due to invalid IL or missing references) //IL_2168: Unknown result type (might be due to invalid IL or missing references) //IL_217c: Unknown result type (might be due to invalid IL or missing references) //IL_2190: Unknown result type (might be due to invalid IL or missing references) //IL_2195: Unknown result type (might be due to invalid IL or missing references) //IL_219a: Unknown result type (might be due to invalid IL or missing references) //IL_219f: Unknown result type (might be due to invalid IL or missing references) //IL_21df: Unknown result type (might be due to invalid IL or missing references) //IL_21f3: Unknown result type (might be due to invalid IL or missing references) //IL_2207: Unknown result type (might be due to invalid IL or missing references) //IL_220c: Unknown result type (might be due to invalid IL or missing references) //IL_2211: Unknown result type (might be due to invalid IL or missing references) //IL_2216: Unknown result type (might be due to invalid IL or missing references) //IL_2256: Unknown result type (might be due to invalid IL or missing references) //IL_226a: Unknown result type (might be due to invalid IL or missing references) //IL_227e: Unknown result type (might be due to invalid IL or missing references) //IL_2283: Unknown result type (might be due to invalid IL or missing references) //IL_2288: Unknown result type (might be due to invalid IL or missing references) //IL_228d: Unknown result type (might be due to invalid IL or missing references) //IL_22cd: Unknown result type (might be due to invalid IL or missing references) //IL_22e1: Unknown result type (might be due to invalid IL or missing references) //IL_22f5: Unknown result type (might be due to invalid IL or missing references) //IL_22fa: Unknown result type (might be due to invalid IL or missing references) //IL_22ff: Unknown result type (might be due to invalid IL or missing references) //IL_2304: Unknown result type (might be due to invalid IL or missing references) //IL_2344: Unknown result type (might be due to invalid IL or missing references) //IL_2358: Unknown result type (might be due to invalid IL or missing references) //IL_236c: Unknown result type (might be due to invalid IL or missing references) //IL_2371: Unknown result type (might be due to invalid IL or missing references) //IL_2376: Unknown result type (might be due to invalid IL or missing references) //IL_237b: Unknown result type (might be due to invalid IL or missing references) //IL_23bb: Unknown result type (might be due to invalid IL or missing references) //IL_23cf: Unknown result type (might be due to invalid IL or missing references) //IL_23e3: Unknown result type (might be due to invalid IL or missing references) //IL_23e8: Unknown result type (might be due to invalid IL or missing references) //IL_23ed: Unknown result type (might be due to invalid IL or missing references) //IL_23f2: Unknown result type (might be due to invalid IL or missing references) //IL_2432: Unknown result type (might be due to invalid IL or missing references) //IL_2446: Unknown result type (might be due to invalid IL or missing references) //IL_245a: Unknown result type (might be due to invalid IL or missing references) //IL_245f: Unknown result type (might be due to invalid IL or missing references) //IL_2464: Unknown result type (might be due to invalid IL or missing references) //IL_2469: Unknown result type (might be due to invalid IL or missing references) //IL_24a9: Unknown result type (might be due to invalid IL or missing references) //IL_24bd: Unknown result type (might be due to invalid IL or missing references) //IL_24d1: Unknown result type (might be due to invalid IL or missing references) //IL_24d6: Unknown result type (might be due to invalid IL or missing references) //IL_24db: Unknown result type (might be due to invalid IL or missing references) //IL_24e0: Unknown result type (might be due to invalid IL or missing references) //IL_2520: Unknown result type (might be due to invalid IL or missing references) //IL_2534: Unknown result type (might be due to invalid IL or missing references) //IL_2548: Unknown result type (might be due to invalid IL or missing references) //IL_254d: Unknown result type (might be due to invalid IL or missing references) //IL_2552: Unknown result type (might be due to invalid IL or missing references) //IL_2557: Unknown result type (might be due to invalid IL or missing references) //IL_2597: Unknown result type (might be due to invalid IL or missing references) //IL_25ab: Unknown result type (might be due to invalid IL or missing references) //IL_25bf: Unknown result type (might be due to invalid IL or missing references) //IL_25c4: Unknown result type (might be due to invalid IL or missing references) //IL_25c9: Unknown result type (might be due to invalid IL or missing references) //IL_25ce: Unknown result type (might be due to invalid IL or missing references) //IL_260e: Unknown result type (might be due to invalid IL or missing references) //IL_2622: Unknown result type (might be due to invalid IL or missing references) //IL_2636: Unknown result type (might be due to invalid IL or missing references) //IL_263b: Unknown result type (might be due to invalid IL or missing references) //IL_2640: Unknown result type (might be due to invalid IL or missing references) //IL_2645: Unknown result type (might be due to invalid IL or missing references) //IL_2685: Unknown result type (might be due to invalid IL or missing references) //IL_2699: Unknown result type (might be due to invalid IL or missing references) //IL_26ad: Unknown result type (might be due to invalid IL or missing references) //IL_26b2: Unknown result type (might be due to invalid IL or missing references) //IL_26b7: Unknown result type (might be due to invalid IL or missing references) //IL_26bc: Unknown result type (might be due to invalid IL or missing references) //IL_26fc: Unknown result type (might be due to invalid IL or missing references) //IL_2710: Unknown result type (might be due to invalid IL or missing references) //IL_2724: Unknown result type (might be due to invalid IL or missing references) //IL_2729: Unknown result type (might be due to invalid IL or missing references) //IL_272e: Unknown result type (might be due to invalid IL or missing references) //IL_2733: Unknown result type (might be due to invalid IL or missing references) //IL_2773: Unknown result type (might be due to invalid IL or missing references) //IL_2787: Unknown result type (might be due to invalid IL or missing references) //IL_279b: Unknown result type (might be due to invalid IL or missing references) //IL_27a0: Unknown result type (might be due to invalid IL or missing references) //IL_27a5: Unknown result type (might be due to invalid IL or missing references) //IL_27aa: Unknown result type (might be due to invalid IL or missing references) //IL_27ea: Unknown result type (might be due to invalid IL or missing references) //IL_27fe: Unknown result type (might be due to invalid IL or missing references) //IL_2812: Unknown result type (might be due to invalid IL or missing references) //IL_2817: Unknown result type (might be due to invalid IL or missing references) //IL_281c: Unknown result type (might be due to invalid IL or missing references) //IL_2821: Unknown result type (might be due to invalid IL or missing references) //IL_2861: Unknown result type (might be due to invalid IL or missing references) //IL_2875: Unknown result type (might be due to invalid IL or missing references) //IL_2889: Unknown result type (might be due to invalid IL or missing references) //IL_288e: Unknown result type (might be due to invalid IL or missing references) //IL_2893: Unknown result type (might be due to invalid IL or missing references) //IL_2898: Unknown result type (might be due to invalid IL or missing references) //IL_28d8: Unknown result type (might be due to invalid IL or missing references) //IL_28ec: Unknown result type (might be due to invalid IL or missing references) //IL_2900: Unknown result type (might be due to invalid IL or missing references) //IL_2905: Unknown result type (might be due to invalid IL or missing references) //IL_290a: Unknown result type (might be due to invalid IL or missing references) //IL_290f: Unknown result type (might be due to invalid IL or missing references) //IL_294f: Unknown result type (might be due to invalid IL or missing references) //IL_2963: Unknown result type (might be due to invalid IL or missing references) //IL_2977: Unknown result type (might be due to invalid IL or missing references) //IL_297c: Unknown result type (might be due to invalid IL or missing references) //IL_2981: Unknown result type (might be due to invalid IL or missing references) //IL_2986: Unknown result type (might be due to invalid IL or missing references) //IL_29c6: Unknown result type (might be due to invalid IL or missing references) //IL_29da: Unknown result type (might be due to invalid IL or missing references) //IL_29ee: Unknown result type (might be due to invalid IL or missing references) //IL_29f3: Unknown result type (might be due to invalid IL or missing references) //IL_29f8: Unknown result type (might be due to invalid IL or missing references) //IL_2a1d: Unknown result type (might be due to invalid IL or missing references) //IL_2a31: Unknown result type (might be due to invalid IL or missing references) //IL_2a45: Unknown result type (might be due to invalid IL or missing references) //IL_2a4a: Unknown result type (might be due to invalid IL or missing references) //IL_2a4f: Unknown result type (might be due to invalid IL or missing references) //IL_2a54: Unknown result type (might be due to invalid IL or missing references) //IL_2a94: Unknown result type (might be due to invalid IL or missing references) //IL_2aa8: Unknown result type (might be due to invalid IL or missing references) //IL_2abc: Unknown result type (might be due to invalid IL or missing references) //IL_2ac1: Unknown result type (might be due to invalid IL or missing references) //IL_2ac6: Unknown result type (might be due to invalid IL or missing references) //IL_2acb: Unknown result type (might be due to invalid IL or missing references) //IL_2b0b: Unknown result type (might be due to invalid IL or missing references) //IL_2b1f: Unknown result type (might be due to invalid IL or missing references) //IL_2b33: Unknown result type (might be due to invalid IL or missing references) //IL_2b38: Unknown result type (might be due to invalid IL or missing references) //IL_2b3d: Unknown result type (might be due to invalid IL or missing references) //IL_2b42: Unknown result type (might be due to invalid IL or missing references) //IL_2b82: Unknown result type (might be due to invalid IL or missing references) //IL_2b96: Unknown result type (might be due to invalid IL or missing references) //IL_2baa: Unknown result type (might be due to invalid IL or missing references) //IL_2baf: Unknown result type (might be due to invalid IL or missing references) //IL_2bb4: Unknown result type (might be due to invalid IL or missing references) //IL_2bb9: Unknown result type (might be due to invalid IL or missing references) //IL_2bf9: Unknown result type (might be due to invalid IL or missing references) //IL_2c0d: Unknown result type (might be due to invalid IL or missing references) //IL_2c21: Unknown result type (might be due to invalid IL or missing references) //IL_2c26: Unknown result type (might be due to invalid IL or missing references) //IL_2c2b: Unknown result type (might be due to invalid IL or missing references) //IL_2c30: Unknown result type (might be due to invalid IL or missing references) //IL_2c70: Unknown result type (might be due to invalid IL or missing references) //IL_2c84: Unknown result type (might be due to invalid IL or missing references) //IL_2c98: Unknown result type (might be due to invalid IL or missing references) //IL_2c9d: Unknown result type (might be due to invalid IL or missing references) //IL_2ca2: Unknown result type (might be due to invalid IL or missing references) //IL_2ca7: Unknown result type (might be due to invalid IL or missing references) //IL_2ce7: Unknown result type (might be due to invalid IL or missing references) //IL_2cfb: Unknown result type (might be due to invalid IL or missing references) //IL_2d0f: Unknown result type (might be due to invalid IL or missing references) //IL_2d14: Unknown result type (might be due to invalid IL or missing references) //IL_2d19: Unknown result type (might be due to invalid IL or missing references) //IL_2d1e: Unknown result type (might be due to invalid IL or missing references) //IL_2d5e: Unknown result type (might be due to invalid IL or missing references) //IL_2d72: Unknown result type (might be due to invalid IL or missing references) //IL_2d86: Unknown result type (might be due to invalid IL or missing references) //IL_2d8b: Unknown result type (might be due to invalid IL or missing references) //IL_2d90: Unknown result type (might be due to invalid IL or missing references) //IL_2d95: Unknown result type (might be due to invalid IL or missing references) //IL_2dd5: Unknown result type (might be due to invalid IL or missing references) //IL_2de9: Unknown result type (might be due to invalid IL or missing references) //IL_2dfd: Unknown result type (might be due to invalid IL or missing references) //IL_2e02: Unknown result type (might be due to invalid IL or missing references) //IL_2e07: Unknown result type (might be due to invalid IL or missing references) //IL_2e0c: Unknown result type (might be due to invalid IL or missing references) //IL_2e4c: Unknown result type (might be due to invalid IL or missing references) //IL_2e60: Unknown result type (might be due to invalid IL or missing references) //IL_2e74: Unknown result type (might be due to invalid IL or missing references) //IL_2e79: Unknown result type (might be due to invalid IL or missing references) //IL_2e7e: Unknown result type (might be due to invalid IL or missing references) //IL_2e83: Unknown result type (might be due to invalid IL or missing references) //IL_2ec3: Unknown result type (might be due to invalid IL or missing references) //IL_2ed7: Unknown result type (might be due to invalid IL or missing references) //IL_2eeb: Unknown result type (might be due to invalid IL or missing references) //IL_2ef0: Unknown result type (might be due to invalid IL or missing references) //IL_2ef5: Unknown result type (might be due to invalid IL or missing references) //IL_2efa: Unknown result type (might be due to invalid IL or missing references) //IL_2f3a: Unknown result type (might be due to invalid IL or missing references) //IL_2f4e: Unknown result type (might be due to invalid IL or missing references) //IL_2f62: Unknown result type (might be due to invalid IL or missing references) //IL_2f67: Unknown result type (might be due to invalid IL or missing references) //IL_2f6c: Unknown result type (might be due to invalid IL or missing references) //IL_2f71: Unknown result type (might be due to invalid IL or missing references) //IL_2fb1: Unknown result type (might be due to invalid IL or missing references) //IL_2fc5: Unknown result type (might be due to invalid IL or missing references) //IL_2fd9: Unknown result type (might be due to invalid IL or missing references) //IL_2fde: Unknown result type (might be due to invalid IL or missing references) //IL_2fe3: Unknown result type (might be due to invalid IL or missing references) //IL_2fe8: Unknown result type (might be due to invalid IL or missing references) //IL_3028: Unknown result type (might be due to invalid IL or missing references) //IL_303c: Unknown result type (might be due to invalid IL or missing references) //IL_3050: Unknown result type (might be due to invalid IL or missing references) //IL_3055: Unknown result type (might be due to invalid IL or missing references) //IL_305a: Unknown result type (might be due to invalid IL or missing references) //IL_305f: Unknown result type (might be due to invalid IL or missing references) //IL_309f: Unknown result type (might be due to invalid IL or missing references) //IL_30b3: Unknown result type (might be due to invalid IL or missing references) //IL_30c7: Unknown result type (might be due to invalid IL or missing references) //IL_30cc: Unknown result type (might be due to invalid IL or missing references) //IL_30d1: Unknown result type (might be due to invalid IL or missing references) //IL_30d6: Unknown result type (might be due to invalid IL or missing references) //IL_3116: Unknown result type (might be due to invalid IL or missing references) //IL_312a: Unknown result type (might be due to invalid IL or missing references) //IL_313e: Unknown result type (might be due to invalid IL or missing references) //IL_3143: Unknown result type (might be due to invalid IL or missing references) //IL_3148: Unknown result type (might be due to invalid IL or missing references) //IL_314d: Unknown result type (might be due to invalid IL or missing references) //IL_318d: Unknown result type (might be due to invalid IL or missing references) //IL_31a1: Unknown result type (might be due to invalid IL or missing references) //IL_31b5: Unknown result type (might be due to invalid IL or missing references) //IL_31ba: Unknown result type (might be due to invalid IL or missing references) //IL_31bf: Unknown result type (might be due to invalid IL or missing references) //IL_31c4: Unknown result type (might be due to invalid IL or missing references) //IL_3204: Unknown result type (might be due to invalid IL or missing references) //IL_3218: Unknown result type (might be due to invalid IL or missing references) //IL_322c: Unknown result type (might be due to invalid IL or missing references) //IL_3231: Unknown result type (might be due to invalid IL or missing references) //IL_3236: Unknown result type (might be due to invalid IL or missing references) //IL_325b: Unknown result type (might be due to invalid IL or missing references) //IL_326f: Unknown result type (might be due to invalid IL or missing references) //IL_3283: Unknown result type (might be due to invalid IL or missing references) //IL_3288: Unknown result type (might be due to invalid IL or missing references) //IL_328d: Unknown result type (might be due to invalid IL or missing references) //IL_3292: Unknown result type (might be due to invalid IL or missing references) //IL_32d2: Unknown result type (might be due to invalid IL or missing references) //IL_32e6: Unknown result type (might be due to invalid IL or missing references) //IL_32fa: Unknown result type (might be due to invalid IL or missing references) //IL_32ff: Unknown result type (might be due to invalid IL or missing references) //IL_3304: Unknown result type (might be due to invalid IL or missing references) //IL_3309: Unknown result type (might be due to invalid IL or missing references) //IL_3349: Unknown result type (might be due to invalid IL or missing references) //IL_335d: Unknown result type (might be due to invalid IL or missing references) //IL_3371: Unknown result type (might be due to invalid IL or missing references) //IL_3376: Unknown result type (might be due to invalid IL or missing references) //IL_337b: Unknown result type (might be due to invalid IL or missing references) //IL_3380: Unknown result type (might be due to invalid IL or missing references) //IL_33c0: Unknown result type (might be due to invalid IL or missing references) //IL_33d4: Unknown result type (might be due to invalid IL or missing references) //IL_33e8: Unknown result type (might be due to invalid IL or missing references) //IL_33ed: Unknown result type (might be due to invalid IL or missing references) //IL_33f2: Unknown result type (might be due to invalid IL or missing references) //IL_33f7: Unknown result type (might be due to invalid IL or missing references) //IL_3437: Unknown result type (might be due to invalid IL or missing references) //IL_344b: Unknown result type (might be due to invalid IL or missing references) //IL_345f: Unknown result type (might be due to invalid IL or missing references) //IL_3464: Unknown result type (might be due to invalid IL or missing references) //IL_3469: Unknown result type (might be due to invalid IL or missing references) //IL_346e: Unknown result type (might be due to invalid IL or missing references) //IL_34ae: Unknown result type (might be due to invalid IL or missing references) //IL_34c2: Unknown result type (might be due to invalid IL or missing references) //IL_34d6: Unknown result type (might be due to invalid IL or missing references) //IL_34db: Unknown result type (might be due to invalid IL or missing references) //IL_34e0: Unknown result type (might be due to invalid IL or missing references) //IL_34e5: Unknown result type (might be due to invalid IL or missing references) //IL_3525: Unknown result type (might be due to invalid IL or missing references) //IL_3539: Unknown result type (might be due to invalid IL or missing references) //IL_354d: Unknown result type (might be due to invalid IL or missing references) //IL_3552: Unknown result type (might be due to invalid IL or missing references) //IL_3557: Unknown result type (might be due to invalid IL or missing references) //IL_355c: Unknown result type (might be due to invalid IL or missing references) //IL_359c: Unknown result type (might be due to invalid IL or missing references) //IL_35b0: Unknown result type (might be due to invalid IL or missing references) //IL_35c4: Unknown result type (might be due to invalid IL or missing references) //IL_35c9: Unknown result type (might be due to invalid IL or missing references) //IL_35ce: Unknown result type (might be due to invalid IL or missing references) //IL_35d3: Unknown result type (might be due to invalid IL or missing references) //IL_3613: Unknown result type (might be due to invalid IL or missing references) //IL_3627: Unknown result type (might be due to invalid IL or missing references) //IL_363b: Unknown result type (might be due to invalid IL or missing references) //IL_3640: Unknown result type (might be due to invalid IL or missing references) //IL_3645: Unknown result type (might be due to invalid IL or missing references) //IL_364a: Unknown result type (might be due to invalid IL or missing references) //IL_368a: Unknown result type (might be due to invalid IL or missing references) //IL_369e: Unknown result type (might be due to invalid IL or missing references) //IL_36b2: Unknown result type (might be due to invalid IL or missing references) //IL_36b7: Unknown result type (might be due to invalid IL or missing references) //IL_36bc: Unknown result type (might be due to invalid IL or missing references) //IL_36c1: Unknown result type (might be due to invalid IL or missing references) //IL_3701: Unknown result type (might be due to invalid IL or missing references) //IL_3715: Unknown result type (might be due to invalid IL or missing references) //IL_3729: Unknown result type (might be due to invalid IL or missing references) //IL_372e: Unknown result type (might be due to invalid IL or missing references) //IL_3733: Unknown result type (might be due to invalid IL or missing references) //IL_3738: Unknown result type (might be due to invalid IL or missing references) //IL_3778: Unknown result type (might be due to invalid IL or missing references) //IL_378c: Unknown result type (might be due to invalid IL or missing references) //IL_37a0: Unknown result type (might be due to invalid IL or missing references) //IL_37a5: Unknown result type (might be due to invalid IL or missing references) //IL_37aa: Unknown result type (might be due to invalid IL or missing references) //IL_37af: Unknown result type (might be due to invalid IL or missing references) //IL_37ef: Unknown result type (might be due to invalid IL or missing references) //IL_3803: Unknown result type (might be due to invalid IL or missing references) //IL_3817: Unknown result type (might be due to invalid IL or missing references) //IL_381c: Unknown result type (might be due to invalid IL or missing references) //IL_3821: Unknown result type (might be due to invalid IL or missing references) //IL_3826: Unknown result type (might be due to invalid IL or missing references) //IL_3866: Unknown result type (might be due to invalid IL or missing references) //IL_387a: Unknown result type (might be due to invalid IL or missing references) //IL_388e: Unknown result type (might be due to invalid IL or missing references) //IL_3893: Unknown result type (might be due to invalid IL or missing references) //IL_3898: Unknown result type (might be due to invalid IL or missing references) //IL_389d: Unknown result type (might be due to invalid IL or missing references) //IL_38dd: Unknown result type (might be due to invalid IL or missing references) //IL_38f1: Unknown result type (might be due to invalid IL or missing references) //IL_3905: Unknown result type (might be due to invalid IL or missing references) //IL_390a: Unknown result type (might be due to invalid IL or missing references) //IL_390f: Unknown result type (might be due to invalid IL or missing references) //IL_3914: Unknown result type (might be due to invalid IL or missing references) //IL_3954: Unknown result type (might be due to invalid IL or missing references) //IL_3968: Unknown result type (might be due to invalid IL or missing references) //IL_397c: Unknown result type (might be due to invalid IL or missing references) //IL_3981: Unknown result type (might be due to invalid IL or missing references) //IL_3986: Unknown result type (might be due to invalid IL or missing references) //IL_398b: Unknown result type (might be due to invalid IL or missing references) //IL_39cb: Unknown result type (might be due to invalid IL or missing references) //IL_39df: Unknown result type (might be due to invalid IL or missing references) //IL_39f3: Unknown result type (might be due to invalid IL or missing references) //IL_39f8: Unknown result type (might be due to invalid IL or missing references) //IL_39fd: Unknown result type (might be due to invalid IL or missing references) //IL_3a02: Unknown result type (might be due to invalid IL or missing references) //IL_3a42: Unknown result type (might be due to invalid IL or missing references) //IL_3a56: Unknown result type (might be due to invalid IL or missing references) //IL_3a6a: Unknown result type (might be due to invalid IL or missing references) //IL_3a6f: Unknown result type (might be due to invalid IL or missing references) //IL_3a74: Unknown result type (might be due to invalid IL or missing references) //IL_3a79: Unknown result type (might be due to invalid IL or missing references) //IL_3ab9: Unknown result type (might be due to invalid IL or missing references) //IL_3acd: Unknown result type (might be due to invalid IL or missing references) //IL_3ae1: Unknown result type (might be due to invalid IL or missing references) //IL_3ae6: Unknown result type (might be due to invalid IL or missing references) //IL_3aeb: Unknown result type (might be due to invalid IL or missing references) //IL_3b10: Unknown result type (might be due to invalid IL or missing references) //IL_3b24: Unknown result type (might be due to invalid IL or missing references) //IL_3b38: Unknown result type (might be due to invalid IL or missing references) //IL_3b3d: Unknown result type (might be due to invalid IL or missing references) //IL_3b42: Unknown result type (might be due to invalid IL or missing references) //IL_3b67: Unknown result type (might be due to invalid IL or missing references) //IL_3b7b: Unknown result type (might be due to invalid IL or missing references) //IL_3b8f: Unknown result type (might be due to invalid IL or missing references) //IL_3b94: Unknown result type (might be due to invalid IL or missing references) //IL_3b99: Unknown result type (might be due to invalid IL or missing references) //IL_3bbe: Unknown result type (might be due to invalid IL or missing references) //IL_3bd2: Unknown result type (might be due to invalid IL or missing references) //IL_3be6: Unknown result type (might be due to invalid IL or missing references) //IL_3beb: Unknown result type (might be due to invalid IL or missing references) //IL_3bf0: Unknown result type (might be due to invalid IL or missing references) //IL_3c15: Unknown result type (might be due to invalid IL or missing references) //IL_3c29: Unknown result type (might be due to invalid IL or missing references) //IL_3c3d: Unknown result type (might be due to invalid IL or missing references) //IL_3c42: Unknown result type (might be due to invalid IL or missing references) //IL_3c47: Unknown result type (might be due to invalid IL or missing references) //IL_3c6c: Unknown result type (might be due to invalid IL or missing references) //IL_3c80: Unknown result type (might be due to invalid IL or missing references) //IL_3c94: Unknown result type (might be due to invalid IL or missing references) //IL_3c99: Unknown result type (might be due to invalid IL or missing references) //IL_3c9e: Unknown result type (might be due to invalid IL or missing references) //IL_3ca3: Unknown result type (might be due to invalid IL or missing references) //IL_3ce3: Unknown result type (might be due to invalid IL or missing references) //IL_3cf7: Unknown result type (might be due to invalid IL or missing references) //IL_3d0b: Unknown result type (might be due to invalid IL or missing references) //IL_3d10: Unknown result type (might be due to invalid IL or missing references) //IL_3d15: Unknown result type (might be due to invalid IL or missing references) //IL_3d1a: Unknown result type (might be due to invalid IL or missing references) //IL_3d5a: Unknown result type (might be due to invalid IL or missing references) //IL_3d6e: Unknown result type (might be due to invalid IL or missing references) //IL_3d82: Unknown result type (might be due to invalid IL or missing references) //IL_3d87: Unknown result type (might be due to invalid IL or missing references) //IL_3d8c: Unknown result type (might be due to invalid IL or missing references) //IL_3d91: Unknown result type (might be due to invalid IL or missing references) //IL_3dd1: Unknown result type (might be due to invalid IL or missing references) //IL_3de5: Unknown result type (might be due to invalid IL or missing references) //IL_3df9: Unknown result type (might be due to invalid IL or missing references) //IL_3dfe: Unknown result type (might be due to invalid IL or missing references) //IL_3e03: Unknown result type (might be due to invalid IL or missing references) //IL_3e08: Unknown result type (might be due to invalid IL or missing references) //IL_3e48: Unknown result type (might be due to invalid IL or missing references) //IL_3e5c: Unknown result type (might be due to invalid IL or missing references) //IL_3e70: Unknown result type (might be due to invalid IL or missing references) //IL_3e75: Unknown result type (might be due to invalid IL or missing references) //IL_3e7a: Unknown result type (might be due to invalid IL or missing references) //IL_3e9f: Unknown result type (might be due to invalid IL or missing references) //IL_3eb3: Unknown result type (might be due to invalid IL or missing references) //IL_3ec7: Unknown result type (might be due to invalid IL or missing references) //IL_3ecc: Unknown result type (might be due to invalid IL or missing references) //IL_3ed1: Unknown result type (might be due to invalid IL or missing references) //IL_3ed6: Unknown result type (might be due to invalid IL or missing references) //IL_3f16: Unknown result type (might be due to invalid IL or missing references) //IL_3f2a: Unknown result type (might be due to invalid IL or missing references) //IL_3f3e: Unknown result type (might be due to invalid IL or missing references) //IL_3f43: Unknown result type (might be due to invalid IL or missing references) //IL_3f48: Unknown result type (might be due to invalid IL or missing references) //IL_3f4d: Unknown result type (might be due to invalid IL or missing references) //IL_3f8d: Unknown result type (might be due to invalid IL or missing references) //IL_3fa1: Unknown result type (might be due to invalid IL or missing references) //IL_3fb5: Unknown result type (might be due to invalid IL or missing references) //IL_3fba: Unknown result type (might be due to invalid IL or missing references) //IL_3fbf: Unknown result type (might be due to invalid IL or missing references) //IL_3fc4: Unknown result type (might be due to invalid IL or missing references) //IL_4004: Unknown result type (might be due to invalid IL or missing references) //IL_4018: Unknown result type (might be due to invalid IL or missing references) //IL_402c: Unknown result type (might be due to invalid IL or missing references) //IL_4031: Unknown result type (might be due to invalid IL or missing references) //IL_4036: Unknown result type (might be due to invalid IL or missing references) //IL_403b: Unknown result type (might be due to invalid IL or missing references) //IL_407b: Unknown result type (might be due to invalid IL or missing references) //IL_408f: Unknown result type (might be due to invalid IL or missing references) //IL_40a3: Unknown result type (might be due to invalid IL or missing references) //IL_40a8: Unknown result type (might be due to invalid IL or missing references) //IL_40ad: Unknown result type (might be due to invalid IL or missing references) //IL_40b2: Unknown result type (might be due to invalid IL or missing references) //IL_40f2: Unknown result type (might be due to invalid IL or missing references) //IL_4106: Unknown result type (might be due to invalid IL or missing references) //IL_411a: Unknown result type (might be due to invalid IL or missing references) //IL_411f: Unknown result type (might be due to invalid IL or missing references) //IL_4124: Unknown result type (might be due to invalid IL or missing references) //IL_4129: Unknown result type (might be due to invalid IL or missing references) //IL_4169: Unknown result type (might be due to invalid IL or missing references) //IL_417d: Unknown result type (might be due to invalid IL or missing references) //IL_4191: Unknown result type (might be due to invalid IL or missing references) //IL_4196: Unknown result type (might be due to invalid IL or missing references) //IL_419b: Unknown result type (might be due to invalid IL or missing references) //IL_41c0: Unknown result type (might be due to invalid IL or missing references) //IL_41d4: Unknown result type (might be due to invalid IL or missing references) //IL_41e8: Unknown result type (might be due to invalid IL or missing references) //IL_41ed: Unknown result type (might be due to invalid IL or missing references) //IL_41f2: Unknown result type (might be due to invalid IL or missing references) //IL_41f7: Unknown result type (might be due to invalid IL or missing references) //IL_4237: Unknown result type (might be due to invalid IL or missing references) //IL_424b: Unknown result type (might be due to invalid IL or missing references) //IL_425f: Unknown result type (might be due to invalid IL or missing references) //IL_4264: Unknown result type (might be due to invalid IL or missing references) //IL_4269: Unknown result type (might be due to invalid IL or missing references) //IL_426e: Unknown result type (might be due to invalid IL or missing references) //IL_42ae: Unknown result type (might be due to invalid IL or missing references) //IL_42c2: Unknown result type (might be due to invalid IL or missing references) //IL_42d6: Unknown result type (might be due to invalid IL or missing references) //IL_42db: Unknown result type (might be due to invalid IL or missing references) //IL_42e0: Unknown result type (might be due to invalid IL or missing references) //IL_42e5: Unknown result type (might be due to invalid IL or missing references) //IL_4325: Unknown result type (might be due to invalid IL or missing references) //IL_4339: Unknown result type (might be due to invalid IL or missing references) //IL_434d: Unknown result type (might be due to invalid IL or missing references) //IL_4352: Unknown result type (might be due to invalid IL or missing references) //IL_4357: Unknown result type (might be due to invalid IL or missing references) //IL_435c: Unknown result type (might be due to invalid IL or missing references) //IL_439c: Unknown result type (might be due to invalid IL or missing references) //IL_43b0: Unknown result type (might be due to invalid IL or missing references) //IL_43c4: Unknown result type (might be due to invalid IL or missing references) //IL_43c9: Unknown result type (might be due to invalid IL or missing references) //IL_43ce: Unknown result type (might be due to invalid IL or missing references) //IL_43d3: Unknown result type (might be due to invalid IL or missing references) //IL_4413: Unknown result type (might be due to invalid IL or missing references) //IL_4427: Unknown result type (might be due to invalid IL or missing references) //IL_443b: Unknown result type (might be due to invalid IL or missing references) //IL_4440: Unknown result type (might be due to invalid IL or missing references) //IL_4445: Unknown result type (might be due to invalid IL or missing references) //IL_444a: Unknown result type (might be due to invalid IL or missing references) //IL_448a: Unknown result type (might be due to invalid IL or missing references) //IL_449e: Unknown result type (might be due to invalid IL or missing references) //IL_44b2: Unknown result type (might be due to invalid IL or missing references) //IL_44b7: Unknown result type (might be due to invalid IL or missing references) //IL_44bc: Unknown result type (might be due to invalid IL or missing references) //IL_44c1: Unknown result type (might be due to invalid IL or missing references) //IL_4501: Unknown result type (might be due to invalid IL or missing references) //IL_4515: Unknown result type (might be due to invalid IL or missing references) //IL_4529: Unknown result type (might be due to invalid IL or missing references) //IL_452e: Unknown result type (might be due to invalid IL or missing references) //IL_4533: Unknown result type (might be due to invalid IL or missing references) //IL_4538: Unknown result type (might be due to invalid IL or missing references) //IL_4578: Unknown result type (might be due to invalid IL or missing references) //IL_458c: Unknown result type (might be due to invalid IL or missing references) //IL_45a0: Unknown result type (might be due to invalid IL or missing references) //IL_45a5: Unknown result type (might be due to invalid IL or missing references) //IL_45aa: Unknown result type (might be due to invalid IL or missing references) //IL_45af: Unknown result type (might be due to invalid IL or missing references) //IL_45ef: Unknown result type (might be due to invalid IL or missing references) //IL_4603: Unknown result type (might be due to invalid IL or missing references) //IL_4617: Unknown result type (might be due to invalid IL or missing references) //IL_461c: Unknown result type (might be due to invalid IL or missing references) //IL_4621: Unknown result type (might be due to invalid IL or missing references) //IL_4626: Unknown result type (might be due to invalid IL or missing references) //IL_4666: Unknown result type (might be due to invalid IL or missing references) //IL_467a: Unknown result type (might be due to invalid IL or missing references) //IL_468e: Unknown result type (might be due to invalid IL or missing references) //IL_4693: Unknown result type (might be due to invalid IL or missing references) //IL_4698: Unknown result type (might be due to invalid IL or missing references) //IL_46bd: Unknown result type (might be due to invalid IL or missing references) //IL_46d1: Unknown result type (might be due to invalid IL or missing references) //IL_46e5: Unknown result type (might be due to invalid IL or missing references) //IL_46ea: Unknown result type (might be due to invalid IL or missing references) //IL_46ef: Unknown result type (might be due to invalid IL or missing references) //IL_46f4: Unknown result type (might be due to invalid IL or missing references) //IL_4734: Unknown result type (might be due to invalid IL or missing references) //IL_4748: Unknown result type (might be due to invalid IL or missing references) //IL_475c: Unknown result type (might be due to invalid IL or missing references) //IL_4761: Unknown result type (might be due to invalid IL or missing references) //IL_4766: Unknown result type (might be due to invalid IL or missing references) //IL_476b: Unknown result type (might be due to invalid IL or missing references) //IL_47ab: Unknown result type (might be due to invalid IL or missing references) //IL_47bf: Unknown result type (might be due to invalid IL or missing references) //IL_47d3: Unknown result type (might be due to invalid IL or missing references) //IL_47d8: Unknown result type (might be due to invalid IL or missing references) //IL_47dd: Unknown result type (might be due to invalid IL or missing references) //IL_47e2: Unknown result type (might be due to invalid IL or missing references) //IL_4822: Unknown result type (might be due to invalid IL or missing references) //IL_4836: Unknown result type (might be due to invalid IL or missing references) //IL_484a: Unknown result type (might be due to invalid IL or missing references) //IL_484f: Unknown result type (might be due to invalid IL or missing references) //IL_4854: Unknown result type (might be due to invalid IL or missing references) //IL_4879: Unknown result type (might be due to invalid IL or missing references) //IL_488d: Unknown result type (might be due to invalid IL or missing references) //IL_48a1: Unknown result type (might be due to invalid IL or missing references) //IL_48a6: Unknown result type (might be due to invalid IL or missing references) //IL_48ab: Unknown result type (might be due to invalid IL or missing references) //IL_48b0: Unknown result type (might be due to invalid IL or missing references) //IL_48f0: Unknown result type (might be due to invalid IL or missing references) //IL_4904: Unknown result type (might be due to invalid IL or missing references) //IL_4918: Unknown result type (might be due to invalid IL or missing references) //IL_491d: Unknown result type (might be due to invalid IL or missing references) //IL_4922: Unknown result type (might be due to invalid IL or missing references) //IL_4927: Unknown result type (might be due to invalid IL or missing references) //IL_4967: Unknown result type (might be due to invalid IL or missing references) //IL_497b: Unknown result type (might be due to invalid IL or missing references) //IL_498f: Unknown result type (might be due to invalid IL or missing references) //IL_4994: Unknown result type (might be due to invalid IL or missing references) //IL_4999: Unknown result type (might be due to invalid IL or missing references) //IL_499e: Unknown result type (might be due to invalid IL or missing references) //IL_49de: Unknown result type (might be due to invalid IL or missing references) //IL_49f2: Unknown result type (might be due to invalid IL or missing references) //IL_4a06: Unknown result type (might be due to invalid IL or missing references) //IL_4a0b: Unknown result type (might be due to invalid IL or missing references) //IL_4a10: Unknown result type (might be due to invalid IL or missing references) //IL_4a15: Unknown result type (might be due to invalid IL or missing references) //IL_4a55: Unknown result type (might be due to invalid IL or missing references) //IL_4a69: Unknown result type (might be due to invalid IL or missing references) //IL_4a7d: Unknown result type (might be due to invalid IL or missing references) //IL_4a82: Unknown result type (might be due to invalid IL or missing references) //IL_4a87: Unknown result type (might be due to invalid IL or missing references) //IL_4a8c: Unknown result type (might be due to invalid IL or missing references) //IL_4acc: Unknown result type (might be due to invalid IL or missing references) //IL_4ae0: Unknown result type (might be due to invalid IL or missing references) //IL_4af4: Unknown result type (might be due to invalid IL or missing references) //IL_4af9: Unknown result type (might be due to invalid IL or missing references) //IL_4afe: Unknown result type (might be due to invalid IL or missing references) //IL_4b03: Unknown result type (might be due to invalid IL or missing references) //IL_4b43: Unknown result type (might be due to invalid IL or missing references) //IL_4b57: Unknown result type (might be due to invalid IL or missing references) //IL_4b6b: Unknown result type (might be due to invalid IL or missing references) //IL_4b70: Unknown result type (might be due to invalid IL or missing references) //IL_4b75: Unknown result type (might be due to invalid IL or missing references) //IL_4b7a: Unknown result type (might be due to invalid IL or missing references) //IL_4bba: Unknown result type (might be due to invalid IL or missing references) //IL_4bce: Unknown result type (might be due to invalid IL or missing references) //IL_4be2: Unknown result type (might be due to invalid IL or missing references) //IL_4be7: Unknown result type (might be due to invalid IL or missing references) //IL_4bec: Unknown result type (might be due to invalid IL or missing references) //IL_4bf1: Unknown result type (might be due to invalid IL or missing references) //IL_4c31: Unknown result type (might be due to invalid IL or missing references) //IL_4c45: Unknown result type (might be due to invalid IL or missing references) //IL_4c59: Unknown result type (might be due to invalid IL or missing references) //IL_4c5e: Unknown result type (might be due to invalid IL or missing references) //IL_4c63: Unknown result type (might be due to invalid IL or missing references) //IL_4c68: Unknown result type (might be due to invalid IL or missing references) //IL_4ca8: Unknown result type (might be due to invalid IL or missing references) //IL_4cbc: Unknown result type (might be due to invalid IL or missing references) //IL_4cd0: Unknown result type (might be due to invalid IL or missing references) //IL_4cd5: Unknown result type (might be due to invalid IL or missing references) //IL_4cda: Unknown result type (might be due to invalid IL or missing references) //IL_4cdf: Unknown result type (might be due to invalid IL or missing references) //IL_4d1f: Unknown result type (might be due to invalid IL or missing references) //IL_4d33: Unknown result type (might be due to invalid IL or missing references) //IL_4d47: Unknown result type (might be due to invalid IL or missing references) //IL_4d4c: Unknown result type (might be due to invalid IL or missing references) //IL_4d51: Unknown result type (might be due to invalid IL or missing references) //IL_4d56: Unknown result type (might be due to invalid IL or missing references) //IL_4d96: Unknown result type (might be due to invalid IL or missing references) //IL_4daa: Unknown result type (might be due to invalid IL or missing references) //IL_4dbe: Unknown result type (might be due to invalid IL or missing references) //IL_4dc3: Unknown result type (might be due to invalid IL or missing references) //IL_4dc8: Unknown result type (might be due to invalid IL or missing references) //IL_4dcd: Unknown result type (might be due to invalid IL or missing references) //IL_4e0d: Unknown result type (might be due to invalid IL or missing references) //IL_4e21: Unknown result type (might be due to invalid IL or missing references) //IL_4e35: Unknown result type (might be due to invalid IL or missing references) //IL_4e3a: Unknown result type (might be due to invalid IL or missing references) //IL_4e3f: Unknown result type (might be due to invalid IL or missing references) //IL_4e44: Unknown result type (might be due to invalid IL or missing references) //IL_4e84: Unknown result type (might be due to invalid IL or missing references) //IL_4e98: Unknown result type (might be due to invalid IL or missing references) //IL_4eac: Unknown result type (might be due to invalid IL or missing references) //IL_4eb1: Unknown result type (might be due to invalid IL or missing references) //IL_4eb6: Unknown result type (might be due to invalid IL or missing references) //IL_4ebe: Unknown result type (might be due to invalid IL or missing references) //IL_4ec3: Unknown result type (might be due to invalid IL or missing references) //IL_4ec8: Unknown result type (might be due to invalid IL or missing references) //IL_4f08: Unknown result type (might be due to invalid IL or missing references) //IL_4f1c: Unknown result type (might be due to invalid IL or missing references) //IL_4f30: Unknown result type (might be due to invalid IL or missing references) //IL_4f35: Unknown result type (might be due to invalid IL or missing references) //IL_4f3a: Unknown result type (might be due to invalid IL or missing references) //IL_4f3f: Unknown result type (might be due to invalid IL or missing references) //IL_4f7f: Unknown result type (might be due to invalid IL or missing references) //IL_4f93: Unknown result type (might be due to invalid IL or missing references) //IL_4fa7: Unknown result type (might be due to invalid IL or missing references) //IL_4fac: Unknown result type (might be due to invalid IL or missing references) //IL_4fb1: Unknown result type (might be due to invalid IL or missing references) //IL_4fb6: Unknown result type (might be due to invalid IL or missing references) //IL_4ff6: Unknown result type (might be due to invalid IL or missing references) //IL_500a: Unknown result type (might be due to invalid IL or missing references) //IL_501e: Unknown result type (might be due to invalid IL or missing references) //IL_5023: Unknown result type (might be due to invalid IL or missing references) //IL_5028: Unknown result type (might be due to invalid IL or missing references) //IL_502d: Unknown result type (might be due to invalid IL or missing references) //IL_506d: Unknown result type (might be due to invalid IL or missing references) //IL_5081: Unknown result type (might be due to invalid IL or missing references) //IL_5095: Unknown result type (might be due to invalid IL or missing references) //IL_509a: Unknown result type (might be due to invalid IL or missing references) //IL_509f: Unknown result type (might be due to invalid IL or missing references) //IL_50a4: Unknown result type (might be due to invalid IL or missing references) //IL_50e4: Unknown result type (might be due to invalid IL or missing references) //IL_50f8: Unknown result type (might be due to invalid IL or missing references) //IL_510c: Unknown result type (might be due to invalid IL or missing references) //IL_5111: Unknown result type (might be due to invalid IL or missing references) //IL_5116: Unknown result type (might be due to invalid IL or missing references) //IL_511b: Unknown result type (might be due to invalid IL or missing references) //IL_515b: Unknown result type (might be due to invalid IL or missing references) //IL_516f: Unknown result type (might be due to invalid IL or missing references) //IL_5183: Unknown result type (might be due to invalid IL or missing references) //IL_5188: Unknown result type (might be due to invalid IL or missing references) //IL_518d: Unknown result type (might be due to invalid IL or missing references) //IL_5192: Unknown result type (might be due to invalid IL or missing references) //IL_51d2: Unknown result type (might be due to invalid IL or missing references) //IL_51e6: Unknown result type (might be due to invalid IL or missing references) //IL_51fa: Unknown result type (might be due to invalid IL or missing references) //IL_51ff: Unknown result type (might be due to invalid IL or missing references) //IL_5204: Unknown result type (might be due to invalid IL or missing references) //IL_5209: Unknown result type (might be due to invalid IL or missing references) //IL_5249: Unknown result type (might be due to invalid IL or missing references) //IL_525d: Unknown result type (might be due to invalid IL or missing references) //IL_5271: Unknown result type (might be due to invalid IL or missing references) //IL_5276: Unknown result type (might be due to invalid IL or missing references) //IL_527b: Unknown result type (might be due to invalid IL or missing references) //IL_5280: Unknown result type (might be due to invalid IL or missing references) //IL_52c0: Unknown result type (might be due to invalid IL or missing references) //IL_52d4: Unknown result type (might be due to invalid IL or missing references) //IL_52e8: Unknown result type (might be due to invalid IL or missing references) //IL_52ed: Unknown result type (might be due to invalid IL or missing references) //IL_52f2: Unknown result type (might be due to invalid IL or missing references) //IL_52f7: Unknown result type (might be due to invalid IL or missing references) //IL_5337: Unknown result type (might be due to invalid IL or missing references) //IL_534b: Unknown result type (might be due to invalid IL or missing references) //IL_535f: Unknown result type (might be due to invalid IL or missing references) //IL_5364: Unknown result type (might be due to invalid IL or missing references) //IL_5369: Unknown result type (might be due to invalid IL or missing references) //IL_536e: Unknown result type (might be due to invalid IL or missing references) //IL_53ae: Unknown result type (might be due to invalid IL or missing references) //IL_53c2: Unknown result type (might be due to invalid IL or missing references) //IL_53d6: Unknown result type (might be due to invalid IL or missing references) //IL_53db: Unknown result type (might be due to invalid IL or missing references) //IL_53e0: Unknown result type (might be due to invalid IL or missing references) //IL_53e5: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AlienHead"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAlienHead"), "holster_R", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.25f, 0.25f, 0.25f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorPlate"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRepulsionArmorPlate"), "arm_lower_L", new Vector3(0.07786f, 0.02671f, -0.03404f), new Vector3(341.7617f, 79.15611f, 89.45441f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorReductionOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarhammer"), "muzzle_fx", new Vector3(-0.00298f, 0.03948f, -103f / (256f * MathF.PI)), new Vector3(0f, 0f, 0f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedAndMoveSpeed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCoffee"), "holster_R", new Vector3(-0.00657f, 0.01018f, -0.08261f), new Vector3(294.8458f, 297.619f, 59.61792f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWolfPelt"), "head", new Vector3(-0.06469f, 0.02196f, -0.00048f), new Vector3(278.0534f, 123.7497f, 328.4673f), new Vector3(0.15f, 0.15f, 0.15f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AutoCastEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFossil"), "hose_bottom_L_backpack", new Vector3(0.02737f, 0.01053f, 0.0003f), new Vector3(0f, 0f, 0f), new Vector3(0.15f, 0.15f, 0.15f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bandolier"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBandolier"), "spine_0", new Vector3(-0.03224f, 0.0014f, -0.01155f), new Vector3(7.51391f, 89.34017f, 358.2686f), new Vector3(0.15f, 0.15f, 0.15f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrooch"), "head", new Vector3(-0.04926f, 0.02771f, 0.03738f), new Vector3(327.935f, 99.49787f, 71.19076f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnOverHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAegis"), "hose_top_L_backpack", new Vector3(0.08906f, -0.03639f, -0.06474f), new Vector3(272.3694f, 20.37603f, 166.9705f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bear"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBear"), "spine_0", new Vector3(-0.03659f, -0.0565f, 0.02475f), new Vector3(66.38976f, 28.23592f, 145.5759f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BearVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBearVoid"), "spine_0", new Vector3(-0.03627f, -0.04949f, 0.02054f), new Vector3(72.84084f, 350.3373f, 102.5561f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BeetleGland"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeetleGland"), "leg_upper_L", new Vector3(-0.05611f, -0.02144f, 0.04524f), new Vector3(9.72868f, 17.47297f, 9.78885f), new Vector3(0.03f, 0.03f, 0.03f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Behemoth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBehemoth"), "muzzle_fx_L", new Vector3(0.00132f, 0.04185f, -0.1672f), new Vector3(275.8697f, 101.2675f, 77.74464f), new Vector3(0.02f, 0.02f, 0.02f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTip"), "hand_end_R", new Vector3(0.00807f, 0.0161f, -0.01975f), new Vector3(70.65269f, 10.94216f, 353.4622f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitAndExplode"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBleedOnHitAndExplode"), "muzzle_fx", new Vector3(-0.00367f, -0.00756f, -0.05961f), new Vector3(73.10957f, 278.1606f, 280.0579f), new Vector3(0.02f, 0.02f, 0.02f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTipVoid"), "hand_end_R", new Vector3(0.00583f, 0.01787f, -0.01988f), new Vector3(332.4929f, 88.72228f, 337.808f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BonusGoldPackOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTome"), "holster_R", new Vector3(-0.01979f, 0.07516f, -0.0675f), new Vector3(33.28046f, 290.121f, 285.6278f), new Vector3(0.03f, 0.03f, 0.03f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAPRound"), "pelvis", new Vector3(-0.03715f, 0.01394f, -0.06415f), new Vector3(83.52102f, 246.8973f, 228.8618f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BounceNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHook"), "hose_top_L_backpack", new Vector3(0.04139f, -0.01356f, -0.03206f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkulele"), "leg_upper_R", new Vector3(0.04007f, 0.0023f, -0.05417f), new Vector3(4.46741f, 185.8217f, 273.219f), new Vector3(0.2f, 0.2f, 0.2f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightningVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkuleleVoid"), "leg_upper_R", new Vector3(0.04581f, 0.00511f, -0.05102f), new Vector3(5.8348f, 182.5532f, 272.4825f), new Vector3(0.2f, 0.2f, 0.2f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Clover"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayClover"), "ankle_L", new Vector3(0.01946f, 0.05111f, -0.01097f), new Vector3(331.956f, 106.0336f, 273.3563f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CloverVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCloverVoid"), "ankle_L", new Vector3(0.02478f, 0.05204f, -0.01533f), new Vector3(333.0838f, 103.369f, 284.41f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CooldownOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkull"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserSight"), "muzzle_fx", new Vector3(-0.00189f, 0.02931f, -0.12613f), new Vector3(358.8726f, 92.22443f, 358.2593f), new Vector3(0.03f, 0.03f, 0.03f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlasses"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlasses"), "head", new Vector3(-0.02561f, 0.05857f, 0.00028f), new Vector3(273.0843f, 347.8993f, 102.1708f), new Vector3(0.075f, 0.075f, 0.075f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlassesVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlassesVoid"), "head", new Vector3(-0.02561f, 0.05857f, 0.00028f), new Vector3(273.0843f, 347.8993f, 102.1708f), new Vector3(0.075f, 0.075f, 0.075f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Crowbar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCrowbar"), "ankle_R", new Vector3(0.00876f, -0.14929f, -0.01225f), new Vector3(353.9146f, 109.5649f, 186.9544f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Dagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDagger"), "hose_bottom_L_backpack", new Vector3(0.16674f, 0.00473f, 0.00787f), new Vector3(318.9673f, 17.59953f, 34.03011f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathMark"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathMark"), "holster_L", new Vector3(0.01543f, 0.03071f, -0.05997f), new Vector3(336.9822f, 172.1505f, 66.89196f), new Vector3(0.01f, 0.01f, 0.01f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElementalRingVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVoidRing"), "arm_lower_L", new Vector3(-0.08518f, -0.00277f, -0.00499f), new Vector3(3.01696f, 283.146f, 4.17459f), new Vector3(0.2f, 0.2f, 0.2f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EmpowerAlways"], ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)1), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHeadNeck"), "hose_top_L_backpack", new Vector3(0.09162f, 0.00563f, -0.02847f), new Vector3(349.1635f, 46.2957f, 4.40622f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHead"), "hose_top_L_backpack", new Vector3(0.09085f, 0.02809f, -0.03396f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EnergizedOnEquipmentUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarHorn"), "clavicle_R", new Vector3(0.03707f, -0.00155f, 0.0378f), new Vector3(7.66134f, 159.5437f, 204.1759f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBattery"), "hose_bottom_R_backpack", new Vector3(-0.09591f, 0.07397f, 0.01276f), new Vector3(358.7219f, 267.561f, 355.5751f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazineVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFuelCellVoid"), "hose_bottom_R_backpack", new Vector3(-0.09591f, 0.07397f, 0.01276f), new Vector3(358.7219f, 267.561f, 355.5751f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExecuteLowHealthElite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGuillotine"), "muzzle_fx_L", new Vector3(0.00055f, -0.04006f, -0.04783f), new Vector3(1.40819f, 178.3671f, 274.4026f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeath"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWilloWisp"), "hose_bottom_L_backpack", new Vector3(0.05884f, -0.03804f, 0.0017f), new Vector3(346.2039f, 5.66698f, 0.09677f), new Vector3(0.01f, 0.01f, 0.01f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeathVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWillowWispVoid"), "hose_bottom_L_backpack", new Vector3(0.05884f, -0.03804f, 0.0017f), new Vector3(346.2039f, 5.66698f, 0.09677f), new Vector3(0.01f, 0.01f, 0.01f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLife"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippo"), "leg_upper_L", new Vector3(-0.03059f, 0.01011f, 0.04377f), new Vector3(339.066f, 350.835f, 235.6656f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLifeVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippoVoid"), "leg_upper_L", new Vector3(-0.03059f, 0.01011f, 0.04377f), new Vector3(339.066f, 350.835f, 235.6656f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FallBoots"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "ankle_L", new Vector3(0.00436f, 0.01503f, -0.00151f), new Vector3(2.84819f, 357.7122f, 348.8335f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "ankle_R", new Vector3(0.00236f, -0.03067f, 0.00388f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Feather"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFeather"), "ankle_R", new Vector3(-0.0121f, -0.17117f, -0.04316f), new Vector3(303.3547f, 73.78224f, 47.73962f), new Vector3(0.01f, 0.01f, 0.01f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireballsOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireballsOnHit"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireRing"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Firework"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFirework"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FlatHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySteakCurved"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FocusConvergence"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFocusedConvergence"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FragileDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDelicateWatch"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FreeChest"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShippingRequestForm"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GhostOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMask"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBoneCrown"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHurt"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRollOfPennies"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfAttackSpeedHalfCooldowns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderNature"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfSpeedDoubleHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderStone"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HeadHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkullcrown"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealingPotion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHealingPotion"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScythe"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealWhileSafe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySnail"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Hoof"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHoof"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)8))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IceRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIceRing"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Icicle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFrostRelic"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IgniteOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasoline"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ImmuneToDebuff"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRainCoatBelt"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreaseHealing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Incubator"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAncestralIncubator"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Infusion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInfusion"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["JumpBoost"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaxBird"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["KillEliteFrenzy"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrainstalk"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Knurl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKnurl"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LaserTurbine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserTurbine"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LightningStrikeOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayChargedPerforator"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarDagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarDagger"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPrimaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdEye"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSecondaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdClaw"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSpecialReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdHeart"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarTrinket"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeads"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarUtilityReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdFoot"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Medkit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMedkit"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MinorConstructOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDefenseNucleus"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Missile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncher"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MissileVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncherVoid"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MonstersOnShrineUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMonstersOnShrineUse"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoreMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayICBM"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoveSpeedOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGrappleHook"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Mushroom"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroom"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MushroomVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroomVoid"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NearbyDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDiamond"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJellyGuts"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["OutOfCombatArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOddlyShapedOpal"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ParentEgg"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayParentEgg"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Pearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPearl"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PermanentDebuffOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScorpion"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PersonalShield"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldGenerator"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Phasing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStealthkit"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Plant"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInterstellarDeskPlant"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PrimarySkillShuriken"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShuriken"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomDamageZone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRandomDamageZone"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomEquipmentTrigger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBottledChaos"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomlyLunar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDomino"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RegeneratingScrap"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRegeneratingScrap"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RepeatHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCorpseflower"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SecondarySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDoubleMag"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Seed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySeed"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShieldOnly"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShinyPearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShinyPearl"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShockNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeslaCoil"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SiphonOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySiphonOnLowHealth"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBauble"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBaubleVoid"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBuckler"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySoda"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintOutOfCombat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWhip"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintWisp"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrokenMask"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Squid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySquidTurret"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StickyBomb"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStickyBomb"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StrengthenBurn"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasTank"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StunChanceOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStunGrenade"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Syringe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySyringeCluster"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Talisman"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTalisman"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Thorns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRazorwireLeft"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TitanGoldDuringTP"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldHeart"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tooth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothNecklaceDecal"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshLarge"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TPHealingNova"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlowFlower"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCache"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKey"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCacheVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKeyVoid"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["UtilitySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VoidMegaCrabItem"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMegaCrabItem"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WarCryOnMultiKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPauldron"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WardOnLevel"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarbanner"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BFG"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBFG"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Blackhole"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravCube"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornGhost"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBlunderbuss"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunterConsumed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornUsed"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BurnNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPotion"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Cleanse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaterPack"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CommandMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileRack"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CrippleWard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEffigy"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayNeuralImplant"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathProjectile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathProjectile"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DroneBackup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRadio"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteEarthEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteMendingAntlers"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteFireEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteHauntedEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteStealthCrown"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteIceEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteIceCrown"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLightningEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLunarEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteLunar,Eye"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElitePoisonEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteUrchinCrown"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteVoidEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAffixVoid"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireBallDash"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEgg"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Fruit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFruit"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GainArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElephantFigure"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Gateway"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVase"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldGat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldGat"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GummyClone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGummyClone"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IrradiatingLaser"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIrradiatingLaser"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Jetpack"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBugWings"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LifestealOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLifestealOnHit"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Lightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLightningArmRight"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)2))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPortalOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarPortalOnUse"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Meteor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMeteor"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Molotov"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMolotov"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MultiShopCard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayExecutiveCard"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["QuestVolatileBattery"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBatteryArray"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Recycle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRecycler"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Saw"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySawmerangFollower"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Scanner"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScanner"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TeamWarCry"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeamWarCry"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tonic"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTonic"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VendingMachine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVendingMachine"), "pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); } } public static class HazeStates { public static void Init() { HazeMod.Modules.Content.AddEntityState(typeof(PrimaryWeapon)); HazeMod.Modules.Content.AddEntityState(typeof(SleepDagger)); HazeMod.Modules.Content.AddEntityState(typeof(SmokeBomb)); HazeMod.Modules.Content.AddEntityState(typeof(BulletDance)); } } public static class HazeStaticValues { public const float PrimaryBulletsPerSecond = 9.52f; public const float BulletDanceBulletsPerSecond = 9.52f; public const int MaxBulletDanceTargets = 2; public const float BulletDanceRadius = 25f; public const int MaximumFixationStacks = 80; public const float PrimaryWeaponDamageCoefficient = 0.25f; public const float FixationStackDamageCoefficient = 0.05f; public const float SleepDaggerDamageCoefficient = 9f; public const float BulletDanceDamageCoefficient = 0.25f; public const float PrimaryWeaponDuration = 0.10504201f; public const float FixationDuration = 6f; public const float SleepDuration = 3f; public const float SmokeBombDuration = 20f; public const float SmokeBombLifestealDuration = 2f; public const float SleepDaggerCooldown = 9f; public const float SmokeBombCooldown = 25f; public const float BulletDanceCooldown = 40f; } public static class HazeTokens { public static void Init() { Language.printingEnabled = true; AddHazeTokens(); Language.PrintOutput("Haze.txt"); } public static void AddHazeTokens() { string text = "PERL_HAZE_"; string text2 = "Haze is an assassin who focuses on single target damage." + Environment.NewLine + Environment.NewLine + "< ! > Fixation adds a stack damage bonus to enemies allowing for massive single target damage." + Environment.NewLine + Environment.NewLine + "< ! > A high rate of fire and agile primary weapon allows maximum mobility whilst in combat." + Environment.NewLine + Environment.NewLine + "< ! > Sleep Dagger can be used to disable opponents while you stack fixation on them." + Environment.NewLine + Environment.NewLine + "< ! > Smoke Bomb grants mobility while traversing the stage and allow more aggresive engagements with lifesteal on exit." + Environment.NewLine + Environment.NewLine + "< ! > Bullet Dance is your last restort when single target just isnt enough to survive." + Environment.NewLine + Environment.NewLine; string text3 = "..and so she left, assigned to another mission."; string text4 = "..and so she vanished, to walk another dream."; Language.Add(text + "NAME", "Haze"); Language.Add(text + "DESCRIPTION", text2); Language.Add(text + "SUBTITLE", "The Sandman"); Language.Add(text + "LORE", "[Redacted]"); Language.Add(text + "OUTRO_FLAVOR", text3); Language.Add(text + "OUTRO_FAILURE", text4); Language.Add(text + "MASTERY_SKIN_NAME", "Alternate"); Language.Add(text + "PASSIVE_NAME", "Fixation"); Language.Add(text + "PASSIVE_DESCRIPTION", "Hitting an enemy with your weapon adds a stack of Fixation up to 80 stacks. Your weapon deals " + Tokens.DamageText($"{5f}% additional damage") + " per stack of Fixation."); Language.Add(text + "PRIMARY_WEAPON_NAME", "Censure & Penance"); Language.Add(text + "PRIMARY_WEAPON_DESCRIPTION", "Agile. Rapidly fire both guns for " + Tokens.DamageValueText(0.25f) + "."); Language.Add(text + "SLEEP_DAGGER_NAME", "Sleep Dagger"); Language.Add(text + "SLEEP_DAGGER_DESCRIPTION", "Agile. Throw a dagger dealing " + Tokens.DamageValueText(9f) + " and applying " + Tokens.UtilityText("Sleep") + "."); Language.Add(text + "SMOKE_BOMB_NAME", "Smoke Bomb"); Language.Add(text + "SMOKE_BOMB_DESCRIPTION", string.Format("{0} in a cloud of smoke gaining increased movement speed. Using any ability will reveal you. Upon reveal you gain {1} for {2} seconds.", Tokens.UtilityText("Vanish"), Tokens.HealingText("Lifesteal"), 2f)); Language.Add(text + "SPECIAL_BULLETDANCE_NAME", "Bullet Dance"); Language.Add(text + "SPECIAL_BULLETDANCE_DESCRIPTION", "Enter a flurry, firing your weapons for " + Tokens.DamageValueText(0.25f) + "."); Language.Add(text + "KEYWORD_SLEEP", Tokens.KeywordText("Sleep", "Disables all abilities and locks movement. Damaging a sleeping target for more than " + Tokens.DamageValueText(100f) + " will cause them to wake up.") ?? ""); Language.Add(text + "KEYWORD_LIFESTEAL", Tokens.KeywordText("Lifesteal", Tokens.HealingText("Heal") + " for " + Tokens.HealingText("10%") + " of ALL damage you deal.") ?? ""); Language.Add(Tokens.GetAchievementNameToken("PERL_HAZE_masteryAchievement"), "Haze: Mastery"); Language.Add(Tokens.GetAchievementDescriptionToken("PERL_HAZE_masteryAchievement"), "As Haze, beat the game or obliterate on Monsoon."); } } public static class HazeUnlockables { public static UnlockableDef characterUnlockableDef; public static UnlockableDef masterySkinUnlockableDef; public static void Init() { masterySkinUnlockableDef = HazeMod.Modules.Content.CreateAndAddUnlockbleDef("PERL_HAZE_masteryUnlockable", Tokens.GetAchievementNameToken("PERL_HAZE_masteryAchievement"), CharacterBase.instance.assetBundle.LoadAsset("texMasteryAchievement")); } } } namespace HazeMod.Characters.Survivors.Haze.Components { internal class HazeWeaponComponent : MonoBehaviour { private void Awake() { } } } namespace HazeMod.Characters.Survivors.Haze.Achievements { [RegisterAchievement("PERL_HAZE_masteryAchievement", "PERL_HAZE_masteryUnlockable", null, 10u, null)] public class HazeMasteryAchievement : BaseMasteryAchievement { public const string identifier = "PERL_HAZE_masteryAchievement"; public const string unlockableIdentifier = "PERL_HAZE_masteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3f; } }