using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Globalization; 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 AncientScepter; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EmotesAPI; using EntityStates; using EntityStates.AI.Walker; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using HG; using HG.BlendableTypes; using HG.Reflection; using HenryMod.Characters.Survivors.Robomando.Content; using ItemQualities; using Newtonsoft.Json; using Newtonsoft.Json.Utilities; using On.RoR2; using On.RoR2.UI; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using RobomandoMod.Characters.Survivors.Robomando.Components; using RobomandoMod.Characters.Survivors.Robomando.Content; using RobomandoMod.Modules; using RobomandoMod.Modules.Achievements; using RobomandoMod.Modules.Characters; using RobomandoMod.Survivors.Robomando; using RobomandoMod.Survivors.Robomando.Components; using RobomandoMod.Survivors.Robomando.SkillStates; 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("RobomandoMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+109cf7a6a9b3cf03625d919171ad2480f0ea235c")] [assembly: AssemblyProduct("RobomandoMod")] [assembly: AssemblyTitle("RobomandoMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace HenryMod.Characters.Survivors.Robomando.Content { public class DisplayAnimationEvent : MonoBehaviour { private Animator animator; private void Start() { animator = ((Component)this).gameObject.GetComponent(); } public void PlayAnimSound(AnimationEvent animEvent) { if (animEvent.stringParameter != null) { Util.PlaySound(animEvent.stringParameter, ((Component)this).gameObject); } } public void TrySetIdleTrigger() { if (Random.Range(0f, 1f) < 0.1f) { animator.SetTrigger("DoIdleIntroVar"); } } } } namespace RobomandoMod { internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void ErrorAssetBundle(string assetName, string bundleName) { Error("failed to load asset, " + assetName + ", because it does not exist in asset bundle, " + bundleName); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.rob.RobomandoMod", "RobomandoMod", "1.0.0")] [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.*/)] public class RobomandoPlugin : BaseUnityPlugin { public const string MODUID = "com.rob.RobomandoMod"; public const string MODNAME = "RobomandoMod"; public const string MODVERSION = "1.0.0"; public static bool emotesInstalled; public static bool qualityInstalled; public static bool scepterInstalled; public const string DEVELOPER_PREFIX = "RAT"; public static RobomandoPlugin instance; private void Awake() { instance = this; NetworkingAPI.RegisterMessageType(); NetworkingAPI.RegisterMessageType(); Log.Init(((BaseUnityPlugin)this).Logger); ModLanguage.Init(); emotesInstalled = Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI"); if (emotesInstalled) { Log.Debug("EmoteAPI is installed"); } else { Log.Debug("EmoteAPI is not installed"); } qualityInstalled = Chainloader.PluginInfos.ContainsKey("com.Gorakh.ItemQualities"); if (qualityInstalled) { Log.Debug("ItemQualities is installed"); } else { Log.Debug("ItemQualities is not installed"); } scepterInstalled = Chainloader.PluginInfos.ContainsKey("com.DestroyedClone.AncientScepter"); if (qualityInstalled) { Log.Debug("AncientScepter is installed"); } else { Log.Debug("AncientScepter is not installed"); } new RobomandoSurvivor().Initialize(); new ContentPacks().Initialize(); } } } namespace RobomandoMod.Modules { internal static class Asset { internal static Dictionary loadedBundles = new Dictionary(); internal static AssetBundle LoadAssetBundle(string bundleName) { if (bundleName == "myassetbundle") { Log.Error("AssetBundle name hasn't been changed. not loading any assets to avoid conflicts.\nMake sure to rename your assetbundle filename and rename the AssetBundleName field in your character setup code "); return null; } if (loadedBundles.ContainsKey(bundleName)) { return loadedBundles[bundleName]; } AssetBundle val = null; try { val = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)RobomandoPlugin.instance).Info.Location), "AssetBundles", bundleName)); } catch (Exception arg) { Log.Error($"Error loading asset bundle, {bundleName}. Your asset bundle must be in a folder next to your mod dll called 'AssetBundles'. Follow the guide to build and install your mod correctly!\n{arg}"); } loadedBundles[bundleName] = val; return val; } internal static GameObject CloneTracer(string originalTracerName, string newTracerName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName) == (Object)null) { return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName), newTracerName, true); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } val.GetComponent().speed = 250f; val.GetComponent().length = 50f; Content.CreateAndAddEffectDef(val); return val; } internal static void ConvertAllRenderersToHopooShader(GameObject objectToConvert) { if (!Object.op_Implicit((Object)(object)objectToConvert)) { return; } MeshRenderer[] componentsInChildren = objectToConvert.GetComponentsInChildren(); foreach (MeshRenderer val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial.ConvertDefaultShaderToHopoo(); } } SkinnedMeshRenderer[] componentsInChildren2 = objectToConvert.GetComponentsInChildren(); foreach (SkinnedMeshRenderer val2 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)((Renderer)val2).sharedMaterial)) { ((Renderer)val2).sharedMaterial.ConvertDefaultShaderToHopoo(); } } } internal static GameObject LoadCrosshair(string crosshairName) { GameObject val = LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); if ((Object)(object)val == (Object)null) { Log.Error("could not load crosshair with the name " + crosshairName + ". defaulting to Standard"); return LegacyResourcesAPI.Load("Prefabs/Crosshair/StandardCrosshair"); } return val; } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, bool parentToTransform) { return assetBundle.LoadEffect(resourceName, "", parentToTransform); } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, string soundName = "", bool parentToTransform = false) { //IL_0046: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(resourceName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(resourceName, ((Object)assetBundle).name); return null; } val.AddComponent().duration = 12f; val.AddComponent(); val.AddComponent().vfxPriority = (VFXPriority)2; EffectComponent val2 = default(EffectComponent); if (!val.TryGetComponent(ref val2)) { EffectComponent val3 = val.AddComponent(); val3.applyScale = false; val3.parentToReferencedTransform = parentToTransform; val3.positionAtReferencedTransform = true; val3.soundName = soundName; } Content.CreateAndAddEffectDef(val); return val; } internal static GameObject CreateProjectileGhostPrefab(this AssetBundle assetBundle, string ghostName) { GameObject val = assetBundle.LoadAsset(ghostName); if ((Object)(object)val == (Object)null) { Log.Error("Failed to load ghost prefab " + ghostName); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } ConvertAllRenderersToHopooShader(val); return val; } internal static GameObject CloneProjectilePrefab(string prefabName, string newPrefabName) { return PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/" + prefabName), newPrefabName); } internal static GameObject LoadAndAddProjectilePrefab(this AssetBundle assetBundle, string newPrefabName) { GameObject val = assetBundle.LoadAsset(newPrefabName); if ((Object)(object)val == (Object)null) { Log.ErrorAssetBundle(newPrefabName, ((Object)assetBundle).name); return null; } Content.AddProjectilePrefab(val); return val; } } public static class Config { public static ConfigFile MyConfig = ((BaseUnityPlugin)RobomandoPlugin.instance).Config; public static ConfigEntry CharacterEnableConfig(string section, string characterName, string description = "", bool enabledByDefault = true) { if (string.IsNullOrEmpty(description)) { description = "Set to false to disable this character and as much of its code and content as possible"; } return BindAndOptions(section, "Enable " + characterName, enabledByDefault, description, restartRequired: true); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, string description = "", bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, 0f, 20f, description, restartRequired); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, float min, float max, string description = "", bool restartRequired = false) { if (string.IsNullOrEmpty(description)) { description = name; } if (restartRequired) { description += " (restart required)"; } ConfigEntry result = MyConfig.Bind(section, name, defaultValue, description); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { } return result; } public static ConfigEntry BindAndOptionsSlider(string section, string name, float defaultValue, string description, float min = 0f, float max = 20f, bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, min, max, description, restartRequired); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void TryRegisterOption(ConfigEntry entry, float min, float max, bool restartRequired) { } public static bool GetKeyPressed(KeyboardShortcut entry) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: 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) foreach (KeyCode modifier in ((KeyboardShortcut)(ref entry)).Modifiers) { if (!Input.GetKey(modifier)) { return false; } } return Input.GetKeyDown(((KeyboardShortcut)(ref entry)).MainKey); } } internal class Content { internal static void AddCharacterBodyPrefab(GameObject bprefab) { ContentPacks.bodyPrefabs.Add(bprefab); } internal static void AddMasterPrefab(GameObject prefab) { ContentPacks.masterPrefabs.Add(prefab); } internal static void AddProjectilePrefab(GameObject prefab) { ContentPacks.projectilePrefabs.Add(prefab); } internal static void AddSurvivorDef(SurvivorDef survivorDef) { ContentPacks.survivorDefs.Add(survivorDef); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, sortPosition); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) SurvivorDef val = ScriptableObject.CreateInstance(); val.bodyPrefab = bodyPrefab; val.displayPrefab = displayPrefab; val.primaryColor = charColor; val.cachedName = ((Object)bodyPrefab).name.Replace("Body", ""); val.displayNameToken = tokenPrefix + "NAME"; val.descriptionToken = tokenPrefix + "DESCRIPTION"; val.outroFlavorToken = tokenPrefix + "OUTRO_FLAVOR"; val.mainEndingEscapeFailureFlavorToken = tokenPrefix + "OUTRO_FAILURE"; val.desiredSortPosition = sortPosition; val.unlockableDef = unlockableDef; AddSurvivorDef(val); } internal static void AddUnlockableDef(UnlockableDef unlockableDef) { ContentPacks.unlockableDefs.Add(unlockableDef); } internal static UnlockableDef CreateAndAddUnlockbleDef(string identifier, string nameToken, Sprite achievementIcon) { UnlockableDef val = ScriptableObject.CreateInstance(); val.cachedName = identifier; val.nameToken = nameToken; val.achievementIcon = achievementIcon; AddUnlockableDef(val); return val; } internal static void AddSkillDef(SkillDef skillDef) { ContentPacks.skillDefs.Add(skillDef); } internal static void AddSkillFamily(SkillFamily skillFamily) { ContentPacks.skillFamilies.Add(skillFamily); } internal static void AddEntityState(Type entityState) { ContentPacks.entityStates.Add(entityState); } internal static void AddBuffDef(BuffDef buffDef) { ContentPacks.buffDefs.Add(buffDef); } internal static BuffDef CreateAndAddBuff(string buffName, Sprite buffIcon, Color buffColor, bool canStack, bool isDebuff) { //IL_0010: 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) BuffDef val = ScriptableObject.CreateInstance(); ((Object)val).name = buffName; val.buffColor = buffColor; val.canStack = canStack; val.isDebuff = isDebuff; val.eliteDef = null; val.iconSprite = buffIcon; AddBuffDef(val); return val; } internal static void AddEffectDef(EffectDef effectDef) { ContentPacks.effectDefs.Add(effectDef); } internal static EffectDef CreateAndAddEffectDef(GameObject effectPrefab) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown EffectDef val = new EffectDef(effectPrefab); AddEffectDef(val); return val; } internal static void AddNetworkSoundEventDef(NetworkSoundEventDef networkSoundEventDef) { ContentPacks.networkSoundEventDefs.Add(networkSoundEventDef); } internal static NetworkSoundEventDef CreateAndAddNetworkSoundEventDef(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance(); val.akId = AkSoundEngine.GetIDFromString(eventName); val.eventName = eventName; AddNetworkSoundEventDef(val); return val; } } internal class ContentPacks : IContentPackProvider { [CompilerGenerated] private sealed class d__18 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public FinalizeAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__18(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__17 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GetContentPackAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__17(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; ContentPack.Copy(<>4__this.contentPack, args.output); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__16 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LoadStaticContentAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__16(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.contentPack.identifier = <>4__this.identifier; <>4__this.contentPack.bodyPrefabs.Add(bodyPrefabs.ToArray()); <>4__this.contentPack.masterPrefabs.Add(masterPrefabs.ToArray()); <>4__this.contentPack.projectilePrefabs.Add(projectilePrefabs.ToArray()); <>4__this.contentPack.survivorDefs.Add(survivorDefs.ToArray()); <>4__this.contentPack.unlockableDefs.Add(unlockableDefs.ToArray()); <>4__this.contentPack.skillDefs.Add(skillDefs.ToArray()); <>4__this.contentPack.skillFamilies.Add(skillFamilies.ToArray()); <>4__this.contentPack.entityStateTypes.Add(entityStates.ToArray()); <>4__this.contentPack.buffDefs.Add(buffDefs.ToArray()); <>4__this.contentPack.effectDefs.Add(effectDefs.ToArray()); <>4__this.contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray()); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } internal ContentPack contentPack = new ContentPack(); public static List bodyPrefabs = new List(); public static List masterPrefabs = new List(); public static List projectilePrefabs = new List(); public static List survivorDefs = new List(); public static List unlockableDefs = new List(); public static List skillFamilies = new List(); public static List skillDefs = new List(); public static List entityStates = new List(); public static List buffDefs = new List(); public static List effectDefs = new List(); public static List networkSoundEventDefs = new List(); public string identifier => "com.rob.RobomandoMod"; public void Initialize() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } [IteratorStateMachine(typeof(d__16))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__16(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__17))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__17(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__18))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__18(0) { <>4__this = this, args = args }; } } internal static class ItemDisplayCheck { public static List allDisplayedItems; public static void PrintUnused(ItemDisplayRuleSet itemDisplayRuleSet, string bodyName = "") { PrintUnused((IEnumerable)itemDisplayRuleSet.keyAssetRuleGroups.ToList(), bodyName); } public static void PrintUnused(IEnumerable ruleSet = null, string bodyName = "") { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) string text = "generating item displays for " + bodyName; if (allDisplayedItems == null) { LazyGatherAllItems(); } List list = new List(allDisplayedItems); string text2 = ""; if (ruleSet != null) { foreach (KeyAssetRuleGroup item in ruleSet) { if (item.displayRuleGroup.rules.Length != 0) { list.Remove(item.keyAsset); if (string.IsNullOrEmpty(text2)) { text2 = item.displayRuleGroup.rules[0].childName; } } } } if (string.IsNullOrEmpty(text2)) { text2 = "Chest"; } foreach (Object item2 in list) { string text3 = ""; if (ItemDisplays.KeyAssetDisplayPrefabs.ContainsKey(item2)) { text3 += SpitOutNewRule(item2, text2, ItemDisplays.KeyAssetDisplayPrefabs[item2]); } else { Log.Error($"COULD NOT FIND DISPLAY PREFABS FOR KEYASSET {item2}"); } text += text3; } Log.Message(text); } private static void LazyGatherAllItems() { allDisplayedItems = new List(ItemDisplays.KeyAssetDisplayPrefabs.Keys); allDisplayedItems.Sort(delegate(Object item1, Object item2) { if (item1 is ItemDef && item2 is ItemDef) { return item1.name.CompareTo(item2.name); } if (item1 is EquipmentDef && item2 is EquipmentDef) { return item1.name.CompareTo(item2.name); } if (item1 is ItemDef && item2 is EquipmentDef) { return -1; } return (item1 is EquipmentDef && item2 is ItemDef) ? 1 : 0; }); } private static string SpitOutNewRule(Object asset, string firstCompatibleChild, ItemDisplayRule[] displayRules) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) if (displayRules.Length == 0) { return $"\n[NO DISPLAY RULES FOUND FOR THE KEYASSET {asset}"; } string text = "\n itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets[\"" + asset.name + "\"]"; for (int i = 0; i < displayRules.Length; i++) { text = (((int)displayRules[i].limbMask != 0) ? (text + ",\n" + $" ItemDisplays.CreateLimbMaskDisplayRule(LimbFlags.{displayRules[i].limbMask})") : (text + ",\n ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay(\"" + ((Object)displayRules[i].followerPrefab).name + "\"),\n \"" + firstCompatibleChild + "\",\n new Vector3(2, 2, 2),\n new Vector3(0, 0, 0),\n new Vector3(1, 1, 1)\n )")); } return text + "\n ));"; } } internal static class ItemDisplays { private static Dictionary itemDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssetDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssets = new Dictionary(); public static int queuedDisplays; public static bool initialized = false; public static void LazyInit() { if (!initialized) { initialized = true; PopulateDisplays(); } } internal static void DisposeWhenDone() { queuedDisplays--; if (queuedDisplays <= 0 && initialized) { initialized = false; itemDisplayPrefabs = null; KeyAssetDisplayPrefabs = null; KeyAssets = null; } } internal static void PopulateDisplays() { PopulateFromBody("LoaderBody"); PopulateCustomLightningArm(); } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet itemDisplayRuleSet = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName).GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; KeyAssetDisplayPrefabs[keyAssetRuleGroups[i].keyAsset] = rules; KeyAssets[keyAssetRuleGroups[i].keyAsset.name] = keyAssetRuleGroups[i].keyAsset; for (int j = 0; j < rules.Length; j++) { GameObject followerPrefab = rules[j].followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLowerInvariant(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } private static void PopulateCustomLightningArm() { GameObject val = PrefabAPI.InstantiateClone(itemDisplayPrefabs["displaylightningarmright"], "DisplayLightningCustom", false); LimbMatcher component = val.GetComponent(); component.limbPairs[0].targetChildLimb = "UpperArm_R"; component.limbPairs[1].targetChildLimb = "LowerArm_R"; component.limbPairs[2].targetChildLimb = "Hand_R"; itemDisplayPrefabs["displaylightningarmcustom"] = val; } public static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLowerInvariant()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLowerInvariant()])) { return itemDisplayPrefabs[name.ToLowerInvariant()]; } Log.Error("item display " + name + " returned null"); return null; } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(string itemName, params ItemDisplayRule[] rules) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRuleGroupWithRules(GetKeyAssetFromString(itemName), rules); } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(Object keyAsset_, params ItemDisplayRule[] rules) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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) if (keyAsset_ == (Object)null) { Log.Error("could not find keyasset"); } KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset_; result.displayRuleGroup = new DisplayRuleGroup { rules = rules }; return result; } public static ItemDisplayRule CreateDisplayRule(string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRule(LoadDisplay(prefabName), childName, position, rotation, scale); } public static ItemDisplayRule CreateDisplayRule(GameObject itemPrefab, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRule result = default(ItemDisplayRule); result.ruleType = (ItemDisplayRuleType)0; result.childName = childName; result.followerPrefab = itemPrefab; result.limbMask = (LimbFlags)0; result.localPos = position; result.localAngles = rotation; result.localScale = scale; return result; } public static ItemDisplayRule CreateLimbMaskDisplayRule(LimbFlags limb) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) ItemDisplayRule result = default(ItemDisplayRule); result.ruleType = (ItemDisplayRuleType)1; result.limbMask = limb; result.childName = ""; result.followerPrefab = null; return result; } private static Object GetKeyAssetFromString(string itemName) { Object val = (Object)(object)LegacyResourcesAPI.Load("ItemDefs/" + itemName); if (val == (Object)null) { val = (Object)(object)LegacyResourcesAPI.Load("EquipmentDefs/" + itemName); } if (val == (Object)null) { Log.Error("Could not load keyasset for " + itemName); } return val; } } internal static class Materials { private static List cachedMaterials = new List(); internal static Shader hotpoo = LegacyResourcesAPI.Load("Shaders/Deferred/HGStandard"); public static Material LoadMaterial(this AssetBundle assetBundle, string materialName) { return assetBundle.CreateHopooMaterialFromBundle(materialName); } public static Material CreateHopooMaterialFromBundle(this AssetBundle assetBundle, string materialName) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown Material val = cachedMaterials.Find(delegate(Material mat) { materialName.Replace(" (Instance)", ""); return ((Object)mat).name.Contains(materialName); }); if (Object.op_Implicit((Object)(object)val)) { Log.Debug(((Object)val).name + " has already been loaded. returning cached"); return val; } val = assetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(materialName, ((Object)assetBundle).name); return new Material(hotpoo); } return val.ConvertDefaultShaderToHopoo(); } public static Material SetHopooMaterial(this Material tempMat) { return tempMat.ConvertDefaultShaderToHopoo(); } public static Material ConvertDefaultShaderToHopoo(this Material tempMat) { //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) if (cachedMaterials.Contains(tempMat)) { Log.Debug(((Object)tempMat).name + " has already been converted. returning cached"); return tempMat; } string text = ((Object)tempMat.shader).name.ToLowerInvariant(); if (!text.StartsWith("standard") && !text.StartsWith("autodesk")) { Log.Debug(((Object)tempMat).name + " is not unity standard shader. aborting material conversion"); return tempMat; } float? num = null; Color? val = null; if (tempMat.IsKeywordEnabled("_NORMALMAP")) { num = tempMat.GetFloat("_BumpScale"); } if (tempMat.IsKeywordEnabled("_EMISSION")) { val = tempMat.GetColor("_EmissionColor"); } tempMat.shader = hotpoo; tempMat.SetTexture("_EmTex", tempMat.GetTexture("_EmissionMap")); tempMat.EnableKeyword("DITHER"); if (num.HasValue) { tempMat.SetFloat("_NormalStrength", num.Value); tempMat.SetTexture("_NormalTex", tempMat.GetTexture("_BumpMap")); } if (val.HasValue) { tempMat.SetColor("_EmColor", val.Value); tempMat.SetFloat("_EmPower", 1f); } if (tempMat.IsKeywordEnabled("NOCULL")) { tempMat.SetInt("_Cull", 0); } if (tempMat.IsKeywordEnabled("LIMBREMOVAL")) { tempMat.SetInt("_LimbRemovalOn", 1); Log.Debug("Enabling limb removal on " + ((Object)tempMat).name); } cachedMaterials.Add(tempMat); return tempMat; } public static Material MakeUnique(this Material material) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (cachedMaterials.Contains(material)) { return new Material(material); } return material; } public static Material SetColor(this Material material, Color color) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) material.SetColor("_Color", color); return material; } public static Material SetNormal(this Material material, float normalStrength = 1f) { material.SetFloat("_NormalStrength", normalStrength); return material; } public static Material SetEmission(this Material material) { return material.SetEmission(1f); } public static Material SetEmission(this Material material, float emission) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return material.SetEmission(emission, Color.white); } public static Material SetEmission(this Material material, float emission, Color emissionColor) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) material.SetFloat("_EmPower", emission); material.SetColor("_EmColor", emissionColor); return material; } public static Material SetCull(this Material material, bool cull = false) { material.SetInt("_Cull", cull ? 1 : 0); return material; } public static Material SetSpecular(this Material material, float strength) { material.SetFloat("_SpecularStrength", strength); return material; } public static Material SetSpecular(this Material material, float strength, float exponent) { material.SetFloat("_SpecularStrength", strength); material.SetFloat("SpecularExponent", exponent); return material; } } internal static class ModLanguage { public static string TokensOutput = ""; public static bool usingLanguageFolder = false; public static bool printingEnabled = false; public static Dictionary overlays = new Dictionary(); public static void Init() { if (usingLanguageFolder) { Language.collectLanguageRootFolders += Language_collectLanguageRootFolders; } } private static void Language_collectLanguageRootFolders(List obj) { string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)RobomandoPlugin.instance).Info.Location), "Language"); if (Directory.Exists(text)) { obj.Add(text); } } public static void SetTemporaryValue(string token, string value) { if (overlays.TryGetValue(token, out var value2)) { value2.Remove(); overlays[token] = null; } overlays[token] = LanguageAPI.AddOverlay(token, value); } public static void RemoveOverlay(string token) { if (overlays.TryGetValue(token, out var value)) { value.Remove(); overlays[token] = null; } } public static void Add(string token, string text) { if (!usingLanguageFolder) { LanguageAPI.Add(token, text); } if (printingEnabled) { TokensOutput = TokensOutput + "\n \"" + token + "\" : \"" + text.Replace(Environment.NewLine, "\\n").Replace("\n", "\\n") + "\","; } } public static void PrintOutput(string fileName = "") { if (printingEnabled) { string text = "{\n strings:\n {" + TokensOutput + "\n }\n}"; Log.Message(fileName + ": \n" + text); if (!string.IsNullOrEmpty(fileName)) { string path = Path.Combine(Directory.GetParent(((BaseUnityPlugin)RobomandoPlugin.instance).Info.Location).FullName, "Language", "en", fileName); File.WriteAllText(path, text); } TokensOutput = ""; } } } internal static class Prefabs { private static PhysicMaterial ragdollMaterial; public static GameObject CreateDisplayPrefab(AssetBundle assetBundle, string displayPrefabName, GameObject prefab) { GameObject val = assetBundle.LoadAsset(displayPrefabName); if ((Object)(object)val == (Object)null) { Log.Error("could not load display prefab " + displayPrefabName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } CharacterModel val2 = val.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = val.AddComponent(); } val2.baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; Asset.ConvertAllRenderersToHopooShader(val); return val; } public static GameObject LoadCharacterModel(AssetBundle assetBundle, string modelName) { GameObject val = assetBundle.LoadAsset(modelName); if ((Object)(object)val == (Object)null) { Log.Error("could not load model prefab " + modelName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject LoadCharacterBody(AssetBundle assetBundle, string bodyName) { GameObject val = assetBundle.LoadAsset(bodyName); if ((Object)(object)val == (Object)null) { Log.Error("could not load body prefab " + bodyName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject CloneCharacterBody(BodyInfo bodyInfo) { GameObject val = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"); if (!Object.op_Implicit((Object)(object)val)) { Log.Error(bodyInfo.bodyNameToClone + " Body to clone is not a valid body, character creation failed"); return null; } GameObject val2 = PrefabAPI.InstantiateClone(val, bodyInfo.bodyName); for (int num = val2.transform.childCount - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)((Component)val2.transform.GetChild(num)).gameObject); } return val2; } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject model, BodyInfo bodyInfo) { return CreateBodyPrefab(CloneCharacterBody(bodyInfo), model, bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, AssetBundle assetBundle, string modelName, BodyInfo bodyInfo) { return CreateBodyPrefab(newBodyPrefab, LoadCharacterModel(assetBundle, modelName), bodyInfo); } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string bodyPrefabName, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterBody(assetBundle, bodyPrefabName), LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, GameObject model, BodyInfo bodyInfo) { if ((Object)(object)model == (Object)null || (Object)(object)newBodyPrefab == (Object)null) { Log.Error($"Character creation failed. Model: {model}, Body: {newBodyPrefab}"); return null; } SetupCharacterBody(newBodyPrefab, bodyInfo); Transform modelBaseTransform = AddCharacterModelToSurvivorBody(newBodyPrefab, model.transform, bodyInfo); SetupModelLocator(newBodyPrefab, modelBaseTransform, model.transform); SetupCharacterDirection(newBodyPrefab, modelBaseTransform, model.transform); SetupCameraTargetParams(newBodyPrefab, bodyInfo); SetupCapsuleCollider(newBodyPrefab); Content.AddCharacterBodyPrefab(newBodyPrefab); return newBodyPrefab; } private static void SetupCharacterBody(GameObject newBodyPrefab, BodyInfo bodyInfo) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = newBodyPrefab.GetComponent(); component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component.bodyColor = bodyInfo.bodyColor; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.hideCrosshair = false; component.preferredPodPrefab = bodyInfo.podPrefab; component.baseMaxHealth = bodyInfo.maxHealth; component.baseRegen = bodyInfo.healthRegen; component.baseArmor = bodyInfo.armor; component.baseMaxShield = bodyInfo.shield; component.baseDamage = bodyInfo.damage; component.baseAttackSpeed = bodyInfo.attackSpeed; component.baseCrit = bodyInfo.crit; component.baseMoveSpeed = bodyInfo.moveSpeed; component.baseJumpPower = bodyInfo.jumpPower; component.autoCalculateLevelStats = bodyInfo.autoCalculateLevelStats; if (bodyInfo.autoCalculateLevelStats) { component.levelMaxHealth = Mathf.Round(component.baseMaxHealth * 0.3f); component.levelMaxShield = Mathf.Round(component.baseMaxShield * 0.3f); component.levelRegen = component.baseRegen * 0.2f; component.levelMoveSpeed = 0f; component.levelJumpPower = 0f; component.levelDamage = component.baseDamage * 0.2f; component.levelAttackSpeed = 0f; component.levelCrit = 0f; component.levelArmor = 0f; } else { component.levelMaxHealth = bodyInfo.healthGrowth; component.levelMaxShield = bodyInfo.shieldGrowth; component.levelRegen = bodyInfo.regenGrowth; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.levelDamage = bodyInfo.damageGrowth; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.levelCrit = bodyInfo.critGrowth; component.levelArmor = bodyInfo.armorGrowth; } component.baseAcceleration = bodyInfo.acceleration; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.hullClassification = (HullClassification)0; component.vehicleIdleStateMachine = (EntityStateMachine[])(object)new EntityStateMachine[0]; component.isChampion = false; } private static Transform AddCharacterModelToSurvivorBody(GameObject bodyPrefab, Transform modelTransform, BodyInfo bodyInfo) { //IL_0063: 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: 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_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_010e: 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) Transform val = bodyPrefab.transform.Find("ModelBase"); if ((Object)(object)val == (Object)null) { val = new GameObject("ModelBase").transform; val.parent = bodyPrefab.transform; val.localPosition = bodyInfo.modelBasePosition; val.localRotation = Quaternion.identity; } modelTransform.parent = ((Component)val).transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; Transform val2 = bodyPrefab.transform.Find("CameraPivot"); if ((Object)(object)val2 == (Object)null) { val2 = new GameObject("CameraPivot").transform; val2.parent = bodyPrefab.transform; val2.localPosition = bodyInfo.cameraPivotPosition; val2.localRotation = Quaternion.identity; } Transform val3 = bodyPrefab.transform.Find("AimOrigin"); if ((Object)(object)val3 == (Object)null) { val3 = new GameObject("AimOrigin").transform; val3.parent = bodyPrefab.transform; val3.localPosition = bodyInfo.aimOriginPosition; val3.localRotation = Quaternion.identity; } bodyPrefab.GetComponent().aimOriginTransform = val3; return ((Component)val).transform; } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { if (Object.op_Implicit((Object)(object)prefab.GetComponent())) { CharacterDirection component = prefab.GetComponent(); component.targetTransform = modelBaseTransform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = ((Component)modelTransform).GetComponent(); component.driveFromRootRotation = false; component.turnSpeed = 720f; } } private static void SetupCameraTargetParams(GameObject prefab, BodyInfo bodyInfo) { CameraTargetParams component = prefab.GetComponent(); component.cameraParams = bodyInfo.cameraParams; component.cameraPivotTransform = prefab.transform.Find("CameraPivot"); } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupCapsuleCollider(GameObject prefab) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) CapsuleCollider component = prefab.GetComponent(); component.center = new Vector3(0f, 0f, 0f); component.radius = 0.5f; component.height = 1.82f; component.direction = 1; } public static CharacterModel SetupCharacterModel(GameObject bodyPrefab, CustomRendererInfo[] customInfos = null) { CharacterModel val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.GetComponent(); bool flag = (Object)(object)val != (Object)null; if (!flag) { val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.AddComponent(); } val.body = bodyPrefab.GetComponent(); val.autoPopulateLightInfos = true; val._invisibilityCount = 0; val.temporaryOverlays = new List(); if (!flag) { SetupCustomRendererInfos(val, customInfos); } else { SetupPreAttachedRendererInfos(val); } SetupHurtboxGroup(bodyPrefab, ((Component)val).gameObject); SetupAimAnimator(bodyPrefab, ((Component)val).gameObject); SetupFootstepController(((Component)val).gameObject); SetupRagdoll(((Component)val).gameObject); return val; } public static void SetupPreAttachedRendererInfos(CharacterModel characterModel) { for (int i = 0; i < characterModel.baseRendererInfos.Length; i++) { if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { characterModel.baseRendererInfos[i].defaultMaterial = characterModel.baseRendererInfos[i].renderer.sharedMaterial; } if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { Log.Error($"no material for rendererinfo of this renderer: {characterModel.baseRendererInfos[i].renderer}"); } characterModel.baseRendererInfos[i].defaultMaterial.ConvertDefaultShaderToHopoo(); } } public static void SetupCustomRendererInfos(CharacterModel characterModel, CustomRendererInfo[] customInfos) { //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) ChildLocator component = ((Component)characterModel).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("Failed CharacterModel setup: ChildLocator component does not exist on the model"); return; } List list = new List(); for (int i = 0; i < customInfos.Length; i++) { if (!Object.op_Implicit((Object)(object)component.FindChild(customInfos[i].childName))) { Log.Error("Trying to add a RendererInfo for a renderer that does not exist: " + customInfos[i].childName); continue; } Renderer component2 = ((Component)component.FindChild(customInfos[i].childName)).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { Material val = customInfos[i].material; if ((Object)(object)val == (Object)null) { val = ((!customInfos[i].dontHotpoo) ? component2.sharedMaterial.ConvertDefaultShaderToHopoo() : component2.sharedMaterial); } list.Add(new RendererInfo { renderer = component2, defaultMaterial = val, ignoreOverlays = customInfos[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } } characterModel.baseRendererInfos = list.ToArray(); } private static void SetupHurtboxGroup(GameObject bodyPrefab, GameObject model) { SetupMainHurtboxesFromChildLocator(bodyPrefab, model); SetHurtboxesHealthComponents(bodyPrefab); } private static void SetupMainHurtboxesFromChildLocator(GameObject bodyPrefab, GameObject model) { //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)bodyPrefab.GetComponent() != (Object)null) { Log.Debug("Hitboxgroup already exists on model prefab. aborting code setup"); return; } ChildLocator component = model.GetComponent(); if (string.IsNullOrEmpty(component.FindChildNameInsensitive("MainHurtbox"))) { Log.Error("Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator called 'MainHurtbox'"); return; } HurtBoxGroup val = model.AddComponent(); HurtBox val2 = null; GameObject val3 = component.FindChildGameObjectInsensitive("HeadHurtbox"); if (Object.op_Implicit((Object)(object)val3)) { Log.Debug("HeadHurtboxFound. Setting up"); val2 = val3.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = bodyPrefab.GetComponent(); val2.isBullseye = false; val2.isSniperTarget = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 1; } HurtBox val4 = component.FindChildGameObjectInsensitive("MainHurtbox").AddComponent(); ((Component)val4).gameObject.layer = LayerIndex.entityPrecise.intVal; val4.healthComponent = bodyPrefab.GetComponent(); val4.isBullseye = true; val4.isSniperTarget = (Object)(object)val2 == (Object)null; val4.damageModifier = (DamageModifier)0; val4.hurtBoxGroup = val; val4.indexInGroup = 0; if (Object.op_Implicit((Object)(object)val2)) { val.hurtBoxes = (HurtBox[])(object)new HurtBox[2] { val4, val2 }; } else { val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val4 }; } val.mainHurtBox = val4; val.bullseyeCount = 1; } private static string FindChildNameInsensitive(this ChildLocator childLocator, string child) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) return childLocator.transformPairs.Where((NameTransformPair pair) => pair.name.ToLowerInvariant() == child.ToLowerInvariant()).FirstOrDefault().name; } private static Transform FindChildInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChild(childLocator.FindChildNameInsensitive(child)); } private static GameObject FindChildGameObjectInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChildGameObject(childLocator.FindChildNameInsensitive(child)); } public static void SetHurtboxesHealthComponents(GameObject bodyPrefab) { HealthComponent component = bodyPrefab.GetComponent(); HurtBoxGroup[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (HurtBoxGroup val in componentsInChildren) { val.mainHurtBox.healthComponent = component; for (int j = 0; j < val.hurtBoxes.Length; j++) { val.hurtBoxes[j].healthComponent = component; } } } private static void SetupFootstepController(GameObject model) { FootstepHandler val = model.AddComponent(); val.baseFootstepString = "Play_player_footstep"; val.sprintFootstepOverrideString = ""; val.enableFootstepDust = true; val.footstepDustPrefab = LegacyResourcesAPI.Load("Prefabs/GenericFootstepDust"); } private static void SetupRagdoll(GameObject model) { RagdollController component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if ((Object)(object)ragdollMaterial == (Object)null) { ragdollMaterial = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().bones[1]).GetComponent().material; } Transform[] bones = component.bones; foreach (Transform val in bones) { if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = LayerIndex.ragdoll.intVal; Collider component2 = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.sharedMaterial = ragdollMaterial; } else { Log.Error($"Ragdoll bone {((Component)val).gameObject} doesn't have a collider. Ragdoll will break."); } } } } private static void SetupAimAnimator(GameObject prefab, GameObject model) { AimAnimator val = model.AddComponent(); val.directionComponent = prefab.GetComponent(); val.pitchRangeMax = 60f; val.pitchRangeMin = -60f; val.yawRangeMin = -80f; val.yawRangeMax = 80f; val.pitchGiveupRange = 30f; val.yawGiveupRange = 10f; val.giveupDuration = 3f; val.inputBank = prefab.GetComponent(); } public static void CreateGenericDoppelganger(GameObject bodyPrefab, string masterName, string masterToCopy) { CloneDopplegangerMaster(bodyPrefab, masterName, masterToCopy); } public static GameObject CloneDopplegangerMaster(GameObject bodyPrefab, string masterName, string masterToCopy) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/" + masterToCopy + "MonsterMaster"), masterName, true); val.GetComponent().bodyPrefab = bodyPrefab; Content.AddMasterPrefab(val); return val; } public static GameObject CreateBlankMasterPrefab(GameObject bodyPrefab, string masterName) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), masterName, true); ContentPacks.masterPrefabs.Add(val); CharacterMaster component = val.GetComponent(); component.bodyPrefab = bodyPrefab; AISkillDriver[] components = val.GetComponents(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } return val; } public static GameObject LoadMaster(this AssetBundle assetBundle, GameObject bodyPrefab, string assetName) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(assetName); BaseAI val2 = val.GetComponent(); if ((Object)(object)val2 == (Object)null) { val2 = val.AddComponent(); val2.aimVectorDampTime = 0.1f; val2.aimVectorMaxSpeed = 360f; } val2.scanState = new SerializableEntityStateType(typeof(Wander)); EntityStateMachine component = val.GetComponent(); if ((Object)(object)component == (Object)null) { AddEntityStateMachine(val, "AI", typeof(Wander), typeof(Wander)); } val2.stateMachine = component; CharacterMaster val3 = val.GetComponent(); if ((Object)(object)val3 == (Object)null) { val3 = val.AddComponent(); } val3.bodyPrefab = bodyPrefab; val3.teamIndex = (TeamIndex)2; Content.AddMasterPrefab(val); return val; } public static void ClearEntityStateMachines(GameObject bodyPrefab) { EntityStateMachine[] components = bodyPrefab.GetComponents(); for (int num = components.Length - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)components[num]); } NetworkStateMachine component = bodyPrefab.GetComponent(); component.stateMachines = Array.Empty(); CharacterDeathBehavior component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.idleStateMachine = Array.Empty(); } SetStateOnHurt component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.idleStateMachine = Array.Empty(); } } public static void AddMainEntityStateMachine(GameObject bodyPrefab, string machineName = "Body", Type mainStateType = null, Type initalStateType = null) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(bodyPrefab, machineName); if ((Object)(object)val == (Object)null) { val = bodyPrefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(GenericCharacterMain); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(SpawnTeleporterState); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.deathStateMachine = val; } SetStateOnHurt component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.targetStateMachine = val; } } public static void AddEntityStateMachine(GameObject prefab, string machineName, Type mainStateType = null, Type initalStateType = null) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(prefab, machineName); if ((Object)(object)val == (Object)null) { val = prefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(Idle); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(Idle); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.idleStateMachine = component2.idleStateMachine.Append(val).ToArray(); } SetStateOnHurt component3 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.idleStateMachine = component3.idleStateMachine.Append(val).ToArray(); } } public static void SetupHitBoxGroup(GameObject modelPrefab, string hitBoxGroupName, params string[] hitboxChildNames) { ChildLocator component = modelPrefab.GetComponent(); Transform[] array = (Transform[])(object)new Transform[hitboxChildNames.Length]; for (int i = 0; i < hitboxChildNames.Length; i++) { array[i] = component.FindChild(hitboxChildNames[i]); if ((Object)(object)array[i] == (Object)null) { Log.Error("missing hitbox for " + hitboxChildNames[i]); } } SetupHitBoxGroup(modelPrefab, hitBoxGroupName, array); } public static void SetupHitBoxGroup(GameObject prefab, string hitBoxGroupName, params Transform[] hitBoxTransforms) { List list = new List(); foreach (Transform val in hitBoxTransforms) { if ((Object)(object)val == (Object)null) { Log.Error("Error setting up hitboxGroup for " + hitBoxGroupName + ": hitbox transform was null"); continue; } HitBox item = ((Component)val).gameObject.AddComponent(); ((Component)val).gameObject.layer = LayerIndex.projectile.intVal; list.Add(item); } if (list.Count == 0) { Log.Error("No hitboxes were set up. aborting setting up hitboxGroup for " + hitBoxGroupName); return; } HitBoxGroup val2 = prefab.AddComponent(); val2.hitBoxes = list.ToArray(); val2.groupName = hitBoxGroupName; } } public class CustomRendererInfo { public string childName; public Material material = null; public bool dontHotpoo = false; public bool ignoreOverlays = false; } internal static class Skills { public static void CreateSkillFamilies(GameObject targetPrefab) { SkillSlot[] array = new SkillSlot[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); CreateSkillFamilies(targetPrefab, (SkillSlot[])(object)array); } public static void CreateSkillFamilies(GameObject targetPrefab, params SkillSlot[] slots) { //IL_0010: 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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected I4, but got Unknown SkillLocator component = targetPrefab.GetComponent(); foreach (SkillSlot val in slots) { SkillSlot val2 = val; switch (val2 - -1) { case 1: component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary"); break; case 2: component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary"); break; case 3: component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility"); break; case 4: component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special"); break; } } } public static void ClearGenericSkills(GameObject targetPrefab) { GenericSkill[] componentsInChildren = targetPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, SkillSlot skillSlot, bool hidden = false) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: 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_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Expected I4, but got Unknown SkillLocator component = targetPrefab.GetComponent(); switch (skillSlot - -1) { case 1: return component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary", hidden); case 2: return component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary", hidden); case 3: return component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility", hidden); case 4: return component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special", hidden); case 0: Log.Error("Failed to create GenericSkill with skillslot None. If making a GenericSkill outside of the main 4, specify a familyName, and optionally a genericSkillName"); return null; default: return null; } } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string familyName, bool hidden = false) { return CreateGenericSkillWithSkillFamily(targetPrefab, familyName, familyName, hidden); } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string genericSkillName, string familyName, bool hidden = false) { GenericSkill val = targetPrefab.AddComponent(); val.skillName = genericSkillName; val.hideInCharacterSelect = hidden; SkillFamily val2 = ScriptableObject.CreateInstance(); ((Object)val2).name = ((Object)targetPrefab).name + familyName + "Family"; val2.variants = (Variant[])(object)new Variant[0]; val._skillFamily = val2; Content.AddSkillFamily(val2); return val; } public static void AddSkillToFamily(SkillFamily skillFamily, SkillDef skillDef, UnlockableDef unlockableDef = null) { //IL_0029: 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_0053: Expected O, but got Unknown //IL_0054: 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) Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val = new Variant { skillDef = skillDef, unlockableDef = unlockableDef }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); variants[num] = val; } public static void AddSkillsToFamily(SkillFamily skillFamily, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSkillToFamily(skillFamily, skillDef); } } public static void AddPrimarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().primary.skillFamily, skillDefs); } public static void AddSecondarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().secondary.skillFamily, skillDefs); } public static void AddUtilitySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().utility.skillFamily, skillDefs); } public static void AddSpecialSkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().special.skillFamily, skillDefs); } public static void AddUnlockablesToFamily(SkillFamily skillFamily, params UnlockableDef[] unlockableDefs) { //IL_000d: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < unlockableDefs.Length; i++) { Variant val = skillFamily.variants[i]; val.unlockableDef = unlockableDefs[i]; skillFamily.variants[i] = val; } } public static SkillDef CreateSkillDef(SkillDefInfo skillDefInfo) { return Skills.CreateSkillDef(skillDefInfo); } public static T CreateSkillDef(SkillDefInfo skillDefInfo) where T : SkillDef { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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) T val = ScriptableObject.CreateInstance(); ((SkillDef)val).skillName = skillDefInfo.skillName; ((Object)(object)val).name = skillDefInfo.skillName; ((SkillDef)val).skillNameToken = skillDefInfo.skillNameToken; ((SkillDef)val).skillDescriptionToken = skillDefInfo.skillDescriptionToken; ((SkillDef)val).icon = skillDefInfo.skillIcon; ((SkillDef)val).activationState = skillDefInfo.activationState; ((SkillDef)val).activationStateMachineName = skillDefInfo.activationStateMachineName; ((SkillDef)val).interruptPriority = skillDefInfo.interruptPriority; ((SkillDef)val).baseMaxStock = skillDefInfo.baseMaxStock; ((SkillDef)val).baseRechargeInterval = skillDefInfo.baseRechargeInterval; ((SkillDef)val).rechargeStock = skillDefInfo.rechargeStock; ((SkillDef)val).requiredStock = skillDefInfo.requiredStock; ((SkillDef)val).stockToConsume = skillDefInfo.stockToConsume; ((SkillDef)val).dontAllowPastMaxStocks = skillDefInfo.dontAllowPastMaxStocks; ((SkillDef)val).beginSkillCooldownOnSkillEnd = skillDefInfo.beginSkillCooldownOnSkillEnd; ((SkillDef)val).canceledFromSprinting = skillDefInfo.canceledFromSprinting; ((SkillDef)val).forceSprintDuringState = skillDefInfo.forceSprintDuringState; ((SkillDef)val).fullRestockOnAssign = skillDefInfo.fullRestockOnAssign; ((SkillDef)val).resetCooldownTimerOnUse = skillDefInfo.resetCooldownTimerOnUse; ((SkillDef)val).isCombatSkill = skillDefInfo.isCombatSkill; ((SkillDef)val).mustKeyPress = skillDefInfo.mustKeyPress; ((SkillDef)val).cancelSprintingOnActivation = skillDefInfo.cancelSprintingOnActivation; ((SkillDef)val).keywordTokens = skillDefInfo.keywordTokens; Content.AddSkillDef((SkillDef)(object)val); return val; } } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public string[] keywordTokens = Array.Empty(); public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public InterruptPriority interruptPriority; public float baseRechargeInterval; public int baseMaxStock = 1; public int rechargeStock = 1; public int requiredStock = 1; public int stockToConsume = 1; public bool resetCooldownTimerOnUse = false; public bool fullRestockOnAssign = true; public bool dontAllowPastMaxStocks = false; public bool beginSkillCooldownOnSkillEnd = false; public bool mustKeyPress = false; public bool isCombatSkill = true; public bool canceledFromSprinting = false; public bool cancelSprintingOnActivation = true; public bool forceSprintDuringState = false; public SkillDefInfo() { } public SkillDefInfo(string skillName, string skillNameToken, string skillDescriptionToken, Sprite skillIcon, SerializableEntityStateType activationState, string activationStateMachineName = "Weapon", bool agile = false) { //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) this.skillName = skillName; this.skillNameToken = skillNameToken; this.skillDescriptionToken = skillDescriptionToken; this.skillIcon = skillIcon; this.activationState = activationState; this.activationStateMachineName = activationStateMachineName; cancelSprintingOnActivation = !agile; if (agile) { keywordTokens = new string[1] { "KEYWORD_AGILE" }; } interruptPriority = (InterruptPriority)0; isCombatSkill = true; baseRechargeInterval = 0f; requiredStock = 0; stockToConsume = 0; } } internal static class Skins { internal struct SkinDefInfo { internal SkinDef[] BaseSkins; internal Sprite Icon; internal string NameToken; internal UnlockableDef UnlockableDef; internal GameObject RootObject; internal RendererInfo[] RendererInfos; internal MeshReplacement[] MeshReplacements; internal GameObjectActivation[] GameObjectActivations; internal ProjectileGhostReplacement[] ProjectileGhostReplacements; internal MinionSkinReplacement[] MinionSkinReplacements; internal string Name; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] defaultRendererInfos, GameObject root, UnlockableDef unlockableDef = null) { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Expected O, but got Unknown SkinDefInfo skinDefInfo = default(SkinDefInfo); skinDefInfo.BaseSkins = Array.Empty(); skinDefInfo.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0]; skinDefInfo.Icon = skinIcon; skinDefInfo.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; skinDefInfo.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; skinDefInfo.Name = skinName; skinDefInfo.NameToken = skinName; skinDefInfo.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; skinDefInfo.RendererInfos = (RendererInfo[])(object)new RendererInfo[defaultRendererInfos.Length]; skinDefInfo.RootObject = root; skinDefInfo.UnlockableDef = unlockableDef; SkinDefInfo skinDefInfo2 = skinDefInfo; SkinDef.Awake += new hook_Awake(DoNothing); SkinDef val = ScriptableObject.CreateInstance(); val.baseSkins = skinDefInfo2.BaseSkins; val.icon = skinDefInfo2.Icon; val.unlockableDef = skinDefInfo2.UnlockableDef; val.rootObject = skinDefInfo2.RootObject; defaultRendererInfos.CopyTo(skinDefInfo2.RendererInfos, 0); val.rendererInfos = skinDefInfo2.RendererInfos; val.gameObjectActivations = skinDefInfo2.GameObjectActivations; val.meshReplacements = skinDefInfo2.MeshReplacements; val.projectileGhostReplacements = skinDefInfo2.ProjectileGhostReplacements; val.minionSkinReplacements = skinDefInfo2.MinionSkinReplacements; val.nameToken = skinDefInfo2.NameToken; ((Object)val).name = skinDefInfo2.Name; SkinDef.Awake -= new hook_Awake(DoNothing); return val; } private static void DoNothing(orig_Awake orig, SkinDef self) { } private static RendererInfo[] getRendererMaterials(RendererInfo[] defaultRenderers, params Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); for (int i = 0; i < array.Length; i++) { try { array[i].defaultMaterial = materials[i]; } catch { Log.Error("error adding skin rendererinfo material. make sure you're not passing in too many"); } } return array; } internal static MeshReplacement[] getMeshReplacements(AssetBundle assetBundle, RendererInfo[] defaultRendererInfos, params string[] meshes) { //IL_001d: 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) List list = new List(); for (int i = 0; i < defaultRendererInfos.Length; i++) { if (!string.IsNullOrEmpty(meshes[i])) { list.Add(new MeshReplacement { renderer = defaultRendererInfos[i].renderer, mesh = (meshes[i].Equals("None") ? null : assetBundle.LoadAsset(meshes[i])) }); } } return list.ToArray(); } } internal static class Tokens { public const string agilePrefix = "Agile."; public static string DamageText(string text) { return "" + text + ""; } public static string DamageValueText(float value) { return $"{value * 100f}% damage"; } public static string UtilityText(string text) { return "" + text + ""; } public static string RedText(string text) { return HealthText(text); } public static string HealthText(string text) { return "" + text + ""; } public static string KeywordText(string keyword, string sub) { return "" + keyword + "" + sub + ""; } public static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } public static string GetAchievementNameToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_NAME"; } public static string GetAchievementDescriptionToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_DESCRIPTION"; } } } namespace RobomandoMod.Modules.Characters { public abstract class CharacterBase where T : CharacterBase, new() { public abstract string assetBundleName { get; } public abstract string bodyName { get; } public abstract string modelPrefabName { get; } public abstract BodyInfo bodyInfo { get; } public virtual CustomRendererInfo[] customRendererInfos { get; } public virtual ItemDisplaysBase itemDisplays { get; } public static T instance { get; private set; } public abstract AssetBundle assetBundle { get; protected set; } public abstract GameObject bodyPrefab { get; protected set; } public abstract CharacterBody prefabCharacterBody { get; protected set; } public abstract GameObject characterModelObject { get; protected set; } public abstract CharacterModel prefabCharacterModel { get; protected set; } public virtual void Initialize() { instance = this as T; assetBundle = Asset.LoadAssetBundle(assetBundleName); InitializeCharacter(); } public virtual void InitializeCharacter() { InitializeCharacterBodyPrefab(); InitializeItemDisplays(); } protected virtual void InitializeCharacterBodyPrefab() { characterModelObject = Prefabs.LoadCharacterModel(assetBundle, modelPrefabName); bodyPrefab = Prefabs.CreateBodyPrefab(characterModelObject, bodyInfo); prefabCharacterBody = bodyPrefab.GetComponent(); prefabCharacterModel = Prefabs.SetupCharacterModel(bodyPrefab, customRendererInfos); } public virtual void InitializeItemDisplays() { ItemDisplayRuleSet val = ScriptableObject.CreateInstance(); ((Object)val).name = "idrs" + bodyName; prefabCharacterModel.itemDisplayRuleSet = val; if (itemDisplays != null) { ItemDisplays.queuedDisplays++; ContentManager.onContentPacksAssigned += SetItemDisplays; } } public void SetItemDisplays(ReadOnlyArray obj) { itemDisplays.SetItemDisplays(prefabCharacterModel.itemDisplayRuleSet); } public abstract void InitializeEntityStateMachines(); public abstract void InitializeSkills(); public abstract void InitializeSkins(); public abstract void InitializeCharacterMaster(); } public class BodyInfo { public string bodyName = ""; public string bodyNameToken = ""; public string subtitleNameToken = ""; public string bodyNameToClone = "Commando"; public Color bodyColor = Color.white; public Texture characterPortrait = null; public float sortPosition = 100f; public GameObject crosshair = null; public GameObject podPrefab = null; public float maxHealth = 100f; public float healthRegen = 1f; public float armor = 0f; public float shield = 0f; public int jumpCount = 1; public float damage = 12f; public float attackSpeed = 1f; public float crit = 1f; public float moveSpeed = 7f; public float acceleration = 80f; public float jumpPower = 15f; public bool autoCalculateLevelStats = true; public float healthGrowth = 30.000002f; public float regenGrowth = 0.2f; public float armorGrowth = 0f; public float shieldGrowth = 0f; public float damageGrowth = 2.4f; public float attackSpeedGrowth = 0f; public float critGrowth = 0f; public float moveSpeedGrowth = 0f; public float jumpPowerGrowth = 0f; public Vector3 aimOriginPosition = new Vector3(0f, 1.6f, 0f); public Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); public Vector3 cameraPivotPosition = new Vector3(0f, 0.8f, 0f); public float cameraParamsVerticalOffset = 1.37f; public float cameraParamsDepth = -10f; private CharacterCameraParams _cameraParams; public CharacterCameraParams cameraParams { get { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_cameraParams == (Object)null) { _cameraParams = ScriptableObject.CreateInstance(); _cameraParams.data.minPitch = BlendableFloat.op_Implicit(-70f); _cameraParams.data.maxPitch = BlendableFloat.op_Implicit(70f); _cameraParams.data.wallCushion = BlendableFloat.op_Implicit(0.1f); _cameraParams.data.pivotVerticalOffset = BlendableFloat.op_Implicit(cameraParamsVerticalOffset); _cameraParams.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, cameraParamsDepth)); } return _cameraParams; } set { _cameraParams = value; } } } public abstract class ItemDisplaysBase { public void SetItemDisplays(ItemDisplayRuleSet itemDisplayRuleSet) { List list = new List(); ItemDisplays.LazyInit(); SetItemDisplayRules(list); itemDisplayRuleSet.keyAssetRuleGroups = list.ToArray(); ItemDisplays.DisposeWhenDone(); } protected abstract void SetItemDisplayRules(List itemDisplayRules); } public abstract class SurvivorBase : CharacterBase where T : SurvivorBase, new() { public abstract string masterName { get; } public abstract string displayPrefabName { get; } public abstract string survivorTokenPrefix { get; } public abstract UnlockableDef characterUnlockableDef { get; } public abstract GameObject displayPrefab { get; protected set; } public override void InitializeCharacter() { base.InitializeCharacter(); InitializeDisplayPrefab(); InitializeSurvivor(); } protected virtual void InitializeDisplayPrefab() { displayPrefab = Prefabs.CreateDisplayPrefab(assetBundle, displayPrefabName, bodyPrefab); } protected virtual void InitializeSurvivor() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, bodyInfo.bodyColor, survivorTokenPrefix, characterUnlockableDef, bodyInfo.sortPosition); } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) Content.CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, sortPosition); } protected virtual void AddCssPreviewSkill(int indexFromEditor, SkillFamily skillFamily, SkillDef skillDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skillChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); return; } component.skillChangeResponses[indexFromEditor].triggerSkillFamily = skillFamily; component.skillChangeResponses[indexFromEditor].triggerSkill = skillDef; } protected virtual void AddCssPreviewSkin(int indexFromEditor, SkinDef skinDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skinChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); } else { component.skinChangeResponses[indexFromEditor].triggerSkin = skinDef; } } protected virtual void FinalizeCSSPreviewDisplayController() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)displayPrefab)) { return; } CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } component.bodyPrefab = bodyPrefab; List list = new List(); for (int i = 0; i < component.skillChangeResponses.Length; i++) { if ((Object)(object)component.skillChangeResponses[i].triggerSkillFamily != (Object)null) { list.Add(component.skillChangeResponses[i]); } } component.skillChangeResponses = list.ToArray(); } } } namespace RobomandoMod.Modules.BaseStates { public abstract class BaseMeleeAttack : BaseSkillState, IStepSetter { public int swingIndex; protected string hitboxGroupName = "SwordGroup"; protected DamageType damageType = (DamageType)0; protected float damageCoefficient = 3.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 1f; protected float attackStartPercentTime = 0.2f; protected float attackEndPercentTime = 0.4f; protected float earlyExitPercentTime = 0.4f; protected float hitStopDuration = 0.012f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 4f; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected string playbackRateParam = "Slash.playbackRate"; protected GameObject swingEffectPrefab; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound = (NetworkSoundEventIndex)(-1); public float duration; private bool hasFired; private float hitPauseTimer; private OverlapAttack attack; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_008c: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_0121: 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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); PlayAttackAnimation(); attack = new OverlapAttack(); attack.damageType = DamageTypeCombo.op_Implicit(damageType); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxGroupName); attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; } protected virtual void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash" + (1 + swingIndex), playbackRateParam, duration, 0.05f); } public override void OnExit() { if (inHitPause) { RemoveHitstop(); } ((EntityState)this).OnExit(); } protected virtual void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); } protected virtual void OnHitEnemyAuthority() { Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } ApplyHitstop(); } protected void ApplyHitstop() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, playbackRateParam); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void FireAttack() { if (((EntityState)this).isAuthority && attack.Fire((List)null)) { OnHitEnemyAuthority(); } } private void EnterAttack() { hasFired = true; Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); PlaySwingEffect(); if (((EntityState)this).isAuthority) { ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } public override void FixedUpdate() { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitPauseTimer -= Time.deltaTime; if (hitPauseTimer <= 0f && inHitPause) { RemoveHitstop(); } if (!inHitPause) { stopwatch += Time.deltaTime; } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat(playbackRateParam, 0f); } } bool flag = stopwatch >= duration * attackStartPercentTime; bool flag2 = stopwatch >= duration * attackEndPercentTime; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { if (!hasFired) { EnterAttack(); } FireAttack(); } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void RemoveHitstop() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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) ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) if (stopwatch >= duration * earlyExitPercentTime) { return (InterruptPriority)0; } return (InterruptPriority)1; } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(swingIndex); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); swingIndex = reader.ReadInt32(); } public void SetStep(int i) { swingIndex = i; } } public abstract class BaseTimedSkillState : BaseSkillState { protected float duration; protected float castStartTime; protected float castEndTime; protected bool hasFired; protected bool isFiring; protected bool hasExited; public abstract float TimedBaseDuration { get; } public abstract float TimedBaseCastStartPercentTime { get; } public virtual float TimedBaseCastEndPercentTime => 1f; public override void OnEnter() { InitDurationValues(); ((BaseState)this).OnEnter(); } protected virtual void InitDurationValues() { duration = TimedBaseDuration / ((BaseState)this).attackSpeedStat; castStartTime = TimedBaseCastStartPercentTime * duration; castEndTime = TimedBaseCastEndPercentTime * duration; } protected virtual void OnCastEnter() { } protected virtual void OnCastFixedUpdate() { } protected virtual void OnCastUpdate() { } protected virtual void OnCastExit() { } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); bool flag = ((EntityState)this).fixedAge >= castStartTime; bool flag2 = ((EntityState)this).fixedAge >= castEndTime; isFiring = false; if ((flag && !flag2) || (flag && flag2 && !hasFired)) { isFiring = true; OnCastFixedUpdate(); if (!hasFired) { OnCastEnter(); hasFired = true; } } if (flag2 && !hasExited) { hasExited = true; OnCastExit(); } if (((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void Update() { ((EntityState)this).Update(); if (isFiring) { OnCastUpdate(); } } } public class ExampleTimedSkillState : BaseTimedSkillState { public override float TimedBaseDuration => 1.5f; public override float TimedBaseCastStartPercentTime => 0.2f; public override float TimedBaseCastEndPercentTime => 0.9f; protected override void OnCastEnter() { } protected override void OnCastFixedUpdate() { } protected override void OnCastExit() { } } public class ExampleDelayedSkillState : BaseTimedSkillState { public override float TimedBaseDuration => 1.5f; public override float TimedBaseCastStartPercentTime => 0.2f; protected override void OnCastEnter() { } } } namespace RobomandoMod.Modules.Achievements { public abstract class BaseMasteryAchievement : BaseAchievement { public abstract string RequiredCharacterBody { get; } public abstract float RequiredDifficultyCoefficient { get; } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(RequiredCharacterBody); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Invalid comparison between Unknown and I4 //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)runReport.gameEnding) || !runReport.gameEnding.isWin) { return; } DifficultyIndex val = runReport.ruleBook.FindDifficulty(); DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(val); if (difficultyDef != null) { bool flag = difficultyDef.countsAsHardMode && difficultyDef.scalingValue >= RequiredDifficultyCoefficient; bool flag2 = difficultyDef.nameToken == "INFERNO_NAME"; bool flag3 = (int)val >= 3 && (int)val <= 10; if (flag || flag2 || flag3) { ((BaseAchievement)this).Grant(); } } } } } namespace RobomandoMod.Characters.Survivors.Robomando.Test { internal class LogEvents { public static void PrintSoundEvents() { NetworkSoundEventDef[] networkSoundEventDefs = ContentManager.networkSoundEventDefs; NetworkSoundEventDef[] array = networkSoundEventDefs; foreach (NetworkSoundEventDef val in array) { Log.Debug("Sound Event: " + ((Object)val).name + " at " + val.eventName); } } public static void PrintSceneNames() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) Enumerator enumerator = SceneCatalog.allBaseSceneNames.GetEnumerator(); try { while (enumerator.MoveNext()) { string current = enumerator.Current; Log.Debug("[LogEvents]: SceneName: " + current); } } finally { ((IDisposable)enumerator).Dispose(); } } } } namespace RobomandoMod.Characters.Survivors.Robomando.Content { public class RobomandoAddEmoteSkeleton { public static bool emotesSetup; public static void AddSkeleton(AssetBundle assetBundle) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown Log.Debug("Attempting to add emote skeleton"); SurvivorCatalog.Init += (hook_Init)delegate(orig_Init orig) { orig.Invoke(); if (!emotesSetup) { emotesSetup = true; foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "RobomandoBody") { GameObject val = assetBundle.LoadAsset("robomandoEmoteSkeletonFinal"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); CustomEmotesAPI.CreateNameTokenSpritePair("RAT_ROBOMANDO_NAME", assetBundle.LoadAsset("texEmoteIcon")); Debug.Log((object)"Setup Emote Skeleton"); } } } }; } } public class RobomandoBodyStats { public static float baseHealth = 75f; public static float healthGrow = 15f; public static float healthRegen = 1.5f; public static float healthRegenGrow = 0.3f; public static float baseDamage = 15f; public static float damageGrowth = 3f; public static float baseSpeed = 8.2f; public static float baseArmor = 0f; public static int jumps = 1; } public static class RobomandoQualityIntegration { private static float UncommonQualityWeight = 0.7f; private static float RareQualityWeight = 0.2f; private static float EpicQualityWeight = 0.08f; private static float LegendaryQualityWeight = 0.02f; private static WeightedSelection _qualitySelection = new WeightedSelection(8); private static Type _costTypeDefClass = null; private static Type _dropTableClass = null; private static CostTypeIndex _whiteQuality; private static CostTypeIndex _greenQuality; private static CostTypeIndex _redQuality; private static CostTypeIndex _yellowQuality; private static List typeDefs = new List(4); private static Dictionary indexToTier = new Dictionary(); private static MethodInfo _pickupInfoMethod = null; private static bool _loaded = false; public static void Init() { _qualitySelection.AddChoice(0, UncommonQualityWeight); _qualitySelection.AddChoice(1, RareQualityWeight); _qualitySelection.AddChoice(2, EpicQualityWeight); _qualitySelection.AddChoice(3, LegendaryQualityWeight); Assembly assembly = Assembly.GetAssembly(typeof(ItemQualitiesPlugin)); Type[] array = default(Type[]); bool typesSafe = Reflection.GetTypesSafe(assembly, ref array); Type[] array2 = array; foreach (Type type in array2) { Debug.Log((object)("Reflection: type name " + type.Name)); if (type.Name == "CustomCostTypeIndex") { Debug.Log((object)("Reflection: " + type.Name + " found")); _costTypeDefClass = type; } else if (type.Name == "DropTableQualityHandler") { Debug.Log((object)("Reflection: " + type.Name + " found")); _dropTableClass = type; } if (_costTypeDefClass != null && _dropTableClass != null) { break; } } _pickupInfoMethod = Reflection.GetMethodCached(_dropTableClass, "GetCurrentPickupRollInfo", new Type[1] { typeof(CharacterMaster) }); } private static void InitQualityTypes() { //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_0032: 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_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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Invalid comparison between Unknown and I4 //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Invalid comparison between Unknown and I4 //IL_0076: 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_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00f7: Invalid comparison between Unknown and I4 //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_012f: 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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0105: 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) if (_costTypeDefClass != null) { _whiteQuality = Reflection.GetPropertyValue(_costTypeDefClass, "WhiteItemQuality"); _greenQuality = Reflection.GetPropertyValue(_costTypeDefClass, "GreenItemQuality"); _redQuality = Reflection.GetPropertyValue(_costTypeDefClass, "RedItemQuality"); _yellowQuality = Reflection.GetPropertyValue(_costTypeDefClass, "BossItemQuality"); if ((int)_whiteQuality > 0) { typeDefs.Add(_whiteQuality); indexToTier.Add(_whiteQuality, (ItemTier)0); } if ((int)_greenQuality > 0) { typeDefs.Add(_greenQuality); indexToTier.Add(_greenQuality, (ItemTier)1); } if ((int)_redQuality > 0) { typeDefs.Add(_redQuality); indexToTier.Add(_redQuality, (ItemTier)2); } if ((int)_yellowQuality > 0) { typeDefs.Add(_yellowQuality); indexToTier.Add(_yellowQuality, (ItemTier)4); } Log.Debug($"Cost Types: {_whiteQuality} {_greenQuality} {_redQuality} {_yellowQuality}"); Log.Debug($"Cost Type count: {typeDefs.Count}"); } } public static bool IsQualityPrinter(GameObject device) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) PurchaseInteraction val = default(PurchaseInteraction); if (device.TryGetComponent(ref val)) { if (!_loaded) { InitQualityTypes(); _loaded = true; } if (typeDefs.IndexOf(val.costType) != -1) { return true; } } return false; } public static PickupIndex OverwritePrinterIndex(PickupIndex orig, GameObject device, GameObject robo, Xoroshiro128Plus rng) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_0091: 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_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) rng = new Xoroshiro128Plus(rng.nextUlong); CharacterBody val = (Object.op_Implicit((Object)(object)robo) ? robo.GetComponent() : null); CharacterMaster roboMaster = (Object.op_Implicit((Object)(object)val) ? val.master : null); QualityTier val2 = (QualityTier)TryRerollQualityTier(roboMaster, rng); PurchaseInteraction val3 = default(PurchaseInteraction); if (device.TryGetComponent(ref val3) && indexToTier.ContainsKey(val3.costType)) { orig = PickupCatalog.FindScrapIndexForItemTier(indexToTier[val3.costType]); } if (orig == PickupIndex.none) { orig = PickupCatalog.FindScrapIndexForItemTier((ItemTier)0); } return QualityCatalog.GetPickupIndexOfQuality(orig, val2); } public static int TryRerollQualityTier(CharacterMaster roboMaster, Xoroshiro128Plus rng) { //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_001c: Unknown result type (might be due to invalid IL or missing references) PickupRollInfo val = (PickupRollInfo)_pickupInfoMethod.Invoke(null, new object[1] { roboMaster }); int luck = val.Luck; int num = _qualitySelection.Evaluate(rng.nextNormalizedFloat); if (luck > 0) { for (int i = 0; i < luck; i++) { int num2 = _qualitySelection.Evaluate(rng.nextNormalizedFloat); if (num2 > num) { num = num2; } } } return num; } } public class RobomandoScepterIntegration { public static ItemDef scepterDef; public static GameObject scepterDisplay; public static void Init(SurvivorBase robo, SkillFamily family, SkillDef specialSkillDef2) { ItemBase.instance.RegisterScepterSkill(specialSkillDef2, robo.bodyName, (SkillSlot)3, 0); scepterDef = ItemBase.myDef; scepterDisplay = ItemBase.displayPrefab; } } } namespace RobomandoMod.Characters.Survivors.Robomando.Components { public class BombImpactComponent : MonoBehaviour { public void OnCollisionEnter(Collision collision) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_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_006c: 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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: 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_0086: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown if (NetworkServer.active && collision.gameObject.layer == LayerIndex.world.intVal) { Quaternion rotation = Quaternion.LookRotation(((ContactPoint)(ref collision.contacts[0])).normal); Vector3 point = ((ContactPoint)(ref collision.contacts[0])).point; Vector3 val = (((Component)this).transform.position - point) * 0.2f; point += val; EffectManager.SpawnEffect(RobomandoAssets.bombHitWorldEffect, new EffectData { origin = point, rotation = rotation }, true); } } } public class HackIndicatorScan : MonoBehaviour { private class HackIndicator : Indicator { public override void UpdateVisualizer() { ((Indicator)this).UpdateVisualizer(); } public HackIndicator(GameObject owner, GameObject visualizerPrefab) : base(owner, visualizerPrefab) { } } private CharacterBody robo; private Dictionary indicators; private GameObject cachedInteractable = null; private Indicator ind; private InteractionDriver driver; private Color origColor = new Color(163f, 255f, 248f); private Color overwireColor = new Color(255f, 69f, 69f); public void Start() { Debug.Log((object)"HackIndicator component present"); robo = ((Component)this).GetComponentInChildren(); indicators = new Dictionary(); driver = ((Component)this).GetComponentInChildren(); } public void Init() { robo = ((Component)this).GetComponentInChildren(); } public void FixedUpdate() { //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Expected O, but got Unknown string skillName = robo.skillLocator.special.skillDef.skillName; bool flag = skillName.Equals("RobomandoHack"); bool flag2 = skillName.Equals("RobomandoOverwire"); if ((Object)(object)robo != (Object)null && (flag || flag2)) { if (robo.skillLocator.special.IsReady()) { if (Object.op_Implicit((Object)(object)driver.currentInteractable) && Hack.CanHack(driver.currentInteractable)) { if ((Object)(object)driver.currentInteractable != (Object)(object)cachedInteractable) { if (ind != null) { ClearIndicator(); } ind = new Indicator(((Component)((Component)robo).gameObject.transform.root).gameObject, flag2 ? RobomandoAssets.hackIndicatorRed : RobomandoAssets.hackIndicator); ShopTerminalBehavior val = default(ShopTerminalBehavior); bool flag3 = driver.currentInteractable.TryGetComponent(ref val); DroneVendorTerminalBehavior val2 = default(DroneVendorTerminalBehavior); bool flag4 = driver.currentInteractable.TryGetComponent(ref val2); if ((flag3 || flag4) && !Hack.IsPrinter(driver.currentInteractable)) { GameObject val3 = (flag3 ? ((Component)val.pickupDisplay).gameObject : ((Component)val2.pickupDisplay).gameObject); ind.targetTransform = val3.transform; } else { ind.targetTransform = driver.currentInteractable.transform; } ind.active = true; cachedInteractable = driver.currentInteractable; } } else { ClearIndicator(); } } else { ClearIndicator(); } } else { if (!Object.op_Implicit((Object)(object)robo)) { robo = ((Component)this).GetComponentInChildren(); } if (robo.skillLocator.special.skillDef.skillName.Equals("RobomandoHack")) { } } } public void ClearIndicator() { if (ind != null) { ind.active = false; ind.DestroyVisualizer(); ind = null; } cachedInteractable = null; } public void RemoveIndicator(GameObject device) { HackIndicator hackIndicator = indicators[device]; ((Indicator)hackIndicator).active = false; indicators.Remove(device); } public void ClearIndicators() { foreach (KeyValuePair indicator in indicators) { ((Indicator)indicator.Value).active = false; indicators.Remove(indicator.Key); } } } public class KillVFX : MonoBehaviour { [CompilerGenerated] private sealed class d__2 : IEnumerable, IEnumerable, IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; private int <>l__initialThreadId; public KillVFX <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__2(int <>1__state) { this.<>1__state = <>1__state; <>l__initialThreadId = Environment.CurrentManagedThreadId; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(<>4__this.lifeTime); <>1__state = 1; return true; case 1: <>1__state = -1; Object.Destroy((Object)(object)((Component)<>4__this).gameObject); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { d__2 result; if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId) { <>1__state = 0; result = this; } else { result = new d__2(0) { <>4__this = <>4__this }; } return result; } [DebuggerHidden] IEnumerator IEnumerable.GetEnumerator() { return ((IEnumerable)this).GetEnumerator(); } } public float lifeTime = 1f; public void Start() { ((MonoBehaviour)this).StartCoroutine("KillAfter"); } [IteratorStateMachine(typeof(d__2))] public IEnumerable KillAfter() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__2(-2) { <>4__this = this }; } } public class RobomandoCinematicVoiceLines : MonoBehaviour { public class VoiceLineNetMessage : INetMessage, ISerializableObject { public NetworkInstanceId obj; public string voiceEvent; public bool visitedServer; public VoiceLineNetMessage(NetworkInstanceId gObj, string voiceEvent, bool visited = false) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) obj = gObj; this.voiceEvent = voiceEvent; visitedServer = visited; } public VoiceLineNetMessage() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) obj = NetworkInstanceId.Invalid; voiceEvent = string.Empty; visitedServer = false; } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) obj = reader.ReadNetworkId(); voiceEvent = reader.ReadString(); visitedServer = reader.ReadBoolean(); } public void OnReceived() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) if (obj == NetworkInstanceId.Invalid) { Log.Warning("[VoiceLineController] Message came back with invalid id."); return; } GameObject val = null; val = ((!NetworkServer.active) ? ClientScene.FindLocalObject(obj) : NetworkServer.FindLocalObject(obj)); RobomandoCinematicVoiceLines robomandoCinematicVoiceLines = default(RobomandoCinematicVoiceLines); CharacterBody val2 = default(CharacterBody); if ((Object)(object)val == (Object)null) { Log.Warning("[VoiceLineController] Message came back with invalid object and valid id."); } else if (!val.TryGetComponent(ref robomandoCinematicVoiceLines)) { Log.Warning("[VoiceLineController] Message came back without voice line component, but with valid id."); } else if (!val.TryGetComponent(ref val2)) { Log.Warning("[VoiceLineController] Message came back without body component, but with valid id."); } else if (!((NetworkBehaviour)val2).hasAuthority) { if (NetworkServer.active && !visitedServer) { robomandoCinematicVoiceLines.PlayVoiceEventInternal(voiceEvent); VoiceLineNetMessage voiceLineNetMessage = new VoiceLineNetMessage(obj, voiceEvent, visited: true); NetMessageExtensions.Send((INetMessage)(object)voiceLineNetMessage, (NetworkDestination)1); } else { robomandoCinematicVoiceLines.PlayVoiceEventInternal(voiceEvent); } } } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(obj); writer.Write(voiceEvent); writer.Write(visitedServer); } } private class VoiceChain : IEnumerator, IEnumerator, IDisposable { private class VoiceNode { public string soundEvent = ""; public float offset; public VoiceNode next; public VoiceNode(string soundEvent, float offset = 0f) { this.soundEvent = soundEvent; this.offset = offset; next = null; } } private VoiceNode _current; private VoiceNode _head; public string Current => _current.soundEvent; object IEnumerator.Current => Current; public VoiceChain(List soundEvents) { foreach (string soundEvent in soundEvents) { Append(soundEvent); } Reset(); } public void Append(string soundEvent, float in_offset = 0f) { VoiceNode voiceNode = new VoiceNode(soundEvent, in_offset); if (_head == null) { _head = voiceNode; _current = _head; } else { _current.next = voiceNode; _current = _current.next; } } public bool MoveNext() { if (!IsValid()) { return false; } _current = _current.next; return true; } public string PopNext() { string current = Current; MoveNext(); return current; } public void Reset() { _current = _head; } public bool IsValid() { return _current != null; } public void Dispose() { Reset(); while (_current != null) { _current = _current.next; } _head = null; } } [CompilerGenerated] private sealed class d__20 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float duration; public VoiceChain chain; public RobomandoCinematicVoiceLines <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__20(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(duration); <>1__state = 1; return true; case 1: <>1__state = -1; AkSoundEngine.PostEvent(chain.PopNext(), <>4__this.characterGameObject, 8u, new EventCallback(<>4__this.postEvent), (object)chain); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__21 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float duration; public RobomandoCinematicVoiceLines <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__21(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(duration); <>1__state = 1; return true; case 1: <>1__state = -1; <>4__this.system.Stop(); <>4__this.isPlaying = false; <>2__current = (object)new WaitForSeconds(<>4__this.voiceCooldownTime); <>1__state = 2; return true; case 2: <>1__state = -1; <>4__this.canPlayVoice = true; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public ParticleSystem system; private GameObject characterGameObject; private CharacterBody body; public Xoroshiro128Plus rng; private bool canPlayVoice = true; private bool isPlaying = false; private float voiceCooldownTime = 5f; private float randomVoiceLineTimeMin = 30f; private float randomVoiceLineTimeMax = 60f; private float currentWaitTime = 0f; private float currentWaitGoal = 0f; private List grabBagList = new List { "Play_Robo_Voice_Enemies_Check", "Play_Robo_Voice_Gold_Number", "Play_Robo_Voice_Survival_Time", "Play_Robo_Voice_Grab_Bag", "Play_Robo_Voice_Grab_Bag", "Play_Robo_Voice_Grab_Bag", "Play_Robo_Voice_Grab_Bag" }; public void Start() { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Expected O, but got Unknown //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Expected O, but got Unknown characterGameObject = ((Component)this).gameObject; body = characterGameObject.GetComponent(); if (NetworkServer.active) { rng = new Xoroshiro128Plus(Run.instance.runRNG.nextUlong); } else { rng = new Xoroshiro128Plus((ulong)Random.RandomRangeInt(0, int.MaxValue)); } currentWaitGoal = rng.RangeFloat(randomVoiceLineTimeMin, randomVoiceLineTimeMax); } public void Update() { if (RobomandoConfig.CinematicMode.Value) { currentWaitTime += Time.deltaTime; if (currentWaitTime > currentWaitGoal) { currentWaitTime = 0f; currentWaitGoal = rng.RangeFloat(randomVoiceLineTimeMin, randomVoiceLineTimeMax); RandomVoiceBag(); } } } private void RandomVoiceBag() { string text = grabBagList[rng.RangeInt(0, grabBagList.Count)]; if (text.Equals("Play_Robo_Voice_Enemies_Check")) { EnemiesNearbyBehavior(); } else { PlayVoiceEvent(text); } } public void EnemiesNearbyBehavior() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: 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) SphereSearch val = new SphereSearch(); val.origin = body.corePosition; val.radius = 35f; val.queryTriggerInteraction = (QueryTriggerInteraction)1; val.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; val.RefreshCandidates(); TeamMask enemyTeams = TeamMask.GetEnemyTeams(body.teamComponent.teamIndex); val.FilterCandidatesByHurtBoxTeam(enemyTeams); val.FilterCandidatesByDistinctHurtBoxEntities(); HurtBox[] hurtBoxes = val.GetHurtBoxes(); int num = 0; HurtBox[] array = hurtBoxes; foreach (HurtBox val2 in array) { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)val2.healthComponent)) { HealthComponent healthComponent = val2.healthComponent; if (healthComponent.alive && !((object)((Component)healthComponent).gameObject).Equals((object?)characterGameObject)) { num++; } } } if (num <= 0) { PlayVoiceEvent("Play_Robo_Voice_No_Enemies"); } else { PlayVoiceEvent("Play_Robo_Voice_Enemies_Near"); } } public static void TryPlayRoboVoice(GameObject robo, string voiceEvent) { CharacterBody val = default(CharacterBody); RobomandoCinematicVoiceLines robomandoCinematicVoiceLines = default(RobomandoCinematicVoiceLines); if (Object.op_Implicit((Object)(object)robo) && robo.TryGetComponent(ref val) && val.baseNameToken != null && val.baseNameToken.Equals("RAT_ROBOMANDO_NAME") && robo.TryGetComponent(ref robomandoCinematicVoiceLines)) { robomandoCinematicVoiceLines.PlayVoiceEvent(voiceEvent); } } public void PlayVoiceEvent(string voiceEvent) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) VoiceLineNetMessage voiceLineNetMessage = new VoiceLineNetMessage(((NetworkBehaviour)body).netId, voiceEvent); if (((NetworkBehaviour)body).hasAuthority) { PlayVoiceEventInternal(voiceEvent); if (!NetworkServer.active) { NetMessageExtensions.Send((INetMessage)(object)voiceLineNetMessage, (NetworkDestination)2); } else { NetMessageExtensions.Send((INetMessage)(object)voiceLineNetMessage, (NetworkDestination)1); } } } private void PlayVoiceEventInternal(string voiceEvent) { //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Expected O, but got Unknown Log.Debug("[CinematicVoiceController] Tried playing voice event " + voiceEvent); if (!AkSoundEngine.GetIDFromString(voiceEvent).Equals(0u) && RobomandoConfig.CinematicMode.Value && canPlayVoice) { VoiceChain voiceChain = new VoiceChain(new List { voiceEvent }); if (voiceEvent.Equals("Play_Robo_Voice_Gold_Number")) { voiceChain = ConstructGoldVoiceChain(voiceChain); } else if (voiceEvent.Equals("Play_Robo_Voice_Survival_Time")) { voiceChain = ConstructSurvivalTimeVoiceChain(voiceChain); } else if (voiceEvent.Equals("Play_Robo_Voice_Spawn_Stage")) { voiceChain = ConstructStageVoiceChain(voiceChain); } voiceChain.Reset(); AkSoundEngine.PostEvent(voiceChain.PopNext(), characterGameObject, 8u, new EventCallback(postEvent), (object)voiceChain); isPlaying = true; canPlayVoice = false; } } private void postEvent(object in_cookie, AkCallbackType in_type, AkCallbackInfo in_info) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown VoiceChain voiceChain = (VoiceChain)in_cookie; if ((int)in_type == 8) { AkDurationCallbackInfo val = (AkDurationCallbackInfo)in_info; float duration = val.fDuration / 1000f; if (!system.isPlaying) { system.Play(); } if (!voiceChain.IsValid()) { ((MonoBehaviour)this).StartCoroutine(StopVoiceSystemAndReset(duration)); } else { ((MonoBehaviour)this).StartCoroutine(DelayNextPostEvent(duration, voiceChain)); } } } [IteratorStateMachine(typeof(d__20))] private IEnumerator DelayNextPostEvent(float duration, VoiceChain chain) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__20(0) { <>4__this = this, duration = duration, chain = chain }; } [IteratorStateMachine(typeof(d__21))] private IEnumerator StopVoiceSystemAndReset(float duration) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__21(0) { <>4__this = this, duration = duration }; } private VoiceChain ConstructStageVoiceChain(VoiceChain chain) { chain = AddNumberLines(chain, (Run.instance.stageClearCount + 1).ToString()); return chain; } private VoiceChain ConstructGoldVoiceChain(VoiceChain chain) { uint num = 0u; CharacterBody val = default(CharacterBody); if (Object.op_Implicit((Object)(object)characterGameObject) && characterGameObject.TryGetComponent(ref val) && Object.op_Implicit((Object)(object)val.master)) { num = val.master.money; } chain = AddNumberLines(chain, num.ToString()); return chain; } private VoiceChain ConstructSurvivalTimeVoiceChain(VoiceChain chain) { float runStopwatch = Run.instance.GetRunStopwatch(); TimeSpan timeSpan = TimeSpan.FromSeconds(runStopwatch); string text = $"{(int)Math.Floor(timeSpan.TotalMinutes):D1}:{Math.Abs(timeSpan.Seconds):D2}"; string[] array = text.Split(":"); chain = AddNumberLines(chain, array[0]); chain.Append("Play_Robo_Voice_Minutes_And"); chain = AddNumberLines(chain, array[1]); chain.Append("Play_Robo_Voice_Seconds"); return chain; } private VoiceChain AddNumberLines(VoiceChain chain, string numbers) { char[] array = numbers.ToCharArray(); char[] array2 = array; for (int i = 0; i < array2.Length; i++) { char c = array2[i]; if (char.IsDigit(c)) { chain.Append("Play_Robo_Voice_Num_" + c); } } return chain; } } } namespace RobomandoMod.Survivors.Robomando { public static class RobomandoAI { public static void Init(GameObject bodyPrefab, string masterName) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_0210: 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_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) GameObject val = Prefabs.CreateBlankMasterPrefab(bodyPrefab, masterName); BaseAI component = val.GetComponent(); component.aimVectorDampTime = 0.1f; component.aimVectorMaxSpeed = 360f; AISkillDriver val2 = val.AddComponent(); val2.customName = "Use Primary Shot"; val2.skillSlot = (SkillSlot)0; val2.requiredSkill = null; val2.requireSkillReady = false; val2.requireEquipmentReady = false; val2.minUserHealthFraction = float.NegativeInfinity; val2.maxUserHealthFraction = float.PositiveInfinity; val2.minTargetHealthFraction = float.NegativeInfinity; val2.maxTargetHealthFraction = float.PositiveInfinity; val2.minDistance = 0f; val2.maxDistance = 256f; val2.selectionRequiresTargetLoS = true; val2.selectionRequiresOnGround = false; val2.selectionRequiresAimTarget = false; val2.maxTimesSelected = -1; val2.moveTargetType = (TargetType)0; val2.activationRequiresTargetLoS = false; val2.activationRequiresAimTargetLoS = false; val2.activationRequiresAimConfirmation = false; val2.movementType = (MovementType)1; val2.moveInputScale = 1f; val2.aimType = (AimType)1; val2.ignoreNodeGraph = false; val2.shouldSprint = false; val2.shouldFireEquipment = false; val2.buttonPressType = (ButtonPressType)0; val2.driverUpdateTimerOverride = -1f; val2.resetCurrentEnemyOnNextDriverSelection = false; val2.noRepeat = false; val2.nextHighPriorityOverride = null; AISkillDriver val3 = val.AddComponent(); val3.customName = "Use Secondary Shoot"; val3.skillSlot = (SkillSlot)1; val3.requireSkillReady = true; val3.minDistance = 0f; val3.maxDistance = 25f; val3.selectionRequiresTargetLoS = false; val3.selectionRequiresOnGround = false; val3.selectionRequiresAimTarget = false; val3.maxTimesSelected = -1; val3.moveTargetType = (TargetType)0; val3.activationRequiresTargetLoS = false; val3.activationRequiresAimTargetLoS = false; val3.activationRequiresAimConfirmation = true; val3.movementType = (MovementType)1; val3.moveInputScale = 1f; val3.aimType = (AimType)1; val3.buttonPressType = (ButtonPressType)0; AISkillDriver val4 = val.AddComponent(); val4.customName = "Use Utility Roll"; val4.skillSlot = (SkillSlot)2; val4.requireSkillReady = true; val4.minDistance = 8f; val4.maxDistance = 20f; val4.selectionRequiresTargetLoS = true; val4.selectionRequiresOnGround = false; val4.selectionRequiresAimTarget = false; val4.maxTimesSelected = -1; val4.moveTargetType = (TargetType)0; val4.activationRequiresTargetLoS = false; val4.activationRequiresAimTargetLoS = false; val4.activationRequiresAimConfirmation = false; val4.movementType = (MovementType)2; val4.moveInputScale = 1f; val4.aimType = (AimType)1; val4.buttonPressType = (ButtonPressType)0; AISkillDriver val5 = val.AddComponent(); val5.customName = "Use Special bomb"; val5.skillSlot = (SkillSlot)3; val5.requireSkillReady = true; val5.minDistance = 0f; val5.maxDistance = 20f; val5.selectionRequiresTargetLoS = false; val5.selectionRequiresOnGround = false; val5.selectionRequiresAimTarget = false; val5.maxTimesSelected = -1; val5.moveTargetType = (TargetType)0; val5.activationRequiresTargetLoS = false; val5.activationRequiresAimTargetLoS = false; val5.activationRequiresAimConfirmation = false; val5.movementType = (MovementType)1; val5.moveInputScale = 1f; val5.aimType = (AimType)1; val5.buttonPressType = (ButtonPressType)0; AISkillDriver val6 = val.AddComponent(); val6.customName = "Chase"; val6.skillSlot = (SkillSlot)(-1); val6.requireSkillReady = false; val6.minDistance = 0f; val6.maxDistance = float.PositiveInfinity; val6.moveTargetType = (TargetType)0; val6.activationRequiresTargetLoS = false; val6.activationRequiresAimTargetLoS = false; val6.activationRequiresAimConfirmation = false; val6.movementType = (MovementType)1; val6.moveInputScale = 1f; val6.aimType = (AimType)1; val6.buttonPressType = (ButtonPressType)0; } } public static class RobomandoAssets { public static GameObject zapHitImpactEffect; public static GameObject zapMuzzleFlashEffect; public static GameObject bombHitWorldEffect; public static GameObject zapTracerEffect; public static GameObject gunImpactEffect; public static GameObject gunMuzzleFlashEffect; public static GameObject gunTracerEffect; public static GameObject hackEffect; public static GameObject hackRedEffect; public static GameObject hackRedEffectProc; private static List effects = new List(); public static GameObject projectileBouncyBomb; public static GameObject hackIndicator; public static GameObject hackIndicatorRed; private static AssetBundle _assetBundle; private static AssetBundle _vfxAssets; public static void Init(AssetBundle assetBundle, AssetBundle vfxbundle) { _assetBundle = assetBundle; _vfxAssets = vfxbundle; CreateEffects(); CreateUI(); CreateProjectiles(); } private static void CreateEffects() { zapHitImpactEffect = LoadEffect("ImpactRobomandoZap"); zapMuzzleFlashEffect = LoadEffect("RoboZapMuzzleFlash"); bombHitWorldEffect = LoadEffect("ImpactRobomandoBombBounce"); zapTracerEffect = LoadEffect("RoboZapTrail"); gunImpactEffect = LoadEffect("ImpactRobomandoGun"); gunMuzzleFlashEffect = LoadEffect("RoboGunMuzzleFlash"); gunTracerEffect = LoadEffect("RoboGunTrail"); hackEffect = LoadEffect("RobomandoHack"); hackRedEffect = LoadEffect("RobomandoHackRed"); hackRedEffectProc = LoadEffect("RobomandoHackRedProc"); } private static GameObject LoadEffect(string prefabName, float lifeTime = 1f) { GameObject val = _vfxAssets.LoadEffect(prefabName); effects.Add(val); val.AddComponent().lifeTime = lifeTime; Log.Debug(StringUtils.FormatWith("Loaded {0}", (IFormatProvider)null, (object)prefabName)); return val; } private static GameObject LoadTracer(string prefabName, float lifeTime = 1f) { GameObject val = _vfxAssets.LoadEffect(prefabName); effects.Add(val); val.AddComponent().lifeTime = lifeTime; return val; } private static void CreateUI() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Expected O, but got Unknown //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Expected O, but got Unknown hackIndicator = _assetBundle.LoadAsset("RobomandoHackingIndicator"); Keyframe[] array = (Keyframe[])(object)new Keyframe[2] { new Keyframe(0f, 1.4f), new Keyframe(1f, 0.9f) }; ObjectScaleCurve val = ((Component)hackIndicator.transform.GetChild(0)).gameObject.AddComponent(); val.timeMax = 0.1f; val.useOverallCurveOnly = true; val.resetOnAwake = true; AnimationCurve overallCurve = val.overallCurve; overallCurve = new AnimationCurve(array); for (int i = 0; i < overallCurve.length; i++) { overallCurve.SmoothTangents(i, 0f); } val.overallCurve = overallCurve; hackIndicatorRed = _assetBundle.LoadAsset("RobomandoHackingIndicatorRed"); ObjectScaleCurve val2 = ((Component)hackIndicatorRed.transform.GetChild(0)).gameObject.AddComponent(); val2.timeMax = 0.1f; val2.useOverallCurveOnly = true; val2.resetOnAwake = true; overallCurve = val2.overallCurve; overallCurve = new AnimationCurve(array); for (int j = 0; j < overallCurve.length; j++) { overallCurve.SmoothTangents(j, 0f); } val2.overallCurve = overallCurve; if ((Object)(object)hackIndicator == (Object)null) { Debug.LogWarning((object)"HackIndicator is missing!"); } if ((Object)(object)hackIndicatorRed == (Object)null) { Debug.LogWarning((object)"HackIndicatorRed is missing!"); } } private static void CreateBombExplosionEffect() { } private static void CreateProjectiles() { CreateBombProjectile(); Content.AddProjectilePrefab(projectileBouncyBomb); } private static void CreateBombProjectile() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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) projectileBouncyBomb = Asset.CloneProjectilePrefab("CommandoGrenadeProjectile", "RobomandoBombProjectile"); Object.Destroy((Object)(object)projectileBouncyBomb.GetComponent()); projectileBouncyBomb.GetComponent().lifetime = 99f; projectileBouncyBomb.GetComponent().damageType.damageSource = (DamageSource)2; ProjectileImpactExplosion val = projectileBouncyBomb.AddComponent(); ((ProjectileExplosion)val).blastRadius = 8f; ((ProjectileExplosion)val).blastProcCoefficient = RobomandoStaticValues.bouncyBombProcCoefficient; ((ProjectileExplosion)val).blastDamageCoefficient = 1f; ((ProjectileExplosion)val).falloffModel = (FalloffModel)0; val.destroyOnEnemy = true; val.lifetime = 6f; val.impactEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/StickyBomb/BehemothVFX.prefab").WaitForCompletion(); val.lifetimeExpiredSound = Content.CreateAndAddNetworkSoundEventDef("Play_item_proc_behemoth"); val.timerAfterImpact = true; val.lifetimeAfterImpact = 0.25f; val.destroyOnWorld = false; val.impactOnWorld = false; val.explodeOnLifeTimeExpiration = true; PhysicMaterial material = _assetBundle.LoadAsset("BouncyBombPhysicsMaterial"); ProjectileController component = ((Component)val).GetComponent(); if ((Object)(object)_assetBundle.LoadAsset("BouncyBombGhost") != (Object)null) { component.ghostPrefab = _assetBundle.CreateProjectileGhostPrefab("BouncyBombGhost"); } component.startSound = ""; projectileBouncyBomb.GetComponent().material = material; projectileBouncyBomb.AddComponent(); } } public static class RobomandoBuffs { public static BuffDef armorBuff; public static void Init(AssetBundle assetBundle) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) armorBuff = Content.CreateAndAddBuff("RobomandoArmorBuff", LegacyResourcesAPI.Load("BuffDefs/HiddenInvincibility").iconSprite, Color.white, canStack: false, isDebuff: false); } } public static class RobomandoConfig { public static ConfigEntry allowAbilityStatTweaks; public static ConfigEntry RoboTalks; public static ConfigEntry CinematicMode; public static ConfigEntry EnableNewIcons; public static ConfigEntry EnableCommandoSkin; public static ConfigEntry EnableBlueSkin; public static ConfigEntry EnableGreenSkin; public static ConfigEntry EnableMasterySkin; public static ConfigEntry EnableGrandmasterySkin; public static ConfigEntry EnableSodaSkin; public static ConfigEntry SingleShotDamageReplacement; public static ConfigEntry SingleShotCoefficientReplacement; public static ConfigEntry ZapDamageReplacement; public static ConfigEntry ZapCoefficientReplacement; public static ConfigEntry ZapCooldownReplacement; public static ConfigEntry DiveCooldownReplacement; public static ConfigEntry DiveCrashReplacement; public static ConfigEntry HackCooldownReplacement; public static ConfigEntry HackFailCooldownReplacement; public static ConfigEntry HackDurationReplacement; public static bool allowStatTweaksOnLaunch; public static void ApplySingleShotChange() { if (CheckIfShouldApplyConfigStats()) { RobomandoStaticValues.shootDamageCoefficient = SingleShotDamageReplacement.Value / 100f; RobomandoStaticValues.shootProcCoefficient = SingleShotCoefficientReplacement.Value; RobomandoTokens.ChangeSingleShotText(); } } public static void ApplyZapChange(bool LoadFromInit) { if (CheckIfShouldApplyConfigStats()) { RobomandoStaticValues.zapDamageCoefficient = ZapDamageReplacement.Value / 100f; RobomandoStaticValues.zapProcCoefficient = ZapCoefficientReplacement.Value; RobomandoStaticValues.zapCooldown = ZapCooldownReplacement.Value; if (!LoadFromInit) { SkillDef skillDef = SkillCatalog.GetSkillDef(SkillCatalog.FindSkillIndexByName("RobomandoZap")); skillDef.baseRechargeInterval = RobomandoStaticValues.zapCooldown; } RobomandoTokens.ChangeZapText(); } } public static void ApplyDiveChanges(bool LoadFromInit) { if (CheckIfShouldApplyConfigStats()) { RobomandoStaticValues.diveCooldown = DiveCooldownReplacement.Value; RobomandoStaticValues.diveCrashTime = DiveCrashReplacement.Value; if (!LoadFromInit) { SkillDef skillDef = SkillCatalog.GetSkillDef(SkillCatalog.FindSkillIndexByName("RobomandoRoll")); skillDef.baseRechargeInterval = RobomandoStaticValues.diveCooldown; } } } public static void ApplyHackChanges() { if (CheckIfShouldApplyConfigStats()) { RobomandoStaticValues.hackTime = HackDurationReplacement.Value; RobomandoStaticValues.successfullHackCooldown = HackCooldownReplacement.Value; RobomandoStaticValues.unsuccessfullHackCooldown = HackFailCooldownReplacement.Value; } } private static bool CheckIfStatsDisabled() { return !allowAbilityStatTweaks.Value; } private static bool CheckIfShouldApplyConfigStats() { return allowStatTweaksOnLaunch; } public static void Init() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Expected O, but got Unknown //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Expected O, but got Unknown //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Expected O, but got Unknown //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Expected O, but got Unknown //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: Expected O, but got Unknown //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Expected O, but got Unknown //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Expected O, but got Unknown //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Expected O, but got Unknown //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Expected O, but got Unknown //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Expected O, but got Unknown //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Expected O, but got Unknown //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Expected O, but got Unknown //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Expected O, but got Unknown //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Expected O, but got Unknown //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Expected O, but got Unknown //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Expected O, but got Unknown //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_036b: Expected O, but got Unknown //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_039b: Expected O, but got Unknown //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03cf: Expected O, but got Unknown //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Expected O, but got Unknown //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Expected O, but got Unknown //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Expected O, but got Unknown //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Expected O, but got Unknown //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Expected O, but got Unknown //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Expected O, but got Unknown //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Expected O, but got Unknown //IL_04eb: Unknown result type (might be due to invalid IL or missing references) //IL_04f2: Expected O, but got Unknown //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Expected O, but got Unknown //IL_0528: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Expected O, but got Unknown //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Expected O, but got Unknown //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0734: Expected O, but got Unknown //IL_0756: Unknown result type (might be due to invalid IL or missing references) //IL_0760: Expected O, but got Unknown //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_078c: Expected O, but got Unknown //IL_07ae: Unknown result type (might be due to invalid IL or missing references) //IL_07b8: Expected O, but got Unknown //IL_07da: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Expected O, but got Unknown string section = "Audio"; RoboTalks = Config.BindAndOptions(section, "Robomando Talks", defaultValue: true, "Whether or not Robomando will talk."); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(RoboTalks)); CinematicMode = Config.BindAndOptions(section, "Cinematic Mode", defaultValue: false, "cinema"); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(CinematicMode)); EnableNewIcons = Config.BindAndOptions("Misc", "Enable New Icons", defaultValue: true, "Whether or not to use the new icon set for Robomando's abilities.", restartRequired: true); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableNewIcons)); string formatString = "{0:0}"; string formatString2 = "{0:0}s"; string formatString3 = "{0:0.00}s"; allowAbilityStatTweaks = Config.MyConfig.Bind("Abilities", "Allow Ability Stat Modifiers", false, "Allow for the editing of Robomando's ability stats. Uncheck if you plan on playing multiplayer, since configs are as of yet unsynced."); allowStatTweaksOnLaunch = allowAbilityStatTweaks.Value; ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(allowAbilityStatTweaks, true)); SingleShotDamageReplacement = Config.MyConfig.Bind("Abilities", "Single Shot Damage", 100f, "Sets the damage of Single Shot."); ConfigEntry singleShotDamageReplacement = SingleShotDamageReplacement; SliderConfig val = new SliderConfig(); val.min = 10f; val.max = 300f; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(singleShotDamageReplacement, val)); SingleShotCoefficientReplacement = Config.MyConfig.Bind("Abilities", "Single Shot Proc Coefficient", 1f, "Sets the proc coefficient of Single Shot."); ConfigEntry singleShotCoefficientReplacement = SingleShotCoefficientReplacement; val = new SliderConfig(); val.min = 0f; val.max = 10f; val.FormatString = formatString; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(singleShotCoefficientReplacement, val)); ApplySingleShotChange(); ZapDamageReplacement = Config.MyConfig.Bind("Abilities", "De-Escalate Shot Damage", 300f, "Sets the damage of De-Escalate."); ConfigEntry zapDamageReplacement = ZapDamageReplacement; val = new SliderConfig(); val.min = 100f; val.max = 1000f; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(zapDamageReplacement, val)); ZapCoefficientReplacement = Config.MyConfig.Bind("Abilities", "Zap Proc Coefficient", 3f, "Sets the proc coefficient of De-Escalate."); ConfigEntry zapCoefficientReplacement = ZapCoefficientReplacement; val = new SliderConfig(); val.min = 0f; val.max = 10f; val.FormatString = formatString; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(zapCoefficientReplacement, val)); ZapCooldownReplacement = Config.MyConfig.Bind("Abilities", "Zap Cooldown", 3f, "Sets the cooldown of De-Escalate (Requires Restart)."); ConfigEntry zapCooldownReplacement = ZapCooldownReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 10f; val.FormatString = formatString2; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(zapCooldownReplacement, val)); ApplyZapChange(LoadFromInit: true); DiveCooldownReplacement = Config.MyConfig.Bind("Abilities", "Evasive Maneuver Cooldown", 4f, "Sets the cooldown of Evasive Maneuver (Requires Restart)."); ConfigEntry diveCooldownReplacement = DiveCooldownReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 10f; val.FormatString = formatString2; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(diveCooldownReplacement, val)); DiveCrashReplacement = Config.MyConfig.Bind("Abilities", "Evasive Maneuver Crash Duration", 2f, "How long is Robomando stunned when Evasive Maneuver ends?"); ConfigEntry diveCrashReplacement = DiveCrashReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 10f; val.FormatString = formatString3; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(diveCrashReplacement, val)); ApplyDiveChanges(LoadFromInit: true); HackDurationReplacement = Config.MyConfig.Bind("Abilities", "Re-Wire Duration", 3.33f, "How long is Robomando's Re-Wire animation at base?"); ConfigEntry hackDurationReplacement = HackDurationReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 10f; val.FormatString = formatString3; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(hackDurationReplacement, val)); HackCooldownReplacement = Config.MyConfig.Bind("Abilities", "Re-Wire Success Cooldown", 8f, "Sets the cooldown of Re-Wire after successfully hacking something."); ConfigEntry hackCooldownReplacement = HackCooldownReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 30f; val.FormatString = formatString2; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(hackCooldownReplacement, val)); HackFailCooldownReplacement = Config.MyConfig.Bind("Abilities", "Re-Wire Failure Cooldown", 2f, "Sets the cooldown of Re-Wire after not hacking something."); ConfigEntry hackFailCooldownReplacement = HackFailCooldownReplacement; val = new SliderConfig(); val.min = 0.5f; val.max = 30f; val.FormatString = formatString2; ((BaseOptionConfig)val).checkIfDisabled = new IsDisabledDelegate(CheckIfStatsDisabled); ModSettingsManager.AddOption((BaseOption)new SliderOption(hackFailCooldownReplacement, val)); ApplyHackChanges(); SingleShotDamageReplacement.SettingChanged += delegate { ApplySingleShotChange(); }; SingleShotCoefficientReplacement.SettingChanged += delegate { ApplySingleShotChange(); }; ZapDamageReplacement.SettingChanged += delegate { ApplyZapChange(LoadFromInit: false); }; ZapCoefficientReplacement.SettingChanged += delegate { ApplyZapChange(LoadFromInit: false); }; ZapCooldownReplacement.SettingChanged += delegate { ApplyZapChange(LoadFromInit: false); }; DiveCooldownReplacement.SettingChanged += delegate { ApplyDiveChanges(LoadFromInit: false); }; DiveCrashReplacement.SettingChanged += delegate { ApplyDiveChanges(LoadFromInit: false); }; HackDurationReplacement.SettingChanged += delegate { ApplyHackChanges(); }; HackCooldownReplacement.SettingChanged += delegate { ApplyHackChanges(); }; HackFailCooldownReplacement.SettingChanged += delegate { ApplyHackChanges(); }; EnableCommandoSkin = Config.MyConfig.Bind("Skins", "Enable Like Father, Like Son", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableCommandoSkin, true)); EnableBlueSkin = Config.MyConfig.Bind("Skins", "Enable Soaked", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableBlueSkin, true)); EnableGreenSkin = Config.MyConfig.Bind("Skins", "Enable Goblin", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableGreenSkin, true)); EnableMasterySkin = Config.MyConfig.Bind("Skins", "Enable Heros Disciple", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableMasterySkin, true)); EnableGrandmasterySkin = Config.MyConfig.Bind("Skins", "Enable Trophy Taker", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableGrandmasterySkin, true)); EnableSodaSkin = Config.MyConfig.Bind("Skins", "Enable Caffeinated Cretin", true, (ConfigDescription)null); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(EnableSodaSkin, true)); } } public class RobomandoItemDisplays : ItemDisplaysBase { protected override void SetItemDisplayRules(List itemDisplayRules) { //IL_0037: 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_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_0217: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_0307: 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_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0424: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_046f: 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_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_064f: 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_0677: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0771: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_082f: 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_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08de: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0951: Unknown result type (might be due to invalid IL or missing references) //IL_0956: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_09ab: Unknown result type (might be due to invalid IL or missing references) //IL_09bf: Unknown result type (might be due to invalid IL or missing references) //IL_09c4: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09ce: Unknown result type (might be due to invalid IL or missing references) //IL_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a3c: Unknown result type (might be due to invalid IL or missing references) //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a46: Unknown result type (might be due to invalid IL or missing references) //IL_0a87: Unknown result type (might be due to invalid IL or missing references) //IL_0a9b: Unknown result type (might be due to invalid IL or missing references) //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0ab9: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0aff: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b2c: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bef: Unknown result type (might be due to invalid IL or missing references) //IL_0c03: Unknown result type (might be due to invalid IL or missing references) //IL_0c17: Unknown result type (might be due to invalid IL or missing references) //IL_0c1c: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c26: Unknown result type (might be due to invalid IL or missing references) //IL_0c67: Unknown result type (might be due to invalid IL or missing references) //IL_0c7b: Unknown result type (might be due to invalid IL or missing references) //IL_0c8f: Unknown result type (might be due to invalid IL or missing references) //IL_0c94: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0c9e: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cf3: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) //IL_0d0c: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d57: Unknown result type (might be due to invalid IL or missing references) //IL_0d6b: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Unknown result type (might be due to invalid IL or missing references) //IL_0d84: Unknown result type (might be due to invalid IL or missing references) //IL_0d89: Unknown result type (might be due to invalid IL or missing references) //IL_0d8e: Unknown result type (might be due to invalid IL or missing references) //IL_0dcf: Unknown result type (might be due to invalid IL or missing references) //IL_0de3: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Unknown result type (might be due to invalid IL or missing references) //IL_0dfc: Unknown result type (might be due to invalid IL or missing references) //IL_0e01: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e6f: Unknown result type (might be due to invalid IL or missing references) //IL_0e74: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e7e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea2: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0ecc: Unknown result type (might be due to invalid IL or missing references) //IL_0ee0: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0ef9: Unknown result type (might be due to invalid IL or missing references) //IL_0efe: Unknown result type (might be due to invalid IL or missing references) //IL_0f23: Unknown result type (might be due to invalid IL or missing references) //IL_0f37: Unknown result type (might be due to invalid IL or missing references) //IL_0f4b: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f5a: Unknown result type (might be due to invalid IL or missing references) //IL_0f7e: Unknown result type (might be due to invalid IL or missing references) //IL_0f83: Unknown result type (might be due to invalid IL or missing references) //IL_0fa8: Unknown result type (might be due to invalid IL or missing references) //IL_0fbc: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0fd5: Unknown result type (might be due to invalid IL or missing references) //IL_0fda: Unknown result type (might be due to invalid IL or missing references) //IL_0fff: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_1027: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_1036: Unknown result type (might be due to invalid IL or missing references) //IL_1077: Unknown result type (might be due to invalid IL or missing references) //IL_108b: Unknown result type (might be due to invalid IL or missing references) //IL_109f: Unknown result type (might be due to invalid IL or missing references) //IL_10a4: Unknown result type (might be due to invalid IL or missing references) //IL_10a9: Unknown result type (might be due to invalid IL or missing references) //IL_10ae: Unknown result type (might be due to invalid IL or missing references) //IL_10ef: Unknown result type (might be due to invalid IL or missing references) //IL_1103: Unknown result type (might be due to invalid IL or missing references) //IL_1117: Unknown result type (might be due to invalid IL or missing references) //IL_111c: Unknown result type (might be due to invalid IL or missing references) //IL_1121: Unknown result type (might be due to invalid IL or missing references) //IL_1126: Unknown result type (might be due to invalid IL or missing references) //IL_1167: Unknown result type (might be due to invalid IL or missing references) //IL_117b: Unknown result type (might be due to invalid IL or missing references) //IL_118f: Unknown result type (might be due to invalid IL or missing references) //IL_1194: Unknown result type (might be due to invalid IL or missing references) //IL_1199: Unknown result type (might be due to invalid IL or missing references) //IL_119e: Unknown result type (might be due to invalid IL or missing references) //IL_11df: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Unknown result type (might be due to invalid IL or missing references) //IL_1207: Unknown result type (might be due to invalid IL or missing references) //IL_120c: Unknown result type (might be due to invalid IL or missing references) //IL_1211: Unknown result type (might be due to invalid IL or missing references) //IL_1216: Unknown result type (might be due to invalid IL or missing references) //IL_1257: Unknown result type (might be due to invalid IL or missing references) //IL_126b: Unknown result type (might be due to invalid IL or missing references) //IL_127f: Unknown result type (might be due to invalid IL or missing references) //IL_1284: Unknown result type (might be due to invalid IL or missing references) //IL_1289: Unknown result type (might be due to invalid IL or missing references) //IL_128e: Unknown result type (might be due to invalid IL or missing references) //IL_12cf: Unknown result type (might be due to invalid IL or missing references) //IL_12e3: Unknown result type (might be due to invalid IL or missing references) //IL_12f7: Unknown result type (might be due to invalid IL or missing references) //IL_12fc: Unknown result type (might be due to invalid IL or missing references) //IL_1301: Unknown result type (might be due to invalid IL or missing references) //IL_1306: Unknown result type (might be due to invalid IL or missing references) //IL_1347: Unknown result type (might be due to invalid IL or missing references) //IL_135b: Unknown result type (might be due to invalid IL or missing references) //IL_136f: Unknown result type (might be due to invalid IL or missing references) //IL_1374: Unknown result type (might be due to invalid IL or missing references) //IL_1379: Unknown result type (might be due to invalid IL or missing references) //IL_137e: Unknown result type (might be due to invalid IL or missing references) //IL_13bf: Unknown result type (might be due to invalid IL or missing references) //IL_13d3: Unknown result type (might be due to invalid IL or missing references) //IL_13e7: Unknown result type (might be due to invalid IL or missing references) //IL_13ec: Unknown result type (might be due to invalid IL or missing references) //IL_13f1: Unknown result type (might be due to invalid IL or missing references) //IL_13f6: Unknown result type (might be due to invalid IL or missing references) //IL_1437: Unknown result type (might be due to invalid IL or missing references) //IL_144b: Unknown result type (might be due to invalid IL or missing references) //IL_145f: Unknown result type (might be due to invalid IL or missing references) //IL_1464: Unknown result type (might be due to invalid IL or missing references) //IL_1469: Unknown result type (might be due to invalid IL or missing references) //IL_148e: Unknown result type (might be due to invalid IL or missing references) //IL_14a2: Unknown result type (might be due to invalid IL or missing references) //IL_14b6: Unknown result type (might be due to invalid IL or missing references) //IL_14bb: Unknown result type (might be due to invalid IL or missing references) //IL_14c0: Unknown result type (might be due to invalid IL or missing references) //IL_14c5: Unknown result type (might be due to invalid IL or missing references) //IL_1506: Unknown result type (might be due to invalid IL or missing references) //IL_151a: Unknown result type (might be due to invalid IL or missing references) //IL_152e: Unknown result type (might be due to invalid IL or missing references) //IL_1533: Unknown result type (might be due to invalid IL or missing references) //IL_1538: Unknown result type (might be due to invalid IL or missing references) //IL_153d: Unknown result type (might be due to invalid IL or missing references) //IL_157e: Unknown result type (might be due to invalid IL or missing references) //IL_1592: Unknown result type (might be due to invalid IL or missing references) //IL_15a6: Unknown result type (might be due to invalid IL or missing references) //IL_15ab: Unknown result type (might be due to invalid IL or missing references) //IL_15b0: Unknown result type (might be due to invalid IL or missing references) //IL_15b5: Unknown result type (might be due to invalid IL or missing references) //IL_15f6: Unknown result type (might be due to invalid IL or missing references) //IL_160a: Unknown result type (might be due to invalid IL or missing references) //IL_161e: Unknown result type (might be due to invalid IL or missing references) //IL_1623: Unknown result type (might be due to invalid IL or missing references) //IL_1628: Unknown result type (might be due to invalid IL or missing references) //IL_162d: Unknown result type (might be due to invalid IL or missing references) //IL_166e: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_1696: Unknown result type (might be due to invalid IL or missing references) //IL_169b: Unknown result type (might be due to invalid IL or missing references) //IL_16a0: Unknown result type (might be due to invalid IL or missing references) //IL_16a5: Unknown result type (might be due to invalid IL or missing references) //IL_16e6: Unknown result type (might be due to invalid IL or missing references) //IL_16fa: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1713: Unknown result type (might be due to invalid IL or missing references) //IL_1718: Unknown result type (might be due to invalid IL or missing references) //IL_171d: Unknown result type (might be due to invalid IL or missing references) //IL_175e: Unknown result type (might be due to invalid IL or missing references) //IL_1772: Unknown result type (might be due to invalid IL or missing references) //IL_1786: Unknown result type (might be due to invalid IL or missing references) //IL_178b: Unknown result type (might be due to invalid IL or missing references) //IL_1790: Unknown result type (might be due to invalid IL or missing references) //IL_1795: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17ea: Unknown result type (might be due to invalid IL or missing references) //IL_17fe: Unknown result type (might be due to invalid IL or missing references) //IL_1803: Unknown result type (might be due to invalid IL or missing references) //IL_1808: Unknown result type (might be due to invalid IL or missing references) //IL_180d: Unknown result type (might be due to invalid IL or missing references) //IL_184e: Unknown result type (might be due to invalid IL or missing references) //IL_1862: Unknown result type (might be due to invalid IL or missing references) //IL_1876: Unknown result type (might be due to invalid IL or missing references) //IL_187b: Unknown result type (might be due to invalid IL or missing references) //IL_1880: Unknown result type (might be due to invalid IL or missing references) //IL_1885: Unknown result type (might be due to invalid IL or missing references) //IL_18c6: Unknown result type (might be due to invalid IL or missing references) //IL_18da: Unknown result type (might be due to invalid IL or missing references) //IL_18ee: Unknown result type (might be due to invalid IL or missing references) //IL_18f3: Unknown result type (might be due to invalid IL or missing references) //IL_18f8: Unknown result type (might be due to invalid IL or missing references) //IL_18fd: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_1952: Unknown result type (might be due to invalid IL or missing references) //IL_1966: Unknown result type (might be due to invalid IL or missing references) //IL_196b: Unknown result type (might be due to invalid IL or missing references) //IL_1970: Unknown result type (might be due to invalid IL or missing references) //IL_1975: Unknown result type (might be due to invalid IL or missing references) //IL_19b6: Unknown result type (might be due to invalid IL or missing references) //IL_19ca: Unknown result type (might be due to invalid IL or missing references) //IL_19de: Unknown result type (might be due to invalid IL or missing references) //IL_19e3: Unknown result type (might be due to invalid IL or missing references) //IL_19e8: Unknown result type (might be due to invalid IL or missing references) //IL_19ed: Unknown result type (might be due to invalid IL or missing references) //IL_1a2e: Unknown result type (might be due to invalid IL or missing references) //IL_1a42: Unknown result type (might be due to invalid IL or missing references) //IL_1a56: Unknown result type (might be due to invalid IL or missing references) //IL_1a5b: Unknown result type (might be due to invalid IL or missing references) //IL_1a60: Unknown result type (might be due to invalid IL or missing references) //IL_1a65: Unknown result type (might be due to invalid IL or missing references) //IL_1aa6: Unknown result type (might be due to invalid IL or missing references) //IL_1aba: Unknown result type (might be due to invalid IL or missing references) //IL_1ace: Unknown result type (might be due to invalid IL or missing references) //IL_1ad3: Unknown result type (might be due to invalid IL or missing references) //IL_1ad8: Unknown result type (might be due to invalid IL or missing references) //IL_1add: Unknown result type (might be due to invalid IL or missing references) //IL_1b1e: Unknown result type (might be due to invalid IL or missing references) //IL_1b32: Unknown result type (might be due to invalid IL or missing references) //IL_1b46: Unknown result type (might be due to invalid IL or missing references) //IL_1b4b: Unknown result type (might be due to invalid IL or missing references) //IL_1b50: Unknown result type (might be due to invalid IL or missing references) //IL_1b55: Unknown result type (might be due to invalid IL or missing references) //IL_1b96: Unknown result type (might be due to invalid IL or missing references) //IL_1baa: Unknown result type (might be due to invalid IL or missing references) //IL_1bbe: Unknown result type (might be due to invalid IL or missing references) //IL_1bc3: Unknown result type (might be due to invalid IL or missing references) //IL_1bc8: Unknown result type (might be due to invalid IL or missing references) //IL_1bcd: Unknown result type (might be due to invalid IL or missing references) //IL_1c0e: Unknown result type (might be due to invalid IL or missing references) //IL_1c22: Unknown result type (might be due to invalid IL or missing references) //IL_1c36: Unknown result type (might be due to invalid IL or missing references) //IL_1c3b: Unknown result type (might be due to invalid IL or missing references) //IL_1c40: Unknown result type (might be due to invalid IL or missing references) //IL_1c45: Unknown result type (might be due to invalid IL or missing references) //IL_1c86: Unknown result type (might be due to invalid IL or missing references) //IL_1c9a: Unknown result type (might be due to invalid IL or missing references) //IL_1cae: Unknown result type (might be due to invalid IL or missing references) //IL_1cb3: Unknown result type (might be due to invalid IL or missing references) //IL_1cb8: Unknown result type (might be due to invalid IL or missing references) //IL_1cbd: Unknown result type (might be due to invalid IL or missing references) //IL_1cfe: Unknown result type (might be due to invalid IL or missing references) //IL_1d12: Unknown result type (might be due to invalid IL or missing references) //IL_1d26: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b: Unknown result type (might be due to invalid IL or missing references) //IL_1d30: Unknown result type (might be due to invalid IL or missing references) //IL_1d38: Unknown result type (might be due to invalid IL or missing references) //IL_1d3d: Unknown result type (might be due to invalid IL or missing references) //IL_1d42: Unknown result type (might be due to invalid IL or missing references) //IL_1d83: Unknown result type (might be due to invalid IL or missing references) //IL_1d97: Unknown result type (might be due to invalid IL or missing references) //IL_1dab: Unknown result type (might be due to invalid IL or missing references) //IL_1db0: Unknown result type (might be due to invalid IL or missing references) //IL_1db5: Unknown result type (might be due to invalid IL or missing references) //IL_1dba: Unknown result type (might be due to invalid IL or missing references) //IL_1dfb: Unknown result type (might be due to invalid IL or missing references) //IL_1e0f: Unknown result type (might be due to invalid IL or missing references) //IL_1e23: Unknown result type (might be due to invalid IL or missing references) //IL_1e28: Unknown result type (might be due to invalid IL or missing references) //IL_1e2d: Unknown result type (might be due to invalid IL or missing references) //IL_1e32: Unknown result type (might be due to invalid IL or missing references) //IL_1e73: Unknown result type (might be due to invalid IL or missing references) //IL_1e87: Unknown result type (might be due to invalid IL or missing references) //IL_1e9b: Unknown result type (might be due to invalid IL or missing references) //IL_1ea0: Unknown result type (might be due to invalid IL or missing references) //IL_1ea5: Unknown result type (might be due to invalid IL or missing references) //IL_1eaa: Unknown result type (might be due to invalid IL or missing references) //IL_1eeb: Unknown result type (might be due to invalid IL or missing references) //IL_1eff: Unknown result type (might be due to invalid IL or missing references) //IL_1f13: Unknown result type (might be due to invalid IL or missing references) //IL_1f18: Unknown result type (might be due to invalid IL or missing references) //IL_1f1d: Unknown result type (might be due to invalid IL or missing references) //IL_1f22: Unknown result type (might be due to invalid IL or missing references) //IL_1f63: Unknown result type (might be due to invalid IL or missing references) //IL_1f77: Unknown result type (might be due to invalid IL or missing references) //IL_1f8b: Unknown result type (might be due to invalid IL or missing references) //IL_1f90: Unknown result type (might be due to invalid IL or missing references) //IL_1f95: Unknown result type (might be due to invalid IL or missing references) //IL_1fba: Unknown result type (might be due to invalid IL or missing references) //IL_1fce: Unknown result type (might be due to invalid IL or missing references) //IL_1fe2: Unknown result type (might be due to invalid IL or missing references) //IL_1fe7: Unknown result type (might be due to invalid IL or missing references) //IL_1fec: Unknown result type (might be due to invalid IL or missing references) //IL_1ff1: Unknown result type (might be due to invalid IL or missing references) //IL_2032: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_205a: Unknown result type (might be due to invalid IL or missing references) //IL_205f: Unknown result type (might be due to invalid IL or missing references) //IL_2064: Unknown result type (might be due to invalid IL or missing references) //IL_2069: Unknown result type (might be due to invalid IL or missing references) //IL_20aa: Unknown result type (might be due to invalid IL or missing references) //IL_20be: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20d7: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_2122: Unknown result type (might be due to invalid IL or missing references) //IL_2136: Unknown result type (might be due to invalid IL or missing references) //IL_214a: Unknown result type (might be due to invalid IL or missing references) //IL_214f: Unknown result type (might be due to invalid IL or missing references) //IL_2154: Unknown result type (might be due to invalid IL or missing references) //IL_2159: Unknown result type (might be due to invalid IL or missing references) //IL_219a: Unknown result type (might be due to invalid IL or missing references) //IL_21ae: Unknown result type (might be due to invalid IL or missing references) //IL_21c2: Unknown result type (might be due to invalid IL or missing references) //IL_21c7: Unknown result type (might be due to invalid IL or missing references) //IL_21cc: Unknown result type (might be due to invalid IL or missing references) //IL_21d1: Unknown result type (might be due to invalid IL or missing references) //IL_2212: Unknown result type (might be due to invalid IL or missing references) //IL_2226: Unknown result type (might be due to invalid IL or missing references) //IL_223a: Unknown result type (might be due to invalid IL or missing references) //IL_223f: Unknown result type (might be due to invalid IL or missing references) //IL_2244: Unknown result type (might be due to invalid IL or missing references) //IL_2249: Unknown result type (might be due to invalid IL or missing references) //IL_228a: Unknown result type (might be due to invalid IL or missing references) //IL_229e: Unknown result type (might be due to invalid IL or missing references) //IL_22b2: Unknown result type (might be due to invalid IL or missing references) //IL_22b7: Unknown result type (might be due to invalid IL or missing references) //IL_22bc: Unknown result type (might be due to invalid IL or missing references) //IL_22c1: Unknown result type (might be due to invalid IL or missing references) //IL_2302: Unknown result type (might be due to invalid IL or missing references) //IL_2316: Unknown result type (might be due to invalid IL or missing references) //IL_232a: Unknown result type (might be due to invalid IL or missing references) //IL_232f: Unknown result type (might be due to invalid IL or missing references) //IL_2334: Unknown result type (might be due to invalid IL or missing references) //IL_2339: Unknown result type (might be due to invalid IL or missing references) //IL_237a: Unknown result type (might be due to invalid IL or missing references) //IL_238e: Unknown result type (might be due to invalid IL or missing references) //IL_23a2: Unknown result type (might be due to invalid IL or missing references) //IL_23a7: Unknown result type (might be due to invalid IL or missing references) //IL_23ac: Unknown result type (might be due to invalid IL or missing references) //IL_23b1: Unknown result type (might be due to invalid IL or missing references) //IL_23f2: Unknown result type (might be due to invalid IL or missing references) //IL_2406: Unknown result type (might be due to invalid IL or missing references) //IL_241a: Unknown result type (might be due to invalid IL or missing references) //IL_241f: Unknown result type (might be due to invalid IL or missing references) //IL_2424: Unknown result type (might be due to invalid IL or missing references) //IL_2429: Unknown result type (might be due to invalid IL or missing references) //IL_246a: Unknown result type (might be due to invalid IL or missing references) //IL_247e: Unknown result type (might be due to invalid IL or missing references) //IL_2492: Unknown result type (might be due to invalid IL or missing references) //IL_2497: Unknown result type (might be due to invalid IL or missing references) //IL_249c: Unknown result type (might be due to invalid IL or missing references) //IL_24a1: Unknown result type (might be due to invalid IL or missing references) //IL_24e2: Unknown result type (might be due to invalid IL or missing references) //IL_24f6: Unknown result type (might be due to invalid IL or missing references) //IL_250a: Unknown result type (might be due to invalid IL or missing references) //IL_250f: Unknown result type (might be due to invalid IL or missing references) //IL_2514: Unknown result type (might be due to invalid IL or missing references) //IL_2519: Unknown result type (might be due to invalid IL or missing references) //IL_255a: Unknown result type (might be due to invalid IL or missing references) //IL_256e: Unknown result type (might be due to invalid IL or missing references) //IL_2582: Unknown result type (might be due to invalid IL or missing references) //IL_2587: Unknown result type (might be due to invalid IL or missing references) //IL_258c: Unknown result type (might be due to invalid IL or missing references) //IL_2591: Unknown result type (might be due to invalid IL or missing references) //IL_25d2: Unknown result type (might be due to invalid IL or missing references) //IL_25e6: Unknown result type (might be due to invalid IL or missing references) //IL_25fa: Unknown result type (might be due to invalid IL or missing references) //IL_25ff: Unknown result type (might be due to invalid IL or missing references) //IL_2604: Unknown result type (might be due to invalid IL or missing references) //IL_2609: Unknown result type (might be due to invalid IL or missing references) //IL_264a: Unknown result type (might be due to invalid IL or missing references) //IL_265e: Unknown result type (might be due to invalid IL or missing references) //IL_2672: Unknown result type (might be due to invalid IL or missing references) //IL_2677: Unknown result type (might be due to invalid IL or missing references) //IL_267c: Unknown result type (might be due to invalid IL or missing references) //IL_2681: Unknown result type (might be due to invalid IL or missing references) //IL_26c2: Unknown result type (might be due to invalid IL or missing references) //IL_26d6: Unknown result type (might be due to invalid IL or missing references) //IL_26ea: Unknown result type (might be due to invalid IL or missing references) //IL_26ef: Unknown result type (might be due to invalid IL or missing references) //IL_26f4: Unknown result type (might be due to invalid IL or missing references) //IL_26f9: Unknown result type (might be due to invalid IL or missing references) //IL_273a: Unknown result type (might be due to invalid IL or missing references) //IL_274e: Unknown result type (might be due to invalid IL or missing references) //IL_2762: Unknown result type (might be due to invalid IL or missing references) //IL_2767: Unknown result type (might be due to invalid IL or missing references) //IL_276c: Unknown result type (might be due to invalid IL or missing references) //IL_2771: Unknown result type (might be due to invalid IL or missing references) //IL_27b2: Unknown result type (might be due to invalid IL or missing references) //IL_27c6: Unknown result type (might be due to invalid IL or missing references) //IL_27da: Unknown result type (might be due to invalid IL or missing references) //IL_27df: Unknown result type (might be due to invalid IL or missing references) //IL_27e4: Unknown result type (might be due to invalid IL or missing references) //IL_27e9: Unknown result type (might be due to invalid IL or missing references) //IL_282a: Unknown result type (might be due to invalid IL or missing references) //IL_283e: Unknown result type (might be due to invalid IL or missing references) //IL_2852: Unknown result type (might be due to invalid IL or missing references) //IL_2857: Unknown result type (might be due to invalid IL or missing references) //IL_285c: Unknown result type (might be due to invalid IL or missing references) //IL_2861: Unknown result type (might be due to invalid IL or missing references) //IL_28a2: Unknown result type (might be due to invalid IL or missing references) //IL_28b6: Unknown result type (might be due to invalid IL or missing references) //IL_28ca: Unknown result type (might be due to invalid IL or missing references) //IL_28cf: Unknown result type (might be due to invalid IL or missing references) //IL_28d4: Unknown result type (might be due to invalid IL or missing references) //IL_28d9: Unknown result type (might be due to invalid IL or missing references) //IL_291a: Unknown result type (might be due to invalid IL or missing references) //IL_292e: Unknown result type (might be due to invalid IL or missing references) //IL_2942: Unknown result type (might be due to invalid IL or missing references) //IL_2947: Unknown result type (might be due to invalid IL or missing references) //IL_294c: Unknown result type (might be due to invalid IL or missing references) //IL_2951: Unknown result type (might be due to invalid IL or missing references) //IL_2992: Unknown result type (might be due to invalid IL or missing references) //IL_29a6: Unknown result type (might be due to invalid IL or missing references) //IL_29ba: Unknown result type (might be due to invalid IL or missing references) //IL_29bf: Unknown result type (might be due to invalid IL or missing references) //IL_29c4: Unknown result type (might be due to invalid IL or missing references) //IL_29c9: Unknown result type (might be due to invalid IL or missing references) //IL_2a0a: Unknown result type (might be due to invalid IL or missing references) //IL_2a1e: Unknown result type (might be due to invalid IL or missing references) //IL_2a32: Unknown result type (might be due to invalid IL or missing references) //IL_2a37: Unknown result type (might be due to invalid IL or missing references) //IL_2a3c: Unknown result type (might be due to invalid IL or missing references) //IL_2a41: Unknown result type (might be due to invalid IL or missing references) //IL_2a82: Unknown result type (might be due to invalid IL or missing references) //IL_2a96: Unknown result type (might be due to invalid IL or missing references) //IL_2aaa: Unknown result type (might be due to invalid IL or missing references) //IL_2aaf: Unknown result type (might be due to invalid IL or missing references) //IL_2ab4: Unknown result type (might be due to invalid IL or missing references) //IL_2ab9: Unknown result type (might be due to invalid IL or missing references) //IL_2afa: Unknown result type (might be due to invalid IL or missing references) //IL_2b0e: Unknown result type (might be due to invalid IL or missing references) //IL_2b22: Unknown result type (might be due to invalid IL or missing references) //IL_2b27: Unknown result type (might be due to invalid IL or missing references) //IL_2b2c: Unknown result type (might be due to invalid IL or missing references) //IL_2b51: Unknown result type (might be due to invalid IL or missing references) //IL_2b65: Unknown result type (might be due to invalid IL or missing references) //IL_2b79: Unknown result type (might be due to invalid IL or missing references) //IL_2b7e: Unknown result type (might be due to invalid IL or missing references) //IL_2b83: Unknown result type (might be due to invalid IL or missing references) //IL_2b88: Unknown result type (might be due to invalid IL or missing references) //IL_2bc9: Unknown result type (might be due to invalid IL or missing references) //IL_2bdd: Unknown result type (might be due to invalid IL or missing references) //IL_2bf1: Unknown result type (might be due to invalid IL or missing references) //IL_2bf6: Unknown result type (might be due to invalid IL or missing references) //IL_2bfb: Unknown result type (might be due to invalid IL or missing references) //IL_2c00: Unknown result type (might be due to invalid IL or missing references) //IL_2c41: Unknown result type (might be due to invalid IL or missing references) //IL_2c55: Unknown result type (might be due to invalid IL or missing references) //IL_2c69: Unknown result type (might be due to invalid IL or missing references) //IL_2c6e: Unknown result type (might be due to invalid IL or missing references) //IL_2c73: Unknown result type (might be due to invalid IL or missing references) //IL_2c78: Unknown result type (might be due to invalid IL or missing references) //IL_2cb9: Unknown result type (might be due to invalid IL or missing references) //IL_2ccd: Unknown result type (might be due to invalid IL or missing references) //IL_2ce1: Unknown result type (might be due to invalid IL or missing references) //IL_2ce6: Unknown result type (might be due to invalid IL or missing references) //IL_2ceb: Unknown result type (might be due to invalid IL or missing references) //IL_2cf0: Unknown result type (might be due to invalid IL or missing references) //IL_2d31: Unknown result type (might be due to invalid IL or missing references) //IL_2d45: Unknown result type (might be due to invalid IL or missing references) //IL_2d59: Unknown result type (might be due to invalid IL or missing references) //IL_2d5e: Unknown result type (might be due to invalid IL or missing references) //IL_2d63: Unknown result type (might be due to invalid IL or missing references) //IL_2d68: Unknown result type (might be due to invalid IL or missing references) //IL_2da9: Unknown result type (might be due to invalid IL or missing references) //IL_2dbd: Unknown result type (might be due to invalid IL or missing references) //IL_2dd1: Unknown result type (might be due to invalid IL or missing references) //IL_2dd6: Unknown result type (might be due to invalid IL or missing references) //IL_2ddb: Unknown result type (might be due to invalid IL or missing references) //IL_2de0: Unknown result type (might be due to invalid IL or missing references) //IL_2e21: Unknown result type (might be due to invalid IL or missing references) //IL_2e35: Unknown result type (might be due to invalid IL or missing references) //IL_2e49: Unknown result type (might be due to invalid IL or missing references) //IL_2e4e: Unknown result type (might be due to invalid IL or missing references) //IL_2e53: Unknown result type (might be due to invalid IL or missing references) //IL_2e58: Unknown result type (might be due to invalid IL or missing references) //IL_2e99: Unknown result type (might be due to invalid IL or missing references) //IL_2ead: Unknown result type (might be due to invalid IL or missing references) //IL_2ec1: Unknown result type (might be due to invalid IL or missing references) //IL_2ec6: Unknown result type (might be due to invalid IL or missing references) //IL_2ecb: Unknown result type (might be due to invalid IL or missing references) //IL_2ed0: Unknown result type (might be due to invalid IL or missing references) //IL_2f11: Unknown result type (might be due to invalid IL or missing references) //IL_2f25: Unknown result type (might be due to invalid IL or missing references) //IL_2f39: Unknown result type (might be due to invalid IL or missing references) //IL_2f3e: Unknown result type (might be due to invalid IL or missing references) //IL_2f43: Unknown result type (might be due to invalid IL or missing references) //IL_2f48: Unknown result type (might be due to invalid IL or missing references) //IL_2f89: Unknown result type (might be due to invalid IL or missing references) //IL_2f9d: Unknown result type (might be due to invalid IL or missing references) //IL_2fb1: Unknown result type (might be due to invalid IL or missing references) //IL_2fb6: Unknown result type (might be due to invalid IL or missing references) //IL_2fbb: Unknown result type (might be due to invalid IL or missing references) //IL_2fc0: Unknown result type (might be due to invalid IL or missing references) //IL_3001: Unknown result type (might be due to invalid IL or missing references) //IL_3015: Unknown result type (might be due to invalid IL or missing references) //IL_3029: Unknown result type (might be due to invalid IL or missing references) //IL_302e: Unknown result type (might be due to invalid IL or missing references) //IL_3033: Unknown result type (might be due to invalid IL or missing references) //IL_3038: Unknown result type (might be due to invalid IL or missing references) //IL_3079: Unknown result type (might be due to invalid IL or missing references) //IL_308d: Unknown result type (might be due to invalid IL or missing references) //IL_30a1: Unknown result type (might be due to invalid IL or missing references) //IL_30a6: Unknown result type (might be due to invalid IL or missing references) //IL_30ab: Unknown result type (might be due to invalid IL or missing references) //IL_30b0: Unknown result type (might be due to invalid IL or missing references) //IL_30f1: Unknown result type (might be due to invalid IL or missing references) //IL_3105: Unknown result type (might be due to invalid IL or missing references) //IL_3119: Unknown result type (might be due to invalid IL or missing references) //IL_311e: Unknown result type (might be due to invalid IL or missing references) //IL_3123: Unknown result type (might be due to invalid IL or missing references) //IL_3128: Unknown result type (might be due to invalid IL or missing references) //IL_3169: Unknown result type (might be due to invalid IL or missing references) //IL_317d: Unknown result type (might be due to invalid IL or missing references) //IL_3191: Unknown result type (might be due to invalid IL or missing references) //IL_3196: Unknown result type (might be due to invalid IL or missing references) //IL_319b: Unknown result type (might be due to invalid IL or missing references) //IL_31a0: Unknown result type (might be due to invalid IL or missing references) //IL_31e1: Unknown result type (might be due to invalid IL or missing references) //IL_31f5: Unknown result type (might be due to invalid IL or missing references) //IL_3209: Unknown result type (might be due to invalid IL or missing references) //IL_320e: Unknown result type (might be due to invalid IL or missing references) //IL_3213: Unknown result type (might be due to invalid IL or missing references) //IL_3218: Unknown result type (might be due to invalid IL or missing references) //IL_3259: Unknown result type (might be due to invalid IL or missing references) //IL_326d: Unknown result type (might be due to invalid IL or missing references) //IL_3281: Unknown result type (might be due to invalid IL or missing references) //IL_3286: Unknown result type (might be due to invalid IL or missing references) //IL_328b: Unknown result type (might be due to invalid IL or missing references) //IL_3290: Unknown result type (might be due to invalid IL or missing references) //IL_32d1: Unknown result type (might be due to invalid IL or missing references) //IL_32e5: Unknown result type (might be due to invalid IL or missing references) //IL_32f9: Unknown result type (might be due to invalid IL or missing references) //IL_32fe: Unknown result type (might be due to invalid IL or missing references) //IL_3303: Unknown result type (might be due to invalid IL or missing references) //IL_3308: Unknown result type (might be due to invalid IL or missing references) //IL_3349: Unknown result type (might be due to invalid IL or missing references) //IL_335d: Unknown result type (might be due to invalid IL or missing references) //IL_3371: Unknown result type (might be due to invalid IL or missing references) //IL_3376: Unknown result type (might be due to invalid IL or missing references) //IL_337b: Unknown result type (might be due to invalid IL or missing references) //IL_33a0: Unknown result type (might be due to invalid IL or missing references) //IL_33b4: Unknown result type (might be due to invalid IL or missing references) //IL_33c8: Unknown result type (might be due to invalid IL or missing references) //IL_33cd: Unknown result type (might be due to invalid IL or missing references) //IL_33d2: Unknown result type (might be due to invalid IL or missing references) //IL_33d7: Unknown result type (might be due to invalid IL or missing references) //IL_3418: Unknown result type (might be due to invalid IL or missing references) //IL_342c: Unknown result type (might be due to invalid IL or missing references) //IL_3440: Unknown result type (might be due to invalid IL or missing references) //IL_3445: Unknown result type (might be due to invalid IL or missing references) //IL_344a: Unknown result type (might be due to invalid IL or missing references) //IL_344f: Unknown result type (might be due to invalid IL or missing references) //IL_3490: Unknown result type (might be due to invalid IL or missing references) //IL_34a4: Unknown result type (might be due to invalid IL or missing references) //IL_34b8: Unknown result type (might be due to invalid IL or missing references) //IL_34bd: Unknown result type (might be due to invalid IL or missing references) //IL_34c2: Unknown result type (might be due to invalid IL or missing references) //IL_34c7: Unknown result type (might be due to invalid IL or missing references) //IL_3508: Unknown result type (might be due to invalid IL or missing references) //IL_351c: Unknown result type (might be due to invalid IL or missing references) //IL_3530: Unknown result type (might be due to invalid IL or missing references) //IL_3535: Unknown result type (might be due to invalid IL or missing references) //IL_353a: Unknown result type (might be due to invalid IL or missing references) //IL_353f: Unknown result type (might be due to invalid IL or missing references) //IL_3580: Unknown result type (might be due to invalid IL or missing references) //IL_3594: Unknown result type (might be due to invalid IL or missing references) //IL_35a8: Unknown result type (might be due to invalid IL or missing references) //IL_35ad: Unknown result type (might be due to invalid IL or missing references) //IL_35b2: Unknown result type (might be due to invalid IL or missing references) //IL_35b7: Unknown result type (might be due to invalid IL or missing references) //IL_35f8: Unknown result type (might be due to invalid IL or missing references) //IL_360c: Unknown result type (might be due to invalid IL or missing references) //IL_3620: Unknown result type (might be due to invalid IL or missing references) //IL_3625: Unknown result type (might be due to invalid IL or missing references) //IL_362a: Unknown result type (might be due to invalid IL or missing references) //IL_362f: Unknown result type (might be due to invalid IL or missing references) //IL_3670: Unknown result type (might be due to invalid IL or missing references) //IL_3684: Unknown result type (might be due to invalid IL or missing references) //IL_3698: Unknown result type (might be due to invalid IL or missing references) //IL_369d: Unknown result type (might be due to invalid IL or missing references) //IL_36a2: Unknown result type (might be due to invalid IL or missing references) //IL_36a7: Unknown result type (might be due to invalid IL or missing references) //IL_36e8: Unknown result type (might be due to invalid IL or missing references) //IL_36fc: Unknown result type (might be due to invalid IL or missing references) //IL_3710: Unknown result type (might be due to invalid IL or missing references) //IL_3715: Unknown result type (might be due to invalid IL or missing references) //IL_371a: Unknown result type (might be due to invalid IL or missing references) //IL_371f: Unknown result type (might be due to invalid IL or missing references) //IL_3760: Unknown result type (might be due to invalid IL or missing references) //IL_3774: Unknown result type (might be due to invalid IL or missing references) //IL_3788: Unknown result type (might be due to invalid IL or missing references) //IL_378d: Unknown result type (might be due to invalid IL or missing references) //IL_3792: Unknown result type (might be due to invalid IL or missing references) //IL_3797: Unknown result type (might be due to invalid IL or missing references) //IL_37d8: Unknown result type (might be due to invalid IL or missing references) //IL_37ec: Unknown result type (might be due to invalid IL or missing references) //IL_3800: Unknown result type (might be due to invalid IL or missing references) //IL_3805: Unknown result type (might be due to invalid IL or missing references) //IL_380a: Unknown result type (might be due to invalid IL or missing references) //IL_380f: Unknown result type (might be due to invalid IL or missing references) //IL_3850: Unknown result type (might be due to invalid IL or missing references) //IL_3864: Unknown result type (might be due to invalid IL or missing references) //IL_3878: Unknown result type (might be due to invalid IL or missing references) //IL_387d: Unknown result type (might be due to invalid IL or missing references) //IL_3882: Unknown result type (might be due to invalid IL or missing references) //IL_3887: Unknown result type (might be due to invalid IL or missing references) //IL_38c8: Unknown result type (might be due to invalid IL or missing references) //IL_38dc: Unknown result type (might be due to invalid IL or missing references) //IL_38f0: Unknown result type (might be due to invalid IL or missing references) //IL_38f5: Unknown result type (might be due to invalid IL or missing references) //IL_38fa: Unknown result type (might be due to invalid IL or missing references) //IL_38ff: Unknown result type (might be due to invalid IL or missing references) //IL_3940: Unknown result type (might be due to invalid IL or missing references) //IL_3954: Unknown result type (might be due to invalid IL or missing references) //IL_3968: Unknown result type (might be due to invalid IL or missing references) //IL_396d: Unknown result type (might be due to invalid IL or missing references) //IL_3972: Unknown result type (might be due to invalid IL or missing references) //IL_3977: Unknown result type (might be due to invalid IL or missing references) //IL_39b8: Unknown result type (might be due to invalid IL or missing references) //IL_39cc: Unknown result type (might be due to invalid IL or missing references) //IL_39e0: Unknown result type (might be due to invalid IL or missing references) //IL_39e5: Unknown result type (might be due to invalid IL or missing references) //IL_39ea: Unknown result type (might be due to invalid IL or missing references) //IL_39ef: Unknown result type (might be due to invalid IL or missing references) //IL_3a30: Unknown result type (might be due to invalid IL or missing references) //IL_3a44: Unknown result type (might be due to invalid IL or missing references) //IL_3a58: Unknown result type (might be due to invalid IL or missing references) //IL_3a5d: Unknown result type (might be due to invalid IL or missing references) //IL_3a62: Unknown result type (might be due to invalid IL or missing references) //IL_3a67: Unknown result type (might be due to invalid IL or missing references) //IL_3aa8: Unknown result type (might be due to invalid IL or missing references) //IL_3abc: Unknown result type (might be due to invalid IL or missing references) //IL_3ad0: Unknown result type (might be due to invalid IL or missing references) //IL_3ad5: Unknown result type (might be due to invalid IL or missing references) //IL_3ada: Unknown result type (might be due to invalid IL or missing references) //IL_3adf: Unknown result type (might be due to invalid IL or missing references) //IL_3b20: Unknown result type (might be due to invalid IL or missing references) //IL_3b34: Unknown result type (might be due to invalid IL or missing references) //IL_3b48: Unknown result type (might be due to invalid IL or missing references) //IL_3b4d: Unknown result type (might be due to invalid IL or missing references) //IL_3b52: Unknown result type (might be due to invalid IL or missing references) //IL_3b57: Unknown result type (might be due to invalid IL or missing references) //IL_3b98: Unknown result type (might be due to invalid IL or missing references) //IL_3bac: Unknown result type (might be due to invalid IL or missing references) //IL_3bc0: Unknown result type (might be due to invalid IL or missing references) //IL_3bc5: Unknown result type (might be due to invalid IL or missing references) //IL_3bca: Unknown result type (might be due to invalid IL or missing references) //IL_3bcf: Unknown result type (might be due to invalid IL or missing references) //IL_3c10: Unknown result type (might be due to invalid IL or missing references) //IL_3c24: Unknown result type (might be due to invalid IL or missing references) //IL_3c38: Unknown result type (might be due to invalid IL or missing references) //IL_3c3d: Unknown result type (might be due to invalid IL or missing references) //IL_3c42: Unknown result type (might be due to invalid IL or missing references) //IL_3c67: Unknown result type (might be due to invalid IL or missing references) //IL_3c7b: Unknown result type (might be due to invalid IL or missing references) //IL_3c8f: Unknown result type (might be due to invalid IL or missing references) //IL_3c94: Unknown result type (might be due to invalid IL or missing references) //IL_3c99: Unknown result type (might be due to invalid IL or missing references) //IL_3cbe: Unknown result type (might be due to invalid IL or missing references) //IL_3cd2: Unknown result type (might be due to invalid IL or missing references) //IL_3ce6: Unknown result type (might be due to invalid IL or missing references) //IL_3ceb: Unknown result type (might be due to invalid IL or missing references) //IL_3cf0: Unknown result type (might be due to invalid IL or missing references) //IL_3d15: Unknown result type (might be due to invalid IL or missing references) //IL_3d29: Unknown result type (might be due to invalid IL or missing references) //IL_3d3d: Unknown result type (might be due to invalid IL or missing references) //IL_3d42: Unknown result type (might be due to invalid IL or missing references) //IL_3d47: Unknown result type (might be due to invalid IL or missing references) //IL_3d6c: Unknown result type (might be due to invalid IL or missing references) //IL_3d80: Unknown result type (might be due to invalid IL or missing references) //IL_3d94: Unknown result type (might be due to invalid IL or missing references) //IL_3d99: Unknown result type (might be due to invalid IL or missing references) //IL_3d9e: Unknown result type (might be due to invalid IL or missing references) //IL_3dc3: Unknown result type (might be due to invalid IL or missing references) //IL_3dd7: Unknown result type (might be due to invalid IL or missing references) //IL_3deb: Unknown result type (might be due to invalid IL or missing references) //IL_3df0: Unknown result type (might be due to invalid IL or missing references) //IL_3df5: Unknown result type (might be due to invalid IL or missing references) //IL_3dfa: Unknown result type (might be due to invalid IL or missing references) //IL_3e3b: Unknown result type (might be due to invalid IL or missing references) //IL_3e4f: Unknown result type (might be due to invalid IL or missing references) //IL_3e63: Unknown result type (might be due to invalid IL or missing references) //IL_3e68: Unknown result type (might be due to invalid IL or missing references) //IL_3e6d: Unknown result type (might be due to invalid IL or missing references) //IL_3e72: Unknown result type (might be due to invalid IL or missing references) //IL_3eb3: Unknown result type (might be due to invalid IL or missing references) //IL_3ec7: Unknown result type (might be due to invalid IL or missing references) //IL_3edb: Unknown result type (might be due to invalid IL or missing references) //IL_3ee0: Unknown result type (might be due to invalid IL or missing references) //IL_3ee5: Unknown result type (might be due to invalid IL or missing references) //IL_3eea: Unknown result type (might be due to invalid IL or missing references) //IL_3f2b: Unknown result type (might be due to invalid IL or missing references) //IL_3f3f: Unknown result type (might be due to invalid IL or missing references) //IL_3f53: Unknown result type (might be due to invalid IL or missing references) //IL_3f58: Unknown result type (might be due to invalid IL or missing references) //IL_3f5d: Unknown result type (might be due to invalid IL or missing references) //IL_3f62: Unknown result type (might be due to invalid IL or missing references) //IL_3fa3: Unknown result type (might be due to invalid IL or missing references) //IL_3fb7: Unknown result type (might be due to invalid IL or missing references) //IL_3fcb: Unknown result type (might be due to invalid IL or missing references) //IL_3fd0: Unknown result type (might be due to invalid IL or missing references) //IL_3fd5: Unknown result type (might be due to invalid IL or missing references) //IL_3ffa: Unknown result type (might be due to invalid IL or missing references) //IL_400e: Unknown result type (might be due to invalid IL or missing references) //IL_4022: Unknown result type (might be due to invalid IL or missing references) //IL_4027: Unknown result type (might be due to invalid IL or missing references) //IL_402c: Unknown result type (might be due to invalid IL or missing references) //IL_4031: Unknown result type (might be due to invalid IL or missing references) //IL_4072: Unknown result type (might be due to invalid IL or missing references) //IL_4086: Unknown result type (might be due to invalid IL or missing references) //IL_409a: Unknown result type (might be due to invalid IL or missing references) //IL_409f: Unknown result type (might be due to invalid IL or missing references) //IL_40a4: Unknown result type (might be due to invalid IL or missing references) //IL_40a9: Unknown result type (might be due to invalid IL or missing references) //IL_40ea: Unknown result type (might be due to invalid IL or missing references) //IL_40fe: Unknown result type (might be due to invalid IL or missing references) //IL_4112: Unknown result type (might be due to invalid IL or missing references) //IL_4117: Unknown result type (might be due to invalid IL or missing references) //IL_411c: Unknown result type (might be due to invalid IL or missing references) //IL_4121: Unknown result type (might be due to invalid IL or missing references) //IL_4162: Unknown result type (might be due to invalid IL or missing references) //IL_4176: Unknown result type (might be due to invalid IL or missing references) //IL_418a: Unknown result type (might be due to invalid IL or missing references) //IL_418f: Unknown result type (might be due to invalid IL or missing references) //IL_4194: Unknown result type (might be due to invalid IL or missing references) //IL_4199: Unknown result type (might be due to invalid IL or missing references) //IL_41da: Unknown result type (might be due to invalid IL or missing references) //IL_41ee: Unknown result type (might be due to invalid IL or missing references) //IL_4202: Unknown result type (might be due to invalid IL or missing references) //IL_4207: Unknown result type (might be due to invalid IL or missing references) //IL_420c: Unknown result type (might be due to invalid IL or missing references) //IL_4211: Unknown result type (might be due to invalid IL or missing references) //IL_4252: Unknown result type (might be due to invalid IL or missing references) //IL_4266: Unknown result type (might be due to invalid IL or missing references) //IL_427a: Unknown result type (might be due to invalid IL or missing references) //IL_427f: Unknown result type (might be due to invalid IL or missing references) //IL_4284: Unknown result type (might be due to invalid IL or missing references) //IL_4289: Unknown result type (might be due to invalid IL or missing references) //IL_42ca: Unknown result type (might be due to invalid IL or missing references) //IL_42de: Unknown result type (might be due to invalid IL or missing references) //IL_42f2: Unknown result type (might be due to invalid IL or missing references) //IL_42f7: Unknown result type (might be due to invalid IL or missing references) //IL_42fc: Unknown result type (might be due to invalid IL or missing references) //IL_4321: Unknown result type (might be due to invalid IL or missing references) //IL_4335: Unknown result type (might be due to invalid IL or missing references) //IL_4349: Unknown result type (might be due to invalid IL or missing references) //IL_434e: Unknown result type (might be due to invalid IL or missing references) //IL_4353: Unknown result type (might be due to invalid IL or missing references) //IL_4358: Unknown result type (might be due to invalid IL or missing references) //IL_4399: Unknown result type (might be due to invalid IL or missing references) //IL_43ad: Unknown result type (might be due to invalid IL or missing references) //IL_43c1: Unknown result type (might be due to invalid IL or missing references) //IL_43c6: Unknown result type (might be due to invalid IL or missing references) //IL_43cb: Unknown result type (might be due to invalid IL or missing references) //IL_43d0: Unknown result type (might be due to invalid IL or missing references) //IL_4411: Unknown result type (might be due to invalid IL or missing references) //IL_4425: Unknown result type (might be due to invalid IL or missing references) //IL_4439: Unknown result type (might be due to invalid IL or missing references) //IL_443e: Unknown result type (might be due to invalid IL or missing references) //IL_4443: Unknown result type (might be due to invalid IL or missing references) //IL_4448: Unknown result type (might be due to invalid IL or missing references) //IL_4489: Unknown result type (might be due to invalid IL or missing references) //IL_449d: Unknown result type (might be due to invalid IL or missing references) //IL_44b1: Unknown result type (might be due to invalid IL or missing references) //IL_44b6: Unknown result type (might be due to invalid IL or missing references) //IL_44bb: Unknown result type (might be due to invalid IL or missing references) //IL_44c0: Unknown result type (might be due to invalid IL or missing references) //IL_4501: Unknown result type (might be due to invalid IL or missing references) //IL_4515: Unknown result type (might be due to invalid IL or missing references) //IL_4529: Unknown result type (might be due to invalid IL or missing references) //IL_452e: Unknown result type (might be due to invalid IL or missing references) //IL_4533: Unknown result type (might be due to invalid IL or missing references) //IL_4538: Unknown result type (might be due to invalid IL or missing references) //IL_4579: Unknown result type (might be due to invalid IL or missing references) //IL_458d: Unknown result type (might be due to invalid IL or missing references) //IL_45a1: Unknown result type (might be due to invalid IL or missing references) //IL_45a6: Unknown result type (might be due to invalid IL or missing references) //IL_45ab: Unknown result type (might be due to invalid IL or missing references) //IL_45b0: Unknown result type (might be due to invalid IL or missing references) //IL_45f1: Unknown result type (might be due to invalid IL or missing references) //IL_4605: Unknown result type (might be due to invalid IL or missing references) //IL_4619: Unknown result type (might be due to invalid IL or missing references) //IL_461e: Unknown result type (might be due to invalid IL or missing references) //IL_4623: Unknown result type (might be due to invalid IL or missing references) //IL_4628: Unknown result type (might be due to invalid IL or missing references) //IL_4669: Unknown result type (might be due to invalid IL or missing references) //IL_467d: Unknown result type (might be due to invalid IL or missing references) //IL_4691: Unknown result type (might be due to invalid IL or missing references) //IL_4696: Unknown result type (might be due to invalid IL or missing references) //IL_469b: Unknown result type (might be due to invalid IL or missing references) //IL_46a0: Unknown result type (might be due to invalid IL or missing references) //IL_46e1: Unknown result type (might be due to invalid IL or missing references) //IL_46f5: Unknown result type (might be due to invalid IL or missing references) //IL_4709: Unknown result type (might be due to invalid IL or missing references) //IL_470e: Unknown result type (might be due to invalid IL or missing references) //IL_4713: Unknown result type (might be due to invalid IL or missing references) //IL_4718: Unknown result type (might be due to invalid IL or missing references) //IL_4759: Unknown result type (might be due to invalid IL or missing references) //IL_476d: Unknown result type (might be due to invalid IL or missing references) //IL_4781: Unknown result type (might be due to invalid IL or missing references) //IL_4786: Unknown result type (might be due to invalid IL or missing references) //IL_478b: Unknown result type (might be due to invalid IL or missing references) //IL_4790: Unknown result type (might be due to invalid IL or missing references) //IL_47d1: Unknown result type (might be due to invalid IL or missing references) //IL_47e5: Unknown result type (might be due to invalid IL or missing references) //IL_47f9: Unknown result type (might be due to invalid IL or missing references) //IL_47fe: Unknown result type (might be due to invalid IL or missing references) //IL_4803: Unknown result type (might be due to invalid IL or missing references) //IL_4828: Unknown result type (might be due to invalid IL or missing references) //IL_483c: Unknown result type (might be due to invalid IL or missing references) //IL_4850: Unknown result type (might be due to invalid IL or missing references) //IL_4855: Unknown result type (might be due to invalid IL or missing references) //IL_485a: Unknown result type (might be due to invalid IL or missing references) //IL_485f: Unknown result type (might be due to invalid IL or missing references) //IL_48a0: Unknown result type (might be due to invalid IL or missing references) //IL_48b4: Unknown result type (might be due to invalid IL or missing references) //IL_48c8: Unknown result type (might be due to invalid IL or missing references) //IL_48cd: Unknown result type (might be due to invalid IL or missing references) //IL_48d2: Unknown result type (might be due to invalid IL or missing references) //IL_48d7: Unknown result type (might be due to invalid IL or missing references) //IL_4918: Unknown result type (might be due to invalid IL or missing references) //IL_492c: Unknown result type (might be due to invalid IL or missing references) //IL_4940: Unknown result type (might be due to invalid IL or missing references) //IL_4945: Unknown result type (might be due to invalid IL or missing references) //IL_494a: Unknown result type (might be due to invalid IL or missing references) //IL_494f: Unknown result type (might be due to invalid IL or missing references) //IL_4990: Unknown result type (might be due to invalid IL or missing references) //IL_49a4: Unknown result type (might be due to invalid IL or missing references) //IL_49b8: Unknown result type (might be due to invalid IL or missing references) //IL_49bd: Unknown result type (might be due to invalid IL or missing references) //IL_49c2: Unknown result type (might be due to invalid IL or missing references) //IL_49e7: Unknown result type (might be due to invalid IL or missing references) //IL_49fb: Unknown result type (might be due to invalid IL or missing references) //IL_4a0f: Unknown result type (might be due to invalid IL or missing references) //IL_4a14: Unknown result type (might be due to invalid IL or missing references) //IL_4a19: Unknown result type (might be due to invalid IL or missing references) //IL_4a1e: Unknown result type (might be due to invalid IL or missing references) //IL_4a5f: Unknown result type (might be due to invalid IL or missing references) //IL_4a73: Unknown result type (might be due to invalid IL or missing references) //IL_4a87: Unknown result type (might be due to invalid IL or missing references) //IL_4a8c: Unknown result type (might be due to invalid IL or missing references) //IL_4a91: Unknown result type (might be due to invalid IL or missing references) //IL_4a96: Unknown result type (might be due to invalid IL or missing references) //IL_4ad7: Unknown result type (might be due to invalid IL or missing references) //IL_4aeb: Unknown result type (might be due to invalid IL or missing references) //IL_4aff: Unknown result type (might be due to invalid IL or missing references) //IL_4b04: Unknown result type (might be due to invalid IL or missing references) //IL_4b09: Unknown result type (might be due to invalid IL or missing references) //IL_4b0e: Unknown result type (might be due to invalid IL or missing references) //IL_4b4f: Unknown result type (might be due to invalid IL or missing references) //IL_4b63: Unknown result type (might be due to invalid IL or missing references) //IL_4b77: Unknown result type (might be due to invalid IL or missing references) //IL_4b7c: Unknown result type (might be due to invalid IL or missing references) //IL_4b81: Unknown result type (might be due to invalid IL or missing references) //IL_4b86: Unknown result type (might be due to invalid IL or missing references) //IL_4bc7: Unknown result type (might be due to invalid IL or missing references) //IL_4bdb: Unknown result type (might be due to invalid IL or missing references) //IL_4bef: Unknown result type (might be due to invalid IL or missing references) //IL_4bf4: Unknown result type (might be due to invalid IL or missing references) //IL_4bf9: Unknown result type (might be due to invalid IL or missing references) //IL_4bfe: Unknown result type (might be due to invalid IL or missing references) //IL_4c3f: Unknown result type (might be due to invalid IL or missing references) //IL_4c53: Unknown result type (might be due to invalid IL or missing references) //IL_4c67: Unknown result type (might be due to invalid IL or missing references) //IL_4c6c: Unknown result type (might be due to invalid IL or missing references) //IL_4c71: Unknown result type (might be due to invalid IL or missing references) //IL_4c76: Unknown result type (might be due to invalid IL or missing references) //IL_4cb7: Unknown result type (might be due to invalid IL or missing references) //IL_4ccb: Unknown result type (might be due to invalid IL or missing references) //IL_4cdf: Unknown result type (might be due to invalid IL or missing references) //IL_4ce4: Unknown result type (might be due to invalid IL or missing references) //IL_4ce9: Unknown result type (might be due to invalid IL or missing references) //IL_4cee: Unknown result type (might be due to invalid IL or missing references) //IL_4d2f: Unknown result type (might be due to invalid IL or missing references) //IL_4d43: Unknown result type (might be due to invalid IL or missing references) //IL_4d57: Unknown result type (might be due to invalid IL or missing references) //IL_4d5c: Unknown result type (might be due to invalid IL or missing references) //IL_4d61: Unknown result type (might be due to invalid IL or missing references) //IL_4d66: Unknown result type (might be due to invalid IL or missing references) //IL_4da7: Unknown result type (might be due to invalid IL or missing references) //IL_4dbb: Unknown result type (might be due to invalid IL or missing references) //IL_4dcf: Unknown result type (might be due to invalid IL or missing references) //IL_4dd4: Unknown result type (might be due to invalid IL or missing references) //IL_4dd9: Unknown result type (might be due to invalid IL or missing references) //IL_4dde: Unknown result type (might be due to invalid IL or missing references) //IL_4e1f: Unknown result type (might be due to invalid IL or missing references) //IL_4e33: Unknown result type (might be due to invalid IL or missing references) //IL_4e47: Unknown result type (might be due to invalid IL or missing references) //IL_4e4c: Unknown result type (might be due to invalid IL or missing references) //IL_4e51: Unknown result type (might be due to invalid IL or missing references) //IL_4e56: Unknown result type (might be due to invalid IL or missing references) //IL_4e97: Unknown result type (might be due to invalid IL or missing references) //IL_4eab: Unknown result type (might be due to invalid IL or missing references) //IL_4ebf: Unknown result type (might be due to invalid IL or missing references) //IL_4ec4: Unknown result type (might be due to invalid IL or missing references) //IL_4ec9: Unknown result type (might be due to invalid IL or missing references) //IL_4ece: Unknown result type (might be due to invalid IL or missing references) //IL_4f0f: Unknown result type (might be due to invalid IL or missing references) //IL_4f23: Unknown result type (might be due to invalid IL or missing references) //IL_4f37: Unknown result type (might be due to invalid IL or missing references) //IL_4f3c: Unknown result type (might be due to invalid IL or missing references) //IL_4f41: Unknown result type (might be due to invalid IL or missing references) //IL_4f46: Unknown result type (might be due to invalid IL or missing references) //IL_4f87: Unknown result type (might be due to invalid IL or missing references) //IL_4f9b: Unknown result type (might be due to invalid IL or missing references) //IL_4faf: Unknown result type (might be due to invalid IL or missing references) //IL_4fb4: Unknown result type (might be due to invalid IL or missing references) //IL_4fb9: Unknown result type (might be due to invalid IL or missing references) //IL_4fbe: Unknown result type (might be due to invalid IL or missing references) //IL_4fff: Unknown result type (might be due to invalid IL or missing references) //IL_5013: Unknown result type (might be due to invalid IL or missing references) //IL_5027: Unknown result type (might be due to invalid IL or missing references) //IL_502c: Unknown result type (might be due to invalid IL or missing references) //IL_5031: Unknown result type (might be due to invalid IL or missing references) //IL_5039: Unknown result type (might be due to invalid IL or missing references) //IL_503e: Unknown result type (might be due to invalid IL or missing references) //IL_5043: Unknown result type (might be due to invalid IL or missing references) //IL_5084: Unknown result type (might be due to invalid IL or missing references) //IL_5098: Unknown result type (might be due to invalid IL or missing references) //IL_50ac: Unknown result type (might be due to invalid IL or missing references) //IL_50b1: Unknown result type (might be due to invalid IL or missing references) //IL_50b6: Unknown result type (might be due to invalid IL or missing references) //IL_50bb: Unknown result type (might be due to invalid IL or missing references) //IL_50fc: Unknown result type (might be due to invalid IL or missing references) //IL_5110: Unknown result type (might be due to invalid IL or missing references) //IL_5124: Unknown result type (might be due to invalid IL or missing references) //IL_5129: Unknown result type (might be due to invalid IL or missing references) //IL_512e: Unknown result type (might be due to invalid IL or missing references) //IL_5133: Unknown result type (might be due to invalid IL or missing references) //IL_5174: Unknown result type (might be due to invalid IL or missing references) //IL_5188: Unknown result type (might be due to invalid IL or missing references) //IL_519c: Unknown result type (might be due to invalid IL or missing references) //IL_51a1: Unknown result type (might be due to invalid IL or missing references) //IL_51a6: Unknown result type (might be due to invalid IL or missing references) //IL_51ab: Unknown result type (might be due to invalid IL or missing references) //IL_51ec: Unknown result type (might be due to invalid IL or missing references) //IL_5200: Unknown result type (might be due to invalid IL or missing references) //IL_5214: Unknown result type (might be due to invalid IL or missing references) //IL_5219: Unknown result type (might be due to invalid IL or missing references) //IL_521e: Unknown result type (might be due to invalid IL or missing references) //IL_5223: Unknown result type (might be due to invalid IL or missing references) //IL_5264: Unknown result type (might be due to invalid IL or missing references) //IL_5278: Unknown result type (might be due to invalid IL or missing references) //IL_528c: Unknown result type (might be due to invalid IL or missing references) //IL_5291: Unknown result type (might be due to invalid IL or missing references) //IL_5296: Unknown result type (might be due to invalid IL or missing references) //IL_529b: Unknown result type (might be due to invalid IL or missing references) //IL_52dc: Unknown result type (might be due to invalid IL or missing references) //IL_52f0: Unknown result type (might be due to invalid IL or missing references) //IL_5304: Unknown result type (might be due to invalid IL or missing references) //IL_5309: Unknown result type (might be due to invalid IL or missing references) //IL_530e: Unknown result type (might be due to invalid IL or missing references) //IL_5313: Unknown result type (might be due to invalid IL or missing references) //IL_5354: Unknown result type (might be due to invalid IL or missing references) //IL_5368: Unknown result type (might be due to invalid IL or missing references) //IL_537c: Unknown result type (might be due to invalid IL or missing references) //IL_5381: Unknown result type (might be due to invalid IL or missing references) //IL_5386: Unknown result type (might be due to invalid IL or missing references) //IL_538b: Unknown result type (might be due to invalid IL or missing references) //IL_53cc: Unknown result type (might be due to invalid IL or missing references) //IL_53e0: Unknown result type (might be due to invalid IL or missing references) //IL_53f4: Unknown result type (might be due to invalid IL or missing references) //IL_53f9: Unknown result type (might be due to invalid IL or missing references) //IL_53fe: Unknown result type (might be due to invalid IL or missing references) //IL_5403: Unknown result type (might be due to invalid IL or missing references) //IL_5444: Unknown result type (might be due to invalid IL or missing references) //IL_5458: Unknown result type (might be due to invalid IL or missing references) //IL_546c: Unknown result type (might be due to invalid IL or missing references) //IL_5471: Unknown result type (might be due to invalid IL or missing references) //IL_5476: Unknown result type (might be due to invalid IL or missing references) //IL_547b: Unknown result type (might be due to invalid IL or missing references) //IL_54bc: Unknown result type (might be due to invalid IL or missing references) //IL_54d0: Unknown result type (might be due to invalid IL or missing references) //IL_54e4: Unknown result type (might be due to invalid IL or missing references) //IL_54e9: Unknown result type (might be due to invalid IL or missing references) //IL_54ee: Unknown result type (might be due to invalid IL or missing references) //IL_54f3: Unknown result type (might be due to invalid IL or missing references) //IL_5534: Unknown result type (might be due to invalid IL or missing references) //IL_5548: Unknown result type (might be due to invalid IL or missing references) //IL_555c: Unknown result type (might be due to invalid IL or missing references) //IL_5561: Unknown result type (might be due to invalid IL or missing references) //IL_5566: Unknown result type (might be due to invalid IL or missing references) //IL_556b: Unknown result type (might be due to invalid IL or missing references) //IL_55ac: Unknown result type (might be due to invalid IL or missing references) //IL_55c0: Unknown result type (might be due to invalid IL or missing references) //IL_55d4: Unknown result type (might be due to invalid IL or missing references) //IL_55d9: Unknown result type (might be due to invalid IL or missing references) //IL_55de: Unknown result type (might be due to invalid IL or missing references) //IL_55e3: Unknown result type (might be due to invalid IL or missing references) //IL_5624: Unknown result type (might be due to invalid IL or missing references) //IL_5638: Unknown result type (might be due to invalid IL or missing references) //IL_564c: Unknown result type (might be due to invalid IL or missing references) //IL_5651: Unknown result type (might be due to invalid IL or missing references) //IL_5656: Unknown result type (might be due to invalid IL or missing references) //IL_565b: Unknown result type (might be due to invalid IL or missing references) //IL_569c: Unknown result type (might be due to invalid IL or missing references) //IL_56b0: Unknown result type (might be due to invalid IL or missing references) //IL_56c4: Unknown result type (might be due to invalid IL or missing references) //IL_56c9: Unknown result type (might be due to invalid IL or missing references) //IL_56ce: Unknown result type (might be due to invalid IL or missing references) //IL_56d3: Unknown result type (might be due to invalid IL or missing references) //IL_5714: Unknown result type (might be due to invalid IL or missing references) //IL_5728: Unknown result type (might be due to invalid IL or missing references) //IL_573c: Unknown result type (might be due to invalid IL or missing references) //IL_5741: Unknown result type (might be due to invalid IL or missing references) //IL_5746: Unknown result type (might be due to invalid IL or missing references) //IL_574b: Unknown result type (might be due to invalid IL or missing references) //IL_578c: Unknown result type (might be due to invalid IL or missing references) //IL_57a0: Unknown result type (might be due to invalid IL or missing references) //IL_57b4: Unknown result type (might be due to invalid IL or missing references) //IL_57b9: Unknown result type (might be due to invalid IL or missing references) //IL_57be: Unknown result type (might be due to invalid IL or missing references) //IL_57c3: Unknown result type (might be due to invalid IL or missing references) //IL_5804: Unknown result type (might be due to invalid IL or missing references) //IL_5818: Unknown result type (might be due to invalid IL or missing references) //IL_582c: Unknown result type (might be due to invalid IL or missing references) //IL_5831: Unknown result type (might be due to invalid IL or missing references) //IL_5836: Unknown result type (might be due to invalid IL or missing references) //IL_583b: Unknown result type (might be due to invalid IL or missing references) //IL_587c: Unknown result type (might be due to invalid IL or missing references) //IL_5890: Unknown result type (might be due to invalid IL or missing references) //IL_58a4: Unknown result type (might be due to invalid IL or missing references) //IL_58a9: Unknown result type (might be due to invalid IL or missing references) //IL_58ae: Unknown result type (might be due to invalid IL or missing references) //IL_58b3: Unknown result type (might be due to invalid IL or missing references) //IL_58f4: Unknown result type (might be due to invalid IL or missing references) //IL_5908: Unknown result type (might be due to invalid IL or missing references) //IL_591c: Unknown result type (might be due to invalid IL or missing references) //IL_5921: Unknown result type (might be due to invalid IL or missing references) //IL_5926: Unknown result type (might be due to invalid IL or missing references) //IL_592b: Unknown result type (might be due to invalid IL or missing references) //IL_596c: Unknown result type (might be due to invalid IL or missing references) //IL_5980: Unknown result type (might be due to invalid IL or missing references) //IL_5994: Unknown result type (might be due to invalid IL or missing references) //IL_5999: Unknown result type (might be due to invalid IL or missing references) //IL_599e: Unknown result type (might be due to invalid IL or missing references) //IL_59a3: Unknown result type (might be due to invalid IL or missing references) //IL_59e4: Unknown result type (might be due to invalid IL or missing references) //IL_59f8: Unknown result type (might be due to invalid IL or missing references) //IL_5a0c: Unknown result type (might be due to invalid IL or missing references) //IL_5a11: Unknown result type (might be due to invalid IL or missing references) //IL_5a16: Unknown result type (might be due to invalid IL or missing references) //IL_5a1b: Unknown result type (might be due to invalid IL or missing references) //IL_5a5c: Unknown result type (might be due to invalid IL or missing references) //IL_5a70: Unknown result type (might be due to invalid IL or missing references) //IL_5a84: Unknown result type (might be due to invalid IL or missing references) //IL_5a89: Unknown result type (might be due to invalid IL or missing references) //IL_5a8e: Unknown result type (might be due to invalid IL or missing references) //IL_5a93: Unknown result type (might be due to invalid IL or missing references) //IL_5ad4: Unknown result type (might be due to invalid IL or missing references) //IL_5ae8: Unknown result type (might be due to invalid IL or missing references) //IL_5afc: Unknown result type (might be due to invalid IL or missing references) //IL_5b01: Unknown result type (might be due to invalid IL or missing references) //IL_5b06: Unknown result type (might be due to invalid IL or missing references) //IL_5b2b: Unknown result type (might be due to invalid IL or missing references) //IL_5b3f: Unknown result type (might be due to invalid IL or missing references) //IL_5b53: Unknown result type (might be due to invalid IL or missing references) //IL_5b58: Unknown result type (might be due to invalid IL or missing references) //IL_5b5d: Unknown result type (might be due to invalid IL or missing references) //IL_5b62: Unknown result type (might be due to invalid IL or missing references) //IL_5ba3: Unknown result type (might be due to invalid IL or missing references) //IL_5bb7: Unknown result type (might be due to invalid IL or missing references) //IL_5bcb: Unknown result type (might be due to invalid IL or missing references) //IL_5bd0: Unknown result type (might be due to invalid IL or missing references) //IL_5bd5: Unknown result type (might be due to invalid IL or missing references) //IL_5bfa: Unknown result type (might be due to invalid IL or missing references) //IL_5c0e: Unknown result type (might be due to invalid IL or missing references) //IL_5c22: Unknown result type (might be due to invalid IL or missing references) //IL_5c27: Unknown result type (might be due to invalid IL or missing references) //IL_5c2c: Unknown result type (might be due to invalid IL or missing references) //IL_5c31: Unknown result type (might be due to invalid IL or missing references) //IL_5c72: Unknown result type (might be due to invalid IL or missing references) //IL_5c86: Unknown result type (might be due to invalid IL or missing references) //IL_5c9a: Unknown result type (might be due to invalid IL or missing references) //IL_5c9f: Unknown result type (might be due to invalid IL or missing references) //IL_5ca4: Unknown result type (might be due to invalid IL or missing references) //IL_5ca9: Unknown result type (might be due to invalid IL or missing references) //IL_5cea: Unknown result type (might be due to invalid IL or missing references) //IL_5cfe: Unknown result type (might be due to invalid IL or missing references) //IL_5d12: Unknown result type (might be due to invalid IL or missing references) //IL_5d17: Unknown result type (might be due to invalid IL or missing references) //IL_5d1c: Unknown result type (might be due to invalid IL or missing references) //IL_5d21: Unknown result type (might be due to invalid IL or missing references) //IL_5d62: Unknown result type (might be due to invalid IL or missing references) //IL_5d76: Unknown result type (might be due to invalid IL or missing references) //IL_5d8a: Unknown result type (might be due to invalid IL or missing references) //IL_5d8f: Unknown result type (might be due to invalid IL or missing references) //IL_5d94: Unknown result type (might be due to invalid IL or missing references) //IL_5d99: Unknown result type (might be due to invalid IL or missing references) //IL_5dda: Unknown result type (might be due to invalid IL or missing references) //IL_5dee: Unknown result type (might be due to invalid IL or missing references) //IL_5e02: Unknown result type (might be due to invalid IL or missing references) //IL_5e07: Unknown result type (might be due to invalid IL or missing references) //IL_5e0c: Unknown result type (might be due to invalid IL or missing references) //IL_5e11: Unknown result type (might be due to invalid IL or missing references) //IL_5e52: Unknown result type (might be due to invalid IL or missing references) //IL_5e66: Unknown result type (might be due to invalid IL or missing references) //IL_5e7a: Unknown result type (might be due to invalid IL or missing references) //IL_5e7f: Unknown result type (might be due to invalid IL or missing references) //IL_5e84: Unknown result type (might be due to invalid IL or missing references) //IL_5e89: Unknown result type (might be due to invalid IL or missing references) //IL_5eca: Unknown result type (might be due to invalid IL or missing references) //IL_5ede: Unknown result type (might be due to invalid IL or missing references) //IL_5ef2: Unknown result type (might be due to invalid IL or missing references) //IL_5ef7: Unknown result type (might be due to invalid IL or missing references) //IL_5efc: Unknown result type (might be due to invalid IL or missing references) //IL_5f01: Unknown result type (might be due to invalid IL or missing references) //IL_5f42: Unknown result type (might be due to invalid IL or missing references) //IL_5f56: Unknown result type (might be due to invalid IL or missing references) //IL_5f6a: Unknown result type (might be due to invalid IL or missing references) //IL_5f6f: Unknown result type (might be due to invalid IL or missing references) //IL_5f74: Unknown result type (might be due to invalid IL or missing references) //IL_5f79: Unknown result type (might be due to invalid IL or missing references) //IL_5fba: Unknown result type (might be due to invalid IL or missing references) //IL_5fce: Unknown result type (might be due to invalid IL or missing references) //IL_5fe2: Unknown result type (might be due to invalid IL or missing references) //IL_5fe7: Unknown result type (might be due to invalid IL or missing references) //IL_5fec: Unknown result type (might be due to invalid IL or missing references) //IL_5ff1: Unknown result type (might be due to invalid IL or missing references) //IL_6032: Unknown result type (might be due to invalid IL or missing references) //IL_6046: Unknown result type (might be due to invalid IL or missing references) //IL_605a: Unknown result type (might be due to invalid IL or missing references) //IL_605f: Unknown result type (might be due to invalid IL or missing references) //IL_6064: Unknown result type (might be due to invalid IL or missing references) //IL_6069: Unknown result type (might be due to invalid IL or missing references) //IL_60aa: Unknown result type (might be due to invalid IL or missing references) //IL_60be: Unknown result type (might be due to invalid IL or missing references) //IL_60d2: Unknown result type (might be due to invalid IL or missing references) //IL_60d7: Unknown result type (might be due to invalid IL or missing references) //IL_60dc: Unknown result type (might be due to invalid IL or missing references) //IL_60e1: Unknown result type (might be due to invalid IL or missing references) //IL_6122: Unknown result type (might be due to invalid IL or missing references) //IL_6136: Unknown result type (might be due to invalid IL or missing references) //IL_614a: Unknown result type (might be due to invalid IL or missing references) //IL_614f: Unknown result type (might be due to invalid IL or missing references) //IL_6154: Unknown result type (might be due to invalid IL or missing references) //IL_6159: Unknown result type (might be due to invalid IL or missing references) //IL_619a: Unknown result type (might be due to invalid IL or missing references) //IL_61ae: Unknown result type (might be due to invalid IL or missing references) //IL_61c2: Unknown result type (might be due to invalid IL or missing references) //IL_61c7: Unknown result type (might be due to invalid IL or missing references) //IL_61cc: Unknown result type (might be due to invalid IL or missing references) //IL_61d1: Unknown result type (might be due to invalid IL or missing references) //IL_6212: Unknown result type (might be due to invalid IL or missing references) //IL_6226: Unknown result type (might be due to invalid IL or missing references) //IL_623a: Unknown result type (might be due to invalid IL or missing references) //IL_623f: Unknown result type (might be due to invalid IL or missing references) //IL_6244: Unknown result type (might be due to invalid IL or missing references) //IL_6269: Unknown result type (might be due to invalid IL or missing references) //IL_627d: Unknown result type (might be due to invalid IL or missing references) //IL_6291: Unknown result type (might be due to invalid IL or missing references) //IL_6296: Unknown result type (might be due to invalid IL or missing references) //IL_629b: Unknown result type (might be due to invalid IL or missing references) //IL_62a0: Unknown result type (might be due to invalid IL or missing references) //IL_62e1: Unknown result type (might be due to invalid IL or missing references) //IL_62f5: Unknown result type (might be due to invalid IL or missing references) //IL_6309: Unknown result type (might be due to invalid IL or missing references) //IL_630e: Unknown result type (might be due to invalid IL or missing references) //IL_6313: Unknown result type (might be due to invalid IL or missing references) //IL_6318: Unknown result type (might be due to invalid IL or missing references) //IL_6359: Unknown result type (might be due to invalid IL or missing references) //IL_636d: Unknown result type (might be due to invalid IL or missing references) //IL_6381: Unknown result type (might be due to invalid IL or missing references) //IL_6386: Unknown result type (might be due to invalid IL or missing references) //IL_638b: Unknown result type (might be due to invalid IL or missing references) //IL_6390: Unknown result type (might be due to invalid IL or missing references) //IL_63d1: Unknown result type (might be due to invalid IL or missing references) //IL_63e5: Unknown result type (might be due to invalid IL or missing references) //IL_63f9: Unknown result type (might be due to invalid IL or missing references) //IL_63fe: Unknown result type (might be due to invalid IL or missing references) //IL_6403: Unknown result type (might be due to invalid IL or missing references) //IL_6408: Unknown result type (might be due to invalid IL or missing references) //IL_6449: Unknown result type (might be due to invalid IL or missing references) //IL_645d: Unknown result type (might be due to invalid IL or missing references) //IL_6471: Unknown result type (might be due to invalid IL or missing references) //IL_6476: Unknown result type (might be due to invalid IL or missing references) //IL_647b: Unknown result type (might be due to invalid IL or missing references) //IL_6480: Unknown result type (might be due to invalid IL or missing references) //IL_64c1: Unknown result type (might be due to invalid IL or missing references) //IL_64d5: Unknown result type (might be due to invalid IL or missing references) //IL_64e9: Unknown result type (might be due to invalid IL or missing references) //IL_64ee: Unknown result type (might be due to invalid IL or missing references) //IL_64f3: Unknown result type (might be due to invalid IL or missing references) //IL_64f8: Unknown result type (might be due to invalid IL or missing references) //IL_6539: Unknown result type (might be due to invalid IL or missing references) //IL_654d: Unknown result type (might be due to invalid IL or missing references) //IL_6561: Unknown result type (might be due to invalid IL or missing references) //IL_6566: Unknown result type (might be due to invalid IL or missing references) //IL_656b: Unknown result type (might be due to invalid IL or missing references) //IL_6570: Unknown result type (might be due to invalid IL or missing references) //IL_65b1: Unknown result type (might be due to invalid IL or missing references) //IL_65c5: Unknown result type (might be due to invalid IL or missing references) //IL_65d9: Unknown result type (might be due to invalid IL or missing references) //IL_65de: Unknown result type (might be due to invalid IL or missing references) //IL_65e3: Unknown result type (might be due to invalid IL or missing references) //IL_65e8: Unknown result type (might be due to invalid IL or missing references) //IL_6629: Unknown result type (might be due to invalid IL or missing references) //IL_663d: Unknown result type (might be due to invalid IL or missing references) //IL_6651: Unknown result type (might be due to invalid IL or missing references) //IL_6656: Unknown result type (might be due to invalid IL or missing references) //IL_665b: Unknown result type (might be due to invalid IL or missing references) //IL_6660: Unknown result type (might be due to invalid IL or missing references) //IL_66a1: Unknown result type (might be due to invalid IL or missing references) //IL_66b5: Unknown result type (might be due to invalid IL or missing references) //IL_66c9: Unknown result type (might be due to invalid IL or missing references) //IL_66ce: Unknown result type (might be due to invalid IL or missing references) //IL_66d3: Unknown result type (might be due to invalid IL or missing references) //IL_66d8: Unknown result type (might be due to invalid IL or missing references) //IL_6719: Unknown result type (might be due to invalid IL or missing references) //IL_672d: Unknown result type (might be due to invalid IL or missing references) //IL_6741: Unknown result type (might be due to invalid IL or missing references) //IL_6746: Unknown result type (might be due to invalid IL or missing references) //IL_674b: Unknown result type (might be due to invalid IL or missing references) //IL_6750: Unknown result type (might be due to invalid IL or missing references) //IL_6791: Unknown result type (might be due to invalid IL or missing references) //IL_67a5: Unknown result type (might be due to invalid IL or missing references) //IL_67b9: Unknown result type (might be due to invalid IL or missing references) //IL_67be: Unknown result type (might be due to invalid IL or missing references) //IL_67c3: Unknown result type (might be due to invalid IL or missing references) //IL_67c8: Unknown result type (might be due to invalid IL or missing references) //IL_6809: Unknown result type (might be due to invalid IL or missing references) //IL_681d: Unknown result type (might be due to invalid IL or missing references) //IL_6831: Unknown result type (might be due to invalid IL or missing references) //IL_6836: Unknown result type (might be due to invalid IL or missing references) //IL_683b: Unknown result type (might be due to invalid IL or missing references) //IL_6860: Unknown result type (might be due to invalid IL or missing references) //IL_6874: Unknown result type (might be due to invalid IL or missing references) //IL_6888: Unknown result type (might be due to invalid IL or missing references) //IL_688d: Unknown result type (might be due to invalid IL or missing references) //IL_6892: Unknown result type (might be due to invalid IL or missing references) //IL_68b7: Unknown result type (might be due to invalid IL or missing references) //IL_68cb: Unknown result type (might be due to invalid IL or missing references) //IL_68df: Unknown result type (might be due to invalid IL or missing references) //IL_68e4: Unknown result type (might be due to invalid IL or missing references) //IL_68e9: Unknown result type (might be due to invalid IL or missing references) //IL_68ee: Unknown result type (might be due to invalid IL or missing references) //IL_692f: Unknown result type (might be due to invalid IL or missing references) //IL_6943: Unknown result type (might be due to invalid IL or missing references) //IL_6957: Unknown result type (might be due to invalid IL or missing references) //IL_695c: Unknown result type (might be due to invalid IL or missing references) //IL_6961: Unknown result type (might be due to invalid IL or missing references) //IL_6966: Unknown result type (might be due to invalid IL or missing references) //IL_69a7: Unknown result type (might be due to invalid IL or missing references) //IL_69bb: Unknown result type (might be due to invalid IL or missing references) //IL_69cf: Unknown result type (might be due to invalid IL or missing references) //IL_69d4: Unknown result type (might be due to invalid IL or missing references) //IL_69d9: Unknown result type (might be due to invalid IL or missing references) //IL_69de: Unknown result type (might be due to invalid IL or missing references) //IL_6a1a: Unknown result type (might be due to invalid IL or missing references) //IL_6a2e: Unknown result type (might be due to invalid IL or missing references) //IL_6a42: Unknown result type (might be due to invalid IL or missing references) //IL_6a47: Unknown result type (might be due to invalid IL or missing references) //IL_6a4c: Unknown result type (might be due to invalid IL or missing references) //IL_6a51: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AlienHead"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAlienHead"), "UpperLeg_R", new Vector3(0.02298f, -0.0009f, 0.07407f), new Vector3(72.82494f, 168.64f, 330.8979f), new Vector3(0.27648f, 0.27648f, 0.27648f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorPlate"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRepulsionArmorPlate"), "UpperArm_L", new Vector3(0.01059f, 0.10382f, 0.07175f), new Vector3(75.74503f, 133.282f, 328.2955f), new Vector3(0.22946f, 0.22946f, 0.22946f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorReductionOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarhammer"), "Hand_L", new Vector3(-0.21753f, 0.07681f, -0.01111f), new Vector3(2.36079f, 270.3404f, 98.20595f), new Vector3(0.0916f, 0.0916f, 0.0916f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedAndMoveSpeed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCoffee"), "Pelvis", new Vector3(1E-05f, 0.13226f, -0.19031f), new Vector3(323.3869f, 180f, 98.10122f), new Vector3(0.13253f, 0.13253f, 0.13253f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWolfPelt"), "Head", new Vector3(0.11466f, 0.26658f, -0.00585f), new Vector3(333.446f, 272.1451f, 1E-05f), new Vector3(0.53973f, 0.53973f, 0.53973f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AutoCastEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFossil"), "Chest", new Vector3(0.37847f, 0.2039f, -0.10632f), new Vector3(0f, 0f, 0f), new Vector3(0.40601f, 0.40601f, 0.40601f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bandolier"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBandolier"), "Pelvis", new Vector3(0.00058f, 0.12706f, 0.01744f), new Vector3(85.76807f, 125.5116f, 223.2266f), new Vector3(0.41921f, 0.51513f, 0.51513f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrooch"), "Chest", new Vector3(-0.15512f, -0.02766f, -0.00015f), new Vector3(77.81039f, 90.65997f, 180.6672f), new Vector3(263f / (275f * MathF.PI), 263f / (275f * MathF.PI), 263f / (275f * MathF.PI))))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnOverHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAegis"), "Hand_L", new Vector3(-1E-05f, 0.14539f, 0.02619f), new Vector3(283.8807f, 180f, 180f), new Vector3(0.11552f, 0.11552f, 0.11552f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bear"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBear"), "Pelvis", new Vector3(-0.02789f, 0.11062f, -0.20701f), new Vector3(24.10534f, 339.0573f, 311.6451f), new Vector3(-0.11326f, -0.11326f, -0.11326f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BearVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBearVoid"), "Pelvis", new Vector3(-0.02789f, 0.11062f, -0.20701f), new Vector3(24.10534f, 339.0573f, 311.6451f), new Vector3(-0.11326f, -0.11326f, -0.11326f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BeetleGland"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeetleGland"), "Chest", new Vector3(-0.16948f, 0.18906f, 0.20607f), new Vector3(0f, 217.0119f, 0f), new Vector3(0.03445f, 0.03445f, 0.03445f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Behemoth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBehemoth"), "Chest", new Vector3(0.4476f, 0.1684f, 0f), new Vector3(57.42241f, 0f, 0f), new Vector3(0.08489f, 0.08489f, 0.08489f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTip"), "Head", new Vector3(-4E-05f, 0.28188f, -0.18221f), new Vector3(39.68958f, 0f, 0f), new Vector3(0.26246f, 0.26246f, 0.26246f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitAndExplode"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBleedOnHitAndExplode"), "Pelvis", new Vector3(-0.01924f, 0.16327f, 0.17768f), new Vector3(327.9645f, 349.0708f, 200.0031f), new Vector3(0.0308f, 0.0308f, 0.0308f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTipVoid"), "Head", new Vector3(-4E-05f, 0.28188f, -0.18221f), new Vector3(39.68958f, 0f, 0f), new Vector3(0.26246f, 0.26246f, 0.26246f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BonusGoldPackOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTome"), "Chest", new Vector3(0.38706f, -2E-05f, 0.00121f), new Vector3(0f, 89.19973f, 0f), new Vector3(0.08809f, 0.08809f, 0.08809f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAPRound"), "UpperArm_L", new Vector3(0.06569f, 0.14611f, 0.05848f), new Vector3(280.38f, 180f, 180f), new Vector3(0.51096f, 0.51096f, 0.51096f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BounceNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHook"), "Chest", new Vector3(0.37708f, 0.18079f, -0.13194f), new Vector3(0f, 271.8644f, 0f), new Vector3(0.4099f, 0.4099f, 0.4099f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkulele"), "Chest", new Vector3(0.38184f, 0.10581f, -0.04645f), new Vector3(-1E-05f, 89.21347f, 42.38668f), new Vector3(0.46474f, 0.46474f, 0.46474f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightningVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkuleleVoid"), "Chest", new Vector3(0.38184f, 0.10581f, -0.04645f), new Vector3(-1E-05f, 89.21347f, 42.38668f), new Vector3(0.46474f, 0.46474f, 0.46474f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Clover"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayClover"), "Head", new Vector3(0.13716f, 0.25095f, 0.08047f), new Vector3(46.06691f, 0f, 305.8102f), new Vector3(0.38918f, 0.38918f, 0.38918f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CloverVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCloverVoid"), "Head", new Vector3(0.13716f, 0.25095f, 0.08047f), new Vector3(46.06691f, 0f, 305.8102f), new Vector3(0.38918f, 0.38918f, 0.38918f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CooldownOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkull"), "Chest", new Vector3(-0.18233f, 0.1925f, -0.0009f), new Vector3(284.8203f, 89.71538f, 180.0001f), new Vector3(0.0656f, 0.0656f, 0.0656f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserSight"), "Gun", new Vector3(0.00974f, 0.23182f, 0.13929f), new Vector3(1E-05f, 268.2265f, 266.6529f), new Vector3(0.27075f, 0.27075f, 0.27075f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlasses"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlasses"), "Head", new Vector3(-0.1762f, 0.14895f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.42183f, 0.36843f, 0.36843f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlassesVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlassesVoid"), "Head", new Vector3(-0.1762f, 0.14895f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.42183f, 0.36843f, 0.36843f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Crowbar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCrowbar"), "Chest", new Vector3(0.38428f, 0.13293f, 0.00036f), new Vector3(44.33336f, 2.70468f, 3.90637f), new Vector3(0.37794f, 0.37794f, 0.37794f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Dagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDagger"), "Chest", new Vector3(0.27819f, 0.27178f, 0.10187f), new Vector3(314.6472f, 333.8952f, 309.9166f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathMark"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathMark"), "Hand_L", new Vector3(-0.00237f, 0.0406f, 0.03835f), new Vector3(71.62965f, 185.6784f, 5.98111f), new Vector3(0.02255f, 0.02255f, 0.02255f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElementalRingVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVoidRing"), "Hand_R", new Vector3(0f, 0.01545f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.15576f, 0.15576f, 0.15576f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EmpowerAlways"], ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)1), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHeadNeck"), "Head", new Vector3(0.00414f, 0.04125f, -0.02292f), new Vector3(0f, 180f, 0f), new Vector3(2f, 1f, 2f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHead"), "Head", new Vector3(-0.01116f, 0.18729f, -0.00091f), new Vector3(0f, 0f, 0f), new Vector3(1.18409f, 1.18409f, 1.18409f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSun"], ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)1), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHeadNeck"), "Head", new Vector3(0.00414f, 0.04125f, -0.02292f), new Vector3(0f, 180f, 0f), new Vector3(2f, 1f, 2f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHead"), "Head", new Vector3(-0.01116f, 0.18729f, -0.00091f), new Vector3(0f, 0f, 0f), new Vector3(1.18409f, 1.18409f, 1.18409f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EnergizedOnEquipmentUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarHorn"), "Pelvis", new Vector3(0.02622f, 0.17655f, -0.10024f), new Vector3(88.86168f, 0f, 0f), new Vector3(0.29464f, 0.29464f, 0.29464f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBattery"), "Chest", new Vector3(0.16491f, 0.06534f, -0.21143f), new Vector3(271.1395f, 0f, 0f), new Vector3(0.16372f, 0.16372f, 0.16372f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazineVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFuelCellVoid"), "Chest", new Vector3(0.16491f, 0.06534f, -0.21143f), new Vector3(5.39821f, 197.1092f, 188.422f), new Vector3(0.16372f, 0.16372f, 0.16372f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExecuteLowHealthElite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGuillotine"), "Chest", new Vector3(0.38026f, 0.17233f, -0.08967f), new Vector3(275.1825f, 282.0439f, 347.6345f), new Vector3(0.11498f, 0.11498f, 0.11498f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeath"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWilloWisp"), "Pelvis", new Vector3(0.07547f, 0.1578f, -0.17788f), new Vector3(0.10756f, 180f, 180f), new Vector3(0.03485f, 0.03485f, 0.03485f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeathVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWillowWispVoid"), "Pelvis", new Vector3(0.07547f, 0.1578f, -0.17788f), new Vector3(0.10756f, 180f, 180f), new Vector3(0.03485f, 0.03485f, 0.03485f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLife"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippo"), "Pelvis", new Vector3(-0.06865f, 0.13123f, 0.15381f), new Vector3(0f, 0f, 185.1382f), new Vector3(0.10479f, 0.10479f, 0.10479f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLifeVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippoVoid"), "Pelvis", new Vector3(-0.06865f, 0.13123f, 0.15381f), new Vector3(0f, 0f, 185.1382f), new Vector3(0.10479f, 0.10479f, 0.10479f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FallBoots"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "LowerLeg_L", new Vector3(-0.02249f, 0.11781f, -0.00079f), new Vector3(0f, 87.98477f, 180f), new Vector3(0.21425f, 0.21425f, 0.30961f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "LowerLeg_R", new Vector3(-0.02264f, 0.11607f, -0.00171f), new Vector3(-1E-05f, 85.67813f, 180f), new Vector3(0.21425f, 0.21425f, 0.30961f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Feather"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFeather"), "Chest", new Vector3(0.05638f, 0.10219f, -0.17488f), new Vector3(297.4346f, 301.0918f, 6.78463f), new Vector3(0.03228f, 0.03228f, 0.03228f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireRing"), "Hand_R", new Vector3(-0.00117f, 0.02436f, -0.00026f), new Vector3(275.6162f, 96.23536f, 263.7348f), new Vector3(0.19824f, 0.19824f, 0.19824f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireballsOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireballsOnHit"), "Head", new Vector3(-0.2258f, 0.10222f, -0.0155f), new Vector3(0f, 266.0727f, 0f), new Vector3(0.02387f, 0.02387f, 0.02387f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Firework"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFirework"), "Chest", new Vector3(0.25401f, 0.42653f, 0.16305f), new Vector3(277.3063f, 0f, 0f), new Vector3(0.2214f, 0.2214f, 0.2214f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FlatHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySteakCurved"), "Chest", new Vector3(0.22578f, 0.27318f, 0.17616f), new Vector3(303.9393f, 0f, 0f), new Vector3(0.08818f, 0.08818f, 0.08818f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FocusConvergence"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFocusedConvergence"), "Base", new Vector3(0.53217f, 0.10342f, -0.6504f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FragileDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDelicateWatch"), "LowerArm_L", new Vector3(0f, 0.14154f, 0.0108f), new Vector3(89.74056f, 0f, 0f), new Vector3(0.65123f, 0.99608f, 0.65123f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FreeChest"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShippingRequestForm"), "Chest", new Vector3(0.2715f, 0.02682f, -0.22799f), new Vector3(88.92827f, 162.4323f, 342.4408f), new Vector3(0.34588f, 0.34588f, 0.34588f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GhostOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMask"), "Head", new Vector3(-0.06985f, 0.25693f, 0.00218f), new Vector3(307.4319f, 269.3374f, -1E-05f), new Vector3(0.58838f, 0.58838f, 0.58838f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBoneCrown"), "Head", new Vector3(0.00916f, 0.21521f, 0.00043f), new Vector3(0f, 267.3281f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHurt"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRollOfPennies"), "Pelvis", new Vector3(0.06008f, 0.09877f, -0.17844f), new Vector3(0f, 0f, 92.40177f), new Vector3(0.37157f, 0.37157f, 0.37157f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfAttackSpeedHalfCooldowns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderNature"), "Chest", new Vector3(0.00134f, 0.22721f, -0.26897f), new Vector3(0f, 270.556f, 0f), new Vector3(0.55643f, 0.55643f, 0.75432f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfSpeedDoubleHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderStone"), "Chest", new Vector3(0.01142f, 0.26959f, 0.28213f), new Vector3(1.34205f, 88.88927f, 326.5056f), new Vector3(0.4709f, 0.4709f, 0.4709f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HeadHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkullcrown"), "Pelvis", new Vector3(0.00724f, 0.16292f, 0.00088f), new Vector3(2.49003f, 96.69559f, 180.1723f), new Vector3(0.45114f, 0.09546f, 0.1635f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealingPotion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHealingPotion"), "Pelvis", new Vector3(0.04288f, 0.07119f, 0.20421f), new Vector3(0f, 0f, 255.0073f), new Vector3(0.0415f, 0.0415f, 0.0415f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScythe"), "Chest", new Vector3(0.17605f, 0.10208f, -0.22209f), new Vector3(270.8736f, 85.32185f, 189.8011f), new Vector3(0.11901f, 0.11901f, 0.11901f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealWhileSafe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySnail"), "Chest", new Vector3(-0.10708f, 0.20542f, -0.18892f), new Vector3(326.1525f, 0f, 26.4183f), new Vector3(0.04875f, 0.04875f, 0.04875f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Hoof"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHoof"), "LowerLeg_R", new Vector3(0.00209f, 0.09807f, 0.00176f), new Vector3(88.23486f, 345.7742f, 83.50031f), new Vector3(0.07114f, 0.09743f, 0.046f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)8))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IceRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIceRing"), "Hand_L", new Vector3(0f, 0.0295f, 0.00298f), new Vector3(275.7753f, 0f, 0f), new Vector3(0.21545f, 0.21545f, 0.21545f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Icicle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFrostRelic"), "Base", new Vector3(0.33846f, 0f, -0.70498f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IgniteOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasoline"), "Chest", new Vector3(0.38702f, -0.04307f, -0.15307f), new Vector3(0f, 0f, 0f), new Vector3(0.37014f, 0.37014f, 0.37014f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ImmuneToDebuff"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRainCoatBelt"), "Pelvis", new Vector3(0f, 0.10828f, -0.00213f), new Vector3(1.12487f, 180f, 180f), new Vector3(1f, 0.58036f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreaseHealing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Head", new Vector3(-1E-05f, 0.17936f, 0.11094f), new Vector3(0f, 0f, 0f), new Vector3(0.28113f, 0.28113f, 0.28113f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Head", new Vector3(0.02319f, 0.17325f, -0.12699f), new Vector3(0f, 169.6479f, 0f), new Vector3(0.28113f, 0.28113f, 0.28113f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Incubator"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAncestralIncubator"), "Chest", new Vector3(-0.09692f, 0.07947f, 0.09316f), new Vector3(345.4345f, 27.53402f, 115.7528f), new Vector3(0.02469f, 0.02469f, 0.02469f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Infusion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInfusion"), "UpperArm_R", new Vector3(0.00086f, 0.09135f, -0.06028f), new Vector3(0f, 0f, 0f), new Vector3(0.71111f, 0.71111f, 0.71111f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["JumpBoost"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaxBird"), "Chest", new Vector3(0.05885f, -0.26888f, 0.18969f), new Vector3(0f, 289.1986f, 0f), new Vector3(0.81696f, 0.81696f, 0.81696f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["KillEliteFrenzy"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrainstalk"), "Chest", new Vector3(-1E-05f, 0.34475f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.29762f, 0.29762f, 0.29762f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Knurl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKnurl"), "Chest", new Vector3(-0.14633f, 0.14819f, -0.19558f), new Vector3(273.1141f, 0.00016f, 150.384f), new Vector3(0.06184f, 0.06184f, 0.06184f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LaserTurbine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserTurbine"), "Chest", new Vector3(0.05797f, 0.27054f, 0.28215f), new Vector3(275.205f, 87.41347f, 92.65015f), new Vector3(0.27603f, 0.27603f, 0.27603f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LightningStrikeOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayChargedPerforator"), "Head", new Vector3(-0.20255f, 0.06327f, -0.01457f), new Vector3(83.74957f, 182.851f, 96.65418f), new Vector3(0.35171f, 0.35171f, 0.35171f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarDagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarDagger"), "Chest", new Vector3(0.37872f, 0.064f, -0.04894f), new Vector3(0f, 0f, 90f), new Vector3(0.24148f, 0.24148f, 0.24148f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPrimaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdEye"), "Head", new Vector3(-0.17904f, 0.10967f, 0f), new Vector3(0f, 0f, 271.4052f), new Vector3(0.28774f, 0.28774f, 0.28774f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSecondaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdClaw"), "UpperArm_L", new Vector3(-0.01566f, 0.04553f, 0.17261f), new Vector3(25.14697f, 262.915f, 300.0552f), new Vector3(0.57875f, 0.57875f, 0.57875f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSpecialReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdHeart"), "Base", new Vector3(0.5561f, 0.76009f, -1.31736f), new Vector3(0f, 0f, 0f), new Vector3(0.25624f, 0.25624f, 0.25624f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarTrinket"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeads"), "Hand_R", new Vector3(-0.00148f, 0.00653f, 0.02267f), new Vector3(40.24226f, 6.76875f, 3.71193f), new Vector3(0.79834f, 0.79834f, 0.79834f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarUtilityReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdFoot"), "Chest", new Vector3(-0.19991f, 0.06294f, 0.16211f), new Vector3(4.73535f, 3.79002f, 88.27294f), new Vector3(0.47882f, 0.47882f, 0.47882f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Medkit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMedkit"), "Chest", new Vector3(0.37763f, -0.04696f, 0.08757f), new Vector3(276.7809f, 164.0434f, 287.9559f), new Vector3(0.46977f, 0.46977f, 0.46977f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MinorConstructOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDefenseNucleus"), "Base", new Vector3(0.47151f, -0.09959f, 0.58614f), new Vector3(85.07388f, 93.83635f, 180f), new Vector3(0.41629f, 0.41629f, 0.41629f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Missile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncher"), "Chest", new Vector3(0.32439f, 0.37444f, -0.32218f), new Vector3(1E-05f, 273.6107f, 48.06096f), new Vector3(0.09032f, 0.09032f, 0.09032f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MissileVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncherVoid"), "Chest", new Vector3(0.32439f, 0.37444f, -0.32218f), new Vector3(1E-05f, 273.6107f, 48.06096f), new Vector3(0.09032f, 0.09032f, 0.09032f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MonstersOnShrineUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMonstersOnShrineUse"), "Chest", new Vector3(0.39536f, 0.21471f, -0.02841f), new Vector3(0.36515f, 359.9805f, 4.80343f), new Vector3(0.04878f, 0.04878f, 0.04878f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoreMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayICBM"), "Chest", new Vector3(0.20519f, -0.17419f, -0.0263f), new Vector3(76.91158f, 264.152f, 268.399f), new Vector3(0.09849f, 0.09849f, 0.09849f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoveSpeedOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGrappleHook"), "Chest", new Vector3(0.28704f, -0.10447f, 0.04987f), new Vector3(0f, 0f, 0f), new Vector3(0.16623f, 0.16623f, 0.16623f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Mushroom"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroom"), "Chest", new Vector3(0.25942f, 0.24099f, 0.15927f), new Vector3(10.90517f, 9.89253f, 350.8164f), new Vector3(0.0447f, 0.0447f, 0.0447f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MushroomVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroomVoid"), "Chest", new Vector3(0.25942f, 0.24099f, 0.15927f), new Vector3(10.90517f, 9.89253f, 350.8164f), new Vector3(0.0447f, 0.0447f, 0.0447f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NearbyDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDiamond"), "Chest", new Vector3(-0.1732f, 0.07052f, 0.00112f), new Vector3(0f, 0f, 0f), new Vector3(0.04355f, 0.04355f, 0.04355f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Head", new Vector3(0.06054f, 0.2375f, 0.11199f), new Vector3(346.8735f, 278.1283f, 61.23642f), new Vector3(0.42715f, 0.42715f, 0.42715f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Head", new Vector3(0.04497f, 0.23901f, -0.09358f), new Vector3(320.4057f, 132.4298f, 20.50337f), new Vector3(0.42715f, 0.42715f, 0.42715f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJellyGuts"), "Head", new Vector3(0.00723f, 0.07109f, -0.04747f), new Vector3(351.5559f, 271.7249f, 8.66056f), new Vector3(0.18643f, 0.18643f, 0.18643f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["OutOfCombatArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOddlyShapedOpal"), "Chest", new Vector3(-0.20335f, 0.13565f, 0.01651f), new Vector3(350.5397f, 268.3481f, 10.25539f), new Vector3(0.22899f, 0.22899f, 0.22899f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ParentEgg"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayParentEgg"), "Chest", new Vector3(-0.3108f, 0.04678f, 0.0239f), new Vector3(0f, 0f, 0f), new Vector3(0.07752f, 0.07752f, 0.07752f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Pearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPearl"), "Head", new Vector3(-0.00667f, 0.19522f, 0.00241f), new Vector3(296.5005f, 269.2322f, 88.23769f), new Vector3(0.11716f, 0.11716f, 0.11716f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PermanentDebuffOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScorpion"), "Chest", new Vector3(0.23936f, 0.05519f, -0.00355f), new Vector3(0f, 271.5051f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PersonalShield"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldGenerator"), "Chest", new Vector3(-0.13922f, 0.01026f, 0f), new Vector3(0f, 0f, 265.7822f), new Vector3(0.13909f, 0.13909f, 0.13909f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Phasing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStealthkit"), "Chest", new Vector3(-0.16095f, 0.08236f, -0.1654f), new Vector3(4.52965f, 179.7182f, 86.43661f), new Vector3(0.24647f, 0.24647f, 0.24647f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Plant"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInterstellarDeskPlant"), "Chest", new Vector3(-0.09728f, 0.22585f, -0.23942f), new Vector3(277.1498f, 89.26342f, 179.9999f), new Vector3(0.02977f, 0.02977f, 0.02977f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PrimarySkillShuriken"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShuriken"), "Head", new Vector3(-0.03781f, 0.25267f, -0.16717f), new Vector3(0f, 315.976f, 0f), new Vector3(0.14443f, 0.14443f, 0.14443f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomDamageZone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRandomDamageZone"), "Chest", new Vector3(0.24095f, 0.31996f, 0.19282f), new Vector3(9.03882f, 180f, 180f), new Vector3(0.06452f, 0.06452f, 0.06452f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomEquipmentTrigger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBottledChaos"), "Pelvis", new Vector3(-0.07411f, 0.14141f, 0.18817f), new Vector3(0f, 0f, 249.6635f), new Vector3(0.17761f, 0.17761f, 0.17761f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomlyLunar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDomino"), "Base", new Vector3(0.61291f, 0.7002f, 0.59183f), new Vector3(0f, 90.61418f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RegeneratingScrap"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRegeneratingScrap"), "Chest", new Vector3(0.12253f, 0.21664f, -0.25245f), new Vector3(0f, 300.6745f, 0f), new Vector3(0.17439f, 0.17439f, 0.17439f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RepeatHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCorpseflower"), "Head", new Vector3(0f, 0.24822f, -0.13029f), new Vector3(322.7118f, 0f, 0f), new Vector3(0.21086f, 0.21086f, 0.21086f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SecondarySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDoubleMag"), "Chest", new Vector3(-0.08449f, 0.00566f, -0.23049f), new Vector3(0f, 271.5404f, 20.59871f), new Vector3(0.04354f, 0.04354f, 0.04354f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Seed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySeed"), "Chest", new Vector3(0.0533f, 0.01476f, 0.21988f), new Vector3(295.6509f, 118.2699f, 20.62117f), new Vector3(0.03433f, 0.03433f, 0.03433f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShieldOnly"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Head", new Vector3(-0.06864f, 0.26414f, 0.11709f), new Vector3(2.61163f, 173.9743f, 17.78423f), new Vector3(0.28874f, 0.28874f, 0.28874f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Head", new Vector3(-0.07673f, 0.26437f, -0.1198f), new Vector3(29.42133f, 178.2117f, 13.74956f), new Vector3(0.28874f, 0.28874f, 0.28874f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShinyPearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShinyPearl"), "Head", new Vector3(-0.00667f, 0.19522f, 0.00241f), new Vector3(296.5005f, 269.2322f, 268.2377f), new Vector3(0.11716f, 0.11716f, 0.11716f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShockNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeslaCoil"), "AntennaEnd", new Vector3(0.00096f, -0.01368f, 0.00015f), new Vector3(0f, 0f, 0f), new Vector3(0.31269f, 0.31269f, 0.31269f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SiphonOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySiphonOnLowHealth"), "Chest", new Vector3(0.16184f, -0.03773f, -0.18741f), new Vector3(330.871f, 326.8534f, 347.9729f), new Vector3(0.04842f, 0.04842f, 0.04842f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBauble"), "Chest", new Vector3(-0.00793f, 0f, 0.16258f), new Vector3(0f, 177.2082f, 0f), new Vector3(0.35076f, 0.35076f, 0.35076f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBaubleVoid"), "Chest", new Vector3(-0.00793f, 0f, 0.16258f), new Vector3(0f, 177.2082f, 0f), new Vector3(0.35076f, 0.35076f, 0.35076f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBuckler"), "LowerArm_R", new Vector3(-0.00248f, 0.0959f, 0.04707f), new Vector3(0f, 357.0033f, 0f), new Vector3(0.09929f, 0.09929f, 0.09929f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySoda"), "Chest", new Vector3(-0.16848f, 0.0698f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.21316f, 0.21316f, 0.34164f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintOutOfCombat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWhip"), "Pelvis", new Vector3(0.00671f, 0.20358f, -0.21216f), new Vector3(0.72368f, 273.0093f, 198.3661f), new Vector3(0.30444f, 0.30444f, 0.30444f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintWisp"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrokenMask"), "Head", new Vector3(-1E-05f, 0.25109f, -0.09894f), new Vector3(308.0753f, 180f, 180f), new Vector3(0.30264f, 0.30264f, 0.30264f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Squid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySquidTurret"), "Chest", new Vector3(0.36103f, 0.04764f, 0.19859f), new Vector3(6.71232f, 297.0324f, 273.413f), new Vector3(0.04409f, 0.04409f, 0.04409f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StickyBomb"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStickyBomb"), "Chest", new Vector3(0.37902f, 0.19489f, 0.14655f), new Vector3(89.44821f, 180f, 180f), new Vector3(0.21393f, 0.21393f, 0.21393f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StrengthenBurn"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasTank"), "Chest", new Vector3(0.16213f, -3E-05f, 0.21071f), new Vector3(0f, 85.04137f, 0f), new Vector3(0.12782f, 0.12782f, 0.12782f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StunChanceOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStunGrenade"), "Chest", new Vector3(0.3851f, -0.06567f, -0.15477f), new Vector3(305.8094f, 180f, 128.6002f), new Vector3(0.59578f, 0.59456f, 0.59456f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Syringe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySyringeCluster"), "Chest", new Vector3(0.12281f, 0.17744f, -0.23244f), new Vector3(303.9246f, 288.3851f, 9.68246f), new Vector3(0.13846f, 0.13846f, 0.13846f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Talisman"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTalisman"), "Base", new Vector3(1.27459f, -0.42324f, 0.68711f), new Vector3(272.6635f, 84.27998f, 186.1833f), new Vector3(0.61154f, 0.61154f, 0.61154f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Thorns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRazorwireLeft"), "LowerLeg_L", new Vector3(0.00466f, -0.14789f, 0.00336f), new Vector3(279.4286f, 262.1378f, 97.96846f), new Vector3(0.41616f, 0.41616f, 0.41616f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TitanGoldDuringTP"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldHeart"), "Chest", new Vector3(-0.16185f, -1E-05f, 0.11919f), new Vector3(0f, 285.8631f, 0f), new Vector3(0.24948f, 0.24948f, 0.24948f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tooth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothNecklaceDecal"), "Chest", new Vector3(-0.07265f, 0.17361f, 0.02066f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshLarge"), "Chest", new Vector3(-0.20001f, 0.18718f, 0.00561f), new Vector3(0f, 269.7748f, 0f), new Vector3(1.88679f, 1.88679f, 1.88679f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(-0.18841f, 0.1814f, -0.05991f), new Vector3(0f, 83.29137f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(-0.15991f, 0.18517f, -0.10482f), new Vector3(0f, 43.67003f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(-0.15027f, 0.18349f, 0.1196f), new Vector3(1.40108f, 126.9516f, 12.72196f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(-0.18467f, 0.18138f, 0.06782f), new Vector3(0f, 102.3407f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TPHealingNova"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlowFlower"), "Head", new Vector3(-0.06703f, 0.21518f, -0.13484f), new Vector3(343.5424f, 207.6166f, 138.3708f), new Vector3(0.325f, 0.325f, 0.325f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCache"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKey"), "Hand_L", new Vector3(0.01676f, 0.04853f, -0.0284f), new Vector3(344.8114f, 262.8856f, 265.7532f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCacheVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKeyVoid"), "Hand_L", new Vector3(0.01676f, 0.04853f, -0.0284f), new Vector3(344.8114f, 262.8856f, 265.7532f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["UtilitySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "Chest", new Vector3(-0.07111f, 0.17909f, 0f), new Vector3(0f, 0f, 271.5805f), new Vector3(0.39444f, 0.39444f, 0.39444f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "Chest", new Vector3(0.27768f, 0.18104f, -0.00617f), new Vector3(0f, 0f, 92.2831f), new Vector3(0.39444f, 0.39444f, 0.39444f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VoidMegaCrabItem"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMegaCrabItem"), "Pelvis", new Vector3(0.10774f, 0.14956f, 0.00217f), new Vector3(2E-05f, 92.7468f, 179.4006f), new Vector3(0.1127f, 0.1127f, 0.1127f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WarCryOnMultiKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPauldron"), "UpperArm_L", new Vector3(-0.00239f, 0.07986f, 0.07137f), new Vector3(69.2226f, 0f, 0f), new Vector3(0.4481f, 0.4481f, 0.4481f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WardOnLevel"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarbanner"), "Chest", new Vector3(0.26152f, -0.17184f, -0.0013f), new Vector3(270.1968f, 322.4484f, 37.55149f), new Vector3(0.3182f, 0.3182f, 0.3182f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BFG"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBFG"), "Chest", new Vector3(0.31586f, 0.19245f, 0.12007f), new Vector3(0f, 267.9175f, 322.0025f), new Vector3(0.36063f, 0.36063f, 0.36063f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Blackhole"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravCube"), "Base", new Vector3(0.50501f, 0.18418f, 0.4267f), new Vector3(0f, 0f, 0f), new Vector3(0.66456f, 0.66456f, 0.66456f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornGhost"), "Head", new Vector3(0.05316f, 0.35686f, -0.05877f), new Vector3(17.99527f, 263.5692f, 14.54546f), new Vector3(0.59295f, 0.59295f, 0.59295f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBlunderbuss"), "Base", new Vector3(0.84813f, -0.93831f, -0.45449f), new Vector3(5.72752f, 265.7413f, 7.01252f), new Vector3(0.48816f, 0.48816f, 0.48816f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunterConsumed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornUsed"), "Head", new Vector3(0.05316f, 0.35686f, -0.05877f), new Vector3(17.99527f, 263.5692f, 14.54546f), new Vector3(0.59295f, 0.59295f, 0.59295f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BurnNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPotion"), "Chest", new Vector3(0.08836f, -0.10432f, 0.20602f), new Vector3(24.23851f, 0f, 0f), new Vector3(0.03282f, 0.03282f, 0.03148f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Cleanse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaterPack"), "Chest", new Vector3(0.0645f, -0.17492f, 0.16769f), new Vector3(0f, 5.73057f, 0f), new Vector3(0.03946f, 0.03946f, 0.03946f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CommandMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileRack"), "Chest", new Vector3(0.41906f, 0.00106f, -0.00167f), new Vector3(63.54191f, 92.66849f, 2.07219f), new Vector3(0.50621f, 0.45912f, 0.45912f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CrippleWard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEffigy"), "Pelvis", new Vector3(0.13311f, 0.20948f, 0.1178f), new Vector3(6.26102f, 249.7522f, 176.3354f), new Vector3(0.34056f, 0.34056f, 0.34056f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayNeuralImplant"), "Head", new Vector3(-0.24301f, 0.10163f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.27438f, 0.27438f, 0.27438f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathProjectile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathProjectile"), "Pelvis", new Vector3(0.14692f, 0.13858f, 0.06294f), new Vector3(347.4734f, 98.7227f, 179.6219f), new Vector3(0.05998f, 0.05998f, 0.05998f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DroneBackup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRadio"), "Chest", new Vector3(0.27559f, 0.06374f, -0.22417f), new Vector3(0f, 180.4174f, 0f), new Vector3(0.43487f, 0.43487f, 0.43487f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteEarthEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteMendingAntlers"), "Head", new Vector3(-0.1007f, 0.22575f, -0.01523f), new Vector3(0f, 87.79044f, 0f), new Vector3(0.45773f, 0.45773f, 0.45773f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteFireEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Head", new Vector3(-0.10656f, 0.20931f, 91f / (345f * MathF.PI)), new Vector3(59.54528f, 271.6492f, -1E-05f), new Vector3(0.10092f, 0.10092f, 0.10092f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Head", new Vector3(-0.07786f, 0.1793f, -0.09843f), new Vector3(53.66252f, 295.9502f, 37.80921f), new Vector3(0.10092f, 0.10092f, 0.10092f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteHauntedEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteStealthCrown"), "Head", new Vector3(0.03706f, 0.32837f, 0.00051f), new Vector3(87.41578f, 252.7018f, 160.0903f), new Vector3(0.05305f, 0.05305f, 0.05305f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteIceEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteIceCrown"), "Head", new Vector3(0.03706f, 0.32837f, 0.00051f), new Vector3(272.5433f, 75.42621f, 197.188f), new Vector3(0.03533f, 0.03533f, 0.03533f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLightningEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Head", new Vector3(-0.11515f, 0.21965f, 0.01083f), new Vector3(312.2474f, 272.3533f, 1.61811f), new Vector3(0.30562f, 0.30562f, 0.30562f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Head", new Vector3(-0.02394f, 0.28778f, 0.00231f), new Vector3(278.4761f, 265.8581f, 8.62979f), new Vector3(0.2072f, 0.2072f, 0.2072f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLunarEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteLunar,Eye"), "Head", new Vector3(-0.27937f, 0.15486f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.15645f, 0.15645f, 0.15645f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElitePoisonEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteUrchinCrown"), "Head", new Vector3(0f, 0.21471f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.05744f, 0.05744f, 0.05744f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteVoidEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAffixVoid"), "Head", new Vector3(-0.16398f, 0.13871f, -0.00129f), new Vector3(80.02962f, 273.9519f, 3.89244f), new Vector3(0.15721f, 0.15721f, 0.15721f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireBallDash"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEgg"), "Pelvis", new Vector3(-0.13095f, 0.11147f, -0.13977f), new Vector3(61.85883f, 225.7944f, 222.195f), new Vector3(0.23875f, 0.23875f, 0.23875f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Fruit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFruit"), "Chest", new Vector3(0.10001f, 0f, 0.08042f), new Vector3(0f, 0f, 0f), new Vector3(0.22936f, 0.22936f, 0.22936f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GainArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElephantFigure"), "LowerLeg_L", new Vector3(-0.10747f, 0.12472f, -0.00726f), new Vector3(84.51481f, 230.073f, 330.2462f), new Vector3(0.35078f, 0.35078f, 0.35078f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Gateway"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVase"), "Chest", new Vector3(0.19245f, 0.20838f, -0.19241f), new Vector3(339.4157f, 0f, 349.9713f), new Vector3(0.18141f, 0.18141f, 0.18141f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldGat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldGat"), "Chest", new Vector3(0.48918f, 0.34411f, 0.20797f), new Vector3(18.26444f, 358.9721f, 298.345f), new Vector3(0.12671f, 0.12671f, 0.12671f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GummyClone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGummyClone"), "LowerLeg_L", new Vector3(-0.07369f, 0.13715f, 0.00499f), new Vector3(8.94131f, 79.4669f, 0f), new Vector3(0.15639f, 0.15639f, 0.15639f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IrradiatingLaser"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIrradiatingLaser"), "Chest", new Vector3(0.19799f, 0.06568f, 0.17483f), new Vector3(346.3088f, 313.3362f, 263.6516f), new Vector3(0.18921f, 0.18921f, 0.18921f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Jetpack"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBugWings"), "Chest", new Vector3(0.35952f, 0.06095f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.10693f, 0.10693f, 0.10693f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LifestealOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLifestealOnHit"), "Head", new Vector3(0f, 0.21109f, -0.22299f), new Vector3(0f, 0f, 0f), new Vector3(0.06405f, 0.06405f, 0.06405f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Lightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLightningArmCustom"), "UpperArm_R", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)2))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPortalOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarPortalOnUse"), "Base", new Vector3(0.85324f, -0.52689f, 0.82213f), new Vector3(292.3038f, 270f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Meteor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMeteor"), "Base", new Vector3(0.50703f, -0.66709f, 0.49974f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Molotov"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMolotov"), "Pelvis", new Vector3(-0.14238f, 0.12643f, 0.1959f), new Vector3(18.96058f, 180f, 195.7919f), new Vector3(0.22771f, 0.22771f, 0.22771f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MultiShopCard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayExecutiveCard"), "Pelvis", new Vector3(0.04081f, 0.10968f, -0.1708f), new Vector3(273.3229f, 236.3019f, 123.7426f), new Vector3(0.48274f, 0.48274f, 0.48274f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["QuestVolatileBattery"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBatteryArray"), "Chest", new Vector3(0.3798f, 0.07584f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.29432f, 0.29432f, 0.29432f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Recycle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRecycler"), "Chest", new Vector3(0.20859f, -0.01893f, -0.23034f), new Vector3(270.4131f, 180f, 180f), new Vector3(0.04993f, 0.04993f, 0.04993f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Saw"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySawmerangFollower"), "Base", new Vector3(0.62057f, -0.38055f, 0.3848f), new Vector3(0f, 90f, 0f), new Vector3(0.13693f, 0.13693f, 0.13693f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Scanner"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScanner"), "Chest", new Vector3(0.26112f, 0.14046f, 0.0484f), new Vector3(311.1332f, 88.70815f, 181.8114f), new Vector3(0.23024f, 0.23024f, 0.23024f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TeamWarCry"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeamWarCry"), "Chest", new Vector3(0.38908f, -1E-05f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.04936f, 0.04936f, 0.04936f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tonic"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTonic"), "Head", new Vector3(0.04107f, -0.33387f, 0.17128f), new Vector3(0f, 0f, 300.3592f), new Vector3(0.15407f, 0.15407f, 0.15407f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VendingMachine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVendingMachine"), "Chest", new Vector3(0.22717f, 0.30069f, 0.0884f), new Vector3(0f, 0f, 0f), new Vector3(0.08405f, 0.08405f, 0.08405f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BoostAllStats"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGrowthNectar"), "Pelvis", new Vector3(0.09604f, 0.12288f, 0.17354f), new Vector3(1.25957f, 1.29923f, 166.7407f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DelayedDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDelayedDamage"), "Chest", new Vector3(0.36336f, 0.05242f, -0.05728f), new Vector3(1.31166f, 90.06708f, 11.268f), new Vector3(0.26839f, 0.26839f, 0.26839f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraShrineItem"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayChanceDoll"), "Chest", new Vector3(0.36795f, -0.11478f, 0.18911f), new Vector3(26.02569f, 46.43238f, 359.606f), new Vector3(0.1149f, 0.1149f, 0.1149f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraStatsOnLevelUp"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPrayerBeads"), "Head", new Vector3(0.01962f, 0.08088f, -0.00011f), new Vector3(0f, 270.3165f, 0f), new Vector3(2.16481f, 1.76295f, 2.03607f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrageOnBoss"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTreasuryDividends"), "LowerArm_L", new Vector3(0f, 0.09721f, 0.07705f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreaseDamageOnMultiKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIncreaseDamageOnMultiKill"), "Chest", new Vector3(0.36431f, -0.03249f, -0.10571f), new Vector3(270.6331f, 93.32165f, 0.00155f), new Vector3(0.16501f, 0.16501f, 0.16501f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreasePrimaryDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIncreasePrimaryDamage"), "Chest", new Vector3(0.20498f, 0.08168f, 0.20632f), new Vector3(0f, 0f, 0f), new Vector3(0.50201f, 0.50201f, 0.50201f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["KnockBackHitEnemies"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKnockbackFin"), "Head", new Vector3(-0.07388f, 0.30873f, -0.00495f), new Vector3(81.86796f, 279.8729f, 9.77552f), new Vector3(0.28122f, 0.28122f, 0.28122f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedPerNearbyAllyOrEnemy"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRageCrystal"), "Chest", new Vector3(0.21485f, -0.11312f, -0.13799f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LowerPricedChests"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLowerPricedChests"), "Base", new Vector3(0.38087f, -0.18446f, 0.51145f), new Vector3(355.1788f, 91.70925f, 5.32296f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MeteorAttackOnHighDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMeteorAttackOnHighDamage"), "Chest", new Vector3(-0.02467f, 0.26658f, -0.29284f), new Vector3(0f, 272.3377f, 42.02658f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SpeedBoostPickup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElusiveAntlersLeft"), "Head", new Vector3(-0.04168f, 0.26611f, 0.09311f), new Vector3(8.75391f, 95.96777f, 9.1939f), new Vector3(0.5f, 0.5f, 0.5f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElusiveAntlersRight"), "Head", new Vector3(-0.05426f, 0.26732f, -0.0727f), new Vector3(8.91361f, 75.60503f, 348.535f), new Vector3(0.5f, 0.5f, 0.5f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["OnLevelUpFreeUnlock"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOnLevelUpFreeUnlock"), "Base", new Vector3(0.51118f, -0.33051f, -0.43643f), new Vector3(287.3323f, 334.5395f, 117.7204f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOnLevelUpFreeUnlockTablet"), "Chest", new Vector3(0.40566f, -0.06154f, -0.03119f), new Vector3(5.33628f, 91.95823f, 312.1917f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ItemDropChanceOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySonorousEcho"), "Pelvis", new Vector3(-0.02903f, 0.10777f, -0.19438f), new Vector3(302.6315f, 7.03862f, 91.02164f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StunAndPierce"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElectricBoomerang"), "Chest", new Vector3(0.38068f, -0.04543f, -0.17514f), new Vector3(356.0883f, 4.83219f, 268.9089f), new Vector3(0.13579f, 0.13579f, 0.13579f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TeleportOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeleportOnLowHealth"), "Chest", new Vector3(0.35286f, -0.22473f, 0.17844f), new Vector3(5.02208f, 85.22944f, 345.5856f), new Vector3(0.54802f, 0.54802f, 0.54802f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TriggerEnemyDebuffs"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayNoxiousThorn"), "Chest", new Vector3(-0.09529f, 0.12631f, -0.18921f), new Vector3(4.75627f, 3.99451f, 90.98023f), new Vector3(0.63167f, 0.63167f, 0.63167f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnCooldown"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBarrierOnCooldown"), "Chest", new Vector3(0.04603f, -0.09635f, -0.20142f), new Vector3(4.69576f, 3.46809f, 83.33956f), new Vector3(0.09023f, 0.09023f, 0.09023f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BonusHealthBoost"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayQuickFix"), "Chest", new Vector3(0.25698f, 0.25716f, 0.02942f), new Vector3(359.9251f, 0.16945f, 356.6676f), new Vector3(0.19697f, 0.19697f, 0.19697f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CookedSteak"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCookedSteakFlat"), "Chest", new Vector3(0.31303f, 0.27395f, 0.09978f), new Vector3(271.1273f, 53.49149f, 304.5389f), new Vector3(0.07478f, 0.07478f, 0.07478f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritAtLowerElevation"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("CritAtLowerElevationDisplay"), "Chest", new Vector3(0.34116f, -0.14736f, -0.1159f), new Vector3(9.4216f, 127.0309f, 14.99453f), new Vector3(0.10074f, 0.10074f, 0.10074f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DronesDropDynamite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DronesDropDynamiteDisplay"), "Chest", new Vector3(-0.09529f, 0.12631f, -0.18921f), new Vector3(4.75627f, 3.99451f, 90.98023f), new Vector3(0.63167f, 0.63167f, 0.63167f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DronesDropDynamite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DronesDropDynamiteDisplay"), "Chest", new Vector3(-0.17069f, -0.09938f, -0.00396f), new Vector3(298.0754f, 90.18692f, 3.05344f), new Vector3(0.15419f, 0.15419f, 0.15419f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Duplicator"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDuplicator"), "Chest", new Vector3(0.0469f, 0.18598f, -0.36457f), new Vector3(299.2726f, 160.5822f, 1.32627f), new Vector3(0.1402f, 0.1402f, 0.1402f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayExtraEquipment"), "Chest", new Vector3(-0.06338f, -0.14439f, 0.20064f), new Vector3(3.34437f, 339.1364f, 352.9571f), new Vector3(0.17986f, 0.17986f, 0.17986f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["JumpDamageStrike"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJumpDamageStrike"), "LowerLeg_L", new Vector3(-0.09763f, 0.14209f, 0.00978f), new Vector3(278.8739f, 327.9993f, 109.5758f), new Vector3(0.3f, 0.3f, 0.3f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJumpDamageStrike"), "LowerLeg_R", new Vector3(-0.09763f, 0.14209f, 0.00978f), new Vector3(278.8738f, 327.9993f, 109.5758f), new Vector3(0.3f, 0.3f, 0.3f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MasterBattery"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPowerOrbSphere"), "Chest", new Vector3(-0.09529f, 0.12631f, -0.18921f), new Vector3(4.75627f, 3.99451f, 90.98024f), new Vector3(0.5f, 0.5f, 0.5f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PhysicsProjectile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("PhysicsProjectileDisplay"), "Chest", new Vector3(0.34684f, 0.08994f, -0.06962f), new Vector3(16.85695f, 100.416f, 358.2826f), new Vector3(0.12101f, 0.12101f, 0.12101f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PowerCube"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPowerCube"), "Chest", new Vector3(-0.10483f, 0.12719f, -0.31498f), new Vector3(4.75627f, 3.99451f, 90.98024f), new Vector3(0.5f, 0.5f, 0.5f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PowerPyramid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPowerPyramid"), "Chest", new Vector3(-0.10483f, 0.12719f, -0.31498f), new Vector3(4.75627f, 3.99451f, 90.98024f), new Vector3(0.5f, 0.5f, 0.5f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SharedSuffering"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("SharedSufferingDisplay"), "Chest", new Vector3(0.27021f, 0.03462f, -0.21652f), new Vector3(359.4699f, 94.70332f, 270.0923f), new Vector3(0.11716f, 0.11716f, 0.11716f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShieldBooster"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBooster"), "LowerArm_R", new Vector3(-0.01139f, 0.10372f, 0.04127f), new Vector3(86.89701f, 286.1124f, 287.0939f), new Vector3(0.15137f, 0.15137f, 0.15137f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShockDamageAura"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("ShockDamageAuraDisplay"), "Chest", new Vector3(0.02064f, 0.2977f, 0.33082f), new Vector3(39.46093f, 351.5211f, 353.7635f), new Vector3(0.11367f, 0.11367f, 0.11367f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SpeedOnPickup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("SpeedOnPickupDisplay"), "Chest", new Vector3(0.20899f, -2E-05f, 0.20936f), new Vector3(22.82153f, 14.39999f, 0f), new Vector3(0.12131f, 0.12131f, 0.12131f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Stew"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("StewDisplay"), "Chest", new Vector3(0.2302f, 0.24304f, 0.13527f), new Vector3(0f, 0f, 0f), new Vector3(0.06356f, 0.06356f, 0.06356f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["UltimateMeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("UltimateMealDisplay"), "AntennaEnd", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.76725f, 0.76725f, 0.62022f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WyrmOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWyrmOnHit"), "Chest", new Vector3(0.01411f, 0.30012f, 0.00023f), new Vector3(0f, 269.0552f, 0f), new Vector3(0.1f, 0.1f, 0.1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteCollectiveEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteCollectiveHorn"), "Head", new Vector3(0f, 0f, 0f), new Vector3(337.7074f, 55.83787f, 7.37542f), new Vector3(0.2623f, 0.2623f, 0.2623f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteCollectiveHorn"), "Head", new Vector3(-0.04699f, 0.00737f, 0.01106f), new Vector3(345.5632f, 132.4045f, 172.5172f), new Vector3(0.26247f, -0.26247f, 0.26247f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteCollectiveRing"), "Head", new Vector3(-0.0348f, 0.11507f, 0.00354f), new Vector3(1.54093f, 274.8152f, 8.42855f), new Vector3(0.22511f, 0.22511f, 0.22511f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GroundEnemies"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGroundEnemies"), "Chest", new Vector3(-0.21439f, 0.13497f, 0.00237f), new Vector3(8.53031f, 91.97472f, 358.6857f), new Vector3(0.21832f, 0.21832f, 0.21832f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Parry"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("ParryDisplay"), "Gun", new Vector3(0.00043f, 0.16392f, 0.15534f), new Vector3(273.2132f, 359.6266f, 181.719f), new Vector3(0.63167f, 0.63167f, 0.63167f)))); if (RobomandoPlugin.scepterInstalled) { itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules((Object)(object)RobomandoScepterIntegration.scepterDef, ItemDisplays.CreateDisplayRule(RobomandoScepterIntegration.scepterDisplay, "Hand_L", new Vector3(-0.02244f, 0.09471f, -0.02989f), new Vector3(357.8302f, 343.6697f, 93.39213f), new Vector3(0.19208f, 0.19208f, 0.19208f)))); } } } public static class RobomandoStates { public static void Init() { Content.AddEntityState(typeof(Shoot)); Content.AddEntityState(typeof(Zap)); Content.AddEntityState(typeof(Roll)); Content.AddEntityState(typeof(Hack)); Content.AddEntityState(typeof(BouncyBomb)); Content.AddEntityState(typeof(Overwire)); } } public static class RobomandoStaticValues { public static float shootDamageCoefficient = 1f; public static float zapDamageCoefficient = 3f; public static float shootProcCoefficient = 1f; public static float zapProcCoefficient = 3f; public static float zapCooldown = 3f; public static float diveCooldown = 4f; public static float diveCrashTime = 2f; public static float hackTime = 3.33f; public static float successfullHackCooldown = 8f; public static float unsuccessfullHackCooldown = 2f; public static float bouncyBombDamageCoefficient = 4f; public static float bouncyBombProcCoefficient = 1f; public static float bouncyBombCooldown = 5f; } public static class RobomandoTokens { public static CultureInfo GRAHH = new CultureInfo("en-US"); public static Dictionary> DynamicTextDict; private static bool initialized = false; public static readonly string[] dynamicTokens = new string[4] { "RAT_ROBOMANDO_PRIMARY_SHOT_DESCRIPTION", "RAT_ROBOMANDO_SECONDARY_ZAP_DESCRIPTION", "RAT_ROBOMANDO_SECONDARY_BOMB_DESCRIPTION", "RAT_ROBOMANDO_SPECIAL_OVERWIRE_DESCRIPTION" }; public static void Init() { GetDynamicTextDict(); initialized = true; ChangeSingleShotText(); ChangeZapText(); ChangeBombText(); ChangeOverwireText(); Language.onCurrentLanguageChanged += ChangeSingleShotText; Language.onCurrentLanguageChanged += ChangeZapText; Language.onCurrentLanguageChanged += ChangeBombText; Language.onCurrentLanguageChanged += ChangeOverwireText; } public static void GetDynamicTextDict() { DynamicTextDict = new Dictionary>(); string text = ""; string text2 = ""; try { text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)RobomandoPlugin.instance).Info.Location), "RobomandoLangFiles.language"); text2 = File.ReadAllText(text); } catch (FileNotFoundException) { Log.Warning("Cannot find langauge file"); } catch (Exception ex2) { Log.Error("Encountered an error trying to read language file. Stack trace: " + ex2.StackTrace); } if (text2.Equals("")) { return; } Dictionary> dictionary = JsonConvert.DeserializeObject>>(text2); foreach (string key3 in dictionary.Keys) { string key = key3; if (key3.Equals("strings")) { key = "default"; } if (!dictionary.ContainsKey(key3)) { continue; } Dictionary dictionary2 = dictionary[key3]; string[] array = dynamicTokens; foreach (string key2 in array) { if (!DynamicTextDict.ContainsKey(key)) { DynamicTextDict.Add(key, new Dictionary()); } Dictionary dictionary3 = DynamicTextDict[key]; if (dictionary2.ContainsKey(key2)) { dictionary3.Add(key2, dictionary2[key2]); } } } } public static void ChangeSingleShotText() { SetNewAbilityToken("RAT_ROBOMANDO_PRIMARY_SHOT_DESCRIPTION", RobomandoStaticValues.shootDamageCoefficient * 100f); } public static void ChangeZapText() { SetNewAbilityToken("RAT_ROBOMANDO_SECONDARY_ZAP_DESCRIPTION", RobomandoStaticValues.zapDamageCoefficient * 100f); } public static void ChangeBombText() { SetNewAbilityToken("RAT_ROBOMANDO_SECONDARY_BOMB_DESCRIPTION", RobomandoStaticValues.bouncyBombDamageCoefficient * 100f); } public static void ChangeOverwireText() { SetNewAbilityToken("RAT_ROBOMANDO_SPECIAL_OVERWIRE_DESCRIPTION", Overwire.doubleChance * 100f); } private static void SetNewAbilityToken(string token, object param) { if (!initialized) { return; } string text = Language.currentLanguageName; if (!DynamicTextDict.ContainsKey(text)) { text = "default"; } if (!DynamicTextDict.ContainsKey(text)) { Log.Warning(StringUtils.FormatWith("No specified value for language {0}", (IFormatProvider)null, (object)text)); return; } Dictionary dictionary = DynamicTextDict[text]; if (!dictionary.ContainsKey(token)) { Log.Warning(StringUtils.FormatWith("Cannot locate language key {0}", (IFormatProvider)null, (object)token)); return; } string text2 = DynamicTextDict[text][token]; if (text2 != null) { ModLanguage.SetTemporaryValue(token, StringUtils.FormatWith(text2, (IFormatProvider)null, param)); Log.Debug(StringUtils.FormatWith("Attemping to overlay token {0} with string {1}", (IFormatProvider)null, (object)token, (object)text2)); } } public static void AddRobomandoTokens() { string text = "RAT_ROBOMANDO_"; string text2 = "Your Robomando Model 7 is equipped with all of the tools necessary to salvage any mechanical device encountered in the wild." + Environment.NewLine + Environment.NewLine + "< ! > His patented Re-Wire can co-op machines of any kind, even from a competitor!" + Environment.NewLine + Environment.NewLine + "< ! > Built for speed, he is faster than most survivors on his feet, but isn't very durable. Use this speed to your advantage. It is generally more effective to run instead of trying to roll." + Environment.NewLine + Environment.NewLine + "< ! > While he himself may have weak damage, items that scale off of damage are generally stronger when used by Robomando. Use his re-wire to run through stages and quickly gain offensive items." + Environment.NewLine + Environment.NewLine + "< ! > Please keep in mind that, while your Robomando is equipped with offensive abilities, it is not designed for hostile environments" + Environment.NewLine + Environment.NewLine; string text3 = "..and so it left nothing behind."; string text4 = "..and so it failed, to no one's particular surprise or excitement."; string text5 = "I thought the advertisements were bogus at first. I mean, this little toy soldier is able to hack into any mechanical device? It sounded like bullshit." + Environment.NewLine + Environment.NewLine + "Well, imagine my shock when the thing hotwired my car and took it for a joyride. Found it two hours later totaled in a ditch. Apparently the thing couldn't reach the steering wheel." + Environment.NewLine + Environment.NewLine + "It really just seemed like a toy to me. I hope to God no unaware parents got this little freak for their kids."; ModLanguage.Add(text + "NAME", "Robomando"); ModLanguage.Add(text + "DESCRIPTION", text2); ModLanguage.Add(text + "SUBTITLE", "God's Strongest Soldier"); ModLanguage.Add(text + "LORE", text5); ModLanguage.Add(text + "OUTRO_FLAVOR", text3); ModLanguage.Add(text + "OUTRO_FAILURE", text4); ModLanguage.Add(text + "MASTERY_SKIN_NAME", "Hero's Disciple"); ModLanguage.Add(text + "GRANDMASTERY_SKIN_NAME", "Trophy Taker"); ModLanguage.Add(text + "COMMANDO_SKIN_NAME", "Like Father, Like Son"); ModLanguage.Add(text + "BLUE_SKIN_NAME", "Soaked"); ModLanguage.Add(text + "GREEN_SKIN_NAME", "Goblin"); ModLanguage.Add(text + "SODA_SKIN_NAME", "Caffeinated Cretin"); ModLanguage.Add(text + "PASSIVE_NAME", "Robomando passive"); ModLanguage.Add(text + "PASSIVE_DESCRIPTION", "Sample text."); ModLanguage.Add(text + "PRIMARY_SHOT_NAME", "Single Fire"); ModLanguage.Add(text + "PRIMARY_SHOT_DESCRIPTION", "Agile." + $" Shoot for {100f * RobomandoStaticValues.shootDamageCoefficient}% damage."); ModLanguage.Add(text + "SECONDARY_ZAP_NAME", "De-Escalate"); ModLanguage.Add(text + "SECONDARY_ZAP_DESCRIPTION", "Agile." + $" Stunning. Fire a small, piercing electric pulse for {100f * RobomandoStaticValues.zapDamageCoefficient}% damage."); ModLanguage.Add(text + "SECONDARY_BOMB_NAME", "Bouncy Bomb"); ModLanguage.Add(text + "SECONDARY_BOMB_DESCRIPTION", $"Throw a bomb that bounces off of terrain and explodes on contact for {100f * RobomandoStaticValues.bouncyBombDamageCoefficient}% damage. Hold up to 2."); ModLanguage.Add(text + "UTILITY_ROLL_NAME", "Evasive Maneuver"); ModLanguage.Add(text + "UTILITY_ROLL_DESCRIPTION", "Attempt to roll a short distance. You cannot be hit during the beginning of the roll."); ModLanguage.Add(text + "SPECIAL_HACK_NAME", "Re-Wire"); ModLanguage.Add(text + "SPECIAL_HACK_DESCRIPTION", "Jury-Rig. Re-wire a nearby mechanical object, activating it for free."); ModLanguage.Add(text + "SPECIAL_OVERWIRE_NAME", "Over-Wire"); ModLanguage.Add(text + "SPECIAL_OVERWIRE_DESCRIPTION", "Jury-Rig. Re-wire a nearby mechanical object, activating it for free with a " + (Overwire.doubleChance * 100f).ToString("#") + "% chance for enhanced output."); ModLanguage.Add(Tokens.GetAchievementNameToken("RAT_ROBOMANDO_MasteryAchievement"), "Robomando: Mastery"); ModLanguage.Add(Tokens.GetAchievementDescriptionToken("RAT_ROBOMANDO_MasteryAchievement"), "As Robomando, beat the game or obliterate on Monsoon."); ModLanguage.Add(Tokens.GetAchievementNameToken("RAT_ROBOMANDO_GrandMasteryAchievement"), "Robomando: Grandmastery"); ModLanguage.Add(Tokens.GetAchievementDescriptionToken("RAT_ROBOMANDO_GrandMasteryAchievement"), "As Robomando, beat the game or obliterate on Typhoon or Eclipse (or higher)."); ModLanguage.Add(Tokens.GetAchievementNameToken("RAT_ROBOMANDO_SodaAchievement"), "Robomando: Caffeine Addict"); ModLanguage.Add(Tokens.GetAchievementDescriptionToken("RAT_ROBOMANDO_SodaAchievement"), "As Robomando, hack a vending machine."); ModLanguage.Add(text + "KEYWORD_JURY_RIG", "Jury-RigRe-wiring a printer will give you a scrap depending on the rarity of the printer item, but destroys the printer."); } } public static class RobomandoUnlockables { public static UnlockableDef characterUnlockableDef; public static UnlockableDef masterySkinUnlockableDef; public static UnlockableDef grandMasterySkinUnlockableDef; public static UnlockableDef sodaSkinUnlockableDef; public static void Init() { masterySkinUnlockableDef = Content.CreateAndAddUnlockbleDef("RAT_ROBOMANDO_MasteryUnlockable", Tokens.GetAchievementNameToken("RAT_ROBOMANDO_MasteryAchievement"), CharacterBase.instance.assetBundle.LoadAsset("texProvidenceSkin")); grandMasterySkinUnlockableDef = Content.CreateAndAddUnlockbleDef("RAT_ROBOMANDO_GrandMasteryUnlockable", Tokens.GetAchievementNameToken("RAT_ROBOMANDO_GrandMasteryAchievement"), CharacterBase.instance.assetBundle.LoadAsset("texTrueProvidenceSkin")); sodaSkinUnlockableDef = Content.CreateAndAddUnlockbleDef("RAT_ROBOMANDO_SodaUnlockable", Tokens.GetAchievementNameToken("RAT_ROBOMANDO_SodaAchievement"), CharacterBase.instance.assetBundle.LoadAsset("texSodaSkin")); } } public class RobomandoSurvivor : SurvivorBase { [CompilerGenerated] private sealed class d__66 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float duration; public Stage stage; public RobomandoSurvivor <>4__this; private IEnumerator <>s__1; private LocalUser 5__2; private CharacterBody 5__3; private Xoroshiro128Plus 5__4; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__66(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>s__1 = null; 5__2 = null; 5__3 = null; 5__4 = null; <>1__state = -2; } private bool MoveNext() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(duration); <>1__state = 1; return true; case 1: <>1__state = -1; <>s__1 = LocalUserManager.readOnlyLocalUsersList.GetEnumerator(); try { while (<>s__1.MoveNext()) { 5__2 = <>s__1.Current; 5__3 = 5__2.cachedBody; if (Object.op_Implicit((Object)(object)5__3)) { SceneIndex sceneDefIndex = stage.sceneDef.sceneDefIndex; if (((object)(SceneIndex)(ref sceneDefIndex)).Equals((object?)SceneCatalog.FindSceneIndex("moon2"))) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)5__3).gameObject, "Play_Robo_Voice_Spawn_Moon"); return false; } 5__4 = new Xoroshiro128Plus((ulong)Run.instance.runRNG.nextUint); if (5__4.nextBool) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)5__3).gameObject, "Play_Robo_Voice_Spawn_Stage"); } else { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)5__3).gameObject, "Play_Robo_Voice_Spawn_Party"); } 5__4 = null; } 5__3 = null; 5__2 = null; } } finally { if (<>s__1 != null) { <>s__1.Dispose(); } } <>s__1 = null; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public const string ROBO_PREFIX = "RAT_ROBOMANDO_"; public static Transform gunTransform; public static AssetBundle VFXBundle; public override string assetBundleName => "robomandobundle"; public override string bodyName => "RobomandoBody"; public override string masterName => "RobomandoMonsterMaster"; public override string modelPrefabName => "mdlRobomando"; public override string displayPrefabName => "mdlRobomandoDisplay"; public override string survivorTokenPrefix => "RAT_ROBOMANDO_"; public override BodyInfo bodyInfo => new BodyInfo { bodyName = bodyName, bodyNameToken = "RAT_ROBOMANDO_NAME", subtitleNameToken = "RAT_ROBOMANDO_SUBTITLE", characterPortrait = assetBundle.LoadAsset("texRobomandoIcon"), bodyColor = new Color(0.61960787f, 0.64705884f, 56f / 85f), sortPosition = 100f, crosshair = Asset.LoadCrosshair("Standard"), podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), maxHealth = 75f, healthRegen = 1.5f, armor = 0f, moveSpeed = 8.2f, jumpCount = 1, damage = 15f, damageGrowth = 3f }; public override CustomRendererInfo[] customRendererInfos => new CustomRendererInfo[7] { new CustomRendererInfo { childName = "Guy" }, new CustomRendererInfo { childName = "Gun" }, new CustomRendererInfo { childName = "Crown", ignoreOverlays = true }, new CustomRendererInfo { childName = "Hat", ignoreOverlays = true }, new CustomRendererInfo { childName = "TrueCrown", ignoreOverlays = true }, new CustomRendererInfo { childName = "Cape", ignoreOverlays = true }, new CustomRendererInfo { childName = "Antenna" } }; public override UnlockableDef characterUnlockableDef => RobomandoUnlockables.characterUnlockableDef; public override ItemDisplaysBase itemDisplays => new RobomandoItemDisplays(); public override AssetBundle assetBundle { get; protected set; } public override GameObject bodyPrefab { get; protected set; } public override CharacterBody prefabCharacterBody { get; protected set; } public override GameObject characterModelObject { get; protected set; } public override CharacterModel prefabCharacterModel { get; protected set; } public override GameObject displayPrefab { get; protected set; } public override void Initialize() { base.Initialize(); ModSettingsManager.SetModIcon(assetBundle.LoadAsset("texRobomandoModIcon")); ModSettingsManager.SetModDescription("robo man doe"); } public override void InitializeCharacter() { RobomandoUnlockables.Init(); base.InitializeCharacter(); RobomandoConfig.Init(); RobomandoStates.Init(); RobomandoTokens.Init(); AssetBundle vfxbundle = Asset.LoadAssetBundle("robomandovfxassets"); RobomandoAssets.Init(assetBundle, vfxbundle); RobomandoBuffs.Init(assetBundle); InitializeEntityStateMachines(); InitializeSkills(); InitializeSkins(); InitializeCharacterMaster(); AdditionalBodySetup(); AddHooks(); } protected override void InitializeDisplayPrefab() { displayPrefab = Prefabs.CreateDisplayPrefab(assetBundle, displayPrefabName, bodyPrefab); displayPrefab.AddComponent(); } private void AdditionalBodySetup() { AddHitboxes(); bodyPrefab.AddComponent(); Log.Debug("Adding HackIndicator"); bodyPrefab.AddComponent().Init(); ChildLocator component = ((Component)prefabCharacterModel).GetComponent(); GameObject gameObject = ((Component)component).gameObject; GameObject gameObject2 = ((Component)component.FindChildGameObject(component.FindChildIndex("Antenna")).transform.parent).gameObject; DynamicBone val = gameObject2.AddComponent(); val.m_Root = gameObject2.transform.GetChild(1).GetChild(0); val.m_Exclusions = new List { val.m_Root.GetChild(0).GetChild(0) }; ChildLocator component2 = ((Component)displayPrefab.GetComponent()).GetComponent(); GameObject gameObject3 = ((Component)component2.FindChildGameObject(component2.FindChildIndex("Antenna")).transform.parent).gameObject; DynamicBone val2 = gameObject3.AddComponent(); val2.m_Root = gameObject3.transform.GetChild(1).GetChild(0); val2.m_Exclusions = new List { val2.m_Root.GetChild(0).GetChild(0) }; bodyPrefab.AddComponent().system = ((Component)component.FindChild("VoiceEffect")).GetComponent(); } public void AddHitboxes() { } public override void InitializeEntityStateMachines() { Prefabs.ClearEntityStateMachines(bodyPrefab); Prefabs.AddMainEntityStateMachine(bodyPrefab, "Body", typeof(GenericCharacterMain), typeof(SpawnTeleporterState)); Prefabs.AddEntityStateMachine(bodyPrefab, "Weapon"); Prefabs.AddEntityStateMachine(bodyPrefab, "LeftArm"); } public override void InitializeSkills() { Skills.ClearGenericSkills(bodyPrefab); AddPrimarySkills(); AddSecondarySkills(); AddUtiitySkills(); AddSpecialSkills(); } private void AddPassiveSkill() { } private void AddPrimarySkills() { //IL_0056: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)0); SteppedSkillDef val = Skills.CreateSkillDef(new SkillDefInfo("RobomandoShoot", "RAT_ROBOMANDO_PRIMARY_SHOT_NAME", "RAT_ROBOMANDO_PRIMARY_SHOT_DESCRIPTION", RobomandoConfig.EnableNewIcons.Value ? assetBundle.LoadAsset("texShootIcon2") : assetBundle.LoadAsset("texShootIcon"), new SerializableEntityStateType(typeof(Shoot)), "Weapon", agile: true)); val.stepCount = 2; val.stepGraceDuration = 0.5f; Skills.AddPrimarySkills(bodyPrefab, (SkillDef)val); } private void AddSecondarySkills() { //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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)1); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "RobomandoZap"; skillDefInfo.skillNameToken = "RAT_ROBOMANDO_SECONDARY_ZAP_NAME"; skillDefInfo.skillDescriptionToken = "RAT_ROBOMANDO_SECONDARY_ZAP_DESCRIPTION"; skillDefInfo.skillIcon = (RobomandoConfig.EnableNewIcons.Value ? assetBundle.LoadAsset("texZapIcon2") : assetBundle.LoadAsset("texZapIcon")); skillDefInfo.keywordTokens = new string[2] { "KEYWORD_AGILE", "KEYWORD_STUNNING" }; skillDefInfo.activationState = new SerializableEntityStateType(typeof(Zap)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = RobomandoStaticValues.zapCooldown; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "RobomandoBomb"; skillDefInfo.skillNameToken = "RAT_ROBOMANDO_SECONDARY_BOMB_NAME"; skillDefInfo.skillDescriptionToken = "RAT_ROBOMANDO_SECONDARY_BOMB_DESCRIPTION"; skillDefInfo.skillIcon = (RobomandoConfig.EnableNewIcons.Value ? assetBundle.LoadAsset("texBombIcon2") : assetBundle.LoadAsset("texBombIcon")); skillDefInfo.keywordTokens = new string[0]; skillDefInfo.activationState = new SerializableEntityStateType(typeof(BouncyBomb)); skillDefInfo.activationStateMachineName = "LeftArm"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = RobomandoStaticValues.bouncyBombCooldown; skillDefInfo.baseMaxStock = 2; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val, val2); } private void AddUtiitySkills() { //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)2); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "RobomandoRoll"; skillDefInfo.skillNameToken = "RAT_ROBOMANDO_UTILITY_ROLL_NAME"; skillDefInfo.skillDescriptionToken = "RAT_ROBOMANDO_UTILITY_ROLL_DESCRIPTION"; skillDefInfo.skillIcon = (RobomandoConfig.EnableNewIcons.Value ? assetBundle.LoadAsset("texRollIcon2") : assetBundle.LoadAsset("texRollIcon")); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Roll)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.baseRechargeInterval = RobomandoStaticValues.diveCooldown; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = true; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val); } private void AddSpecialSkills() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: 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_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)3); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "RobomandoHack"; skillDefInfo.skillNameToken = "RAT_ROBOMANDO_SPECIAL_HACK_NAME"; skillDefInfo.skillDescriptionToken = "RAT_ROBOMANDO_SPECIAL_HACK_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { survivorTokenPrefix + "KEYWORD_JURY_RIG" }; skillDefInfo.skillIcon = (RobomandoConfig.EnableNewIcons.Value ? assetBundle.LoadAsset("texHackIcon2") : assetBundle.LoadAsset("texHackIcon")); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Hack)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "RobomandoOverwire"; skillDefInfo.skillNameToken = "RAT_ROBOMANDO_SPECIAL_OVERWIRE_NAME"; skillDefInfo.skillDescriptionToken = "RAT_ROBOMANDO_SPECIAL_OVERWIRE_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { survivorTokenPrefix + "KEYWORD_JURY_RIG" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texOverwireIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Overwire)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; SkillDef specialSkillDef = Skills.CreateSkillDef(skillDefInfo); Skills.AddSpecialSkills(bodyPrefab, val); if (RobomandoPlugin.scepterInstalled) { RobomandoScepterIntegration.Init(this, bodyPrefab.GetComponent().special.skillFamily, specialSkillDef); } } public override void InitializeSkins() { ModelSkinController val = ((Component)prefabCharacterModel).gameObject.AddComponent(); ChildLocator component = ((Component)prefabCharacterModel).GetComponent(); RendererInfo[] baseRendererInfos = prefabCharacterModel.baseRendererInfos; List list = new List(); List list2 = new List { null, null, null, null, null, null, null }; List list3 = new List { null, null, "meshCrown", null, null, null, null }; List list4 = new List { null, null, null, null, "meshTrueCrown", null, null }; List list5 = new List { null, null, null, "meshHat", null, null, null }; SkinDef val2 = Skins.CreateSkinDef("DEFAULT_SKIN", assetBundle.LoadAsset("texMainSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); val2.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list2.ToArray()); list.Add(val2); SkinDef val3 = Skins.CreateSkinDef("RAT_ROBOMANDO_COMMANDO_SKIN_NAME", assetBundle.LoadAsset("texCommandoSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); val3.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoCommandoMat"); val3.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list2.ToArray()); if (RobomandoConfig.EnableCommandoSkin.Value) { list.Add(val3); } SkinDef val4 = Skins.CreateSkinDef("RAT_ROBOMANDO_BLUE_SKIN_NAME", assetBundle.LoadAsset("texBlueSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); val4.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoBlueMat"); val4.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list2.ToArray()); if (RobomandoConfig.EnableBlueSkin.Value) { list.Add(val4); } SkinDef val5 = Skins.CreateSkinDef("RAT_ROBOMANDO_GREEN_SKIN_NAME", assetBundle.LoadAsset("texGreenSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); val5.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list2.ToArray()); val5.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoGreenMat"); if (RobomandoConfig.EnableGreenSkin.Value) { list.Add(val5); } SkinDef val6 = Skins.CreateSkinDef("RAT_ROBOMANDO_MASTERY_SKIN_NAME", assetBundle.LoadAsset("texProvidenceSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, RobomandoUnlockables.masterySkinUnlockableDef); val6.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoProvidenceMat"); val6.rendererInfos[2].defaultMaterial = assetBundle.LoadMaterial("CrownShow"); if (RobomandoConfig.EnableMasterySkin.Value) { list.Add(val6); } val6.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list3.ToArray()); SkinDef val7 = Skins.CreateSkinDef("RAT_ROBOMANDO_GRANDMASTERY_SKIN_NAME", assetBundle.LoadAsset("texTrueProvidenceSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, RobomandoUnlockables.grandMasterySkinUnlockableDef); val7.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list4.ToArray()); val7.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoProvidenceMat"); val7.rendererInfos[4].defaultMaterial = assetBundle.LoadMaterial("TrueCrownMaterial"); val7.rendererInfos[4].ignoreOverlays = false; val7.rendererInfos[5].defaultMaterial = assetBundle.LoadMaterial("CapeMaterial"); val7.rendererInfos[5].ignoreOverlays = false; if (RobomandoConfig.EnableGrandmasterySkin.Value) { list.Add(val7); } SkinDef val8 = Skins.CreateSkinDef("RAT_ROBOMANDO_SODA_SKIN_NAME", assetBundle.LoadAsset("texSodaSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, RobomandoUnlockables.sodaSkinUnlockableDef); val8.rendererInfos[0].defaultMaterial = assetBundle.LoadMaterial("RobomandoSodaMat"); val8.rendererInfos[3].defaultMaterial = assetBundle.LoadMaterial("SodaHatMaterial"); val8.meshReplacements = Skins.getMeshReplacements(assetBundle, baseRendererInfos, list5.ToArray()); if (RobomandoConfig.EnableSodaSkin.Value) { list.Add(val8); } for (int i = 1; i < list.Count; i++) { SkinDef val9 = list[i]; val9.rendererInfos[6].defaultMaterial = assetBundle.LoadMaterial(((Object)val9.rendererInfos[0].defaultMaterial).name); } val.skins = list.ToArray(); ModelSkinController val10 = displayPrefab.AddComponent(); val10.skins = list.ToArray(); } public override void InitializeCharacterMaster() { Prefabs.CloneDopplegangerMaster(bodyPrefab, masterName, "Merc"); } private void AddHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Expected O, but got Unknown //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Expected O, but got Unknown //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); GlobalEventManager.onCharacterDeathGlobal += PlayFunnyDeathSounds; CharacterMaster.OnServerStageBegin += new hook_OnServerStageBegin(CharacterMaster_OnServerStageBegin); TeleporterInteraction.onTeleporterBeginChargingGlobal += delegate { foreach (LocalUser readOnlyLocalUsers in LocalUserManager.readOnlyLocalUsersList) { CharacterBody cachedBody3 = readOnlyLocalUsers.cachedBody; if (Object.op_Implicit((Object)(object)cachedBody3)) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody3).gameObject, "Play_Robo_Voice_Boss_Spawned"); } } }; GlobalEventManager.onCharacterDeathGlobal += delegate(DamageReport message) { //IL_00f7: 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) if (!Object.op_Implicit((Object)(object)message.victimBody)) { return; } CharacterBody victimBody = message.victimBody; RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)victimBody).gameObject, "Play_Robo_Voice_Die"); CharacterDeathBehavior val4 = default(CharacterDeathBehavior); foreach (LocalUser readOnlyLocalUsers2 in LocalUserManager.readOnlyLocalUsersList) { CharacterBody cachedBody2 = readOnlyLocalUsers2.cachedBody; if (!Object.op_Implicit((Object)(object)cachedBody2)) { break; } if (message.victimIsBoss && Object.op_Implicit((Object)(object)message.attackerBody) && ((object)message.attackerBody).Equals((object?)cachedBody2)) { if (((Component)victimBody).TryGetComponent(ref val4) && ((SerializableEntityStateType)(ref val4.deathState)).typeName.Equals("EntityStates.BrotherMonster.TrueDeathState")) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody2).gameObject, "Play_Robo_Voice_Mithrix_Killed"); } else { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody2).gameObject, "Play_Robo_Voice_Boss_Killed"); } } if (Object.op_Implicit((Object)(object)cachedBody2.teamComponent) && message.victimTeamIndex == cachedBody2.teamComponent.teamIndex) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody2).gameObject, "Play_Robo_Voice_Ally_Dead"); } } }; GlobalEventManager.onClientDamageNotified += delegate(DamageDealtMessage message) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) CharacterBody val3 = default(CharacterBody); if (!Object.op_Implicit((Object)(object)message.victim) || !message.victim.TryGetComponent(ref val3) || !message.hitLowHealth) { return; } RobomandoCinematicVoiceLines.TryPlayRoboVoice(message.victim, "Play_Robo_Voice_Low_Health"); foreach (LocalUser readOnlyLocalUsers3 in LocalUserManager.readOnlyLocalUsersList) { CharacterBody cachedBody = readOnlyLocalUsers3.cachedBody; if (Object.op_Implicit((Object)(object)cachedBody) && val3.teamComponent.teamIndex == cachedBody.teamComponent.teamIndex) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody).gameObject, "Play_Robo_Voice_Ally_Danger"); } } }; GlobalEventManager.OnInteractionsGlobal += delegate(Interactor interactor, IInteractable i_interactable, GameObject obj) { CharacterBody val = default(CharacterBody); ChestBehavior val2 = default(ChestBehavior); if (((Component)interactor).TryGetComponent(ref val) && obj.TryGetComponent(ref val2)) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)val).gameObject, "Play_Robo_Voice_Chest_Open"); } }; EquipmentSlot.onServerEquipmentActivated += delegate(EquipmentSlot slot, EquipmentIndex index) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)slot).gameObject, "Play_Robo_Voice_Use_Equip"); }; DirectorCore.TrySpawnObject += new hook_TrySpawnObject(DirectorCore_TrySpawnObject); ObjectiveTracker.OnRetired += new hook_OnRetired(ObjectiveTracker_OnRetired); LunarCoinDef.GrantPickup += new hook_GrantPickup(LunarCoinDef_GrantPickup); if (RobomandoPlugin.emotesInstalled) { Debug.Log((object)"Call AddSkeleton from survivor script"); RobomandoAddEmoteSkeleton.AddSkeleton(assetBundle); } if (RobomandoPlugin.qualityInstalled) { RobomandoQualityIntegration.Init(); } } private GameObject DirectorCore_TrySpawnObject(orig_TrySpawnObject orig, DirectorCore self, DirectorSpawnRequest directorSpawnRequest) { //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) GameObject val = orig.Invoke(self, directorSpawnRequest); if (!Object.op_Implicit((Object)(object)val)) { return val; } if (directorSpawnRequest != null && Object.op_Implicit((Object)(object)directorSpawnRequest.spawnCard) && Object.op_Implicit((Object)(object)directorSpawnRequest.spawnCard.prefab)) { GameObject prefab = directorSpawnRequest.spawnCard.prefab; CharacterMaster val2 = default(CharacterMaster); if (!prefab.TryGetComponent(ref val2)) { return val; } BodyIndex val3 = BodyCatalog.FindBodyIndex(val2.bodyPrefab); if (((object)(BodyIndex)(ref val3)).Equals((object?)BodyCatalog.FindBodyIndex(BodyPrefabs.BrotherBody))) { foreach (LocalUser readOnlyLocalUsers in LocalUserManager.readOnlyLocalUsersList) { CharacterBody cachedBody = readOnlyLocalUsers.cachedBody; if ((Object)(object)cachedBody != (Object)null) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)cachedBody).gameObject, "Play_Robo_Voice_Mithrix_Spawn"); } } } } return val; } private void LunarCoinDef_GrantPickup(orig_GrantPickup orig, LunarCoinDef self, ref GrantContext context) { orig.Invoke(self, ref context); if (Object.op_Implicit((Object)(object)context.body)) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(((Component)context.body).gameObject, "Play_Robo_Voice_Lunar_Coin"); } } private void ObjectiveTracker_OnRetired(orig_OnRetired orig, ObjectiveTracker self) { orig.Invoke(self); if (!(self is FindTeleporterObjectiveTracker) && !(self is ActivateGoldshoreBeaconTracker) && Object.op_Implicit((Object)(object)self.owner) && Object.op_Implicit((Object)(object)self.owner.currentMaster) && Object.op_Implicit((Object)(object)self.owner.currentMaster.bodyInstanceObject)) { RobomandoCinematicVoiceLines.TryPlayRoboVoice(self.owner.currentMaster.bodyInstanceObject, "Play_Robo_Voice_Objective"); } } private void CharacterMaster_OnServerStageBegin(orig_OnServerStageBegin orig, CharacterMaster self, Stage stage) { orig.Invoke(self, stage); if (Object.op_Implicit((Object)(object)self.bodyPrefab) && ((object)self.bodyPrefab).Equals((object?)bodyPrefab)) { ((MonoBehaviour)self).StartCoroutine(WaitForPlayerInstantiation(3f, stage)); } } [IteratorStateMachine(typeof(d__66))] private IEnumerator WaitForPlayerInstantiation(float duration, Stage stage) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__66(0) { <>4__this = this, duration = duration, stage = stage }; } private void PlayFunnyDeathSounds(DamageReport report) { if (!Object.op_Implicit((Object)(object)report.victimBody) || !((Object)(object)((Component)report.victimBody).gameObject != (Object)null)) { return; } string baseNameToken = report.victimBody.baseNameToken; if (baseNameToken != null && baseNameToken.Equals("RAT_ROBOMANDO_NAME")) { Util.PlaySound("Play_Robo_Lego_Death_Sound", ((Component)report.victimBody).gameObject); if (!RobomandoConfig.RoboTalks.Value) { TryPlayVoiceLine("Play_Robo_Death_Gasp", ((Component)report.victimBody).gameObject); } } } public static void TryPlayVoiceLine(string line, GameObject origin) { if (RobomandoConfig.RoboTalks.Value) { Log.Debug("Tried to play sound " + line + "."); Util.PlaySound(line, origin); } } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.HasBuff(RobomandoBuffs.armorBuff)) { args.armorAdd += 300f; } } } } namespace RobomandoMod.Survivors.Robomando.SkillStates { public class BouncyBomb : GenericProjectileBaseState { public override void OnEnter() { base.projectilePrefab = RobomandoAssets.projectileBouncyBomb; base.attackSoundString = "Play_commando_M2_grenade_throw"; base.baseDuration = 0.65f; base.baseDelayBeforeFiringProjectile = 0f; base.damageCoefficient = RobomandoStaticValues.bouncyBombDamageCoefficient; base.force = 60f; base.recoilAmplitude = 0.1f; base.bloom = 10f; ((GenericProjectileBaseState)this).OnEnter(); } public override void FixedUpdate() { ((GenericProjectileBaseState)this).FixedUpdate(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public override void PlayAnimation(float duration) { if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelAnimator())) { ((EntityState)this).PlayAnimation("LeftArm, Override", "ThrowBomb", "Bomb.playbackRate", base.duration / 4f, 0f); } } } public class Hack : BaseSkillState { public enum PrinterItemType { NONE, WHITE, GREEN, RED, YELLOW } public static float HackDuration = RobomandoStaticValues.hackTime; public static float soundDuration = 2.2f; public const float baseHackDuration = 3.33f; public const float baseSoundDuration = 2.2f; private bool playedSound = false; public static GameObject fireFX = RobomandoAssets.zapMuzzleFlashEffect; public static GameObject impactFX = RobomandoAssets.hackEffect; public static GameObject printerDestroyFX = Addressables.LoadAssetAsync((object)"RoR2/Base/StickyBomb/BehemothVFX.prefab").WaitForCompletion(); public static GameObject printerDestroyFX2 = Addressables.LoadAssetAsync((object)"RoR2/Base/Toolbot/CryoCanisterExplosionPrimary.prefab").WaitForCompletion(); private PrinterItemType type = PrinterItemType.NONE; private bool isQualityPrinter = false; private bool animShouldPlay = false; private bool playedOnClient = false; private PurchaseInteraction pInter = null; private InteractionDriver IRobo = null; public static event Action onRobomandoHackGlobal; public float GetAttackSpeedDuration() { return HackDuration / ((BaseState)this).attackSpeedStat; } public float GetAnimSpeedHack() { return GetAttackSpeedDuration() / 3.33f; } public float GetSoundSpeed() { return soundDuration * GetAnimSpeedHack(); } public static bool CanHack(GameObject device) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Invalid comparison between Unknown and I4 PurchaseInteraction componentInChildren = device.GetComponentInChildren(); if ((Object)(object)componentInChildren != (Object)null) { if (!componentInChildren.isShrine && (int)componentInChildren.costType == 1) { if (componentInChildren.displayNameToken.Equals("GOLDTOTEM_NAME")) { return false; } return true; } return IsPrinter(device); } return false; } public override void OnEnter() { ((BaseState)this).OnEnter(); if (((EntityState)this).isAuthority) { animShouldPlay = false; } InteractionDriver val = null; if (!((EntityState)this).gameObject.TryGetComponent(ref val)) { return; } IRobo = val; if (!((EntityState)this).isAuthority) { return; } GameObject currentInteractable = val.currentInteractable; if (!Object.op_Implicit((Object)(object)currentInteractable)) { return; } PurchaseInteraction val2 = null; if (CanHack(currentInteractable)) { val2 = currentInteractable.GetComponent(); if (RobomandoPlugin.qualityInstalled && RobomandoQualityIntegration.IsQualityPrinter(currentInteractable)) { isQualityPrinter = true; } SetPrinterItemType(val2); pInter = val2; RobomandoSurvivor.TryPlayVoiceLine("UnlockingVoice1", ((EntityState)this).gameObject); ((EntityState)this).skillLocator.special.finalRechargeInterval = RobomandoStaticValues.successfullHackCooldown; animShouldPlay = true; } } public void SetPrinterItemType(PurchaseInteraction pInteraction) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Expected I4, but got Unknown CostTypeIndex costType = pInteraction.costType; CostTypeIndex val = costType; switch (val - 4) { case 0: type = PrinterItemType.WHITE; break; case 1: type = PrinterItemType.GREEN; break; case 2: type = PrinterItemType.RED; break; case 6: type = PrinterItemType.YELLOW; break; case 3: case 4: case 5: break; } } public override void FixedUpdate() { //IL_006b: 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_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown ((EntityState)this).FixedUpdate(); if (animShouldPlay && !playedOnClient) { PlayAnimation(GetAnimSpeedHack()); playedOnClient = true; } if (animShouldPlay && ((EntityState)this).fixedAge > GetSoundSpeed() && !playedSound && ((EntityState)this).isAuthority) { HackNetMessage message = new HackNetMessage(((NetworkBehaviour)((EntityState)this).characterBody).netId, ((NetworkBehaviour)pInter).netId, type, isQualityPrinter); message = ModifyHackMessage(message, ((EntityState)this).characterBody.master); if (NetworkServer.active) { HackDevice(((Component)((EntityState)this).characterBody).gameObject, ((Component)pInter).gameObject, message.type, message.isQualityPrinter, message.procScepter); Log.Debug("Hack Request on Server"); } else { NetMessageExtensions.Send((INetMessage)(object)message, (NetworkDestination)2); Log.Debug("Hack Request on Client"); } Util.PlaySound("Play_Robo_Tazer", ((EntityState)this).gameObject); Util.PlaySound("Play_Robo_Hack", ((EntityState)this).gameObject); playedSound = true; EffectManager.SpawnEffect(ModifyHackEffect(message), new EffectData { origin = ((Component)pInter).gameObject.transform.position }, true); EffectManager.SimpleMuzzleFlash(FireRocket.effectPrefab, ((EntityState)this).gameObject, "Muzzle", false); } if (animShouldPlay && ((EntityState)this).fixedAge > GetAttackSpeedDuration()) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).isAuthority && !animShouldPlay) { ((EntityState)this).outer.SetNextStateToMain(); ((EntityState)this).skillLocator.special.finalRechargeInterval = RobomandoStaticValues.unsuccessfullHackCooldown; } } public virtual HackNetMessage ModifyHackMessage(HackNetMessage message, CharacterMaster master) { return message; } public virtual GameObject ModifyHackEffect(HackNetMessage message) { return impactFX; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public void PlayAnimation(float duration) { if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelAnimator())) { ((EntityState)this).GetModelAnimator().SetFloat("Hack.playbackRate", GetAnimSpeedHack()); ((EntityState)this).PlayAnimation("FullBody, Override", "Hack", "Hack.playbackRate", GetAttackSpeedDuration(), 0f); } } public override void OnSerialize(NetworkWriter writer) { writer.Write(animShouldPlay); } public override void OnDeserialize(NetworkReader reader) { animShouldPlay = reader.ReadBoolean(); } public static void HackDevice(GameObject robo, GameObject device, PrinterItemType type, bool isQuality, bool procScepter) { //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: 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_00f7: 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_010a: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Expected O, but got Unknown //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Expected O, but got Unknown //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: 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_01f3: 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) PurchaseInteraction component = device.GetComponent(); Log.Debug("Hacked " + component.displayNameToken); int cost = component.cost; component.cost = 0; Hack.onRobomandoHackGlobal?.Invoke(robo, device); if (type == PrinterItemType.NONE && !isQuality) { if (procScepter) { PreInteractionUpgrade(device); ((UnityEvent)(object)component.onDetailedPurchaseServer).AddListener((UnityAction)UpgradeInteractableOutput); } robo.GetComponent().interactor.CallCmdInteract(device); component.cost = cost; return; } PickupIndex val = PickupIndex.none; switch (type) { case PrinterItemType.WHITE: val = PickupCatalog.FindPickupIndex(Items.ScrapWhite.itemIndex); break; case PrinterItemType.GREEN: val = PickupCatalog.FindPickupIndex(Items.ScrapGreen.itemIndex); break; case PrinterItemType.RED: val = PickupCatalog.FindPickupIndex(Items.ScrapRed.itemIndex); break; case PrinterItemType.YELLOW: val = PickupCatalog.FindPickupIndex(Items.ScrapYellow.itemIndex); break; } if (isQuality) { val = RobomandoQualityIntegration.OverwritePrinterIndex(val, device, robo, Run.instance.treasureRng); } Vector3 zero = Vector3.zero; ShopTerminalBehavior component2 = device.GetComponent(); Transform val2 = (Object.op_Implicit((Object)(object)component2) ? component2.dropTransform : null); if ((Object)(object)val2 != (Object)null) { zero = val2.position; } else { Debug.Log((object)"pivot is null"); zero = device.transform.position; } UniquePickup val3 = default(UniquePickup); ((UniquePickup)(ref val3))..ctor(val); NetworkServer.DestroyObject(device); EntityState.Destroy((Object)(object)device); PickupDropletController.CreatePickupDroplet(val3, zero, device.transform.rotation * new Vector3(0f, 15f, 6f), false, false); if (procScepter) { PickupDropletController.CreatePickupDroplet(val3, zero, device.transform.rotation * new Vector3(0f, 15f, 6f), false, false); } EffectManager.SpawnEffect(printerDestroyFX, new EffectData { origin = zero }, true); EffectManager.SpawnEffect(printerDestroyFX2, new EffectData { origin = zero }, true); } private static void UpgradeInteractableOutput(PayCostContext context, PayCostResults results) { GameObject purchasedObject = context.purchasedObject; ChestBehavior val = default(ChestBehavior); if (purchasedObject.TryGetComponent(ref val)) { ChestBehavior obj = val; obj.dropCount++; } RouletteChestController val2 = default(RouletteChestController); if (purchasedObject.TryGetComponent(ref val2)) { RouletteChestController obj2 = val2; obj2.dropCount++; } PickupDistributorBehavior val3 = default(PickupDistributorBehavior); if (purchasedObject.TryGetComponent(ref val3)) { PickupDistributorBehavior obj3 = val3; obj3.baseDropAmount += 5; } } private static void PreInteractionUpgrade(GameObject device) { //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) SummonMasterBehavior val = default(SummonMasterBehavior); if (device.TryGetComponent(ref val) && val.droneUpgradeCount == 0) { val.droneUpgradeCount = 1; } ShopTerminalBehavior val2 = default(ShopTerminalBehavior); if (device.TryGetComponent(ref val2)) { ShopTerminalBehavior obj = val2; obj.dropAmount++; } RadiotowerTerminal val3 = default(RadiotowerTerminal); if (device.TryGetComponent(ref val3)) { NetworkServer.Spawn(Object.Instantiate(LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/ChestScanner"), device.transform.position, Quaternion.identity)); } VendingMachineBehavior val4 = default(VendingMachineBehavior); if (device.TryGetComponent(ref val4)) { val4.healFraction = 0.5f; } } public static bool IsPrinter(GameObject device) { try { if (((SerializableEntityStateType)(ref device.GetComponent().mainStateType)).typeName == "EntityStates.Duplicator.Duplicating") { return true; } if (RobomandoPlugin.qualityInstalled && RobomandoQualityIntegration.IsQualityPrinter(device)) { return true; } } catch (Exception) { return false; } return false; } } public class HackNetMessage : INetMessage, ISerializableObject { public NetworkInstanceId RoboID; public NetworkInstanceId DeviceID; public Hack.PrinterItemType type; public bool isQualityPrinter; public bool procScepter; public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) RoboID = reader.ReadNetworkId(); DeviceID = reader.ReadNetworkId(); type = (Hack.PrinterItemType)reader.ReadByte(); isQualityPrinter = reader.ReadBoolean(); } public void OnReceived() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) Log.Debug("Thing Recieved"); if (NetworkServer.active) { Log.Debug("Thing Recieved by server"); GameObject robo = NetworkServer.FindLocalObject(RoboID); GameObject device = NetworkServer.FindLocalObject(DeviceID); Hack.HackDevice(robo, device, type, isQualityPrinter, procScepter); } } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) writer.Write(RoboID); writer.Write(DeviceID); writer.Write((byte)type); writer.Write(isQualityPrinter); writer.Write(procScepter); } public HackNetMessage() { } public HackNetMessage(NetworkInstanceId roboID, NetworkInstanceId deviceID, Hack.PrinterItemType printerType = Hack.PrinterItemType.NONE, bool qPrinter = false, bool pScepter = false) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0010: 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) RoboID = roboID; DeviceID = deviceID; type = printerType; isQualityPrinter = qPrinter; procScepter = pScepter; } } public class Overwire : Hack { public static float doubleChance = 0.2f; public override HackNetMessage ModifyHackMessage(HackNetMessage message, CharacterMaster master) { message.procScepter = Run.instance.runRNG.nextNormalizedFloat <= doubleChance; if (!Object.op_Implicit((Object)(object)master)) { return base.ModifyHackMessage(message, master); } if (master.luck == 0f) { return base.ModifyHackMessage(message, master); } int num = (int)Math.Floor(Math.Abs(master.luck)); for (int i = 0; i < num; i++) { bool flag = Run.instance.runRNG.nextNormalizedFloat <= doubleChance; if ((master.luck < 0f && !flag) || (master.luck > 0f && flag)) { message.procScepter = flag; break; } } return message; } public override GameObject ModifyHackEffect(HackNetMessage message) { if (message.procScepter) { return RobomandoAssets.hackRedEffectProc; } return RobomandoAssets.hackRedEffect; } } public class Roll : BaseSkillState { public static float duration = 1f; public static float initialSpeedCoefficient = 1.8f; public static float crashDuration = RobomandoStaticValues.diveCrashTime; public const float crashBaseDuraction = 2f; public static float cancelTime = 5f; public static float finalSpeedCoefficient = 0.9f; public static float upwardThrust = 15f; public static string dodgeSoundString = "RobomandoRoll"; public static float dodgeFOV = DodgeState.dodgeFOV; private float rollSpeed; private Vector3 forwardDirection; private float currentUpwardThrust; private Animator animator; private Vector3 previousPosition; private bool canLeave = false; private bool updateVelocity = true; private bool canCancel = false; private float currentGroundDuration = 0f; private float startingLiftTime = 0.5f; private float totalSkillTime = 0f; public void DoEnterAnimation() { animator.SetLayerWeight(5, 0f); animator.SetLayerWeight(6, 0f); } public void DoExitAnimation() { animator.SetLayerWeight(5, 1f); animator.SetLayerWeight(6, 1f); } public void ResetMainAnimator() { animator.SetBool("isMoving", false); animator.SetBool("isSprinting", false); animator.SetBool("isGrounded", true); ((EntityState)this).PlayAnimation("Body", "Idle"); } public override void OnEnter() { //IL_0053: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0077: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_007c: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); DoEnterAnimation(); canLeave = false; if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { Vector3 val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } Vector3 val2 = (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) ? ((EntityState)this).characterDirection.forward : forwardDirection); Vector3 val3 = Vector3.Cross(Vector3.up, val2); float num = Vector3.Dot(forwardDirection, val2); float num2 = Vector3.Dot(forwardDirection, val3); RecalculateRollSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity = forwardDirection * rollSpeed; ((EntityState)this).characterMotor.velocity.y += upwardThrust; currentUpwardThrust = upwardThrust; } Vector3 val4 = (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) ? ((EntityState)this).characterMotor.velocity : Vector3.zero); previousPosition = ((EntityState)this).transform.position - val4; ((EntityState)this).PlayAnimation("FullBody, Override", "RollStart", "Roll.playbackRate", duration, 0f); Util.PlaySound(dodgeSoundString, ((EntityState)this).gameObject); if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 0.5f * duration); } } private float GetAttackSpeedRollTime() { return crashDuration / ((BaseState)this).attackSpeedStat; } private float GetAnimSpeedRoll() { return GetAttackSpeedRollTime() / 2f; } private void RecalculateRollSpeed() { rollSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, ((EntityState)this).fixedAge / duration); } public override void FixedUpdate() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012e: 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_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: 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_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.forward = forwardDirection; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = Mathf.Lerp(dodgeFOV, 60f, ((EntityState)this).fixedAge / duration); } Vector3 val = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero && (!((BaseState)this).isGrounded || startingLiftTime > 0f)) { Vector3 val2 = normalized * rollSpeed; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 10f); val2 = forwardDirection * num; val2.y = ((EntityState)this).characterMotor.velocity.y; ((EntityState)this).characterMotor.velocity = val2; } previousPosition = ((EntityState)this).transform.position; float deltaTime = ((EntityState)this).GetDeltaTime(); if (startingLiftTime > 0f) { startingLiftTime -= deltaTime; } if (((BaseState)this).isGrounded && startingLiftTime <= 0f) { if (!canLeave) { animator.SetFloat("Roll.playbackRate", GetAnimSpeedRoll()); ((EntityState)this).PlayAnimation("FullBody, Override", "RollCrash", "Roll.playbackRate", GetAttackSpeedRollTime(), 0f); ResetMainAnimator(); Util.PlaySound("Play_Robo_Ground_Hit", ((EntityState)this).gameObject); RobomandoSurvivor.TryPlayVoiceLine("Play_Robo_Ground_Hit_Voice", ((EntityState)this).gameObject); ((EntityState)this).characterMotor.velocity = Vector3.zero; } canLeave = true; } if (canLeave) { currentGroundDuration += deltaTime; if (currentGroundDuration > GetAttackSpeedRollTime()) { ((EntityState)this).outer.SetNextStateToMain(); DoExitAnimation(); } } else if (!canCancel) { if (totalSkillTime < cancelTime) { totalSkillTime += deltaTime; } else { canCancel = true; } } else if (((EntityState)this).isAuthority && ((EntityState)this).inputBank.skill3.down) { ((EntityState)this).outer.SetNextStateToMain(); DoExitAnimation(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = -1f; } ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ResetMainAnimator(); DoExitAnimation(); ((EntityState)this).OnExit(); } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(forwardDirection); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); forwardDirection = reader.ReadVector3(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class Shoot : BaseSkillState { public static float damageCoefficient = RobomandoStaticValues.shootDamageCoefficient; public static float procCoefficient = 1f; public static float baseDuration = 0.33f; public static float firePercentTime = 0f; public static float force = 100f; public static float recoil = 1.2f; public static float range = 256f; public static GameObject tracerEffectPrefab = RobomandoAssets.gunTracerEffect; public static GameObject fireFX = RobomandoAssets.gunMuzzleFlashEffect; public static GameObject impactFX = RobomandoAssets.gunImpactEffect; private float duration; private float fireTime; private bool hasFired; private string muzzleString; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = firePercentTime * duration; ((EntityState)this).characterBody.SetAimTimer(2f); muzzleString = "Muzzle"; ((EntityState)this).PlayAnimation("RightArm, Override", "ShootGun", "ShootGun.playbackRate", 1.8f, 0f); } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime) { Fire(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void Fire() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010b: 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_011b: 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_0132: 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_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Expected O, but got Unknown //IL_01c7: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; ((EntityState)this).characterBody.AddSpreadBloom(1.5f); EffectManager.SimpleMuzzleFlash(fireFX, ((EntityState)this).gameObject, muzzleString, false); Util.PlaySound("Play_Robo_Shoot", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); BulletAttack val = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)0), falloffModel = (FalloffModel)1, maxDistance = range, force = force, hitMask = CommonMasks.bullet, minSpread = 0f, maxSpread = 0f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 0.75f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = tracerEffectPrefab, spreadPitchScale = 1f, spreadYawScale = 1f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = impactFX }; val.damageType.damageSource = (DamageSource)1; val.Fire(); } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class Zap : BaseSkillState { public static float damageCoefficient = RobomandoStaticValues.zapDamageCoefficient; public static float procCoefficient = 3f; public static float baseDuration = 0.6f; public static float firePercentTime = 0f; public static float force = 800f; public static float recoil = 3f; public static float range = 64f; public static GameObject tracerEffectPrefab = RobomandoAssets.zapTracerEffect; private float duration; private float fireTime; private bool hasFired; private string muzzleString; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = firePercentTime * duration; ((EntityState)this).characterBody.SetAimTimer(2f); muzzleString = "Muzzle"; ((EntityState)this).PlayAnimation("RightArm, Override", "ShootGun", "ShootGun.playbackRate", 1.8f, 0f); } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime) { Fire(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void Fire() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: 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_00e8: 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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Expected O, but got Unknown //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; ((EntityState)this).characterBody.AddSpreadBloom(1.5f); EffectManager.SimpleMuzzleFlash(RobomandoAssets.zapMuzzleFlashEffect, ((EntityState)this).gameObject, muzzleString, false); Util.PlaySound("Play_Robo_Tazer", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); BulletAttack val = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)32), falloffModel = (FalloffModel)1, maxDistance = range, force = force, hitMask = CommonMasks.bullet, minSpread = 0f, maxSpread = 0f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 1f, sniper = false, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask, weapon = null, tracerEffectPrefab = tracerEffectPrefab, spreadPitchScale = 1f, spreadYawScale = 1f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = RobomandoAssets.zapHitImpactEffect }; val.damageType.damageSource = (DamageSource)2; val.damageType.damageTypeExtended = (DamageTypeExtended)8192; val.Fire(); } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } } namespace RobomandoMod.Survivors.Robomando.Components { internal class RobomandoWeaponComponent : MonoBehaviour { private void Awake() { } } } namespace RobomandoMod.Survivors.Robomando.Achievements { [RegisterAchievement("RAT_ROBOMANDO_GrandMasteryAchievement", "RAT_ROBOMANDO_GrandMasteryUnlockable", null, 20u, null)] public class RobomandoGrandMasteryAchievement : BaseMasteryAchievement { public const string identifier = "RAT_ROBOMANDO_GrandMasteryAchievement"; public const string unlockableIdentifier = "RAT_ROBOMANDO_GrandMasteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3.5f; } [RegisterAchievement("RAT_ROBOMANDO_MasteryAchievement", "RAT_ROBOMANDO_MasteryUnlockable", null, 10u, null)] public class RobomandoMasteryAchievement : BaseMasteryAchievement { public const string identifier = "RAT_ROBOMANDO_MasteryAchievement"; public const string unlockableIdentifier = "RAT_ROBOMANDO_MasteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3f; } [RegisterAchievement("RAT_ROBOMANDO_SodaAchievement", "RAT_ROBOMANDO_SodaUnlockable", null, 10u, typeof(RobomandoSodaAchievementServer))] public class RobomandoSodaAchievement : BaseAchievement { private class RobomandoSodaAchievementServer : BaseServerAchievement { public override void OnInstall() { ((BaseServerAchievement)this).OnInstall(); Hack.onRobomandoHackGlobal += OnHack; Hack.onRobomandoHackGlobal += OnHack; } private void OnHack(GameObject robo, GameObject device) { CharacterBody component = robo.GetComponent(); if (((object)component).Equals((object?)base.serverAchievementTracker.networkUser.GetCurrentBody())) { PurchaseInteraction component2 = device.GetComponent(); if (component2.displayNameToken == "VENDING_MACHINE_NAME") { ((BaseServerAchievement)this).Grant(); } } } public override void OnUninstall() { ((BaseServerAchievement)this).OnUninstall(); Hack.onRobomandoHackGlobal -= OnHack; } } public const string identifier = "RAT_ROBOMANDO_SodaAchievement"; public const string unlockableIdentifier = "RAT_ROBOMANDO_SodaUnlockable"; public static string RequiredCharacterBody => CharacterBase.instance.bodyName; public override void OnInstall() { ((BaseAchievement)this).OnInstall(); ((BaseAchievement)this).SetServerTracked(true); } } }