Decompiled source of Crocs Item Mod v1.1.3
CrocsItems.dll
Decompiled 4 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; 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 System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using CrocsItems.Equipment; using CrocsItems.Interactables; using CrocsItems.Items; using CrocsItems.Items.Reds; using HG.Reflection; using HarmonyLib; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using RoR2; using RoR2.Navigation; using RoR2.Networking; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("CrocsItems")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+881857d5abe866cc02f41ffd993223764f12f9fb")] [assembly: AssemblyProduct("CrocsItems")] [assembly: AssemblyTitle("CrocsItems")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace CrocsItems { [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] public class ConfigFieldAttribute : SearchableAttribute { public string name; public string desc; public object defaultValue; public ConfigFieldAttribute(string name, string desc, object defaultValue) { this.name = name; this.desc = desc; this.defaultValue = defaultValue; } } [AttributeUsage(AttributeTargets.Class)] public class ConfigSectionAttribute : Attribute { public string name; public ConfigSectionAttribute(string name) { this.name = name; } } public class ConfigManager { internal static bool ConfigChanged; internal static bool VersionChanged; public static void HandleConfigAttributes(Assembly assembly, ConfigFile config) { //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Expected O, but got Unknown //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Expected O, but got Unknown //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Expected O, but got Unknown Type[] types = assembly.GetTypes(); foreach (Type type in types) { TypeInfo typeInfo = type.GetTypeInfo(); ConfigSectionAttribute customAttribute = typeInfo.GetCustomAttribute<ConfigSectionAttribute>(); if (customAttribute == null) { continue; } FieldInfo[] fields = typeInfo.GetFields(); foreach (FieldInfo fieldInfo in fields) { if (!fieldInfo.IsStatic) { continue; } Type fieldType = fieldInfo.FieldType; ConfigFieldAttribute customAttribute2 = ((MemberInfo)fieldInfo).GetCustomAttribute<ConfigFieldAttribute>(); if (customAttribute2 != null) { MethodInfo methodInfo = (from x in typeof(ConfigFile).GetMethods() where x.Name == "Bind" select x).First(); methodInfo = methodInfo.MakeGenericMethod(fieldType); ConfigEntryBase val = (ConfigEntryBase)methodInfo.Invoke(config, new object[3] { (object)new ConfigDefinition(customAttribute.name, customAttribute2.name), customAttribute2.defaultValue, (object)new ConfigDescription(customAttribute2.desc, (AcceptableValueBase)null, Array.Empty<object>()) }); ConfigEntryBase val2 = (ConfigEntryBase)methodInfo.Invoke(Main.backupConfig, new object[3] { (object)new ConfigDefinition(Regex.Replace(config.ConfigFilePath, "\\W", "") + " : " + customAttribute.name, customAttribute2.name), val.DefaultValue, (object)new ConfigDescription(customAttribute2.desc, (AcceptableValueBase)null, Array.Empty<object>()) }); if (!ConfigEqual(val2.DefaultValue, val2.BoxedValue) && VersionChanged) { val.BoxedValue = val.DefaultValue; val2.BoxedValue = val2.DefaultValue; } if (!ConfigEqual(val.DefaultValue, val.BoxedValue)) { ConfigChanged = true; } fieldInfo.SetValue(null, val.BoxedValue); } } } } private static bool ConfigEqual(object a, object b) { if (a.Equals(b)) { return true; } if (float.TryParse(a.ToString(), out var result) && float.TryParse(b.ToString(), out var result2) && (double)Mathf.Abs(result - result2) < 0.0001) { return true; } return false; } } [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] internal sealed class AutoRunAttribute : Attribute { } internal sealed class AutoRunCollector { public static void HandleAutoRun() { Type[] types = Assembly.GetExecutingAssembly().GetTypes(); List<Type> list = types.ToList(); list.RemoveAll(asdf); types = list.ToArray(); Type[] array = types; foreach (Type type in array) { if (!type.FullName.Contains("CustomEmotesAPI")) { continue; } TypeInfo typeInfo = type.GetTypeInfo(); MethodInfo[] methods = typeInfo.GetMethods((BindingFlags)(-1)); foreach (MethodInfo methodInfo in methods) { AutoRunAttribute customAttribute = methodInfo.GetCustomAttribute<AutoRunAttribute>(); if (customAttribute != null && methodInfo.IsStatic) { methodInfo.Invoke(null, null); } } } } private static bool asdf(Type s) { return s.FullName.Contains("CustomEmotesAPI"); } } public class JibbitzDropBehavior { [CompilerGenerated] private static class <>O { public static hook_BaseItemDrop <0>__OnChestItemDrop; } public static List<PickupDropTable> acceptableDropTables = new List<PickupDropTable>(); public static void Init() { //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_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0066: 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_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown object obj = <>O.<0>__OnChestItemDrop; if (obj == null) { hook_BaseItemDrop val = OnChestItemDrop; <>O.<0>__OnChestItemDrop = val; obj = (object)val; } ChestBehavior.BaseItemDrop += (hook_BaseItemDrop)obj; acceptableDropTables.Add((PickupDropTable)(object)Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"944f7e92dae9bac4d96e05635dcff090").WaitForCompletion()); acceptableDropTables.Add((PickupDropTable)(object)Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"7a61dd0f9e87dab4d9828371f75bf253").WaitForCompletion()); acceptableDropTables.Add((PickupDropTable)(object)Addressables.LoadAssetAsync<BasicPickupDropTable>((object)"abd505260a23e9b449202c055554b77b").WaitForCompletion()); } private static void OnChestItemDrop(orig_BaseItemDrop orig, ChestBehavior self) { //IL_00c2: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0145: 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) orig.Invoke(self); if (!NetworkServer.active || !Util.CheckRoll(10f, 0f, (CharacterMaster)null) || !acceptableDropTables.Contains(self.dropTable)) { return; } bool flag = false; for (int i = 0; i < CharacterBody.readOnlyInstancesList.Count; i++) { CharacterBody body = CharacterBody.readOnlyInstancesList[i]; if (Main.HasAnyCrocs(body) || Main.HasAnyCrocsEquipment(body)) { flag = true; break; } } if (Object.op_Implicit((Object)(object)Run.instance) && flag) { ItemDef val = Main.jibbitzList[Run.instance.stageRng.RangeInt(0, Main.jibbitzList.Count)]; PickupIndex pickupIndex = PickupCatalog.FindPickupIndex(val.itemIndex); Vector3 val2 = self.dropTransform.position + Vector3.up * 1.5f; Vector3 val3 = Vector3.up * self.dropUpVelocityStrength + self.dropTransform.forward * self.dropForwardVelocityStrength; CreatePickupInfo val4 = default(CreatePickupInfo); val4.rotation = Quaternion.identity; ((CreatePickupInfo)(ref val4)).pickupIndex = pickupIndex; val4.position = val2; PickupDropletController.CreatePickupDroplet(val4, val2, val3); } } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("HIFU.CrocsItems", "CrocsItems", "1.1.0")] public class Main : BaseUnityPlugin { public const string PluginGUID = "HIFU.CrocsItems"; public const string PluginAuthor = "HIFU"; public const string PluginName = "CrocsItems"; public const string PluginVersion = "1.1.0"; public static ManualLogSource ModLogger; public static AssetBundle bundle; public static Main Instance; public static ConfigFile config; public static ConfigFile backupConfig; public static Texture2D texRampTritone; public static Texture2D texRampTritone2; public static List<ItemDef> jibbitzList = new List<ItemDef>(); public static List<EquipmentDef> jibbitzListEquipment = new List<EquipmentDef>(); public static List<ItemDef> crocsList = new List<ItemDef>(); public static List<EquipmentDef> crocsListEquipment = new List<EquipmentDef>(); public static ConfigEntry<bool> enableLogging { get; set; } public ConfigEntry<bool> enableAutoConfig { get; private set; } public ConfigEntry<string> latestVersion { get; private set; } public void Awake() { Instance = this; ModLogger = ((BaseUnityPlugin)this).Logger; SetUpConfig(); SetUpAssets(); SetUpContent(); } public void SetUpConfig() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; backupConfig = new ConfigFile(Paths.ConfigPath + "\\com.HIFU.CrocsItems.Backup.cfg", true); backupConfig.Bind<string>(": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :"); enableAutoConfig = config.Bind<bool>("Config", "Enable Auto Config Sync", true, "Disabling this would stop CrocsItems from syncing config whenever a new version is found."); bool flag = !((Dictionary<ConfigDefinition, string>)AccessTools.DeclaredPropertyGetter(typeof(ConfigFile), "OrphanedEntries").Invoke(config, null)).Keys.Any((ConfigDefinition x) => x.Key == "Latest Version"); latestVersion = config.Bind<string>("Config", "Latest Version", "1.1.0", "DO NOT CHANGE THIS"); if (enableAutoConfig.Value && (flag || latestVersion.Value != "1.1.0")) { latestVersion.Value = "1.1.0"; ConfigManager.VersionChanged = true; ModLogger.LogInfo((object)"Config Autosync Enabled."); } AutoRunCollector.HandleAutoRun(); ConfigManager.HandleConfigAttributes(Assembly.GetExecutingAssembly(), ((BaseUnityPlugin)this).Config); } public void SetUpAssets() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) Shader shader = Addressables.LoadAssetAsync<Shader>((object)"48dca5b99d113b8d11006bab44295342").WaitForCompletion(); bundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)Instance).Info.Location), "crocsitems")); Material[] array = bundle.LoadAllAssets<Material>(); Material[] array2 = array; foreach (Material val in array2) { string name = ((Object)val.shader).name; string text = name; if (text == "StubbedRoR2/Base/Shaders/HGStandard") { val.shader = shader; } } } public void SetUpContent() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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) texRampTritone = Addressables.LoadAssetAsync<Texture2D>((object)"c2d2c5f1046510242bc50084ffaefe55").WaitForCompletion(); texRampTritone2 = Addressables.LoadAssetAsync<Texture2D>((object)"b2ddb2fde000ae84d957416e656c6d67").WaitForCompletion(); IEnumerable<Type> enumerable = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(EquipmentBase)) select type; foreach (Type item in enumerable) { EquipmentBase equipmentBase = (EquipmentBase)Activator.CreateInstance(item); if (LoadEquipment(equipmentBase)) { equipmentBase.Init(); } } IEnumerable<Type> enumerable2 = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(ItemBase)) select type; foreach (Type item2 in enumerable2) { ItemBase itemBase = (ItemBase)Activator.CreateInstance(item2); if (LoadItem(itemBase)) { itemBase.Init(); } } ScanTypes(delegate(InteractableBase x) { if (LoadInteractable(x)) { x.Init(); } }); JibbitzDropBehavior.Init(); } public bool LoadEquipment(EquipmentBase equipment) { return EquipmentBase.DefaultEnabledCallback(equipment); } public bool LoadItem(ItemBase item) { return ItemBase.DefaultEnabledCallback(item); } public bool LoadInteractable(InteractableBase interactable) { return InteractableBase.DefaultEnabledCallback(interactable); } internal static void ScanTypes<T>(Action<T> action) { IEnumerable<Type> enumerable = from x in Assembly.GetExecutingAssembly().GetTypes() where !x.IsAbstract && x.IsSubclassOf(typeof(T)) select x; foreach (Type item in enumerable) { T obj = (T)Activator.CreateInstance(item); action(obj); } } public bool HasAnyJibbit(CharacterBody body) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) bool result = false; Inventory inventory = body.inventory; if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)inventory)) { return result; } for (int i = 0; i < jibbitzList.Count; i++) { ItemDef val = jibbitzList[i]; if (inventory.GetItemCount(val.itemIndex) > 0) { result = true; break; } } return result; } public static bool HasAnyCrocs(CharacterBody body) { //IL_003e: Unknown result type (might be due to invalid IL or missing references) bool result = false; Inventory inventory = body.inventory; if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)inventory)) { return result; } for (int i = 0; i < crocsList.Count; i++) { ItemDef val = crocsList[i]; if (inventory.GetItemCount(val.itemIndex) > 0) { result = true; break; } } return result; } public static bool HasAnyCrocsEquipment(CharacterBody body) { //IL_003d: 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) bool result = false; EquipmentSlot equipmentSlot = body.equipmentSlot; if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)equipmentSlot)) { return result; } for (int i = 0; i < crocsListEquipment.Count; i++) { EquipmentDef val = crocsListEquipment[i]; if (val.equipmentIndex == equipmentSlot.equipmentIndex) { result = true; break; } } return result; } } public class VFXUtils { public static void RecolorMaterialsAndLights(GameObject gameObject, Color32 primaryColor, Color32 emissionAndLightColor, bool convertRampsToGrayscale, bool emissionColorToPrimaryColor = false) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: 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_002a: Unknown result type (might be due to invalid IL or missing references) RecolorMaterialsAndLightsInternal(gameObject, primaryColor, emissionAndLightColor, convertRampsToGrayscale, emissionColorToPrimaryColor); Transform[] componentsInChildren = ((Component)gameObject.transform).GetComponentsInChildren<Transform>(); foreach (Transform val in componentsInChildren) { RecolorMaterialsAndLightsInternal(((Component)val).gameObject, primaryColor, emissionAndLightColor, convertRampsToGrayscale, emissionColorToPrimaryColor); } } private static void RecolorMaterialsAndLightsInternal(GameObject gameObject, Color32 primaryColor, Color32 emissionAndLightColor, bool convertRampsToGrayscale, bool emissionColorToPrimaryColor = false) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: 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_0030: 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_003d: 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_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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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) //IL_00ad: 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_00cc: 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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0254: 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_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: 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) ParticleSystem[] components = gameObject.GetComponents<ParticleSystem>(); foreach (ParticleSystem val in components) { MainModule main = val.main; MinMaxGradient startColor = ((MainModule)(ref main)).startColor; ((MinMaxGradient)(ref startColor)).mode = (ParticleSystemGradientMode)0; ((MinMaxGradient)(ref startColor)).color = Color32.op_Implicit(primaryColor); ColorOverLifetimeModule colorOverLifetime = val.colorOverLifetime; MinMaxGradient color = ((ColorOverLifetimeModule)(ref colorOverLifetime)).color; if (((MinMaxGradient)(ref color)).gradient != null) { color = ((ColorOverLifetimeModule)(ref colorOverLifetime)).color; if (((MinMaxGradient)(ref color)).gradient.colorKeys.Length != 0) { GradientColorKey[] array = (GradientColorKey[])(object)new GradientColorKey[2] { new GradientColorKey(Color.white, 0f), new GradientColorKey(Color.white, 1f) }; GradientAlphaKey[] array2 = (GradientAlphaKey[])(object)new GradientAlphaKey[2]; array2[0] = new GradientAlphaKey(1f, 0f); array2[0] = new GradientAlphaKey(0f, 1f); color = ((ColorOverLifetimeModule)(ref colorOverLifetime)).color; ((MinMaxGradient)(ref color)).gradient.SetKeys(array, array2); } } } Renderer[] components2 = gameObject.GetComponents<Renderer>(); foreach (Renderer val2 in components2) { Material[] materials = val2.materials; foreach (Material val3 in materials) { switch (((Object)val3.shader).name) { case "Hopoo Games/FX/Cloud Remap": case "Hopoo Games/FX/Opaque Cloud Remap": case "Hopoo Games/FX/Cloud Intersection Remap": val3.SetColor("_TintColor", Color32.op_Implicit(primaryColor)); val3.SetColor("_EmissionColor", Color32.op_Implicit(emissionColorToPrimaryColor ? primaryColor : emissionAndLightColor)); if (convertRampsToGrayscale) { val3.SetTexture("_RemapTex", (Texture)(object)Main.texRampTritone); } break; case "Hopoo Games/Deferred/Standard": val3.SetColor("_Color", Color32.op_Implicit(primaryColor)); val3.SetColor("_EmColor", Color32.op_Implicit(emissionColorToPrimaryColor ? primaryColor : emissionAndLightColor)); break; } } } LineRenderer[] components3 = gameObject.GetComponents<LineRenderer>(); foreach (LineRenderer val4 in components3) { val4.startColor = Color32.op_Implicit(primaryColor); val4.endColor = Color32.op_Implicit(emissionAndLightColor); } Light[] components4 = gameObject.GetComponents<Light>(); foreach (Light val5 in components4) { val5.color = Color32.op_Implicit(emissionAndLightColor); } } public static void MultiplyDuration(GameObject gameObject, float durationMultiplier, float maximumDuration = -999f) { MultiplyDurationInternal(gameObject, durationMultiplier, maximumDuration); Transform[] componentsInChildren = ((Component)gameObject.transform).GetComponentsInChildren<Transform>(); foreach (Transform val in componentsInChildren) { MultiplyDurationInternal(((Component)val).gameObject, durationMultiplier, maximumDuration); } } private static void MultiplyDurationInternal(GameObject gameObject, float durationMultiplier, float maximumDuration = -999f) { //IL_0013: 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_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Invalid comparison between Unknown and I4 ParticleSystem[] components = gameObject.GetComponents<ParticleSystem>(); foreach (ParticleSystem val in components) { MainModule main = val.main; MinMaxCurve startLifetime = ((MainModule)(ref main)).startLifetime; float num = ((MinMaxCurve)(ref startLifetime)).constant; if ((int)((MinMaxCurve)(ref startLifetime)).mode == 3) { num = (((MinMaxCurve)(ref startLifetime)).constantMin + ((MinMaxCurve)(ref startLifetime)).constantMax) / 2f; } ((MinMaxCurve)(ref startLifetime)).mode = (ParticleSystemCurveMode)0; ((MinMaxCurve)(ref startLifetime)).constant = num * durationMultiplier; } DestroyOnTimer[] components2 = gameObject.GetComponents<DestroyOnTimer>(); foreach (DestroyOnTimer val2 in components2) { val2.duration *= durationMultiplier; } AnimateShaderAlpha[] components3 = gameObject.GetComponents<AnimateShaderAlpha>(); foreach (AnimateShaderAlpha val3 in components3) { val3.timeMax *= durationMultiplier; if ((Object)(object)((Component)val3).GetComponent<DestroyOnTimer>() != (Object)null) { val3.timeMax = Mathf.Min(val3.timeMax, ((Component)val3).GetComponent<DestroyOnTimer>().duration); } if (maximumDuration > 0f) { val3.timeMax = Mathf.Min(val3.timeMax, maximumDuration); } } PostProcessDuration[] components4 = gameObject.GetComponents<PostProcessDuration>(); foreach (PostProcessDuration val4 in components4) { val4.maxDuration *= durationMultiplier; } ObjectScaleCurve[] components5 = gameObject.GetComponents<ObjectScaleCurve>(); foreach (ObjectScaleCurve val5 in components5) { val5.timeMax *= durationMultiplier; } AnimateUIAlpha[] components6 = gameObject.GetComponents<AnimateUIAlpha>(); foreach (AnimateUIAlpha val6 in components6) { val6.timeMax *= durationMultiplier; } AnimateImageAlpha[] components7 = gameObject.GetComponents<AnimateImageAlpha>(); foreach (AnimateImageAlpha val7 in components7) { val7.timeMax *= durationMultiplier; } LightIntensityCurve[] components8 = gameObject.GetComponents<LightIntensityCurve>(); foreach (LightIntensityCurve val8 in components8) { val8.timeMax *= durationMultiplier; } } public static Light AddLight(GameObject gameObject, Color32 color, float intensity, float range, float fadeOutTime) { //IL_0011: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: 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_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_0079: Expected O, but got Unknown Light val = gameObject.AddComponent<Light>(); val.type = (LightType)2; val.color = Color32.op_Implicit(color); val.intensity = intensity; val.range = range; LightIntensityCurve val2 = gameObject.AddComponent<LightIntensityCurve>(); val2.timeMax = fadeOutTime; val2.curve = new AnimationCurve((Keyframe[])(object)new Keyframe[2] { new Keyframe(0f, 1f), new Keyframe(1f, 0f) }); val2.light = val; return val; } public static Light AddLight(GameObject gameObject, Color32 color, float intensity, float range) { //IL_0011: 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) Light val = gameObject.AddComponent<Light>(); val.type = (LightType)2; val.color = Color32.op_Implicit(color); val.intensity = intensity; val.range = range; return val; } public static void ScaleToHierarchy(GameObject gameObject) { ScaleToHierarchyInternal(gameObject); Transform[] componentsInChildren = ((Component)gameObject.transform).GetComponentsInChildren<Transform>(); foreach (Transform val in componentsInChildren) { ScaleToHierarchyInternal(((Component)val).gameObject); } } private static void ScaleToHierarchyInternal(GameObject gameObject) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) ParticleSystem component = gameObject.GetComponent<ParticleSystem>(); if (Object.op_Implicit((Object)(object)component)) { MainModule main = component.main; ((MainModule)(ref main)).scalingMode = (ParticleSystemScalingMode)0; } } } } namespace CrocsItems.Items { public abstract class ItemBase<T> : ItemBase where T : ItemBase<T> { public static T instance { get; private set; } public ItemBase() { if (instance != null) { throw new InvalidOperationException("Singleton class \"" + typeof(T).Name + "\" inherting ItemBase was instantiated twice"); } instance = this as T; } } public abstract class ItemBase { public ItemDef ItemDef; public abstract string ItemName { get; } public abstract string ItemLangTokenName { get; } public abstract string ItemPickupDesc { get; } public abstract string ItemFullDescription { get; } public abstract string ItemLore { get; } public abstract ItemTier Tier { get; } public abstract ItemTag[] ItemTags { get; } public abstract GameObject ItemModel { get; } public abstract Sprite ItemIcon { get; } public abstract bool IsCroc { get; } public virtual bool CanRemove { get; } = true; public virtual bool IsJibbit { get; } = false; public virtual float modelPanelParametersMinDistance { get; } = 2f; public virtual float modelPanelParametersMaxDistance { get; } = 6f; public static bool DefaultEnabledCallback(ItemBase self) { ConfigSectionAttribute customAttribute = self.GetType().GetCustomAttribute<ConfigSectionAttribute>(); if (customAttribute != null) { if (Main.config.Bind<bool>(customAttribute.name, "Enabled", true, "Allow this item to appear in runs?").Value) { return true; } return false; } return true; } public virtual void Init() { CreateItem(); Hooks(); } public virtual void Hooks() { } protected void CreateItem() { //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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_01dc: Expected O, but got Unknown ItemDef = ScriptableObject.CreateInstance<ItemDef>(); ((Object)ItemDef).name = "ITEM_CROCSITEMS_" + ItemLangTokenName; ItemDef.nameToken = "ITEM_CROCSITEMS_" + ItemLangTokenName + "_NAME"; ItemDef.pickupToken = "ITEM_CROCSITEMS_" + ItemLangTokenName + "_PICKUP"; ItemDef.descriptionToken = "ITEM_CROCSITEMS_" + ItemLangTokenName + "_DESCRIPTION"; ItemDef.loreToken = "ITEM_CROCSITEMS_" + ItemLangTokenName + "_LORE"; ItemDef.pickupModelPrefab = ItemModel ?? null; ItemDef.pickupIconSprite = ItemIcon ?? null; ItemDef.hidden = false; ItemDef.canRemove = CanRemove; ItemDef.deprecatedTier = Tier; if (ItemTags.Length != 0) { ItemDef.tags = ItemTags; } LanguageAPI.Add("ITEM_CROCSITEMS_" + ItemLangTokenName + "_NAME", ItemName); LanguageAPI.Add("ITEM_CROCSITEMS_" + ItemLangTokenName + "_PICKUP", ItemPickupDesc); LanguageAPI.Add("ITEM_CROCSITEMS_" + ItemLangTokenName + "_DESCRIPTION", ItemFullDescription); LanguageAPI.Add("ITEM_CROCSITEMS_" + ItemLangTokenName + "_LORE", ItemLore); if ((Object)(object)ItemModel != (Object)null) { CreateModelPanelParameters(ItemModel); } ItemAPI.Add(new CustomItem(ItemDef, CreateItemDisplayRules())); if (IsJibbit) { Main.jibbitzList.Add(ItemDef); } if (IsCroc) { Main.crocsList.Add(ItemDef); } } private void CreateModelPanelParameters(GameObject itemModel) { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Expected O, but got Unknown //IL_007d: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_0103: 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) if (!((Object)(object)itemModel.GetComponent<ModelPanelParameters>() != (Object)null)) { GameObject val = PrefabAPI.InstantiateClone(itemModel, ((Object)itemModel).name + "-fixed", false); GameObject val2 = new GameObject("Focus"); GameObject val3 = new GameObject("Camera"); MeshRenderer val4 = val.GetComponentsInChildren<MeshRenderer>().ToList().OrderByDescending(delegate(MeshRenderer x) { //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_0009: Unknown result type (might be due to invalid IL or missing references) Bounds bounds2 = ((Renderer)x).bounds; return ToFloat(((Bounds)(ref bounds2)).size); }) .First(); Bounds bounds = ((Renderer)val4).bounds; float num = ToFloat(((Bounds)(ref bounds)).size) / 3f; float minDistance = num; float num2 = 3f * num; val2.transform.parent = val.transform; val3.transform.parent = val.transform; Transform transform = val2.transform; bounds = ((Renderer)val4).bounds; transform.position = ((Bounds)(ref bounds)).center; val3.transform.localPosition = val2.transform.position + val.transform.forward * num2; ModelPanelParameters val5 = val.AddComponent<ModelPanelParameters>(); val5.focusPointTransform = val2.transform; val5.cameraPositionTransform = val3.transform; val5.minDistance = minDistance; val5.maxDistance = num2; ItemDef.pickupModelPrefab = val; } } public static float ToFloat(Vector3 vec) { //IL_0003: 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) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0037: 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_0044: Unknown result type (might be due to invalid IL or missing references) vec.x = Mathf.Abs(vec.x); vec.y = Mathf.Abs(vec.y); vec.z = Mathf.Abs(vec.z); return vec.x + vec.y + vec.z; } public int GetCount(CharacterBody body) { if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)body.inventory)) { return 0; } return body.inventory.GetItemCount(ItemDef); } public string GetConfName() { ConfigSectionAttribute customAttribute = GetType().GetCustomAttribute<ConfigSectionAttribute>(); if (customAttribute != null) { return customAttribute.name; } return "Items :: " + ItemName; } public abstract ItemDisplayRuleDict CreateItemDisplayRules(); } } namespace CrocsItems.Items.Reds { [ConfigSection("Items :: Crocs Echo Wave")] public class CrocsEchoWave : ItemBase<CrocsEchoWave> { public static BuffDef speedBuff; public static GameObject passiveParticles; public static GameObject impactParticles; public static GameObject impactExplosion; public override string ItemName => "Crocs Echo Wave"; public override string ItemLangTokenName => "CROCS_ECHO_WAVE"; public override string ItemPickupDesc => "Sprinting builds up movement speed that can be discharged for massive impact damage."; public override string ItemFullDescription => "Sprinting builds up to <style=cIsUtility>100% movement speed</style>. <style=cIsDamage>Ramming</style> into an enemy while sprinting deals up to <style=cIsDamage>3000%</style> <style=cStack>(+3000% per stack)</style> <style=cIsDamage>damage</style> based on movement speed."; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)2; public override ItemTag[] ItemTags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override GameObject ItemModel => Main.bundle.LoadAsset<GameObject>("CrocsEchoWaveHolder.prefab"); public override Sprite ItemIcon => Main.bundle.LoadAsset<Sprite>("texCrocsEchoWave.png"); public override bool IsCroc => true; public override void Init() { base.Init(); SetUpVFX(); SetUpBuff(); } public void SetUpBuff() { //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) //IL_0046: 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_005a: 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) speedBuff = ScriptableObject.CreateInstance<BuffDef>(); speedBuff.isHidden = false; speedBuff.isDebuff = false; speedBuff.canStack = true; speedBuff.buffColor = Color32.op_Implicit(new Color32((byte)36, (byte)47, (byte)82, byte.MaxValue)); speedBuff.iconSprite = Addressables.LoadAssetAsync<Sprite>((object)"3e432d63b7c55a544a0f383de7b1f474").WaitForCompletion(); speedBuff.flags = (Flags)1; speedBuff.ignoreGrowthNectar = false; speedBuff.isDOT = false; speedBuff.isCooldown = false; ((Object)speedBuff).name = "Crocs Echo Wave Movement Speed - 1% Per"; ContentAddition.AddBuffDef(speedBuff); } public void SetUpVFX() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0080: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: 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_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) passiveParticles = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"56e965f822208a1438744bae84358e1d").WaitForCompletion(), "Crocs Echo Wave Passive Particles VFX", false); passiveParticles.GetComponent<EffectComponent>().applyScale = true; VFXUtils.ScaleToHierarchy(passiveParticles); VFXUtils.RecolorMaterialsAndLights(passiveParticles, Color32.op_Implicit(Color.yellow), Color32.op_Implicit(Color.yellow), convertRampsToGrayscale: true, emissionColorToPrimaryColor: true); Transform val = passiveParticles.transform.Find("Core"); val.localScale = Vector3.one / 12f; val.localPosition = Vector3.zero; Transform val2 = val.Find("Sparks"); ParticleSystem component = ((Component)val2).GetComponent<ParticleSystem>(); MainModule main = component.main; ((MainModule)(ref main)).maxParticles = 200; EmissionModule emission = component.emission; Burst val3 = default(Burst); ((Burst)(ref val3))..ctor(0f, (short)200, (short)200, 1, 0.01f); ((Burst)(ref val3)).probability = 1f; ((EmissionModule)(ref emission)).SetBurst(0, val3); ParticleSystemRenderer component2 = ((Component)val2).GetComponent<ParticleSystemRenderer>(); ((Renderer)component2).material.SetTexture("_MainTex", (Texture)(object)Addressables.LoadAssetAsync<Texture2D>((object)"8d0972db888e4df42814eb4b6178f0e2").WaitForCompletion()); ((Component)val.Find("Smoke, Edge Circle")).gameObject.SetActive(false); ((Component)val.Find("Dust, CenterSphere")).gameObject.SetActive(false); ((Component)val.Find("Dust, CenterTube")).gameObject.SetActive(false); ((Component)val.Find("Point Light")).gameObject.SetActive(false); ContentAddition.AddEffect(passiveParticles); impactParticles = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"56e965f822208a1438744bae84358e1d").WaitForCompletion(), "Crocs Echo Wave Impact Particles VFX", false); impactParticles.GetComponent<EffectComponent>().applyScale = true; VFXUtils.ScaleToHierarchy(impactParticles); VFXUtils.RecolorMaterialsAndLights(impactParticles, Color32.op_Implicit(Color.yellow), Color32.op_Implicit(Color.yellow), convertRampsToGrayscale: true, emissionColorToPrimaryColor: true); Transform val4 = impactParticles.transform.Find("Core"); val4.localScale = Vector3.one / 12f; val4.localPosition = Vector3.zero; Transform val5 = val4.Find("Sparks"); ParticleSystem component3 = ((Component)val5).GetComponent<ParticleSystem>(); MainModule main2 = component3.main; ((MainModule)(ref main2)).maxParticles = 100; EmissionModule emission2 = component3.emission; Burst val6 = default(Burst); ((Burst)(ref val6))..ctor(0f, (short)100, (short)100, 1, 0.01f); ((Burst)(ref val6)).probability = 1f; ((EmissionModule)(ref emission2)).SetBurst(0, val6); ParticleSystemRenderer component4 = ((Component)val5).GetComponent<ParticleSystemRenderer>(); ((Renderer)component4).material.SetTexture("_MainTex", (Texture)(object)Addressables.LoadAssetAsync<Texture2D>((object)"8d0972db888e4df42814eb4b6178f0e2").WaitForCompletion()); ((Component)val4.Find("Dust, CenterSphere")).gameObject.SetActive(false); ((Component)val4.Find("Dust, CenterTube")).gameObject.SetActive(false); Transform val7 = val4.Find("Point Light"); Light component5 = ((Component)val7).GetComponent<Light>(); component5.intensity = 15f; component5.range = 16f; ContentAddition.AddEffect(impactParticles); VFXUtils.MultiplyDuration(impactParticles, 4f); impactExplosion = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"26e8d4483ccf1484b98777af3c44ecbb").WaitForCompletion(), "Crocs Echo Wave Impact VFX", false); EffectComponent component6 = impactExplosion.GetComponent<EffectComponent>(); component6.applyScale = true; component6.soundName = ""; ((Component)impactExplosion.transform.Find("RuneRings")).gameObject.SetActive(false); ((Component)impactExplosion.transform.Find("IceMesh")).GetComponent<ParticleSystemRenderer>().mesh = Addressables.LoadAssetAsync<Mesh>((object)"a66159248c42bad478cf4ce0379ba1ee").WaitForCompletion(); VFXUtils.RecolorMaterialsAndLights(impactExplosion, Color32.op_Implicit(Color.yellow), Color32.op_Implicit(Color.yellow), convertRampsToGrayscale: true); VFXUtils.MultiplyDuration(impactExplosion, 2.5f); VFXUtils.ScaleToHierarchy(impactExplosion); ContentAddition.AddEffect(impactExplosion); } public override void Hooks() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown base.Hooks(); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(CalcSpeedBoost); CharacterBody.onBodyInventoryChangedGlobal += OnInventoryChangedGlobal; } private void OnInventoryChangedGlobal(CharacterBody body) { if (NetworkServer.active) { body.AddItemBehavior<CrocsEchoWaveController>(GetCount(body)); } } private void CalcSpeedBoost(CharacterBody sender, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)sender)) { int buffCount = sender.GetBuffCount(speedBuff); args.moveSpeedMultAdd += (float)buffCount * 0.01f; } } public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_00d5: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Expected O, but got Unknown //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0227: 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_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0272: 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_028d: 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_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Expected O, but got Unknown //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: 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_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Expected O, but got Unknown //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0382: 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_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Expected O, but got Unknown //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Expected O, but got Unknown //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Expected O, but got Unknown //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Expected O, but got Unknown //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0626: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Expected O, but got Unknown //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06ab: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0711: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_0752: Expected O, but got Unknown //IL_0752: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: 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_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Expected O, but got Unknown //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_089a: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Expected O, but got Unknown //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08a6: 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_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f1: Unknown result type (might be due to invalid IL or missing references) //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_0927: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Expected O, but got Unknown //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_094f: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09b0: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d0: Unknown result type (might be due to invalid IL or missing references) //IL_09e0: Unknown result type (might be due to invalid IL or missing references) //IL_09ec: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Expected O, but got Unknown //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_09f8: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a89: Unknown result type (might be due to invalid IL or missing references) //IL_0a95: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: Expected O, but got Unknown //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Main.bundle.LoadAsset<GameObject>("CrocsEchoWaveHolder.prefab"), "CrocsEchoWaveIDRS", false); ItemDisplay val2 = val.AddComponent<ItemDisplay>(); List<Renderer> list = val.GetComponentsInChildren<Renderer>().ToList(); Array.Resize(ref val2.rendererInfos, list.Count); for (int i = 0; i < list.Count; i++) { Renderer val3 = list[i]; Material material = val3.material; val2.rendererInfos[i] = new RendererInfo { renderer = val3, defaultMaterial = material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, hideOnDeath = false, ignoresMaterialOverrides = false }; } ItemDisplayRuleDict val4 = new ItemDisplayRuleDict(Array.Empty<ItemDisplayRule>()); val4.Add("CommandoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.00387f, 0.11857f, 0.01629f), localAngles = new Vector3(84.61184f, 220.3867f, 47.41245f), localScale = new Vector3(0.14531f, 0.14659f, 0.14531f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("HuntressBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.01041f, 0.08162f, -0.00924f), localAngles = new Vector3(85.0407f, 197.8464f, 22.78797f), localScale = new Vector3(0.12683f, 0.11843f, 0.11843f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("Bandit2Body", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.00708f, 0.15599f, -0.01433f), localAngles = new Vector3(56.54497f, 15.6954f, 175.5474f), localScale = new Vector3(0.16627f, 0.16627f, 0.16627f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("ToolbotBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "MainWheelR", localPos = new Vector3(-0.18462f, -0.25801f, 1.3921f), localAngles = new Vector3(35.12162f, 178.6449f, 15.10357f), localScale = new Vector3(2.15099f, 2.15099f, 2.15099f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("EngiBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.00137f, 0.18647f, -0.01936f), localAngles = new Vector3(80.48362f, 131.4032f, 305.733f), localScale = new Vector3(0.26569f, 0.26125f, 0.24179f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("MageBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.0208f, 0.17038f, 0.00367f), localAngles = new Vector3(50.80023f, 10.96024f, 198.6825f), localScale = new Vector3(0.16578f, 0.16718f, 0.16578f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("MercBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(0.00942f, 0.12823f, 0.00514f), localAngles = new Vector3(58.85978f, 356.114f, 183.1814f), localScale = new Vector3(0.15804f, 0.16791f, 0.15804f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("TreebotBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootFrontR", localPos = new Vector3(-0.23328f, 1.42811f, -0.26013f), localAngles = new Vector3(354.3248f, 47.10957f, 177.3136f), localScale = new Vector3(0.43013f, 0.43013f, 0.43013f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("LoaderBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.01876f, 0.17012f, -0.04231f), localAngles = new Vector3(41.75632f, 13.00825f, 191.4296f), localScale = new Vector3(0.20217f, 0.20217f, 0.20217f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("CrocoBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(0.09182f, 0.8062f, -1.41886f), localAngles = new Vector3(15.25191f, 3.42294f, 179.4088f), localScale = new Vector3(2.44813f, 2.00045f, 1.90371f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("CaptainBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(0.00953f, 0.17557f, -0.12688f), localAngles = new Vector3(9.75157f, 0.82062f, 180.4495f), localScale = new Vector3(0.23233f, 0.20145f, 0.20145f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("RailgunnerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(0.00226f, 0.23116f, -0.08208f), localAngles = new Vector3(41.55166f, 2.0483f, 180.5456f), localScale = new Vector3(0.32904f, 0.28836f, 0.29128f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("VoidSurvivorBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(-0.027f, 0.16392f, -0.01953f), localAngles = new Vector3(56.78973f, 79.39018f, 167.5546f), localScale = new Vector3(0.1866f, 0.1866f, 0.1866f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("SeekerBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "FootR", localPos = new Vector3(0.02031f, 0.12695f, 0.00215f), localAngles = new Vector3(54.21278f, 280.0642f, 187.6502f), localScale = new Vector3(0.16319f, 0.16319f, 0.16319f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); val4.Add("ChefBody", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "Wheel", localPos = new Vector3(-0.72718f, -0.28572f, -0.0641f), localAngles = new Vector3(276.9898f, 27.48667f, 240.6015f), localScale = new Vector3(0.26742f, 0.26742f, 0.26742f), followerPrefab = val, limbMask = (LimbFlags)0, followerPrefabAddress = new AssetReferenceGameObject("") } }); return val4; } } public class CrocsEchoWaveController : ItemBehavior { public float timer; public float buffChangeInterval = 0.15f; public int buffCountToChange = 2; public int maxBuffCount = 100; public int minBuffCount = 100; public int buffCountAfterImpact = 25; public int buffCount; public float minImpactDamage = 10f; public float maxImpactDamage = 30f; public OverlapAttack attackerOverlap; public ModelLocator modelLocator; public Transform modelTransform; public GameObject hitBoxObject; public HitBoxGroup hitBoxGroup; public HitBox hitBox; public float collisionDisableTime = 0.5f; public int cachedLayer; public bool successfullyHit = false; public bool addedOverlay = false; public List<HurtBox> lastHitHurtBoxes = new List<HurtBox>(); public TemporaryOverlayInstance temporaryOverlayInstance; public void Start() { //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: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) cachedLayer = ((Component)this).gameObject.layer; modelLocator = ((Component)this).GetComponent<ModelLocator>(); ModelLocator obj = modelLocator; modelTransform = ((obj != null) ? obj.modelTransform : null); if (Object.op_Implicit((Object)(object)modelTransform) && (Object)(object)hitBoxObject == (Object)null) { hitBoxObject = new GameObject("Croc Echo Waves HitBox") { layer = LayerIndex.defaultLayer.intVal }; hitBoxObject.transform.localScale = new Vector3(4f, 8f, 4f); hitBox = hitBoxObject.AddComponent<HitBox>(); hitBoxGroup = hitBoxObject.AddComponent<HitBoxGroup>(); hitBoxGroup.groupName = "CrocEchoWavesHitBox"; hitBoxGroup.hitBoxes = (HitBox[])(object)new HitBox[1] { hitBox }; } } public void FixedUpdate() { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) timer += Time.fixedDeltaTime; if (!(timer >= buffChangeInterval)) { return; } if (base.body.isSprinting) { buffCount += buffCountToChange; buffCount = Mathf.Min(buffCount, maxBuffCount); if (buffCount >= minBuffCount) { CheckImpact(); } } else { buffCount -= buffCountToChange; buffCount = Mathf.Max(0, buffCount); } base.body.SetBuffCount(CrocsEchoWave.speedBuff.buffIndex, buffCount); timer = 0f; } public void CheckImpact() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: 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) //IL_005c: 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_0080: 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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_0098: 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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) float num = 10.150001f; float num2 = Util.Remap(base.body.moveSpeed, num, num * 4f, minImpactDamage * (float)base.stack, maxImpactDamage * (float)base.stack); float num3 = num2; attackerOverlap = new OverlapAttack { attacker = ((Component)this).gameObject, inflictor = ((Component)this).gameObject, teamIndex = TeamComponent.GetObjectTeam(((Component)this).gameObject), damage = base.body.damage * num3, forceVector = Vector3.zero, pushAwayForce = 4000f, attackerFiltering = (AttackerFiltering)2, procCoefficient = 1f, isCrit = base.body.RollCrit(), hitBoxGroup = hitBoxObject.GetComponent<HitBoxGroup>() }; hitBoxObject.transform.forward = base.body.inputBank.moveVector; hitBoxObject.transform.position = modelTransform.position; successfullyHit = attackerOverlap.Fire(lastHitHurtBoxes); if (successfullyHit) { buffCount = buffCountAfterImpact; base.body.SetBuffCount(CrocsEchoWave.speedBuff.buffIndex, buffCountAfterImpact); SpawnVFX(lastHitHurtBoxes); } } public void SpawnVFX(List<HurtBox> lastHitHurtBoxes) { //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Expected O, but got Unknown //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Expected O, but got Unknown //IL_0135: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound("Play_grandParent_attack1_boulderSmall_impact", ((Component)this).gameObject); Util.PlaySound("Play_vulture_attack1_impact", ((Component)this).gameObject); Util.PlaySound("Play_vulture_attack1_impact", ((Component)this).gameObject); Util.PlaySound("Play_env_desert_wind_gust", ((Component)this).gameObject); Util.PlaySound("Play_mage_m2_zap", ((Component)this).gameObject); EffectData val = new EffectData(); val.scale = 16f + base.body.radius; val.origin = base.body.footPosition; EffectManager.SpawnEffect(CrocsEchoWave.impactParticles, val, true); for (int i = 0; i < lastHitHurtBoxes.Count; i++) { HurtBox val2 = lastHitHurtBoxes[i]; HealthComponent healthComponent = val2.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { CharacterBody body = healthComponent.body; if (Object.op_Implicit((Object)(object)body)) { EffectData val3 = new EffectData(); val3.scale = Mathf.Sqrt(body.radius * 2f); val3.origin = body.corePosition; EffectManager.SpawnEffect(CrocsEchoWave.impactExplosion, val3, true); EffectData val4 = new EffectData(); val4.scale = 8f + body.radius; val4.origin = body.footPosition; EffectManager.SpawnEffect(CrocsEchoWave.impactParticles, val4, true); } } } lastHitHurtBoxes.Clear(); } } } namespace CrocsItems.Items.Jibbitz { public class BlackHeart : ItemBase<BlackHeart> { public override string ItemName => "Black Heart"; public override string ItemLangTokenName => "BLACK_HEART"; public override string ItemPickupDesc => "While you have a Crocs item, increase health regeneration and maximum health."; public override string ItemFullDescription => "While you have a <style=cIsUtility>Crocs</style> item, increase <style=cIsHealing>health regeneration</style> by <style=cIsHealing>1%</style> <style=cStack>(+1% per stack)</style> of your <style=cIsHealing>maximum health</style> and <style=cIsHealing>maximum health</style> by <style=cIsHealing>125</style> <style=cStack>(+125 per stack)</style>."; public override string ItemLore => ""; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] ItemTags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override GameObject ItemModel => Main.bundle.LoadAsset<GameObject>("BlackHeartHolder.prefab"); public override Sprite ItemIcon => Main.bundle.LoadAsset<Sprite>("texBlackHeart.png"); public override bool CanRemove => true; public override bool IsCroc => false; public override bool IsJibbit => true; public override void Init() { base.Init(); } public override void Hooks() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown base.Hooks(); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(AddStats); } private void AddStats(CharacterBody sender, StatHookEventArgs args) { int count = GetCount(sender); bool flag = Main.HasAnyCrocs(sender) || Main.HasAnyCrocsEquipment(sender); if (count > 0 && flag) { args.baseHealthAdd += 125f * (float)count; args.baseRegenAdd += 0.01f * sender.maxHealth * (float)count; } } public override ItemDisplayRuleDict CreateItemDisplayRules() { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Expected O, but got Unknown //IL_00d5: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Expected O, but got Unknown //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Expected O, but got Unknown //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0227: 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_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0272: 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_028d: 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_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Expected O, but got Unknown //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: 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_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_0331: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0346: Unknown result type (might be due to invalid IL or missing references) //IL_0352: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Expected O, but got Unknown //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0379: Unknown result type (might be due to invalid IL or missing references) //IL_0382: 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_03bf: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0405: Expected O, but got Unknown //IL_0405: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_042b: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Expected O, but got Unknown //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_04f6: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0541: Unknown result type (might be due to invalid IL or missing references) //IL_054d: Unknown result type (might be due to invalid IL or missing references) //IL_0557: Expected O, but got Unknown //IL_0557: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_059f: Unknown result type (might be due to invalid IL or missing references) //IL_05a4: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05da: Unknown result type (might be due to invalid IL or missing references) //IL_05ea: Unknown result type (might be due to invalid IL or missing references) //IL_05f6: Unknown result type (might be due to invalid IL or missing references) //IL_0600: Expected O, but got Unknown //IL_0600: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0626: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0668: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Expected O, but got Unknown //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06ab: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_06f6: Unknown result type (might be due to invalid IL or missing references) //IL_070c: Unknown result type (might be due to invalid IL or missing references) //IL_0711: Unknown result type (might be due to invalid IL or missing references) //IL_0727: Unknown result type (might be due to invalid IL or missing references) //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_0752: Expected O, but got Unknown //IL_0752: Unknown result type (might be due to invalid IL or missing references) //IL_0754: Unknown result type (might be due to invalid IL or missing references) //IL_076f: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: 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_07d0: Unknown result type (might be due to invalid IL or missing references) //IL_07d5: Unknown result type (might be due to invalid IL or missing references) //IL_07e5: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Expected O, but got Unknown //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_07fd: Unknown result type (might be due to invalid IL or missing references) //IL_0818: Unknown result type (might be due to invalid IL or missing references) //IL_0821: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0848: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0879: Unknown result type (might be due to invalid IL or missing references) //IL_087e: Unknown result type (might be due to invalid IL or missing references) //IL_088e: Unknown result type (might be due to invalid IL or missing references) //IL_089a: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Expected O, but got Unknown //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08a6: 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_08ca: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_08f1: Unknown result type (might be due to invalid IL or missing references) //IL_0907: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_0927: Unknown result type (might be due to invalid IL or missing references) //IL_0937: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Expected O, but got Unknown //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_094f: Unknown result type (might be due to invalid IL or missing references) //IL_096a: Unknown result type (might be due to invalid IL or missing references) //IL_0973: Unknown result type (might be due to invalid IL or missing references) //IL_0995: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09b0: Unknown result type (might be due to invalid IL or missing references) //IL_09b5: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09d0: Unknown result type (might be due to invalid IL or missing references) //IL_09e0: Unknown result type (might be due to invalid IL or missing references) //IL_09ec: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Expected O, but got Unknown //IL_09f6: Unknown result type (might be due to invalid IL or missing references) //IL_09f8: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_0a59: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a89: Unknown result type (might be due to invalid IL or missing references) //IL_0a95: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: Expected O, but got Unknown //IL_0a9f: Unknown result type (might be due to invalid IL or missing references) //IL_0aa1: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Main.bundle.LoadAsset<GameObject>("BlackHeartHolder.prefab"), "BlackHeartIDRS", false); ItemDisplay val2 = val.AddComponent<ItemDisplay>(); List<Renderer> list = val.GetComponentsInChildren<Renderer>().ToList(); Array.Resize(ref val2.rendererInfos, list.Count); for (int i = 0; i < list.Count; i++) {