using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text; using BadguyMod.Modules; using BadguyMod.Modules.Achievements; using BadguyMod.Modules.BaseStates; using BadguyMod.Modules.Characters; using BadguyMod.Survivors.Badguy; using BadguyMod.Survivors.Badguy.Components; using BadguyMod.Survivors.Badguy.SkillStates; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.AI.Walker; using EntityStates.Commando; using ExtraSkillSlots; using HG; using HG.BlendableTypes; using KinematicCharacterController; using Microsoft.CodeAnalysis; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.HudOverlay; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using RoR2BepInExPack.GameAssetPathsBetter; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; 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: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("BadguyMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+50f28e011c68f8e0397cd037283c2ebb85a2dffa")] [assembly: AssemblyProduct("BadguyMod")] [assembly: AssemblyTitle("BadguyMod")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace BadguyMod { [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.HasteReapr.SolBadguyMod", "SolBadguyMod", "0.0.4")] public class BadguyPlugin : BaseUnityPlugin { public const string MODUID = "com.HasteReapr.SolBadguyMod"; public const string MODNAME = "SolBadguyMod"; public const string MODVERSION = "0.0.4"; public const string DEVELOPER_PREFIX = "HASTEREAPR"; public static BadguyPlugin instance; private void Awake() { instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Language.Init(); new BadguySurvivor().Initialize(); new ContentPacks().Initialize(); Hook(); } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { if (self.HasBuff(BadguyBuffs.installBuff)) { self.damage *= 2.25f; self.moveSpeed *= 1.75f; } orig.Invoke(self); } } internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void ErrorAssetBundle(string assetName, string bundleName) { Error("failed to load asset, " + assetName + ", because it does not exist in asset bundle, " + bundleName); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } } namespace BadguyMod.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)BadguyPlugin.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) //IL_005b: 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 = val.AddComponent(); val2.applyScale = false; val2.effectIndex = (EffectIndex)(-1); val2.parentToReferencedTransform = parentToTransform; val2.positionAtReferencedTransform = true; val2.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)BadguyPlugin.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)"; } return MyConfig.Bind(section, name, defaultValue, description); } 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.HasteReapr.SolBadguyMod"; 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"); } 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 = "LightningArm1"; component.limbPairs[1].targetChildLimb = "LightningArm2"; component.limbPairs[2].targetChildLimb = "LightningArmEnd"; itemDisplayPrefabs["displaylightningarmcustom"] = val; } public static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLowerInvariant()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLowerInvariant()])) { return itemDisplayPrefabs[name.ToLowerInvariant()]; } Log.Error("item display " + name + " returned null"); return null; } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(string itemName, params ItemDisplayRule[] rules) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRuleGroupWithRules(GetKeyAssetFromString(itemName), rules); } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(Object keyAsset_, params ItemDisplayRule[] rules) { //IL_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 Language { public static string TokensOutput = ""; public static bool usingLanguageFolder = false; public static bool printingEnabled = false; public static void Init() { if (usingLanguageFolder) { Language.collectLanguageRootFolders += Language_collectLanguageRootFolders; } } private static void Language_collectLanguageRootFolders(List obj) { string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)BadguyPlugin.instance).Info.Location), "Language"); if (Directory.Exists(text)) { obj.Add(text); } } public static void Add(string token, string text) { if (!usingLanguageFolder) { LanguageAPI.Add(token, text); } if (printingEnabled) { 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)BadguyPlugin.instance).Info.Location).FullName, "Language", "en", fileName); File.WriteAllText(path, text); } TokensOutput = ""; } } } internal static class Materials { private static List cachedMaterials = new List(); internal static Shader hotpoo = LegacyResourcesAPI.Load("Shaders/Deferred/HGStandard"); public static Material LoadMaterial(this AssetBundle assetBundle, string materialName) { return assetBundle.CreateHopooMaterialFromBundle(materialName); } public static Material CreateHopooMaterialFromBundle(this AssetBundle assetBundle, string materialName) { //IL_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); } 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 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.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(); } CharacterBody component4 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.vehicleIdleStateMachine = Array.Empty(); } } public static EntityStateMachine AddEntityStateMachine(GameObject prefab, string machineName, Type mainStateType = null, Type initalStateType = null, bool addToHurt = true, bool addToDeath = true) { //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) && addToDeath) { component2.idleStateMachine = component2.idleStateMachine.Append(val).ToArray(); } SetStateOnHurt component3 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3) && addToHurt) { component3.idleStateMachine = component3.idleStateMachine.Append(val).ToArray(); } return val; } public static EntityStateMachine 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; } return val; } public static void SetupHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { SetupHitBoxGroup(prefab, hitboxName, hitboxTransform); } 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; } [CompilerGenerated] private static class <>O { public static hook_Awake <0>__DoNothing; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] defaultRendererInfos, GameObject root, UnlockableDef unlockableDef = null) { //IL_0093: 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_009e: Expected O, but got Unknown //IL_014d: 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: 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; object obj = <>O.<0>__DoNothing; if (obj == null) { hook_Awake val = DoNothing; <>O.<0>__DoNothing = val; obj = (object)val; } SkinDef.Awake += (hook_Awake)obj; SkinDef val2 = ScriptableObject.CreateInstance(); val2.baseSkins = skinDefInfo2.BaseSkins; val2.icon = skinDefInfo2.Icon; val2.unlockableDef = skinDefInfo2.UnlockableDef; val2.rootObject = skinDefInfo2.RootObject; defaultRendererInfos.CopyTo(skinDefInfo2.RendererInfos, 0); val2.rendererInfos = skinDefInfo2.RendererInfos; val2.gameObjectActivations = skinDefInfo2.GameObjectActivations; val2.meshReplacements = skinDefInfo2.MeshReplacements; val2.projectileGhostReplacements = skinDefInfo2.ProjectileGhostReplacements; val2.minionSkinReplacements = skinDefInfo2.MinionSkinReplacements; val2.nameToken = skinDefInfo2.NameToken; ((Object)val2).name = skinDefInfo2.Name; object obj2 = <>O.<0>__DoNothing; if (obj2 == null) { hook_Awake val3 = DoNothing; <>O.<0>__DoNothing = val3; obj2 = (object)val3; } SkinDef.Awake -= (hook_Awake)obj2; return val2; } 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_0046: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < defaultRendererInfos.Length; i++) { if (!string.IsNullOrEmpty(meshes[i])) { list.Add(new MeshReplacement { renderer = defaultRendererInfos[i].renderer, mesh = assetBundle.LoadAsset(meshes[i]) }); } } return list.ToArray(); } } internal static class Tokens { public const string agilePrefix = "Agile."; public static string DamageText(string text) { return "" + text + ""; } public static string DamageValueText(float value) { return $"{value * 100f}% damage"; } public static string UtilityText(string text) { return "" + text + ""; } public static string RedText(string text) { return HealthText(text); } public static string HealthText(string text) { return "" + text + ""; } public static string 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 BadguyMod.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) Content.CreateSurvivor(bodyPrefab, displayPrefab, bodyInfo.bodyColor, survivorTokenPrefix, characterUnlockableDef, bodyInfo.sortPosition); } protected virtual void AddCssPreviewSkill(int indexFromEditor, SkillFamily skillFamily, SkillDef skillDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skillChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); return; } component.skillChangeResponses[indexFromEditor].triggerSkillFamily = skillFamily; component.skillChangeResponses[indexFromEditor].triggerSkill = skillDef; } protected virtual void AddCssPreviewSkin(int indexFromEditor, SkinDef skinDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skinChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); } else { component.skinChangeResponses[indexFromEditor].triggerSkin = skinDef; } } protected virtual void FinalizeCSSPreviewDisplayController() { //IL_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 BadguyMod.Modules.BaseStates { public abstract class BaseMeleeAttack : BaseSkillState, IStepSetter { public int swingIndex; protected string hitboxGroupName = "SwordGroup"; protected DamageTypeCombo damageType = DamageTypeCombo.op_Implicit((DamageType)0); protected float damageCoefficient = 3.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 1f; protected float attackStartPercentTime = 0.2f; protected float attackEndPercentTime = 0.4f; protected float earlyExitPercentTime = 0.4f; protected float hitStopDuration = 0.012f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 4f; protected bool doHitHop = true; 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 OverlapAttack attack; public float duration; protected bool hasFired; private float hitPauseTimer; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { //IL_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_0087: 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_00d2: 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_011c: 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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); PlayAttackAnimation(); attack = new OverlapAttack(); attack.damageType = damageType; attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxGroupName); attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; ModifyOverlapAttack(attack); } protected virtual void ModifyOverlapAttack(OverlapAttack attack) { } protected virtual void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash" + (1 + swingIndex), playbackRateParam, duration, 0.05f); } public override void OnExit() { if (inHitPause) { RemoveHitstop(); } ((EntityState)this).OnExit(); } protected virtual void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); } protected virtual void OnHitEnemyAuthority() { Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } ApplyHitstop(); } protected void ApplyHitstop() { //IL_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 BadguyMod.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 BadguyMod.Components { public interface ILoadoutDisplayStrip { List GetDisplaySkillDefs(Loadout loadout); } internal class ComboRecipeCooker : MonoBehaviour, ILoadoutDisplayStrip { [Serializable] public class ComboRecipe { public SkillDef resultSkillDef; public List combo; public bool resetComboHistory = false; } public List comboRecipes = new List(); private Queue recipeReader = new Queue(); private Queue historyReader = new Queue(); private void Start() { } internal ComboRecipe GetCombo(List comboHistory, params int[] additionalHistory) { for (int i = 0; i < comboRecipes.Count; i++) { if (matchCombo(comboRecipes[i].combo, comboHistory, additionalHistory)) { return comboRecipes[i]; } } return null; } private bool matchCombo(List comboRecipe, List comboHistory, int[] additionalHistory) { recipeReader.Clear(); historyReader.Clear(); for (int num = additionalHistory.Length - 1; num >= 0; num--) { historyReader.Enqueue(additionalHistory[num]); } for (int num2 = comboHistory.Count - 1; num2 >= 0; num2--) { historyReader.Enqueue(comboHistory[num2]); } for (int num3 = comboRecipe.Count - 1; num3 >= 0; num3--) { recipeReader.Enqueue(comboRecipe[num3]); } bool result = false; while (recipeReader.Count > 0 && historyReader.Count > 0 && recipeReader.Dequeue() == historyReader.Dequeue()) { if (recipeReader.Count <= 0) { result = true; break; } } return result; } public List GetDisplaySkillDefs(Loadout loadout) { List list = new List(); for (int i = 0; i < comboRecipes.Count; i++) { list.Add(comboRecipes[i].resultSkillDef); } return list; } } } namespace BadguyMod.Survivors.Badguy { public class BadguySurvivor : SurvivorBase { public const string Badguy_PREFIX = "HASTEREAPR_BADGUY_"; public override string assetBundleName => "solbundle"; public override string bodyName => "SolBadguy"; public override string masterName => "BadguyMonsterMaster"; public override string modelPrefabName => "mdlSol"; public override string displayPrefabName => "solDisplay"; public override string survivorTokenPrefix => "HASTEREAPR_BADGUY_"; public override BodyInfo bodyInfo => new BodyInfo { bodyName = bodyName, bodyNameToken = "HASTEREAPR_BADGUY_NAME", subtitleNameToken = "HASTEREAPR_BADGUY_SUBTITLE", characterPortrait = assetBundle.LoadAsset("texBadguyIcon"), bodyColor = Color.white, sortPosition = 8f, crosshair = Asset.LoadCrosshair("Standard"), podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), maxHealth = 200f, healthRegen = 1.5f, armor = 0f, jumpCount = 3, moveSpeed = 11f, attackSpeed = 1f }; public override CustomRendererInfo[] customRendererInfos => new CustomRendererInfo[2] { new CustomRendererInfo { childName = "SolBody", material = assetBundle.LoadMaterial("matSol") }, new CustomRendererInfo { childName = "SolWeapon", material = assetBundle.LoadMaterial("matSolWep") } }; public override UnlockableDef characterUnlockableDef => BadguyUnlockables.characterUnlockableDef; public override ItemDisplaysBase itemDisplays => new BadguyItemDisplays(); public override AssetBundle assetBundle { get; protected set; } public override GameObject bodyPrefab { get; protected set; } public override CharacterBody prefabCharacterBody { get; protected set; } public override GameObject characterModelObject { get; protected set; } public override CharacterModel prefabCharacterModel { get; protected set; } public override GameObject displayPrefab { get; protected set; } public override void Initialize() { base.Initialize(); } public override void InitializeCharacter() { BadguyUnlockables.Init(); base.InitializeCharacter(); BadguyConfig.Init(); BadguyStates.Init(); BadguyTokens.Init(); BadguyAssets.Init(assetBundle); BadguyBuffs.Init(assetBundle); bodyPrefab.AddComponent(); InitializeEntityStateMachines(); InitializeSkills(); InitializeSkins(); InitializeCharacterMaster(); AdditionalBodySetup(); AddHooks(); CharacterBodyAPI.SetCustomSprintIcon(bodyPrefab.GetComponent(), assetBundle.LoadAsset("dash")); } private void AdditionalBodySetup() { AddHitboxes(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); if (!Object.op_Implicit((Object)(object)displayPrefab)) { } } public void AddHitboxes() { Prefabs.SetupHitBoxGroup(characterModelObject, "PunchGroup", "PunchHurtbox"); Prefabs.SetupHitBoxGroup(characterModelObject, "J_PunchGroup", "J_PunchHurtbox"); ChildLocator component = characterModelObject.GetComponent(); Transform hitboxTransform = component.FindChild("PunchHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform, "PunchHitbox"); Transform hitboxTransform2 = component.FindChild("J_PunchHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform2, "J_PunchHitbox"); Transform hitboxTransform3 = component.FindChild("KickHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform3, "KickHitbox"); Transform hitboxTransform4 = component.FindChild("J_KickHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform4, "J_KickHitbox"); Transform hitboxTransform5 = component.FindChild("SlashHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform5, "SlashHitbox"); Transform hitboxTransform6 = component.FindChild("J_SlashHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform6, "J_SlashHitbox"); Transform hitboxTransform7 = component.FindChild("HeavyHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform7, "HeavyHitbox"); Transform hitboxTransform8 = component.FindChild("J_HeavyHurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform8, "J_HeavyHitbox"); Transform hitboxTransform9 = component.FindChild("Dust_Hurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform9, "DustHitbox"); Transform hitboxTransform10 = component.FindChild("JDust_Hurtbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, hitboxTransform10, "J_DustHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Fafnir_Hurtbox"), "FafnirHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("FafnirClean_Hurtbox"), "FafnirCleanHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Vortex_Hurtbox"), "VortexHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("VortexImpact_Hurtbox"), "VortexImpactHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Viper_Hurtbox"), "ViperHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Break_Hurtbox"), "BreakHitbox"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Gunflame_Hurtbox_A"), "GunflameHitbox_A"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Gunflame_Hurtbox_B"), "GunflameHitbox_B"); Prefabs.SetupHitbox(((Component)prefabCharacterModel).gameObject, component.FindChild("Gunflame_Hurtbox_C"), "GunflameHitbox_C"); } public override void InitializeEntityStateMachines() { Prefabs.ClearEntityStateMachines(bodyPrefab); Prefabs.AddMainEntityStateMachine(bodyPrefab, "Body", typeof(BadguyInputMain), typeof(SpawnTeleporterState)); Prefabs.AddEntityStateMachine(bodyPrefab, "Badguy"); Prefabs.AddEntityStateMachine(bodyPrefab, "Roman"); } public override void InitializeSkills() { Skills.ClearGenericSkills(bodyPrefab); AddPassiveSkill(); AddPrimarySkills(); AddSecondarySkills(); AddUtiitySkills(); AddSpecialSkills(); AddAdditionalSkills(); AddSpecials(); } private void AddSpecials() { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_0458: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0583: Unknown result type (might be due to invalid IL or missing references) //IL_0597: Unknown result type (might be due to invalid IL or missing references) //IL_06bd: Unknown result type (might be due to invalid IL or missing references) //IL_06c2: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0815: Unknown result type (might be due to invalid IL or missing references) //IL_093b: Unknown result type (might be due to invalid IL or missing references) //IL_0940: Unknown result type (might be due to invalid IL or missing references) //IL_0954: Unknown result type (might be due to invalid IL or missing references) //IL_0a7a: Unknown result type (might be due to invalid IL or missing references) //IL_0a7f: Unknown result type (might be due to invalid IL or missing references) //IL_0a93: Unknown result type (might be due to invalid IL or missing references) //IL_0bb9: Unknown result type (might be due to invalid IL or missing references) //IL_0bbe: Unknown result type (might be due to invalid IL or missing references) //IL_0bd2: Unknown result type (might be due to invalid IL or missing references) //IL_0cf8: Unknown result type (might be due to invalid IL or missing references) //IL_0cfd: 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) GenericSkill val = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_AIRDASH", "sol_airdash_family", hidden: true); val.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val, true); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyAirDash"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(AirDash)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val.skillFamily, val2); GenericSkill val3 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_ROMAN", "sol_roman_family", hidden: true); val3.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val3, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyRoman"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(RC)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)9; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val4 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val3.skillFamily, val4); GenericSkill val5 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_INSTALL", "sol_install_family", hidden: true); val5.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val5, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyInstall"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Install)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val6 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val5.skillFamily, val6); GenericSkill val7 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_GUNFLAME", "sol_gunflame_family", hidden: true); val7.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val7, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyGunflame"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Gunflame)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val8 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val7.skillFamily, val8); GenericSkill val9 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_BREAK", "sol_break_family", hidden: true); val9.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val9, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyGunflame"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Break)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val10 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val9.skillFamily, val10); GenericSkill val11 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_VIPER", "sol_viper_family", hidden: true); val11.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val11, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyViper"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Viper)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val12 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val11.skillFamily, val12); GenericSkill val13 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_BRINGER", "sol_bringer_family", hidden: true); val13.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val13, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyBringer"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Bringer)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val14 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val13.skillFamily, val14); GenericSkill val15 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_REVOLVER", "sol_revolver_family", hidden: true); val15.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val15, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyRevolver"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Revolver)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val16 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val15.skillFamily, val16); GenericSkill val17 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_VORTEX", "sol_vortex_family", hidden: true); val17.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val17, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyVortex"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Vortex)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val18 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val17.skillFamily, val18); GenericSkill val19 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_FAFNIR", "sol_fafnir_family", hidden: true); val19.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val19, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyFafnir"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Fafnir)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val20 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val19.skillFamily, val20); GenericSkill val21 = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "LOADOUT_SKILL_SIDEWINDER", "sol_sidewinder_family", hidden: true); val21.hideInCharacterSelect = true; SkillsAPI.SetHideInLoadout(val21, true); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguySidewinder"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SECONDARY_GUN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Sidewinder)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)7; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 val22 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val21.skillFamily, val22); } private void AddPassiveSkill() { GenericSkill val = Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, "PassiveSkill"); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyPassive"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_PASSIVE_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_PASSIVE_DESCRIPTION"; skillDefInfo.keywordTokens = new string[3] { "KEYWORD_COOLDOWN", "KEYWORD_SPEED", "KEYWORD_BIND" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("taunt"); SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillsToFamily(val.skillFamily, val2); } private void AddPrimarySkills() { //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_0082: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)0); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyPunch"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_PUNCH_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_PUNCH_DESC"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("punch"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Punch)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = true; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddPrimarySkills(bodyPrefab, val); } private void AddSecondarySkills() { //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_0082: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)1); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyKick"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_KICK_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_KICK_DESC"; skillDefInfo.keywordTokens = new string[1] { "" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("kick"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Kick)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = true; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val); } private void AddUtiitySkills() { //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_0082: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)2); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguySlash"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_SLASH_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_SLASH_DESC"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_AGILE" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("slash"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Slash)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)3; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = true; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val); } private void AddSpecialSkills() { //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_0082: Unknown result type (might be due to invalid IL or missing references) Skills.CreateGenericSkillWithSkillFamily(bodyPrefab, (SkillSlot)3); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyHeavy"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_HEAVY_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_HEAVY_DESC"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_STUNNING" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("heavy"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Heavy)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)4; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSpecialSkills(bodyPrefab, val); } private void AddAdditionalSkills() { //IL_00d2: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) ExtraSkillLocator val = bodyPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); SkillFamily val3 = ScriptableObject.CreateInstance(); ((Object)val2).name = ((Object)bodyPrefab).name + "RomanCancelFamily"; val2.variants = (Variant[])(object)new Variant[0]; ((Object)val3).name = ((Object)bodyPrefab).name + "DustFamily"; val3.variants = (Variant[])(object)new Variant[0]; Content.AddSkillFamily(val3); Content.AddSkillFamily(val2); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyRC"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_RC_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_RC_DESC"; skillDefInfo.keywordTokens = new string[0]; skillDefInfo.skillIcon = assetBundle.LoadAsset("roman"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(RC)); skillDefInfo.activationStateMachineName = "Roman"; skillDefInfo.interruptPriority = (InterruptPriority)9; skillDefInfo.baseRechargeInterval = 10f; 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 = true; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef skillDef = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "BadguyDust"; skillDefInfo.skillNameToken = "HASTEREAPR_BADGUY_DUST_NAME"; skillDefInfo.skillDescriptionToken = "HASTEREAPR_BADGUY_DUST_DESC"; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_STUNNING" }; skillDefInfo.skillIcon = assetBundle.LoadAsset("dust"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(DustIntro)); skillDefInfo.activationStateMachineName = "Badguy"; skillDefInfo.interruptPriority = (InterruptPriority)5; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; 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 skillDef2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSkillToFamily(val2, skillDef); Skills.AddSkillToFamily(val3, skillDef2); GenericSkill val4 = bodyPrefab.AddComponent(); val4._skillFamily = val3; val.extraFourth = val4; GenericSkill val5 = bodyPrefab.AddComponent(); val5._skillFamily = val2; val.extraThird = val5; } public override void InitializeSkins() { ModelSkinController val = ((Component)prefabCharacterModel).gameObject.AddComponent(); ChildLocator component = ((Component)prefabCharacterModel).GetComponent(); RendererInfo[] baseRendererInfos = prefabCharacterModel.baseRendererInfos; List list = new List(); SkinDef item = Skins.CreateSkinDef("DEFAULT_SKIN", assetBundle.LoadAsset("texMainSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); list.Add(item); val.skins = list.ToArray(); } public override void InitializeCharacterMaster() { BadguyAI.Init(bodyPrefab, masterName); } private void AddHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { } } public static class BadguyAI { 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 Swing"; 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 = 8f; val2.selectionRequiresTargetLoS = false; 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 BadguyAssets { private static AssetBundle _assetBundle; public static GameObject tensionGauge; public static GameObject flamingFist; public static GameObject gunflameProj; public static GameObject gunflameProjB; public static GameObject gunflameProjC; public static GameObject gunflameGhost; public static GameObject kickEffect; public static GameObject slashEffect; public static GameObject heavySlashEffect; public static GameObject gunflamePillar; public static GameObject vortexPillar; public static GameObject installBurst; public static GameObject explosion; public static void Init(AssetBundle assetBundle) { //IL_005a: 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_008e: 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) _assetBundle = assetBundle; tensionGauge = _assetBundle.LoadAsset("SolTensionGauge"); CreateEffects(); CreateProjectiles(); gunflameProj = _assetBundle.LoadAsset("gunflameExplosion"); gunflameProjB = _assetBundle.LoadAsset("gunflameExplosion"); Transform transform = gunflameProjB.transform; transform.localScale *= 1.5f; gunflameProjC = _assetBundle.LoadAsset("gunflameExplosion"); Transform transform2 = gunflameProjC.transform; transform2.localScale *= 3f; gunflameProj.GetComponent().ghostPrefab = gunflameGhost; gunflameProjB.GetComponent().ghostPrefab = gunflameGhost; gunflameProjC.GetComponent().ghostPrefab = gunflameGhost; } private static void CreateEffects() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) CreateKickWave(); CreateHeavySlash(); CreateSlash(); CreateGunflamePillar(); CreateInstallPillar(); explosion = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_Common_VFX.ExplosionVFX_prefab).WaitForCompletion(), "BadguyExplosion", false); Content.CreateAndAddEffectDef(explosion); flamingFist = _assetBundle.LoadAsset("FlamingFist"); flamingFist.AddComponent(); Content.CreateAndAddEffectDef(flamingFist); } private static void CreateInstallPillar() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: 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_00ae: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016e: 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_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: 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_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0223: 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_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Unknown result type (might be due to invalid IL or missing references) installBurst = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_Brother.BrotherFirePillarGhost_prefab).WaitForCompletion(), "BadguyInstallBurst", false); Object.Destroy((Object)(object)installBurst.GetComponent()); installBurst.AddComponent(); Transform val = installBurst.transform.Find("Scale/Glow, Looping"); Transform val2 = installBurst.transform.Find("Scale/Glow, Initial"); Object.Destroy((Object)(object)((Component)installBurst.transform.Find("Point Light")).GetComponent()); MainModule main = ((Component)installBurst.transform.Find("Scale/Rock Particles, Fast")).GetComponent().main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(0f); ((MainModule)(ref main)).duration = 0f; main = ((Component)installBurst.transform.Find("Scale/Fire, Directional")).GetComponent().main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(0f); ((MainModule)(ref main)).duration = 0f; ParticleSystemRenderer component = ((Component)val).GetComponent(); Material val3 = Object.Instantiate(Addressables.LoadAssetAsync((object)RoR2_Base_Brother.matBrotherFirePillarIndicator_mat).WaitForCompletion()); val3.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)RoR2_Base_Common_ColorRamps.texRampParentFire_png).WaitForCompletion()); ((Renderer)component).material = val3; component = ((Component)val2).GetComponent(); ((Renderer)component).material = val3; MainModule main2 = ((Component)val).gameObject.GetComponent().main; ((MainModule)(ref main2)).startLifetime = MinMaxCurve.op_Implicit(1.5f); ((MainModule)(ref main2)).duration = 1.5f; ((MainModule)(ref main2)).startColor = new MinMaxGradient(Color32.op_Implicit(new Color32(byte.MaxValue, (byte)139, (byte)70, byte.MaxValue))); ((MainModule)(ref main2)).loop = false; main2 = ((Component)val2).gameObject.GetComponent().main; ((MainModule)(ref main2)).startColor = new MinMaxGradient(Color32.op_Implicit(new Color32(byte.MaxValue, (byte)139, (byte)70, byte.MaxValue))); Content.CreateAndAddEffectDef(installBurst); gunflameGhost = PrefabAPI.InstantiateClone(installBurst, "GunflamePillar"); Material val4 = Object.Instantiate(Addressables.LoadAssetAsync((object)RoR2_Base_Brother.matBrotherFirePillarIndicator_mat).WaitForCompletion()); val4.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)RoR2_Base_Common_ColorRamps.texRampMagmaWorm_png).WaitForCompletion()); ((Renderer)((Component)gunflameGhost.transform.Find("Scale/Glow, Looping")).GetComponent()).material = val4; MainModule main3 = ((Component)gunflameGhost.transform.Find("Scale/Glow, Initial")).GetComponent().main; ((MainModule)(ref main3)).duration = 0f; ((MainModule)(ref main3)).startLifetime = MinMaxCurve.op_Implicit(0f); main3 = ((Component)gunflameGhost.transform.Find("Scale/Glow, Looping")).GetComponent().main; ((MainModule)(ref main3)).startLifetime = MinMaxCurve.op_Implicit(0.6f); ((MainModule)(ref main3)).duration = 0.6f; Content.CreateAndAddEffectDef(gunflameGhost); vortexPillar = PrefabAPI.InstantiateClone(gunflameGhost, "VortexPillar"); Content.CreateAndAddEffectDef(vortexPillar); } private static void CreateInstallBurst() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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_0069: 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) installBurst = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Junk_Mage.MageFirePillarGhost_prefab).WaitForCompletion(), "BadguyInstallBurst", false); EffectComponent val = installBurst.AddComponent(); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; Content.CreateAndAddEffectDef(installBurst); Transform transform = installBurst.transform; transform.localScale *= 100f; Quaternion val2 = default(Quaternion); ((Quaternion)(ref val2)).eulerAngles = new Vector3(90f, 0f, 0f); } private static void CreateGunflamePillar() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_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_0069: 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_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) gunflamePillar = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_DLC2_Elites_EliteBead.EliteBeadFire_prefab).WaitForCompletion(), "BadguyFirePillar", false); EffectComponent val = gunflamePillar.AddComponent(); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; Content.CreateAndAddEffectDef(gunflamePillar); ParticleSystem component = gunflamePillar.GetComponent(); MainModule main = component.main; ((MainModule)(ref main)).loop = false; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(2.5f); ((MainModule)(ref main)).startColor = new MinMaxGradient(Color32.op_Implicit(new Color32(byte.MaxValue, (byte)139, (byte)70, byte.MaxValue))); } private static void CreateKickWave() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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_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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: 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_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) kickEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.MercSwordFinisherSlash_prefab).WaitForCompletion(), "BadguyKickWave", false); EffectComponent val = kickEffect.AddComponent(); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; Content.CreateAndAddEffectDef(kickEffect); Transform transform = kickEffect.transform; transform.localScale *= 3f; Transform val2 = kickEffect.transform.Find("SwingTrail"); if (Object.op_Implicit((Object)(object)val2)) { ParticleSystem component = ((Component)val2).GetComponent(); MainModule main = component.main; ParticleSystemRenderer component2 = ((Component)val2).GetComponent(); Material val3 = Object.Instantiate(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.matMercSwipe1_mat).WaitForCompletion()); val3.SetColor("_TintColor", Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue))); val3.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)RoR2_Base_Common_ColorRamps.texRampLaserTurbine_png).WaitForCompletion()); ((Renderer)component2).material = val3; } } private static void CreateHeavySlash() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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_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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: 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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) heavySlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.MercSwordFinisherSlash_prefab).WaitForCompletion(), "BadguyHeavySlash", false); EffectComponent val = heavySlashEffect.AddComponent(); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; Content.CreateAndAddEffectDef(heavySlashEffect); Transform transform = heavySlashEffect.transform; transform.localScale *= 6f; Transform val2 = heavySlashEffect.transform.Find("SwingTrail"); if (Object.op_Implicit((Object)(object)val2)) { ParticleSystem component = ((Component)val2).GetComponent(); MainModule main = component.main; ParticleSystemRenderer component2 = ((Component)val2).GetComponent(); Material val3 = Object.Instantiate(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.matMercSwipe1_mat).WaitForCompletion()); val3.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)81, (byte)81, (byte)81, byte.MaxValue))); val3.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)RoR2_Base_Common_ColorRamps.texRampLaserTurbine_png).WaitForCompletion()); ((Renderer)component2).material = val3; } } private static void CreateSlash() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0052: 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_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_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: 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_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) slashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.MercSwordFinisherSlash_prefab).WaitForCompletion(), "BadguySlash", false); EffectComponent val = slashEffect.AddComponent(); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; Content.CreateAndAddEffectDef(slashEffect); Transform transform = slashEffect.transform; transform.localScale *= 6f; Transform val2 = slashEffect.transform.Find("SwingTrail"); if (Object.op_Implicit((Object)(object)val2)) { ParticleSystem component = ((Component)val2).GetComponent(); MainModule main = component.main; ParticleSystemRenderer component2 = ((Component)val2).GetComponent(); Material val3 = Object.Instantiate(Addressables.LoadAssetAsync((object)RoR2_Base_Merc.matMercSwipe1_mat).WaitForCompletion()); val3.SetColor("_TintColor", Color32.op_Implicit(new Color32(byte.MaxValue, (byte)107, (byte)30, byte.MaxValue))); val3.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)RoR2_Base_Common_ColorRamps.texRampLaserTurbine_png).WaitForCompletion()); ((Renderer)component2).material = val3; } } private static void CreateProjectiles() { } } public static class BadguyBuffs { public static BuffDef installBuff; public static BuffDef uninstallBuff; public static void Init(AssetBundle assetBundle) { //IL_0015: 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) installBuff = Content.CreateAndAddBuff("BadguyDragonBuff", LegacyResourcesAPI.Load("BuffDefs/HiddenInvincibility").iconSprite, Color.red, canStack: false, isDebuff: false); uninstallBuff = Content.CreateAndAddBuff("BadguyRecoverDebuff", LegacyResourcesAPI.Load("BuffDefs/HiddenInvincibility").iconSprite, Color.gray, canStack: false, isDebuff: true); } } public static class BadguyConfig { public static ConfigEntry inputLeniency; public static ConfigEntry inputHold; public static ConfigEntry airdashTime; public static void Init() { string section = "Badguy"; inputLeniency = Config.BindAndOptions(section, "Input Leniency", 0.1f, "How long it takes the game to construct a new input."); airdashTime = Config.BindAndOptions(section, "Airdash Leniency", 0.2f, "Note : Do not go below 0.2 seconds, it will make you instantly airdash if you jump while sprinting.\nThe time between leaving the ground and when an airdash can be performed."); } } public class BadguyItemDisplays : 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_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_0faf: Unknown result type (might be due to invalid IL or missing references) //IL_0fc3: Unknown result type (might be due to invalid IL or missing references) //IL_0fc8: Unknown result type (might be due to invalid IL or missing references) //IL_0fcd: Unknown result type (might be due to invalid IL or missing references) //IL_0fd2: 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_103b: Unknown result type (might be due to invalid IL or missing references) //IL_1040: Unknown result type (might be due to invalid IL or missing references) //IL_1045: Unknown result type (might be due to invalid IL or missing references) //IL_104a: 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_10b3: Unknown result type (might be due to invalid IL or missing references) //IL_10b8: Unknown result type (might be due to invalid IL or missing references) //IL_10bd: Unknown result type (might be due to invalid IL or missing references) //IL_10c2: 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_112b: Unknown result type (might be due to invalid IL or missing references) //IL_1130: Unknown result type (might be due to invalid IL or missing references) //IL_1135: Unknown result type (might be due to invalid IL or missing references) //IL_113a: 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_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11a8: Unknown result type (might be due to invalid IL or missing references) //IL_11ad: Unknown result type (might be due to invalid IL or missing references) //IL_11b2: 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_121b: Unknown result type (might be due to invalid IL or missing references) //IL_1220: Unknown result type (might be due to invalid IL or missing references) //IL_1225: Unknown result type (might be due to invalid IL or missing references) //IL_122a: 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_1293: Unknown result type (might be due to invalid IL or missing references) //IL_1298: Unknown result type (might be due to invalid IL or missing references) //IL_129d: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: 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_130b: Unknown result type (might be due to invalid IL or missing references) //IL_1310: Unknown result type (might be due to invalid IL or missing references) //IL_1315: Unknown result type (might be due to invalid IL or missing references) //IL_131a: 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_1383: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_138d: Unknown result type (might be due to invalid IL or missing references) //IL_13b2: Unknown result type (might be due to invalid IL or missing references) //IL_13c6: Unknown result type (might be due to invalid IL or missing references) //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13df: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13e9: Unknown result type (might be due to invalid IL or missing references) //IL_142a: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1452: Unknown result type (might be due to invalid IL or missing references) //IL_1457: Unknown result type (might be due to invalid IL or missing references) //IL_145c: Unknown result type (might be due to invalid IL or missing references) //IL_1461: 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_14ca: Unknown result type (might be due to invalid IL or missing references) //IL_14cf: Unknown result type (might be due to invalid IL or missing references) //IL_14d4: Unknown result type (might be due to invalid IL or missing references) //IL_14d9: 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_1542: Unknown result type (might be due to invalid IL or missing references) //IL_1547: Unknown result type (might be due to invalid IL or missing references) //IL_154c: Unknown result type (might be due to invalid IL or missing references) //IL_1551: 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_15ba: Unknown result type (might be due to invalid IL or missing references) //IL_15bf: Unknown result type (might be due to invalid IL or missing references) //IL_15c4: Unknown result type (might be due to invalid IL or missing references) //IL_15c9: 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_1632: Unknown result type (might be due to invalid IL or missing references) //IL_1637: Unknown result type (might be due to invalid IL or missing references) //IL_163c: Unknown result type (might be due to invalid IL or missing references) //IL_1641: 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_16aa: Unknown result type (might be due to invalid IL or missing references) //IL_16af: Unknown result type (might be due to invalid IL or missing references) //IL_16b4: Unknown result type (might be due to invalid IL or missing references) //IL_16b9: 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_1722: Unknown result type (might be due to invalid IL or missing references) //IL_1727: Unknown result type (might be due to invalid IL or missing references) //IL_172c: Unknown result type (might be due to invalid IL or missing references) //IL_1731: 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_179a: Unknown result type (might be due to invalid IL or missing references) //IL_179f: Unknown result type (might be due to invalid IL or missing references) //IL_17a4: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: 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_1812: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_181c: Unknown result type (might be due to invalid IL or missing references) //IL_1821: 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_188a: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1894: Unknown result type (might be due to invalid IL or missing references) //IL_1899: 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_1902: Unknown result type (might be due to invalid IL or missing references) //IL_1907: Unknown result type (might be due to invalid IL or missing references) //IL_190c: Unknown result type (might be due to invalid IL or missing references) //IL_1911: 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_197a: Unknown result type (might be due to invalid IL or missing references) //IL_197f: Unknown result type (might be due to invalid IL or missing references) //IL_1984: Unknown result type (might be due to invalid IL or missing references) //IL_1989: 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_19f2: Unknown result type (might be due to invalid IL or missing references) //IL_19f7: Unknown result type (might be due to invalid IL or missing references) //IL_19fc: Unknown result type (might be due to invalid IL or missing references) //IL_1a01: 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_1a6a: Unknown result type (might be due to invalid IL or missing references) //IL_1a6f: Unknown result type (might be due to invalid IL or missing references) //IL_1a74: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: 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_1ae2: Unknown result type (might be due to invalid IL or missing references) //IL_1ae7: Unknown result type (might be due to invalid IL or missing references) //IL_1aec: Unknown result type (might be due to invalid IL or missing references) //IL_1af1: 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_1b5a: Unknown result type (might be due to invalid IL or missing references) //IL_1b5f: Unknown result type (might be due to invalid IL or missing references) //IL_1b64: Unknown result type (might be due to invalid IL or missing references) //IL_1b69: 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_1bd2: Unknown result type (might be due to invalid IL or missing references) //IL_1bd7: Unknown result type (might be due to invalid IL or missing references) //IL_1bdc: Unknown result type (might be due to invalid IL or missing references) //IL_1be1: 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_1c4a: Unknown result type (might be due to invalid IL or missing references) //IL_1c4f: Unknown result type (might be due to invalid IL or missing references) //IL_1c54: Unknown result type (might be due to invalid IL or missing references) //IL_1c5c: Unknown result type (might be due to invalid IL or missing references) //IL_1c61: Unknown result type (might be due to invalid IL or missing references) //IL_1c66: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7: Unknown result type (might be due to invalid IL or missing references) //IL_1cbb: Unknown result type (might be due to invalid IL or missing references) //IL_1ccf: Unknown result type (might be due to invalid IL or missing references) //IL_1cd4: Unknown result type (might be due to invalid IL or missing references) //IL_1cd9: Unknown result type (might be due to invalid IL or missing references) //IL_1cde: Unknown result type (might be due to invalid IL or missing references) //IL_1d1f: Unknown result type (might be due to invalid IL or missing references) //IL_1d33: Unknown result type (might be due to invalid IL or missing references) //IL_1d47: Unknown result type (might be due to invalid IL or missing references) //IL_1d4c: Unknown result type (might be due to invalid IL or missing references) //IL_1d51: Unknown result type (might be due to invalid IL or missing references) //IL_1d56: 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_1dbf: Unknown result type (might be due to invalid IL or missing references) //IL_1dc4: Unknown result type (might be due to invalid IL or missing references) //IL_1dc9: Unknown result type (might be due to invalid IL or missing references) //IL_1dce: 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_1e37: Unknown result type (might be due to invalid IL or missing references) //IL_1e3c: Unknown result type (might be due to invalid IL or missing references) //IL_1e41: Unknown result type (might be due to invalid IL or missing references) //IL_1e46: 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_1eaf: Unknown result type (might be due to invalid IL or missing references) //IL_1eb4: Unknown result type (might be due to invalid IL or missing references) //IL_1eb9: Unknown result type (might be due to invalid IL or missing references) //IL_1ede: Unknown result type (might be due to invalid IL or missing references) //IL_1ef2: Unknown result type (might be due to invalid IL or missing references) //IL_1f06: Unknown result type (might be due to invalid IL or missing references) //IL_1f0b: Unknown result type (might be due to invalid IL or missing references) //IL_1f10: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f56: Unknown result type (might be due to invalid IL or missing references) //IL_1f6a: Unknown result type (might be due to invalid IL or missing references) //IL_1f7e: Unknown result type (might be due to invalid IL or missing references) //IL_1f83: Unknown result type (might be due to invalid IL or missing references) //IL_1f88: Unknown result type (might be due to invalid IL or missing references) //IL_1f8d: 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_1ff6: Unknown result type (might be due to invalid IL or missing references) //IL_1ffb: Unknown result type (might be due to invalid IL or missing references) //IL_2000: Unknown result type (might be due to invalid IL or missing references) //IL_2005: 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_206e: Unknown result type (might be due to invalid IL or missing references) //IL_2073: Unknown result type (might be due to invalid IL or missing references) //IL_2078: Unknown result type (might be due to invalid IL or missing references) //IL_207d: 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_20e6: Unknown result type (might be due to invalid IL or missing references) //IL_20eb: Unknown result type (might be due to invalid IL or missing references) //IL_20f0: Unknown result type (might be due to invalid IL or missing references) //IL_20f5: 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_215e: Unknown result type (might be due to invalid IL or missing references) //IL_2163: Unknown result type (might be due to invalid IL or missing references) //IL_2168: Unknown result type (might be due to invalid IL or missing references) //IL_216d: 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_21d6: Unknown result type (might be due to invalid IL or missing references) //IL_21db: Unknown result type (might be due to invalid IL or missing references) //IL_21e0: Unknown result type (might be due to invalid IL or missing references) //IL_21e5: 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_224e: Unknown result type (might be due to invalid IL or missing references) //IL_2253: Unknown result type (might be due to invalid IL or missing references) //IL_2258: Unknown result type (might be due to invalid IL or missing references) //IL_225d: 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_22c6: Unknown result type (might be due to invalid IL or missing references) //IL_22cb: Unknown result type (might be due to invalid IL or missing references) //IL_22d0: Unknown result type (might be due to invalid IL or missing references) //IL_22d5: 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_233e: Unknown result type (might be due to invalid IL or missing references) //IL_2343: Unknown result type (might be due to invalid IL or missing references) //IL_2348: Unknown result type (might be due to invalid IL or missing references) //IL_234d: 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_23b6: Unknown result type (might be due to invalid IL or missing references) //IL_23bb: Unknown result type (might be due to invalid IL or missing references) //IL_23c0: Unknown result type (might be due to invalid IL or missing references) //IL_23c5: 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_242e: Unknown result type (might be due to invalid IL or missing references) //IL_2433: Unknown result type (might be due to invalid IL or missing references) //IL_2438: Unknown result type (might be due to invalid IL or missing references) //IL_243d: 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_24a6: Unknown result type (might be due to invalid IL or missing references) //IL_24ab: Unknown result type (might be due to invalid IL or missing references) //IL_24b0: Unknown result type (might be due to invalid IL or missing references) //IL_24b5: 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_251e: Unknown result type (might be due to invalid IL or missing references) //IL_2523: Unknown result type (might be due to invalid IL or missing references) //IL_2528: Unknown result type (might be due to invalid IL or missing references) //IL_252d: 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_2596: Unknown result type (might be due to invalid IL or missing references) //IL_259b: Unknown result type (might be due to invalid IL or missing references) //IL_25a0: Unknown result type (might be due to invalid IL or missing references) //IL_25a5: 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_260e: Unknown result type (might be due to invalid IL or missing references) //IL_2613: Unknown result type (might be due to invalid IL or missing references) //IL_2618: Unknown result type (might be due to invalid IL or missing references) //IL_261d: 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_2686: Unknown result type (might be due to invalid IL or missing references) //IL_268b: Unknown result type (might be due to invalid IL or missing references) //IL_2690: Unknown result type (might be due to invalid IL or missing references) //IL_2695: 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_26fe: Unknown result type (might be due to invalid IL or missing references) //IL_2703: Unknown result type (might be due to invalid IL or missing references) //IL_2708: Unknown result type (might be due to invalid IL or missing references) //IL_270d: 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_2776: Unknown result type (might be due to invalid IL or missing references) //IL_277b: Unknown result type (might be due to invalid IL or missing references) //IL_2780: Unknown result type (might be due to invalid IL or missing references) //IL_2785: 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_27ee: Unknown result type (might be due to invalid IL or missing references) //IL_27f3: Unknown result type (might be due to invalid IL or missing references) //IL_27f8: Unknown result type (might be due to invalid IL or missing references) //IL_27fd: 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_2866: Unknown result type (might be due to invalid IL or missing references) //IL_286b: Unknown result type (might be due to invalid IL or missing references) //IL_2870: Unknown result type (might be due to invalid IL or missing references) //IL_2875: Unknown result type (might be due to invalid IL or missing references) //IL_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_28de: Unknown result type (might be due to invalid IL or missing references) //IL_28e3: Unknown result type (might be due to invalid IL or missing references) //IL_28e8: Unknown result type (might be due to invalid IL or missing references) //IL_28ed: 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_2956: Unknown result type (might be due to invalid IL or missing references) //IL_295b: Unknown result type (might be due to invalid IL or missing references) //IL_2960: Unknown result type (might be due to invalid IL or missing references) //IL_2965: 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_29ce: Unknown result type (might be due to invalid IL or missing references) //IL_29d3: Unknown result type (might be due to invalid IL or missing references) //IL_29d8: Unknown result type (might be due to invalid IL or missing references) //IL_29dd: 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_2a46: Unknown result type (might be due to invalid IL or missing references) //IL_2a4b: Unknown result type (might be due to invalid IL or missing references) //IL_2a50: Unknown result type (might be due to invalid IL or missing references) //IL_2a75: Unknown result type (might be due to invalid IL or missing references) //IL_2a89: Unknown result type (might be due to invalid IL or missing references) //IL_2a9d: Unknown result type (might be due to invalid IL or missing references) //IL_2aa2: Unknown result type (might be due to invalid IL or missing references) //IL_2aa7: Unknown result type (might be due to invalid IL or missing references) //IL_2aac: Unknown result type (might be due to invalid IL or missing references) //IL_2aed: Unknown result type (might be due to invalid IL or missing references) //IL_2b01: Unknown result type (might be due to invalid IL or missing references) //IL_2b15: Unknown result type (might be due to invalid IL or missing references) //IL_2b1a: Unknown result type (might be due to invalid IL or missing references) //IL_2b1f: Unknown result type (might be due to invalid IL or missing references) //IL_2b24: 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_2b8d: Unknown result type (might be due to invalid IL or missing references) //IL_2b92: Unknown result type (might be due to invalid IL or missing references) //IL_2b97: Unknown result type (might be due to invalid IL or missing references) //IL_2b9c: 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_2c05: Unknown result type (might be due to invalid IL or missing references) //IL_2c0a: Unknown result type (might be due to invalid IL or missing references) //IL_2c0f: Unknown result type (might be due to invalid IL or missing references) //IL_2c14: 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_2c7d: Unknown result type (might be due to invalid IL or missing references) //IL_2c82: Unknown result type (might be due to invalid IL or missing references) //IL_2c87: Unknown result type (might be due to invalid IL or missing references) //IL_2c8c: 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_2cf5: Unknown result type (might be due to invalid IL or missing references) //IL_2cfa: Unknown result type (might be due to invalid IL or missing references) //IL_2cff: Unknown result type (might be due to invalid IL or missing references) //IL_2d04: 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_2d6d: Unknown result type (might be due to invalid IL or missing references) //IL_2d72: Unknown result type (might be due to invalid IL or missing references) //IL_2d77: Unknown result type (might be due to invalid IL or missing references) //IL_2d7c: 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_2de5: Unknown result type (might be due to invalid IL or missing references) //IL_2dea: Unknown result type (might be due to invalid IL or missing references) //IL_2def: Unknown result type (might be due to invalid IL or missing references) //IL_2df4: 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_2e5d: Unknown result type (might be due to invalid IL or missing references) //IL_2e62: Unknown result type (might be due to invalid IL or missing references) //IL_2e67: Unknown result type (might be due to invalid IL or missing references) //IL_2e6c: 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_2ed5: Unknown result type (might be due to invalid IL or missing references) //IL_2eda: Unknown result type (might be due to invalid IL or missing references) //IL_2edf: Unknown result type (might be due to invalid IL or missing references) //IL_2ee4: 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_2f4d: Unknown result type (might be due to invalid IL or missing references) //IL_2f52: Unknown result type (might be due to invalid IL or missing references) //IL_2f57: Unknown result type (might be due to invalid IL or missing references) //IL_2f5c: 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_2fc5: Unknown result type (might be due to invalid IL or missing references) //IL_2fca: Unknown result type (might be due to invalid IL or missing references) //IL_2fcf: Unknown result type (might be due to invalid IL or missing references) //IL_2fd4: 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_303d: Unknown result type (might be due to invalid IL or missing references) //IL_3042: Unknown result type (might be due to invalid IL or missing references) //IL_3047: Unknown result type (might be due to invalid IL or missing references) //IL_304c: 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_30b5: Unknown result type (might be due to invalid IL or missing references) //IL_30ba: Unknown result type (might be due to invalid IL or missing references) //IL_30bf: Unknown result type (might be due to invalid IL or missing references) //IL_30c4: 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_312d: Unknown result type (might be due to invalid IL or missing references) //IL_3132: Unknown result type (might be due to invalid IL or missing references) //IL_3137: Unknown result type (might be due to invalid IL or missing references) //IL_313c: 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_31a5: Unknown result type (might be due to invalid IL or missing references) //IL_31aa: Unknown result type (might be due to invalid IL or missing references) //IL_31af: Unknown result type (might be due to invalid IL or missing references) //IL_31b4: 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_321d: Unknown result type (might be due to invalid IL or missing references) //IL_3222: Unknown result type (might be due to invalid IL or missing references) //IL_3227: Unknown result type (might be due to invalid IL or missing references) //IL_322c: Unknown result type (might be due to invalid IL or missing references) //IL_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_3295: Unknown result type (might be due to invalid IL or missing references) //IL_329a: Unknown result type (might be due to invalid IL or missing references) //IL_329f: Unknown result type (might be due to invalid IL or missing references) //IL_32c4: Unknown result type (might be due to invalid IL or missing references) //IL_32d8: Unknown result type (might be due to invalid IL or missing references) //IL_32ec: Unknown result type (might be due to invalid IL or missing references) //IL_32f1: Unknown result type (might be due to invalid IL or missing references) //IL_32f6: Unknown result type (might be due to invalid IL or missing references) //IL_32fb: Unknown result type (might be due to invalid IL or missing references) //IL_333c: Unknown result type (might be due to invalid IL or missing references) //IL_3350: Unknown result type (might be due to invalid IL or missing references) //IL_3364: Unknown result type (might be due to invalid IL or missing references) //IL_3369: Unknown result type (might be due to invalid IL or missing references) //IL_336e: Unknown result type (might be due to invalid IL or missing references) //IL_3373: 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_33dc: Unknown result type (might be due to invalid IL or missing references) //IL_33e1: Unknown result type (might be due to invalid IL or missing references) //IL_33e6: Unknown result type (might be due to invalid IL or missing references) //IL_33eb: 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_3454: Unknown result type (might be due to invalid IL or missing references) //IL_3459: Unknown result type (might be due to invalid IL or missing references) //IL_345e: Unknown result type (might be due to invalid IL or missing references) //IL_3463: 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_34cc: Unknown result type (might be due to invalid IL or missing references) //IL_34d1: Unknown result type (might be due to invalid IL or missing references) //IL_34d6: Unknown result type (might be due to invalid IL or missing references) //IL_34db: Unknown result type (might be due to invalid IL or missing references) //IL_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_3544: Unknown result type (might be due to invalid IL or missing references) //IL_3549: Unknown result type (might be due to invalid IL or missing references) //IL_354e: Unknown result type (might be due to invalid IL or missing references) //IL_3553: 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_35bc: Unknown result type (might be due to invalid IL or missing references) //IL_35c1: Unknown result type (might be due to invalid IL or missing references) //IL_35c6: Unknown result type (might be due to invalid IL or missing references) //IL_35cb: 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_3634: Unknown result type (might be due to invalid IL or missing references) //IL_3639: Unknown result type (might be due to invalid IL or missing references) //IL_363e: Unknown result type (might be due to invalid IL or missing references) //IL_3643: 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_36ac: Unknown result type (might be due to invalid IL or missing references) //IL_36b1: Unknown result type (might be due to invalid IL or missing references) //IL_36b6: Unknown result type (might be due to invalid IL or missing references) //IL_36bb: 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_3724: Unknown result type (might be due to invalid IL or missing references) //IL_3729: Unknown result type (might be due to invalid IL or missing references) //IL_372e: Unknown result type (might be due to invalid IL or missing references) //IL_3733: Unknown result type (might be due to invalid IL or missing references) //IL_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_379c: Unknown result type (might be due to invalid IL or missing references) //IL_37a1: Unknown result type (might be due to invalid IL or missing references) //IL_37a6: Unknown result type (might be due to invalid IL or missing references) //IL_37ab: 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_3814: Unknown result type (might be due to invalid IL or missing references) //IL_3819: Unknown result type (might be due to invalid IL or missing references) //IL_381e: Unknown result type (might be due to invalid IL or missing references) //IL_3823: 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_388c: Unknown result type (might be due to invalid IL or missing references) //IL_3891: Unknown result type (might be due to invalid IL or missing references) //IL_3896: Unknown result type (might be due to invalid IL or missing references) //IL_389b: 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_3904: Unknown result type (might be due to invalid IL or missing references) //IL_3909: Unknown result type (might be due to invalid IL or missing references) //IL_390e: Unknown result type (might be due to invalid IL or missing references) //IL_3913: Unknown result type (might be due to invalid IL or missing references) //IL_3954: Unknown result type (might be due to invalid IL or missing references) //IL_3968: Unknown result type (might be due to invalid IL or missing references) //IL_397c: Unknown result type (might be due to invalid IL or missing references) //IL_3981: Unknown result type (might be due to invalid IL or missing references) //IL_3986: Unknown result type (might be due to invalid IL or missing references) //IL_398b: Unknown result type (might be due to invalid IL or missing references) //IL_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_39f4: Unknown result type (might be due to invalid IL or missing references) //IL_39f9: Unknown result type (might be due to invalid IL or missing references) //IL_39fe: Unknown result type (might be due to invalid IL or missing references) //IL_3a03: 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_3a6c: Unknown result type (might be due to invalid IL or missing references) //IL_3a71: Unknown result type (might be due to invalid IL or missing references) //IL_3a76: Unknown result type (might be due to invalid IL or missing references) //IL_3a7b: 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_3ae4: Unknown result type (might be due to invalid IL or missing references) //IL_3ae9: Unknown result type (might be due to invalid IL or missing references) //IL_3aee: Unknown result type (might be due to invalid IL or missing references) //IL_3af3: 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_3b5c: Unknown result type (might be due to invalid IL or missing references) //IL_3b61: Unknown result type (might be due to invalid IL or missing references) //IL_3b66: Unknown result type (might be due to invalid IL or missing references) //IL_3b8b: Unknown result type (might be due to invalid IL or missing references) //IL_3b9f: Unknown result type (might be due to invalid IL or missing references) //IL_3bb3: Unknown result type (might be due to invalid IL or missing references) //IL_3bb8: Unknown result type (might be due to invalid IL or missing references) //IL_3bbd: Unknown result type (might be due to invalid IL or missing references) //IL_3be2: Unknown result type (might be due to invalid IL or missing references) //IL_3bf6: Unknown result type (might be due to invalid IL or missing references) //IL_3c0a: Unknown result type (might be due to invalid IL or missing references) //IL_3c0f: Unknown result type (might be due to invalid IL or missing references) //IL_3c14: Unknown result type (might be due to invalid IL or missing references) //IL_3c39: Unknown result type (might be due to invalid IL or missing references) //IL_3c4d: Unknown result type (might be due to invalid IL or missing references) //IL_3c61: Unknown result type (might be due to invalid IL or missing references) //IL_3c66: Unknown result type (might be due to invalid IL or missing references) //IL_3c6b: Unknown result type (might be due to invalid IL or missing references) //IL_3c90: Unknown result type (might be due to invalid IL or missing references) //IL_3ca4: Unknown result type (might be due to invalid IL or missing references) //IL_3cb8: Unknown result type (might be due to invalid IL or missing references) //IL_3cbd: Unknown result type (might be due to invalid IL or missing references) //IL_3cc2: Unknown result type (might be due to invalid IL or missing references) //IL_3ce7: Unknown result type (might be due to invalid IL or missing references) //IL_3cfb: Unknown result type (might be due to invalid IL or missing references) //IL_3d0f: Unknown result type (might be due to invalid IL or missing references) //IL_3d14: Unknown result type (might be due to invalid IL or missing references) //IL_3d19: Unknown result type (might be due to invalid IL or missing references) //IL_3d1e: Unknown result type (might be due to invalid IL or missing references) //IL_3d5f: Unknown result type (might be due to invalid IL or missing references) //IL_3d73: Unknown result type (might be due to invalid IL or missing references) //IL_3d87: Unknown result type (might be due to invalid IL or missing references) //IL_3d8c: Unknown result type (might be due to invalid IL or missing references) //IL_3d91: Unknown result type (might be due to invalid IL or missing references) //IL_3d96: 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_3dff: Unknown result type (might be due to invalid IL or missing references) //IL_3e04: Unknown result type (might be due to invalid IL or missing references) //IL_3e09: Unknown result type (might be due to invalid IL or missing references) //IL_3e0e: 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_3e77: Unknown result type (might be due to invalid IL or missing references) //IL_3e7c: Unknown result type (might be due to invalid IL or missing references) //IL_3e81: Unknown result type (might be due to invalid IL or missing references) //IL_3e86: 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_3eef: Unknown result type (might be due to invalid IL or missing references) //IL_3ef4: Unknown result type (might be due to invalid IL or missing references) //IL_3ef9: Unknown result type (might be due to invalid IL or missing references) //IL_3f1e: Unknown result type (might be due to invalid IL or missing references) //IL_3f32: Unknown result type (might be due to invalid IL or missing references) //IL_3f46: Unknown result type (might be due to invalid IL or missing references) //IL_3f4b: Unknown result type (might be due to invalid IL or missing references) //IL_3f50: Unknown result type (might be due to invalid IL or missing references) //IL_3f55: Unknown result type (might be due to invalid IL or missing references) //IL_3f96: Unknown result type (might be due to invalid IL or missing references) //IL_3faa: Unknown result type (might be due to invalid IL or missing references) //IL_3fbe: Unknown result type (might be due to invalid IL or missing references) //IL_3fc3: Unknown result type (might be due to invalid IL or missing references) //IL_3fc8: Unknown result type (might be due to invalid IL or missing references) //IL_3fcd: 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_4036: Unknown result type (might be due to invalid IL or missing references) //IL_403b: Unknown result type (might be due to invalid IL or missing references) //IL_4040: Unknown result type (might be due to invalid IL or missing references) //IL_4045: 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_40ae: Unknown result type (might be due to invalid IL or missing references) //IL_40b3: Unknown result type (might be due to invalid IL or missing references) //IL_40b8: Unknown result type (might be due to invalid IL or missing references) //IL_40bd: 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_4126: Unknown result type (might be due to invalid IL or missing references) //IL_412b: Unknown result type (might be due to invalid IL or missing references) //IL_4130: Unknown result type (might be due to invalid IL or missing references) //IL_4135: 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_419e: Unknown result type (might be due to invalid IL or missing references) //IL_41a3: Unknown result type (might be due to invalid IL or missing references) //IL_41a8: Unknown result type (might be due to invalid IL or missing references) //IL_41ad: 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_4216: Unknown result type (might be due to invalid IL or missing references) //IL_421b: Unknown result type (might be due to invalid IL or missing references) //IL_4220: Unknown result type (might be due to invalid IL or missing references) //IL_4245: Unknown result type (might be due to invalid IL or missing references) //IL_4259: Unknown result type (might be due to invalid IL or missing references) //IL_426d: Unknown result type (might be due to invalid IL or missing references) //IL_4272: Unknown result type (might be due to invalid IL or missing references) //IL_4277: Unknown result type (might be due to invalid IL or missing references) //IL_427c: Unknown result type (might be due to invalid IL or missing references) //IL_42bd: Unknown result type (might be due to invalid IL or missing references) //IL_42d1: Unknown result type (might be due to invalid IL or missing references) //IL_42e5: Unknown result type (might be due to invalid IL or missing references) //IL_42ea: Unknown result type (might be due to invalid IL or missing references) //IL_42ef: Unknown result type (might be due to invalid IL or missing references) //IL_42f4: 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_435d: Unknown result type (might be due to invalid IL or missing references) //IL_4362: Unknown result type (might be due to invalid IL or missing references) //IL_4367: Unknown result type (might be due to invalid IL or missing references) //IL_436c: 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_43d5: Unknown result type (might be due to invalid IL or missing references) //IL_43da: Unknown result type (might be due to invalid IL or missing references) //IL_43df: Unknown result type (might be due to invalid IL or missing references) //IL_43e4: 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_444d: Unknown result type (might be due to invalid IL or missing references) //IL_4452: Unknown result type (might be due to invalid IL or missing references) //IL_4457: Unknown result type (might be due to invalid IL or missing references) //IL_445c: 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_44c5: Unknown result type (might be due to invalid IL or missing references) //IL_44ca: Unknown result type (might be due to invalid IL or missing references) //IL_44cf: Unknown result type (might be due to invalid IL or missing references) //IL_44d4: 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_453d: Unknown result type (might be due to invalid IL or missing references) //IL_4542: Unknown result type (might be due to invalid IL or missing references) //IL_4547: Unknown result type (might be due to invalid IL or missing references) //IL_454c: 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_45b5: Unknown result type (might be due to invalid IL or missing references) //IL_45ba: Unknown result type (might be due to invalid IL or missing references) //IL_45bf: Unknown result type (might be due to invalid IL or missing references) //IL_45c4: 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_462d: Unknown result type (might be due to invalid IL or missing references) //IL_4632: Unknown result type (might be due to invalid IL or missing references) //IL_4637: Unknown result type (might be due to invalid IL or missing references) //IL_463c: 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_46a5: Unknown result type (might be due to invalid IL or missing references) //IL_46aa: Unknown result type (might be due to invalid IL or missing references) //IL_46af: Unknown result type (might be due to invalid IL or missing references) //IL_46b4: 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_471d: Unknown result type (might be due to invalid IL or missing references) //IL_4722: Unknown result type (might be due to invalid IL or missing references) //IL_4727: Unknown result type (might be due to invalid IL or missing references) //IL_474c: Unknown result type (might be due to invalid IL or missing references) //IL_4760: Unknown result type (might be due to invalid IL or missing references) //IL_4774: Unknown result type (might be due to invalid IL or missing references) //IL_4779: Unknown result type (might be due to invalid IL or missing references) //IL_477e: Unknown result type (might be due to invalid IL or missing references) //IL_4783: Unknown result type (might be due to invalid IL or missing references) //IL_47c4: Unknown result type (might be due to invalid IL or missing references) //IL_47d8: Unknown result type (might be due to invalid IL or missing references) //IL_47ec: Unknown result type (might be due to invalid IL or missing references) //IL_47f1: Unknown result type (might be due to invalid IL or missing references) //IL_47f6: Unknown result type (might be due to invalid IL or missing references) //IL_47fb: 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_4864: Unknown result type (might be due to invalid IL or missing references) //IL_4869: Unknown result type (might be due to invalid IL or missing references) //IL_486e: Unknown result type (might be due to invalid IL or missing references) //IL_4873: 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_48dc: Unknown result type (might be due to invalid IL or missing references) //IL_48e1: Unknown result type (might be due to invalid IL or missing references) //IL_48e6: Unknown result type (might be due to invalid IL or missing references) //IL_490b: Unknown result type (might be due to invalid IL or missing references) //IL_491f: Unknown result type (might be due to invalid IL or missing references) //IL_4933: Unknown result type (might be due to invalid IL or missing references) //IL_4938: Unknown result type (might be due to invalid IL or missing references) //IL_493d: Unknown result type (might be due to invalid IL or missing references) //IL_4942: Unknown result type (might be due to invalid IL or missing references) //IL_4983: Unknown result type (might be due to invalid IL or missing references) //IL_4997: Unknown result type (might be due to invalid IL or missing references) //IL_49ab: Unknown result type (might be due to invalid IL or missing references) //IL_49b0: Unknown result type (might be due to invalid IL or missing references) //IL_49b5: Unknown result type (might be due to invalid IL or missing references) //IL_49ba: 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_4a23: Unknown result type (might be due to invalid IL or missing references) //IL_4a28: Unknown result type (might be due to invalid IL or missing references) //IL_4a2d: Unknown result type (might be due to invalid IL or missing references) //IL_4a32: 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_4a9b: Unknown result type (might be due to invalid IL or missing references) //IL_4aa0: Unknown result type (might be due to invalid IL or missing references) //IL_4aa5: Unknown result type (might be due to invalid IL or missing references) //IL_4aaa: 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_4b13: Unknown result type (might be due to invalid IL or missing references) //IL_4b18: Unknown result type (might be due to invalid IL or missing references) //IL_4b1d: Unknown result type (might be due to invalid IL or missing references) //IL_4b22: 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_4b8b: Unknown result type (might be due to invalid IL or missing references) //IL_4b90: Unknown result type (might be due to invalid IL or missing references) //IL_4b95: Unknown result type (might be due to invalid IL or missing references) //IL_4b9a: 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_4c03: Unknown result type (might be due to invalid IL or missing references) //IL_4c08: Unknown result type (might be due to invalid IL or missing references) //IL_4c0d: Unknown result type (might be due to invalid IL or missing references) //IL_4c12: 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_4c7b: Unknown result type (might be due to invalid IL or missing references) //IL_4c80: Unknown result type (might be due to invalid IL or missing references) //IL_4c85: Unknown result type (might be due to invalid IL or missing references) //IL_4c8a: 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_4cf3: Unknown result type (might be due to invalid IL or missing references) //IL_4cf8: Unknown result type (might be due to invalid IL or missing references) //IL_4cfd: Unknown result type (might be due to invalid IL or missing references) //IL_4d02: 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_4d6b: Unknown result type (might be due to invalid IL or missing references) //IL_4d70: Unknown result type (might be due to invalid IL or missing references) //IL_4d75: Unknown result type (might be due to invalid IL or missing references) //IL_4d7a: 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_4de3: Unknown result type (might be due to invalid IL or missing references) //IL_4de8: Unknown result type (might be due to invalid IL or missing references) //IL_4ded: Unknown result type (might be due to invalid IL or missing references) //IL_4df2: 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_4e5b: Unknown result type (might be due to invalid IL or missing references) //IL_4e60: Unknown result type (might be due to invalid IL or missing references) //IL_4e65: Unknown result type (might be due to invalid IL or missing references) //IL_4e6a: 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_4ed3: Unknown result type (might be due to invalid IL or missing references) //IL_4ed8: Unknown result type (might be due to invalid IL or missing references) //IL_4edd: Unknown result type (might be due to invalid IL or missing references) //IL_4ee2: 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_4f4b: Unknown result type (might be due to invalid IL or missing references) //IL_4f50: Unknown result type (might be due to invalid IL or missing references) //IL_4f55: Unknown result type (might be due to invalid IL or missing references) //IL_4f5d: Unknown result type (might be due to invalid IL or missing references) //IL_4f62: Unknown result type (might be due to invalid IL or missing references) //IL_4f67: Unknown result type (might be due to invalid IL or missing references) //IL_4fa8: Unknown result type (might be due to invalid IL or missing references) //IL_4fbc: Unknown result type (might be due to invalid IL or missing references) //IL_4fd0: Unknown result type (might be due to invalid IL or missing references) //IL_4fd5: Unknown result type (might be due to invalid IL or missing references) //IL_4fda: Unknown result type (might be due to invalid IL or missing references) //IL_4fdf: Unknown result type (might be due to invalid IL or missing references) //IL_5020: Unknown result type (might be due to invalid IL or missing references) //IL_5034: Unknown result type (might be due to invalid IL or missing references) //IL_5048: Unknown result type (might be due to invalid IL or missing references) //IL_504d: Unknown result type (might be due to invalid IL or missing references) //IL_5052: Unknown result type (might be due to invalid IL or missing references) //IL_5057: 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_50c0: Unknown result type (might be due to invalid IL or missing references) //IL_50c5: Unknown result type (might be due to invalid IL or missing references) //IL_50ca: Unknown result type (might be due to invalid IL or missing references) //IL_50cf: 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_5138: Unknown result type (might be due to invalid IL or missing references) //IL_513d: Unknown result type (might be due to invalid IL or missing references) //IL_5142: Unknown result type (might be due to invalid IL or missing references) //IL_5147: 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_51b0: Unknown result type (might be due to invalid IL or missing references) //IL_51b5: Unknown result type (might be due to invalid IL or missing references) //IL_51ba: Unknown result type (might be due to invalid IL or missing references) //IL_51bf: 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_5228: Unknown result type (might be due to invalid IL or missing references) //IL_522d: Unknown result type (might be due to invalid IL or missing references) //IL_5232: Unknown result type (might be due to invalid IL or missing references) //IL_5237: 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_52a0: Unknown result type (might be due to invalid IL or missing references) //IL_52a5: Unknown result type (might be due to invalid IL or missing references) //IL_52aa: Unknown result type (might be due to invalid IL or missing references) //IL_52af: 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_5318: Unknown result type (might be due to invalid IL or missing references) //IL_531d: Unknown result type (might be due to invalid IL or missing references) //IL_5322: Unknown result type (might be due to invalid IL or missing references) //IL_5327: 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_5390: Unknown result type (might be due to invalid IL or missing references) //IL_5395: Unknown result type (might be due to invalid IL or missing references) //IL_539a: Unknown result type (might be due to invalid IL or missing references) //IL_539f: 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_5408: Unknown result type (might be due to invalid IL or missing references) //IL_540d: Unknown result type (might be due to invalid IL or missing references) //IL_5412: Unknown result type (might be due to invalid IL or missing references) //IL_5417: 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_5480: Unknown result type (might be due to invalid IL or missing references) //IL_5485: Unknown result type (might be due to invalid IL or missing references) //IL_548a: Unknown result type (might be due to invalid IL or missing references) //IL_548f: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AlienHead"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAlienHead"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorPlate"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRepulsionArmorPlate"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorReductionOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarhammer"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedAndMoveSpeed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCoffee"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWolfPelt"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AutoCastEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFossil"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bandolier"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBandolier"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrooch"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnOverHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAegis"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bear"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBear"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BearVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBearVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BeetleGland"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeetleGland"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Behemoth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBehemoth"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTip"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitAndExplode"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBleedOnHitAndExplode"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTipVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BonusGoldPackOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTome"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAPRound"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BounceNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHook"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkulele"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightningVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkuleleVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Clover"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayClover"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CloverVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCloverVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CooldownOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkull"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserSight"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlasses"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlasses"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlassesVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlassesVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Crowbar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCrowbar"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Dagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDagger"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathMark"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathMark"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElementalRingVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVoidRing"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EmpowerAlways"], ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)1), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHeadNeck"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHead"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EnergizedOnEquipmentUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarHorn"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBattery"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazineVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFuelCellVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExecuteLowHealthElite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGuillotine"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeath"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWilloWisp"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeathVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWillowWispVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLife"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippo"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLifeVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippoVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FallBoots"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Feather"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFeather"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireballsOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireballsOnHit"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireRing"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Firework"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFirework"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FlatHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySteakCurved"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FocusConvergence"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFocusedConvergence"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FragileDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDelicateWatch"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FreeChest"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShippingRequestForm"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GhostOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMask"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBoneCrown"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHurt"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRollOfPennies"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfAttackSpeedHalfCooldowns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderNature"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfSpeedDoubleHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderStone"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HeadHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkullcrown"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealingPotion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHealingPotion"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScythe"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealWhileSafe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySnail"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Hoof"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHoof"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)8))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IceRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIceRing"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Icicle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFrostRelic"), "Chest", new Vector3(2f, 2f, 2f), 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(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ImmuneToDebuff"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRainCoatBelt"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreaseHealing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Incubator"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAncestralIncubator"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Infusion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInfusion"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["JumpBoost"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaxBird"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["KillEliteFrenzy"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrainstalk"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Knurl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKnurl"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LaserTurbine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserTurbine"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LightningStrikeOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayChargedPerforator"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarDagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarDagger"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPrimaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdEye"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSecondaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdClaw"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSpecialReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdHeart"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarTrinket"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeads"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarUtilityReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdFoot"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Medkit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMedkit"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MinorConstructOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDefenseNucleus"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Missile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncher"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MissileVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncherVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MonstersOnShrineUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMonstersOnShrineUse"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoreMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayICBM"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoveSpeedOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGrappleHook"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Mushroom"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroom"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MushroomVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroomVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NearbyDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDiamond"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJellyGuts"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["OutOfCombatArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOddlyShapedOpal"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ParentEgg"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayParentEgg"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Pearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPearl"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PermanentDebuffOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScorpion"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PersonalShield"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldGenerator"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Phasing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStealthkit"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Plant"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInterstellarDeskPlant"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PrimarySkillShuriken"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShuriken"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomDamageZone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRandomDamageZone"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomEquipmentTrigger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBottledChaos"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomlyLunar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDomino"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RegeneratingScrap"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRegeneratingScrap"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RepeatHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCorpseflower"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SecondarySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDoubleMag"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Seed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySeed"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShieldOnly"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShinyPearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShinyPearl"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShockNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeslaCoil"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SiphonOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySiphonOnLowHealth"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBauble"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBaubleVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBuckler"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySoda"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintOutOfCombat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWhip"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintWisp"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrokenMask"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Squid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySquidTurret"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StickyBomb"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStickyBomb"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StrengthenBurn"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasTank"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StunChanceOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStunGrenade"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Syringe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySyringeCluster"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Talisman"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTalisman"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Thorns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRazorwireLeft"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TitanGoldDuringTP"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldHeart"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tooth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothNecklaceDecal"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshLarge"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TPHealingNova"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlowFlower"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCache"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKey"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCacheVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKeyVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["UtilitySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VoidMegaCrabItem"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMegaCrabItem"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WarCryOnMultiKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPauldron"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WardOnLevel"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarbanner"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BFG"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBFG"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Blackhole"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravCube"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornGhost"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBlunderbuss"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunterConsumed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornUsed"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BurnNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPotion"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Cleanse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaterPack"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CommandMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileRack"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CrippleWard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEffigy"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayNeuralImplant"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathProjectile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathProjectile"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DroneBackup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRadio"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteEarthEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteMendingAntlers"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteFireEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteHauntedEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteStealthCrown"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteIceEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteIceCrown"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLightningEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLunarEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteLunar,Eye"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElitePoisonEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteUrchinCrown"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteVoidEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAffixVoid"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireBallDash"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEgg"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Fruit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFruit"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GainArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElephantFigure"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Gateway"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVase"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldGat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldGat"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GummyClone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGummyClone"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IrradiatingLaser"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIrradiatingLaser"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Jetpack"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBugWings"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LifestealOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLifestealOnHit"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Lightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLightningArmRight"), "Chest", new Vector3(2f, 2f, 2f), 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"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Meteor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMeteor"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Molotov"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMolotov"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MultiShopCard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayExecutiveCard"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["QuestVolatileBattery"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBatteryArray"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Recycle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRecycler"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Saw"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySawmerangFollower"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Scanner"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScanner"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TeamWarCry"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeamWarCry"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tonic"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTonic"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VendingMachine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVendingMachine"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); } } public static class BadguyStates { public static void Init() { Content.AddEntityState(typeof(AirDash)); Content.AddEntityState(typeof(Punch)); Content.AddEntityState(typeof(Kick)); Content.AddEntityState(typeof(Slash)); Content.AddEntityState(typeof(Heavy)); Content.AddEntityState(typeof(DustIntro)); Content.AddEntityState(typeof(Dust)); Content.AddEntityState(typeof(Fafnir)); Content.AddEntityState(typeof(Sidewinder)); Content.AddEntityState(typeof(Gunflame)); Content.AddEntityState(typeof(Break)); Content.AddEntityState(typeof(Bringer)); Content.AddEntityState(typeof(Vortex)); Content.AddEntityState(typeof(Viper)); Content.AddEntityState(typeof(RC)); Content.AddEntityState(typeof(Install)); Content.AddEntityState(typeof(BadguyMainState)); Content.AddEntityState(typeof(BadguyInputMain)); } } public static class BadguyStaticValues { public const float punchCoef = 2f; public const float kickCoef = 2.5f; public const float slashCoef = 3.25f; public const float heavyCoef = 4f; public const float dustCoef = 5.5f; public const float gunflameCoef = 2.25f; public const float dpCoef = 5f; public const float revolverCoef = 3f; public const float knockdownCoef = 2.5f; public const float vortexCoef = 3.5f; public const float vortexImpactCoef = 6f; public const float bringerCoef = 4.25f; public const float fafnirCoef = 10f; public const float sidewinderCoef = 10f; public const float fafnirCleanCoef = 25f; public const int gunFlameCost = 500; public const int revolverCost = 500; public const int bringerCost = 500; public const int vortexCost = 700; public const int viperCost = 750; public const int fafnirCost = 1500; public const int installCost = 5000; public const int romanCost = 5000; public const int flatTensionBuff = 50; public const int tensionPerStock = 500; } public static class BadguyTokens { public static void Init() { AddBadguyTokens(); } public static void AddBadguyTokens() { string text = "HASTEREAPR_BADGUY_"; string text2 = "Sol Badguy is a tough bruiser character who specializes in close range combat." + Environment.NewLine + Environment.NewLine + "< ! > Volcanic Viper!" + Environment.NewLine + Environment.NewLine + "< ! > Volcanic Viper!" + Environment.NewLine + Environment.NewLine + "< ! > Fafnir!" + Environment.NewLine + Environment.NewLine + "< ! > Volcanic Viper!" + Environment.NewLine + Environment.NewLine; string text3 = "..and so he left, searching for a new identity."; string text4 = "..and so he vanished, forever a blank slate."; Language.Add(text + "NAME", "Sol Badguy"); Language.Add(text + "DESCRIPTION", text2); Language.Add(text + "SUBTITLE", "The Flame of Corruption"); Language.Add(text + "LORE", "sample lore"); Language.Add(text + "OUTRO_FLAVOR", text3); Language.Add(text + "OUTRO_FAILURE", text4); Language.Add("KEYWORD_COOLDOWN", "Items affecting Cooldown increase Tension gained."); Language.Add("KEYWORD_SPEED", "Items affecting attack speed instead translate to extra hits on all of The Prototype Gear's abilities."); Language.Add("KEYWORD_BIND", "Grounded P/K GunflameMelee\nAerial P/K Break\nP/S Volcanic Viper\n -> Pressing K during Volcanic Viper will perform a unique followup 'Knockdown'\n -> Pressing H during Volcanic Viper will perform 'Sidewinder'\nGrounded P/H Night Raid Vortex\nK/S Bandit Revolver\n -> Pressing K again during Bandit Revolver will perform a followup kick\nK/H Bandit Bringer\nGrounded S/H Fafnir\nAerial S/H Sidewinder\nP/K/S/H Dragon Install"); Language.Add(text + "MASTERY_SKIN_NAME", "Alternate"); Language.Add(text + "PASSIVE_NAME", "No Mercy"); Language.Add(text + "PASSIVE_DESCRIPTION", "The Prototype Gear's basic abilities have no cooldowns, nor are they affected by attack speed. Hits with The Prototype Gear's abilities build the [Tension] Gauge. Items affecting ability stocks increase the capacity of the Tension Gauge."); Language.Add(text + "PUNCH_NAME", "Punch (P)"); Language.Add(text + "PUNCH_DESC", "Agile." + $"A quick jab that can be used on the move. Deals {200f}% damage and builds a small amount of tension."); Language.Add(text + "KICK_NAME", "Kick (K)"); Language.Add(text + "KICK_DESC", $"A lunging kick that can hit aerial enemies. Deals {250f}% damage and builds a moderate amount of tension."); Language.Add(text + "SLASH_NAME", "Slash (S)"); Language.Add(text + "SLASH_DESC", $"A wide reaching sword swipe in front. Deals {250f}% damage and builds a medium amount of tension."); Language.Add(text + "HEAVY_NAME", "Heavy Slash (HS)"); Language.Add(text + "HEAVY_DESC", $"A medium ranged right hook with sword in hand. {400f}% damage and builds a large amount of Tension."); Language.Add(text + "DUST_NAME", "Dust (D)"); Language.Add(text + "DUST_DESC", $"A short ranged uppercut with sword in hand. {550f}% damage and builds a massive amount of Tension."); Language.Add(text + "RC_NAME", "Roman Cancel"); Language.Add(text + "RC_DESC", "A short duration move that costs 25% tension to cancel out of ANY state."); Language.Add(Tokens.GetAchievementNameToken("HASTEREAPR_BADGUY_masteryAchievement"), "Badguy: Mastery"); Language.Add(Tokens.GetAchievementDescriptionToken("HASTEREAPR_BADGUY_masteryAchievement"), "As Badguy, beat the game or obliterate on Monsoon."); } } public static class BadguyUnlockables { public static UnlockableDef characterUnlockableDef; public static UnlockableDef masterySkinUnlockableDef; public static void Init() { } } } namespace BadguyMod.Survivors.Badguy.SkillStates { public class AirDash : BaseSkillState { public static float duration = 0.2f; public static float initialSpeedCoefficient = 3f; public static float finalSpeedCoefficient = 1.25f; public static float dodgeFOV = DodgeState.dodgeFOV; private float rollSpeed; private Vector3 forwardDirection; private Animator animator; private Vector3 previousPosition; private Vector3 dashVector; private OverlapAttack attack; public override void OnEnter() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: 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_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_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) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); 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; } dashVector = GetDashVector(); 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 = 0f; } Vector3 val2 = (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) ? ((EntityState)this).characterMotor.velocity : Vector3.zero); previousPosition = ((EntityState)this).transform.position - val2; ((EntityState)this).PlayAnimation("FullBody, Override", "AIRDASH", "playback", duration, 0f); if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 0.3f * duration); ((EntityState)this).characterBody.AddTimedBuff(Buffs.Intangible, 0.3f * duration); } } private void RecalculateRollSpeed() { rollSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, ((EntityState)this).fixedAge / duration); } private Vector3 GetDashVector() { //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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0038: 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) Vector3 val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); return ((Vector3)(ref val)).normalized; } public override void FixedUpdate() { //IL_0025: 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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: 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_009e: 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) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00db: 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_00ef: 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) ((EntityState)this).FixedUpdate(); RecalculateRollSpeed(); 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) { Vector3 val2 = normalized * rollSpeed; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 0f); val2 = forwardDirection * num; ((EntityState)this).characterMotor.velocity = val2; } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } 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)3; } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = -1f; } ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } 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 class BaseComboAttack : BaseMeleeAttack { public float interruptStopwatch = 0f; public bool fastInterrupt = false; public static float interruptTimer = 0.12f; public static InterruptPriority baseInterrupt; public static InterruptPriority quickInterrupt; public override void OnEnter() { base.OnEnter(); interruptStopwatch = 0f; } public override void FixedUpdate() { base.FixedUpdate(); interruptStopwatch += Time.deltaTime; } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); interruptStopwatch += interruptTimer; } public void CheckInterruptable() { if (interruptStopwatch >= interruptTimer) { fastInterrupt = true; } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0010: 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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) return fastInterrupt ? quickInterrupt : baseInterrupt; } } public class DustIntro : BaseSkillState { public float initialDuration = 0.05f; public float fullDuration = 0.35f; public override void OnEnter() { ((BaseState)this).OnEnter(); Util.PlaySound(((BaseState)this).isGrounded ? "PlayDust" : "PlayDust", ((EntityState)this).gameObject); ((EntityState)this).characterBody.SetAimTimer(fullDuration); ((EntityState)this).PlayAnimation("FullBody, Override", ((BaseState)this).isGrounded ? "dust_intro" : "J_DUST", "playback", 0.45f, 0f); if (!((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Dust(charged: false)); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge > initialDuration && (!((Component)((EntityState)this).outer).GetComponent().extraSkill4.down || ((ButtonState)(ref ((Component)((EntityState)this).outer).GetComponent().extraSkill4)).justReleased)) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Dust()); } if (((EntityState)this).fixedAge > fullDuration) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Dust(charged: true)); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).GetModelAnimator().SetBool("dustCharged", true); } 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)6; } } public class Dust : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; private bool charged; private int tensionGranted; private float force = 16f; public Dust() { } public Dust(bool charged = false) { this.charged = charged; } public override void OnEnter() { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) force = (charged ? 32 : 12); isAerial = !((BaseState)this).isGrounded; hitboxGroupName = (((BaseState)this).isGrounded ? "DustHitbox" : "J_DustHitbox"); damageType = DamageTypeCombo.op_Implicit((DamageType)(((BaseState)this).isGrounded ? 32 : 0)); damageCoefficient = 5.5f; procCoefficient = 0.7f; pushForce = 0f; bonusForce = (isAerial ? (new Vector3(0f, -1f, 0f) * force) : (new Vector3(0f, 1f, 0f) * force)); baseDuration = ((!((BaseState)this).isGrounded) ? 0.6f : (charged ? 1.8f : 1f)); attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 1f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 4f; hitSoundString = "Play_Backstab"; muzzleString = (((BaseState)this).isGrounded ? "HeavyMuzzle" : ""); tensionGranted = 400; if (charged) { tensionGranted *= 3; } if (charged) { damageCoefficient *= 1.5f; } duration = baseDuration; tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); if (isAerial) { ((EntityState)this).characterMotor.velocity.y *= 0.9f; } OverlapAttack obj = attack; obj.physForceFlags = (PhysForceFlags)(obj.physForceFlags | 0xC); } public override void OnExit() { base.OnExit(); ((EntityState)this).GetModelAnimator().SetBool("dustCharged", false); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (NetworkServer.active) { tensionCtrl.AddTension((((BaseState)this).isGrounded ? ((float)tensionGranted) : ((float)tensionGranted * 0.75f)) + 50f * ((BaseState)this).attackSpeedStat / 8f); } else { tensionCtrl.CmdAddTension((((BaseState)this).isGrounded ? ((float)tensionGranted) : ((float)tensionGranted * 0.75f)) + 50f * ((BaseState)this).attackSpeedStat / 8f); } } public override void FixedUpdate() { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); return; } if (((ButtonState)(ref ((EntityState)this).inputBank.jump)).justReleased && ((BaseState)this).isGrounded) { ((EntityState)this).characterMotor.ApplyForce(Vector3.up * 45f, false, false); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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)6; } } public class Heavy : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; public override void OnEnter() { //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_009a: 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_0071: 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_007c: 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_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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) isAerial = !((BaseState)this).isGrounded; hitboxGroupName = (((BaseState)this).isGrounded ? "HeavyHitbox" : "J_HeavyHitbox"); damageType = DamageTypeCombo.op_Implicit((DamageType)(((BaseState)this).isGrounded ? 32 : 0)); damageCoefficient = 4f; procCoefficient = 0.7f; pushForce = 0f; Vector3 val; if (!isAerial) { Vector3 forward = Vector3.forward; Ray aimRay = ((BaseState)this).GetAimRay(); val = 24f * Vector3.RotateTowards(forward, ((Ray)(ref aimRay)).direction, 360f, 360f); } else { val = Vector3.down * 24f; } bonusForce = val; baseDuration = (((BaseState)this).isGrounded ? 1f : 0.5f); attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 1f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 4f; hitSoundString = "Play_Backstab"; swingEffectPrefab = BadguyAssets.heavySlashEffect; muzzleString = (((BaseState)this).isGrounded ? "HeavyMuzzle" : ""); duration = baseDuration; Util.PlaySound("PlayHeavy", ((EntityState)this).gameObject); ((EntityState)this).characterBody.SetAimTimer(duration); ((EntityState)this).PlayAnimation("FullBody, Override", ((BaseState)this).isGrounded ? "HEAVY" : "J_HEAVY", "playback", duration, 0f); tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); if (isAerial) { ((EntityState)this).characterMotor.velocity.y *= 0.9f; } } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (NetworkServer.active) { tensionCtrl.AddTension((float)(((BaseState)this).isGrounded ? 500 : 300) + 50f * ((BaseState)this).attackSpeedStat / 8000f); } else { tensionCtrl.CmdAddTension((float)(((BaseState)this).isGrounded ? 500 : 300) + 50f * ((BaseState)this).attackSpeedStat / 8000f); } } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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)5; } } public class Kick : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; public override void OnEnter() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0071: 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_007c: 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_008e: 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_0060: 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_009d: Unknown result type (might be due to invalid IL or missing references) isAerial = !((BaseState)this).isGrounded; hitboxGroupName = (((BaseState)this).isGrounded ? "KickHitbox" : "J_KickHitbox"); damageType = DamageTypeCombo.op_Implicit((DamageType)0); damageCoefficient = 2.5f; procCoefficient = 0.7f; pushForce = 0f; Vector3 val; if (!isAerial) { val = Vector3.up * 4f; } else { Vector3 forward = Vector3.forward; Ray aimRay = ((BaseState)this).GetAimRay(); val = Vector3.RotateTowards(forward, ((Ray)(ref aimRay)).direction, 360f, 360f) * 12f; } bonusForce = val; baseDuration = (((BaseState)this).isGrounded ? 0.55f : 0.44f); attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 1f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 3f; hitSoundString = "Play_Backstab"; swingEffectPrefab = BadguyAssets.kickEffect; muzzleString = "KickMuzzle"; duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); ((EntityState)this).PlayAnimation("FullBody, Override", ((BaseState)this).isGrounded ? "KICK" : "J_KICK", "playback", duration, 0f); Util.PlaySound("PlayPunchKick", ((EntityState)this).gameObject); tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); if (isAerial) { ((EntityState)this).characterMotor.velocity.y *= 0.9f; } } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (NetworkServer.active) { tensionCtrl.AddTension(150f + 50f * ((BaseState)this).attackSpeedStat); } else { tensionCtrl.CmdAddTension(150f + 50f * ((BaseState)this).attackSpeedStat); } } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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)3; } } public class Punch : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; public override void OnEnter() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_007a: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_0089: Unknown result type (might be due to invalid IL or missing references) isAerial = !((BaseState)this).isGrounded; hitboxGroupName = (((BaseState)this).isGrounded ? "PunchHitbox" : "J_PunchHitbox"); damageType = DamageTypeCombo.op_Implicit((DamageType)0); damageCoefficient = 2f; procCoefficient = 0.7f; pushForce = 0f; Vector3 val; if (!isAerial) { Ray aimRay = ((BaseState)this).GetAimRay(); val = ((Ray)(ref aimRay)).direction * 2f; } else { val = Vector3.down * 3f; } bonusForce = val; baseDuration = (((BaseState)this).isGrounded ? 0.39f : 0.39f); attackStartPercentTime = 0f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 0.8f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 1f; hitSoundString = "Play_Backstab"; Util.PlaySound("PlayPunchKick", ((EntityState)this).gameObject); duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); ((EntityState)this).PlayAnimation("FullBody, Override", ((BaseState)this).isGrounded ? "PUNCH" : "J_PUNCH", "playback", duration, 0f); tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); if (isAerial) { ((EntityState)this).characterMotor.velocity.y *= 0.9f; } } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (NetworkServer.active) { tensionCtrl.AddTension((float)(((BaseState)this).isGrounded ? 50 : 25) + 50f * ((BaseState)this).attackSpeedStat); } else { tensionCtrl.CmdAddTension((float)(((BaseState)this).isGrounded ? 50 : 25) + 50f * ((BaseState)this).attackSpeedStat); } } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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 Slash : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; public override void OnEnter() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_008e: 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_0060: 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_006e: 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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) isAerial = !((BaseState)this).isGrounded; hitboxGroupName = (((BaseState)this).isGrounded ? "SlashHitbox" : "J_SlashHitbox"); damageType = DamageTypeCombo.op_Implicit((DamageType)0); damageCoefficient = 3.25f; procCoefficient = 0.7f; pushForce = 0f; Vector3 val; if (!isAerial) { Vector3 forward = Vector3.forward; Ray aimRay = ((BaseState)this).GetAimRay(); val = Vector3.RotateTowards(forward, ((Ray)(ref aimRay)).direction, 360f, 360f) * -4f; } else { val = Vector3.down * 8f; } bonusForce = val; baseDuration = (((BaseState)this).isGrounded ? 1.25f : 0.48f); attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 1f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 4f; hitSoundString = "Play_Backstab"; swingEffectPrefab = BadguyAssets.slashEffect; muzzleString = (((BaseState)this).isGrounded ? "SlashMuzzle" : "J_SlashMuzzle"); duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlaySound("PlaySlash", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("FullBody, Override", ((BaseState)this).isGrounded ? "SLASH" : "J_SLASH", "playback", duration, 0f); tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); if (isAerial) { ((EntityState)this).characterMotor.velocity.y *= 0.9f; } } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (NetworkServer.active) { tensionCtrl.AddTension(250f + 50f * ((BaseState)this).attackSpeedStat); } else { tensionCtrl.CmdAddTension(250f + 50f * ((BaseState)this).attackSpeedStat); } } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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)4; } } public class Break : BaseMeleeAttack { private float launchSpeed = 64f; private Vector3 previousPosition; public override void OnEnter() { //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_003e: 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_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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_015f: Unknown result type (might be due to invalid IL or missing references) hitboxGroupName = "BreakHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 5f; procCoefficient = 1f; pushForce = -500f; bonusForce = Vector3.zero; baseDuration = 99999f; attackStartPercentTime = 0f; attackEndPercentTime = 1f; earlyExitPercentTime = 1f; hitStopDuration = 0f; attackRecoil = 0f; hitHopVelocity = 0f; hitSoundString = "Play_Backstab"; duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); base.OnEnter(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { Vector3 velocity = Vector3.down * launchSpeed; ((EntityState)this).characterMotor.velocity = velocity; } if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-750f); } else { ((EntityState)this).GetComponent().CmdAddTension(-750f); } ((EntityState)this).PlayAnimation("FullBody, Override", "BREAK", "playback", duration, 0f); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); } public override void OnExit() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_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_0061: 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_0079: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0089: 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_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_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_00ef: Expected O, but got Unknown //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011e: 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_012c: 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_0157: 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) //IL_0164: Expected O, but got Unknown //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0179: 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) base.OnExit(); BlastAttack val = new BlastAttack { baseDamage = 2f * damageCoefficient * (launchSpeed / 32f), radius = 8f * (launchSpeed / 32f), baseForce = -10000f, crit = true, procCoefficient = 1f, attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damageType = DamageTypeCombo.op_Implicit((DamageType)32), damageColorIndex = (DamageColorIndex)11, teamIndex = ((EntityState)this).GetComponent().teamIndex, falloffModel = (FalloffModel)2, position = ((EntityState)this).characterBody.footPosition }; val.Fire(); EffectData val2 = new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 8f * (launchSpeed / 48f) }; EffectManager.SpawnEffect(BadguyAssets.explosion, val2, true); ShakeEmitter val3 = new ShakeEmitter { shakeOnStart = true, duration = 0.5f, radius = 200f, startDelay = 0f, wave = new Wave { amplitude = 2f, frequency = 40f, cycleOffset = 0f }, amplitudeTimeDecay = true }; val3.Start(); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } public override void FixedUpdate() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: 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_0071: 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_007d: 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) base.FixedUpdate(); launchSpeed += 1f; 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) { Vector3 velocity = Vector3.down * launchSpeed; ((EntityState)this).characterMotor.velocity = velocity; } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).isAuthority && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Bringer : BaseMeleeAttack { private float initialXSpeed = 1f; private float finalSpeed = 0f; private float launchSpeed = 32f; private float pauseTime = 0.5f; private float slideSpeed; private Vector3 forwardDirection; private Vector3 previousPosition; private float gravScale; private Transform fist; public override void OnEnter() { //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_003e: 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_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_0129: 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_012e: 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_0136: 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_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0208: 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_0216: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0258: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) hitboxGroupName = "ViperHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 5f; procCoefficient = 1f; pushForce = 0f; bonusForce = Vector3.zero; baseDuration = 1.25f; attackStartPercentTime = 0.4f; attackEndPercentTime = 1f; earlyExitPercentTime = 1f; hitStopDuration = 0f; attackRecoil = 0f; hitHopVelocity = 0f; hitSoundString = "Play_Backstab"; duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlaySound("PlayBringer", ((EntityState)this).gameObject); base.OnEnter(); Vector3 val; if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } RecalcSpeed(); fist = ((EntityState)this).GetModelChildLocator().FindChild("FireHand"); Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; gravScale = ((EntityState)this).characterMotor.gravityScale; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.2f); direction.z *= 0f; direction.x *= 0f; Vector3 val2 = ((Vector3)(ref direction)).normalized * ((BaseState)this).moveSpeedStat; val = new Vector3(forwardDirection.x, 0f, forwardDirection.z); Vector3 val3 = ((Vector3)(ref val)).normalized * slideSpeed; Vector3 val4 = Vector3.up * launchSpeed; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.gravityScale *= 0f; ((EntityState)this).characterMotor.velocity.y = val4.y + val2.y; } if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-500f); } else { ((EntityState)this).GetComponent().CmdAddTension(-500f); } ((EntityState)this).PlayAnimation("FullBody, Override", "BRINGER", "playback", duration, 0f); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); } private void RecalcSpeed() { slideSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialXSpeed, finalSpeed, ((EntityState)this).fixedAge); } public override void OnExit() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) base.OnExit(); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } public override void FixedUpdate() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0014: 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_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //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_007a: 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_008f: 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_00a0: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); EffectData val = new EffectData { origin = fist.position, scale = 1f, rotation = Random.rotation }; EffectManager.SpawnEffect(BadguyAssets.flamingFist, val, true); if (((EntityState)this).fixedAge >= pauseTime) { ((EntityState)this).characterMotor.gravityScale = gravScale; ((EntityState)this).characterMotor.velocity = Vector3.zero; Vector3 val2 = Vector3.down * launchSpeed * 2f; ((EntityState)this).characterMotor.velocity.y = val2.y; } RecalcSpeed(); if ((((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) || (((EntityState)this).fixedAge >= duration * pauseTime && ((BaseState)this).isGrounded)) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Fafnir : BaseMeleeAttack { private float initialSpeed = 2.25f; private float finalSpeed = 0f; private float slideSpeed; private Vector3 forwardDirection; private Vector3 previousPosition; private OverlapAttack cleanHit; private Transform fist; public override void OnEnter() { //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_0054: 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_0059: 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_0061: 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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_00ba: Unknown result type (might be due to invalid IL or missing references) 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; } RecalcSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity.y = 0f; ((EntityState)this).characterMotor.velocity = forwardDirection * slideSpeed; } CreateCleanhitAttack(); hitboxGroupName = "FafnirHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 10f; procCoefficient = 1f; pushForce = -500f; bonusForce = Vector3.zero; baseDuration = 0.85f; attackStartPercentTime = 0f; attackEndPercentTime = 0.9f; earlyExitPercentTime = 1f; hitStopDuration = 0.8f; attackRecoil = 0.25f; hitHopVelocity = 0f; hitSoundString = "Play_Backstab"; hitEffectPrefab = BadguyAssets.explosion; duration = baseDuration; fist = ((EntityState)this).GetModelChildLocator().FindChild("FireHand"); ((EntityState)this).characterBody.SetAimTimer(0.01f); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-1500f); } else { ((EntityState)this).GetComponent().CmdAddTension(-1500f); } ((EntityState)this).PlayAnimation("FullBody, Override", "FAFNIR", "playback", duration, 0f); Util.PlaySound("PlayFafnir", ((EntityState)this).gameObject); base.OnEnter(); } private void CreateCleanhitAttack() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) cleanHit = new OverlapAttack(); cleanHit.damageType = damageType; cleanHit.attacker = ((EntityState)this).gameObject; cleanHit.inflictor = ((EntityState)this).gameObject; cleanHit.teamIndex = ((BaseState)this).GetTeam(); cleanHit.damage = 25f * ((BaseState)this).damageStat; cleanHit.procCoefficient = procCoefficient; cleanHit.hitEffectPrefab = hitEffectPrefab; OverlapAttack obj = cleanHit; Ray aimRay = ((BaseState)this).GetAimRay(); obj.forceVector = ((Ray)(ref aimRay)).direction; cleanHit.pushAwayForce = -1500f; cleanHit.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("FafnirCleanHitbox"); cleanHit.isCrit = ((BaseState)this).RollCrit(); cleanHit.impactSound = impactSound; cleanHit.hitEffectPrefab = BadguyAssets.explosion; } protected override void OnHitEnemyAuthority() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_001f: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005f: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //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_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0085: 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_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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_009e: Expected O, but got Unknown //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Expected O, but got Unknown base.OnHitEnemyAuthority(); BlastAttack val = new BlastAttack { baseDamage = 25f * ((BaseState)this).damageStat, radius = 8f, baseForce = -10000f, crit = true, procCoefficient = 1f, attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damageType = DamageTypeCombo.op_Implicit((DamageType)32), damageColorIndex = (DamageColorIndex)11, teamIndex = ((EntityState)this).GetComponent().teamIndex, falloffModel = (FalloffModel)2, position = fist.position }; val.Fire(); EffectData val2 = new EffectData { origin = fist.position, scale = 8f }; EffectManager.SpawnEffect(BadguyAssets.explosion, val2, true); } private void RecalcSpeed() { slideSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeed, finalSpeed, ((EntityState)this).fixedAge / duration); } public override void OnExit() { base.OnExit(); } public override void FixedUpdate() { //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_003f: 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_0055: 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_0061: Expected O, but got Unknown //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_011f: 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_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: 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_00d4: 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) //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_010b: 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) base.FixedUpdate(); if (((EntityState)this).fixedAge >= duration * attackEndPercentTime) { cleanHit.Fire((List)null); } EffectData val = new EffectData { origin = fist.position, scale = 1f, rotation = Random.rotation }; EffectManager.SpawnEffect(BadguyAssets.flamingFist, val, true); RecalcSpeed(); Vector3 val2 = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val2)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero) { Vector3 val3 = normalized * slideSpeed; float num = Mathf.Max(Vector3.Dot(val3, forwardDirection), 0f); val3 = forwardDirection * num; val3.y = 0f; ((EntityState)this).characterMotor.velocity = val3; } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Gunflame : BaseSkillState { private float duration = 0.54f; private FireProjectileInfo fireInfo; private Ray aimRay; private bool fireA = false; private bool fireB = false; private bool fireC = false; public override void OnEnter() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0088: 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_00cd: 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_00eb: 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_011c: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Util.PlaySound("PlayGunflame", ((EntityState)this).gameObject); ((EntityState)this).characterBody.SetAimTimer(duration); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-500f); } else { ((EntityState)this).GetComponent().CmdAddTension(-500f); } ((EntityState)this).PlayAnimation("FullBody, Override", "GUNFLAME", "playback", duration, 0f); aimRay = ((BaseState)this).GetAimRay(); FireProjectileInfo val = new FireProjectileInfo { owner = ((EntityState)this).gameObject, damage = 2.25f, damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)0), force = 0f, position = ((EntityState)this).transform.position - new Vector3(0f, 0.25f, 0f), crit = ((EntityState)this).characterBody.RollCrit(), projectilePrefab = BadguyAssets.gunflameProj }; ((FireProjectileInfo)(ref val)).speedOverride = 0f; fireInfo = val; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!fireA) { FireGunflameA(); } if (!fireB && ((EntityState)this).fixedAge >= duration * 0.4f) { FireGunflameB(); } if (!fireC && ((EntityState)this).fixedAge >= duration * 0.8f) { FireGunflameC(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void FireGunflameA() { //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_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_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_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //IL_00a1: Unknown result type (might be due to invalid IL or missing references) aimRay = ((BaseState)this).GetAimRay(); fireA = true; fireInfo.damage = 3.7124999f; Vector3 direction = ((Ray)(ref aimRay)).direction; direction.y = 0f; Vector3.Normalize(direction); direction *= 2.25f; fireInfo.position = ((Ray)(ref aimRay)).origin + direction; EffectData val = new EffectData { origin = fireInfo.position, scale = 1f }; EffectManager.SpawnEffect(BadguyAssets.gunflameGhost, val, true); ProjectileManager.instance.FireProjectile(fireInfo); } private void FireGunflameB() { //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_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_004c: 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_0053: 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_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_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Expected O, but got Unknown //IL_00b1: Unknown result type (might be due to invalid IL or missing references) aimRay = ((BaseState)this).GetAimRay(); fireB = true; fireInfo.damage = 2.5874999f; fireInfo.projectilePrefab = BadguyAssets.gunflameProjB; Vector3 direction = ((Ray)(ref aimRay)).direction; direction.y = 0f; Vector3.Normalize(direction); direction *= 8f; fireInfo.position = ((Ray)(ref aimRay)).origin + direction; EffectData val = new EffectData { origin = fireInfo.position, scale = 1.5f }; EffectManager.SpawnEffect(BadguyAssets.gunflameGhost, val, true); ProjectileManager.instance.FireProjectile(fireInfo); } private void FireGunflameC() { //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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: 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_0067: 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_0073: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00cb: Unknown result type (might be due to invalid IL or missing references) aimRay = ((BaseState)this).GetAimRay(); fireC = true; fireInfo.damage = 1.9125f; fireInfo.projectilePrefab = BadguyAssets.gunflameProjC; fireInfo.damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)128); Vector3 direction = ((Ray)(ref aimRay)).direction; direction.y = 0f; Vector3.Normalize(direction); direction *= 16f; fireInfo.position = ((Ray)(ref aimRay)).origin + direction; EffectData val = new EffectData { origin = fireInfo.position, scale = 2.5f }; EffectManager.SpawnEffect(BadguyAssets.gunflameGhost, val, true); ProjectileManager.instance.FireProjectile(fireInfo); } public override void OnExit() { ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Install : BaseSkillState { private float duration = 0.65f; public override void OnEnter() { //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_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007c: 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_008e: 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_00a6: 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) //IL_00b3: 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_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_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_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Expected O, but got Unknown //IL_0152: 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_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_0175: Expected O, but got Unknown //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-5000f); } else { ((EntityState)this).GetComponent().CmdAddTension(-5000f); } ((EntityState)this).PlayAnimation("FullBody, Override", "INSTALL", "playback", duration, 0f); BlastAttack val = new BlastAttack { baseDamage = 20f, radius = 10f, baseForce = 500f, crit = true, procCoefficient = 1f, attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damageType = DamageTypeCombo.op_Implicit((DamageType)32), damageColorIndex = (DamageColorIndex)8, teamIndex = ((EntityState)this).GetComponent().teamIndex, falloffModel = (FalloffModel)0, position = ((EntityState)this).transform.position }; ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); ((Component)modelChildLocator.FindChild("DragonBody")).gameObject.SetActive(true); ((Component)modelChildLocator.FindChild("DragonHead")).gameObject.SetActive(true); ((Component)modelChildLocator.FindChild("SolBody")).gameObject.SetActive(false); Util.PlaySound("PlayInstall", ((EntityState)this).gameObject); Util.PlaySound("PlayRTF", ((EntityState)this).gameObject); EffectData val2 = new EffectData { origin = ((EntityState)this).characterBody.footPosition, scale = 2f }; ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, duration); EffectManager.SpawnEffect(BadguyAssets.installBurst, val2, true); val2.scale = 3f; val2.origin = ((EntityState)this).characterBody.corePosition; EffectManager.SpawnEffect(BadguyAssets.explosion, val2, true); val.Fire(); } public override void FixedUpdate() { //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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterMotor.velocity = Vector3.zero; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(BadguyBuffs.installBuff, 30f + duration); ((EntityState)this).characterBody.AddTimedBuff(BadguyBuffs.uninstallBuff, 90f + duration); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Knockdown : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; public override void OnEnter() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) isAerial = !((BaseState)this).isGrounded; hitboxGroupName = "J_SlashHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 2.5f; procCoefficient = 0.7f; pushForce = 500f; bonusForce = Vector3.down; baseDuration = 0.22f; attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 0.8f; hitStopDuration = 0.15f; attackRecoil = 0.25f; hitHopVelocity = 4f; hitSoundString = "Play_Backstab"; swingEffectPrefab = BadguyAssets.heavySlashEffect; muzzleString = ""; duration = baseDuration; Util.PlaySound("PlayKnockdown", ((EntityState)this).gameObject); ((EntityState)this).characterBody.SetAimTimer(duration); ((EntityState)this).PlayAnimation("FullBody, Override", "REVOLVER_OUT", "playback", duration, 0f); tensionCtrl = ((EntityState)this).GetComponent(); base.OnEnter(); } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } internal class RC : BaseState { private float duration = 0.35f; private float cancelTime = 0.1f; private InterruptPriority currentPrio = (InterruptPriority)0; private EntityState newState; public override void OnEnter() { ((BaseState)this).OnEnter(); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-5000f); } else { ((EntityState)this).GetComponent().CmdAddTension(-5000f); } newState = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Body").state; ((EntityState)this).PlayAnimation("FullBody, Override", "ROMAN", "playback", duration, 0f); } public override void FixedUpdate() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= cancelTime) { currentPrio = (InterruptPriority)9; } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetState(newState); } } public override InterruptPriority GetMinimumInterruptPriority() { //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) return currentPrio; } } public class Revolver : BaseMeleeAttack { private float initialSpeed = 5f; private float finalSpeed = 2f; private bool hasKicked = false; private float slideSpeed; private float launchSpeed = 16f; private Vector3 forwardDirection; private Vector3 previousPosition; private float spinFire = 0.45f; private OverlapAttack impactAttack; private bool endEarly = false; private float earlyEnd = 0f; public override void OnEnter() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: 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_0119: 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_011e: 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) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: 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_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) hitboxGroupName = "ViperHitbox"; CreateImpactAttack(); damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 3f; procCoefficient = 1f; pushForce = -500f; bonusForce = Vector3.zero; baseDuration = 0.5f; attackStartPercentTime = 0f; attackEndPercentTime = 1f; earlyExitPercentTime = 1f; hitStopDuration = 0.1f; attackRecoil = 0.25f; hitHopVelocity = 5f; hitSoundString = "Play_Backstab"; Util.PlaySound("PlayBandit", ((EntityState)this).gameObject); base.OnEnter(); hasKicked = false; Vector3 val; if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } RecalcSpeed(); Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { if (((BaseState)this).isGrounded) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.2f); } direction.z *= 0f; direction.x *= 0f; Vector3 val2 = ((Vector3)(ref direction)).normalized * ((BaseState)this).moveSpeedStat; Vector3 val3 = Vector3.up * launchSpeed; val = new Vector3(forwardDirection.x, 0f, forwardDirection.z); Vector3 val4 = ((Vector3)(ref val)).normalized * slideSpeed; ((EntityState)this).characterMotor.velocity = val4 + val3 + val2; } duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(duration); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-700f); } else { ((EntityState)this).GetComponent().CmdAddTension(-700f); } ((EntityState)this).PlayAnimation("FullBody, Override", "REVOLVER_IN", "playback", duration, 0f); ((EntityState)this).GetModelAnimator().SetBool("revolverEnd", false); } private void CreateImpactAttack() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00d5: Unknown result type (might be due to invalid IL or missing references) impactAttack = new OverlapAttack(); impactAttack.damageType = damageType; impactAttack.attacker = ((EntityState)this).gameObject; impactAttack.inflictor = ((EntityState)this).gameObject; impactAttack.teamIndex = ((BaseState)this).GetTeam(); impactAttack.damage = 6f; impactAttack.procCoefficient = procCoefficient; impactAttack.hitEffectPrefab = hitEffectPrefab; impactAttack.forceVector = Vector3.downVector; impactAttack.pushAwayForce = -500f; impactAttack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("KickHitbox"); impactAttack.isCrit = ((BaseState)this).RollCrit(); impactAttack.impactSound = impactSound; } private void RecalcSpeed() { slideSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeed, finalSpeed, ((EntityState)this).fixedAge / duration); } public override void OnExit() { base.OnExit(); } public override void FixedUpdate() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: 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) //IL_0048: 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_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00af: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); RecalcSpeed(); 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) { Vector3 val2 = normalized * slideSpeed; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 0f); val2 = forwardDirection * num; ((EntityState)this).characterMotor.velocity.x = val2.x; ((EntityState)this).characterMotor.velocity.z = val2.z; } previousPosition = ((EntityState)this).transform.position; if (stopwatch >= spinFire || (((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed && !endEarly)) { Util.PlaySound("PlayRevolver", ((EntityState)this).gameObject); impactAttack.Fire((List)null); ((EntityState)this).GetModelAnimator().SetBool("revolverEnd", true); endEarly = true; earlyEnd = stopwatch; ((EntityState)this).outer.SetNextStateToMain(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Sidewinder : BaseMeleeAttack { private bool isAerial = false; private BadguyTensionController tensionCtrl; private bool consume = true; public Sidewinder() { } public Sidewinder(bool consume = true) { this.consume = consume; } public override void OnEnter() { //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_003e: 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) hitboxGroupName = "J_SlashHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 10f; procCoefficient = 0.7f; pushForce = 150f; bonusForce = Vector3.down; baseDuration = (((BaseState)this).isGrounded ? 1f : 0.23f); attackStartPercentTime = 0.2f; attackEndPercentTime = 0.5f; earlyExitPercentTime = 0.8f; hitStopDuration = 0.15f; attackRecoil = 0.25f; hitHopVelocity = 4f; hitSoundString = "Play_Backstab"; swingEffectPrefab = BadguyAssets.heavySlashEffect; muzzleString = ""; duration = baseDuration; Util.PlaySound("PlaySidewinder", ((EntityState)this).gameObject); ((EntityState)this).characterBody.SetAimTimer(duration); ((EntityState)this).PlayAnimation("FullBody, Override", "REVOLVER_OUT", "playback", duration, 0f); tensionCtrl = ((EntityState)this).GetComponent(); if (consume && NetworkServer.active) { tensionCtrl.AddTension(-1500f); } else if (consume && !NetworkServer.active) { tensionCtrl.CmdAddTension(-1500f); } base.OnEnter(); } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); } public override void FixedUpdate() { base.FixedUpdate(); if (isAerial && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Viper : BaseMeleeAttack { private float initialXSpeed = 2f; private float finalSpeed = 1f; private float launchSpeed = 36f; private float slideSpeed; private Vector3 forwardDirection; private Vector3 previousPosition; private Transform fist; public int initialLayer; private HurtBoxGroup hurtboxGroup; public override void OnEnter() { //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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: 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_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_0340: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0354: Unknown result type (might be due to invalid IL or missing references) hitboxGroupName = "ViperHitbox"; damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 5f; procCoefficient = 1f; pushForce = 0f; bonusForce = new Vector3(0f, 24f, 0f); baseDuration = 0.6f; attackStartPercentTime = 0f; attackEndPercentTime = 1f; earlyExitPercentTime = 1f; hitStopDuration = 0.4f; attackRecoil = 0f; hitHopVelocity = 0f; hitSoundString = "Play_Backstab"; Util.PlaySound("PlayViper", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelTransform())) { hurtboxGroup = ((Component)((EntityState)this).GetModelTransform()).GetComponent(); } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup obj = hurtboxGroup; obj.hurtBoxesDeactivatorCounter += 1; } duration = baseDuration; ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, duration); ((EntityState)this).characterBody.SetAimTimer(duration); base.OnEnter(); Vector3 val; if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } RecalcSpeed(); Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; initialLayer = ((EntityState)this).gameObject.layer; ((EntityState)this).gameObject.layer = LayerIndex.fakeActor.intVal; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.2f); direction.z *= 0f; direction.x *= 0f; Vector3 val2 = ((Vector3)(ref direction)).normalized * ((BaseState)this).moveSpeedStat; val = new Vector3(forwardDirection.x, 0f, forwardDirection.z); Vector3 val3 = ((Vector3)(ref val)).normalized * slideSpeed; Vector3 val4 = Vector3.up * launchSpeed; ((EntityState)this).characterMotor.velocity = val3 + val4 + val2; } if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-750f); } else { ((EntityState)this).GetComponent().CmdAddTension(-750f); } ((EntityState)this).PlayAnimation("FullBody, Override", "DP", "playback", duration, 0f); fist = ((EntityState)this).GetModelChildLocator().FindChild("FireHand"); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); OverlapAttack obj2 = attack; obj2.physForceFlags = (PhysForceFlags)(obj2.physForceFlags | 0xC); } private void RecalcSpeed() { slideSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialXSpeed, finalSpeed, ((EntityState)this).fixedAge / duration); } public override void OnExit() { //IL_0032: 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) base.OnExit(); ((EntityState)this).gameObject.layer = initialLayer; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } public override void FixedUpdate() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0014: 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_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0050: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0083: 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_0102: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: 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_00ee: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); EffectData val = new EffectData { origin = fist.position, scale = 1f, rotation = Random.rotation }; EffectManager.SpawnEffect(BadguyAssets.flamingFist, val, true); RecalcSpeed(); Vector3 val2 = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val2)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero) { Vector3 val3 = normalized * slideSpeed; float num = Mathf.Max(Vector3.Dot(val3, forwardDirection), 0f); val3 = forwardDirection * num; ((EntityState)this).characterMotor.velocity.x = val3.x; ((EntityState)this).characterMotor.velocity.z = val3.z; } previousPosition = ((EntityState)this).transform.position; if (((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Knockdown()); } else if (((ButtonState)(ref ((EntityState)this).inputBank.skill4)).justPressed && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Sidewinder(consume: false)); } else if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Vortex : BaseMeleeAttack { private float initialSpeed = 4f; private float finalSpeed = 0f; private float slideSpeed; private Vector3 forwardDirection; private Vector3 previousPosition; private float vortexFirePerc = 0.6f; private OverlapAttack impactAttack; private bool impacted = false; private float bombTimer = 0.1f; private float bombStopwatch = 0f; private bool spawnedPillar = false; public override void OnEnter() { //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_0054: 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_0059: 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_0061: 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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_00ba: Unknown result type (might be due to invalid IL or missing references) 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; } RecalcSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity.y = 0f; ((EntityState)this).characterMotor.velocity = forwardDirection * slideSpeed; } hitboxGroupName = "VortexHitbox"; CreateImpactAttack(); damageType = DamageTypeCombo.op_Implicit((DamageType)128); damageCoefficient = 3.5f; procCoefficient = 1f; pushForce = -500f; bonusForce = Vector3.zero; baseDuration = 1f; attackStartPercentTime = 0f; attackEndPercentTime = 1f; earlyExitPercentTime = 1f; hitStopDuration = 0.01f; attackRecoil = 0.25f; hitHopVelocity = 0f; hitSoundString = "Play_Backstab"; duration = baseDuration; impacted = false; ((EntityState)this).characterBody.SetAimTimer(duration); if (NetworkServer.active) { ((EntityState)this).GetComponent().AddTension(-700f); } else { ((EntityState)this).GetComponent().CmdAddTension(-700f); } ((EntityState)this).PlayAnimation("FullBody, Override", "VORTEX", "playback", duration, 0f); ((EntityState)this).GetModelAnimator().SetBool("vortexEnd", false); Util.PlaySound("PlayVortex", ((EntityState)this).gameObject); base.OnEnter(); } private void CreateImpactAttack() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00d5: Unknown result type (might be due to invalid IL or missing references) impactAttack = new OverlapAttack(); impactAttack.damageType = damageType; impactAttack.attacker = ((EntityState)this).gameObject; impactAttack.inflictor = ((EntityState)this).gameObject; impactAttack.teamIndex = ((BaseState)this).GetTeam(); impactAttack.damage = 6f; impactAttack.procCoefficient = procCoefficient; impactAttack.hitEffectPrefab = hitEffectPrefab; impactAttack.forceVector = Vector3.upVector; impactAttack.pushAwayForce = 1500f; impactAttack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("VortexImpactHitbox"); impactAttack.isCrit = ((BaseState)this).RollCrit(); impactAttack.impactSound = impactSound; } private void RecalcSpeed() { slideSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeed, finalSpeed, ((EntityState)this).fixedAge / duration * vortexFirePerc); } public override void OnExit() { base.OnExit(); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); if (stopwatch <= duration * vortexFirePerc) { impacted = true; stopwatch = duration * vortexFirePerc; } slideSpeed = 0f; } public override void FixedUpdate() { //IL_0095: 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_00a5: 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) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005b: 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_0072: Expected O, but got Unknown //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: 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_014f: 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_00e5: 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_00ec: 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_0106: 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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_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_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: 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_01a7: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Expected O, but got Unknown base.FixedUpdate(); if (!impacted) { RecalcSpeed(); } bombStopwatch += Time.deltaTime; if (bombStopwatch >= bombTimer) { bombStopwatch = 0f; EffectData val = new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 1f }; if (!spawnedPillar) { EffectManager.SpawnEffect(BadguyAssets.explosion, val, true); } } Vector3 val2 = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val2)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero) { Vector3 val3 = normalized * slideSpeed; float num = Mathf.Max(Vector3.Dot(val3, forwardDirection), 0f); val3 = forwardDirection * num; ((EntityState)this).characterMotor.velocity.x = val3.x; ((EntityState)this).characterMotor.velocity.z = val3.z; } previousPosition = ((EntityState)this).transform.position; if (stopwatch >= duration * vortexFirePerc) { impactAttack.Fire((List)null); ((EntityState)this).characterMotor.velocity = Vector3.zero; EffectData val4 = new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = 2f }; if (!spawnedPillar) { EffectManager.SpawnEffect(BadguyAssets.vortexPillar, val4, true); spawnedPillar = true; } ((EntityState)this).GetModelAnimator().SetBool("vortexEnd", true); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } } namespace BadguyMod.Survivors.Badguy.Components { public class BadguyCSS : MonoBehaviour { private void OnEnable() { ((Component)this).GetComponent().SetInteger("RandomSelection", Random.RandomRangeInt(1, 101)); } } public class BadguyInputMain : GenericCharacterMain { private float leniency = BadguyConfig.inputLeniency.Value; private float moveHoldTimer = 0.15f; private float moveHoldWatch = 0f; private float airCount = BadguyConfig.airdashTime.Value; private float collectionTimer = BadguyConfig.inputLeniency.Value; private float collectionWatch = 0f; private BadguyTensionController tensionController; private float jumpTimer = 0f; private GenericSkill airDash; private GenericSkill gunFlame; private GenericSkill j_break; private GenericSkill revolver; private GenericSkill bringer; private GenericSkill vortex; private GenericSkill viper; private GenericSkill fafnir; private GenericSkill sidewinder; private GenericSkill install; private GenericSkill roman; private const BadguyInputType INPUT_GUNFLAME = BadguyInputType.Punch | BadguyInputType.Kick; private const BadguyInputType INPUT_REVOLVER = BadguyInputType.Kick | BadguyInputType.Slash; private const BadguyInputType INPUT_BRINGER = BadguyInputType.Kick | BadguyInputType.Heavy; private const BadguyInputType INPUT_VORTEX = BadguyInputType.Punch | BadguyInputType.Heavy; private const BadguyInputType INPUT_VIPER = BadguyInputType.Punch | BadguyInputType.Slash; private const BadguyInputType INPUT_FAFNIR = BadguyInputType.Slash | BadguyInputType.Heavy; private const BadguyInputType INPUT_INSTALL = BadguyInputType.Punch | BadguyInputType.Kick | BadguyInputType.Slash | BadguyInputType.Heavy; private GenericSkill desiredMove; private ChildLocator child; private ExtraInputBankTest extraBank; private ExtraSkillLocator extraLocator; public List inputQueue; public List bitwiseQueue; public const int BUFFER_LENGTH = 16; public bool justGrounded; public BadguyMovePriority currentPriority; private BadguyInputType constructedInput; private bool executeMove; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); tensionController = ((EntityState)this).GetComponent(); airDash = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_AIRDASH"); gunFlame = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_GUNFLAME"); j_break = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_BREAK"); bringer = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_BRINGER"); revolver = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_REVOLVER"); fafnir = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_FAFNIR"); sidewinder = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_SIDEWINDER"); vortex = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_VORTEX"); viper = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_VIPER"); install = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_INSTALL"); roman = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_ROMAN"); child = ((EntityState)this).GetModelChildLocator(); extraBank = ((Component)((EntityState)this).outer).GetComponent(); extraLocator = ((Component)((EntityState)this).outer).GetComponent(); currentPriority = BadguyMovePriority.None; desiredMove = null; executeMove = false; inputQueue = new List(); bitwiseQueue = new List(); justGrounded = ((BaseState)this).isGrounded; ((Component)child.FindChild("DragonBody")).gameObject.SetActive(false); ((Component)child.FindChild("DragonHead")).gameObject.SetActive(false); if (((EntityState)this).isAuthority) { tensionController.AddTension(2000f); } } public override void Update() { ((GenericCharacterMain)this).Update(); GatherCombo(); } public override void FixedUpdate() { collectionWatch += Time.deltaTime; if (collectionWatch >= collectionTimer) { collectionWatch = 0f; AddInputs(); } BaseUpdate(); ((GenericCharacterMain)this).GatherInputs(); ((GenericCharacterMain)this).HandleMovements(); ActInputs(); if (!((EntityState)this).characterBody.HasBuff(BadguyBuffs.installBuff) && ((EntityState)this).characterBody.HasBuff(BadguyBuffs.uninstallBuff)) { ((Component)child.FindChild("DragonBody")).gameObject.SetActive(false); ((Component)child.FindChild("DragonHead")).gameObject.SetActive(false); ((Component)child.FindChild("SolBody")).gameObject.SetActive(true); Util.PlaySound("StopRTF", ((EntityState)this).gameObject); } if (((EntityState)this).characterBody.isSprinting && ((EntityState)this).isAuthority) { tensionController.AddTension(50f * Time.deltaTime); } int num = ((EntityState)this).characterBody.skillLocator.primary.bonusStockFromBody + ((EntityState)this).characterBody.skillLocator.secondary.bonusStockFromBody + ((EntityState)this).characterBody.skillLocator.utility.bonusStockFromBody + ((EntityState)this).characterBody.skillLocator.special.bonusStockFromBody; tensionController.SetAdditionalTension(num * 500); } public override void HandleMovements() { //IL_01b0: Unknown result type (might be due to invalid IL or missing references) if (!((BaseState)this).isGrounded) { jumpTimer += Time.deltaTime; } else if (((BaseState)this).isGrounded) { jumpTimer = 0f; } if (!((BaseState)this).isGrounded && jumpTimer <= airCount) { base.sprintInputReceived = false; } if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { base.sprintInputReceived = false; } if (justGrounded != ((BaseState)this).isGrounded) { justGrounded = ((BaseState)this).isGrounded; if (((BaseState)this).isGrounded) { foreach (SpecialInput item in inputQueue) { item.consumed = true; } } } ((GenericCharacterMain)this).HandleMovements(); if (base.sprintInputReceived && ((GenericCharacterMain)this).CanExecuteSkill(airDash) && ((EntityState)this).isAuthority && jumpTimer >= airCount) { jumpTimer = 0f; if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount < ((EntityState)this).characterBody.maxJumpCount) { SkillDef skillDef = airDash.skillDef; airDash.hasExecutedSuccessfully = true; airDash.stateMachine.SetInterruptState(skillDef.InstantiateNextState(airDash), skillDef.interruptPriority); GenericSkill obj = airDash; obj.stock -= skillDef.stockToConsume; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.jumpCount++; } else if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount < ((EntityState)this).characterBody.maxJumpCount) { } } } private void BaseUpdate() { //IL_0010: 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_00f9: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_016d: Unknown result type (might be due to invalid IL or missing references) if (((BaseCharacterMain)this).hasCharacterMotor) { float num = ((BaseCharacterMain)this).estimatedVelocity.y - ((BaseCharacterMain)this).lastYSpeed; if (((BaseState)this).isGrounded && !justGrounded && ((BaseCharacterMain)this).hasModelAnimator) { int layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("Impact"); if (layerIndex >= 0) { ((BaseCharacterMain)this).modelAnimator.SetLayerWeight(layerIndex, Mathf.Clamp01(Mathf.Max(new float[3] { 0.3f, num / 5f, ((BaseCharacterMain)this).modelAnimator.GetLayerWeight(layerIndex) }))); ((BaseCharacterMain)this).modelAnimator.PlayInFixedTime("LightImpact", layerIndex, 0f); } } justGrounded = ((BaseState)this).isGrounded; ((BaseCharacterMain)this).lastYSpeed = ((BaseCharacterMain)this).estimatedVelocity.y; } if (!((BaseCharacterMain)this).hasRootMotionAccumulator) { return; } Vector3 val = ((BaseCharacterMain)this).rootMotionAccumulator.ExtractRootMotion(); if (((BaseCharacterMain)this).useRootMotion && val != Vector3.zero && ((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += val; } if (Object.op_Implicit((Object)(object)((EntityState)this).railMotor)) { RailMotor railMotor = ((EntityState)this).railMotor; railMotor.rootMotion += val; } } } private void ActInputs() { if (((EntityState)this).isAuthority) { if (((BaseCharacterMain)this).hasSkillLocator) { UpdateInputs(); if (tensionController.tension >= 5000f && ((GenericCharacterMain)this).CanExecuteSkill(install) && !((EntityState)this).characterBody.HasBuff(BadguyBuffs.uninstallBuff) && ContainsInput(BadguyInputType.Punch | BadguyInputType.Kick | BadguyInputType.Slash | BadguyInputType.Heavy) && BadguyMovePriority.Install >= currentPriority) { currentPriority = BadguyMovePriority.Install; desiredMove = install; executeMove = true; } if (tensionController.tension >= 500f && ((GenericCharacterMain)this).CanExecuteSkill(j_break) && !((BaseState)this).isGrounded && ContainsInput(BadguyInputType.Punch | BadguyInputType.Kick) && BadguyMovePriority.AerialSpecial >= currentPriority) { currentPriority = BadguyMovePriority.AerialSpecial; desiredMove = j_break; executeMove = true; } if (tensionController.tension >= 500f && ((GenericCharacterMain)this).CanExecuteSkill(gunFlame) && ((BaseState)this).isGrounded && ContainsInput(BadguyInputType.Punch | BadguyInputType.Kick) && BadguyMovePriority.GroundedSpecial >= currentPriority) { currentPriority = BadguyMovePriority.GroundedSpecial; desiredMove = gunFlame; executeMove = true; } if (tensionController.tension >= 750f && ((GenericCharacterMain)this).CanExecuteSkill(viper) && ContainsInput(BadguyInputType.Punch | BadguyInputType.Slash) && BadguyMovePriority.AerialSpecial >= currentPriority) { currentPriority = BadguyMovePriority.AerialSpecial; desiredMove = viper; executeMove = true; } if (tensionController.tension >= 700f && ((GenericCharacterMain)this).CanExecuteSkill(vortex) && ((BaseState)this).isGrounded && ContainsInput(BadguyInputType.Punch | BadguyInputType.Heavy) && BadguyMovePriority.GroundedSpecial >= currentPriority) { currentPriority = BadguyMovePriority.GroundedSpecial; desiredMove = vortex; executeMove = true; } if (tensionController.tension >= 500f && ((GenericCharacterMain)this).CanExecuteSkill(revolver) && ContainsInput(BadguyInputType.Kick | BadguyInputType.Slash) && BadguyMovePriority.AerialSpecial >= currentPriority) { currentPriority = BadguyMovePriority.AerialSpecial; desiredMove = revolver; executeMove = true; } if (tensionController.tension >= 500f && ((GenericCharacterMain)this).CanExecuteSkill(bringer) && ContainsInput(BadguyInputType.Kick | BadguyInputType.Heavy) && BadguyMovePriority.AerialSpecial >= currentPriority) { currentPriority = BadguyMovePriority.AerialSpecial; desiredMove = bringer; executeMove = true; } if (tensionController.tension >= 1500f && ((GenericCharacterMain)this).CanExecuteSkill(sidewinder) && !((BaseState)this).isGrounded && ContainsInput(BadguyInputType.Slash | BadguyInputType.Heavy) && BadguyMovePriority.AerialSpecial >= currentPriority) { currentPriority = BadguyMovePriority.AerialSpecial; desiredMove = sidewinder; executeMove = true; } if (tensionController.tension >= 1500f && ((GenericCharacterMain)this).CanExecuteSkill(fafnir) && ((BaseState)this).isGrounded && ContainsInput(BadguyInputType.Slash | BadguyInputType.Heavy) && BadguyMovePriority.GroundedSpecial >= currentPriority) { currentPriority = BadguyMovePriority.GroundedSpecial; desiredMove = fafnir; executeMove = true; } if (((GenericCharacterMain)this).CanExecuteSkill(desiredMove) && executeMove) { desiredMove.ExecuteIfReady(); desiredMove = null; executeMove = false; currentPriority = BadguyMovePriority.None; } HandleSkill(((EntityState)this).skillLocator.primary, ref ((EntityState)this).inputBank.skill1); HandleSkill(((EntityState)this).skillLocator.secondary, ref ((EntityState)this).inputBank.skill2); HandleSkill(((EntityState)this).skillLocator.utility, ref ((EntityState)this).inputBank.skill3); HandleSkill(((EntityState)this).skillLocator.special, ref ((EntityState)this).inputBank.skill4); HandleSkill(extraLocator.extraThird, ref extraBank.extraSkill3); HandleSkill(extraLocator.extraFourth, ref extraBank.extraSkill4); } base.jumpInputReceived = false; base.sprintInputReceived = false; } if (currentPriority != 0 || executeMove) { moveHoldWatch += Time.deltaTime; if (moveHoldWatch >= moveHoldTimer) { moveHoldWatch = 0f; executeMove = false; currentPriority = BadguyMovePriority.None; } } void HandleSkill(GenericSkill skillSlot, ref ButtonState buttonState) { if (Object.op_Implicit((Object)(object)skillSlot) && !((Object)(object)skillSlot.skillDef == (Object)null) && (buttonState.down || !Object.op_Implicit((Object)(object)skillSlot.skillDef)) && (!skillSlot.mustKeyPress || !buttonState.hasPressBeenClaimed) && ((GenericCharacterMain)this).CanExecuteSkill(skillSlot) && skillSlot.ExecuteIfReady()) { buttonState.hasPressBeenClaimed = true; } } } private void GatherCombo() { if (((ButtonState)(ref ((EntityState)this).inputBank.skill1)).justPressed) { constructedInput |= BadguyInputType.Punch; } if (((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed) { constructedInput |= BadguyInputType.Kick; } if (((ButtonState)(ref ((EntityState)this).inputBank.skill3)).justPressed) { constructedInput |= BadguyInputType.Slash; } if (((ButtonState)(ref ((EntityState)this).inputBank.skill4)).justPressed) { constructedInput |= BadguyInputType.Heavy; } if (((ButtonState)(ref extraBank.extraSkill4)).justPressed) { constructedInput |= BadguyInputType.Dust; } } private void AddInputs() { bitwiseQueue.Add(new SpecialInput { inputType = constructedInput }); constructedInput = BadguyInputType.none; } private void UpdateInputs() { if (bitwiseQueue.Count > 16) { bitwiseQueue.RemoveAt(inputQueue.Count - 1); } for (int num = bitwiseQueue.Count - 1; num >= 0; num--) { bitwiseQueue[num].leniencyTimer += Time.deltaTime; if (bitwiseQueue[num].leniencyTimer >= leniency) { bitwiseQueue.RemoveAt(num); } } } private bool ContainsInput(BadguyInputType input, bool consume = false) { foreach (SpecialInput item in bitwiseQueue) { if (item.inputType == input && !item.consumed) { item.consumed = consume; return true; } } return false; } } [Flags] public enum BadguyInputType { none = 0, Punch = 1, Kick = 2, Slash = 4, Heavy = 8, Dust = 0x10 } public enum BadguyMovePriority { None, GroundedSpecial, AerialSpecial, RomanCancel, Install } public class SpecialInput { public bool consumed = false; public BadguyInputType inputType; public float leniencyTimer = 0f; public SpecialInput() { } public SpecialInput(BadguyInputType inputType) { this.inputType = inputType; } } internal class BadguyMainState : GenericCharacterMain { private float leniency = BadguyConfig.inputLeniency.Value; private float airCount = BadguyConfig.airdashTime.Value; private BadguyTensionController tensionController; private float jumpTimer = 0f; private float punchTimer = 0f; private float kickTimer = 0f; private float slashTimer = 0f; private float heavyTimer = 0f; public bool punchDown = false; public bool kickDown = false; public bool slashDown = false; public bool heavyDown = false; private GenericSkill airDash; private GenericSkill gunFlame; private GenericSkill j_break; private GenericSkill revolver; private GenericSkill bringer; private GenericSkill vortex; private GenericSkill viper; private GenericSkill fafnir; private GenericSkill install; private GenericSkill roman; private ChildLocator child; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); tensionController = ((EntityState)this).GetComponent(); airDash = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_AIRDASH"); gunFlame = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_GUNFLAME"); j_break = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_BREAK"); bringer = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_BRINGER"); revolver = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_REVOLVER"); fafnir = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_FAFNIR"); vortex = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_VORTEX"); viper = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_VIPER"); install = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_INSTALL"); roman = ((EntityState)this).skillLocator.FindSkill("LOADOUT_SKILL_ROMAN"); child = ((EntityState)this).GetModelChildLocator(); ((Component)child.FindChild("DragonBody")).gameObject.SetActive(false); ((Component)child.FindChild("DragonHead")).gameObject.SetActive(false); if (((EntityState)this).isAuthority) { tensionController.AddTension(2000f); } } public override void FixedUpdate() { BaseUpdate(); ((GenericCharacterMain)this).GatherInputs(); ((GenericCharacterMain)this).HandleMovements(); ActInputs(); if (!((EntityState)this).characterBody.HasBuff(BadguyBuffs.installBuff) && ((EntityState)this).characterBody.HasBuff(BadguyBuffs.uninstallBuff)) { ((Component)child.FindChild("DragonBody")).gameObject.SetActive(false); ((Component)child.FindChild("DragonHead")).gameObject.SetActive(false); ((Component)child.FindChild("SolBody")).gameObject.SetActive(true); Util.PlaySound("StopRTF", ((EntityState)this).gameObject); } if (((EntityState)this).characterBody.isSprinting && ((EntityState)this).isAuthority) { tensionController.AddTension(50f * Time.deltaTime); } int num = ((EntityState)this).characterBody.skillLocator.primary.maxStock - 1 + ((EntityState)this).characterBody.skillLocator.secondary.maxStock - 1 + ((EntityState)this).characterBody.skillLocator.utility.maxStock - 1 + ((EntityState)this).characterBody.skillLocator.special.maxStock - 1; tensionController.SetAdditionalTension(num * 500); } public override void HandleMovements() { //IL_0142: Unknown result type (might be due to invalid IL or missing references) if (!((BaseState)this).isGrounded) { jumpTimer += Time.deltaTime; } else if (((BaseState)this).isGrounded) { jumpTimer = 0f; } if (!((BaseState)this).isGrounded && jumpTimer <= airCount) { base.sprintInputReceived = false; } if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { base.sprintInputReceived = false; } ((GenericCharacterMain)this).HandleMovements(); if (base.sprintInputReceived && ((GenericCharacterMain)this).CanExecuteSkill(airDash) && ((EntityState)this).isAuthority && jumpTimer >= airCount) { jumpTimer = 0f; if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount < ((EntityState)this).characterBody.maxJumpCount) { SkillDef skillDef = airDash.skillDef; airDash.hasExecutedSuccessfully = true; airDash.stateMachine.SetInterruptState(skillDef.InstantiateNextState(airDash), skillDef.interruptPriority); GenericSkill obj = airDash; obj.stock -= skillDef.stockToConsume; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.jumpCount++; } else if (!((BaseState)this).isGrounded && ((EntityState)this).characterMotor.jumpCount < ((EntityState)this).characterBody.maxJumpCount) { } } } private void BaseUpdate() { //IL_0010: 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_00f9: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0167: 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_016d: Unknown result type (might be due to invalid IL or missing references) if (((BaseCharacterMain)this).hasCharacterMotor) { float num = ((BaseCharacterMain)this).estimatedVelocity.y - ((BaseCharacterMain)this).lastYSpeed; if (((BaseState)this).isGrounded && !((BaseCharacterMain)this).wasGrounded && ((BaseCharacterMain)this).hasModelAnimator) { int layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("Impact"); if (layerIndex >= 0) { ((BaseCharacterMain)this).modelAnimator.SetLayerWeight(layerIndex, Mathf.Clamp01(Mathf.Max(new float[3] { 0.3f, num / 5f, ((BaseCharacterMain)this).modelAnimator.GetLayerWeight(layerIndex) }))); ((BaseCharacterMain)this).modelAnimator.PlayInFixedTime("LightImpact", layerIndex, 0f); } } ((BaseCharacterMain)this).wasGrounded = ((BaseState)this).isGrounded; ((BaseCharacterMain)this).lastYSpeed = ((BaseCharacterMain)this).estimatedVelocity.y; } if (!((BaseCharacterMain)this).hasRootMotionAccumulator) { return; } Vector3 val = ((BaseCharacterMain)this).rootMotionAccumulator.ExtractRootMotion(); if (((BaseCharacterMain)this).useRootMotion && val != Vector3.zero && ((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += val; } if (Object.op_Implicit((Object)(object)((EntityState)this).railMotor)) { RailMotor railMotor = ((EntityState)this).railMotor; railMotor.rootMotion += val; } } } private void ActInputs() { if (!((EntityState)this).isAuthority) { return; } if (((BaseCharacterMain)this).hasSkillLocator) { CheckInputs(); if (punchDown && kickDown && slashDown && heavyDown && tensionController.tension >= 5000f && ((GenericCharacterMain)this).CanExecuteSkill(install) && !((EntityState)this).characterBody.HasBuff(BadguyBuffs.uninstallBuff)) { install.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill1.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill2.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill3.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill4.hasPressBeenClaimed = true; return; } if (punchDown && kickDown && !slashDown && !heavyDown && ((BaseState)this).isGrounded && ((GenericCharacterMain)this).CanExecuteSkill(gunFlame) && tensionController.tension >= 500f) { gunFlame.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill1.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill2.hasPressBeenClaimed = true; } if (punchDown && kickDown && !slashDown && !heavyDown && !((BaseState)this).isGrounded && ((GenericCharacterMain)this).CanExecuteSkill(j_break) && tensionController.tension >= 500f) { j_break.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill1.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill2.hasPressBeenClaimed = true; } if (punchDown && slashDown && !kickDown && !heavyDown && ((GenericCharacterMain)this).CanExecuteSkill(viper) && tensionController.tension >= 750f) { viper.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill1.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill3.hasPressBeenClaimed = true; } if (punchDown && heavyDown && !kickDown && !slashDown && ((BaseState)this).isGrounded && ((GenericCharacterMain)this).CanExecuteSkill(vortex) && tensionController.tension >= 700f) { vortex.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill1.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill4.hasPressBeenClaimed = true; } if (kickDown && slashDown && !punchDown && !heavyDown && ((GenericCharacterMain)this).CanExecuteSkill(revolver) && tensionController.tension >= 500f) { revolver.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill2.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill3.hasPressBeenClaimed = true; } if (kickDown && heavyDown && !punchDown && !slashDown && ((GenericCharacterMain)this).CanExecuteSkill(bringer) && tensionController.tension >= 500f) { bringer.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill2.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill4.hasPressBeenClaimed = true; } if (slashDown && heavyDown && !punchDown && !kickDown && ((BaseState)this).isGrounded && ((GenericCharacterMain)this).CanExecuteSkill(fafnir) && tensionController.tension >= 1500f) { fafnir.ExecuteIfReady(); base.jumpInputReceived = false; base.sprintInputReceived = false; ((EntityState)this).inputBank.skill3.hasPressBeenClaimed = true; ((EntityState)this).inputBank.skill4.hasPressBeenClaimed = true; } HandleSkill(((EntityState)this).skillLocator.primary, ref ((EntityState)this).inputBank.skill1); HandleSkill(((EntityState)this).skillLocator.secondary, ref ((EntityState)this).inputBank.skill2); HandleSkill(((EntityState)this).skillLocator.utility, ref ((EntityState)this).inputBank.skill3); HandleSkill(((EntityState)this).skillLocator.special, ref ((EntityState)this).inputBank.skill4); } base.jumpInputReceived = false; base.sprintInputReceived = false; void HandleSkill(GenericSkill skillSlot, ref ButtonState buttonState) { if (Object.op_Implicit((Object)(object)skillSlot) && !((Object)(object)skillSlot.skillDef == (Object)null) && (buttonState.down || !Object.op_Implicit((Object)(object)skillSlot.skillDef)) && (!skillSlot.mustKeyPress || !buttonState.hasPressBeenClaimed) && ((GenericCharacterMain)this).CanExecuteSkill(skillSlot) && skillSlot.ExecuteIfReady()) { buttonState.hasPressBeenClaimed = true; } } } private void CheckInputs() { if (((ButtonState)(ref ((EntityState)this).inputBank.skill1)).justPressed) { punchDown = true; } if (punchDown) { punchTimer += Time.deltaTime; if (punchTimer >= leniency) { punchTimer = 0f; punchDown = false; } } if (((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed) { kickDown = true; } if (kickDown) { kickTimer += Time.deltaTime; if (kickTimer >= leniency) { kickTimer = 0f; kickDown = false; } } if (((ButtonState)(ref ((EntityState)this).inputBank.skill3)).justPressed) { slashDown = true; } if (slashDown) { slashTimer += Time.deltaTime; if (slashTimer >= leniency) { slashTimer = 0f; slashDown = false; } } if (((ButtonState)(ref ((EntityState)this).inputBank.skill4)).justPressed) { heavyDown = true; } if (heavyDown) { heavyTimer += Time.deltaTime; if (heavyTimer >= leniency) { heavyTimer = 0f; heavyDown = false; } } } } public class BadguyRomanMain : Idle { private BadguyTensionController tensionCtrl; private PlayerCharacterMasterController PCMC; public override void OnEnter() { ((EntityState)this).OnEnter(); tensionCtrl = ((EntityState)this).GetComponent(); PCMC = ((EntityState)this).characterBody.master.playerCharacterMasterController; } public override void FixedUpdate() { if (((EntityState)this).isAuthority) { if (tensionCtrl.tension >= 5000f) { } ((EntityState)this).FixedUpdate(); } } } public class BadguyTensionController : NetworkBehaviour { [SerializeField] [Header("UI")] public GameObject overlayPrefab; [SerializeField] public string overlayChildLocatorEntry = "CrosshairExtras"; private const float MAX_TENSION = 10000f; private float ADDITIONAL_TENSION = 0f; private float _tension; private float _prevTension; private OverlayController overlayController; private OverlayController cardOverlayController; private HGTextMeshProUGUI uiTensionPerc; private ChildLocator overlayInstanceChildLocator; private List fillUIList = new List(); private SkillLocator locator; public float Network_tension { get { return _tension; } [param: In] set { if (NetworkServer.localClientActive && !((NetworkBehaviour)this).syncVarHookGuard) { ((NetworkBehaviour)this).syncVarHookGuard = true; ((NetworkBehaviour)this).syncVarHookGuard = false; } ((NetworkBehaviour)this).SetSyncVar(value, ref _tension, 1u); } } public float tension => _tension; public float tensionFraction => _tension / 10000f + ADDITIONAL_TENSION; public float tensionPercent => tensionFraction * 100f; private void OnEnable() { //IL_0015: 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) overlayPrefab = BadguyAssets.tensionGauge; overlayController = HudOverlayManager.AddOverlay(((Component)this).gameObject, new OverlayCreationParams { prefab = overlayPrefab, childLocatorEntry = overlayChildLocatorEntry }); overlayController.onInstanceAdded += OverlayController_onInstanceAdded; overlayController.onInstanceRemove += OverlayController_onInstanceRemove; } private void OnDisable() { if (cardOverlayController != null) { HudOverlayManager.RemoveOverlay(cardOverlayController); cardOverlayController = null; } } private void OverlayController_onInstanceRemove(OverlayController arg1, GameObject arg2) { fillUIList.Remove(arg2.GetComponent()); } private void OverlayController_onInstanceAdded(OverlayController arg1, GameObject arg2) { fillUIList.Add(arg2.GetComponent()); overlayInstanceChildLocator = arg2.GetComponent(); uiTensionPerc = arg2.GetComponentInChildren(); } private void OnEnter() { locator = ((Component)this).GetComponent(); } private void FixedUpdate() { UpdateUI(); } private void UpdateUI() { foreach (ImageFillController fillUI in fillUIList) { if (((Object)fillUI).name == "Drain") { fillUI.SetTValue(_prevTension / 10000f + ADDITIONAL_TENSION); } else { fillUI.SetTValue(tension / 10000f + ADDITIONAL_TENSION); } } if (Object.op_Implicit((Object)(object)uiTensionPerc)) { StringBuilder stringBuilder = StringBuilderPool.RentStringBuilder(); StringBuilderExtensions.AppendInt(stringBuilder, Mathf.FloorToInt(tension / 100f), 1u, 3u).Append("%"); ((TMP_Text)uiTensionPerc).SetText(stringBuilder); StringBuilderPool.ReturnStringBuilder(stringBuilder); } if (!Object.op_Implicit((Object)(object)overlayInstanceChildLocator)) { } } [Server] public void AddTension(float amount) { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void BadguyMod.BadguyTensionController::AddTension(System.Single)' called on client."); } else { Network_tension = Mathf.Clamp(tension + amount, 0f, 10000f + ADDITIONAL_TENSION); } } [Command] public void CmdAddTension(float amount) { AddTension(amount); } public void SetAdditionalTension(int NewTotal) { ADDITIONAL_TENSION = NewTotal; } } internal class BadguyWeaponComponent : MonoBehaviour { private void Awake() { } } } namespace BadguyMod.Survivors.Badguy.Achievements { [RegisterAchievement("HASTEREAPR_BADGUY_masteryAchievement", "HASTEREAPR_BADGUY_masteryUnlockable", null, 10u, null)] public class BadguyMasteryAchievement : BaseMasteryAchievement { public const string identifier = "HASTEREAPR_BADGUY_masteryAchievement"; public const string unlockableIdentifier = "HASTEREAPR_BADGUY_masteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3f; } }