using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Globalization; 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 AncientScepter; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using BlightedElites.Components; using DefenseMatrixManager; using EmotesAPI; using EntityStates; using EntityStates.Captain.Weapon; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using EntityStates.GlobalSkills.LunarDetonator; using EntityStates.GolemMonster; using EntityStates.GravekeeperBoss; using EntityStates.Gup; using EntityStates.ImpBossMonster; using EntityStates.Interactables.StoneGate; using EntityStates.Mage; using EntityStates.Merc; using EntityStates.MeridianEvent; using EntityStates.Missions.BrotherEncounter; using EntityStates.NullifierMonster; using EntityStates.SS2UStates.Chirr; using EntityStates.SS2UStates.Chirr.Special; using EntityStates.SS2UStates.Chirr.Taunt; using EntityStates.SS2UStates.Common; using EntityStates.SS2UStates.Common.Emotes; using EntityStates.SS2UStates.Cyborg; using EntityStates.SS2UStates.Cyborg.ChargeRifle; using EntityStates.SS2UStates.Cyborg.Jetpack; using EntityStates.SS2UStates.Cyborg.Secondary; using EntityStates.SS2UStates.Cyborg.Special; using EntityStates.SS2UStates.Executioner; using EntityStates.SS2UStates.Nemmando; using EntityStates.SS2UStates.Nemmando.Taunt; using EntityStates.SS2UStates.Nucleator; using EntityStates.SS2UStates.Nucleator.Primary; using EntityStates.SS2UStates.Nucleator.Secondary; using EntityStates.SS2UStates.Nucleator.Special; using EntityStates.SS2UStates.Nucleator.Utility; using EntityStates.SS2UStates.Pyro; using EntityStates.Toolbot; using EntityStates.Treebot.TreebotFlower; using HG; using HG.BlendableTypes; using HG.Reflection; using IL.EntityStates.VoidInfestor; using IL.RoR2; using IL.RoR2.UI; using Inferno; using JetBrains.Annotations; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using NS_KingKombatArena; using On.EntityStates.GlobalSkills.LunarDetonator; using On.EntityStates.Gup; using On.EntityStates.Interactables.StoneGate; using On.EntityStates.MeridianEvent; using On.EntityStates.Missions.BrotherEncounter; using On.EntityStates.Toolbot; using On.RoR2; using On.RoR2.CharacterAI; using On.RoR2.Projectile; using On.RoR2.UI.LogBook; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using Rewired.ComponentControls.Effects; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.Artifacts; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using RoR2.UI.LogBook; using ShaderSwapper; using Starstorm2Unofficial; using Starstorm2Unofficial.Components; using Starstorm2Unofficial.Components.Projectiles; using Starstorm2Unofficial.Cores; using Starstorm2Unofficial.Cores.Equipment; using Starstorm2Unofficial.Cores.Items; using Starstorm2Unofficial.Cores.NemesisInvasion; using Starstorm2Unofficial.Cores.NemesisInvasion.Components; using Starstorm2Unofficial.Cores.NemesisInvasion.Components.Body; using Starstorm2Unofficial.Cores.Skins; using Starstorm2Unofficial.Cores.States.Wayfarer; using Starstorm2Unofficial.Cores.Unlockables; using Starstorm2Unofficial.Modules; using Starstorm2Unofficial.Modules.Achievements; using Starstorm2Unofficial.Modules.Orbs; using Starstorm2Unofficial.Modules.Survivors; using Starstorm2Unofficial.SharedHooks; using Starstorm2Unofficial.Survivors.Chirr; using Starstorm2Unofficial.Survivors.Chirr.Components; using Starstorm2Unofficial.Survivors.Cyborg; using Starstorm2Unofficial.Survivors.Cyborg.Components; using Starstorm2Unofficial.Survivors.Cyborg.Components.Crosshair; using Starstorm2Unofficial.Survivors.Cyborg.Components.OverheatProjectile; using Starstorm2Unofficial.Survivors.Cyborg.Components.ShockCoreProjectile; using Starstorm2Unofficial.Survivors.Cyborg.Components.TeleportProjectile; using Starstorm2Unofficial.Survivors.Executioner; using Starstorm2Unofficial.Survivors.Executioner.Components; using Starstorm2Unofficial.Survivors.Nemmando; using Starstorm2Unofficial.Survivors.Nemmando.Components; using Starstorm2Unofficial.Survivors.Nucleator; using Starstorm2Unofficial.Survivors.Nucleator.Components; using Starstorm2Unofficial.Survivors.Nucleator.Components.Crosshair; using Starstorm2Unofficial.Survivors.Nucleator.Components.Projectile; using Starstorm2Unofficial.Survivors.Pyro; using Starstorm2Unofficial.Survivors.Pyro.Components; using Starstorm2Unofficial.Survivors.Pyro.Components.Crosshair; using Starstorm2Unofficial.Survivors.Pyro.Components.Projectile; using Survariants; using TILER2; using TMPro; using ThinkInvisible.ClassicItems; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: AssemblyTitle("Starstorm 2 Unofficial")] [assembly: OptIn] [assembly: AssemblyConfiguration("")] [assembly: AssemblyDescription("")] [assembly: CompilationRelaxations(8)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Guid("00c13a13-ed8f-4769-bcb1-029e4edb505a")] [assembly: ComVisible(false)] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyProduct("Starstorm 2 Unofficial")] [assembly: AssemblyCompany("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCopyright("Copyright © 2020")] [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 { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] [Microsoft.CodeAnalysis.Embedded] [CompilerGenerated] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] [Microsoft.CodeAnalysis.Embedded] [CompilerGenerated] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] [CompilerGenerated] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } public static class ComponentHelpers { public static bool HasComponent(this GameObject g) where T : Component { return (Object)(object)g.GetComponent(typeof(T)) != (Object)null; } public static bool HasComponent(this MonoBehaviour m) where T : Component { return (Object)(object)((Component)m).GetComponent(typeof(T)) != (Object)null; } public static bool HasComponent(this Transform t) where T : Component { return (Object)(object)((Component)t).GetComponent(typeof(T)) != (Object)null; } public static int ComponentCount(this GameObject g) where T : Component { return g.GetComponents(typeof(T)).Length; } public static int ComponentCount(this MonoBehaviour m) where T : Component { return ((Component)m).GetComponents(typeof(T)).Length; } public static int ComponentCount(this Transform t) where T : Component { return ((Component)t).GetComponents(typeof(T)).Length; } public static T GetComponent(this GameObject g, int index) where T : Component { Component obj = g.GetComponents(typeof(T))[index]; return (T)(object)((obj is T) ? obj : null); } public static T GetComponent(this MonoBehaviour m, int index) where T : Component { Component obj = ((Component)m).gameObject.GetComponents(typeof(T))[index]; return (T)(object)((obj is T) ? obj : null); } public static T GetComponent(this Transform t, int index) where T : Component { Component obj = ((Component)t).GetComponents(typeof(T))[index]; return (T)(object)((obj is T) ? obj : null); } public static T AddComponent(this MonoBehaviour m) where T : Component { Component obj = ((Component)m).gameObject.AddComponent(typeof(T)); return (T)(object)((obj is T) ? obj : null); } public static T AddComponent(this Transform t) where T : Component { Component obj = ((Component)t).gameObject.AddComponent(typeof(T)); return (T)(object)((obj is T) ? obj : null); } public static T AddOrGetComponent(this GameObject g) where T : Component { Component obj = (g.HasComponent() ? g.GetComponent(typeof(T)) : g.AddComponent(typeof(T))); return (T)(object)((obj is T) ? obj : null); } public static T AddOrGetComponent(this MonoBehaviour m) where T : Component { Component obj = (m.HasComponent() ? ((Component)m).GetComponent(typeof(T)) : ((Component)m).gameObject.AddComponent(typeof(T))); return (T)(object)((obj is T) ? obj : null); } public static T AddOrGetComponent(this Transform t) where T : Component { Component obj = (t.HasComponent() ? ((Component)t).GetComponent(typeof(T)) : ((Component)t).gameObject.AddComponent(typeof(T))); return (T)(object)((obj is T) ? obj : null); } } public class LogCore { public static ManualLogSource logger; public LogCore(ManualLogSource logger_) { logger = logger_; } public static void LogDebug(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogDebug((object)logString(data, i, member)); } public static void LogError(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogError((object)logString(data, i, member)); } public static void LogFatal(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogFatal((object)logString(data, i, member)); } public static void LogInfo(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogInfo((object)logString(data, i, member)); } public static void LogMessage(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogMessage((object)logString(data, i, member)); } public static void LogWarning(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { logger.LogWarning((object)logString(data, i, member)); } private static string logString(object data, [CallerLineNumber] int i = 0, [CallerMemberName] string member = "") { return $"{data} [Line: {i} | Method {member}]"; } } public static class Utils { [CompilerGenerated] private sealed class d__7 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public string token; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(1f); <>1__state = 1; return true; case 1: <>1__state = -1; Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = token }); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static void RegisterSkillDef(SkillDef skillDef, params Type[] skillTypes) { for (int i = 0; i < skillTypes.Length; i++) { States.AddState(skillTypes[i]); } Skills.skillDefs.Add(skillDef); } public static Variant RegisterSkillVariant(SkillDef skillDef, UnlockableDef unlockableDef = null) { //IL_0003: 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_002d: Expected O, but got Unknown //IL_002e: 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_0032: Unknown result type (might be due to invalid IL or missing references) Variant result = default(Variant); result.skillDef = skillDef; result.unlockableDef = unlockableDef; ((Variant)(ref result)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); return result; } public static GenericSkill RegisterSkillsToFamily(GameObject characterBodyObject, params Variant[] skillVariants) { return RegisterSkillsToFamily(characterBodyObject, "", skillVariants); } public static GenericSkill RegisterSkillsToFamily(GameObject characterBodyObject, string skillname, params Variant[] skillVariants) { GenericSkill val = characterBodyObject.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); Skills.skillFamilies.Add(val2); Reflection.SetFieldValue((object)val, "_skillFamily", val2); Reflection.SetFieldValue((object)val, "skillName", skillname); val2.variants = skillVariants; return val; } public static void RegisterAdditionalSkills(GenericSkill genericSkill, params Variant[] skillVariants) { SkillFamily skillFamily = genericSkill.skillFamily; skillFamily.variants = skillFamily.variants.Concat(skillVariants).ToArray(); } public static RendererInfo[] SetupRendererInfos(GameObject obj) { //IL_001a: 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_0049: 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) MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren(); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[componentsInChildren.Length]; for (int i = 0; i < componentsInChildren.Length; i++) { array[i] = new RendererInfo { defaultMaterial = ((Renderer)componentsInChildren[i]).material, renderer = (Renderer)(object)componentsInChildren[i], defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }; } return array; } internal static GameObject LoadCrosshair(string crosshairName) { return LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); } [IteratorStateMachine(typeof(d__7))] public static IEnumerator BroadcastChat(string token) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__7(0) { token = token }; } internal static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } } public abstract class SS2Equipment { public static string prefabPath = "@Starstorm2:Assets/AssetBundle/Items/"; public EquipmentDef equipDef; public static GameObject displayPrefab; public abstract string NameInternal { get; } public virtual float Cooldown { get; } = 60f; public virtual bool CanDrop { get; } = true; public virtual bool EnigmaCompatible { get; } = true; public virtual bool IsBoss { get; } = false; public virtual bool IsLunar { get; } = false; public virtual BuffDef PassiveBuffDef { get; } = null; public abstract string PickupIconPath { get; } public abstract string PickupModelPath { get; } public virtual EquipmentDef Init() { EquipmentDef result = RegisterEquipment(); RegisterHooks(); return result; } protected EquipmentDef RegisterEquipment() { //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Expected O, but got Unknown string text = NameInternal.ToUpper(CultureInfo.InvariantCulture); EquipmentDef val = ScriptableObject.CreateInstance(); ((Object)val).name = NameInternal; val.nameToken = "EQUIPMENT_" + text + "_NAME"; val.pickupToken = "EQUIPMENT_" + text + "_PICKUP"; val.descriptionToken = "EQUIPMENT_" + text + "_DESC"; val.loreToken = "EQUIPMENT_" + text + "_LORE"; val.cooldown = Cooldown; val.canDrop = CanDrop; val.enigmaCompatible = EnigmaCompatible; val.isBoss = IsBoss; val.isLunar = IsLunar; val.appearsInSinglePlayer = true; val.appearsInMultiPlayer = true; val.passiveBuffDef = PassiveBuffDef; val.pickupIconSprite = ((PickupIconPath != "") ? Assets.mainAssetBundle.LoadAsset(PickupIconPath) : null); val.pickupModelPrefab = ((PickupModelPath != "") ? Assets.mainAssetBundle.LoadAsset(PickupModelPath) : null); if (PickupModelPath != "") { GameObject pickupModelPrefab = val.pickupModelPrefab; if (Object.op_Implicit((Object)(object)pickupModelPrefab)) { ((Renderer)pickupModelPrefab.GetComponentInChildren()).material.shader = Assets.hotpoo; } } ItemDisplayRuleDict val2 = CreateDisplayRules(); EquipmentSlot.PerformEquipmentAction += new hook_PerformEquipmentAction(EquipmentSlot_PerformEquipmentAction); equipDef = val; Items.equipmentDefs.Add(equipDef); return val; } public abstract void RegisterHooks(); public virtual ItemDisplayRuleDict CreateDisplayRules() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown return new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[0]); } public static RendererInfo[] SetupRendererInfos(GameObject obj) { //IL_001a: 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_0049: 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) MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren(); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[componentsInChildren.Length]; for (int i = 0; i < componentsInChildren.Length; i++) { array[i] = new RendererInfo { defaultMaterial = ((Renderer)componentsInChildren[i]).material, renderer = (Renderer)(object)componentsInChildren[i], defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }; } return array; } private bool EquipmentSlot_PerformEquipmentAction(orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef equipmentDef) { if ((Object)(object)equipmentDef == (Object)(object)equipDef) { return ActivateEquipment(self); } return orig.Invoke(self, equipmentDef); } protected abstract bool ActivateEquipment(EquipmentSlot equip); } internal abstract class SS2Equipment : SS2Equipment where T : SS2Equipment { public static T instance { get; private set; } public SS2Equipment() { instance = this as T; } } public abstract class SS2Item { public ItemDef itemDef; public static GameObject displayPrefab; public abstract string NameInternal { get; } public virtual bool CanRemove { get; } = true; public abstract ItemTier Tier { get; } public abstract ItemTag[] Tags { get; } public abstract string PickupIconPath { get; } public abstract string PickupModelPath { get; } public virtual bool DropInMultiBlacklist { get; } = false; public virtual void Init() { RegisterItem(); RegisterHooks(); } protected virtual void RegisterItem() { //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) string text = NameInternal.ToUpper(CultureInfo.InvariantCulture); itemDef = ScriptableObject.CreateInstance(); ((Object)itemDef).name = NameInternal; itemDef.nameToken = "ITEM_" + text + "_NAME"; itemDef.pickupToken = "ITEM_" + text + "_PICKUP"; itemDef.descriptionToken = "ITEM_" + text + "_DESC"; itemDef.loreToken = "ITEM_" + text + "_LORE"; itemDef.canRemove = CanRemove; itemDef.pickupIconSprite = ((PickupIconPath != "") ? Assets.mainAssetBundle.LoadAsset(PickupIconPath) : null); itemDef.pickupModelPrefab = ((PickupModelPath != "") ? Assets.mainAssetBundle.LoadAsset(PickupModelPath) : null); itemDef.tags = Tags; itemDef.tier = Tier; itemDef.deprecatedTier = Tier; Items.itemDefs.Add(itemDef); if (!(PickupModelPath != "")) { return; } GameObject pickupModelPrefab = itemDef.pickupModelPrefab; if (Object.op_Implicit((Object)(object)pickupModelPrefab)) { ModelPanelParameters val = pickupModelPrefab.AddComponent(); val.focusPointTransform = pickupModelPrefab.transform; val.cameraPositionTransform = ((Component)val).transform; ItemDisplay val2 = pickupModelPrefab.AddComponent(); MeshRenderer[] componentsInChildren = ((Component)val2).GetComponentsInChildren(); List list = new List(); MeshRenderer[] array = componentsInChildren; for (int i = 0; i < array.Length; i++) { Renderer val3 = (Renderer)(object)array[i]; RendererInfo item = default(RendererInfo); item.renderer = val3; item.defaultMaterial = val3.material; item.defaultShadowCastingMode = val3.shadowCastingMode; item.ignoreOverlays = false; item.hideOnDeath = false; list.Add(item); } val2.rendererInfos = list.ToArray(); SetupMaterials(pickupModelPrefab); } itemDef.pickupModelPrefab = pickupModelPrefab; } protected virtual void SetupMaterials(GameObject modelPrefab) { Assets.ConvertAllRenderersToHopooShader(modelPrefab); } public abstract void RegisterHooks(); public virtual ItemDisplayRuleDict CreateDisplayRules() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown return new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[0]); } public int GetCount(CharacterBody body) { if (!Object.op_Implicit((Object)(object)body) || !Object.op_Implicit((Object)(object)body.inventory)) { return 0; } return body.inventory.GetItemCount(itemDef); } } internal abstract class SS2Item : SS2Item where T : SS2Item { public static T instance { get; private set; } public SS2Item() { instance = this as T; } } public class BodyInfo { public string bodyName = ""; public string bodyNameToken = ""; public string subtitleNameToken = ""; public Texture characterPortrait = null; public Color32 bodyColor = Color32.op_Implicit(Color.gray); public GameObject crosshair = null; public GameObject podPrefab = null; public float maxHealth = 100f; public float healthGrowth = 2f; public float healthRegen = 0f; public float shield = 0f; public float shieldGrowth = 0f; public float moveSpeed = 7f; public float moveSpeedGrowth = 0f; public float acceleration = 80f; public float jumpPower = 15f; public float jumpPowerGrowth = 0f; public float damage = 12f; public float attackSpeed = 1f; public float attackSpeedGrowth = 0f; public float armor = 0f; public float armorGrowth = 0f; public float crit = 1f; public float critGrowth = 0f; public int jumpCount = 1; } public class CustomRendererInfo { public string childName; public Material material; public bool ignoreOverlays; } internal class StarstormBodyInfo { internal string bodyName = ""; internal string bodyNameToken = ""; internal string subtitleNameToken = ""; internal string bodyNameToClone = "Commando"; internal Texture characterPortrait = null; internal GameObject crosshair = null; internal GameObject podPrefab = null; internal float maxHealth = 100f; internal float healthGrowth = 2f; internal float healthRegen = 0f; internal float shield = 0f; internal float shieldGrowth = 0f; internal float moveSpeed = 7f; internal float moveSpeedGrowth = 0f; internal float acceleration = 80f; internal float jumpPower = 15f; internal float jumpPowerGrowth = 0f; internal float damage = 12f; internal float attackSpeed = 1f; internal float attackSpeedGrowth = 0f; internal float armor = 0f; internal float armorGrowth = 0f; internal float crit = 1f; internal float critGrowth = 0f; internal int jumpCount = 1; internal Color bodyColor = Color.grey; internal Vector3 aimOriginPosition = new Vector3(0f, 1.8f, 0f); internal Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); internal Vector3 cameraPivotPosition = new Vector3(0f, 1.6f, 0f); internal CharacterCameraParams cameraParams; internal string menuSoundString; } internal class StarstormRendererInfo { internal string childName; internal Material material; internal bool ignoreOverlays; } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public int baseMaxStock; public float baseRechargeInterval; public bool beginSkillCooldownOnSkillEnd; public bool canceledFromSprinting; public bool forceSprintDuringState; public bool fullRestockOnAssign; public InterruptPriority interruptPriority; public bool resetCooldownTimerOnUse; public bool isCombatSkill; public bool mustKeyPress; public bool cancelSprintingOnActivation; public int rechargeStock; public int requiredStock; public int stockToConsume; public string[] keywordTokens; } namespace EntityStates.SS2UStates.Pyro { public class FireFlamethrower : BaseState { public static float baseDuration = 0.16f; public static float baseSelfForce = 450f; public static float maxDistance = 24f; public static float heatFractionPerTick = 0.025f; public static float procCoefficient = 0.7f; public static float damageCoefficient = 0.672f; public static GameObject impactEffectPrefab = Resources.Load("prefabs/effects/impacteffects/missileexplosionvfx"); private float duration; private HeatController heatController; private FlamethrowerController flameController; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; heatController = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)heatController)) { heatController.AddHeatAuthority(heatFractionPerTick); } flameController = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)flameController)) { flameController.FireFlamethrower(0.2f); } ShootFlame(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } private void ShootFlame() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007f: 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_0098: 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_00a6: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: 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_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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_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) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_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_0148: Expected O, but got Unknown //IL_0150: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: 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_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: 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_0216: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); } Ray aimRay = ((BaseState)this).GetAimRay(); if (!((EntityState)this).isAuthority) { return; } bool flag = Object.op_Implicit((Object)(object)heatController) && heatController.IsHighHeat() && Object.op_Implicit((Object)(object)flameController) && flameController.CheckBurn(); BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, damage = damageCoefficient * base.damageStat, force = 0f, muzzleName = "Muzzle", hitEffectPrefab = impactEffectPrefab, isCrit = ((BaseState)this).RollCrit(), radius = 2.4f, falloffModel = (FalloffModel)0, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask, procCoefficient = procCoefficient, maxDistance = maxDistance, smartCollision = true, damageType = DamageTypeCombo.op_Implicit((DamageType)(flag ? 128 : 0)) }; val.damageType.damageSource = (DamageSource)1; if (!flag) { ref DamageTypeExtended damageTypeExtended = ref val.damageType.damageTypeExtended; damageTypeExtended = (DamageTypeExtended)((uint)damageTypeExtended | 0x8000u); } val.Fire(); heatController.AddHeatAuthority(heatFractionPerTick); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { Ray aimRay2 = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay2)).direction; if (direction.y < 0f) { direction.x = 0f; direction.z = 0f; float num = Mathf.Sqrt(base.attackSpeedStat); direction /= num; ((EntityState)this).characterMotor.ApplyForce(direction * (0f - baseSelfForce), true, false); } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class FlaregunScepter : Flaregun { public static GameObject scepterProjectilePrefab; public static int scepterMaxExplosions = 16; public override GameObject GetProjectilePrefab() { return scepterProjectilePrefab; } public override int SetExplosionCount(float heatPercent) { int num = Mathf.FloorToInt(Mathf.Lerp(0f, (float)scepterMaxExplosions, heatPercent)); return Mathf.Max(1, num); } public override float SetCostPerExplosion() { return 1f / (float)scepterMaxExplosions; } } public class HeatJetpack : BaseState { public static float minDuration = 0.4f; public static float heatConsumptionPerSecond = 1.2f; public static float maxSpeedCoefficient = 4f; public static float minSpeedCoefficient = 4f; public static GameObject trailPrefab = Resources.Load("prefabs/effects/impacteffects/missileexplosionvfx"); public static float trailFrequency = 8f; private float trailStopwatch; private float trailTime; private HeatController heatController; public override void OnEnter() { ((BaseState)this).OnEnter(); trailStopwatch = 0f; trailTime = 1f / trailFrequency; heatController = ((EntityState)this).GetComponent(); Util.PlaySound("Play_mage_R_start", ((EntityState)this).gameObject); } public override void FixedUpdate() { //IL_0035: 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_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Expected O, but got Unknown //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) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0188: 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_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: 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) ((EntityState)this).FixedUpdate(); trailStopwatch += Time.fixedDeltaTime; if (trailStopwatch >= trailTime) { EffectManager.SpawnEffect(trailPrefab, new EffectData { origin = ((EntityState)this).transform.position }, false); trailStopwatch -= trailTime; } bool flag = false; float num = base.moveSpeedStat; if (Object.op_Implicit((Object)(object)heatController)) { num *= Mathf.Lerp(minSpeedCoefficient, maxSpeedCoefficient, heatController.GetHeatPercent()); int stocks = 1; if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.utility)) { stocks = ((EntityState)this).skillLocator.utility.maxStock; } heatController.ConsumeHeat(heatConsumptionPerSecond * Time.fixedDeltaTime, stocks); flag = heatController.GetHeatPercent() <= 0f; } if (!((EntityState)this).isAuthority) { return; } Ray aimRay = ((BaseState)this).GetAimRay(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { if (((EntityState)this).characterMotor.isGrounded && Object.op_Implicit((Object)(object)((BaseCharacterController)((EntityState)this).characterMotor).Motor)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); } ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += Time.fixedDeltaTime * num * ((Ray)(ref aimRay)).direction; } bool flag2 = Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill3.down; if (flag || (((EntityState)this).fixedAge >= minDuration && !flag2)) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0081: 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) Util.PlaySound("Play_mage_R_end", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { float num = base.moveSpeedStat; if (Object.op_Implicit((Object)(object)heatController)) { num *= Mathf.Lerp(minSpeedCoefficient, maxSpeedCoefficient, heatController.GetHeatPercent()); } CharacterMotor characterMotor = ((EntityState)this).characterMotor; Ray aimRay = ((BaseState)this).GetAimRay(); characterMotor.velocity = ((Ray)(ref aimRay)).direction * num; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.isSprinting = true; } ((EntityState)this).OnExit(); } 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 Airblast : BaseState { public static string attackSoundString = "Play_treeBot_shift_shoot"; public static NetworkSoundEventDef reflectSound; public static float baseDuration = 0.75f; public static float reflectWindowDuration = 0.2f; public static Vector3 hitboxDimensions = new Vector3(8f, 8f, 16f); public static float force = 2800f; public static float selfForce = 2800f; public static float heatCost = 0.25f; public static GameObject effectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/TreebotShockwaveEffect.prefab").WaitForCompletion(); public static float reflectDamageCoefficient = 10f; private bool reflected; private ChildLocator childLocator; private Ray aimRay; private HeatController heatController; private static float hitboxOffset = 7.5f; public override void OnEnter() { //IL_009f: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); heatController = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)heatController)) { int stocks = 1; if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.secondary)) { stocks = ((EntityState)this).skillLocator.secondary.maxStock; } heatController.ConsumeHeat(heatCost, stocks); } reflected = false; EffectManager.SimpleMuzzleFlash(effectPrefab, ((EntityState)this).gameObject, "Muzzle", false); Util.PlaySound(attackSoundString, ((EntityState)this).gameObject); aimRay = ((BaseState)this).GetAimRay(); childLocator = ((Component)((EntityState)this).GetModelTransform()).GetComponent(); ((BaseState)this).StartAimMode(aimRay, 2f, false); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { if (((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } ((EntityState)this).characterMotor.ApplyForce(-((Ray)(ref aimRay)).direction * selfForce, true, false); } if (NetworkServer.active) { PushEnemiesServer(); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (NetworkServer.active && ((EntityState)this).fixedAge <= reflectWindowDuration) { DeflectServer(); } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= baseDuration) { ((EntityState)this).outer.SetNextStateToMain(); } } private void DeflectServer() { //IL_0014: 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_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0251: 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_028a: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { return; } Ray val = ((BaseState)this).GetAimRay(); int num = 0; Collider[] array = Physics.OverlapBox(((EntityState)this).transform.position + ((Ray)(ref val)).direction * hitboxOffset, hitboxDimensions, Quaternion.LookRotation(((Ray)(ref val)).direction, Vector3.up), LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.projectile)).mask)); for (int i = 0; i < array.Length; i++) { if (!Object.op_Implicit((Object)(object)array[i]) || !Object.op_Implicit((Object)(object)((Component)array[i]).gameObject)) { continue; } ProjectileController componentInParent = ((Component)array[i]).GetComponentInParent(); if (!Object.op_Implicit((Object)(object)componentInParent) || componentInParent.cannotBeDeleted || !((Object)(object)componentInParent.owner != (Object)(object)((EntityState)this).gameObject) || (Object.op_Implicit((Object)(object)componentInParent.teamFilter) && componentInParent.teamFilter.teamIndex == ((BaseState)this).GetTeam())) { continue; } bool flag = false; ProjectileSimple component = ((Component)componentInParent).gameObject.GetComponent(); ProjectileCharacterController component2 = ((Component)componentInParent).gameObject.GetComponent(); if ((!Object.op_Implicit((Object)(object)component) || (Object.op_Implicit((Object)(object)component) && component.desiredForwardSpeed == 0f)) && !Object.op_Implicit((Object)(object)component2)) { flag = true; } if (flag) { continue; } Vector3 val2 = ((Ray)(ref val)).origin + 90f * ((Ray)(ref val)).direction - ((Component)componentInParent).gameObject.transform.position; componentInParent.owner = ((EntityState)this).gameObject; num++; FireProjectileInfo val3 = default(FireProjectileInfo); val3.projectilePrefab = ((Component)componentInParent).gameObject; val3.position = ((Component)componentInParent).gameObject.transform.position; val3.rotation = ((EntityState)this).transform.rotation * Quaternion.FromToRotation(new Vector3(0f, 0f, 1f), val2); val3.owner = ((EntityState)this).gameObject; val3.damage = base.damageStat * reflectDamageCoefficient; val3.force = 2000f; val3.crit = ((BaseState)this).RollCrit(); val3.damageColorIndex = (DamageColorIndex)0; val3.target = null; ((FireProjectileInfo)(ref val3)).speedOverride = 120f; val3.useSpeedOverride = true; ((FireProjectileInfo)(ref val3)).fuseOverride = -1f; val3.useFuseOverride = false; FireProjectileInfo val4 = val3; ProjectileManager.instance.FireProjectile(val4); EntityState.Destroy((Object)(object)((Component)componentInParent).gameObject); if (!reflected) { reflected = true; if (Object.op_Implicit((Object)(object)reflectSound)) { EffectManager.SimpleSoundEffect(reflectSound.index, ((EntityState)this).transform.position, true); } } } } private void PushEnemiesServer() { //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_0034: 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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0131: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: 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_01a6: 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_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: 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_01dd: Expected O, but got Unknown //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { return; } List list = new List(); Collider[] array = Physics.OverlapBox(((EntityState)this).transform.position + ((Ray)(ref aimRay)).direction * hitboxOffset, hitboxDimensions, Quaternion.LookRotation(((Ray)(ref aimRay)).direction, Vector3.up), LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; ProjectileController componentInParent = ((Component)array[i]).GetComponentInParent(); if (!Object.op_Implicit((Object)(object)healthComponent) || Object.op_Implicit((Object)(object)componentInParent) || list.Contains(healthComponent)) { continue; } list.Add(healthComponent); TeamComponent component2 = ((Component)healthComponent).GetComponent(); if (component2.teamIndex == ((EntityState)this).teamComponent.teamIndex) { continue; } CharacterBody body = healthComponent.body; if (Object.op_Implicit((Object)(object)body)) { Vector3 val = force * ((Ray)(ref aimRay)).direction; if (val.y < 1200f && !body.isFlying) { val.y = 1200f; } DamageInfo val2 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)2115), crit = false, dotIndex = (DotIndex)(-1), force = val, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.ScaleForceToMass); DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.ResetVictimForce); healthComponent.TakeDamage(val2); } } } 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 Flaregun : BaseState { public static GameObject muzzleflashEffectPrefab = Resources.Load("prefabs/effects/impacteffects/missileexplosionvfx"); public static GameObject projectilePrefab; public static float damageCoefficient = 4f; public static float baseDuration = 0.5f; public static int maxExplosions = 8; public int explosionCount; private float duration; private float costPerExplosion; public override void OnEnter() { //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_0022: 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_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) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); Util.PlaySound("Play_bandit_M2_shot", ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "Muzzle", false); costPerExplosion = SetCostPerExplosion(); explosionCount = 1; HeatController component = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { float heatPercent = component.GetHeatPercent(); explosionCount = SetExplosionCount(heatPercent); int stocks = 1; if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.special)) { stocks = ((EntityState)this).skillLocator.special.maxStock; } component.ConsumeHeat((float)explosionCount * costPerExplosion, stocks); } if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(GetProjectilePrefab(), ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, (float)explosionCount, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public virtual GameObject GetProjectilePrefab() { return projectilePrefab; } public virtual int SetExplosionCount(float heatPercent) { int num = Mathf.FloorToInt(Mathf.Lerp(0f, (float)maxExplosions, heatPercent)); return Mathf.Max(1, num); } public virtual float SetCostPerExplosion() { return 1f / (float)maxExplosions; } 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 SuppressiveFire : BaseState { public static float baseSelfForce = 450f; public static GameObject muzzleflashEffectPrefab = Resources.Load("prefabs/effects/impacteffects/missileexplosionvfx"); public static GameObject projectilePrefab; public static float damageCoefficient = 1.2f; public static float baseDuration = 0.1f; public static float heatCost = 0.08f; private float duration; private HeatController heatController; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; heatController = ((EntityState)this).GetComponent(); FireProjectile(); } public void FireProjectile() { //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_0009: 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_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); Util.PlaySound("Play_mage_m1_shoot", ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "Muzzle", false); if (Object.op_Implicit((Object)(object)heatController)) { int stocks = 1; if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.secondary)) { stocks = ((EntityState)this).skillLocator.secondary.maxStock; } heatController.ConsumeHeat(heatCost, stocks); } if (!((EntityState)this).isAuthority) { return; } ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { Ray aimRay2 = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay2)).direction; if (direction.y < 0f) { direction.x = 0f; direction.z = 0f; ((EntityState)this).characterMotor.ApplyForce(direction * (0f - baseSelfForce), true, false); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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)1; } } } namespace EntityStates.SS2UStates.Nucleator { public abstract class BaseChargeState : BaseState { public static float overchargeFraction = 2f / 3f; public static string overchargeSoundString = "SS2UNucleatorAlarm"; public float baseDuration = 1.5f; public float overchargeHealthFraction = 0.06f; public float overchargeDamageFrequency = 10f; public float overchargeHealingFraction = 0.015f; private bool playedOverchargeSound = false; private float overchargeDamageDuration; private float overchargeDamageStopwatch; protected float duration; private NucleatorChargeComponent chargeComponent; private NucleatorNetworkComponent networkComponent; private ShakeEmitter shakeEmitter; public float chargeFraction; public override void OnEnter() { ((BaseState)this).OnEnter(); chargeFraction = 0f; duration = baseDuration; overchargeDamageStopwatch = 0f; overchargeDamageDuration = 1f / (overchargeDamageFrequency * base.attackSpeedStat); networkComponent = ((EntityState)this).GetComponent(); chargeComponent = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.StartCharge(); } } public override void FixedUpdate() { //IL_0118: 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_0149: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); chargeFraction = Mathf.Min(1f, ((EntityState)this).fixedAge / duration); if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.SetCharge(chargeFraction, overchargeFraction); } bool flag = chargeFraction > overchargeFraction; bool flag2 = Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isPlayerControlled; bool flag3 = Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(BuffCore.nucleatorSpecialBuff); bool flag4 = flag2 && flag && !flag3; if (flag4) { chargeFraction = overchargeFraction; flag = false; } if (flag) { if (!playedOverchargeSound) { OnOverchargeStart(); playedOverchargeSound = true; Util.PlaySound(overchargeSoundString, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { HurtSelfAuthority(); shakeEmitter = ShakeEmitter.CreateSimpleShakeEmitter(((EntityState)this).transform.position, new Wave { amplitude = 0.5f, cycleOffset = 0f, frequency = 10f }, 0.4f, 20f, false); ((Component)shakeEmitter).transform.parent = ((EntityState)this).transform; } } else if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).healthComponent)) { overchargeDamageStopwatch += Time.fixedDeltaTime; if (overchargeDamageStopwatch >= overchargeDamageDuration) { overchargeDamageStopwatch -= overchargeDamageDuration; HurtSelfAuthority(); } } } if (((EntityState)this).isAuthority && (chargeFraction >= 1f || !GetInputPressed() || flag4)) { if (chargeFraction > overchargeFraction) { SetNextStateOvercharge(); } else { SetNextState(); } } } protected virtual void OnOverchargeStart() { } public override void OnExit() { if (Object.op_Implicit((Object)(object)shakeEmitter)) { EntityState.Destroy((Object)(object)shakeEmitter); } if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.Reset(); } ((EntityState)this).OnExit(); } private void HurtSelfAuthority() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_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_007c: 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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) if (!((EntityState)this).isAuthority) { return; } if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !((EntityState)this).characterBody.HasBuff(BuffCore.nucleatorSpecialBuff)) { DamageInfo val = new DamageInfo(); val.damage = ((EntityState)this).healthComponent.combinedHealth * overchargeHealthFraction; val.position = ((EntityState)this).characterBody.corePosition; val.force = Vector3.zero; val.damageColorIndex = (DamageColorIndex)0; val.crit = false; val.attacker = null; val.inflictor = null; val.damageType = DamageTypeCombo.op_Implicit((DamageType)1); val.procCoefficient = 0f; val.procChainMask = default(ProcChainMask); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.mainHurtBox)) { NetworkingHelpers.DealDamage(val, ((EntityState)this).characterBody.mainHurtBox, true, false, false); } } else if (Object.op_Implicit((Object)(object)((EntityState)this).healthComponent)) { if (NetworkServer.active) { ((EntityState)this).healthComponent.HealFraction(overchargeHealingFraction, default(ProcChainMask)); } else if (Object.op_Implicit((Object)(object)networkComponent)) { networkComponent.HealFractionAuthority(overchargeHealingFraction); } } } protected virtual bool GetInputPressed() { return false; } protected abstract void SetNextState(); protected abstract void SetNextStateOvercharge(); } public class NucleatorMain : GenericCharacterMain { public override void Update() { ((GenericCharacterMain)this).Update(); if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded && Config.GetKeyPressed(Config.RestKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new RestEmote(), (InterruptPriority)0); } } } } namespace EntityStates.SS2UStates.Nucleator.Utility { public class ChargeLeap : BaseChargeState { public static ConfigEntry stationaryLeap; private bool isStationary = false; public override void OnEnter() { base.OnEnter(); Util.PlaySound("Play_loader_shift_activate", ((EntityState)this).gameObject); if (stationaryLeap.Value) { isStationary = true; ((EntityState)this).PlayAnimation("FullBody, Override", "UtilityCharge", "Utility.playbackRate", duration, 0f); } else { ((EntityState)this).PlayAnimation("Gesture, Override", "UtilityChargeWalk", "Utility.playbackRate", duration, 0f); } } public override void FixedUpdate() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((BaseState)this).StartAimMode(((BaseState)this).GetAimRay(), 2f, false); if (((EntityState)this).isAuthority && isStationary) { ((EntityState)this).characterMotor.moveDirection = Vector3.zero; ((EntityState)this).characterMotor.jumpCount = ((EntityState)this).characterBody.maxJumpCount; } } public override void OnExit() { Util.PlaySound("Play_loader_shift_release", ((EntityState)this).gameObject); if (isStationary) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ((EntityState)this).characterMotor.jumpCount = 0; } else { ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); } base.OnExit(); } protected override void SetNextState() { EntityStateMachine val = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Body"); if (Object.op_Implicit((Object)(object)val)) { val.SetNextState((EntityState)(object)new FireLeap { charge = chargeFraction, animString = (isStationary ? "UtilityRelease" : "UtilityReleaseWalk") }); } ((EntityState)this).outer.SetNextStateToMain(); } protected override void SetNextStateOvercharge() { EntityStateMachine val = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Body"); if (Object.op_Implicit((Object)(object)val)) { val.SetNextState((EntityState)(object)new FireLeapOvercharge { charge = chargeFraction }); } ((EntityState)this).outer.SetNextStateToMain(); } protected override bool GetInputPressed() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isPlayerControlled) { return true; } return Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill3.down; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class FireLeap : BaseCharacterMain { public static ConfigEntry leapAirControl; public static float minimumDuration = 0.3f; public static float upwardVelocity = 7f; public static float forwardVelocity = 3f; public static float aimVelocity = 3f; public static float airControl = 0.15f; public static float minimumY = 0.05f; public static float maxExitYVelocity = 24f; public static GameObject blastEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/LoaderGroundSlam.prefab").WaitForCompletion(); public static float blastForce = 3000f; public static string soundLoopStartEvent = "Play_acrid_shift_fly_loop"; public static string soundLoopStopEvent = "Stop_acrid_shift_fly_loop"; public static string leapSoundString = "SS2UNucleatorSkill3"; public string animString = "UtilityRelease"; public float charge; private float previousAirControl; protected bool isCrit; private bool detonateNextFrame; public override void OnEnter() { //IL_0069: 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_0070: 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_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_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: 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_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_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01da: 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_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: 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_0219: 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_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) ((BaseCharacterMain)this).OnEnter(); Util.PlaySound(soundLoopStartEvent, ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("Body", animString); previousAirControl = ((EntityState)this).characterMotor.airControl; detonateNextFrame = false; isCrit = ((BaseState)this).RollCrit(); ((BaseState)this).damageStat = ((BaseState)this).damageStat * ((BaseState)this).attackSpeedStat; CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); if (((EntityState)this).isAuthority) { ((EntityState)this).characterBody.isSprinting = true; ((EntityState)this).characterBody.RecalculateStats(); ((BaseState)this).moveSpeedStat = ((EntityState)this).characterBody.moveSpeed; if (!leapAirControl.Value) { ((EntityState)this).characterMotor.airControl = 0.15f; } else { float num = ((EntityState)this).characterBody.moveSpeed / (((EntityState)this).characterBody.baseMoveSpeed * ((!((EntityState)this).characterBody.isSprinting) ? 1f : ((EntityState)this).characterBody.sprintingSpeedMultiplier)); num = Mathf.Min(num, 3f); CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.airControl *= num; } } if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.ArmorBoost); } if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; if (((EntityState)this).characterMotor.isGrounded) { direction.y = Mathf.Max(direction.y, minimumY); } Vector3 val = ((Vector3)(ref direction)).normalized * aimVelocity * ((BaseState)this).moveSpeedStat * CalculateChargeMultiplier(); Vector3 val2 = Vector3.up * upwardVelocity; Vector3 val3 = new Vector3(direction.x, 0f, direction.z); Vector3 val4 = ((Vector3)(ref val3)).normalized * forwardVelocity; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); ((EntityState)this).characterMotor.velocity = val + val2 + val4; ((EntityState)this).characterMotor.onMovementHit += new MovementHitDelegate(OnMovementHit); } } public override void FixedUpdate() { //IL_0048: 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_0075: Unknown result type (might be due to invalid IL or missing references) ((BaseCharacterMain)this).FixedUpdate(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { bool flag = ((EntityState)this).fixedAge >= minimumDuration; if (flag && SneedUtils.IsEnemyInSphere(2.5f, ((EntityState)this).transform.position, ((BaseState)this).GetTeam())) { detonateNextFrame = true; } ((EntityState)this).characterMotor.moveDirection = ((EntityState)this).inputBank.moveVector; bool flag2 = ((BaseCharacterController)((EntityState)this).characterMotor).Motor.GroundingStatus.IsStableOnGround && !((BaseCharacterController)((EntityState)this).characterMotor).Motor.LastGroundingStatus.IsStableOnGround; if (flag && (detonateNextFrame || flag2)) { DetonateAuthority(); ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { //IL_004e: 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_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown Util.PlaySound(soundLoopStopEvent, ((EntityState)this).gameObject); ((EntityState)this).characterMotor.airControl = previousAirControl; if (((EntityState)this).isAuthority) { ((EntityState)this).characterMotor.onMovementHit -= new MovementHitDelegate(OnMovementHit); } CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.ArmorBoost); } ((BaseCharacterMain)this).OnExit(); if (Object.op_Implicit((Object)(object)((BaseCharacterMain)this).modelAnimator)) { ((EntityState)this).PlayAnimation("FullBody, Override", "UtilityLanding", "Utility.playbackRate", 0.5f, 0f); } } public override void UpdateAnimationParameters() { } 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; } protected virtual float CalculateChargeMultiplier() { return Mathf.Lerp(1f, 1.5f, charge / BaseChargeState.overchargeFraction); } private void OnMovementHit(ref MovementHitInfo movementHitInfo) { detonateNextFrame = true; } protected virtual float CalcDamageCoefficient() { return Mathf.Lerp(4f, 8f, charge / BaseChargeState.overchargeFraction); } protected virtual float GetBlastRadius() { return 12f; } protected virtual void DetonateAuthority() { //IL_001f: 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_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_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_0054: Expected O, but got Unknown //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_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_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00d7: 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_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_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: 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_010e: 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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Expected O, but got Unknown //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) if (!((EntityState)this).isAuthority) { return; } float blastRadius = GetBlastRadius(); EffectManager.SpawnEffect(blastEffectPrefab, new EffectData { rotation = ((EntityState)this).transform.rotation, origin = ((EntityState)this).transform.position, scale = blastRadius }, true); BlastAttack val = new BlastAttack { attacker = ((EntityState)this).gameObject, attackerFiltering = (AttackerFiltering)2, baseDamage = ((BaseState)this).damageStat * CalcDamageCoefficient(), baseForce = blastForce, bonusForce = Vector3.zero, canRejectForce = true, crit = isCrit, damageColorIndex = (DamageColorIndex)0, damageType = (DamageTypeCombo.op_Implicit((DamageType)32) | DamageTypeCombo.op_Implicit((DamageSource)4) | DamageTypeCombo.op_Implicit((DamageTypeExtended)8192)), falloffModel = (FalloffModel)0, inflictor = ((EntityState)this).gameObject, losType = (LoSType)0, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = blastRadius, teamIndex = ((BaseState)this).GetTeam() }; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(BuffCore.nucleatorSpecialBuff)) { DamageAPI.AddModdedDamageType(val, DamageTypeCore.ModdedDamageTypes.NucleatorRadiationOnHit); } DamageAPI.AddModdedDamageType(val, DamageTypeCore.ModdedDamageTypes.AntiFlyingForce); DamageAPI.AddModdedDamageType(val, DamageTypeCore.ModdedDamageTypes.ResetVictimForce); val.Fire(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { if (((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } else if (((EntityState)this).characterMotor.velocity.y > maxExitYVelocity) { ((EntityState)this).characterMotor.velocity.y = maxExitYVelocity; } ((EntityState)this).characterMotor.velocity.x = 0f; ((EntityState)this).characterMotor.velocity.z = 0f; } } } public class FireLeapOvercharge : FireLeap { protected override float CalculateChargeMultiplier() { return Mathf.Lerp(1.5f, 2f, (charge - BaseChargeState.overchargeFraction) / (1f - BaseChargeState.overchargeFraction)); } protected override float CalcDamageCoefficient() { return Mathf.Lerp(8f, 12f, (charge - BaseChargeState.overchargeFraction) / (1f - BaseChargeState.overchargeFraction)); } protected override float GetBlastRadius() { return 20f; } } } namespace EntityStates.SS2UStates.Nucleator.Special { public class BuffSelf : BaseState { public static float baseBuffDuration = 6f; protected float buffDurationRemaining; public override void OnEnter() { ((BaseState)this).OnEnter(); SetBuffDuration(); if (NetworkServer.active) { SetBuffsServer(); } } public virtual void SetBuffDuration() { buffDurationRemaining = baseBuffDuration; Util.PlaySound("SS2UNucleatorSkill4a", ((EntityState)this).gameObject); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); buffDurationRemaining -= Time.fixedDeltaTime; if (NetworkServer.active) { SetBuffsServer(); } if (((EntityState)this).isAuthority && buffDurationRemaining <= 0f) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { buffDurationRemaining = 0f; if (NetworkServer.active) { SetBuffsServer(); } ((EntityState)this).OnExit(); } public void SetBuffsServer() { if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !NetworkServer.active) { return; } int buffCount = ((EntityState)this).characterBody.GetBuffCount(BuffCore.nucleatorSpecialBuff); int num = Mathf.CeilToInt(buffDurationRemaining); if (num < buffCount) { int num2 = buffCount - num; for (int i = 0; i < num2; i++) { ((EntityState)this).characterBody.RemoveBuff(BuffCore.nucleatorSpecialBuff); } } else if (num > buffCount) { int num3 = num - buffCount; for (int j = 0; j < num3; j++) { ((EntityState)this).characterBody.AddBuff(BuffCore.nucleatorSpecialBuff); } } } } public class BuffSelfScepter : BuffSelf { public new static float baseBuffDuration = 12f; public override void SetBuffDuration() { buffDurationRemaining = baseBuffDuration; Util.PlaySound("SS2UNucleatorSkill4c", ((EntityState)this).gameObject); } } } namespace EntityStates.SS2UStates.Nucleator.Secondary { public class ChargeSecondary : BaseChargeState { private uint chargePlayID; public override void OnEnter() { base.OnEnter(); ((EntityState)this).PlayCrossfade("Gesture, Override", "SecondaryCharge", "Secondary.playbackRate", duration, 0.1f); chargePlayID = Util.PlaySound("SS2UNucleatorChargePrimary", ((EntityState)this).gameObject); } public override void FixedUpdate() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((BaseState)this).StartAimMode(((BaseState)this).GetAimRay(), 2f, false); } public override void OnExit() { AkSoundEngine.StopPlayingID(chargePlayID); ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); base.OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } protected override void SetNextState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireSecondary { charge = chargeFraction }); } protected override void SetNextStateOvercharge() { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireSecondaryOvercharge { charge = chargeFraction }); } protected override bool GetInputPressed() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isPlayerControlled) { return true; } return Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill2.down; } } public class FireSecondary : BaseState { public static float force = 3000f; public static float selfKnockbackForce = 1600f; public static float range = 40f; public static float baseDuration = 0.4f; public static GameObject coneEffectPrefab; public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/BeetleQueen/BeetleAcidImpact.prefab").WaitForCompletion(); public float charge; private float duration; 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_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_0293: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: 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_02bd: 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_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: 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) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: 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_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0322: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_0338: Unknown result type (might be due to invalid IL or missing references) //IL_0344: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Expected O, but got Unknown //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0390: Unknown result type (might be due to invalid IL or missing references) //IL_039d: 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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_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_00c5: 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_00c8: 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_00cf: 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_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) //IL_00f6: Expected O, but got Unknown //IL_00f9: 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_0109: 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_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: 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_0133: 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_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0166: 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_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: 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_0190: Unknown result type (might be due to invalid IL or missing references) //IL_019a: 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_01b0: Expected O, but got Unknown //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: 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_01c4: 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_01da: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Expected O, but got Unknown //IL_0210: 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_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0221: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Expected O, but got Unknown //IL_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration; base.damageStat *= base.attackSpeedStat; Util.PlaySound("Play_acrid_shift_land", ((EntityState)this).gameObject); Ray aimRay = ((BaseState)this).GetAimRay(); if (Object.op_Implicit((Object)(object)coneEffectPrefab)) { Transform val = null; ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)modelChildLocator)) { val = modelChildLocator.FindChild("MuzzleCenter"); } if (Object.op_Implicit((Object)(object)val)) { GameObject effectPrefab = GetEffectPrefab(); Quaternion val2 = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) * Quaternion.Euler(90f, 0f, 0f); EffectManager.SpawnEffect(effectPrefab, new EffectData { scale = 5f, rotation = val2, origin = val.position + ((Ray)(ref aimRay)).direction * 3.2f }, false); EffectManager.SpawnEffect(effectPrefab, new EffectData { scale = 5f, rotation = val2 * Quaternion.Euler(0f, 60f, 0f), origin = val.position + ((Ray)(ref aimRay)).direction * 9f }, false); EffectManager.SpawnEffect(effectPrefab, new EffectData { scale = 5f, rotation = val2 * Quaternion.Euler(0f, 120f, 0f), origin = val.position + ((Ray)(ref aimRay)).direction * 15f }, false); EffectManager.SpawnEffect(effectPrefab, new EffectData { scale = 5f, rotation = val2 * Quaternion.Euler(0f, 180f, 0f), origin = val.position + ((Ray)(ref aimRay)).direction * 21f }, false); EffectManager.SpawnEffect(effectPrefab, new EffectData { scale = 5f, rotation = val2 * Quaternion.Euler(0f, 240f, 0f), origin = val.position + ((Ray)(ref aimRay)).direction * 27f }, false); } } if (((EntityState)this).isAuthority) { BulletAttack val3 = new BulletAttack { aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = base.damageStat * GetDamageCoefficient(), damageType = DamageTypeCombo.op_Implicit((DamageType)32), damageColorIndex = (DamageColorIndex)0, minSpread = 0f, maxSpread = 0f, falloffModel = (FalloffModel)0, force = 4000f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = "MuzzleCenter", smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = 7f, weapon = ((EntityState)this).gameObject, tracerEffectPrefab = null, hitEffectPrefab = hitEffectPrefab, maxDistance = range, stopperMask = ((LayerIndex)(ref LayerIndex.noCollision)).mask }; val3.damageType.damageSource = (DamageSource)2; DamageAPI.AddModdedDamageType(val3, DamageTypeCore.ModdedDamageTypes.ScaleForceToMass); DamageAPI.AddModdedDamageType(val3, DamageTypeCore.ModdedDamageTypes.ResetVictimForce); DamageAPI.AddModdedDamageType(val3, DamageTypeCore.ModdedDamageTypes.GroundedForceCorrection); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.HasBuff(BuffCore.nucleatorSpecialBuff)) { DamageAPI.AddModdedDamageType(val3, DamageTypeCore.ModdedDamageTypes.NucleatorRadiationOnHit); } ModifyBulletAttack(val3); val3.Fire(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { if (((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } if (!((EntityState)this).characterMotor.isGrounded && ((EntityState)this).characterMotor.velocity != Vector3.zero) { ((EntityState)this).characterMotor.ApplyForce((0f - selfKnockbackForce) * ((Ray)(ref aimRay)).direction, false, false); } } } float num = 8f; ((BaseState)this).AddRecoil(-0.5f * num, -0.8f * num, -0.3f * num, 0.3f * num); ((EntityState)this).PlayAnimation("Gesture, Override", "SecondaryRelease", "Secondary.playbackRate", 1.2f, 0f); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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)1; } protected virtual float GetDamageCoefficient() { float num = charge / BaseChargeState.overchargeFraction; return Mathf.Lerp(2f, 7.2f, num); } protected virtual GameObject GetEffectPrefab() { return coneEffectPrefab; } protected virtual void ModifyBulletAttack(BulletAttack ba) { } } public class FireSecondaryOvercharge : FireSecondary { public static GameObject overchargeEffectPrefab; public override void OnEnter() { base.OnEnter(); Util.PlaySound("Play_voidman_m2_explode", ((EntityState)this).gameObject); } protected override GameObject GetEffectPrefab() { return overchargeEffectPrefab; } protected override float GetDamageCoefficient() { float num = (charge - BaseChargeState.overchargeFraction) / (1f - BaseChargeState.overchargeFraction); return Mathf.Lerp(7.2f, 10.8f, num); } protected override void ModifyBulletAttack(BulletAttack ba) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) DamageAPI.AddModdedDamageType(ba, DamageTypeCore.ModdedDamageTypes.Root5s); } } } namespace EntityStates.SS2UStates.Nucleator.Primary { public class ChargeIrradiate : BaseChargeState, IStepSetter { private bool playedChargeAnim; private int step; private uint chargePlayID; public override void OnEnter() { base.OnEnter(); playedChargeAnim = false; chargePlayID = Util.PlaySound("SS2UNucleatorChargePrimary", ((EntityState)this).gameObject); } public override void OnExit() { if (playedChargeAnim) { ((EntityState)this).PlayAnimation("Gesture, Override", "BufferEmpty"); } AkSoundEngine.StopPlayingID(chargePlayID); base.OnExit(); } public override void FixedUpdate() { //IL_000a: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((BaseState)this).StartAimMode(((BaseState)this).GetAimRay(), 2f, false); } protected override void OnOverchargeStart() { playedChargeAnim = true; ((EntityState)this).PlayCrossfade("Gesture, Override", "PrimaryCharge", "Primary.playbackRate", duration * (1f - BaseChargeState.overchargeFraction), 0.2f); } protected override bool GetInputPressed() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isPlayerControlled) { return true; } return Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill1.down; } protected override void SetNextState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireIrradiate { charge = chargeFraction, step = step }); } protected override void SetNextStateOvercharge() { ((EntityState)this).outer.SetNextState((EntityState)(object)new FireIrradiateOvercharge { charge = chargeFraction }); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } public void SetStep(int i) { if (i > 1) { i = 0; } step = i; } } public class FireIrradiate : BaseState { public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/MuzzleflashCroco.prefab").WaitForCompletion(); public static GameObject projectilePrefab; public static float minDamageCoefficient = 2f; public static float maxDamageCoefficient = 7.2f; public static float minForce = 1000f; public static float maxForce = 2000f; public static float minProjectileSpeed = 60f; public static float maxProjectileSpeed = 90f; public static float baseDuration = 0.4f; public int step; public float charge = 0f; private float duration; public override void OnEnter() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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_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(); duration = baseDuration; base.damageStat *= base.attackSpeedStat; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); Util.PlaySound("SS2UNucleatorSkill1", ((EntityState)this).gameObject); bool flag = step == 0; string text = (flag ? "PrimaryLightR" : "PrimaryLightL"); ((EntityState)this).PlayAnimation("Gesture, Override", text, "Primary.playbackRate", 1f, 0f); string text2 = (flag ? "MuzzleR" : "MuzzleL"); if (Object.op_Implicit((Object)(object)muzzleflashEffectPrefab)) { EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, text2, false); } if (((EntityState)this).isAuthority) { float num = charge / BaseChargeState.overchargeFraction; float num2 = Mathf.Lerp(minDamageCoefficient, maxDamageCoefficient, num); float num3 = Mathf.Lerp(minForce, maxForce, num); ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * num2, num3, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, Mathf.Lerp(minProjectileSpeed, maxProjectileSpeed, num), (DamageTypeCombo?)null); } float num4 = 8f; ((BaseState)this).AddRecoil(-0.5f * num4, -0.8f * num4, -0.3f * num4, 0.3f * num4); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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)1; } } public class FireIrradiateOvercharge : BaseState { public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/MuzzleflashCroco.prefab").WaitForCompletion(); public static GameObject projectilePrefab; public static float minDamageCoefficient = 7.2f; public static float maxDamageCoefficient = 10.8f; public static float minForce = 3000f; public static float maxForce = 3000f; public static float minProjectileSpeed = 20f; public static float maxProjectileSpeed = 20f; public static float baseDuration = 0.4f; public float charge = 0f; private float duration; public override void OnEnter() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) ((BaseState)this).OnEnter(); duration = baseDuration; base.damageStat *= base.attackSpeedStat; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); Util.PlaySound("SS2UCyborgUtility", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("Gesture, Override", "PrimaryBig", "Primary.playbackRate", 1f, 0f); if (Object.op_Implicit((Object)(object)muzzleflashEffectPrefab)) { EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "MuzzleR", false); } if (((EntityState)this).isAuthority) { float num = (charge - BaseChargeState.overchargeFraction) / (1f - BaseChargeState.overchargeFraction); float num2 = Mathf.Lerp(minDamageCoefficient, maxDamageCoefficient, num); float num3 = Mathf.Lerp(minForce, maxForce, num); ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * num2, num3, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, Mathf.Lerp(minProjectileSpeed, maxProjectileSpeed, num), (DamageTypeCombo?)null); } float num4 = 16f; ((BaseState)this).AddRecoil(-0.5f * num4, -0.8f * num4, -0.3f * num4, 0.3f * num4); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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; } } } namespace EntityStates.SS2UStates.Nemmando { public class BladeOfCessation2 : BaseCustomSkillState { public static string hitboxString = "SwordHitbox"; public static float damageCoefficient = 1.6f; public static float procCoefficient = 1f; public static float baseDuration = 1.1f; public static float baseEarlyExitTime = 0.65f; public static float hitboxStartTime = 0.07f; public static float hitboxEndTime = 0.469f; public static float baseEffectTime = 0.08f; public static float attackRecoil = 0.5f; public static float hitHopVelocity = 5f; public static float hitPauseDuration = 0.11f; public static float hitBloom = 0.5f; public int currentSwing; private OverlapAttack overlapAttack; private Animator animator; private float duration; private float earlyExitDuration; private bool hasFired; private bool hasHopped; private bool playedEffect; private float stopwatch; private float hitPauseTimer; private HitStopCachedState hitStopCachedState; private bool inHitPause; private float effectTime; private NemmandoController nemmandoController; private Vector3 storedVelocity; public bool forceTriggerOnSkillActivate = false; public override void OnEnter() { //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Expected O, but got Unknown //IL_00eb: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); if (((EntityState)this).isAuthority && forceTriggerOnSkillActivate && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.primary) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.OnSkillActivated(((EntityState)this).skillLocator.primary); } duration = baseDuration / ((BaseState)this).attackSpeedStat; earlyExitDuration = duration * baseEarlyExitTime; effectTime = duration * baseEffectTime; hasFired = false; nemmandoController = ((EntityState)this).GetComponent(); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; animator = ((EntityState)this).GetModelAnimator(); HitBoxGroup hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxString); bool isCrit = ((BaseState)this).RollCrit(); overlapAttack = new OverlapAttack(); DamageAPI.AddModdedDamageType(overlapAttack, DamageTypeCore.ModdedDamageTypes.GougeOnHit); overlapAttack.attacker = ((EntityState)this).gameObject; overlapAttack.inflictor = ((EntityState)this).gameObject; overlapAttack.teamIndex = ((BaseState)this).GetTeam(); overlapAttack.damage = damageCoefficient * ((BaseState)this).damageStat; overlapAttack.procCoefficient = procCoefficient; overlapAttack.hitEffectPrefab = effectComponent.impactEffect; overlapAttack.forceVector = Vector3.zero; overlapAttack.pushAwayForce = 169f; overlapAttack.hitBoxGroup = hitBoxGroup; overlapAttack.isCrit = isCrit; overlapAttack.impactSound = effectComponent.impactSoundDef.index; overlapAttack.damageType.damageSource = (DamageSource)1; string swingSound = effectComponent.swingSound; Util.PlaySound(swingSound, ((EntityState)this).gameObject); PlayAnimation(); } public override void FixedUpdate() { //IL_0044: 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_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_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) ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer <= 0f && inHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; if (storedVelocity != Vector3.zero) { ((EntityState)this).characterMotor.velocity = storedVelocity; } } if (!inHitPause) { stopwatch += Time.fixedDeltaTime; } 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("Primary.rate", 0f); } } if (((EntityState)this).isAuthority) { if (stopwatch >= duration * hitboxStartTime && stopwatch <= duration * hitboxEndTime) { FireAttack(); } if (((EntityState)this).fixedAge > effectTime && !playedEffect) { playedEffect = true; string muzzleString = ((currentSwing % 2 == 0) ? "SwingLeft" : "SwingRight"); PlaySwingEffect(muzzleString); } if (((EntityState)this).fixedAge >= earlyExitDuration && ((EntityState)this).inputBank.skill1.down) { BladeOfCessation2 nextState = new BladeOfCessation2 { currentSwing = currentSwing + 1, forceTriggerOnSkillActivate = true }; ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } else if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { if (!hasFired) { FireAttack(); } ((EntityState)this).OnExit(); } private void PlayAnimation() { string text = ((currentSwing % 2 == 0) ? "Primary1" : "Primary2"); bool @bool = animator.GetBool("isMoving"); bool bool2 = animator.GetBool("isGrounded"); if (!nemmandoController.chargingDecisiveStrike) { if (!@bool && bool2 && !nemmandoController.rolling) { ((EntityState)this).PlayCrossfade("FullBody, Override", text, "Primary.rate", duration, 0.05f); } ((EntityState)this).PlayCrossfade("UpperBody, Override", text, "Primary.rate", duration, 0.05f); } } public void FireAttack() { //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_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) if (!hasFired) { hasFired = true; ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } if (!((EntityState)this).isAuthority || !overlapAttack.Fire((List)null)) { return; } ((EntityState)this).characterBody.AddSpreadBloom(hitBloom); ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity / Mathf.Sqrt(((BaseState)this).attackSpeedStat)); } hasHopped = true; } if (!inHitPause) { hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Primary.rate"); hitPauseTimer = hitPauseDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; if (((EntityState)this).characterMotor.velocity != Vector3.zero) { storedVelocity = ((EntityState)this).characterMotor.velocity; } } } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write((byte)currentSwing); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); currentSwing = reader.ReadByte(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class ChargeBarrageCharge : BaseSkillState { public static float baseChargeDuration = 1.5f; private float chargeDuration; private ChildLocator childLocator; private Animator animator; private Transform modelBaseTransform; private uint chargePlayID; private bool hasFinishedCharging; private GameObject chargeEffect; public override void OnEnter() { ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(3f, false); chargeDuration = baseChargeDuration; childLocator = ((EntityState)this).GetModelChildLocator(); modelBaseTransform = ((EntityState)this).GetModelBaseTransform(); animator = ((EntityState)this).GetModelAnimator(); hasFinishedCharging = false; chargePlayID = Util.PlaySound("SS2UNemmandoSubmissionCharge", ((EntityState)this).gameObject); chargeEffect = ((Component)childLocator.FindChild("GunChargeEffect")).gameObject; if (Object.op_Implicit((Object)(object)chargeEffect)) { chargeEffect.SetActive(true); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); float num = CalcCharge(); if (num >= 1f && !hasFinishedCharging) { hasFinishedCharging = true; Util.PlaySound("SS2UNemmandoSubmissionReady", ((EntityState)this).gameObject); } if (((EntityState)this).isAuthority && !((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= 0.1f) { ChargeBarrageFire chargeBarrageFire = new ChargeBarrageFire(); chargeBarrageFire.charge = num; ((EntityState)this).outer.SetNextState((EntityState)(object)chargeBarrageFire); } } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); } public override void OnExit() { AkSoundEngine.StopPlayingID(chargePlayID); ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeEffect)) { chargeEffect.SetActive(false); } } 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)7; } } public class ChargeBarrageFire : BaseState { public float charge; public static float damageCoefficient = 1.2f; public static float procCoefficient = 0.5f; public static uint bulletCountPerShot = 4u; public static float range = 128f; public static float maxSpread = 12f; public static int minBulletCount = 2; public static int maxBulletCount = 5; public static float baseDuration = 0.8f; public static float minTimeBetweenShots = 0.2f; public static float maxTimeBetweenShots = 0.075f; public static float recoil = 3f; public static float force = 200f; public static float bulletRadius = 2f; private int totalBulletsFired; private int bulletCount; public float stopwatchBetweenShots; private Animator modelAnimator; private Transform modelTransform; private float duration; private float durationBetweenShots; private bool isCrit; public static GameObject tracerEffectPrefab; public static GameObject muzzleFlashEffect = LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/FusionCellExplosion"); public static GameObject impactEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommando.prefab").WaitForCompletion(); public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.SetSpreadBloom(0.2f, false); ((EntityState)this).characterBody.isSprinting = false; duration = baseDuration; durationBetweenShots = Util.Remap(charge, 0f, 1f, minTimeBetweenShots, maxTimeBetweenShots) / base.attackSpeedStat; bulletCount = (int)((float)Mathf.RoundToInt(Util.Remap(charge, 0f, 1f, (float)minBulletCount, (float)maxBulletCount)) * base.attackSpeedStat); modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).characterBody.SetAimTimer(2f); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; isCrit = ((BaseState)this).RollCrit(); FireBullet(); } private void FireBullet() { //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_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_00a5: 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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: 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_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015c: 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_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Expected O, but got Unknown //IL_0199: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); string text = "Muzzle"; EffectManager.SimpleMuzzleFlash(FireBarrage.effectPrefab, ((EntityState)this).gameObject, text, false); ((EntityState)this).PlayCrossfade("UpperBody, Override", "Special", "Special.rate", durationBetweenShots, 0.05f); Util.PlaySound("SS2UNemmandoSubmissionFire", ((EntityState)this).gameObject); ((BaseState)this).AddRecoil(-0.8f * recoil, -1f * recoil, -0.1f * recoil, 0.15f * recoil); if (((EntityState)this).isAuthority) { BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = maxSpread, bulletCount = bulletCountPerShot, damage = damageCoefficient * base.damageStat, force = force, tracerEffectPrefab = tracerEffectPrefab, muzzleName = text, hitEffectPrefab = impactEffectPrefab, isCrit = isCrit, radius = bulletRadius, smartCollision = true, damageType = DamageTypeCombo.op_Implicit((DamageType)0), spreadPitchScale = 0.5f, spreadYawScale = 0.5f, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, falloffModel = (FalloffModel)1, maxDistance = range }; val.damageType.damageSource = (DamageSource)8; val.Fire(); } ((EntityState)this).characterBody.AddSpreadBloom(2f * FireBarrage.spreadBloomValue); totalBulletsFired++; } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatchBetweenShots += Time.fixedDeltaTime; if (stopwatchBetweenShots >= durationBetweenShots && totalBulletsFired < bulletCount) { stopwatchBetweenShots -= durationBetweenShots; FireBullet(); } if (((EntityState)this).fixedAge >= duration && totalBulletsFired == bulletCount && ((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)1; } } public class ChargedSlashAttack : BaseCustomSkillState { public float charge; public static float baseDuration = 0.6f; public static int maxHits = 6; public static int minHits = 1; public static float maxDamageCoefficient = 3.6f; public static float minDamageCoefficient = 3.6f; public static float maxRadius = 20f; public static float minRadius = 8f; public static float maxEmission = 150f; public static float minEmission = 25f; private float hitStopwatch; private int hitsFired; private float duration; private int hitCount; private float damageCoefficient; private float radius; private float emission; private BlastAttack blastAttack; private EffectData attackEffect; private Material swordMat; private NemmandoController nemmandoController; private float minimumEmission; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -5.3f); public override void OnEnter() { //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_0193: 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_019a: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: 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_01df: Expected O, but got Unknown //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Expected O, but got Unknown //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0341: Unknown result type (might be due to invalid IL or missing references) //IL_034b: 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_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0361: Unknown result type (might be due to invalid IL or missing references) //IL_0372: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.isSprinting = false; ((EntityState)this).characterBody.hideCrosshair = false; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.ArmorBoost, duration + 0.5f); } } hitsFired = 0; hitCount = Mathf.FloorToInt(Util.Remap(charge, 0f, 1f, (float)minHits, (float)maxHits)); damageCoefficient = Util.Remap(charge, 0f, 1f, minDamageCoefficient, maxDamageCoefficient); radius = Util.Remap(charge, 0f, 1f, minRadius, maxRadius); emission = Util.Remap(charge, 0f, 1f, minEmission, maxEmission); nemmandoController = ((EntityState)this).GetComponent(); minimumEmission = effectComponent.defaultSwordEmission; blastAttack = new BlastAttack { attacker = ((EntityState)this).gameObject, attackerFiltering = (AttackerFiltering)2, baseDamage = damageCoefficient * ((BaseState)this).damageStat, baseForce = -500f, bonusForce = Vector3.zero, crit = ((BaseState)this).RollCrit(), damageColorIndex = (DamageColorIndex)0, falloffModel = (FalloffModel)0, inflictor = ((EntityState)this).gameObject, losType = (LoSType)0, position = ((EntityState)this).characterBody.corePosition, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = radius, teamIndex = ((BaseState)this).GetTeam() }; blastAttack.damageType.damageSource = (DamageSource)8; DamageAPI.AddModdedDamageType(blastAttack, DamageTypeCore.ModdedDamageTypes.GougeOnHit); attackEffect = new EffectData { scale = 0.75f * radius, origin = ((EntityState)this).characterBody.corePosition }; ((EntityState)this).characterMotor.rootMotion = Vector3.zero; ((EntityState)this).characterMotor.velocity = Vector3.zero; if (charge >= 0.4f) { EffectManager.SpawnEffect(effectComponent.chargeAttackEffect, attackEffect, true); } FireAttack(); if (charge >= 0.6f) { ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrikeMax", "DecisiveStrike.playbackRate", duration, 0f); Util.PlaySound("SS2UNemmandoDecisiveStrikeFire", ((EntityState)this).gameObject); } else { ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrike", "DecisiveStrike.playbackRate", duration, 0f); Util.PlaySound(effectComponent.swingSound, ((EntityState)this).gameObject); } swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().baseRendererInfos[1].defaultMaterial; if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, duration); } } private void FireAttack() { //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_0053: 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) hitsFired++; hitStopwatch = duration / (float)hitCount; if (((EntityState)this).isAuthority) { blastAttack.position = ((EntityState)this).characterBody.corePosition; attackEffect.origin = ((EntityState)this).characterBody.corePosition; int num = blastAttack.Fire().hitCount; if (hitCount > 0) { Util.PlaySound(GroundLight.hitSoundString, ((EntityState)this).gameObject); } EffectManager.SpawnEffect(effectComponent.chargeAttackLoopEffect, attackEffect, true); Util.PlayAttackSpeedSound(effectComponent.swingSound, ((EntityState)this).gameObject, 2f); } } public override void FixedUpdate() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitStopwatch -= Time.fixedDeltaTime; emission -= 2f * Time.fixedDeltaTime; if (emission < 0f) { emission = 0f; } if (Object.op_Implicit((Object)(object)swordMat)) { swordMat.SetFloat("_EmPower", Util.Remap(((EntityState)this).fixedAge, 0f, duration, emission, minimumEmission)); } ((EntityState)this).characterMotor.rootMotion = Vector3.zero; ((EntityState)this).characterMotor.velocity = Vector3.zero; if (hitStopwatch <= 0f && hitsFired < hitCount) { FireAttack(); } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0018: 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) if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, duration / 1.5f); } swordMat.SetFloat("_EmPower", minimumEmission); if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } ((EntityState)this).OnExit(); } } public class ChargedSlashEntry : BaseSkillState { public float charge; public static float maxRecoil = 5f; public static float minRecoil = 0.4f; public static float initialMaxSpeedCoefficient = 23f; public static float initialMinSpeedCoefficient = 2f; public static float minDuration = 0.2f; public static float maxDuration = 0.25f; private float speedCoefficient; private float recoil; private float duration; private float dashSpeed; private Vector3 forwardDirection; private ChildLocator childLocator; private ParticleSystem dashEffect; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(2f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -14f); public override void OnEnter() { //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Invalid comparison between Unknown and I4 //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_0066: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.isSprinting = true; if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, duration); } duration = Util.Remap(charge, 0f, 1f, minDuration, maxDuration); speedCoefficient = Util.Remap(charge, 0f, 1f, initialMinSpeedCoefficient, initialMaxSpeedCoefficient); recoil = Util.Remap(charge, 0f, 1f, minRecoil, maxRecoil); if ((int)((BaseState)this).GetTeam() == 2) { speedCoefficient = 0f; } childLocator = ((EntityState)this).GetModelChildLocator(); Ray aimRay = ((BaseState)this).GetAimRay(); forwardDirection = ((Ray)(ref aimRay)).direction; RecalculateSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrikeDash"); dashEffect = ((Component)childLocator.FindChild("DashEffect")).GetComponent(); if (Object.op_Implicit((Object)(object)dashEffect)) { dashEffect.Play(); } Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { CharacterModel component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { TemporaryOverlayInstance val3 = TemporaryOverlayManager.AddOverlay(((Component)component).gameObject); val3.duration = 1.5f * duration; val3.animateShaderAlpha = true; val3.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val3.destroyComponentOnEnd = true; val3.originalMaterial = LegacyResourcesAPI.Load("Materials/matDoppelganger"); val3.AddToCharacterModel(component); val3.Start(); } } } private void RecalculateSpeed() { float num = (Config.NemmandoDecisiveMoveSpeedScaling.Value ? ((BaseState)this).moveSpeedStat : 10.15f); dashSpeed = (4f + 0.25f * num) * speedCoefficient; } public override void OnExit() { //IL_0023: 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_0067: 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) if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //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_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = true; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ChargedSlashAttack chargedSlashAttack = new ChargedSlashAttack(); chargedSlashAttack.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)chargedSlashAttack); return; } RecalculateSpeed(); if (((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; Vector3 val = forwardDirection * dashSpeed; float num = Mathf.Max(Vector3.Dot(val, forwardDirection), 0f); val = forwardDirection * num; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += val * Time.fixedDeltaTime; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.forward = forwardDirection; } } } 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)7; } } public class ChargedSlashCharge : BaseCustomSkillState { public static float baseChargeDuration = 1.75f; private float chargeDuration; private bool finishedCharge; private ChildLocator childLocator; private Animator animator; private Transform modelBaseTransform; private uint chargePlayID; private ParticleSystem swordVFX; private NemmandoController nemmandoController; private bool zoomin; private Material swordMat; private float minEmission; private GameObject chargeEffectInstance; private Transform areaIndicator; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -5.3f); public override void OnEnter() { //IL_00b0: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_010e: 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_011c: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Invalid comparison between Unknown and I4 //IL_0182: 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_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: 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_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); chargeDuration = baseChargeDuration / ((BaseState)this).attackSpeedStat; childLocator = ((EntityState)this).GetModelChildLocator(); modelBaseTransform = ((EntityState)this).GetModelBaseTransform(); animator = ((EntityState)this).GetModelAnimator(); nemmandoController = ((EntityState)this).GetComponent(); zoomin = false; ((EntityState)this).characterBody.hideCrosshair = true; if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.chargingDecisiveStrike = true; } minEmission = effectComponent.defaultSwordEmission; swordVFX = ((Component)childLocator.FindChild(effectComponent.chargeEffectString)).GetComponent(); MainModule main = swordVFX.main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(chargeDuration); main = ((Component)((Component)swordVFX).transform.GetChild(0)).GetComponent().main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(chargeDuration); main = ((Component)((Component)swordVFX).transform.GetChild(1)).GetComponent().main; ((MainModule)(ref main)).startDelay = MinMaxCurve.op_Implicit(chargeDuration); swordVFX.Play(); chargePlayID = Util.PlayAttackSpeedSound("SS2UNemmandoDecisiveStrikeCharge", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrikeCharge", "DecisiveStrike.playbackRate", chargeDuration, 0f); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, chargeDuration); } swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().baseRendererInfos[1].defaultMaterial; if ((int)((BaseState)this).GetTeam() == 2) { chargeEffectInstance = Object.Instantiate(new BlinkState().blinkDestinationPrefab, ((EntityState)this).gameObject.transform); chargeEffectInstance.transform.position = ((EntityState)this).characterBody.corePosition; chargeEffectInstance.GetComponent().newDuration = chargeDuration; areaIndicator = chargeEffectInstance.transform.Find("Particles").Find("AreaIndicator"); chargeEffectInstance.GetComponentInChildren().maxDuration = chargeDuration; } } 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) //IL_0060: 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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterMotor.velocity = Vector3.zero; float num = CalcCharge(); swordMat.SetFloat("_EmPower", Util.Remap(num, 0f, 1f, minEmission, ChargedSlashAttack.maxEmission)); if (Object.op_Implicit((Object)(object)areaIndicator)) { areaIndicator.localScale = Vector3.one * Util.Remap(num, 0f, 1f, ChargedSlashAttack.minRadius, ChargedSlashAttack.maxRadius); } if (num >= 0.6f && !zoomin) { zoomin = true; } if (num >= 1f && !finishedCharge) { finishedCharge = true; AkSoundEngine.StopPlayingID(chargePlayID); Util.PlaySound("SS2UNemmandoDecisiveStrikeReady", ((EntityState)this).gameObject); } bool flag = ((BaseSkillState)this).IsKeyDownAuthority(); if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !((EntityState)this).characterBody.isPlayerControlled) { flag = true; } if (((EntityState)this).isAuthority && (((EntityState)this).fixedAge >= 1.25f * chargeDuration || (!flag && ((EntityState)this).fixedAge >= 0.1f))) { ChargedSlashEntry chargedSlashEntry = new ChargedSlashEntry(); chargedSlashEntry.charge = num; ((EntityState)this).outer.SetNextState((EntityState)(object)chargedSlashEntry); } } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); } public override void OnExit() { //IL_00a7: 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) ((EntityState)this).OnExit(); ((Component)swordVFX).gameObject.SetActive(false); ((Component)swordVFX).gameObject.SetActive(true); if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.chargingDecisiveStrike = false; } if (Object.op_Implicit((Object)(object)chargeEffectInstance)) { EntityState.Destroy((Object)(object)chargeEffectInstance); } if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } AkSoundEngine.StopPlayingID(chargePlayID); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); } } 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)7; } } public class ChargeSwordBeam : BaseCustomSkillState { public static float baseChargeDuration = 0.8f; public static float maxEmission; public static float minEmission; public static GameObject crosshairOverridePrefab = LegacyResourcesAPI.Load("Prefabs/Crosshair/MageCrosshair"); private Material swordMat; private float chargeDuration; private ChildLocator childLocator; private Animator animator; private Transform modelBaseTransform; private ParticleSystem swordVFX; private OverrideRequest crosshairOverrideRequest; private uint chargePlayID; private float maximumEmission; private float minimumEmission; public override void OnEnter() { base.OnEnter(); chargeDuration = baseChargeDuration / ((BaseState)this).attackSpeedStat; childLocator = ((EntityState)this).GetModelChildLocator(); modelBaseTransform = ((EntityState)this).GetModelBaseTransform(); animator = ((EntityState)this).GetModelAnimator(); minimumEmission = effectComponent.defaultSwordEmission; maximumEmission = 50f + minimumEmission; if (Object.op_Implicit((Object)(object)crosshairOverridePrefab)) { crosshairOverrideRequest = CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, crosshairOverridePrefab, (OverridePriority)2); } swordVFX = ((Component)((BaseState)this).FindModelChild("SwordLightning")).GetComponent(); swordVFX.Play(); bool @bool = animator.GetBool("isMoving"); bool bool2 = animator.GetBool("isGrounded"); ((EntityState)this).PlayCrossfade("UpperBody, Override", "Secondary1", "Secondary.rate", chargeDuration, 0.05f); swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().baseRendererInfos[1].defaultMaterial; chargePlayID = Util.PlaySound("SS2UNemmandoChargeBeam2", ((EntityState)this).gameObject); } public override void FixedUpdate() { //IL_008b: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); float num = CalcCharge(); ((EntityState)this).characterBody.SetSpreadBloom(Util.Remap(num, 0f, 1f, 0f, 3f), true); ((BaseState)this).StartAimMode(2f, false); if (Object.op_Implicit((Object)(object)swordMat)) { swordMat.SetFloat("_EmPower", Util.Remap(num, 0f, 1f, minimumEmission, maximumEmission)); swordMat.SetColor("_EmColor", Color.white); } if (((EntityState)this).isAuthority && (num >= 1f || (!Config.NemmandoSecondaryAlwaysFullCharge.Value && !((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= 0.1f))) { FireSwordBeam fireSwordBeam = new FireSwordBeam(); fireSwordBeam.charge = num; ((EntityState)this).outer.SetNextState((EntityState)(object)fireSwordBeam); } } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); } public override void OnExit() { if (crosshairOverrideRequest != null) { crosshairOverrideRequest.Dispose(); } AkSoundEngine.StopPlayingID(chargePlayID); swordVFX.Stop(); ((EntityState)this).OnExit(); } 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)7; } } public class FireSwordBeam : BaseCustomSkillState { public float charge; public static float maxEmission = 75f; public static float minEmission = 25f; public static float maxDamageCoefficient = 6f; public static float minDamageCoeffficient = 2f; public static float procCoefficient = 1f; public static float maxRecoil = 2f; public static float minRecoil = 0.25f; public static float maxProjectileSpeed = 120f; public static float minProjectileSpeed = 50f; public float baseDuration = 0.4f; public static GameObject projectilePrefab; private float emission; private Material swordMat; private float damageCoefficient; private float recoil; private float projectileSpeed; private float duration; private float fireDuration; private bool hasFired; private Animator animator; private string muzzleString; private NemmandoController nemmandoController; private float minimumEmission; private float maximumEmission; public override void OnEnter() { base.OnEnter(); ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "Muzzle"; hasFired = false; duration = baseDuration / ((BaseState)this).attackSpeedStat; damageCoefficient = Util.Remap(charge, 0f, 1f, minDamageCoeffficient, maxDamageCoefficient); recoil = Util.Remap(charge, 0f, 1f, minRecoil, maxRecoil); projectileSpeed = Util.Remap(charge, 0f, 1f, minProjectileSpeed, maxProjectileSpeed); emission = Util.Remap(charge, 0f, 1f, minEmission, maxEmission); fireDuration = 0.1f * duration; nemmandoController = ((EntityState)this).GetComponent(); minimumEmission = effectComponent.defaultSwordEmission; maximumEmission = minimumEmission + 150f; string text = ((charge > 0.6f) ? "Secondary3(Strong)" : "Secondary3(Weak)"); bool @bool = animator.GetBool("isMoving"); bool bool2 = animator.GetBool("isGrounded"); if (!@bool && bool2 && !nemmandoController.chargingDecisiveStrike && !nemmandoController.rolling) { ((EntityState)this).PlayCrossfade("FullBody, Override", text, "Secondary.rate", duration, 0.05f); } ((EntityState)this).PlayCrossfade("UpperBody, Override", text, "Secondary.rate", duration, 0.05f); swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().baseRendererInfos[1].defaultMaterial; Util.PlaySound("SS2UNemmandoFireBeam2", ((EntityState)this).gameObject); } public override void OnExit() { ((EntityState)this).OnExit(); swordMat.SetFloat("_EmPower", minimumEmission); } public virtual void FireBeam() { //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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; bool flag = ((BaseState)this).RollCrit(); ((BaseState)this).AddRecoil(-2f * recoil, -3f * recoil, -1f * recoil, 1f * recoil); ((EntityState)this).characterBody.AddSpreadBloom(0.33f * recoil); EffectManager.SimpleMuzzleFlash(FireBarrage.effectPrefab, ((EntityState)this).gameObject, muzzleString, false); if (((EntityState)this).isAuthority) { float num = damageCoefficient * ((BaseState)this).damageStat; Ray aimRay = ((BaseState)this).GetAimRay(); ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, num, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, projectileSpeed, (DamageTypeCombo?)null); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)swordMat)) { swordMat.SetFloat("_EmPower", Util.Remap(((EntityState)this).fixedAge, 0f, duration, emission, minimumEmission)); } if (((EntityState)this).fixedAge >= fireDuration) { FireBeam(); } 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 FireDecisiveStrike : BasicMeleeAttack { public float charge = 0f; public static float recoilAmplitude = 0.5f; public static float baseDurationBeforeInterruptable = 0.5f; public float bloom = 1f; private string animationStateName; private float durationBeforeInterruptable; private float minDamageCoef = 2f; private float maxDamageCoef = 4f; public override bool allowExitFire => Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isSprinting; 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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: 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_00db: 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_00e8: 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_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_00ff: Expected O, but got Unknown base.hitBoxGroupName = "SwordHitboxWide"; base.baseDuration = 0.5f; base.hitPauseDuration = 0.01f; base.damageCoefficient = Mathf.Lerp(minDamageCoef, maxDamageCoef, charge); ((BasicMeleeAttack)this).OnEnter(); CharacterDirection characterDirection = ((EntityState)this).characterDirection; Ray aimRay = ((BaseState)this).GetAimRay(); characterDirection.forward = ((Ray)(ref aimRay)).direction; durationBeforeInterruptable = baseDurationBeforeInterruptable / ((BaseState)this).attackSpeedStat; base.procCoefficient = 1f; Quaternion val = Quaternion.LookRotation(((EntityState)this).characterDirection.forward); Vector3 eulerAngles = ((Quaternion)(ref val)).eulerAngles; GameObject nemSwingFX = Assets.nemSwingFX; nemSwingFX.transform.parent = ((Component)((EntityState)this).characterMotor).transform; EffectData val2 = new EffectData { scale = 1f, origin = ((EntityState)this).characterBody.transform.position, rotation = Quaternion.Euler(eulerAngles.x + 90f, eulerAngles.y, eulerAngles.z) }; EffectManager.SpawnEffect(nemSwingFX, val2, false); Util.PlaySound(Uppercut.hitSoundString, ((EntityState)this).gameObject); } public override void OnExit() { ((BasicMeleeAttack)this).OnExit(); } public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { //IL_0010: 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) ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); overlapAttack.damageType.damageSource = (DamageSource)8; DamageAPI.AddModdedDamageType(overlapAttack, DamageTypeCore.ModdedDamageTypes.GougeOnHit); } public override void PlayAnimation() { animationStateName = "Secondary5"; ((EntityState)this).PlayAnimation("FullBody, Override", animationStateName, "GroundLight.playbackRate", base.duration, 0f); } public override void OnMeleeHitAuthority() { ((BasicMeleeAttack)this).OnMeleeHitAuthority(); ((EntityState)this).characterBody.AddSpreadBloom(bloom); } public override void BeginMeleeAttackEffect() { base.swingEffectMuzzleString = animationStateName; ((BaseState)this).AddRecoil(-0.1f * recoilAmplitude, 0.1f * recoilAmplitude, -1f * recoilAmplitude, 1f * recoilAmplitude); ((BasicMeleeAttack)this).BeginMeleeAttackEffect(); } public override void OnSerialize(NetworkWriter writer) { ((EntityState)this).OnSerialize(writer); } public override void OnDeserialize(NetworkReader reader) { ((EntityState)this).OnDeserialize(reader); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_001c: 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_001f: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).fixedAge >= durationBeforeInterruptable) { return (InterruptPriority)1; } return (InterruptPriority)2; } } public class ChargeDecisiveStrike : BaseCustomSkillState { public static float baseMaxChargeTime = 1f; private static GameObject chargeupVfxPrefab = ChargeCaptainShotgun.chargeupVfxPrefab; public static float damageCoef = 2.5f; public static float procCoef = 1f; private float speedCoef; private float initialSpeedCoefficient = 2.5f; private float finalSpeedCoefficient = 7.5f; private float buttonReleaseTime = 0f; private float minChargeTime = 0.35f; private bool buttonReleased = false; public float baseDashTime = 0.35f; private bool chargeAnimationPlayed = false; private bool jumpAnimationPlayed = false; private OverlapAttack attack; private float massThresholdForKnockback = 300f; private List victimsStruck = new List(); private Vector3 dashDirection; private Animator animator; public float charge; public float lastCharge; public float maxChargeTime; public override void OnEnter() { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Expected O, but got Unknown //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) base.OnEnter(); animator = ((EntityState)this).GetModelAnimator(); maxChargeTime = baseMaxChargeTime / ((BaseState)this).attackSpeedStat; HitBoxGroup hitBoxGroup = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents(), (HitBoxGroup element) => element.groupName == "SwordHitboxLarge"); } attack = new OverlapAttack(); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = 0f; attack.hitBoxGroup = hitBoxGroup; } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_0348: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0367: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0374: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_037c: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_03a1: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03c5: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03ed: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_0404: 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_0416: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_042d: 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_0227: 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_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.SetAimTimer(1f); if (!((EntityState)this).isAuthority) { return; } if (((EntityState)this).fixedAge >= maxChargeTime || !Object.op_Implicit((Object)(object)((EntityState)this).inputBank) || !((EntityState)this).inputBank.skill2.down) { if (!buttonReleased) { if (!jumpAnimationPlayed && ((EntityState)this).fixedAge >= minChargeTime) { ((EntityState)this).PlayAnimation("FullBody, Override", "Secondary3", "Secondary.rate", 0.05f, 0f); jumpAnimationPlayed = true; } buttonReleased = true; buttonReleaseTime = ((EntityState)this).fixedAge; Ray aimRay = ((BaseState)this).GetAimRay(); dashDirection = ((Ray)(ref aimRay)).direction; RecalculateDashSpeed(); } } else { lastCharge = charge; charge = ((EntityState)this).fixedAge / maxChargeTime; if (!chargeAnimationPlayed && ((EntityState)this).fixedAge >= minChargeTime) { ((EntityState)this).PlayAnimation("UpperBody, Override", "Secondary1", "Secondary.rate", 0.05f, 0f); chargeAnimationPlayed = true; } } if (!buttonReleased) { return; } if (charge > minChargeTime) { if (((EntityState)this).fixedAge <= buttonReleaseTime + baseDashTime) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { if (attack.Fire(victimsStruck)) { Util.PlaySound(Assaulter.beginSoundString, ((EntityState)this).gameObject); ((EntityState)this).outer.SetNextState((EntityState)(object)new FireDecisiveStrike { charge = charge }); } else { ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += dashDirection * (((EntityState)this).characterBody.baseMoveSpeed * speedCoef * Time.fixedDeltaTime); ((EntityState)this).characterBody.isSprinting = true; } } } else { FireDecisiveStrike fireDecisiveStrike = new FireDecisiveStrike(); fireDecisiveStrike.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)fireDecisiveStrike); } return; } bool @bool = animator.GetBool("isMoving"); bool bool2 = animator.GetBool("isGrounded"); if (!@bool && bool2) { ((EntityState)this).PlayCrossfade("FullBody, Override", "Special", "Secondary.rate", minChargeTime / ((BaseState)this).attackSpeedStat, 0.05f); } else { ((EntityState)this).PlayCrossfade("UpperBody, Override", "Special", "Secondary.rate", minChargeTime / ((BaseState)this).attackSpeedStat, 0.05f); } Util.PlaySound(FirePistol2.firePistolSoundString, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay2 = ((BaseState)this).GetAimRay(); BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay2)).origin }; Vector3 direction = ((Ray)(ref aimRay2)).direction; val.aimVector = ((Vector3)(ref direction)).normalized; val.minSpread = 0f; val.maxSpread = 0f; val.bulletCount = 1u; val.procCoefficient = procCoef; val.damage = ((BaseState)this).damageStat * damageCoef; val.force = 0f; val.falloffModel = (FalloffModel)0; val.tracerEffectPrefab = FireBarrage.tracerEffectPrefab; val.muzzleName = "AimOrigin"; val.hitEffectPrefab = FireBarrage.hitEffectPrefab; val.isCrit = ((BaseState)this).RollCrit(); val.HitEffectNormal = false; val.radius = 1f; val.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val.stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask; val.Fire(); } ((EntityState)this).outer.SetNextStateToMain(); } private void RecalculateDashSpeed() { speedCoef = Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, charge); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class ScepterBarrageCharge : BaseSkillState { public static float baseChargeDuration = 1.5f; private float chargeDuration; private ChildLocator childLocator; private Animator animator; private Transform modelBaseTransform; private uint chargePlayID; private bool hasFinishedCharging; private GameObject chargeEffect; public override void OnEnter() { ((BaseState)this).OnEnter(); chargeDuration = baseChargeDuration; childLocator = ((EntityState)this).GetModelChildLocator(); modelBaseTransform = ((EntityState)this).GetModelBaseTransform(); animator = ((EntityState)this).GetModelAnimator(); hasFinishedCharging = false; chargePlayID = Util.PlaySound("SS2UNemmandoSubmissionCharge", ((EntityState)this).gameObject); chargeEffect = ((Component)childLocator.FindChild("GunChargeEffect")).gameObject; if (Object.op_Implicit((Object)(object)chargeEffect)) { chargeEffect.SetActive(true); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); float num = CalcCharge(); if (num >= 1f && !hasFinishedCharging) { hasFinishedCharging = true; Util.PlaySound("SS2UNemmandoSubmissionReady", ((EntityState)this).gameObject); } if (((EntityState)this).isAuthority && !((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= 0.1f) { ScepterBarrageFire scepterBarrageFire = new ScepterBarrageFire(); scepterBarrageFire.charge = num; ((EntityState)this).outer.SetNextState((EntityState)(object)scepterBarrageFire); } } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); } public override void OnExit() { AkSoundEngine.StopPlayingID(chargePlayID); ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeEffect)) { chargeEffect.SetActive(false); } } 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)7; } } public class ScepterBarrageFire : BaseState { public float charge; public static float laserDamageCoefficient = 8.2f; public static float laserBlastRadius = 8f; public static float laserBlastForce = 2000f; public static float damageCoefficient = 1.2f; public static float procCoefficient = 0.5f; public static uint bulletCountPerShot = 4u; public static float range = 128f; public static float maxSpread = 12f; public static int minBulletCount = 2; public static int maxBulletCount = 5; public static float baseDuration = 0.8f; public static float minTimeBetweenShots = 0.2f; public static float maxTimeBetweenShots = 0.075f; public static float recoil = 5f; public static float force = 200f; public static float bulletRadius = 2f; private bool isCrit; private int totalBulletsFired; private int bulletCount; public float stopwatchBetweenShots; private Animator modelAnimator; private Transform modelTransform; private float duration; private float durationBetweenShots; public static GameObject tracerEffectPrefab; private GameObject muzzleFlashEffect = LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/FusionCellExplosion"); public static GameObject impactEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommando.prefab").WaitForCompletion(); public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.SetSpreadBloom(0.2f, false); ((EntityState)this).characterBody.isSprinting = false; duration = baseDuration; durationBetweenShots = Util.Remap(charge, 0f, 1f, minTimeBetweenShots, maxTimeBetweenShots) / base.attackSpeedStat; bulletCount = (int)((float)Mathf.RoundToInt(Util.Remap(charge, 0f, 1f, (float)minBulletCount, (float)maxBulletCount)) * base.attackSpeedStat); modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).characterBody.SetAimTimer(2f); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; isCrit = ((BaseState)this).RollCrit(); FireBullet(); } private void FireBullet() { //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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: 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_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_00e3: 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_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0107: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013a: 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_014c: 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_0163: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: 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_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Expected O, but got Unknown //IL_01c0: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); string text = "Muzzle"; EffectManager.SimpleMuzzleFlash(FireBarrage.effectPrefab, ((EntityState)this).gameObject, text, false); ((EntityState)this).PlayCrossfade("UpperBody, Override", "Special", "Special.rate", durationBetweenShots, 0.05f); Util.PlaySound("SS2UNemmandoSubmissionFire", ((EntityState)this).gameObject); Util.PlaySound(FireLaser.attackSoundString, ((EntityState)this).gameObject); float num = recoil / base.attackSpeedStat; ((BaseState)this).AddRecoil(-0.8f * num, -1f * num, -0.1f * num, 0.15f * num); EffectManager.SimpleMuzzleFlash(FireLaser.effectPrefab, ((EntityState)this).gameObject, "Muzzle", false); if (((EntityState)this).isAuthority) { BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = maxSpread, bulletCount = bulletCountPerShot, damage = damageCoefficient * base.damageStat, force = force, tracerEffectPrefab = tracerEffectPrefab, muzzleName = text, hitEffectPrefab = impactEffectPrefab, isCrit = isCrit, radius = bulletRadius, smartCollision = true, damageType = DamageTypeCombo.op_Implicit((DamageType)0), spreadPitchScale = 0.5f, spreadYawScale = 0.5f, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, falloffModel = (FalloffModel)1, maxDistance = range }; val.damageType.damageSource = (DamageSource)8; val.Fire(); FireLaser(); } ((EntityState)this).characterBody.AddSpreadBloom(2f * FireBarrage.spreadBloomValue); totalBulletsFired++; } private void FireLaser() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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_0026: 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_0042: 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_0072: 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_0083: 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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: 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_00c3: 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_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_00d5: 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_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Expected O, but got Unknown //IL_00f5: 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_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_0150: 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_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_0166: Expected O, but got Unknown Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 val = ((Ray)(ref aimRay)).origin + ((Ray)(ref aimRay)).direction * 1000f; RaycastHit val2 = default(RaycastHit); if (Physics.Raycast(aimRay, ref val2, 1000f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.defaultLayer)).mask) | LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask))) { val = ((RaycastHit)(ref val2)).point; } BlastAttack val3 = new BlastAttack { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, teamIndex = TeamComponent.GetObjectTeam(((EntityState)this).gameObject), baseDamage = base.damageStat * laserDamageCoefficient, baseForce = laserBlastForce * 0.2f, position = val, radius = laserBlastRadius, falloffModel = (FalloffModel)2, bonusForce = laserBlastForce * ((Ray)(ref aimRay)).direction }; val3.Fire(); if (!Object.op_Implicit((Object)(object)modelTransform)) { return; } ChildLocator component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { int num = component.FindChildIndex("Muzzle"); if (Object.op_Implicit((Object)(object)FireLaser.tracerEffectPrefab)) { EffectData val4 = new EffectData { origin = val, start = ((Ray)(ref aimRay)).origin }; val4.SetChildLocatorTransformReference(((EntityState)this).gameObject, num); EffectManager.SpawnEffect(FireLaser.tracerEffectPrefab, val4, true); EffectManager.SpawnEffect(FireLaser.hitEffectPrefab, val4, true); } } } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatchBetweenShots += Time.fixedDeltaTime; if (stopwatchBetweenShots >= durationBetweenShots && totalBulletsFired < bulletCount) { stopwatchBetweenShots -= durationBetweenShots; FireBullet(); } if (((EntityState)this).fixedAge >= duration && totalBulletsFired == bulletCount && ((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)1; } } public class ScepterSlashCharge : BaseSkillState { public static float baseChargeDuration = 1.75f; private float chargeDuration; private bool finishedCharge; private ChildLocator childLocator; private Animator animator; private Transform modelBaseTransform; private uint chargePlayID; private ParticleSystem swordVFX; private NemmandoController nemmandoController; private bool zoomin; private Material swordMat; private float minEmission; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -5.3f); public override void OnEnter() { //IL_00bc: 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_00ca: 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) //IL_00f9: 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_0128: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: 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_01c5: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); chargeDuration = baseChargeDuration; childLocator = ((EntityState)this).GetModelChildLocator(); modelBaseTransform = ((EntityState)this).GetModelBaseTransform(); animator = ((EntityState)this).GetModelAnimator(); nemmandoController = ((EntityState)this).GetComponent(); zoomin = false; ((EntityState)this).characterBody.hideCrosshair = true; if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.chargingDecisiveStrike = true; } if (((EntityState)this).characterBody.skinIndex == 2) { minEmission = 70f; } else { minEmission = 0f; } swordVFX = ((Component)childLocator.FindChild("SwordChargeEffect")).GetComponent(); MainModule main = swordVFX.main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(chargeDuration); main = ((Component)((Component)swordVFX).transform.GetChild(0)).GetComponent().main; ((MainModule)(ref main)).startLifetime = MinMaxCurve.op_Implicit(chargeDuration); main = ((Component)((Component)swordVFX).transform.GetChild(1)).GetComponent().main; ((MainModule)(ref main)).startDelay = MinMaxCurve.op_Implicit(chargeDuration); swordVFX.Play(); chargePlayID = Util.PlayAttackSpeedSound("SS2UNemmandoDecisiveStrikeCharge", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrikeCharge", "DecisiveStrike.playbackRate", chargeDuration, 0f); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, chargeDuration); } swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().skins[((EntityState)this).characterBody.skinIndex].rendererInfos[1].defaultMaterial; } 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; float num = CalcCharge(); swordMat.SetFloat("_EmPower", Util.Remap(num, 0f, 1f, minEmission, ScepterSlashAttack.swordEmission)); if (num >= 0.6f && !zoomin) { zoomin = true; } if (num >= 1f && !finishedCharge) { finishedCharge = true; AkSoundEngine.StopPlayingID(chargePlayID); Util.PlaySound("SS2UNemmandoDecisiveStrikeReady", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.CoverScreen(); } } if (((EntityState)this).isAuthority && (((EntityState)this).fixedAge >= 1.25f * chargeDuration || (!((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= 0.1f))) { ScepterSlashEntry scepterSlashEntry = new ScepterSlashEntry(); scepterSlashEntry.charge = num; ((EntityState)this).outer.SetNextState((EntityState)(object)scepterSlashEntry); } } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); } public override void OnExit() { //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) ((Component)swordVFX).gameObject.SetActive(false); ((Component)swordVFX).gameObject.SetActive(true); if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.chargingDecisiveStrike = false; } if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } AkSoundEngine.StopPlayingID(chargePlayID); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); } ((EntityState)this).OnExit(); } 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)7; } } public class ScepterSlashAttack : BaseCustomSkillState { public float charge; public static float baseDuration = 2.5f; public static int baseHitCount = 12; public static float damageCoefficient = 3.6f; public static float radius = 64f; public static float radiusEnemy = 32f; public static float swordEmission = 350f; private float hitStopwatch; private int hitCount; private int hitsFired; private float duration; private float emission; private EffectData attackEffect; private Material swordMat; private NemmandoController nemmandoController; private CharacterModel characterModel; private float minimumEmission; private bool isCrit; private bool hidden; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -5.3f); private List targetList; public override void OnEnter() { //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00df: Expected O, but got Unknown //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_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_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e6: 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_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0207: 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_0218: 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) base.OnEnter(); ((EntityState)this).characterBody.isSprinting = false; hitsFired = 0; hitCount = (int)((float)baseHitCount * ((BaseState)this).attackSpeedStat); duration = baseDuration; nemmandoController = ((EntityState)this).GetComponent(); emission = swordEmission; isCrit = ((BaseState)this).RollCrit(); hidden = true; characterModel = ((Component)((EntityState)this).modelLocator.modelTransform).GetComponent(); ((EntityState)this).characterBody.hideCrosshair = true; if (((EntityState)this).characterBody.skinIndex == 2) { minimumEmission = 70f; } else { minimumEmission = 0f; } attackEffect = new EffectData { scale = 0.5f * radius, origin = ((EntityState)this).characterBody.corePosition }; ((EntityState)this).characterMotor.rootMotion = Vector3.zero; ((EntityState)this).characterMotor.velocity = Vector3.zero; EffectManager.SpawnEffect(Assets.nemChargedSlashStartFX, attackEffect, true); ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrike", "DecisiveStrike.playbackRate", duration, 0f); Util.PlaySound("SS2UNemmandoDecisiveStrikeFire", ((EntityState)this).gameObject); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.HiddenInvincibility); } swordMat = ((Component)((EntityState)this).GetModelTransform()).GetComponent().skins[((EntityState)this).characterBody.skinIndex].rendererInfos[1].defaultMaterial; GetTargets(); if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount + 1; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, duration); } } private void FireAttack() { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0194: 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_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Expected O, but got Unknown hitsFired++; if (targetList == null) { return; } hitStopwatch = 0.05f; foreach (HurtBox target in targetList) { if (Object.op_Implicit((Object)(object)target)) { HurtBoxGroup hurtBoxGroup = target.hurtBoxGroup; HurtBox val = hurtBoxGroup.hurtBoxes[Random.Range(0, hurtBoxGroup.hurtBoxes.Length - 1)]; if (Object.op_Implicit((Object)(object)val) && val.healthComponent.alive) { Util.PlaySound(effectComponent.impactSoundDef.eventName, ((Component)target).gameObject); DamageInfo val2 = new DamageInfo(); val2.damage = damageCoefficient * ((BaseState)this).damageStat; val2.attacker = ((EntityState)this).gameObject; val2.procCoefficient = 1f; val2.position = ((Component)val).transform.position; val2.crit = isCrit; val2.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val2.damageType.damageSource = (DamageSource)8; DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.GougeOnHit); val.healthComponent.TakeDamage(val2); GlobalEventManager.instance.OnHitEnemy(val2, ((Component)val.healthComponent).gameObject); GlobalEventManager.instance.OnHitAll(val2, ((Component)val.healthComponent).gameObject); EffectData val3 = new EffectData { scale = 4f, origin = ((Component)val).transform.position, rotation = ((Component)val).transform.rotation }; EffectManager.SpawnEffect(Assets.nemScepterImpactFX, val3, false); } } } } private void GetTargets() { //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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown //IL_001f: 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_0037: 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_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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Invalid comparison between Unknown and I4 //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) targetList = new List(); Ray aimRay = ((BaseState)this).GetAimRay(); SphereSearch val = new SphereSearch(); val.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; val.ClearCandidates(); val.origin = ((EntityState)this).transform.position; val.radius = radius; val.RefreshCandidates(); val.FilterCandidatesByDistinctHurtBoxEntities(); val.FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(((EntityState)this).teamComponent.teamIndex)); val.GetHurtBoxes(targetList); if ((int)((BaseState)this).GetTeam() != 1 && (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !((EntityState)this).characterBody.isPlayerControlled)) { val.radius = radiusEnemy; } if (!NetworkServer.active) { return; } foreach (HurtBox target in targetList) { if ((Object)(object)target.healthComponent != (Object)(object)((EntityState)this).healthComponent && target.healthComponent.alive) { NemmandoDashOrb nemmandoDashOrb = new NemmandoDashOrb(); ((Orb)nemmandoDashOrb).origin = ((EntityState)this).transform.position; ((Orb)nemmandoDashOrb).target = target; OrbManager.instance.AddOrb((Orb)(object)nemmandoDashOrb); } } } public override void FixedUpdate() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitStopwatch -= Time.fixedDeltaTime; emission -= 10f * Time.fixedDeltaTime; if (emission < 0f) { emission = 0f; } if (Object.op_Implicit((Object)(object)swordMat)) { swordMat.SetFloat("_EmPower", Util.Remap(((EntityState)this).fixedAge, 0f, duration, emission, minimumEmission)); } ((EntityState)this).characterMotor.rootMotion = Vector3.zero; ((EntityState)this).characterMotor.velocity = Vector3.zero; if (((EntityState)this).fixedAge >= 0.4f * duration && hidden) { hidden = false; if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount - 1; } ((EntityState)this).PlayAnimation("FullBody, Override", "ScepterSpecial", "DecisiveStrike.playbackRate", 1f, 0f); } if (((EntityState)this).fixedAge >= duration && hitsFired < hitCount && hitStopwatch <= 0f) { if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.UncoverScreen(); } if (hitsFired == 0) { ((EntityState)this).PlayAnimation("FullBody, Override", "ScepterSpecialEnd", "DecisiveStrike.playbackRate", 1.4f, 0f); } FireAttack(); } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration && hitsFired >= hitCount) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0018: 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) if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, duration / 1.5f); } if (Object.op_Implicit((Object)(object)swordMat)) { swordMat.SetFloat("_EmPower", minimumEmission); } if (Object.op_Implicit((Object)(object)nemmandoController)) { nemmandoController.UncoverScreen(); } if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.HiddenInvincibility); } if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } ((EntityState)this).characterBody.hideCrosshair = false; ((EntityState)this).OnExit(); } } public class ScepterSlashEntry : BaseSkillState { public float charge; public static float maxRecoil = 5f; public static float minRecoil = 0.4f; public static float initialMaxSpeedCoefficient = 35f; public static float initialMinSpeedCoefficient = 2f; public static float minDuration = 0.2f; public static float maxDuration = 0.1f; private float speedCoefficient; private float recoil; private float duration; private float dashSpeed; private Vector3 forwardDirection; private ChildLocator childLocator; private ParticleSystem dashEffect; public CameraParamsOverrideHandle camOverrideHandle; private CharacterCameraParamsData decisiveCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(2f), idealLocalCameraPos = BlendableVector3.op_Implicit(zoomCameraPosition), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public static Vector3 zoomCameraPosition = new Vector3(0f, 0f, -14f); public override void OnEnter() { //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_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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: 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_0066: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.isSprinting = true; if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = decisiveCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, duration); } duration = Util.Remap(charge, 0f, 1f, minDuration, maxDuration); speedCoefficient = Util.Remap(charge, 0f, 1f, initialMinSpeedCoefficient, initialMaxSpeedCoefficient); recoil = Util.Remap(charge, 0f, 1f, minRecoil, maxRecoil); childLocator = ((EntityState)this).GetModelChildLocator(); Ray aimRay = ((BaseState)this).GetAimRay(); forwardDirection = ((Ray)(ref aimRay)).direction; RecalculateSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity.y *= 0.1f; ((EntityState)this).characterMotor.velocity = forwardDirection * dashSpeed; } ((EntityState)this).PlayAnimation("FullBody, Override", "DecisiveStrikeDash"); dashEffect = ((Component)childLocator.FindChild("DashEffect")).GetComponent(); if (Object.op_Implicit((Object)(object)dashEffect)) { dashEffect.Play(); } Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { CharacterModel component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { TemporaryOverlayInstance val3 = TemporaryOverlayManager.AddOverlay(((Component)component).gameObject); val3.duration = 1.5f * duration; val3.animateShaderAlpha = true; val3.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val3.destroyComponentOnEnd = true; val3.originalMaterial = LegacyResourcesAPI.Load("Materials/matDoppelganger"); val3.AddToCharacterModel(component); val3.Start(); } } } private void RecalculateSpeed() { float num = (Config.NemmandoDecisiveMoveSpeedScaling.Value ? ((BaseState)this).moveSpeedStat : 10.15f); dashSpeed = (4f + 0.25f * num) * speedCoefficient; } public override void OnExit() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0065: 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) if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } ((EntityState)this).characterMotor.velocity = Vector3.zero; if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.25f); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_00be: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_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_0101: 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_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = true; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { if (charge >= 1f) { ScepterSlashAttack scepterSlashAttack = new ScepterSlashAttack(); scepterSlashAttack.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)scepterSlashAttack); } else { ChargedSlashAttack chargedSlashAttack = new ChargedSlashAttack(); chargedSlashAttack.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)chargedSlashAttack); } return; } RecalculateSpeed(); if (((EntityState)this).isAuthority) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; Vector3 val = forwardDirection * dashSpeed; float num = Mathf.Max(Vector3.Dot(val, forwardDirection), 0f); val = forwardDirection * num; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += val * Time.fixedDeltaTime; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.forward = forwardDirection; } } } 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)7; } } public class ShootGun : BaseCustomSkillState { public static float damageCoefficient = 2.1f; public static float procCoefficient = 1f; public static float baseDuration = 0.3f; public static float force = 400f; public static float recoil = 1.5f; public static float range = 200f; public static GameObject tracerEffectPrefab = LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerGoldGat"); private float duration; private float fireTime; private bool hasFired; private Animator animator; private string muzzleString; public override void OnEnter() { base.OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = 0.1f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "Muzzle"; ((BaseState)this).FindModelChildGameObject("GunSpinEffect").SetActive(false); ((EntityState)this).PlayCrossfade("RightArm, Override", "ShootGunShort", "ShootGun.playbackRate", duration, 0.05f); } public override void OnExit() { ((EntityState)this).OnExit(); float num = Mathf.Clamp(((EntityState)this).skillLocator.secondary.finalRechargeInterval, 0.25f, float.PositiveInfinity); ((EntityState)this).PlayAnimation("Gesture, Override", "ReloadGun", "Reload.playbackRate", 0.5f * (num - duration - 0.3f), 0f); } private void Fire() { //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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: 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_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00e4: 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_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: 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_010a: 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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012b: 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_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_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_0197: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Expected O, but got Unknown //IL_01d4: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; bool isCrit = ((BaseState)this).RollCrit(); ((EntityState)this).characterBody.AddSpreadBloom(1.5f); EffectManager.SimpleMuzzleFlash(FirePistol2.muzzleEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); string shootSound = effectComponent.shootSound; Util.PlaySound(shootSound, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); BulletAttack val = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)0), falloffModel = (FalloffModel)1, maxDistance = range, force = force, hitMask = CommonMasks.bullet, minSpread = 0f, maxSpread = 0f, isCrit = isCrit, owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 0.75f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = tracerEffectPrefab, spreadPitchScale = 0f, spreadYawScale = 0f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = FirePistol2.hitEffectPrefab }; val.damageType.damageSource = (DamageSource)2; val.Fire(); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime) { Fire(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } 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 Submission : BaseState { public static float damageCoefficient = 1.6f; private int totalBulletsFired; private int bulletCount; public float stopwatchBetweenShots; private Animator modelAnimator; private Transform modelTransform; private float duration; private float durationBetweenShots; public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.SetSpreadBloom(0.2f, false); duration = FireBarrage.totalDuration; durationBetweenShots = FireBarrage.baseDurationBetweenShots / base.attackSpeedStat; bulletCount = (int)((float)FireBarrage.baseBulletCount * base.attackSpeedStat); modelAnimator = ((EntityState)this).GetModelAnimator(); modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).characterBody.SetAimTimer(2f); FireBullet(); } private void FireBullet() { //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_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_00a5: 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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: 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_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013a: 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_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Expected O, but got Unknown //IL_0156: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); string text = "Muzzle"; EffectManager.SimpleMuzzleFlash(FireBarrage.effectPrefab, ((EntityState)this).gameObject, text, false); ((EntityState)this).PlayCrossfade("UpperBody, Override", "Special", "Special.rate", durationBetweenShots, 0.05f); Util.PlaySound(FireBarrage.fireBarrageSoundString, ((EntityState)this).gameObject); ((BaseState)this).AddRecoil(-0.8f * FireBarrage.recoilAmplitude, -1f * FireBarrage.recoilAmplitude, -0.1f * FireBarrage.recoilAmplitude, 0.15f * FireBarrage.recoilAmplitude); if (((EntityState)this).isAuthority) { BulletAttack val = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = FireBarrage.minSpread, maxSpread = FireBarrage.maxSpread, bulletCount = 1u, damage = damageCoefficient * base.damageStat, force = FireBarrage.force, tracerEffectPrefab = FireBarrage.tracerEffectPrefab, muzzleName = text, hitEffectPrefab = FireBarrage.hitEffectPrefab, isCrit = ((BaseState)this).RollCrit(), radius = FireBarrage.bulletRadius, smartCollision = true, damageType = DamageTypeCombo.op_Implicit((DamageType)32) }; val.damageType.damageSource = (DamageSource)8; val.Fire(); } ((EntityState)this).characterBody.AddSpreadBloom(FireBarrage.spreadBloomValue); totalBulletsFired++; } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatchBetweenShots += Time.fixedDeltaTime; if (stopwatchBetweenShots >= durationBetweenShots && totalBulletsFired < bulletCount) { stopwatchBetweenShots -= durationBetweenShots; FireBullet(); } if (((EntityState)this).fixedAge >= duration && totalBulletsFired == bulletCount && ((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 DodgeState : BaseSkillState { public float duration = 0.6f; public float initialSpeedCoefficient = 7.5f; public float finalSpeedCoefficient = 1f; public static float dodgeFOV = -1f; private float rollSpeed; private Vector3 forwardDirection; private Vector3 previousPosition; private Animator animator; private NemmandoController nemmandoController; public override void OnEnter() { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00da: 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_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_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_016f: 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_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); nemmandoController = ((EntityState)this).GetComponent(); Util.PlaySound(DodgeState.dodgeSoundString, ((EntityState)this).gameObject); ((EntityState)this).PlayCrossfade("FullBody, Override", "Utility", "Utility.rate", duration * 1.25f, 0.05f); ((EntityState)this).PlayCrossfade("UpperBody, Override", "BufferEmpty", 0.05f); if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.SmallArmorBoost, 1.5f * duration); } 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; } RecalculateRollSpeed(); 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 * rollSpeed; } Vector3 val2 = (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) ? ((EntityState)this).characterMotor.velocity : Vector3.zero); previousPosition = ((EntityState)this).transform.position - val2; nemmandoController.rolling = true; } private void RecalculateRollSpeed() { rollSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, ((EntityState)this).fixedAge / duration); } public override void FixedUpdate() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_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_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017c: 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_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_007a: 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_0092: 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_00b0: 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_00b7: 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_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0109: 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_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); RecalculateRollSpeed(); if (!((EntityState)this).isAuthority) { return; } 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 y = val2.y; val2.y = 0f; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 0f); val2 = forwardDirection * num; if (val2.y < 0f) { val2.y = 0f; } val2.y += Mathf.Max(y, 0f); ((EntityState)this).characterMotor.velocity = val2; Vector3 val3 = (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) ? ((EntityState)this).characterDirection.forward : forwardDirection); Vector3 val4 = Vector3.Cross(Vector3.up, val3); float num2 = Vector3.Dot(forwardDirection, val3); float num3 = Vector3.Dot(forwardDirection, val4); animator.SetFloat("forwardSpeed", num2); animator.SetFloat("rightSpeed", num3); } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = -1f; } nemmandoController.rolling = false; ((EntityState)this).OnExit(); } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(forwardDirection); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); forwardDirection = reader.ReadVector3(); } } public class NemmandoMain : BaseCustomMainState { private Animator animator; public override void OnEnter() { base.OnEnter(); animator = ((EntityState)this).GetModelAnimator(); } public override void Update() { ((GenericCharacterMain)this).Update(); if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded) { if (Config.GetKeyPressed(Config.RestKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new NemmandoRestEmote(), (InterruptPriority)0); } else if (Config.GetKeyPressed(Config.TauntKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new NemmandoTauntEmote(), (InterruptPriority)0); } } } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)animator)) { if (base.hasSheath) { animator.SetBool("isAttacking", !((EntityState)this).characterBody.outOfCombat); } else { animator.SetBool("isAttacking", true); } } } } } namespace EntityStates.SS2UStates.Nemmando.Taunt { public class NemmandoRestEmote : RestEmote { public override void SetParams() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) animDuration = 8f; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { SkinDef bodySkinDef = SkinCatalog.GetBodySkinDef(((EntityState)this).characterBody.bodyIndex, (int)((EntityState)this).characterBody.skinIndex); if (Object.op_Implicit((Object)(object)bodySkinDef) && (Object)(object)bodySkinDef == (Object)(object)NemmandoCore.SkinDefs.Vergil) { animString = "SitChair"; animDuration = 0.6f; } } } } public class NemmandoTauntEmote : TauntEmote { public override void SetParams() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) duration = 4f; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { SkinDef bodySkinDef = SkinCatalog.GetBodySkinDef(((EntityState)this).characterBody.bodyIndex, (int)((EntityState)this).characterBody.skinIndex); if (Object.op_Implicit((Object)(object)bodySkinDef) && ((Object)(object)bodySkinDef == (Object)(object)NemmandoCore.SkinDefs.Mastery || (Object)(object)bodySkinDef == (Object)(object)NemmandoCore.SkinDefs.Vergil)) { soundString = "SS2USpawnMGR"; duration = 12f; } } } } } namespace EntityStates.SS2UStates.Executioner { public class ExecutionerSinglePistol : BaseState { public static float damageCoefficient = 1.8f; public static float force = 100f; public static float baseDuration = 0.25f; public static string attackSoundString = "SS2UExecutionerPrimaryClassic"; public static string critSoundString = "SS2UExecutionerPrimaryClassic"; public static string muzzleString = "Muzzle"; public static float spreadBloom = 0.4f; public static float recoil = 1f; public static GameObject tracerEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/TracerCommandoDefault.prefab").WaitForCompletion(); public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommando.prefab").WaitForCompletion(); private float duration; private bool crit; public override void OnEnter() { ((BaseState)this).OnEnter(); crit = ((BaseState)this).RollCrit(); duration = baseDuration / base.attackSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); } FireBullet(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetSpreadBloom(0f, false); } ((EntityState)this).OnExit(); } private void FireBullet() { //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_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_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_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: 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_00af: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_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_00e8: 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_0100: 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_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_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_0134: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Expected O, but got Unknown //IL_016a: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound(crit ? critSoundString : attackSoundString, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(FirePistol2.muzzleEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); ((EntityState)this).PlayAnimation("Gesture, Override", "Primary", "Primary.playbackRate", duration, 0f); if (((EntityState)this).isAuthority) { float num = damageCoefficient * base.damageStat; Ray aimRay = ((BaseState)this).GetAimRay(); BulletAttack val = new BulletAttack { aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * base.damageStat, damageType = DamageTypeCombo.op_Implicit((DamageType)0), damageColorIndex = (DamageColorIndex)0, minSpread = 0f, maxSpread = 0f, falloffModel = (FalloffModel)1, force = force, isCrit = crit, owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = 0.3f, weapon = ((EntityState)this).gameObject, tracerEffectPrefab = tracerEffectPrefab, hitEffectPrefab = hitEffectPrefab, maxDistance = 200f }; val.damageType.damageSource = (DamageSource)1; val.Fire(); } ((BaseState)this).AddRecoil(-0.4f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddSpreadBloom(spreadBloom); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class ExecutionerAxeScepter : ExecutionerAxe { public override void SetNextState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new ExecutionerAxeSlamScepter()); } } public class ExecutionerAxeSlamScepter : ExecutionerAxeSlam { public override void OverrideStats() { damageCoefficientInternal *= 1.5f; radiusInternal = 20f; } public override BlastAttack ModifyBlastAttack(BlastAttack blast) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) blast = base.ModifyBlastAttack(blast); DamageAPI.AddModdedDamageType(blast, DamageTypeCore.ModdedDamageTypes.GuaranteedFearOnHit); return blast; } } public class ExecutionerBurstPistol : BaseState { public static float damageCoefficient = 1.8f; public static float force = 100f; public static float baseDuration = 0.5f; public static float baseShotDuration = 0.12f; public static string attackSoundString = "SS2UExecutionerPrimaryClassic"; public static string critSoundString = "SS2UExecutionerPrimaryClassic"; public static int baseShotCount = 2; public static string muzzleString = "Muzzle"; public static float spreadBloom = 0.4f; public static float recoil = 1f; public static GameObject tracerEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/TracerCommandoDefault.prefab").WaitForCompletion(); public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommando.prefab").WaitForCompletion(); private int shotCount; private float duration; private float shotDuration; private float shotStopwatch; private bool crit; public override void OnEnter() { ((BaseState)this).OnEnter(); crit = ((BaseState)this).RollCrit(); shotCount = 0; shotStopwatch = 0f; duration = baseDuration / base.attackSpeedStat; shotDuration = baseShotDuration / base.attackSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); } FireBullet(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (shotCount < baseShotCount) { shotStopwatch += Time.fixedDeltaTime; if (shotStopwatch >= shotDuration) { FireBullet(); } } else if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration && shotCount >= baseShotCount) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetSpreadBloom(0f, false); } ((EntityState)this).OnExit(); } private void FireBullet() { //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_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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: 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_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: 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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: 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) //IL_00f6: 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_010d: 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_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0131: 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_0142: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Expected O, but got Unknown //IL_0183: Unknown result type (might be due to invalid IL or missing references) shotStopwatch = 0f; shotCount++; Util.PlaySound(crit ? critSoundString : attackSoundString, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(FirePistol2.muzzleEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); ((EntityState)this).PlayAnimation("Gesture, Override", "Primary", "Primary.playbackRate", duration, 0f); if (((EntityState)this).isAuthority) { float num = damageCoefficient * base.damageStat; Ray aimRay = ((BaseState)this).GetAimRay(); BulletAttack val = new BulletAttack { aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * base.damageStat, damageType = DamageTypeCombo.op_Implicit((DamageType)0), damageColorIndex = (DamageColorIndex)0, minSpread = 0f, maxSpread = 0f, falloffModel = (FalloffModel)1, force = force, isCrit = crit, owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = 0.3f, weapon = ((EntityState)this).gameObject, tracerEffectPrefab = tracerEffectPrefab, hitEffectPrefab = hitEffectPrefab, maxDistance = 200f }; val.damageType.damageSource = (DamageSource)1; val.Fire(); } ((BaseState)this).AddRecoil(-0.4f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddSpreadBloom(spreadBloom); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class ExecutionerMain : GenericCharacterMain { private Animator animator; private GenericSkill ionGunSkill; private IonGunChargeComponent storedChargeComp; private MasterIonStockComponent masterIonStock; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); ionGunSkill = ((EntityState)this).skillLocator.secondary; storedChargeComp = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master)) { masterIonStock = ((Component)((EntityState)this).characterBody.master).GetComponent(); if (!Object.op_Implicit((Object)(object)masterIonStock)) { masterIonStock = ((MonoBehaviour)(object)((EntityState)this).characterBody.master).AddComponent(); } } } public override void OnExit() { if (Object.op_Implicit((Object)(object)ionGunSkill) && Object.op_Implicit((Object)(object)masterIonStock)) { masterIonStock.stocks = ionGunSkill.stock; } ((GenericCharacterMain)this).OnExit(); } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("inCombat", !((EntityState)this).characterBody.outOfCombat || !((EntityState)this).characterBody.outOfDanger); } } public override void Update() { ((GenericCharacterMain)this).Update(); if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded) { if (Config.GetKeyPressed(Config.RestKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new RestEmote(), (InterruptPriority)0); } else if (Config.GetKeyPressed(Config.TauntKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new TauntEmote(), (InterruptPriority)0); } } } private void OnKillHandler(DamageReport report) { if (report != null && Object.op_Implicit((Object)(object)report.attacker) && (Object)(object)report.attacker == (Object)(object)((EntityState)this).gameObject) { storedChargeComp.CallRpcAddIonCharge(); } } } public class ExecutionerIonGun : BaseCustomSkillState { public static int shotCount = 2; public static float damageCoefficient = 3f; public static float procCoefficient = 1f; public static float baseDuration = 0.12f; public static float recoil = 1f; public static float range = 1000f; public static GameObject muzzlePrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/MuzzleflashHuntressFlurry.prefab").WaitForCompletion(); public GameObject tracerPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/TracerCommandoShotgun.prefab").WaitForCompletion(); public static GameObject hitPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/OmniExplosionVFXFMJ.prefab").WaitForCompletion(); private float duration; private BulletAttack bullet; private string muzzleString; private float shotTimer; private int shotsToFire; private GenericSkill skill; private Animator animator; private EffectData ionEffectData; private bool isCrit; public override void OnEnter() { base.OnEnter(); animator = ((EntityState)this).GetModelAnimator(); skill = ((EntityState)this).characterBody.skillLocator.GetSkill((SkillSlot)1); if (Object.op_Implicit((Object)(object)skill)) { shotsToFire = skill.stock * shotCount; if (!((EntityState)this).characterBody.HasBuff(BuffCore.exeSuperchargedBuff)) { skill.stock = 0; } } duration = baseDuration; ((EntityState)this).characterBody.SetAimTimer(2f); muzzleString = "Muzzle"; isCrit = ((BaseState)this).RollCrit(); Shoot(); } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); shotTimer += Time.fixedDeltaTime; if (shotTimer >= duration) { shotTimer = 0f; if (shotsToFire > 0) { Shoot(); } else if (((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } } private void Shoot() { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Expected O, but got Unknown //IL_0117: 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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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_0136: 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_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_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_0165: 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_016c: 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_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0184: 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_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: 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_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0204: 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_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Expected O, but got Unknown //IL_0225: 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) shotsToFire--; Util.PlaySound("SS2UExecutionerSecondaryClassic", ((EntityState)this).gameObject); ((BaseState)this).AddRecoil(-2f * recoil, -3f * recoil, -1f * recoil, 1f * recoil); EffectManager.SimpleMuzzleFlash(muzzlePrefab, ((EntityState)this).gameObject, muzzleString, false); EffectData val = new EffectData { origin = ((EntityState)this).GetModelChildLocator().FindChild(muzzleString).position }; Ray aimRay = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); ionEffectData = val; EffectManager.SpawnEffect(Assets.exeIonEffect, ionEffectData, true); float num = 4f; if (shotsToFire == 1) { num = 8f; } ((EntityState)this).PlayAnimation("Gesture, Override", "Secondary", "Secondary.playbackRate", duration * num, 0f); if (((EntityState)this).isAuthority) { float num2 = damageCoefficient * ((BaseState)this).damageStat; Ray aimRay2 = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay2)).direction; bullet = new BulletAttack { aimVector = direction, origin = ((Ray)(ref aimRay2)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageType = DamageTypeCombo.op_Implicit((DamageType)16777216), damageColorIndex = (DamageColorIndex)0, minSpread = 0f, maxSpread = 0f, falloffModel = (FalloffModel)0, maxDistance = range, force = FireBarrage.force, isCrit = isCrit, owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procCoefficient = procCoefficient, radius = 1f, weapon = ((EntityState)this).gameObject, tracerEffectPrefab = tracerPrefab, hitEffectPrefab = hitPrefab, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask }; bullet.damageType.damageSource = (DamageSource)2; DamageAPI.AddModdedDamageType(bullet, DamageTypeCore.ModdedDamageTypes.ExtendFear); bullet.Fire(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)3; } } public class ExecutionerAxe : BaseSkillState { public static float baseDuration = 0.85f; public static float velocityMultiplier = 0.6f; private float duration; private Animator animator; private ExecutionerController exeController; private CameraParamsOverrideHandle camOverrideHandle; public static CharacterCameraParamsData slamCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, -17.5f)), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public override void OnEnter() { //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00ce: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); exeController = ((EntityState)this).GetComponent(); duration = baseDuration; ((EntityState)this).PlayAnimation("FullBody, Override", "Special1", "Special.playbackRate", 0.9f * duration, 0f); Util.PlaySound("SS2UExecutionerSpecialCast", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)exeController)) { exeController.PlayAxeSpawnEffect(); } if (((EntityState)this).isAuthority) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); ((EntityState)this).characterMotor.jumpCount = ((EntityState)this).characterBody.maxJumpCount; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.5f; EntityStateMachine val = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Slide"); if (((object)val.state).GetType() == typeof(ExecutionerDash)) { val.SetNextStateToMain(); } } CameraParamsOverrideRequest val2 = default(CameraParamsOverrideRequest); val2.cameraParamsData = slamCameraParams; val2.priority = 0f; CameraParamsOverrideRequest val3 = val2; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val3, 0.15f); Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { CharacterModel component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { TemporaryOverlayInstance val4 = TemporaryOverlayManager.AddOverlay(((Component)component).gameObject); val4.duration = duration * 0.5f; val4.animateShaderAlpha = true; val4.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val4.destroyComponentOnEnd = true; val4.originalMaterial = LegacyResourcesAPI.Load("Materials/matHuntressFlashBright"); val4.AddToCharacterModel(component); val4.Start(); } } } public override void OnExit() { //IL_003b: 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) if (!((EntityState)this).outer.destroying) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.4f); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_0015: 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_0024: 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_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_0073: 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(); float num = 11f; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += velocityMultiplier * Vector3.up * (num * FlyUpState.speedCoefficientCurve.Evaluate(((EntityState)this).fixedAge / duration) * Time.fixedDeltaTime); ((EntityState)this).characterMotor.velocity.y = 0f; CharacterMotor characterMotor2 = ((EntityState)this).characterMotor; characterMotor2.moveDirection *= 2f; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { SetNextState(); } } public virtual void SetNextState() { ((EntityState)this).outer.SetNextState((EntityState)(object)new ExecutionerAxeSlam()); } 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 ExecutionerAxeSlam : BaseSkillState { public static float damageCoefficient = 10f; public static float procCoefficient = 1f; public static float baseDuration = 10f; public static float dropAttackRadius = 4f; public static float slamRadius = 14f; public static float rechargePerKill = 1f; private GameObject slamEffect = LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/VagrantCannonExplosion"); private EffectData slamEffectData; private Animator animator; private bool crit; public float radiusInternal; public float damageCoefficientInternal; private CameraParamsOverrideHandle camOverrideHandle; public static CharacterCameraParamsData slamCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, -17.5f)), wallCushion = BlendableFloat.op_Implicit(0.1f) }; public override void OnEnter() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_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_00d7: 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_00e0: 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) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); ((EntityState)this).PlayAnimation("FullBody, Override", "Special2", "Special.playbackRate", 0.15f, 0f); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); if (((EntityState)this).isAuthority) { ((EntityState)this).characterMotor.velocity.y = -120f; ((EntityState)this).characterMotor.rootMotion.y -= 0.5f; ((EntityState)this).characterMotor.velocity.x = 0f; ((EntityState)this).characterMotor.velocity.z = 0f; crit = ((BaseState)this).RollCrit(); } CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = slamCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, 0.15f); damageCoefficientInternal = damageCoefficient; radiusInternal = slamRadius; OverrideStats(); } public virtual void OverrideStats() { } public override void FixedUpdate() { //IL_0062: 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) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (((EntityState)this).characterMotor.velocity.y > -200f) { ((EntityState)this).characterMotor.velocity.y = -200f; } bool flag = Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && IsEnemyInSphere(5f, ((EntityState)this).characterBody.footPosition, ((BaseState)this).GetTeam(), airborneOnly: true); if (((EntityState)this).fixedAge >= baseDuration || ((EntityState)this).characterMotor.isGrounded || flag) { ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { //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_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: 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_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0101: 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_0108: 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_0127: 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_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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_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_0192: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Expected O, but got Unknown //IL_01c5: 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_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) slamEffectData = new EffectData { color = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue), scale = slamRadius, origin = ((EntityState)this).characterBody.footPosition }; float num = 8f; ((BaseState)this).AddRecoil(-0.4f * num, -0.8f * num, -0.3f * num, 0.3f * num); CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.1f; ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 10f); ((EntityState)this).PlayAnimation("FullBody, Override", "Special4", "Special.playbackRate", 0.4f, 0f); Util.PlayAttackSpeedSound("SS2UExecutionerSpecialImpact", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); EffectManager.SpawnEffect(slamEffect, slamEffectData, true); EffectManager.SpawnEffect(Assets.exeAxeSlamEffect, slamEffectData, true); CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags - 1); if (((EntityState)this).isAuthority) { Vector3 footPosition = ((EntityState)this).characterBody.footPosition; BlastAttack val = new BlastAttack { radius = slamRadius, procCoefficient = procCoefficient, position = footPosition, attacker = ((EntityState)this).gameObject, teamIndex = ((EntityState)this).teamComponent.teamIndex, crit = crit, baseDamage = ((EntityState)this).characterBody.damage * damageCoefficient, damageColorIndex = (DamageColorIndex)0, falloffModel = (FalloffModel)0, attackerFiltering = (AttackerFiltering)2, damageType = DamageTypeCombo.op_Implicit((DamageType)524288), bonusForce = Vector3.down * 4000f }; DamageAPI.AddModdedDamageType(val, DamageTypeCore.ModdedDamageTypes.AntiFlyingForce); DamageAPI.AddModdedDamageType(val, DamageTypeCore.ModdedDamageTypes.ResetVictimForce); val = ModifyBlastAttack(val); val.damageType.damageSource = (DamageSource)8; val.Fire(); ((EntityState)this).characterMotor.velocity.y = 0f; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.4f); } ((EntityState)this).OnExit(); } public virtual BlastAttack ModifyBlastAttack(BlastAttack blast) { return blast; } private bool IsEnemyInSphere(float radius, Vector3 position, TeamIndex team, bool airborneOnly = false) { //IL_0007: 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_009e: 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) List list = new List(); Collider[] array = Physics.OverlapSphere(position, radius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && !list.Contains(healthComponent)) { list.Add(healthComponent); if (Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.teamComponent) && healthComponent.body.teamComponent.teamIndex != team && (!airborneOnly || healthComponent.body.isFlying || (Object.op_Implicit((Object)(object)healthComponent.body.characterMotor) && !healthComponent.body.characterMotor.isGrounded))) { return true; } } } return false; } 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 ExecutionerDash : BaseSkillState { public static float baseDuration = 0.6f; public static float speedMultiplier = 3.3333333f; public static float debuffRadius = 14f; public static float debuffDuration = 3f; public static float debuffCheckInterval = 1f / 30f; private float debuffCheckStopwatch; private float initialSpeed; private float duration; private SphereSearch fearSearch; private List hits; private Animator animator; private ExecutionerController exeController; public override void OnEnter() { //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Expected O, but got Unknown //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); debuffCheckStopwatch = 0f; initialSpeed = ((BaseState)this).moveSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && ((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } exeController = ((EntityState)this).GetComponent(); animator = ((EntityState)this).GetModelAnimator(); duration = baseDuration; Util.PlayAttackSpeedSound("SS2UExecutionerUtility", ((EntityState)this).gameObject, 1f); ((EntityState)this).PlayAnimation("FullBody, Override", "Utility", "Utility.playbackRate", duration, 0f); if (Object.op_Implicit((Object)(object)exeController)) { exeController.PlayDashEffect(); } hits = new List(); fearSearch = new SphereSearch(); fearSearch.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; fearSearch.radius = debuffRadius; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { CharacterModel component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)component).gameObject); val.duration = 1.5f * baseDuration; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = LegacyResourcesAPI.Load("Materials/matHuntressFlashBright"); val.AddToCharacterModel(component); val.Start(); } } if (NetworkServer.active) { CreateFearAoe(); } } private void CreateFearAoe() { //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_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) hits.Clear(); fearSearch.ClearCandidates(); fearSearch.origin = ((EntityState)this).characterBody.corePosition; fearSearch.RefreshCandidates(); fearSearch.FilterCandidatesByDistinctHurtBoxEntities(); fearSearch.FilterCandidatesByHurtBoxTeam(TeamMask.GetUnprotectedTeams(((EntityState)this).teamComponent.teamIndex)); fearSearch.GetHurtBoxes(hits); foreach (HurtBox hit in hits) { HealthComponent healthComponent = hit.healthComponent; if (!Object.op_Implicit((Object)(object)healthComponent)) { continue; } SetStateOnHurt component = ((Component)healthComponent).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Type type = ((object)component.targetStateMachine.state).GetType(); if (type != typeof(StunState) && type != typeof(ShockState) && type != typeof(FrozenState)) { component.SetStun(2f); } } CharacterBody body = healthComponent.body; if (!Object.op_Implicit((Object)(object)body) || !((Object)(object)body != (Object)(object)((EntityState)this).characterBody)) { continue; } body.AddTimedBuff(BuffCore.fearDebuff, debuffDuration); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ExecutionerKillComponent executionerKillComponent = ((Component)body).GetComponent(); if (!Object.op_Implicit((Object)(object)executionerKillComponent)) { executionerKillComponent = ((MonoBehaviour)(object)body).AddComponent(); } executionerKillComponent.AddTimer(((EntityState)this).characterBody, debuffDuration); } } } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = true; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += ((EntityState)this).characterDirection.forward * initialSpeed * speedMultiplier * Time.fixedDeltaTime; if (((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } } if (NetworkServer.active) { debuffCheckStopwatch += Time.fixedDeltaTime; if (debuffCheckStopwatch >= debuffCheckInterval) { debuffCheckStopwatch -= debuffCheckInterval; CreateFearAoe(); } } if (((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)2; } } } namespace EntityStates.SS2UStates.Cyborg { public class OverheatScepter : CyborgFireOverheat { public static GameObject projectileOverride; public override void OverrideStats() { damageCoefficientInternal *= 1.5f; projectilePrefabInternal = projectileOverride; } } public class PrimaryLaser : BaseSkillState, IStepSetter { public static float damageCoefficient = 3f; public static float baseDuration = 0.5f; public static float recoil = 2f; public static GameObject tracerEffectPrefab; public static GameObject tracerEffectColossusPrefab; public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommandoShotgun.prefab").WaitForCompletion(); public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MuzzleflashMageLightning.prefab").WaitForCompletion(); private int step = 0; public string muzzleString; private float duration; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (step == 1) { muzzleString = "Lowerarm.L_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1Alt", "FireM1.playbackRate", duration, 0.1f); } else { muzzleString = "Lowerarm.R_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1", "FireM1.playbackRate", duration, 0.1f); } FireLaser(); } private void FireLaser() { //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_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_007c: 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_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_0098: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Expected O, but got Unknown //IL_0144: 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) Ray aimRay = ((BaseState)this).GetAimRay(); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); Util.PlaySound("SS2UCyborgPrimary", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { GameObject val = tracerEffectPrefab; if (CyborgCore.IsColossusSkin(((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)tracerEffectColossusPrefab)) { val = tracerEffectColossusPrefab; } BulletAttack val2 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0f, maxSpread = 0f, damage = damageCoefficient * ((BaseState)this).damageStat, force = 1000f, radius = 1f, smartCollision = true, tracerEffectPrefab = val, muzzleName = muzzleString, hitEffectPrefab = hitEffectPrefab, isCrit = ((BaseState)this).RollCrit(), falloffModel = (FalloffModel)0, damageType = DamageTypeCombo.op_Implicit((DamageType)0), maxDistance = 1000f, procCoefficient = 1f }; val2.damageType.damageSource = (DamageSource)1; ref DamageTypeExtended damageTypeExtended = ref val2.damageType.damageTypeExtended; damageTypeExtended = (DamageTypeExtended)((uint)damageTypeExtended | 0x2000u); DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.CyborgCanDetonateShockCore); val2.Fire(); ((BaseState)this).AddRecoil(-0.5f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); ((EntityState)this).characterBody.AddSpreadBloom(0.6f / Mathf.Sqrt(((BaseState)this).attackSpeedStat)); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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)1; } public void SetStep(int i) { step = i; } } public class ShockCore : BaseState { public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Captain/CaptainChargeTazer.prefab").WaitForCompletion(); public static GameObject projectilePrefab; public static float damageCoefficient = 4f; public static float baseDuration = 0.5f; private float duration; private bool buttonReleased = false; private CyborgEnergyComponent energyComponent; public override void OnEnter() { //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_0022: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); Util.PlaySound("SS2UCyborgUtility", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("Gesture, Override", "FireSpecial", "FireArrow.playbackRate", duration, 0f); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "Lowerarm.L_end", false); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(GetProjectilePrefab(), ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * GetDamageCoefficient(), 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } if (CyborgCore.useEnergyRework.Value) { energyComponent = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.ConsumeEnergy(0.4f); energyComponent.energySkillsActive++; } } public virtual float GetDamageCoefficient() { return damageCoefficient; } public virtual GameObject GetProjectilePrefab() { return projectilePrefab; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (!buttonReleased && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && !((EntityState)this).inputBank.skill2.down) { buttonReleased = true; } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive--; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_000d: 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) return (InterruptPriority)((!buttonReleased) ? 2 : 0); } } public class ShockCoreScepter : ShockCore { public static GameObject scepterProjectilePrefab; public override float GetDamageCoefficient() { return base.GetDamageCoefficient() * 1.5f; } public override GameObject GetProjectilePrefab() { return scepterProjectilePrefab; } } public class CyborgMain : GenericCharacterMain { public static GameObject chargeRifleCrosshair; private float hoverVelocity = -1f; private float hoverAcceleration = 60f; private Transform thrusterEffectL; private Transform thrusterEffectR; private bool inJetpackState = false; private EntityStateMachine jetpackStateMachine; private CyborgEnergyComponent energyComponent; public bool jumpButtonState; private bool heldPress; private bool jumpToggledState; private float oldJumpHeldTime; private float jumpButtonHeldTime; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); energyComponent = ((EntityState)this).GetComponent(); jetpackStateMachine = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Jetpack"); ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)modelChildLocator)) { thrusterEffectL = modelChildLocator.FindChild("ThrusterEffectL"); if (Object.op_Implicit((Object)(object)thrusterEffectL)) { ((Component)thrusterEffectL).gameObject.SetActive(false); } thrusterEffectR = modelChildLocator.FindChild("ThrusterEffectR"); if (Object.op_Implicit((Object)(object)thrusterEffectR)) { ((Component)thrusterEffectR).gameObject.SetActive(false); } } } public override void ProcessJump() { //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Expected O, but got Unknown inJetpackState = ((object)jetpackStateMachine.state).GetType() != typeof(Idle); if (((object)jetpackStateMachine.state).GetType() == typeof(FlightMode)) { return; } if (((BaseCharacterMain)this).hasCharacterMotor && ((BaseCharacterMain)this).hasInputBank && ((EntityState)this).isAuthority) { NetworkUser val = NetworkUser.readOnlyLocalPlayersList[0]; bool? flag; if ((Object)(object)val == (Object)null) { flag = null; } else { LocalUser localUser = val.localUser; flag = ((localUser != null) ? new bool?(localUser.userProfile.toggleArtificerHover) : null); } if (flag.GetValueOrDefault(true)) { if (((EntityState)this).inputBank.jump.down) { oldJumpHeldTime = jumpButtonHeldTime; jumpButtonHeldTime += Time.deltaTime; heldPress = oldJumpHeldTime < 0.5f && jumpButtonHeldTime >= 0.5f; } else { oldJumpHeldTime = 0f; jumpButtonHeldTime = 0f; heldPress = false; } if (!((EntityState)this).characterMotor.isGrounded) { if (((EntityState)this).characterMotor.jumpCount == ((EntityState)this).characterBody.maxJumpCount) { if (((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed) { jumpButtonState = !jumpButtonState; } } else if (heldPress) { jumpButtonState = !jumpButtonState; } } else { jumpButtonState = false; } } else { jumpButtonState = ((EntityState)this).inputBank.jump.down; } bool flag2 = jumpButtonState && ((EntityState)this).characterMotor.velocity.y < 0f && !((EntityState)this).characterMotor.isGrounded; if (flag2 && !inJetpackState) { jetpackStateMachine.SetNextState((EntityState)(object)new EntityStates.SS2UStates.Cyborg.Jetpack.JetpackOn()); } if (!flag2 && inJetpackState) { jetpackStateMachine.SetNextState((EntityState)new Idle()); } } ((GenericCharacterMain)this).ProcessJump(); } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); inJetpackState = ((object)jetpackStateMachine.state).GetType() != typeof(Idle); if (inJetpackState) { if (Object.op_Implicit((Object)(object)thrusterEffectL)) { ((Component)thrusterEffectL).gameObject.SetActive(true); } if (Object.op_Implicit((Object)(object)thrusterEffectR)) { ((Component)thrusterEffectR).gameObject.SetActive(true); } } else { if (Object.op_Implicit((Object)(object)thrusterEffectL)) { ((Component)thrusterEffectL).gameObject.SetActive(false); } if (Object.op_Implicit((Object)(object)thrusterEffectR)) { ((Component)thrusterEffectR).gameObject.SetActive(false); } } } } public class CyborgFireOverheat : BaseSkillState { public static float damageCoefficient = 12f; public static float baseDuration = 0.5f; public static float recoil = 1f; public static GameObject projectilePrefab; private float duration; private bool hasFired; private Animator animator; private string muzzleString; public float damageCoefficientInternal; public GameObject projectilePrefabInternal; private CyborgEnergyComponent energyComponent; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "Muzzle"; Util.PlaySound("SS2UCyborgUtility", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("Gesture, Override", "FireSpecial", "FireArrow.playbackRate", duration, 0f); damageCoefficientInternal = damageCoefficient; projectilePrefabInternal = projectilePrefab; OverrideStats(); FireBFG(); ApplySelfKnockback(); if (CyborgCore.useEnergyRework.Value) { energyComponent = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.ConsumeEnergy(0.6f); energyComponent.energySkillsActive++; } } public void ApplySelfKnockback() { //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_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) if (!((EntityState)this).isAuthority || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) || ((EntityState)this).characterMotor.isGrounded) { return; } EntityStateMachine val = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Jetpack"); if (Object.op_Implicit((Object)(object)val) && ((object)val.state).GetType() == typeof(Idle)) { if (((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } CharacterMotor characterMotor = ((EntityState)this).characterMotor; Ray aimRay = ((BaseState)this).GetAimRay(); characterMotor.ApplyForce(-2400f * ((Ray)(ref aimRay)).direction, true, false); } } public virtual void OverrideStats() { } public override void OnExit() { if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive--; } ((EntityState)this).OnExit(); } private void FireBFG() { //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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; ((EntityState)this).characterBody.AddSpreadBloom(0.75f); Ray aimRay = ((BaseState)this).GetAimRay(); EffectManager.SimpleMuzzleFlash(FirePistol2.muzzleEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(projectilePrefabInternal, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * damageCoefficientInternal, 0f, Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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; } } } namespace EntityStates.SS2UStates.Cyborg.Special { public class DeployTeleporter : BaseState { public static float timeoutDuration = 10f; public static GameObject projectilePrefab; public static CyborgTeleSkillDef teleportSkillDef; private CyborgTeleportTracker teleTracker; private CyborgEnergyComponent energyComponent; private bool foundTeleporter; private bool appliedSkillOverride; private int origSpecialStock; private float origSpecialRechargeStopwatch; public override void OnEnter() { ((BaseState)this).OnEnter(); teleTracker = ((EntityState)this).GetComponent(); ((EntityState)this).PlayAnimation("Gesture, Override", "CreateTP", "FireM1.playbackRate", 1f, 0f); appliedSkillOverride = false; foundTeleporter = false; FireTeleportProjectile(); if (CyborgCore.useEnergyRework.Value) { energyComponent = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.ConsumeEnergy(0.5f); } } private void FireTeleportProjectile() { //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_0029: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_0099: 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_00a7: 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) Util.PlaySound("SS2UCyborgSpecialPlace", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); FireProjectileInfo val = default(FireProjectileInfo); val.crit = false; val.damage = 0f; val.damageColorIndex = (DamageColorIndex)0; val.force = 0f; val.owner = ((EntityState)this).gameObject; val.position = ((Ray)(ref aimRay)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = projectilePrefab; val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!((EntityState)this).isAuthority) { return; } if (!foundTeleporter) { foundTeleporter = Object.op_Implicit((Object)(object)teleTracker) && teleTracker.GetTeleportCoordinates().HasValue; if (foundTeleporter && !appliedSkillOverride && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { GenericSkill utility = ((EntityState)this).skillLocator.utility; if (Object.op_Implicit((Object)(object)utility)) { origSpecialStock = utility.stock; origSpecialRechargeStopwatch = utility.rechargeStopwatch; appliedSkillOverride = true; utility.SetSkillOverride((object)this, (SkillDef)(object)teleportSkillDef, (SkillOverridePriority)4); utility.stock = 1; } } } bool flag = !foundTeleporter && ((EntityState)this).fixedAge >= timeoutDuration; bool flag2 = foundTeleporter && Object.op_Implicit((Object)(object)teleTracker) && !teleTracker.GetTeleportCoordinates().HasValue; if (flag || flag2) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (((EntityState)this).isAuthority && appliedSkillOverride && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { GenericSkill utility = ((EntityState)this).skillLocator.utility; if (Object.op_Implicit((Object)(object)utility)) { utility.UnsetSkillOverride((object)this, (SkillDef)(object)teleportSkillDef, (SkillOverridePriority)4); utility.rechargeStopwatch = origSpecialRechargeStopwatch; utility.stock = origSpecialStock; } } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class UseTeleporter : BaseState { public static GameObject impactEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Toolbot/ImpactToolbotDash.prefab").WaitForCompletion(); public static GameObject explosionEffectPrefab; public static float damageCoefficient = 10f; public static float radius = 8f; public static float damageCoefficientNoEnergy = 8f; public static float radiusNoEnergy = 20f; public static float baseDuration = 1f; private CyborgTeleportTracker teleTracker; private bool teleported; public override void OnEnter() { ((BaseState)this).OnEnter(); teleported = false; teleTracker = ((EntityState)this).GetComponent(); } private void Teleport() { //IL_0086: 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) if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)teleTracker)) { Vector3? teleportCoordinates = teleTracker.GetTeleportCoordinates(); if (teleportCoordinates.HasValue) { Util.PlaySound("SS2UCyborgSpecialTeleport", ((EntityState)this).gameObject); ((EntityState)this).characterMotor.velocity.y = 0f; ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.SetPosition(teleportCoordinates.Value, true); TelefragExplosionAuthority(teleportCoordinates.Value); teleported = true; teleTracker.CallCmdDestroyTeleporter(); ((EntityState)this).PlayAnimation("Gesture, Override", "UseTP", "FireM1.playbackRate", baseDuration, 0f); } } } private void TelefragExplosionAuthority(Vector3 position) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_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_0010: 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_001a: 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_0037: 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_0049: 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_0054: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007f: 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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_0099: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Expected O, but got Unknown //IL_00b8: 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_015d: 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_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_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Expected O, but got Unknown //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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) BlastAttack val = new BlastAttack { damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)32), baseDamage = base.damageStat * damageCoefficient, radius = radius, baseForce = 4000f, canRejectForce = false, bonusForce = Vector3.zero, attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, attackerFiltering = (AttackerFiltering)2, crit = ((BaseState)this).RollCrit(), falloffModel = (FalloffModel)0, position = position, procChainMask = default(ProcChainMask), procCoefficient = 1f, teamIndex = ((BaseState)this).GetTeam() }; val.damageType.damageSource = (DamageSource)4; if (!CyborgCore.useEnergyRework.Value) { val.baseDamage = base.damageStat * damageCoefficientNoEnergy; val.radius = radiusNoEnergy; val.damageType = DamageTypeCombo.op_Implicit((DamageType)16777216); EffectManager.SpawnEffect(explosionEffectPrefab, new EffectData { origin = position, scale = radiusNoEnergy }, true); GameObject teleportEffectPrefab = Run.instance.GetTeleportEffectPrefab(((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)teleportEffectPrefab)) { EffectManager.SimpleEffect(teleportEffectPrefab, position, Quaternion.identity, true); } } else { val.impactEffect = EffectCatalog.FindEffectIndexFromPrefab(impactEffectPrefab); } val.Fire(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (!((EntityState)this).inputBank.skill3.down && !teleported && ((EntityState)this).fixedAge <= baseDuration) { Teleport(); } if (((EntityState)this).fixedAge >= baseDuration) { ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)teleTracker) && !teleported) { teleTracker.CallCmdDestroyTeleporter(); Util.PlaySound("Play_railgunner_m2_reload_fail", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.utility)) { ((EntityState)this).skillLocator.utility.AddOneStock(); } } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } } namespace EntityStates.SS2UStates.Cyborg.Secondary { public class DefenseMatrix : BaseState { private BoxCollider matrixCollider; private Transform matrixRootTransform; private GameObject matrixInstance; private Transform laserVisuals; private float tickDuration; private float tickStopwatch; private float blinkStopwatch; private float blinkToggleDuration; private TeamIndex inputTeamIndex; private DefenseMatrixInfo defenseMatrixInfo; private CyborgEnergyComponent energyComponent; public static float shieldDuration = 6.6666665f; public static float minDuration = 0.5f; public static string attackSoundString = "SS2UCyborgSpecialTeleport"; public static GameObject projectileDeletionEffectPrefab; public static GameObject matrixPrefab; public static float ticksPerSecond = 30f; public static float energyFractionPerProjectile = 0f; public static float blinkTime = 0.5f; public static float blinkFrequency = 20f; public override void OnEnter() { //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: 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_01db: Expected O, but got Unknown ((BaseState)this).OnEnter(); energyComponent = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive++; } Util.PlaySound(attackSoundString, ((EntityState)this).gameObject); ((BaseState)this).StartAimMode(2f, false); tickDuration = 1f / ticksPerSecond; tickStopwatch = 0f; blinkStopwatch = 0f; blinkToggleDuration = 1f / blinkFrequency; if (!Object.op_Implicit((Object)(object)matrixPrefab)) { return; } ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (!Object.op_Implicit((Object)(object)modelChildLocator)) { return; } matrixRootTransform = modelChildLocator.FindChild("DefenseMatrixRoot"); if (!Object.op_Implicit((Object)(object)matrixRootTransform)) { return; } matrixInstance = Object.Instantiate(matrixPrefab); matrixInstance.transform.position = matrixRootTransform.position; Transform transform = matrixInstance.transform; Ray aimRay = ((BaseState)this).GetAimRay(); transform.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); ChildLocator component = matrixInstance.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } Transform val = component.FindChild("Hitbox"); if (Object.op_Implicit((Object)(object)val)) { matrixCollider = ((Component)val).GetComponent(); inputTeamIndex = ((BaseState)this).GetTeam(); Collider[] componentsInChildren = ((Component)val).GetComponentsInChildren(); Collider[] array = componentsInChildren; foreach (Collider val2 in array) { ((Component)val2).gameObject.layer = LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask); } defenseMatrixInfo = new DefenseMatrixInfo(componentsInChildren, inputTeamIndex); defenseMatrixInfo = DefenseMatrixManager.AddMatrix(defenseMatrixInfo); } laserVisuals = component.FindChild("LaserVisuals"); } public void DeleteProjectilesServer() { //IL_0020: 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_0044: 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_0084: 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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_0118: 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_01fc: 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_0209: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)matrixCollider)) { return; } List list = new List(); Vector3 val = matrixCollider.size * 0.5f; val.x *= matrixInstance.transform.localScale.x; val.y *= matrixInstance.transform.localScale.y; val.z *= matrixInstance.transform.localScale.z; Collider[] array = Physics.OverlapBox(((Component)matrixCollider).transform.position, val, ((Component)matrixCollider).transform.rotation, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.projectile)).mask)); Collider[] array2 = array; foreach (Collider val2 in array2) { ProjectileController componentInParent = ((Component)val2).GetComponentInParent(); if (Object.op_Implicit((Object)(object)componentInParent) && !componentInParent.cannotBeDeleted && (!Object.op_Implicit((Object)(object)componentInParent.teamFilter) || componentInParent.teamFilter.teamIndex != ((BaseState)this).GetTeam())) { bool flag = false; ProjectileSimple component = ((Component)componentInParent).gameObject.GetComponent(); ProjectileCharacterController component2 = ((Component)componentInParent).gameObject.GetComponent(); if ((!Object.op_Implicit((Object)(object)component) || (Object.op_Implicit((Object)(object)component) && component.desiredForwardSpeed == 0f)) && !Object.op_Implicit((Object)(object)component2)) { flag = true; } if (!flag) { list.Add(componentInParent); } } } int count = list.Count; for (int j = 0; j < count; j++) { GameObject gameObject = ((Component)list[j]).gameObject; if (Object.op_Implicit((Object)(object)gameObject)) { if (Object.op_Implicit((Object)(object)gameObject.transform)) { EffectManager.SimpleEffect(projectileDeletionEffectPrefab, gameObject.transform.position, default(Quaternion), true); } EntityState.Destroy((Object)(object)gameObject); } } if (Object.op_Implicit((Object)(object)energyComponent) && count > 0 && energyFractionPerProjectile > 0f) { energyComponent.RestoreEnergyServer((float)count * energyFractionPerProjectile); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody.isSprinting) { ((EntityState)this).characterBody.isSprinting = false; } if (NetworkServer.active) { tickStopwatch += Time.fixedDeltaTime; if (tickStopwatch >= tickDuration) { tickStopwatch -= tickDuration; DeleteProjectilesServer(); } } bool flag = false; if (Object.op_Implicit((Object)(object)energyComponent)) { float num = Time.fixedDeltaTime / shieldDuration; if (!CyborgCore.useEnergyRework.Value) { num *= 2f; } energyComponent.ConsumeEnergy(num); flag = energyComponent.energyDepleted; } if (!((EntityState)this).isAuthority) { return; } if (Object.op_Implicit((Object)(object)energyComponent) && energyComponent.remainingEnergyFraction <= blinkTime / shieldDuration) { blinkStopwatch += Time.fixedDeltaTime; if (blinkStopwatch >= blinkToggleDuration) { blinkStopwatch -= blinkToggleDuration; if (Object.op_Implicit((Object)(object)laserVisuals)) { ((Component)laserVisuals).gameObject.SetActive(!((Component)laserVisuals).gameObject.activeSelf); } } } bool flag2 = Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill2.down; if (flag || (!flag2 && ((EntityState)this).fixedAge >= minDuration)) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void Update() { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_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_005c: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).Update(); if (Object.op_Implicit((Object)(object)matrixInstance)) { Transform transform = matrixInstance.transform; Ray aimRay = ((BaseState)this).GetAimRay(); transform.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); if (Object.op_Implicit((Object)(object)matrixRootTransform)) { matrixInstance.transform.position = matrixRootTransform.position; } } } public override void OnExit() { if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive--; } if (defenseMatrixInfo != null) { DefenseMatrixManager.RemoveMatrix(defenseMatrixInfo); } if (Object.op_Implicit((Object)(object)matrixInstance)) { EntityState.Destroy((Object)(object)matrixInstance); } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class FireTriShot : BaseState { public static float chargeConsumptionPerShot = 0.06f; public static float damageCoefficient = 1.4f; public static float baseDuration = 0.2f; public static float recoil = 0.5f; public static GameObject tracerEffectPrefab; public static GameObject tracerEffectColossusPrefab; public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommandoShotgun.prefab").WaitForCompletion(); public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MuzzleflashMageLightning.prefab").WaitForCompletion(); private CyborgEnergyComponent energyComponent; private int step = 0; public string muzzleString; private float duration; public override void OnEnter() { ((BaseState)this).OnEnter(); energyComponent = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)energyComponent) && chargeConsumptionPerShot > 0f) { energyComponent.showTriShotCrosshair = true; energyComponent.energySkillsActive++; float num = chargeConsumptionPerShot; if (!CyborgCore.useEnergyRework.Value) { num *= 2f; } energyComponent.ConsumeEnergy(num); step = energyComponent.armToFireFrom; if (step == 0) { energyComponent.armToFireFrom = 1; } else { energyComponent.armToFireFrom = 0; } } duration = baseDuration / base.attackSpeedStat; if (step == 1) { muzzleString = "Lowerarm.L_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1Alt", "FireM1.playbackRate", duration, 0.1f); } else { muzzleString = "Lowerarm.R_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1", "FireM1.playbackRate", duration, 0.1f); } FireLaser(); } private void FireLaser() { //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_0046: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: 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_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_00bf: 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_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_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) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0133: 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_0140: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0189: 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_0198: 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_01af: 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_01b8: 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_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Expected O, but got Unknown //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_0206: 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_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, muzzleString, false); Util.PlaySound("SS2UCyborgSecondary", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { bool isCrit = ((BaseState)this).RollCrit(); Vector3 val = Vector3.Cross(Vector3.up, ((Ray)(ref aimRay)).direction); Vector3 val2 = Vector3.Cross(((Ray)(ref aimRay)).direction, val); float num = 0f; float num2 = 0f; float num3 = 0f; num3 = Random.Range(1f + num, 1f + num) * 3f; num2 = num3 / 2f; Vector3 val3 = Quaternion.AngleAxis((0f - num3) * 0.5f, val2) * ((Ray)(ref aimRay)).direction; Quaternion val4 = Quaternion.AngleAxis(num2, val2); Ray val5 = default(Ray); ((Ray)(ref val5))..ctor(((Ray)(ref aimRay)).origin, val3); GameObject val6 = tracerEffectPrefab; if (CyborgCore.IsColossusSkin(((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)tracerEffectColossusPrefab)) { val6 = tracerEffectColossusPrefab; } for (int i = 0; i < 3; i++) { BulletAttack val7 = new BulletAttack { owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref val5)).origin, aimVector = ((Ray)(ref val5)).direction, minSpread = 0f, maxSpread = 0f, damage = damageCoefficient * base.damageStat, force = 450f, radius = 0.3f, smartCollision = true, tracerEffectPrefab = val6, muzzleName = muzzleString, hitEffectPrefab = hitEffectPrefab, isCrit = isCrit, falloffModel = (FalloffModel)0, damageType = DamageTypeCombo.op_Implicit((DamageType)8), maxDistance = 1000f, procCoefficient = 0.7f }; val7.damageType.damageSource = (DamageSource)2; ref DamageTypeExtended damageTypeExtended = ref val7.damageType.damageTypeExtended; damageTypeExtended = (DamageTypeExtended)((uint)damageTypeExtended | 0x2000u); DamageAPI.AddModdedDamageType(val7, DamageTypeCore.ModdedDamageTypes.CyborgCanDetonateShockCore); val7.Fire(); ((Ray)(ref val5)).direction = val4 * ((Ray)(ref val5)).direction; } ((BaseState)this).AddRecoil(-0.5f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); ((EntityState)this).characterBody.AddSpreadBloom(0.6f / Mathf.Sqrt(base.attackSpeedStat)); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextState((EntityState)(object)new StopTriShot()); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public override void OnExit() { if (Object.op_Implicit((Object)(object)energyComponent) && chargeConsumptionPerShot > 0f) { energyComponent.energySkillsActive--; energyComponent.showTriShotCrosshair = false; } ((EntityState)this).OnExit(); } public void SetStep(int i) { step = i; } } public class StopTriShot : BaseState { public static float baseDuration = 0.2f; private float duration; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / base.attackSpeedStat; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); 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)1; } } } namespace EntityStates.SS2UStates.Cyborg.ChargeRifle { public class ChargeBeam : BaseState, IStepSetter { public static string fullChargeSound = "SS2UCyborgPerfectCharge"; public static string beginChargeSound = "Play_mage_m2_charge"; public static GameObject chargeupVfxPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/ChargeLoaderFist.prefab").WaitForCompletion(); public static GameObject holdChargeVfxPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Captain/SpearChargedVFX.prefab").WaitForCompletion(); public static GameObject fullChargeEffectPrefab; public static float baseDuration = 1f; public static float perfectChargeDuration = 0.3f; private uint loopSoundInstanceId = uint.MaxValue; private float duration; public float charge; private GameObject chargeupVfxGameObject; private GameObject holdChargeVfxGameObject; private Transform muzzleTransform; private string muzzleString; private bool setNextState = false; private CyborgEnergyComponent chargeComponent; private bool isAutoFire = false; public int step = 0; public override void OnEnter() { ((BaseState)this).OnEnter(); if (step == 1) { muzzleString = "Lowerarm.L_end"; } else { muzzleString = "Lowerarm.R_end"; } duration = baseDuration / base.attackSpeedStat; charge = 0f; loopSoundInstanceId = Util.PlayAttackSpeedSound(beginChargeSound, ((EntityState)this).gameObject, base.attackSpeedStat); ((EntityState)this).characterBody.SetAimTimer(3f); chargeComponent = ((EntityState)this).GetComponent(); ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)modelChildLocator)) { muzzleTransform = modelChildLocator.FindChild(muzzleString); if (Object.op_Implicit((Object)(object)muzzleTransform)) { chargeupVfxGameObject = Object.Instantiate(chargeupVfxPrefab, muzzleTransform); chargeupVfxGameObject.GetComponent().newDuration = duration; } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (charge < 1f) { charge = ((EntityState)this).fixedAge / duration; if (charge >= 1f) { if (loopSoundInstanceId != uint.MaxValue) { AkSoundEngine.StopPlayingID(loopSoundInstanceId); loopSoundInstanceId = uint.MaxValue; } if (((EntityState)this).isAuthority) { Util.PlaySound(fullChargeSound, ((EntityState)this).gameObject); } if (Object.op_Implicit((Object)(object)chargeupVfxGameObject)) { EntityState.Destroy((Object)(object)chargeupVfxGameObject); chargeupVfxGameObject = null; } if (!Object.op_Implicit((Object)(object)holdChargeVfxGameObject) && Object.op_Implicit((Object)(object)muzzleTransform)) { holdChargeVfxGameObject = Object.Instantiate(holdChargeVfxPrefab, muzzleTransform); } } } bool flag = ((EntityState)this).fixedAge >= duration && ((EntityState)this).fixedAge <= duration + perfectChargeDuration; if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.rifleChargeFraction = charge; chargeComponent.riflePerfectCharge = flag; } if (((EntityState)this).isAuthority && (isAutoFire || !Object.op_Implicit((Object)(object)((EntityState)this).inputBank) || !((EntityState)this).inputBank.skill1.down)) { FireBeam nextState = new FireBeam { perfectCharge = flag, charge = charge, step = step }; ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } else { ((EntityState)this).characterBody.SetAimTimer(3f); ((EntityState)this).characterBody.SetSpreadBloom(1f - charge, false); } } public override void OnExit() { if (loopSoundInstanceId != uint.MaxValue) { AkSoundEngine.StopPlayingID(loopSoundInstanceId); } if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.ResetCharge(); } if (Object.op_Implicit((Object)(object)chargeupVfxGameObject)) { EntityState.Destroy((Object)(object)chargeupVfxGameObject); chargeupVfxGameObject = null; } if (Object.op_Implicit((Object)(object)holdChargeVfxGameObject)) { EntityState.Destroy((Object)(object)holdChargeVfxGameObject); holdChargeVfxGameObject = null; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public void SetStep(int i) { step = i; } } public class FireBeam : BaseState { public static float perfectChargeDamageMultiplier = 1.333334f; public static float minDamageCoefficient = 3f; public static float maxDamageCoefficient = 9f; public static float minForce = 1000f; public static float maxForce = 2000f; public static float baseDuration = 0.5f; public static float recoil = 4f; public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommandoShotgun.prefab").WaitForCompletion(); public static GameObject tracerEffectPrefab; public static GameObject tracerEffectColossusPrefab; public static GameObject perfectTracerEffectColossusPrefab; public static GameObject perfectTracerEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/TracerHuntressSnipe.prefab").WaitForCompletion(); public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MuzzleflashMageLightning.prefab").WaitForCompletion(); public static string attackSoundString = "SS2UCyborgPrimary"; public static string fullSoundString = "SS2UCyborgSecondary"; public static string perfectSoundString = "SS2UCyborgUtility"; public GameObject crosshairPrefab; public float charge; public bool perfectCharge; private OverrideRequest crosshairOverrideRequest; private CyborgEnergyComponent chargeComponent; private string muzzleString; public int step = 0; private float duration; public override void OnEnter() { //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0209: 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_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_0234: 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_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_025a: 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_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02ab: 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_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: Expected O, but got Unknown //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02fc: 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) ((BaseState)this).OnEnter(); chargeComponent = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.rifleChargeFraction = charge; chargeComponent.riflePerfectCharge = perfectCharge; } duration = baseDuration / base.attackSpeedStat; if (step == 1) { muzzleString = "Lowerarm.L_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1Alt", "FireM1.playbackRate", duration, 0.1f); } else { muzzleString = "Lowerarm.R_end"; ((EntityState)this).PlayCrossfade("Gesture, Override", "FireM1", "FireM1.playbackRate", duration, 0.1f); } if (Object.op_Implicit((Object)(object)crosshairPrefab)) { crosshairOverrideRequest = CrosshairUtils.RequestOverrideForBody(((EntityState)this).characterBody, crosshairPrefab, (OverridePriority)0); } string text = attackSoundString; if (perfectCharge) { text = perfectSoundString; } else if (charge >= 1f) { text = fullSoundString; } Util.PlaySound(text, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { float damage = Mathf.Lerp(minDamageCoefficient, maxDamageCoefficient, charge) * base.damageStat * (perfectCharge ? perfectChargeDamageMultiplier : 1f); float force = Mathf.Lerp(minForce, maxForce, charge); GameObject val = (perfectCharge ? perfectTracerEffectPrefab : tracerEffectPrefab); if (CyborgCore.IsColossusSkin(((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)tracerEffectColossusPrefab) && Object.op_Implicit((Object)(object)perfectTracerEffectColossusPrefab)) { val = (perfectCharge ? perfectTracerEffectColossusPrefab : tracerEffectColossusPrefab); } Ray aimRay = ((BaseState)this).GetAimRay(); BulletAttack val2 = new BulletAttack { aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damage, damageType = DamageTypeCombo.op_Implicit((DamageType)0), damageColorIndex = (DamageColorIndex)0, minSpread = 0f, maxSpread = 0f, falloffModel = (FalloffModel)0, force = force, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = Mathf.Lerp(1f, 2f, charge), weapon = ((EntityState)this).gameObject, tracerEffectPrefab = val, hitEffectPrefab = hitEffectPrefab, maxDistance = 1000f }; val2.damageType.damageSource = (DamageSource)1; ref DamageTypeExtended damageTypeExtended = ref val2.damageType.damageTypeExtended; damageTypeExtended = (DamageTypeExtended)((uint)damageTypeExtended | 0x2000u); DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.CyborgCanDetonateShockCore); if (perfectCharge || charge >= 1f) { val2.stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask; } val2.Fire(); } ((BaseState)this).AddRecoil(-0.5f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); ((EntityState)this).characterBody.AddSpreadBloom(2f); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge > duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.ResetCharge(); } if (crosshairOverrideRequest != null) { crosshairOverrideRequest.Dispose(); } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } } namespace EntityStates.SS2UStates.Cyborg.Jetpack { public class FlightMode : BaseState { public static float baseDuration = 1.6666666f; public static float speedMultCoefficient = 3f; public static float damageCoefficient = 4f; public static float force = 2400f; public static GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Toolbot/ImpactToolbotDashLarge.prefab").WaitForCompletion(); public static float hitStopDuration = 0.1f; private bool inHitPause; private float hitPauseTimer; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; private Animator animator; private float speedDamageFactor; private float stopwatch; private float baseSpeed; private float desiredSpeed; private OverlapAttack attack; private CyborgEnergyComponent energyComponent; public override void OnEnter() { ((BaseState)this).OnEnter(); inHitPause = false; hitPauseTimer = 0f; stopwatch = 0f; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(baseDuration + 1f, false); baseSpeed = base.moveSpeedStat; desiredSpeed = base.moveSpeedStat * speedMultCoefficient; Util.PlaySound("Play_MULT_shift_start", ((EntityState)this).gameObject); speedDamageFactor = Mathf.Max(desiredSpeed / (10.150001f * speedMultCoefficient), 1f); if (((EntityState)this).isAuthority) { InitOverlapAttack(); } if (CyborgCore.useEnergyRework.Value) { energyComponent = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive++; } } private void InitOverlapAttack() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0061: 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_0073: 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_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_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: 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_00ab: 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_00bd: 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_00d5: 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_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Expected O, but got Unknown //IL_0103: Unknown result type (might be due to invalid IL or missing references) HitBoxGroup val = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { val = Array.Find(((Component)modelTransform).GetComponents(), (HitBoxGroup element) => element.groupName == "RamHitbox"); } if (Object.op_Implicit((Object)(object)val)) { attack = new OverlapAttack { attacker = ((EntityState)this).gameObject, attackerFiltering = (AttackerFiltering)2, pushAwayForce = 0f, damage = base.damageStat * damageCoefficient * speedDamageFactor, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)32), forceVector = Vector3.zero, hitBoxGroup = val, hitEffectPrefab = hitEffectPrefab, inflictor = ((EntityState)this).gameObject, isCrit = ((BaseState)this).RollCrit(), teamIndex = ((BaseState)this).GetTeam(), procChainMask = default(ProcChainMask), procCoefficient = 1f }; DamageAPI.AddModdedDamageType(attack, DamageTypeCore.ModdedDamageTypes.ScaleForceToMass); } } public override void FixedUpdate() { //IL_0072: 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_0097: 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_00c1: 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) //IL_019b: 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_01aa: 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_015b: 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_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.ConsumeEnergy(Time.fixedDeltaTime / baseDuration); } hitPauseTimer -= Time.fixedDeltaTime; if (!inHitPause) { stopwatch += Time.fixedDeltaTime; } if (!((EntityState)this).isAuthority) { return; } Ray aimRay = ((BaseState)this).GetAimRay(); if (hitPauseTimer <= 0f && inHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } if (inHitPause && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { if (((EntityState)this).characterMotor.isGrounded && Object.op_Implicit((Object)(object)((BaseCharacterController)((EntityState)this).characterMotor).Motor)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); } ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += Time.fixedDeltaTime * desiredSpeed * ((Ray)(ref aimRay)).direction; } if (attack != null) { attack.forceVector = ((Ray)(ref aimRay)).direction * force; if (attack.Fire((List)null)) { OnHitEnemyAuthority(); } } bool flag = Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.skill3.down; bool flag2 = Object.op_Implicit((Object)(object)energyComponent) && !energyComponent.energyDepleted; if (!CyborgCore.useEnergyRework.Value) { flag = stopwatch <= baseDuration; flag2 = true; } if (!flag || !flag2) { ((EntityState)this).outer.SetNextStateToMain(); } } private void OnHitEnemyAuthority() { //IL_0035: 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_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound("Play_MULT_shift_hit", ((EntityState)this).gameObject); if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Slash.playbackRate"); hitPauseTimer = hitStopDuration / base.attackSpeedStat; inHitPause = true; } } public override void OnExit() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound("Play_MULT_shift_end", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; Ray aimRay = ((BaseState)this).GetAimRay(); characterMotor.velocity = ((Ray)(ref aimRay)).direction * desiredSpeed; } if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive--; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class JetpackOn : BaseState { public static float hoverDuration = -1f; private CyborgEnergyComponent energyComponent; public static float hoverVelocity = -1f; public static float hoverAcceleration = 60f; public static GameObject activationEffectPrefab; public override void OnEnter() { //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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0091: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Expected O, but got Unknown //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_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_00fa: 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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Expected O, but got Unknown ((BaseState)this).OnEnter(); Util.PlaySound("Play_mage_m1_impact", ((EntityState)this).gameObject); Util.PlaySound("Play_engi_sprint_start", ((EntityState)this).gameObject); if (!Object.op_Implicit((Object)(object)activationEffectPrefab)) { return; } ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)modelChildLocator)) { Transform val = modelChildLocator.FindChild("ThrusterEffectL"); if (Object.op_Implicit((Object)(object)val)) { EffectManager.SpawnEffect(activationEffectPrefab, new EffectData { scale = 0.2f, origin = ((Component)val).transform.position, rotation = ((Component)val).transform.rotation, rootObject = ((Component)val).gameObject }, false); } Transform val2 = modelChildLocator.FindChild("ThrusterEffectR"); if (Object.op_Implicit((Object)(object)val2)) { EffectManager.SpawnEffect(activationEffectPrefab, new EffectData { scale = 0.2f, origin = ((Component)val2).transform.position, rotation = ((Component)val2).transform.rotation, rootObject = ((Component)val2).gameObject }, false); } } } public override void OnExit() { Util.PlaySound("Play_engi_sprint_end", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)energyComponent)) { energyComponent.energySkillsActive--; } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { float y = ((EntityState)this).characterMotor.velocity.y; y = Mathf.MoveTowards(y, hoverVelocity, hoverAcceleration * Time.fixedDeltaTime); ((EntityState)this).characterMotor.velocity = new Vector3(((EntityState)this).characterMotor.velocity.x, y, ((EntityState)this).characterMotor.velocity.z); } } } } namespace EntityStates.SS2UStates.Chirr { public class ChirrPrimary : BaseState { public static float damageCoefficient = 0.9f; public static float force = 100f; public static float baseDuration = 0.5f; public static float baseShotDuration = 0.1f; public static string attackSoundString = "SS2UChirrPrimary"; public static int baseShotCount = 3; public static float spreadBloom = 0.4f; public static float recoil = 1f; public static GameObject projectilePrefab; public static GameObject muzzleflashEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/MuzzleflashCroco.prefab").WaitForCompletion(); private int shotCount; private float duration; private float shotDuration; private float shotStopwatch; private bool crit; public override void OnEnter() { ((BaseState)this).OnEnter(); crit = ((BaseState)this).RollCrit(); shotCount = 0; shotStopwatch = 0f; duration = baseDuration / base.attackSpeedStat; shotDuration = baseShotDuration / base.attackSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); } EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "MuzzleWingL", false); EffectManager.SimpleMuzzleFlash(muzzleflashEffectPrefab, ((EntityState)this).gameObject, "MuzzleWingR", false); ((EntityState)this).PlayCrossfade("Gesture, Override", "Primary", "Primary.playbackRate", duration, 0.1f); ((EntityState)this).PlayCrossfade("Gesture, Additive", "Primary", "Primary.playbackRate", duration, 0.1f); FireBullet(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (shotCount < baseShotCount) { shotStopwatch += Time.fixedDeltaTime; if (shotStopwatch >= shotDuration) { FireBullet(); } } else if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration && shotCount >= baseShotCount) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetSpreadBloom(0f, false); } ((EntityState)this).OnExit(); } private void FireBullet() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) shotStopwatch -= shotDuration; shotCount++; Util.PlaySound(attackSoundString, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, base.damageStat * damageCoefficient, 0f, crit, (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } ((BaseState)this).AddRecoil(-0.4f * recoil, -0.8f * recoil, -0.3f * recoil, 0.3f * recoil); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.AddSpreadBloom(spreadBloom); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class Headbutt : BaseMeleeAttack { public static GameObject swingEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/LemurianBiteTrail.prefab").WaitForCompletion(); public new static float damageCoefficient = 5f; public static float momentumStartPercent = 0.3f; public static float momentumFadePercent = 0.6f; public static float momentumEndPercent = 0.8f; public static float forwardSpeed = 36f; public static float baseStateDuration = 1f; public static float knockbackForce = 2700f; public static float yForce = 1200f; private Vector3 attackDirection; private Vector3 attackDirectionFlat; private float momentumStartTime; private float momentumFadeTime; private float momentumEndTime; private bool startedGrounded; public override void OnEnter() { //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_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0181: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0192: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) bonusForce = Vector3.zero; attackRecoil = 0f; damageType = DamageTypeCombo.op_Implicit((DamageType)32); hitHopVelocity = 0f; scaleHitHopWithAttackSpeed = false; hitStopDuration = 0.1f; hitSoundString = "Play_acrid_m1_hit"; swingSoundString = "Play_acrid_m1_bigSlash"; hitboxName = "HeadbuttHitbox"; base.damageCoefficient = damageCoefficient; procCoefficient = 1f; baseDuration = baseStateDuration; attackStartTime = 0.3f; attackEndTime = 0.8f; pushForce = 0f; forceForwardVelocity = false; swingEffectPrefab = swingEffect; hitEffectPrefab = null; muzzleString = "MuzzleHeadbutt"; momentumStartTime = baseDuration * momentumStartPercent; momentumFadeTime = baseDuration * momentumFadePercent; momentumEndTime = baseDuration * momentumEndPercent; base.OnEnter(); startedGrounded = ((BaseState)this).isGrounded; if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { ((EntityState)this).characterBody.SetAimTimer(2f); } if (attack != null) { attack.damageType.damageSource = (DamageSource)2; DamageAPI.AddModdedDamageType(attack, DamageTypeCore.ModdedDamageTypes.ScaleForceToMass); DamageAPI.AddModdedDamageType(attack, DamageTypeCore.ModdedDamageTypes.ResetVictimForce); Ray aimRay = ((BaseState)this).GetAimRay(); attackDirection = ((Ray)(ref aimRay)).direction; attackDirectionFlat = attackDirection; attackDirectionFlat.y = 0f; ((Vector3)(ref attackDirectionFlat)).Normalize(); attack.forceVector = attackDirectionFlat * knockbackForce; attack.forceVector.y += yForce; attack.forceVector = attackDirection * knockbackForce; } } public override void FixedUpdate() { //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_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_0044: 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_0089: 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_00c1: 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_0128: 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_0139: 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_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025d: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026b: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (!hasFired && stopwatch < momentumStartTime) { Ray aimRay = ((BaseState)this).GetAimRay(); attackDirection = ((Ray)(ref aimRay)).direction; attackDirectionFlat = attackDirection; attackDirectionFlat.y = 0f; ((Vector3)(ref attackDirectionFlat)).Normalize(); if (attack != null) { attack.forceVector = attackDirectionFlat * knockbackForce; attack.forceVector.y += yForce; } startedSkillStationary = Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.moveVector == Vector3.zero; if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && !startedSkillStationary) { Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(((EntityState)this).inputBank.moveVector.x, ((EntityState)this).inputBank.moveVector.z); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(((Ray)(ref aimRay)).direction.x, ((Ray)(ref aimRay)).direction.z); float num = Vector2.Angle(val, val2); if (num >= 50f) { startedSkillStationary = true; } } } if (!((EntityState)this).isAuthority || startedSkillStationary || inHitPause || !(stopwatch >= momentumStartTime) || !(stopwatch <= momentumEndTime)) { return; } float num2 = forwardSpeed * Time.fixedDeltaTime; if (stopwatch >= momentumFadeTime) { num2 *= Mathf.Lerp(1f, 0f, (stopwatch - momentumFadeTime) / (momentumEndTime - momentumFadeTime)); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && num2 > 0f) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.forward = attackDirection; } Vector3 val3 = attackDirection * num2; ((EntityState)this).characterMotor.AddDisplacement(new Vector3(val3.x, val3.y, val3.z)); if (!startedGrounded && ((EntityState)this).characterMotor.velocity.y < 0f) { ((EntityState)this).characterMotor.velocity.y = 0f; } } else { startedSkillStationary = true; } } protected override void PlayAttackAnimation() { ((EntityState)this).PlayAnimation("Gesture, Additive", "Secondary", "Secondary.playbackRate", baseDuration, 0f); } 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 JetpackOn : BaseState { public static float hoverVelocity = -1f; public static float hoverAcceleration = 60f; public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).PlayCrossfade("Jetpack, Override", "Sprint", 0.5f); } public override void FixedUpdate() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_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_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { float y = ((EntityState)this).characterMotor.velocity.y; y = Mathf.MoveTowards(y, hoverVelocity, hoverAcceleration * Time.fixedDeltaTime); ((EntityState)this).characterMotor.velocity = new Vector3(((EntityState)this).characterMotor.velocity.x, y, ((EntityState)this).characterMotor.velocity.z); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && !((EntityState)this).characterBody.isSprinting && Object.op_Implicit((Object)(object)((EntityState)this).inputBank)) { Ray aimRay = ((BaseState)this).GetAimRay(); Vector2 val = default(Vector2); ((Vector2)(ref val))..ctor(((EntityState)this).inputBank.moveVector.x, ((EntityState)this).inputBank.moveVector.z); Vector2 val2 = default(Vector2); ((Vector2)(ref val2))..ctor(((Ray)(ref aimRay)).direction.x, ((Ray)(ref aimRay)).direction.z); } } } public override void OnExit() { ((EntityState)this).PlayCrossfade("Jetpack, Override", "BufferEmpty", 0.5f); ((EntityState)this).OnExit(); } } public class ChirrMain : GenericCharacterMain { public static string wingSoundStart = "SS2UChirrSprintStart"; public static string wingSoundLoop = "SS2UChirrSprintLoop"; public static string wingSoundStop = "SS2UChirrSprintStop"; private ChirrFriendController friendController; private uint wingSoundID; private bool playingWingSound = false; private bool inJetpackState = false; private EntityStateMachine jetpackStateMachine; public bool jumpButtonState; private bool heldPress; private bool jumpToggledState; private float oldJumpHeldTime; private float jumpButtonHeldTime; public override void OnEnter() { //IL_007b: 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) ((GenericCharacterMain)this).OnEnter(); jetpackStateMachine = EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Jetpack"); friendController = ((EntityState)this).GetComponent(); if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !((EntityState)this).isAuthority) { return; } CharacterMaster master = ((EntityState)this).characterBody.master; if (!Object.op_Implicit((Object)(object)master) || master.loadout == null) { return; } int skinIndex = (int)master.loadout.bodyLoadoutManager.GetSkinIndex(ChirrCore.bodyIndex); SkinDef safe = ArrayUtils.GetSafe(BodyCatalog.GetBodySkins(ChirrCore.bodyIndex), skinIndex); bool flag = (Object)(object)safe == (Object)(object)ChirrSkins.maidSkin; if (Object.op_Implicit((Object)(object)ChirrCore.survivorDef) && ChirrCore.survivorDef.outroFlavorToken != "SS2UCHIRR_OUTRO_BROTHER_EASTEREGG") { ChirrCore.survivorDef.outroFlavorToken = "SS2UCHIRR_OUTRO_FLAVOR"; if (((EntityState)this).isAuthority && flag) { ChirrCore.survivorDef.outroFlavorToken = "SS2UCHIRR_OUTRO_MAID_FLAVOR"; } } } public override void ProcessJump() { //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Expected O, but got Unknown inJetpackState = ((object)jetpackStateMachine.state).GetType() == typeof(JetpackOn); if (((BaseCharacterMain)this).hasCharacterMotor && ((BaseCharacterMain)this).hasInputBank && ((EntityState)this).isAuthority) { NetworkUser val = NetworkUser.readOnlyLocalPlayersList[0]; bool? flag; if ((Object)(object)val == (Object)null) { flag = null; } else { LocalUser localUser = val.localUser; flag = ((localUser != null) ? new bool?(localUser.userProfile.toggleArtificerHover) : null); } if (flag.GetValueOrDefault(true)) { if (((EntityState)this).inputBank.jump.down) { oldJumpHeldTime = jumpButtonHeldTime; jumpButtonHeldTime += Time.deltaTime; heldPress = oldJumpHeldTime < 0.5f && jumpButtonHeldTime >= 0.5f; } else { oldJumpHeldTime = 0f; jumpButtonHeldTime = 0f; heldPress = false; } if (!((EntityState)this).characterMotor.isGrounded) { if (((EntityState)this).characterMotor.jumpCount == ((EntityState)this).characterBody.maxJumpCount) { if (((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed) { jumpButtonState = !jumpButtonState; } } else if (heldPress) { jumpButtonState = !jumpButtonState; } } else { jumpButtonState = false; } } else { jumpButtonState = ((EntityState)this).inputBank.jump.down; } bool flag2 = jumpButtonState && ((EntityState)this).characterMotor.velocity.y < 0f && !((EntityState)this).characterMotor.isGrounded; if (flag2 && !inJetpackState) { jetpackStateMachine.SetNextState((EntityState)(object)new JetpackOn()); } if (!flag2 && inJetpackState) { jetpackStateMachine.SetNextState((EntityState)new Idle()); } } ((GenericCharacterMain)this).ProcessJump(); } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); inJetpackState = Object.op_Implicit((Object)(object)jetpackStateMachine) && ((object)jetpackStateMachine.state).GetType() == typeof(JetpackOn); bool flag = inJetpackState; if (flag != playingWingSound) { if (!playingWingSound) { playingWingSound = true; wingSoundID = Util.PlaySound(wingSoundLoop, ((EntityState)this).gameObject); } else { playingWingSound = false; AkSoundEngine.StopPlayingID(wingSoundID); Util.PlaySound(wingSoundStop, ((EntityState)this).gameObject); } } if (NetworkServer.active && Object.op_Implicit((Object)(object)friendController) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.special) && ((Object)(object)((EntityState)this).skillLocator.special.skillDef == (Object)(object)ChirrCore.specialScepterDef || friendController.HasScepter())) { friendController.canBefriendChampion = true; } } public override void Update() { ((GenericCharacterMain)this).Update(); if (((EntityState)this).isAuthority && ((EntityState)this).characterMotor.isGrounded) { if (Config.GetKeyPressed(Config.RestKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new ChirrRestEmote(), (InterruptPriority)0); } else if (Config.GetKeyPressed(Config.TauntKeybind)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new ChirrTauntLoopEmote(), (InterruptPriority)0); } } } public override void OnExit() { Util.PlaySound(wingSoundStop, ((EntityState)this).gameObject); ((GenericCharacterMain)this).OnExit(); } } public class ChirrHeal : BaseSkillState { public static GameObject healEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/DLC1/EliteEarth/AffixEarthHealExplosion.prefab").WaitForCompletion(); public static float baseDuration = 1.5f; public static float baseFireDuration = 1.3f; public static float recoil = 1f; public static float radius = 30f; public static float healFraction = 0.3f; public static float regenDuration = 7f; private float duration; private float fireDuration; private bool hasFired; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireDuration = baseFireDuration / ((BaseState)this).attackSpeedStat; Util.PlayAttackSpeedSound("SS2UChirrHealStart", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((EntityState)this).PlayAnimation("Gesture, Additive", "Utility", "Utility.playbackRate", duration, 0f); } public override void OnExit() { if (!hasFired) { FireHeal(); } ((EntityState)this).OnExit(); } private void FireHeal() { //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_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Expected O, but got Unknown //IL_007c: 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_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0153: 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) if (hasFired) { return; } Util.PlaySound("SS2UChirrHealTrigger", ((EntityState)this).gameObject); hasFired = true; if (!NetworkServer.active) { return; } EffectManager.SpawnEffect(healEffectPrefab, new EffectData { origin = ((EntityState)this).transform.position, scale = radius, rootObject = ((EntityState)this).gameObject }, true); List list = new List(); Collider[] array = Physics.OverlapSphere(((EntityState)this).transform.position, radius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent(); if (!Object.op_Implicit((Object)(object)component) || !Object.op_Implicit((Object)(object)component.healthComponent) || list.Contains(component.healthComponent)) { continue; } list.Add(component.healthComponent); if (Object.op_Implicit((Object)(object)component.healthComponent.body.teamComponent) && component.healthComponent.body.teamComponent.teamIndex == ((BaseState)this).GetTeam()) { float num = component.healthComponent.fullCombinedHealth * healFraction; component.healthComponent.Heal(num, default(ProcChainMask), true); if ((Object)(object)component.healthComponent.body != (Object)(object)((EntityState)this).characterBody) { component.healthComponent.body.AddTimedBuff(Buffs.CrocoRegen, regenDuration); } Util.CleanseBody(component.healthComponent.body, true, false, false, true, true, false); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireDuration) { FireHeal(); } 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)2; } } } namespace EntityStates.SS2UStates.Chirr.Taunt { public class ChirrRestEmote : RestEmote { public override void SetParams() { animDuration = 33f; duration = 0f; } } public class ChirrTauntLoopEmote : TauntEmote { public override void SetParams() { duration = 0f; animDuration = 4f; } } } namespace EntityStates.SS2UStates.Chirr.Special { public class Befriend : BaseState { public static SkillDef leashOverrideSkillDef; public static float timeoutDuration = 10f; private ChirrFriendController friendController; private bool foundFriend = false; private bool appliedSkillOverride = false; private int origSpecialStock; private float origSpecialRechargeStopwatch; public override void OnEnter() { //IL_0056: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Util.PlaySound("SS2UChirrSpecial", ((EntityState)this).gameObject); friendController = ((EntityState)this).GetComponent(); if (NetworkServer.active && Object.op_Implicit((Object)(object)friendController) && !friendController.HasFriend()) { friendController.BefriendServer(((BaseState)this).GetTeam()); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!((EntityState)this).isAuthority) { return; } if (!foundFriend) { foundFriend = Object.op_Implicit((Object)(object)friendController) && friendController.HasFriend(); if (!appliedSkillOverride && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { GenericSkill special = ((EntityState)this).skillLocator.special; if (Object.op_Implicit((Object)(object)special)) { origSpecialStock = special.stock; origSpecialRechargeStopwatch = special.rechargeStopwatch; appliedSkillOverride = true; special.SetSkillOverride((object)this, leashOverrideSkillDef, (SkillOverridePriority)4); special.stock = 1; } } } bool flag = !foundFriend && ((EntityState)this).fixedAge >= timeoutDuration; bool flag2 = foundFriend && !friendController.HasFriend(); if (flag || flag2) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (((EntityState)this).isAuthority && appliedSkillOverride && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { GenericSkill special = ((EntityState)this).skillLocator.special; if (Object.op_Implicit((Object)(object)special)) { special.UnsetSkillOverride((object)this, leashOverrideSkillDef, (SkillOverridePriority)4); special.rechargeStopwatch = origSpecialRechargeStopwatch; special.stock = origSpecialStock; } } ((EntityState)this).OnExit(); } } public class BefriendScepter : Befriend { } public class Leash : BaseState { public static float baseDuration = 1f; private ChirrFriendController friendController; private bool leashed = false; public override void OnEnter() { ((BaseState)this).OnEnter(); friendController = ((EntityState)this).GetComponent(); } public override void FixedUpdate() { //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_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_008e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00b9: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (!((EntityState)this).inputBank.skill4.down && !leashed && ((EntityState)this).fixedAge <= baseDuration) { leashed = true; if (Object.op_Implicit((Object)(object)friendController)) { Util.PlaySound("SS2UChirrSpecial", ((EntityState)this).gameObject); Vector3 newPos = ((EntityState)this).transform.position; Ray aimRay = ((BaseState)this).GetAimRay(); RaycastHit val = default(RaycastHit); if (Physics.Raycast(aimRay, ref val, 1000f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask))) { newPos = ((RaycastHit)(ref val)).point; } friendController.LeashFriendClient(newPos); } } if (((EntityState)this).fixedAge >= baseDuration) { if (!leashed) { friendController.RemoveFriendClient(); } ((EntityState)this).outer.SetNextStateToMain(); return; } } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= baseDuration) { ((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; } } } namespace EntityStates.SS2UStates.Common { public class BaseMeleeAttack : BaseSkillState { protected string hitboxName = "Sword"; 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 attackStartTime = 0.2f; protected float attackEndTime = 0.4f; protected float baseEarlyExitTime = 0.4f; protected float hitStopDuration = 0.012f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 4f; protected bool cancelled = false; protected bool forceForwardVelocity = false; protected AnimationCurve forwardVelocityCurve; protected bool startedSkillStationary = false; protected string animatorParam = "Slash.playbackRate"; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected GameObject swingEffectPrefab; protected GameObject hitEffectPrefab; protected bool scaleHitHopWithAttackSpeed = false; public float duration; protected bool hasFired; private float hitPauseTimer; protected OverlapAttack attack; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Expected O, but got Unknown //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0153: 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) ((BaseState)this).OnEnter(); startedSkillStationary = Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((EntityState)this).inputBank.moveVector == Vector3.zero; duration = baseDuration / ((BaseState)this).attackSpeedStat; hasFired = false; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; animator.SetBool("attacking", true); HitBoxGroup hitBoxGroup = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents(), (HitBoxGroup element) => element.groupName == hitboxName); } 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 = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); } protected virtual void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash", animatorParam, duration, 0.05f); } public override void OnExit() { if (!hasFired && !cancelled) { FireAttack(); } ((EntityState)this).OnExit(); animator.SetBool("attacking", false); } protected virtual void PlaySwingEffect() { if (Object.op_Implicit((Object)(object)swingEffectPrefab)) { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, true); } } protected virtual void OnHitEnemyAuthority() { //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_00cb: 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) Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { float num = hitHopVelocity; if (scaleHitHopWithAttackSpeed) { num /= Mathf.Sqrt(((BaseState)this).attackSpeedStat); } ((BaseState)this).SmallHop(((EntityState)this).characterMotor, num); } hasHopped = true; } if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Slash.playbackRate"); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void FireAttack() { //IL_0029: 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) if (!hasFired) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { CharacterDirection characterDirection = ((EntityState)this).characterDirection; Ray aimRay = ((BaseState)this).GetAimRay(); characterDirection.forward = ((Ray)(ref aimRay)).direction; } hasFired = true; Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); OnFiredAttack(); if (((EntityState)this).isAuthority) { PlaySwingEffect(); ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } if (((EntityState)this).isAuthority && attack.Fire((List)null)) { OnHitEnemyAuthority(); } } public virtual void OnFiredAttack() { } public override void FixedUpdate() { //IL_0066: 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_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: 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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitPauseTimer -= Time.fixedDeltaTime; if (!inHitPause) { stopwatch += Time.fixedDeltaTime; } if (((EntityState)this).isAuthority) { if (hitPauseTimer <= 0f && inHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } if (!inHitPause) { if (forceForwardVelocity && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && !startedSkillStationary) { Vector3 val = ((EntityState)this).characterDirection.forward * forwardVelocityCurve.Evaluate(((EntityState)this).fixedAge / duration); ((EntityState)this).characterMotor.AddDisplacement(new Vector3(val.x, 0f, val.z)); } } 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(animatorParam, 0f); } } } if (stopwatch >= duration * attackStartTime && stopwatch <= duration * attackEndTime) { FireAttack(); } if (((EntityState)this).isAuthority && stopwatch >= 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)1; } } public class BaseCustomSkillState : BaseSkillState { protected CustomEffectComponent effectComponent; public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).characterBody.outOfCombatStopwatch = 0f; effectComponent = ((EntityState)this).GetComponent(); } protected void PlaySwingEffect(string muzzleString) { if (Object.op_Implicit((Object)(object)effectComponent)) { effectComponent.PlaySwingEffect(muzzleString); } } protected void PlayShootSound() { if (Object.op_Implicit((Object)(object)effectComponent)) { effectComponent.PlayShootSound(scaled: false); } } protected void PlayScaledShootSound() { if (Object.op_Implicit((Object)(object)effectComponent)) { effectComponent.PlayShootSound(scaled: true); } } } public class BaseCustomMainState : GenericCharacterMain { protected CustomEffectComponent effectComponent; protected bool hasSheath => effectComponent.hasSheath; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); effectComponent = ((EntityState)this).GetComponent(); } } public class NemmandoSpawnState : NemesisSpawnState { public override void SpawnEffect() { portalMuzzle = "PortalSpawn"; base.SpawnEffect(); } } public class NemesisSpawnState : BaseState { public static float duration = 3f; protected string portalMuzzle = "Chest"; private CameraRigController cameraController; private bool initCamera; public override void OnEnter() { ((BaseState)this).OnEnter(); initCamera = false; ((EntityState)this).PlayAnimation("FullBody, Override", "Spawn"); Util.PlaySound("Play_elite_haunt_spawn", ((EntityState)this).gameObject); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.HiddenInvincibility); } SpawnEffect(); } public virtual void SpawnEffect() { if (Object.op_Implicit((Object)(object)SpawnState.spawnEffectPrefab)) { EffectManager.SimpleMuzzleFlash(SpawnState.spawnEffectPrefab, ((EntityState)this).gameObject, portalMuzzle, false); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)cameraController)) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master.playerCharacterMasterController) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master.playerCharacterMasterController.networkUser)) { cameraController = ((EntityState)this).characterBody.master.playerCharacterMasterController.networkUser.cameraRigController; } } else if (!initCamera) { initCamera = true; } 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.RemoveBuff(Buffs.HiddenInvincibility); } } 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 EntityStates.SS2UStates.Common.Emotes { public class BaseEmote : BaseState { public string soundString; public string animString; public float duration; public float animDuration; public bool normalizeModel; public float minDuration = 0.5f; private uint activePlayID; private Animator animator; private ChildLocator childLocator; private static CharacterCameraParamsData emoteCameraParams = new CharacterCameraParamsData { maxPitch = BlendableFloat.op_Implicit(70f), minPitch = BlendableFloat.op_Implicit(-70f), pivotVerticalOffset = BlendableFloat.op_Implicit(1f), idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, -7.9f)), wallCushion = BlendableFloat.op_Implicit(0.1f) }; private CameraParamsOverrideHandle camOverrideHandle; public virtual void SetParams() { } public override void OnEnter() { //IL_0157: 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_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) SetParams(); ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); childLocator = ((EntityState)this).GetModelChildLocator(); ((EntityState)this).characterBody.hideCrosshair = true; if (Object.op_Implicit((Object)(object)((EntityState)this).GetAimAnimator())) { ((Behaviour)((EntityState)this).GetAimAnimator()).enabled = false; } animator.SetLayerWeight(animator.GetLayerIndex("AimPitch"), 0f); animator.SetLayerWeight(animator.GetLayerIndex("AimYaw"), 0f); if (animDuration == 0f && duration != 0f) { animDuration = duration; } else if (animDuration == 0f && duration == 0f) { animDuration = 1f; } ((EntityState)this).PlayAnimation("FullBody, Override", animString, "Emote.playbackRate", animDuration, 0f); activePlayID = Util.PlaySound(soundString, ((EntityState)this).gameObject); if (normalizeModel && Object.op_Implicit((Object)(object)((EntityState)this).modelLocator)) { ((EntityState)this).modelLocator.normalizeToFloor = true; } CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = emoteCameraParams; val.priority = 0f; CameraParamsOverrideRequest val2 = val; camOverrideHandle = ((EntityState)this).cameraTargetParams.AddParamsOverride(val2, 0.5f); } public override void OnExit() { //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); ((EntityState)this).characterBody.hideCrosshair = false; if (Object.op_Implicit((Object)(object)((EntityState)this).GetAimAnimator())) { ((Behaviour)((EntityState)this).GetAimAnimator()).enabled = true; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetLayerWeight(animator.GetLayerIndex("AimPitch"), 1f); animator.SetLayerWeight(animator.GetLayerIndex("AimYaw"), 1f); } if (normalizeModel && Object.op_Implicit((Object)(object)((EntityState)this).modelLocator)) { ((EntityState)this).modelLocator.normalizeToFloor = false; } ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); if (activePlayID != 0) { AkSoundEngine.StopPlayingID(activePlayID); } ((EntityState)this).cameraTargetParams.RemoveParamsOverride(camOverrideHandle, 0.5f); } public override void FixedUpdate() { //IL_0034: 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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); bool flag = false; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { if (!((EntityState)this).characterMotor.isGrounded) { flag = true; } if (((EntityState)this).characterMotor.velocity != Vector3.zero) { flag = true; } } if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank)) { if (((EntityState)this).inputBank.skill1.down) { flag = true; } if (((EntityState)this).inputBank.skill2.down) { flag = true; } if (((EntityState)this).inputBank.skill3.down) { flag = true; } if (((EntityState)this).inputBank.skill4.down) { flag = true; } if (((EntityState)this).inputBank.jump.down) { flag = true; } if (((EntityState)this).inputBank.moveVector != Vector3.zero) { flag = true; } } if (flag || (duration > minDuration && ((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)0; } } public class RestEmote : BaseEmote { public override void OnEnter() { animString = "Rest"; normalizeModel = true; base.OnEnter(); } public override void SetParams() { animDuration = 8f; } } public class TauntEmote : BaseEmote { public override void OnEnter() { animString = "Taunt"; base.OnEnter(); } public override void SetParams() { duration = 4f; } } } namespace Starstorm2Unofficial { public static class IgnoreSprintCrosshair { [CompilerGenerated] private static class <>O { public static Manipulator <0>__SuppressSprintCrosshair; } public static HashSet bodies = new HashSet(); private static bool initialized = false; public static void Init() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown if (!initialized) { initialized = true; object obj = <>O.<0>__SuppressSprintCrosshair; if (obj == null) { Manipulator val = SuppressSprintCrosshair; <>O.<0>__SuppressSprintCrosshair = val; obj = (object)val; } CrosshairManager.UpdateCrosshair += (Manipulator)obj; } } private static void SuppressSprintCrosshair(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "get_isSprinting") })) { val.Emit(OpCodes.Ldarg_1); val.EmitDelegate>((Func)((bool isSprinting, CharacterBody body) => isSprinting && !bodies.Contains(body.bodyIndex))); } } } internal static class ModCompat { public static class RiskyMod { public static bool pluginLoaded; public static void InitCompat() { pluginLoaded = Chainloader.PluginInfos.ContainsKey("com.RiskyLives.RiskyMod"); } } public static class SS2OCompat { public static bool pluginLoaded = false; public static bool autoConfig = true; public static bool enableNemMercInvasion = true; public static bool enableNemCommandoInvasion = true; private static BodyIndex NemMercIndex; private static BodyIndex NemCommandoIndex; public static bool ShouldLoadAutoconfigContent() { return !pluginLoaded || !autoConfig; } public static void InitCompat() { pluginLoaded = Chainloader.PluginInfos.ContainsKey("com.TeamMoonstorm.Starstorm2") || Chainloader.PluginInfos.ContainsKey("com.TeamSS2") || Chainloader.PluginInfos.ContainsKey("com.TeamMoonstorm"); Debug.Log((object)("Starstorm 2 Official Loaded: " + pluginLoaded)); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); } private static void OnLoadActions() { //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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) NemMercIndex = BodyCatalog.FindBodyIndex("NemMercBody"); NemCommandoIndex = BodyCatalog.FindBodyIndex("NemCommandoBody"); if (Config.EnableVoid.Value) { NemMercInvasionCompat(); NemCommandoInvasionCompat(); } } private static void NemMercInvasionCompat() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 //IL_0052: Unknown result type (might be due to invalid IL or missing references) if (enableNemMercInvasion && (int)NemMercIndex != -1) { GameObject val = MasterCatalog.FindMasterPrefab("NemMercMonsterMaster"); if (Object.op_Implicit((Object)(object)val)) { Debug.Log((object)"Starstorm 2 Unofficial: Adding SS2O NemMercenary to Nemesis invader list."); NemesisInvasionCore.AddNemesisBoss(val, null, "Remuneration", shouldGrantRandomItems: true, addEffect: true); NemesisInvasionCore.prioritizePlayersList.Add(NemMercIndex); NemesisInvasionCore.NemesisItemActions = (NemesisInvasionCore.NemesisItemHook)Delegate.Combine(NemesisInvasionCore.NemesisItemActions, new NemesisInvasionCore.NemesisItemHook(NemMercStatModifier)); } } } private static void NemMercStatModifier(CharacterBody sender, StatHookEventArgs args) { //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) if (sender.bodyIndex == NemMercIndex) { float num = sender.level - 1f; args.baseHealthAdd += 3600f - sender.baseMaxHealth + num * (1080f - sender.levelMaxHealth); args.baseRegenAdd -= sender.baseRegen + num * sender.levelRegen; args.baseDamageAdd -= sender.baseDamage - 3f + num * (sender.levelDamage - 0.6f); } } private static void NemCommandoInvasionCompat() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Invalid comparison between Unknown and I4 //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (enableNemCommandoInvasion && (int)NemCommandoIndex != -1) { GameObject val = MasterCatalog.FindMasterPrefab("NemCommandoMonsterMaster"); if (Object.op_Implicit((Object)(object)val)) { Debug.Log((object)"Starstorm 2 Unofficial: Adding SS2O NemCommando to Nemesis invader list."); NemesisInvasionCore.AddNemesisBoss(val, null, "StirringSoul", shouldGrantRandomItems: true, addEffect: true); NemesisInvasionCore.prioritizePlayersList.Add(NemCommandoIndex); NemesisInvasionCore.NemesisItemActions = (NemesisInvasionCore.NemesisItemHook)Delegate.Combine(NemesisInvasionCore.NemesisItemActions, new NemesisInvasionCore.NemesisItemHook(NemCommandoStatModifier)); NemesisItemBehavior.NemStartActions = (NemesisItemBehavior.OnNemStart)Delegate.Combine(NemesisItemBehavior.NemStartActions, new NemesisItemBehavior.OnNemStart(NemCommandoStart)); } } } private static void NemCommandoStart(NemesisItemBehavior self, CharacterBody body) { //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_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_0061: 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_008f: Unknown result type (might be due to invalid IL or missing references) if (body.bodyIndex != NemCommandoIndex || !Object.op_Implicit((Object)(object)body.skillLocator) || !Object.op_Implicit((Object)(object)body.skillLocator.secondary)) { return; } SkillDef val = null; Variant[] variants = body.skillLocator.secondary.skillFamily.variants; foreach (Variant val2 in variants) { if (Object.op_Implicit((Object)(object)val2.skillDef) && val2.skillDef.skillName.Equals("NemCommandoSwordBeam")) { val = val2.skillDef; break; } } if (Object.op_Implicit((Object)(object)val)) { body.skillLocator.secondary.SetSkillOverride((object)self, val, (SkillOverridePriority)3); } } private static void NemCommandoStatModifier(CharacterBody sender, StatHookEventArgs args) { //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) if (sender.bodyIndex == NemCommandoIndex) { float num = sender.level - 1f; args.baseHealthAdd += 3600f - sender.baseMaxHealth + num * (1080f - sender.levelMaxHealth); args.baseRegenAdd -= sender.baseRegen + num * sender.levelRegen; args.baseDamageAdd -= sender.baseDamage - 3f + num * (sender.levelDamage - 0.6f); } } } public static class SurvariantsCompat { public static bool pluginLoaded = false; public static bool useVariants = true; public static void InitCompat() { pluginLoaded = Chainloader.PluginInfos.ContainsKey("pseudopulse.Survariants"); } public static void SetVariant(SurvivorDef variantDef, string baseBodyName) { if (pluginLoaded) { GameObject val = BodyCatalog.FindBodyPrefab(baseBodyName); SurvivorDef val2 = SurvivorCatalog.FindSurvivorDefFromBody(val); if (!Object.op_Implicit((Object)(object)val2)) { Debug.LogWarning((object)("SS2U: Survariants Compat: Could not find SurvivorDef for " + baseBodyName)); } else { SetVariant(variantDef, val2); } } } public static void SetVariant(SurvivorDef variantDef, SurvivorDef baseSurvivorDef) { if (pluginLoaded && useVariants && Object.op_Implicit((Object)(object)variantDef) && Object.op_Implicit((Object)(object)baseSurvivorDef)) { SetVariantInternal(variantDef, baseSurvivorDef); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void SetVariantInternal(SurvivorDef variantDef, SurvivorDef baseSurvivorDef) { SurvivorVariantDef val = ScriptableObject.CreateInstance(); ((Object)val).name = variantDef.cachedName; val.DisplayName = variantDef.displayNameToken; val.VariantSurvivor = variantDef; val.TargetSurvivor = baseSurvivorDef; val.RequiredUnlock = variantDef.unlockableDef; val.Description = "Starstorm 2 Unofficial"; variantDef.hidden = true; SurvivorVariantCatalog.AddSurvivorVariant(val); } } public static void Initialize() { RiskyMod.InitCompat(); SurvariantsCompat.InitCompat(); } } internal class SneedUtils { public static bool IsEnemyInSphere(float radius, Vector3 position, TeamIndex team, bool airborneOnly = false) { //IL_0007: 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_009e: 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) List list = new List(); Collider[] array = Physics.OverlapSphere(position, radius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && !list.Contains(healthComponent)) { list.Add(healthComponent); if (Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.teamComponent) && healthComponent.body.teamComponent.teamIndex != team && (!airborneOnly || healthComponent.body.isFlying || (Object.op_Implicit((Object)(object)healthComponent.body.characterMotor) && !healthComponent.body.characterMotor.isGrounded))) { return true; } } } return false; } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.ChirrLover.Starstorm2Unofficial", "Starstorm 2 Unofficial", "0.22.11")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class StarstormPlugin : BaseUnityPlugin { [CompilerGenerated] private static class <>O { public static Action <0>__SetArena; public static Action <1>__StoreBodyIndexes; public static Action <2>__Stage_onStageStartGlobal; public static StatHookEventHandler <3>__RecalculateStatsAPI_GetStatCoefficients; public static hook_ProcessHitEnemy <4>__GlobalEventManager_OnHitEnemy; public static hook_OnCharacterDeath <5>__GlobalEventManager_OnCharacterDeath; } internal const string guid = "com.ChirrLover.Starstorm2Unofficial"; internal const string modName = "Starstorm 2 Unofficial"; internal const string version = "0.22.11"; public static StarstormPlugin instance; public static bool scrollableLobbyInstalled; public static bool infernoPluginLoaded; public static bool riskOfOptionsLoaded; public static bool scepterPluginLoaded; public static bool classicItemsLoaded; public static bool kingArenaLoaded; public static bool emoteAPILoaded; public static bool blightedElitesLoaded; public static bool additiveExecutesLoaded; public static bool kingArenaActive; private LogCore logCore; private PrefabCore prefabCore; private BuffCore buffCore; private ItemCore itemCore; private EquipmentCore equipmentCore; private DoTCore dotCore; private TyphoonCore typhoonCore; private EventsCore eventsCore; private DamageTypeCore damageTypeCore; public static NemesisInvasionCore nemesisInvasionCore; private ItemDisplayCore itemDisplayCore; private SkinsCore skinsCore; private EnemyCore enemyCore; public void Awake() { Files.PluginInfo = ((BaseUnityPlugin)this).Info; LanguageTokens.RegisterLanguageTokens(); scepterPluginLoaded = Chainloader.PluginInfos.ContainsKey("com.DestroyedClone.AncientScepter"); classicItemsLoaded = Chainloader.PluginInfos.ContainsKey("com.ThinkInvisible.ClassicItems"); kingArenaLoaded = Chainloader.PluginInfos.ContainsKey("com.Kingpinush.KingKombatArena"); emoteAPILoaded = Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI"); riskOfOptionsLoaded = Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions"); blightedElitesLoaded = Chainloader.PluginInfos.ContainsKey("com.Moffein.BlightedElites"); additiveExecutesLoaded = Chainloader.PluginInfos.ContainsKey("com.Moffein.AdditiveExecutes"); if (Chainloader.PluginInfos.ContainsKey("com.KingEnderBrine.ScrollableLobbyUI")) { scrollableLobbyInstalled = true; } ModCompat.Initialize(); SoundBanks.Init(); if (kingArenaLoaded) { Stage.onStageStartGlobal += SetArena; } instance = this; LogCore.logger = ((BaseUnityPlugin)this).Logger; StaticValues.InitValues(); Initialize(); new ContentPacks().Initialize(); ShootableProjectileComponent.AddHooks(); IgnoreSprintCrosshair.Init(); AchievementHider.Init(); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void SetArena(Stage obj) { kingArenaActive = KingKombatArenaMainPlugin.s_GAME_MODE_ACTIVE; } private void InitializeSurvivors() { if (Config.EnableExecutioner.Value) { new ExecutionerCore().Initialize(); } if (Config.EnableNemmando.Value) { new NemmandoCore().Initialize(); } if (Config.EnableCyborg.Value) { new CyborgCore(); } if (Config.EnableChirr.Value) { new ChirrCore(); } if (Config.EnablePyro.Value) { new PyroCore(); } if (Config.EnableNucleator.Value) { new NucleatorCore().Initialize(); } } private void Initialize() { //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Expected O, but got Unknown //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Expected O, but got Unknown //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Expected O, but got Unknown infernoPluginLoaded = Chainloader.PluginInfos.ContainsKey("HIFU.Inferno"); damageTypeCore = new DamageTypeCore(); Assets.Initialize(); States.Initialize(); Config.Initialize(); ModCompat.SS2OCompat.InitCompat(); Music.Initialize(); VanillaSurvivorUnlockables.RegisterUnlockables(); logCore = new LogCore(((BaseUnityPlugin)this).Logger); prefabCore = new PrefabCore(); buffCore = new BuffCore(); dotCore = new DoTCore(); itemDisplayCore = new ItemDisplayCore(); skinsCore = new SkinsCore(); InitializeSurvivors(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(EnemyCore.StoreBodyIndexes)); Effects.Initialize(); if (Config.EnableEquipment.Value) { equipmentCore = new EquipmentCore(); if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { AddEquipmentIfEnabled(new CloakingHeadband(), EquipmentCore.instance.equipment); AddEquipmentIfEnabled(new GreaterWarbanner(), EquipmentCore.instance.equipment); } else { Debug.LogWarning((object)"SS2U: Disabling autoconfig equipment."); } EquipmentCore.instance.InitEquipment(); } if (Config.EnableItems.Value) { itemCore = new ItemCore(); if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { AddItemIfEnabled(new Fork(), ItemCore.instance.items); AddItemIfEnabled(new MoltenCoin(), ItemCore.instance.items); AddItemIfEnabled(new DetritiveTrematode(), ItemCore.instance.items); AddItemIfEnabled(new CoffeeBag(), ItemCore.instance.items, enableByDefault: false); AddItemIfEnabled(new WatchMetronome(), ItemCore.instance.items); AddItemIfEnabled(new DormantFungus(), ItemCore.instance.items); AddItemIfEnabled(new DroidHead(), ItemCore.instance.items); AddItemIfEnabled(new GreenChocolate(), ItemCore.instance.items); AddItemIfEnabled(new NkotasHeritage(), ItemCore.instance.items, enableByDefault: false); AddItemIfEnabled(new RelicOfMass(), ItemCore.instance.items); AddItemIfEnabled(new StirringSoul(), ItemCore.instance.items); AddItemIfEnabled(new Diary(), ItemCore.instance.items); AddItemIfEnabled(new StrangeCan(), ItemCore.instance.items); AddItemIfEnabled(new ErraticGadget(), ItemCore.instance.items, enableByDefault: false); } else { Debug.LogWarning((object)"SS2U: Disabling autoconfig items."); } ItemCore.instance.InitItems(); } if (Config.EnableTyphoon.Value) { if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { typhoonCore = new TyphoonCore(); } else { Debug.LogWarning((object)"SS2U: Disabling Typhoon due to autoconfig."); } } if (Config.EnableVoid.Value) { if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { nemesisInvasionCore = new NemesisInvasionCore(); } else { Debug.LogWarning((object)"SS2U: Disabling Void due to autoconfig."); } } if (Config.EnableEvents.Value) { if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { eventsCore = new EventsCore(); } else { Debug.LogWarning((object)"SS2U: Disabling Storms due to autoconfig."); } } Stage.onStageStartGlobal += BazaarChecker.Stage_onStageStartGlobal; object obj = <>O.<3>__RecalculateStatsAPI_GetStatCoefficients; if (obj == null) { StatHookEventHandler val = GetStatCoefficients.RecalculateStatsAPI_GetStatCoefficients; <>O.<3>__RecalculateStatsAPI_GetStatCoefficients = val; obj = (object)val; } RecalculateStatsAPI.GetStatCoefficients += (StatHookEventHandler)obj; object obj2 = <>O.<4>__GlobalEventManager_OnHitEnemy; if (obj2 == null) { hook_ProcessHitEnemy val2 = OnHitEnemy.GlobalEventManager_OnHitEnemy; <>O.<4>__GlobalEventManager_OnHitEnemy = val2; obj2 = (object)val2; } GlobalEventManager.ProcessHitEnemy += (hook_ProcessHitEnemy)obj2; object obj3 = <>O.<5>__GlobalEventManager_OnCharacterDeath; if (obj3 == null) { hook_OnCharacterDeath val3 = OnCharacterDeathGlobal.GlobalEventManager_OnCharacterDeath; <>O.<5>__GlobalEventManager_OnCharacterDeath = val3; obj3 = (object)val3; } GlobalEventManager.OnCharacterDeath += (hook_OnCharacterDeath)obj3; } private void AddItemIfEnabled(SS2Item item, List list, bool enableByDefault = true) { ConfigEntry val = ((BaseUnityPlugin)this).Config.Bind("Starstorm 2 :: Items", "Enable " + item.NameInternal, enableByDefault, (ConfigDescription)null); if (val.Value) { list.Add(item); } } private void AddEquipmentIfEnabled(SS2Equipment eqp, List list) { ConfigEntry val = ((BaseUnityPlugin)this).Config.Bind("Starstorm 2 :: Equipment", "Enable " + eqp.NameInternal, true, (ConfigDescription)null); if (val.Value) { list.Add(eqp); } } public static DifficultyDef GetInfernoDef() { if (infernoPluginLoaded) { return GetInfernoDefInternal(); } return null; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static DifficultyDef GetInfernoDefInternal() { return Main.InfernoDiffDef; } } public static class StaticValues { public enum JetBootsEffectQuality { None, Light, Default } public static float maliceRangeValue; public static float maliceRangeStackValue; public static float maliceDmgReductionValue; public static float maliceProcCoefValue; public static float trematodeDamage; public static float trematodeDuration; public static float trematodeCritical; public static float testerGold; public static float testerHealing; public static float bootsBase; public static float bootsStack; public static float bootsRadius; public static float bootsProc; public static JetBootsEffectQuality timbsQuality; public static float hottestSusRadius; public static float hottestSusHit; public static float hottestSusDuration; public static float hottestSusDamage; public static float sekiroArmor; public static float sekiroArmorStack; public static float sekiroCrit; public static float sekiroCritStack; internal static void InitValues() { sekiroArmor = 15f; sekiroArmorStack = 10f; sekiroCrit = 25f; sekiroCritStack = 20f; hottestSusHit = 1.5f; hottestSusRadius = 30f; hottestSusDuration = 6f; hottestSusDamage = 1f; bootsBase = 1.5f; bootsStack = 1f; bootsRadius = 7.5f; bootsProc = 0f; timbsQuality = JetBootsEffectQuality.Default; maliceRangeValue = 9f; maliceRangeStackValue = 1f; maliceDmgReductionValue = 0.55f; maliceProcCoefValue = 0f; testerGold = 5f; testerHealing = 15f; } internal static float ItemStatConfigValue(string itemName, string configName, string desc, float defaultValue) { //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Expected O, but got Unknown ConfigEntry val = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Items :: " + itemName, configName, defaultValue, new ConfigDescription(desc, (AcceptableValueBase)null, Array.Empty())); return val.Value; } internal static float ItemStatStupidConfigValue(string itemName, string configName, string desc, int defaultValue) { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown ConfigEntry val = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Items :: " + itemName, configName, (float)defaultValue, new ConfigDescription(desc, (AcceptableValueBase)null, Array.Empty())); return val.Value; } } } namespace Starstorm2Unofficial.Survivors.Pyro { public class HeatSkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public HeatController heatController; } public float baseHeatRequirement = 0f; public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { heatController = ((Component)skillSlot).GetComponent() }; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return HasEnoughHeat(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && HasEnoughHeat(skillSlot); } private static bool HasEnoughHeat([NotNull] GenericSkill skillSlot) { HeatController heatController = ((InstanceData)(object)skillSlot.skillInstanceData).heatController; if (Object.op_Implicit((Object)(object)heatController)) { float num = ((HeatSkillDef)(object)skillSlot.skillDef).baseHeatRequirement / Mathf.Max(1f, 0.5f + 0.5f * (float)skillSlot.maxStock); return heatController.GetHeatPercent() >= num; } return false; } } internal class PyroItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_003a: 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_0062: 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_009e: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e8: 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_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_0108: 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_0130: 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_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018c: 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_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: 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_01c2: 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_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_0206: 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) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_024d: 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_0275: Unknown result type (might be due to invalid IL or missing references) //IL_027a: 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_02bc: 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_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_0303: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_034f: 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) //IL_0359: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03ba: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0435: Unknown result type (might be due to invalid IL or missing references) //IL_043a: 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_045e: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0491: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_049b: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_04f2: Unknown result type (might be due to invalid IL or missing references) //IL_04f7: Unknown result type (might be due to invalid IL or missing references) //IL_0516: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0549: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_0553: Unknown result type (might be due to invalid IL or missing references) //IL_0572: Unknown result type (might be due to invalid IL or missing references) //IL_0577: Unknown result type (might be due to invalid IL or missing references) //IL_057c: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_05a0: Unknown result type (might be due to invalid IL or missing references) //IL_05a5: Unknown result type (might be due to invalid IL or missing references) //IL_05aa: Unknown result type (might be due to invalid IL or missing references) //IL_05af: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_060b: Unknown result type (might be due to invalid IL or missing references) //IL_062a: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_0639: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0662: Unknown result type (might be due to invalid IL or missing references) //IL_0667: 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_068b: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06b9: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06e2: Unknown result type (might be due to invalid IL or missing references) //IL_06e7: Unknown result type (might be due to invalid IL or missing references) //IL_06ec: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_0710: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_071a: Unknown result type (might be due to invalid IL or missing references) //IL_071f: Unknown result type (might be due to invalid IL or missing references) //IL_073e: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0748: Unknown result type (might be due to invalid IL or missing references) //IL_074d: 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_077b: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07d2: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07f6: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_0805: Unknown result type (might be due to invalid IL or missing references) //IL_0824: Unknown result type (might be due to invalid IL or missing references) //IL_0829: Unknown result type (might be due to invalid IL or missing references) //IL_082e: Unknown result type (might be due to invalid IL or missing references) //IL_0833: Unknown result type (might be due to invalid IL or missing references) //IL_0852: 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_0880: Unknown result type (might be due to invalid IL or missing references) //IL_0885: Unknown result type (might be due to invalid IL or missing references) //IL_088a: Unknown result type (might be due to invalid IL or missing references) //IL_088f: Unknown result type (might be due to invalid IL or missing references) //IL_08ae: Unknown result type (might be due to invalid IL or missing references) //IL_08b3: Unknown result type (might be due to invalid IL or missing references) //IL_08b8: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08dc: Unknown result type (might be due to invalid IL or missing references) //IL_08e1: Unknown result type (might be due to invalid IL or missing references) //IL_08e6: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_090a: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0919: 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_095b: Unknown result type (might be due to invalid IL or missing references) //IL_096f: Unknown result type (might be due to invalid IL or missing references) //IL_0974: Unknown result type (might be due to invalid IL or missing references) //IL_098e: Unknown result type (might be due to invalid IL or missing references) //IL_0993: Unknown result type (might be due to invalid IL or missing references) //IL_0998: Unknown result type (might be due to invalid IL or missing references) //IL_099d: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09c6: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09ea: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_09f4: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a18: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a22: Unknown result type (might be due to invalid IL or missing references) //IL_0a27: 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_0a4b: Unknown result type (might be due to invalid IL or missing references) //IL_0a50: Unknown result type (might be due to invalid IL or missing references) //IL_0a55: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0a79: Unknown result type (might be due to invalid IL or missing references) //IL_0a7e: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0aa2: Unknown result type (might be due to invalid IL or missing references) //IL_0aa7: Unknown result type (might be due to invalid IL or missing references) //IL_0aac: Unknown result type (might be due to invalid IL or missing references) //IL_0ab1: Unknown result type (might be due to invalid IL or missing references) //IL_0ad0: Unknown result type (might be due to invalid IL or missing references) //IL_0ad5: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0adf: Unknown result type (might be due to invalid IL or missing references) //IL_0afe: Unknown result type (might be due to invalid IL or missing references) //IL_0b03: Unknown result type (might be due to invalid IL or missing references) //IL_0b08: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: 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_0b3b: Unknown result type (might be due to invalid IL or missing references) //IL_0b5a: Unknown result type (might be due to invalid IL or missing references) //IL_0b5f: Unknown result type (might be due to invalid IL or missing references) //IL_0b64: Unknown result type (might be due to invalid IL or missing references) //IL_0b69: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Unknown result type (might be due to invalid IL or missing references) //IL_0b97: Unknown result type (might be due to invalid IL or missing references) //IL_0bb6: Unknown result type (might be due to invalid IL or missing references) //IL_0bbb: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) //IL_0bc5: Unknown result type (might be due to invalid IL or missing references) //IL_0bd7: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0bff: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: Unknown result type (might be due to invalid IL or missing references) //IL_0c2c: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c44: Unknown result type (might be due to invalid IL or missing references) //IL_0c49: Unknown result type (might be due to invalid IL or missing references) //IL_0c51: Unknown result type (might be due to invalid IL or missing references) //IL_0c56: Unknown result type (might be due to invalid IL or missing references) //IL_0c58: Unknown result type (might be due to invalid IL or missing references) //IL_0c61: Unknown result type (might be due to invalid IL or missing references) //IL_0c6a: Unknown result type (might be due to invalid IL or missing references) //IL_0c8e: Unknown result type (might be due to invalid IL or missing references) //IL_0c93: Unknown result type (might be due to invalid IL or missing references) //IL_0c9a: Unknown result type (might be due to invalid IL or missing references) //IL_0c9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ca6: Unknown result type (might be due to invalid IL or missing references) //IL_0cab: Unknown result type (might be due to invalid IL or missing references) //IL_0cb3: Unknown result type (might be due to invalid IL or missing references) //IL_0cb8: Unknown result type (might be due to invalid IL or missing references) //IL_0cba: Unknown result type (might be due to invalid IL or missing references) //IL_0cc4: Unknown result type (might be due to invalid IL or missing references) //IL_0cc6: Unknown result type (might be due to invalid IL or missing references) //IL_0ccb: Unknown result type (might be due to invalid IL or missing references) //IL_0ce7: Unknown result type (might be due to invalid IL or missing references) //IL_0cec: Unknown result type (might be due to invalid IL or missing references) //IL_0cf1: Unknown result type (might be due to invalid IL or missing references) //IL_0cf6: Unknown result type (might be due to invalid IL or missing references) //IL_0d15: Unknown result type (might be due to invalid IL or missing references) //IL_0d1a: Unknown result type (might be due to invalid IL or missing references) //IL_0d1f: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0d43: Unknown result type (might be due to invalid IL or missing references) //IL_0d48: Unknown result type (might be due to invalid IL or missing references) //IL_0d4d: Unknown result type (might be due to invalid IL or missing references) //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0d71: Unknown result type (might be due to invalid IL or missing references) //IL_0d76: Unknown result type (might be due to invalid IL or missing references) //IL_0d7b: Unknown result type (might be due to invalid IL or missing references) //IL_0d80: Unknown result type (might be due to invalid IL or missing references) //IL_0d9f: Unknown result type (might be due to invalid IL or missing references) //IL_0da4: Unknown result type (might be due to invalid IL or missing references) //IL_0da9: Unknown result type (might be due to invalid IL or missing references) //IL_0dae: Unknown result type (might be due to invalid IL or missing references) //IL_0dcd: Unknown result type (might be due to invalid IL or missing references) //IL_0dd2: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0dfb: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e0a: Unknown result type (might be due to invalid IL or missing references) //IL_0e29: Unknown result type (might be due to invalid IL or missing references) //IL_0e2e: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: Unknown result type (might be due to invalid IL or missing references) //IL_0e38: Unknown result type (might be due to invalid IL or missing references) //IL_0e57: Unknown result type (might be due to invalid IL or missing references) //IL_0e5c: Unknown result type (might be due to invalid IL or missing references) //IL_0e61: Unknown result type (might be due to invalid IL or missing references) //IL_0e66: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e8a: Unknown result type (might be due to invalid IL or missing references) //IL_0e8f: Unknown result type (might be due to invalid IL or missing references) //IL_0e94: Unknown result type (might be due to invalid IL or missing references) //IL_0eb3: Unknown result type (might be due to invalid IL or missing references) //IL_0eb8: Unknown result type (might be due to invalid IL or missing references) //IL_0ebd: Unknown result type (might be due to invalid IL or missing references) //IL_0ec2: Unknown result type (might be due to invalid IL or missing references) //IL_0ee1: Unknown result type (might be due to invalid IL or missing references) //IL_0ee6: Unknown result type (might be due to invalid IL or missing references) //IL_0eeb: Unknown result type (might be due to invalid IL or missing references) //IL_0ef0: Unknown result type (might be due to invalid IL or missing references) //IL_0f0f: Unknown result type (might be due to invalid IL or missing references) //IL_0f14: Unknown result type (might be due to invalid IL or missing references) //IL_0f19: Unknown result type (might be due to invalid IL or missing references) //IL_0f1e: Unknown result type (might be due to invalid IL or missing references) //IL_0f3d: Unknown result type (might be due to invalid IL or missing references) //IL_0f42: Unknown result type (might be due to invalid IL or missing references) //IL_0f47: Unknown result type (might be due to invalid IL or missing references) //IL_0f4c: Unknown result type (might be due to invalid IL or missing references) //IL_0f6b: Unknown result type (might be due to invalid IL or missing references) //IL_0f70: Unknown result type (might be due to invalid IL or missing references) //IL_0f75: Unknown result type (might be due to invalid IL or missing references) //IL_0f7a: Unknown result type (might be due to invalid IL or missing references) //IL_0f99: Unknown result type (might be due to invalid IL or missing references) //IL_0f9e: Unknown result type (might be due to invalid IL or missing references) //IL_0fa3: Unknown result type (might be due to invalid IL or missing references) //IL_0fa8: Unknown result type (might be due to invalid IL or missing references) //IL_0fba: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0fe2: Unknown result type (might be due to invalid IL or missing references) //IL_0feb: Unknown result type (might be due to invalid IL or missing references) //IL_100f: Unknown result type (might be due to invalid IL or missing references) //IL_1014: Unknown result type (might be due to invalid IL or missing references) //IL_101b: Unknown result type (might be due to invalid IL or missing references) //IL_1020: Unknown result type (might be due to invalid IL or missing references) //IL_1027: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_1034: Unknown result type (might be due to invalid IL or missing references) //IL_1039: 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_1044: Unknown result type (might be due to invalid IL or missing references) //IL_104d: Unknown result type (might be due to invalid IL or missing references) //IL_1071: Unknown result type (might be due to invalid IL or missing references) //IL_1076: Unknown result type (might be due to invalid IL or missing references) //IL_107d: Unknown result type (might be due to invalid IL or missing references) //IL_1082: Unknown result type (might be due to invalid IL or missing references) //IL_1089: Unknown result type (might be due to invalid IL or missing references) //IL_108e: Unknown result type (might be due to invalid IL or missing references) //IL_1096: Unknown result type (might be due to invalid IL or missing references) //IL_109b: Unknown result type (might be due to invalid IL or missing references) //IL_109d: Unknown result type (might be due to invalid IL or missing references) //IL_10a6: Unknown result type (might be due to invalid IL or missing references) //IL_10af: Unknown result type (might be due to invalid IL or missing references) //IL_10d3: Unknown result type (might be due to invalid IL or missing references) //IL_10d8: Unknown result type (might be due to invalid IL or missing references) //IL_10df: Unknown result type (might be due to invalid IL or missing references) //IL_10e4: Unknown result type (might be due to invalid IL or missing references) //IL_10eb: Unknown result type (might be due to invalid IL or missing references) //IL_10f0: Unknown result type (might be due to invalid IL or missing references) //IL_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_10fd: Unknown result type (might be due to invalid IL or missing references) //IL_10ff: Unknown result type (might be due to invalid IL or missing references) //IL_1108: Unknown result type (might be due to invalid IL or missing references) //IL_1111: Unknown result type (might be due to invalid IL or missing references) //IL_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_1141: Unknown result type (might be due to invalid IL or missing references) //IL_1146: Unknown result type (might be due to invalid IL or missing references) //IL_114d: Unknown result type (might be due to invalid IL or missing references) //IL_1152: Unknown result type (might be due to invalid IL or missing references) //IL_115a: Unknown result type (might be due to invalid IL or missing references) //IL_115f: Unknown result type (might be due to invalid IL or missing references) //IL_1161: Unknown result type (might be due to invalid IL or missing references) //IL_116b: Unknown result type (might be due to invalid IL or missing references) //IL_116d: Unknown result type (might be due to invalid IL or missing references) //IL_1172: Unknown result type (might be due to invalid IL or missing references) //IL_1181: Unknown result type (might be due to invalid IL or missing references) //IL_1197: Unknown result type (might be due to invalid IL or missing references) //IL_11a9: 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_11d6: Unknown result type (might be due to invalid IL or missing references) //IL_11db: Unknown result type (might be due to invalid IL or missing references) //IL_11e2: Unknown result type (might be due to invalid IL or missing references) //IL_11e7: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: 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_11fb: Unknown result type (might be due to invalid IL or missing references) //IL_1200: Unknown result type (might be due to invalid IL or missing references) //IL_1202: Unknown result type (might be due to invalid IL or missing references) //IL_120b: Unknown result type (might be due to invalid IL or missing references) //IL_1214: Unknown result type (might be due to invalid IL or missing references) //IL_1238: Unknown result type (might be due to invalid IL or missing references) //IL_123d: Unknown result type (might be due to invalid IL or missing references) //IL_1244: Unknown result type (might be due to invalid IL or missing references) //IL_1249: Unknown result type (might be due to invalid IL or missing references) //IL_1250: Unknown result type (might be due to invalid IL or missing references) //IL_1255: Unknown result type (might be due to invalid IL or missing references) //IL_125d: Unknown result type (might be due to invalid IL or missing references) //IL_1262: Unknown result type (might be due to invalid IL or missing references) //IL_1264: Unknown result type (might be due to invalid IL or missing references) //IL_126e: Unknown result type (might be due to invalid IL or missing references) //IL_1270: Unknown result type (might be due to invalid IL or missing references) //IL_1275: Unknown result type (might be due to invalid IL or missing references) //IL_1291: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_129b: Unknown result type (might be due to invalid IL or missing references) //IL_12a0: Unknown result type (might be due to invalid IL or missing references) //IL_12bf: Unknown result type (might be due to invalid IL or missing references) //IL_12c4: Unknown result type (might be due to invalid IL or missing references) //IL_12c9: Unknown result type (might be due to invalid IL or missing references) //IL_12ce: Unknown result type (might be due to invalid IL or missing references) //IL_12ed: Unknown result type (might be due to invalid IL or missing references) //IL_12f2: Unknown result type (might be due to invalid IL or missing references) //IL_12f7: Unknown result type (might be due to invalid IL or missing references) //IL_12fc: Unknown result type (might be due to invalid IL or missing references) //IL_131b: Unknown result type (might be due to invalid IL or missing references) //IL_1320: Unknown result type (might be due to invalid IL or missing references) //IL_1325: Unknown result type (might be due to invalid IL or missing references) //IL_132a: Unknown result type (might be due to invalid IL or missing references) //IL_1349: Unknown result type (might be due to invalid IL or missing references) //IL_134e: Unknown result type (might be due to invalid IL or missing references) //IL_1353: Unknown result type (might be due to invalid IL or missing references) //IL_1358: Unknown result type (might be due to invalid IL or missing references) //IL_1377: Unknown result type (might be due to invalid IL or missing references) //IL_137c: Unknown result type (might be due to invalid IL or missing references) //IL_1381: Unknown result type (might be due to invalid IL or missing references) //IL_1386: Unknown result type (might be due to invalid IL or missing references) //IL_13a5: Unknown result type (might be due to invalid IL or missing references) //IL_13aa: Unknown result type (might be due to invalid IL or missing references) //IL_13af: Unknown result type (might be due to invalid IL or missing references) //IL_13b4: Unknown result type (might be due to invalid IL or missing references) //IL_13d3: Unknown result type (might be due to invalid IL or missing references) //IL_13d8: Unknown result type (might be due to invalid IL or missing references) //IL_13dd: Unknown result type (might be due to invalid IL or missing references) //IL_13e2: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1406: Unknown result type (might be due to invalid IL or missing references) //IL_140b: Unknown result type (might be due to invalid IL or missing references) //IL_1410: Unknown result type (might be due to invalid IL or missing references) //IL_142f: Unknown result type (might be due to invalid IL or missing references) //IL_1434: Unknown result type (might be due to invalid IL or missing references) //IL_1439: 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_145d: Unknown result type (might be due to invalid IL or missing references) //IL_1462: Unknown result type (might be due to invalid IL or missing references) //IL_1467: Unknown result type (might be due to invalid IL or missing references) //IL_146c: Unknown result type (might be due to invalid IL or missing references) //IL_1486: Unknown result type (might be due to invalid IL or missing references) //IL_148b: Unknown result type (might be due to invalid IL or missing references) //IL_1490: Unknown result type (might be due to invalid IL or missing references) //IL_1495: Unknown result type (might be due to invalid IL or missing references) //IL_14b4: Unknown result type (might be due to invalid IL or missing references) //IL_14b9: Unknown result type (might be due to invalid IL or missing references) //IL_14be: Unknown result type (might be due to invalid IL or missing references) //IL_14c3: Unknown result type (might be due to invalid IL or missing references) //IL_14e2: Unknown result type (might be due to invalid IL or missing references) //IL_14e7: Unknown result type (might be due to invalid IL or missing references) //IL_14ec: Unknown result type (might be due to invalid IL or missing references) //IL_14f1: Unknown result type (might be due to invalid IL or missing references) //IL_1510: Unknown result type (might be due to invalid IL or missing references) //IL_1515: 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_151f: Unknown result type (might be due to invalid IL or missing references) //IL_153e: Unknown result type (might be due to invalid IL or missing references) //IL_1543: Unknown result type (might be due to invalid IL or missing references) //IL_1548: Unknown result type (might be due to invalid IL or missing references) //IL_154d: Unknown result type (might be due to invalid IL or missing references) //IL_156c: Unknown result type (might be due to invalid IL or missing references) //IL_1571: Unknown result type (might be due to invalid IL or missing references) //IL_1576: Unknown result type (might be due to invalid IL or missing references) //IL_157b: Unknown result type (might be due to invalid IL or missing references) //IL_159a: Unknown result type (might be due to invalid IL or missing references) //IL_159f: Unknown result type (might be due to invalid IL or missing references) //IL_15a4: Unknown result type (might be due to invalid IL or missing references) //IL_15a9: Unknown result type (might be due to invalid IL or missing references) //IL_15c8: Unknown result type (might be due to invalid IL or missing references) //IL_15cd: Unknown result type (might be due to invalid IL or missing references) //IL_15d2: Unknown result type (might be due to invalid IL or missing references) //IL_15d7: Unknown result type (might be due to invalid IL or missing references) //IL_15f6: Unknown result type (might be due to invalid IL or missing references) //IL_15fb: Unknown result type (might be due to invalid IL or missing references) //IL_1600: Unknown result type (might be due to invalid IL or missing references) //IL_1605: Unknown result type (might be due to invalid IL or missing references) //IL_1624: Unknown result type (might be due to invalid IL or missing references) //IL_1629: Unknown result type (might be due to invalid IL or missing references) //IL_162e: Unknown result type (might be due to invalid IL or missing references) //IL_1633: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Unknown result type (might be due to invalid IL or missing references) //IL_1657: Unknown result type (might be due to invalid IL or missing references) //IL_165c: Unknown result type (might be due to invalid IL or missing references) //IL_1661: Unknown result type (might be due to invalid IL or missing references) //IL_1680: Unknown result type (might be due to invalid IL or missing references) //IL_1685: Unknown result type (might be due to invalid IL or missing references) //IL_168a: Unknown result type (might be due to invalid IL or missing references) //IL_168f: Unknown result type (might be due to invalid IL or missing references) //IL_16ae: Unknown result type (might be due to invalid IL or missing references) //IL_16b3: Unknown result type (might be due to invalid IL or missing references) //IL_16b8: Unknown result type (might be due to invalid IL or missing references) //IL_16bd: Unknown result type (might be due to invalid IL or missing references) //IL_16d7: Unknown result type (might be due to invalid IL or missing references) //IL_16dc: Unknown result type (might be due to invalid IL or missing references) //IL_16e1: Unknown result type (might be due to invalid IL or missing references) //IL_16e6: Unknown result type (might be due to invalid IL or missing references) //IL_1705: Unknown result type (might be due to invalid IL or missing references) //IL_170a: Unknown result type (might be due to invalid IL or missing references) //IL_170f: Unknown result type (might be due to invalid IL or missing references) //IL_1714: Unknown result type (might be due to invalid IL or missing references) //IL_1733: Unknown result type (might be due to invalid IL or missing references) //IL_1738: Unknown result type (might be due to invalid IL or missing references) //IL_173d: Unknown result type (might be due to invalid IL or missing references) //IL_1742: Unknown result type (might be due to invalid IL or missing references) //IL_1761: Unknown result type (might be due to invalid IL or missing references) //IL_1766: Unknown result type (might be due to invalid IL or missing references) //IL_176b: Unknown result type (might be due to invalid IL or missing references) //IL_1770: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_1794: Unknown result type (might be due to invalid IL or missing references) //IL_1799: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17b8: Unknown result type (might be due to invalid IL or missing references) //IL_17bd: Unknown result type (might be due to invalid IL or missing references) //IL_17c2: Unknown result type (might be due to invalid IL or missing references) //IL_17c7: Unknown result type (might be due to invalid IL or missing references) //IL_17e6: Unknown result type (might be due to invalid IL or missing references) //IL_17eb: Unknown result type (might be due to invalid IL or missing references) //IL_17f0: Unknown result type (might be due to invalid IL or missing references) //IL_17f5: Unknown result type (might be due to invalid IL or missing references) //IL_1814: Unknown result type (might be due to invalid IL or missing references) //IL_1819: Unknown result type (might be due to invalid IL or missing references) //IL_181e: Unknown result type (might be due to invalid IL or missing references) //IL_1823: Unknown result type (might be due to invalid IL or missing references) //IL_1842: Unknown result type (might be due to invalid IL or missing references) //IL_1847: Unknown result type (might be due to invalid IL or missing references) //IL_184c: Unknown result type (might be due to invalid IL or missing references) //IL_1851: Unknown result type (might be due to invalid IL or missing references) //IL_1870: Unknown result type (might be due to invalid IL or missing references) //IL_1875: Unknown result type (might be due to invalid IL or missing references) //IL_187a: Unknown result type (might be due to invalid IL or missing references) //IL_187f: Unknown result type (might be due to invalid IL or missing references) //IL_1891: Unknown result type (might be due to invalid IL or missing references) //IL_18a7: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Unknown result type (might be due to invalid IL or missing references) //IL_18c2: Unknown result type (might be due to invalid IL or missing references) //IL_18e6: Unknown result type (might be due to invalid IL or missing references) //IL_18eb: Unknown result type (might be due to invalid IL or missing references) //IL_18f2: Unknown result type (might be due to invalid IL or missing references) //IL_18f7: Unknown result type (might be due to invalid IL or missing references) //IL_18fe: Unknown result type (might be due to invalid IL or missing references) //IL_1903: Unknown result type (might be due to invalid IL or missing references) //IL_190b: Unknown result type (might be due to invalid IL or missing references) //IL_1910: Unknown result type (might be due to invalid IL or missing references) //IL_1912: Unknown result type (might be due to invalid IL or missing references) //IL_191b: Unknown result type (might be due to invalid IL or missing references) //IL_1924: Unknown result type (might be due to invalid IL or missing references) //IL_1948: Unknown result type (might be due to invalid IL or missing references) //IL_194d: Unknown result type (might be due to invalid IL or missing references) //IL_1954: Unknown result type (might be due to invalid IL or missing references) //IL_1959: Unknown result type (might be due to invalid IL or missing references) //IL_1960: Unknown result type (might be due to invalid IL or missing references) //IL_1965: Unknown result type (might be due to invalid IL or missing references) //IL_196d: Unknown result type (might be due to invalid IL or missing references) //IL_1972: Unknown result type (might be due to invalid IL or missing references) //IL_1974: Unknown result type (might be due to invalid IL or missing references) //IL_197d: Unknown result type (might be due to invalid IL or missing references) //IL_1986: Unknown result type (might be due to invalid IL or missing references) //IL_19aa: Unknown result type (might be due to invalid IL or missing references) //IL_19af: Unknown result type (might be due to invalid IL or missing references) //IL_19b6: Unknown result type (might be due to invalid IL or missing references) //IL_19bb: Unknown result type (might be due to invalid IL or missing references) //IL_19c2: Unknown result type (might be due to invalid IL or missing references) //IL_19c7: Unknown result type (might be due to invalid IL or missing references) //IL_19cf: Unknown result type (might be due to invalid IL or missing references) //IL_19d4: Unknown result type (might be due to invalid IL or missing references) //IL_19d6: Unknown result type (might be due to invalid IL or missing references) //IL_19df: Unknown result type (might be due to invalid IL or missing references) //IL_19e8: Unknown result type (might be due to invalid IL or missing references) //IL_1a0c: Unknown result type (might be due to invalid IL or missing references) //IL_1a11: Unknown result type (might be due to invalid IL or missing references) //IL_1a18: Unknown result type (might be due to invalid IL or missing references) //IL_1a1d: Unknown result type (might be due to invalid IL or missing references) //IL_1a24: Unknown result type (might be due to invalid IL or missing references) //IL_1a29: Unknown result type (might be due to invalid IL or missing references) //IL_1a31: Unknown result type (might be due to invalid IL or missing references) //IL_1a36: Unknown result type (might be due to invalid IL or missing references) //IL_1a38: Unknown result type (might be due to invalid IL or missing references) //IL_1a41: Unknown result type (might be due to invalid IL or missing references) //IL_1a4a: Unknown result type (might be due to invalid IL or missing references) //IL_1a6e: Unknown result type (might be due to invalid IL or missing references) //IL_1a73: Unknown result type (might be due to invalid IL or missing references) //IL_1a7a: Unknown result type (might be due to invalid IL or missing references) //IL_1a7f: Unknown result type (might be due to invalid IL or missing references) //IL_1a86: Unknown result type (might be due to invalid IL or missing references) //IL_1a8b: Unknown result type (might be due to invalid IL or missing references) //IL_1a93: Unknown result type (might be due to invalid IL or missing references) //IL_1a98: Unknown result type (might be due to invalid IL or missing references) //IL_1a9a: Unknown result type (might be due to invalid IL or missing references) //IL_1aa4: Unknown result type (might be due to invalid IL or missing references) //IL_1aa6: Unknown result type (might be due to invalid IL or missing references) //IL_1aab: Unknown result type (might be due to invalid IL or missing references) //IL_1ac7: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ad1: Unknown result type (might be due to invalid IL or missing references) //IL_1ad6: Unknown result type (might be due to invalid IL or missing references) //IL_1af5: Unknown result type (might be due to invalid IL or missing references) //IL_1afa: Unknown result type (might be due to invalid IL or missing references) //IL_1aff: Unknown result type (might be due to invalid IL or missing references) //IL_1b04: Unknown result type (might be due to invalid IL or missing references) //IL_1b23: Unknown result type (might be due to invalid IL or missing references) //IL_1b28: Unknown result type (might be due to invalid IL or missing references) //IL_1b2d: 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_1b51: Unknown result type (might be due to invalid IL or missing references) //IL_1b56: Unknown result type (might be due to invalid IL or missing references) //IL_1b5b: Unknown result type (might be due to invalid IL or missing references) //IL_1b60: Unknown result type (might be due to invalid IL or missing references) //IL_1b7f: Unknown result type (might be due to invalid IL or missing references) //IL_1b84: Unknown result type (might be due to invalid IL or missing references) //IL_1b89: Unknown result type (might be due to invalid IL or missing references) //IL_1b8e: Unknown result type (might be due to invalid IL or missing references) //IL_1bad: Unknown result type (might be due to invalid IL or missing references) //IL_1bb2: Unknown result type (might be due to invalid IL or missing references) //IL_1bb7: Unknown result type (might be due to invalid IL or missing references) //IL_1bbc: Unknown result type (might be due to invalid IL or missing references) //IL_1bdb: Unknown result type (might be due to invalid IL or missing references) //IL_1be0: Unknown result type (might be due to invalid IL or missing references) //IL_1be5: Unknown result type (might be due to invalid IL or missing references) //IL_1bea: Unknown result type (might be due to invalid IL or missing references) //IL_1c09: Unknown result type (might be due to invalid IL or missing references) //IL_1c0e: Unknown result type (might be due to invalid IL or missing references) //IL_1c13: Unknown result type (might be due to invalid IL or missing references) //IL_1c18: Unknown result type (might be due to invalid IL or missing references) //IL_1c37: Unknown result type (might be due to invalid IL or missing references) //IL_1c3c: Unknown result type (might be due to invalid IL or missing references) //IL_1c41: Unknown result type (might be due to invalid IL or missing references) //IL_1c46: Unknown result type (might be due to invalid IL or missing references) //IL_1c65: Unknown result type (might be due to invalid IL or missing references) //IL_1c6a: Unknown result type (might be due to invalid IL or missing references) //IL_1c6f: Unknown result type (might be due to invalid IL or missing references) //IL_1c74: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c98: Unknown result type (might be due to invalid IL or missing references) //IL_1c9d: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1cbc: Unknown result type (might be due to invalid IL or missing references) //IL_1cc1: Unknown result type (might be due to invalid IL or missing references) //IL_1cc6: Unknown result type (might be due to invalid IL or missing references) //IL_1ccb: Unknown result type (might be due to invalid IL or missing references) //IL_1cea: Unknown result type (might be due to invalid IL or missing references) //IL_1cef: Unknown result type (might be due to invalid IL or missing references) //IL_1cf4: Unknown result type (might be due to invalid IL or missing references) //IL_1cf9: Unknown result type (might be due to invalid IL or missing references) //IL_1d18: Unknown result type (might be due to invalid IL or missing references) //IL_1d1d: Unknown result type (might be due to invalid IL or missing references) //IL_1d22: Unknown result type (might be due to invalid IL or missing references) //IL_1d27: Unknown result type (might be due to invalid IL or missing references) //IL_1d46: Unknown result type (might be due to invalid IL or missing references) //IL_1d4b: Unknown result type (might be due to invalid IL or missing references) //IL_1d50: Unknown result type (might be due to invalid IL or missing references) //IL_1d55: Unknown result type (might be due to invalid IL or missing references) //IL_1d74: Unknown result type (might be due to invalid IL or missing references) //IL_1d79: Unknown result type (might be due to invalid IL or missing references) //IL_1d7e: Unknown result type (might be due to invalid IL or missing references) //IL_1d83: Unknown result type (might be due to invalid IL or missing references) //IL_1da2: Unknown result type (might be due to invalid IL or missing references) //IL_1da7: Unknown result type (might be due to invalid IL or missing references) //IL_1dac: Unknown result type (might be due to invalid IL or missing references) //IL_1db1: Unknown result type (might be due to invalid IL or missing references) //IL_1dd0: Unknown result type (might be due to invalid IL or missing references) //IL_1dd5: Unknown result type (might be due to invalid IL or missing references) //IL_1dda: Unknown result type (might be due to invalid IL or missing references) //IL_1ddf: Unknown result type (might be due to invalid IL or missing references) //IL_1dfe: Unknown result type (might be due to invalid IL or missing references) //IL_1e03: Unknown result type (might be due to invalid IL or missing references) //IL_1e08: Unknown result type (might be due to invalid IL or missing references) //IL_1e0d: Unknown result type (might be due to invalid IL or missing references) //IL_1e2c: Unknown result type (might be due to invalid IL or missing references) //IL_1e31: Unknown result type (might be due to invalid IL or missing references) //IL_1e36: Unknown result type (might be due to invalid IL or missing references) //IL_1e3b: Unknown result type (might be due to invalid IL or missing references) //IL_1e5a: Unknown result type (might be due to invalid IL or missing references) //IL_1e5f: Unknown result type (might be due to invalid IL or missing references) //IL_1e64: Unknown result type (might be due to invalid IL or missing references) //IL_1e69: Unknown result type (might be due to invalid IL or missing references) //IL_1e88: Unknown result type (might be due to invalid IL or missing references) //IL_1e8d: Unknown result type (might be due to invalid IL or missing references) //IL_1e92: Unknown result type (might be due to invalid IL or missing references) //IL_1e97: Unknown result type (might be due to invalid IL or missing references) //IL_1ea9: Unknown result type (might be due to invalid IL or missing references) //IL_1ebf: Unknown result type (might be due to invalid IL or missing references) //IL_1ed1: Unknown result type (might be due to invalid IL or missing references) //IL_1eda: Unknown result type (might be due to invalid IL or missing references) //IL_1efe: Unknown result type (might be due to invalid IL or missing references) //IL_1f03: Unknown result type (might be due to invalid IL or missing references) //IL_1f0a: Unknown result type (might be due to invalid IL or missing references) //IL_1f0f: Unknown result type (might be due to invalid IL or missing references) //IL_1f16: Unknown result type (might be due to invalid IL or missing references) //IL_1f1b: Unknown result type (might be due to invalid IL or missing references) //IL_1f23: Unknown result type (might be due to invalid IL or missing references) //IL_1f28: Unknown result type (might be due to invalid IL or missing references) //IL_1f2a: Unknown result type (might be due to invalid IL or missing references) //IL_1f33: Unknown result type (might be due to invalid IL or missing references) //IL_1f3c: Unknown result type (might be due to invalid IL or missing references) //IL_1f60: Unknown result type (might be due to invalid IL or missing references) //IL_1f65: Unknown result type (might be due to invalid IL or missing references) //IL_1f6c: Unknown result type (might be due to invalid IL or missing references) //IL_1f71: Unknown result type (might be due to invalid IL or missing references) //IL_1f78: Unknown result type (might be due to invalid IL or missing references) //IL_1f7d: Unknown result type (might be due to invalid IL or missing references) //IL_1f85: Unknown result type (might be due to invalid IL or missing references) //IL_1f8a: Unknown result type (might be due to invalid IL or missing references) //IL_1f8c: Unknown result type (might be due to invalid IL or missing references) //IL_1f96: Unknown result type (might be due to invalid IL or missing references) //IL_1f98: Unknown result type (might be due to invalid IL or missing references) //IL_1f9d: Unknown result type (might be due to invalid IL or missing references) //IL_1fb9: Unknown result type (might be due to invalid IL or missing references) //IL_1fbe: Unknown result type (might be due to invalid IL or missing references) //IL_1fc3: Unknown result type (might be due to invalid IL or missing references) //IL_1fc8: Unknown result type (might be due to invalid IL or missing references) //IL_1fe7: Unknown result type (might be due to invalid IL or missing references) //IL_1fec: Unknown result type (might be due to invalid IL or missing references) //IL_1ff1: Unknown result type (might be due to invalid IL or missing references) //IL_1ff6: Unknown result type (might be due to invalid IL or missing references) //IL_2015: Unknown result type (might be due to invalid IL or missing references) //IL_201a: Unknown result type (might be due to invalid IL or missing references) //IL_201f: Unknown result type (might be due to invalid IL or missing references) //IL_2024: Unknown result type (might be due to invalid IL or missing references) //IL_2043: Unknown result type (might be due to invalid IL or missing references) //IL_2048: Unknown result type (might be due to invalid IL or missing references) //IL_204d: Unknown result type (might be due to invalid IL or missing references) //IL_2052: Unknown result type (might be due to invalid IL or missing references) //IL_2071: Unknown result type (might be due to invalid IL or missing references) //IL_2076: Unknown result type (might be due to invalid IL or missing references) //IL_207b: Unknown result type (might be due to invalid IL or missing references) //IL_2080: Unknown result type (might be due to invalid IL or missing references) //IL_209f: Unknown result type (might be due to invalid IL or missing references) //IL_20a4: Unknown result type (might be due to invalid IL or missing references) //IL_20a9: Unknown result type (might be due to invalid IL or missing references) //IL_20ae: Unknown result type (might be due to invalid IL or missing references) //IL_20cd: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20d7: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_20fb: Unknown result type (might be due to invalid IL or missing references) //IL_2100: Unknown result type (might be due to invalid IL or missing references) //IL_2105: Unknown result type (might be due to invalid IL or missing references) //IL_210a: Unknown result type (might be due to invalid IL or missing references) //IL_2129: Unknown result type (might be due to invalid IL or missing references) //IL_212e: Unknown result type (might be due to invalid IL or missing references) //IL_2133: Unknown result type (might be due to invalid IL or missing references) //IL_2138: Unknown result type (might be due to invalid IL or missing references) //IL_2157: Unknown result type (might be due to invalid IL or missing references) //IL_215c: Unknown result type (might be due to invalid IL or missing references) //IL_2161: Unknown result type (might be due to invalid IL or missing references) //IL_2166: Unknown result type (might be due to invalid IL or missing references) //IL_2185: Unknown result type (might be due to invalid IL or missing references) //IL_218a: Unknown result type (might be due to invalid IL or missing references) //IL_218f: Unknown result type (might be due to invalid IL or missing references) //IL_2194: Unknown result type (might be due to invalid IL or missing references) //IL_21b3: Unknown result type (might be due to invalid IL or missing references) //IL_21b8: Unknown result type (might be due to invalid IL or missing references) //IL_21bd: 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_21e1: Unknown result type (might be due to invalid IL or missing references) //IL_21e6: Unknown result type (might be due to invalid IL or missing references) //IL_21eb: Unknown result type (might be due to invalid IL or missing references) //IL_21f0: Unknown result type (might be due to invalid IL or missing references) //IL_220f: Unknown result type (might be due to invalid IL or missing references) //IL_2214: Unknown result type (might be due to invalid IL or missing references) //IL_2219: Unknown result type (might be due to invalid IL or missing references) //IL_221e: Unknown result type (might be due to invalid IL or missing references) //IL_223d: Unknown result type (might be due to invalid IL or missing references) //IL_2242: Unknown result type (might be due to invalid IL or missing references) //IL_2247: Unknown result type (might be due to invalid IL or missing references) //IL_224c: Unknown result type (might be due to invalid IL or missing references) //IL_226b: Unknown result type (might be due to invalid IL or missing references) //IL_2270: Unknown result type (might be due to invalid IL or missing references) //IL_2275: Unknown result type (might be due to invalid IL or missing references) //IL_227a: Unknown result type (might be due to invalid IL or missing references) //IL_2299: 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_22a3: Unknown result type (might be due to invalid IL or missing references) //IL_22a8: Unknown result type (might be due to invalid IL or missing references) //IL_22c7: Unknown result type (might be due to invalid IL or missing references) //IL_22cc: Unknown result type (might be due to invalid IL or missing references) //IL_22d1: Unknown result type (might be due to invalid IL or missing references) //IL_22d6: Unknown result type (might be due to invalid IL or missing references) //IL_22f5: Unknown result type (might be due to invalid IL or missing references) //IL_22fa: Unknown result type (might be due to invalid IL or missing references) //IL_22ff: Unknown result type (might be due to invalid IL or missing references) //IL_2304: Unknown result type (might be due to invalid IL or missing references) //IL_231e: Unknown result type (might be due to invalid IL or missing references) //IL_2323: Unknown result type (might be due to invalid IL or missing references) //IL_2328: Unknown result type (might be due to invalid IL or missing references) //IL_232d: Unknown result type (might be due to invalid IL or missing references) //IL_234c: Unknown result type (might be due to invalid IL or missing references) //IL_2351: Unknown result type (might be due to invalid IL or missing references) //IL_2356: Unknown result type (might be due to invalid IL or missing references) //IL_235b: Unknown result type (might be due to invalid IL or missing references) //IL_237a: Unknown result type (might be due to invalid IL or missing references) //IL_237f: Unknown result type (might be due to invalid IL or missing references) //IL_2384: Unknown result type (might be due to invalid IL or missing references) //IL_2389: Unknown result type (might be due to invalid IL or missing references) //IL_23a8: Unknown result type (might be due to invalid IL or missing references) //IL_23ad: Unknown result type (might be due to invalid IL or missing references) //IL_23b2: Unknown result type (might be due to invalid IL or missing references) //IL_23b7: Unknown result type (might be due to invalid IL or missing references) //IL_23d6: Unknown result type (might be due to invalid IL or missing references) //IL_23db: Unknown result type (might be due to invalid IL or missing references) //IL_23e0: Unknown result type (might be due to invalid IL or missing references) //IL_23e5: Unknown result type (might be due to invalid IL or missing references) //IL_2404: Unknown result type (might be due to invalid IL or missing references) //IL_2409: Unknown result type (might be due to invalid IL or missing references) //IL_240e: Unknown result type (might be due to invalid IL or missing references) //IL_2413: Unknown result type (might be due to invalid IL or missing references) //IL_2425: Unknown result type (might be due to invalid IL or missing references) //IL_243b: Unknown result type (might be due to invalid IL or missing references) //IL_244d: Unknown result type (might be due to invalid IL or missing references) //IL_2456: Unknown result type (might be due to invalid IL or missing references) //IL_247a: Unknown result type (might be due to invalid IL or missing references) //IL_247f: Unknown result type (might be due to invalid IL or missing references) //IL_2486: Unknown result type (might be due to invalid IL or missing references) //IL_248b: Unknown result type (might be due to invalid IL or missing references) //IL_2492: Unknown result type (might be due to invalid IL or missing references) //IL_2497: Unknown result type (might be due to invalid IL or missing references) //IL_249f: Unknown result type (might be due to invalid IL or missing references) //IL_24a4: 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_24af: Unknown result type (might be due to invalid IL or missing references) //IL_24b8: Unknown result type (might be due to invalid IL or missing references) //IL_24dc: Unknown result type (might be due to invalid IL or missing references) //IL_24e1: Unknown result type (might be due to invalid IL or missing references) //IL_24e8: Unknown result type (might be due to invalid IL or missing references) //IL_24ed: Unknown result type (might be due to invalid IL or missing references) //IL_24f4: Unknown result type (might be due to invalid IL or missing references) //IL_24f9: Unknown result type (might be due to invalid IL or missing references) //IL_2501: Unknown result type (might be due to invalid IL or missing references) //IL_2506: Unknown result type (might be due to invalid IL or missing references) //IL_2508: Unknown result type (might be due to invalid IL or missing references) //IL_2512: Unknown result type (might be due to invalid IL or missing references) //IL_2514: Unknown result type (might be due to invalid IL or missing references) //IL_2519: Unknown result type (might be due to invalid IL or missing references) //IL_2530: Unknown result type (might be due to invalid IL or missing references) //IL_2535: Unknown result type (might be due to invalid IL or missing references) //IL_253a: Unknown result type (might be due to invalid IL or missing references) //IL_253f: Unknown result type (might be due to invalid IL or missing references) //IL_255e: Unknown result type (might be due to invalid IL or missing references) //IL_2563: Unknown result type (might be due to invalid IL or missing references) //IL_2568: Unknown result type (might be due to invalid IL or missing references) //IL_256d: Unknown result type (might be due to invalid IL or missing references) //IL_258c: Unknown result type (might be due to invalid IL or missing references) //IL_2591: Unknown result type (might be due to invalid IL or missing references) //IL_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_25ad: Unknown result type (might be due to invalid IL or missing references) //IL_25c3: Unknown result type (might be due to invalid IL or missing references) //IL_25d5: Unknown result type (might be due to invalid IL or missing references) //IL_25de: Unknown result type (might be due to invalid IL or missing references) //IL_2602: Unknown result type (might be due to invalid IL or missing references) //IL_2607: 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_261a: Unknown result type (might be due to invalid IL or missing references) //IL_261f: Unknown result type (might be due to invalid IL or missing references) //IL_2627: Unknown result type (might be due to invalid IL or missing references) //IL_262c: Unknown result type (might be due to invalid IL or missing references) //IL_262e: Unknown result type (might be due to invalid IL or missing references) //IL_2637: Unknown result type (might be due to invalid IL or missing references) //IL_2640: Unknown result type (might be due to invalid IL or missing references) //IL_2664: Unknown result type (might be due to invalid IL or missing references) //IL_2669: Unknown result type (might be due to invalid IL or missing references) //IL_2670: Unknown result type (might be due to invalid IL or missing references) //IL_2675: Unknown result type (might be due to invalid IL or missing references) //IL_267c: Unknown result type (might be due to invalid IL or missing references) //IL_2681: Unknown result type (might be due to invalid IL or missing references) //IL_2689: Unknown result type (might be due to invalid IL or missing references) //IL_268e: 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_269a: Unknown result type (might be due to invalid IL or missing references) //IL_269c: Unknown result type (might be due to invalid IL or missing references) //IL_26a1: Unknown result type (might be due to invalid IL or missing references) //IL_26b0: Unknown result type (might be due to invalid IL or missing references) //IL_26c6: Unknown result type (might be due to invalid IL or missing references) //IL_26d8: Unknown result type (might be due to invalid IL or missing references) //IL_26e1: Unknown result type (might be due to invalid IL or missing references) //IL_2705: Unknown result type (might be due to invalid IL or missing references) //IL_270a: Unknown result type (might be due to invalid IL or missing references) //IL_2711: Unknown result type (might be due to invalid IL or missing references) //IL_2716: Unknown result type (might be due to invalid IL or missing references) //IL_271d: Unknown result type (might be due to invalid IL or missing references) //IL_2722: Unknown result type (might be due to invalid IL or missing references) //IL_272a: Unknown result type (might be due to invalid IL or missing references) //IL_272f: Unknown result type (might be due to invalid IL or missing references) //IL_2731: Unknown result type (might be due to invalid IL or missing references) //IL_273a: Unknown result type (might be due to invalid IL or missing references) //IL_2743: Unknown result type (might be due to invalid IL or missing references) //IL_2767: Unknown result type (might be due to invalid IL or missing references) //IL_276c: Unknown result type (might be due to invalid IL or missing references) //IL_2773: Unknown result type (might be due to invalid IL or missing references) //IL_2778: Unknown result type (might be due to invalid IL or missing references) //IL_277f: Unknown result type (might be due to invalid IL or missing references) //IL_2784: Unknown result type (might be due to invalid IL or missing references) //IL_278c: Unknown result type (might be due to invalid IL or missing references) //IL_2791: Unknown result type (might be due to invalid IL or missing references) //IL_2793: Unknown result type (might be due to invalid IL or missing references) //IL_279d: Unknown result type (might be due to invalid IL or missing references) //IL_279f: Unknown result type (might be due to invalid IL or missing references) //IL_27a4: Unknown result type (might be due to invalid IL or missing references) //IL_27c0: Unknown result type (might be due to invalid IL or missing references) //IL_27c5: Unknown result type (might be due to invalid IL or missing references) //IL_27ca: Unknown result type (might be due to invalid IL or missing references) //IL_27cf: 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_281c: Unknown result type (might be due to invalid IL or missing references) //IL_2821: Unknown result type (might be due to invalid IL or missing references) //IL_2826: Unknown result type (might be due to invalid IL or missing references) //IL_282b: Unknown result type (might be due to invalid IL or missing references) //IL_284a: Unknown result type (might be due to invalid IL or missing references) //IL_284f: Unknown result type (might be due to invalid IL or missing references) //IL_2854: Unknown result type (might be due to invalid IL or missing references) //IL_2859: Unknown result type (might be due to invalid IL or missing references) //IL_287d: Unknown result type (might be due to invalid IL or missing references) //IL_2882: Unknown result type (might be due to invalid IL or missing references) //IL_2887: Unknown result type (might be due to invalid IL or missing references) //IL_288c: Unknown result type (might be due to invalid IL or missing references) GameObject bodyPrefab = PyroCore.bodyPrefab; GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = new List(); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Syringe, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySyringeCluster"), childName = "ThighR", localPos = new Vector3(2.77146f, -1.15929f, -0.45128f), localAngles = new Vector3(72.10467f, 138.5806f, 113.0707f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Bear, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBear"), childName = "Chest", localPos = new Vector3(3.54657f, -3.67519f, -2.07267f), localAngles = new Vector3(38.20253f, 326.2767f, 226.8577f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Behemoth, "DisplayBehemoth", "Chest", new Vector3(5.34509f, -2.36253f, -3.76172f), new Vector3(298.9821f, 26.04325f, 233.4191f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "Chest", new Vector3(7.04976f, -4.26886f, -0.76113f), new Vector3(303.2718f, 68.99702f, 182.6456f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Chest", new Vector3(-2.49128f, -2.14932f, 0.05371f), new Vector3(2.72966f, 357.7799f, 155.1082f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(5.32713f, -3.62148f, -1.56564f), new Vector3(26.21583f, 65.56944f, 142.9217f), new Vector3(5f, 5f, 5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FallBoots, "DisplayGravBoots", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealOnCrit, "DisplayScythe", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Clover, "DisplayClover", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Head", new Vector3(-0.00385f, 0.69388f, -0.05922f), new Vector3(316.6957f, 0.78372f, 356.7524f), new Vector3(8.15906f, 8.15906f, 8.15906f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SecondarySkillMagazine, "DisplayDoubleMag", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.UtilitySkillMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayAfterburner"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullcrown", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseflower", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExecuteLowHealthElite, "DisplayGuillotine", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldHeart", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Thorns, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[4] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayRazorwireCoiled"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayRazorwireLeft"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayRazorwireLeftVoidSurvivor"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayRazorwireRight"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FlatHealth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySteakCurved"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySteakFlat"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarPrimaryReplacement, "DisplayBirdEye", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireballsOnHit, "DisplayFireballsOnHit", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LightningStrikeOnHit, "DisplayChargedPerforator", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomDamageZone, "DisplayRandomDamageZone", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSecondaryReplacement, "DisplayBirdClaw", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSpecialReplacement, "DisplayBirdHeart", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RoboBallBuddy, "DisplayEmpathyChip", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ParentEgg, "DisplayParentEgg", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Lightning, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[5] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmLeft"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmLeftVoidSurvivor"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmRight,Bandit2"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmRight,Croco"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmRight"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixLunar, "DisplayEliteLunar,Eye", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoveSpeedOnKill, "DisplayGrappleHook", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealingPotion, "DisplayHealingPotion", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PermanentDebuffOnHit, "DisplayScorpion", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedAndMoveSpeed, "DisplayCoffee", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritDamage, "DisplayLaserSight", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.BearVoid, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBearVoid"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBearVoidSit"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MushroomVoid, "DisplayMushroomVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CloverVoid, "DisplayCloverVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StrengthenBurn, "DisplayGasTank", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RegeneratingScrap, "DisplayRegeneratingScrap", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitVoid, "DisplayTriTipVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlassesVoid, "DisplayGlassesVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCacheVoid, "DisplayKeyVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHitVoid, "DisplayBaubleVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MissileVoid, "DisplayMissileLauncherVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightningVoid, "DisplayUkuleleVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLifeVoid, "DisplayHippoVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazineVoid, "DisplayFuelCellVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeathVoid, "DisplayWillowWispVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FragileDamageBonus, "DisplayDelicateWatch", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.OutOfCombatArmor, "DisplayOddlyShapedOpal", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoreMissile, "DisplayICBM", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ImmuneToDebuff, "DisplayRainCoatBelt", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomEquipmentTrigger, "DisplayBottledChaos", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PrimarySkillShuriken, "DisplayShuriken", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.RandomlyLunar, "DisplayDomino", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHurt, "DisplayRollOfPennies", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "DisplayLunarShoulderNature", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfSpeedDoubleHealth, "DisplayLunarShoulderStone", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FreeChest, "DisplayShippingRequestForm", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ElementalRingVoid, "DisplayVoidRing", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.MinorConstructOnKill, "DisplayDefenseNucleus", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.VoidMegaCrabItem, "DisplayMegaCrabItem", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Molotov, "DisplayMolotov", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.VendingMachine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayVendingMachine"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayVendingMachine2"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BossHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBlunderbuss"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayTricornGhost"), childName = "Head", localPos = Vector3.zero, localAngles = Vector3.zero, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BossHunterConsumed, "DisplayTricornUsed", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GummyClone, "DisplayGummyClone", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.MultiShopCard, "DisplayExecutiveCard", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.EliteVoidEquipment, "DisplayAffixVoid", "Head", Vector3.zero, Vector3.zero, Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Elites.Earth.eliteEquipmentDef, "DisplayEliteMendingAntlers", "Head", Vector3.zero, Vector3.zero, Vector3.one)); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } } public static class PyroSkins { public static Mesh meshPyro; public static void LoadMeshes(AssetBundle assetBundle) { meshPyro = assetBundle.LoadAsset("meshpyro"); } private static MeshReplacement[] CreateMeshReplacements(RendererInfo[] rendererInfos, Mesh bodyMesh) { return SkinsCore.CreateMeshReplacements(rendererInfos, bodyMesh); } public static void RegisterSkins() { //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_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_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_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) LoadMeshes(Assets.mainAssetBundle); GameObject bodyPrefab = PyroCore.bodyPrefab; GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; List list = new List(); RendererInfo[] baseRendererInfos = component.baseRendererInfos; SkinDef item = Skins.CreateSkinDef("DEFAULT_SKIN", LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32((byte)247, (byte)247, (byte)181, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)75, (byte)76, (byte)54, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)56, (byte)44, (byte)39, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)117, (byte)115, (byte)78, byte.MaxValue))), baseRendererInfos, mainSkinnedMeshRenderer, gameObject, null); list.Add(item); val.skins = list.ToArray(); } } public class PyroCore { public static class Skills { public static SkillDef primaryScorch; public static SkillDef secondaryFire; public static SkillDef secondaryAirblast; public static SkillDef utilityHeatJetpack; public static SkillDef specialFlare; public static SkillDef specialFlareScepter; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__20_0; internal void b__20_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UPyroBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animPyroEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } } public static GameObject bodyPrefab; public static BodyIndex bodyIndex; public static SurvivorDef survivorDef; public PyroCore() { Setup(); } private void Setup() { //IL_0056: Unknown result type (might be due to invalid IL or missing references) bodyPrefab = CreatePyroPrefab(); ItemAPI.DoNotAutoIDRSFor(bodyPrefab); RegisterStates(); SetUpSkills(); ContentManager.onContentPacksAssigned += LateSetup; PyroSkins.RegisterSkins(); CreateDoppelganger(); survivorDef = Prefabs.RegisterNewSurvivor(bodyPrefab, PrefabCore.CreateDisplayPrefab("PyroDisplay", bodyPrefab), Color.red, "SS2UPYRO", 40.3f); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(SetBodyIndex)); if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } NetworkSoundEventDef initialImpactSound = Assets.CreateNetworkSoundEventDef("Play_item_proc_behemoth"); BuildFlaregunProjectile(initialImpactSound); BuildFlaregunScepterProjectile(initialImpactSound); BuildSuppressiveFireProjectile(); Airblast.reflectSound = Assets.CreateNetworkSoundEventDef("Play_captain_drone_zap"); } private void LateSetup(ReadOnlyArray obj) { } private void BuildSuppressiveFireProjectile() { //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_003f: 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_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_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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00df: 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_010f: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_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_0161: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/Fireball.prefab").WaitForCompletion(), "SS2UPyroSuppressiveFireProjectile", true); Prefabs.projectilePrefabs.Add(val); Object.Destroy((Object)(object)val.GetComponent()); Transform transform = val.transform; transform.localScale *= 2f; GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/FireballGhost.prefab").WaitForCompletion(), "SS2UPyroSuppressiveFireGhost", false); Transform transform2 = val2.transform; transform2.localScale *= 0.5f; ProjectileController component = val.GetComponent(); component.ghostPrefab = val2; ProjectileSimple component2 = val.GetComponent(); component2.desiredForwardSpeed = 100f; component2.lifetime = 0.5f; ProjectileImpactExplosion val3 = val.AddComponent(); ((ProjectileExplosion)val3).explosionEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/OmniExplosionVFXQuick.prefab").WaitForCompletion(); ((ProjectileExplosion)val3).blastAttackerFiltering = (AttackerFiltering)2; ((ProjectileExplosion)val3).blastDamageCoefficient = 1f; ((ProjectileExplosion)val3).blastProcCoefficient = 0.7f; ((ProjectileExplosion)val3).blastRadius = 4f; ((ProjectileExplosion)val3).bonusBlastForce = Vector3.zero; ((ProjectileExplosion)val3).canRejectForce = true; val3.destroyOnEnemy = true; val3.destroyOnWorld = true; ((ProjectileExplosion)val3).falloffModel = (FalloffModel)0; val3.lifetime = 0.5f; ProjectileDamage component3 = val.GetComponent(); component3.damageType = DamageTypeCombo.op_Implicit((DamageType)128); component3.damageType.damageSource = (DamageSource)2; SuppressiveFire.projectilePrefab = val; } private void BuildFlaregunProjectile(NetworkSoundEventDef initialImpactSound) { //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_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_0056: 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_00e0: 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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/Fireball.prefab").WaitForCompletion(), "SS2UPyroFlareProjectile", true); Prefabs.projectilePrefabs.Add(val); Object.Destroy((Object)(object)val.GetComponent()); ProjectileDamage component = val.GetComponent(); component.damageType = DamageTypeCombo.op_Implicit((DamageType)128); component.damageType.damageSource = (DamageSource)8; ProjectileStickOnImpact val2 = val.AddComponent(); val2.ignoreCharacters = false; val2.ignoreWorld = false; ProjectileSimple component2 = val.GetComponent(); component2.lifetime = 10f; component2.desiredForwardSpeed = 100f; ProjectileController component3 = val.GetComponent(); component3.allowPrediction = false; Rigidbody component4 = ((Component)component3).GetComponent(); component4.useGravity = true; AntiGravityForce val3 = val.AddComponent(); val3.antiGravityCoefficient = 0.7f; val3.rb = component4; FlareProjectileController flareProjectileController = val.AddComponent(); flareProjectileController.initialEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/OmniExplosionVFXQuick.prefab").WaitForCompletion(); flareProjectileController.explosionEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/IgniteOnKill/IgniteExplosionVFX.prefab").WaitForCompletion(); flareProjectileController.explosionSound = initialImpactSound; Flaregun.projectilePrefab = val; } private void BuildFlaregunScepterProjectile(NetworkSoundEventDef initialImpactSound) { //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_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_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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/Fireball.prefab").WaitForCompletion(), "SS2UPyroFlareScepter", true); Prefabs.projectilePrefabs.Add(val); Object.Destroy((Object)(object)val.GetComponent()); ProjectileDamage component = val.GetComponent(); component.damageType = DamageTypeCombo.op_Implicit((DamageType)128); ProjectileStickOnImpact val2 = val.AddComponent(); val2.ignoreCharacters = false; val2.ignoreWorld = false; ProjectileSimple component2 = val.GetComponent(); component2.lifetime = 10f; component2.desiredForwardSpeed = 100f; ProjectileController component3 = val.GetComponent(); component3.allowPrediction = false; Rigidbody component4 = ((Component)component3).GetComponent(); component4.useGravity = true; AntiGravityForce val3 = val.AddComponent(); val3.antiGravityCoefficient = 0.7f; val3.rb = component4; FlareProjectileController flareProjectileController = val.AddComponent(); flareProjectileController.explosionEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/IgniteOnKill/IgniteExplosionVFX.prefab").WaitForCompletion(); flareProjectileController.explosionSound = initialImpactSound; flareProjectileController.explosionRadius = 18f; FlaregunScepter.scepterProjectilePrefab = val; } private void RegisterStates() { States.AddState(typeof(FireFlamethrower)); States.AddState(typeof(SuppressiveFire)); States.AddState(typeof(Airblast)); States.AddState(typeof(HeatJetpack)); States.AddState(typeof(Flaregun)); States.AddState(typeof(FlaregunScepter)); } private void SetUpSkills() { GenericSkill[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SkillLocator component = bodyPrefab.GetComponent(); SetUpPrimaries(component); SetUpSecondaries(component); SetUpUtilities(component); SetUpSpecials(component); } private void SetUpPrimaries(SkillLocator skillLocator) { //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_0086: 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_00e4: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(FireFlamethrower)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UPYRO_PRIMARY_NAME"; val.skillNameToken = "SS2UPYRO_PRIMARY_NAME"; val.skillDescriptionToken = "SS2UPYRO_PRIMARY_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("pyroSkill1"); val.baseMaxStock = 1; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; Starstorm2Unofficial.Modules.Skills.FixSkillName(val); Starstorm2Unofficial.Modules.Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); Skills.primaryScorch = val; skillLocator.primary = Utils.RegisterSkillsToFamily(bodyPrefab, val2); } private void SetUpSecondaries(SkillLocator skillLocator) { //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_0086: 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_00f9: 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_016d: 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_01de: 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_01e6: Unknown result type (might be due to invalid IL or missing references) HeatSkillDef heatSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)heatSkillDef).activationState = new SerializableEntityStateType(typeof(Airblast)); ((SkillDef)heatSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)heatSkillDef).skillName = "SS2UPYRO_SECONDARY_NAME"; ((SkillDef)heatSkillDef).skillNameToken = "SS2UPYRO_SECONDARY_NAME"; ((SkillDef)heatSkillDef).skillDescriptionToken = "SS2UPYRO_SECONDARY_DESCRIPTION"; ((SkillDef)heatSkillDef).icon = Assets.mainAssetBundle.LoadAsset("pyroSkill2"); ((SkillDef)heatSkillDef).baseMaxStock = 1; ((SkillDef)heatSkillDef).baseRechargeInterval = 0f; ((SkillDef)heatSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)heatSkillDef).canceledFromSprinting = false; ((SkillDef)heatSkillDef).fullRestockOnAssign = true; ((SkillDef)heatSkillDef).interruptPriority = (InterruptPriority)1; ((SkillDef)heatSkillDef).isCombatSkill = false; ((SkillDef)heatSkillDef).mustKeyPress = false; ((SkillDef)heatSkillDef).cancelSprintingOnActivation = false; ((SkillDef)heatSkillDef).forceSprintDuringState = false; ((SkillDef)heatSkillDef).rechargeStock = 1; ((SkillDef)heatSkillDef).requiredStock = 1; ((SkillDef)heatSkillDef).stockToConsume = 1; heatSkillDef.baseHeatRequirement = 0.25f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)heatSkillDef); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)heatSkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)heatSkillDef); Skills.secondaryAirblast = (SkillDef)(object)heatSkillDef; HeatSkillDef heatSkillDef2 = ScriptableObject.CreateInstance(); ((SkillDef)heatSkillDef2).activationState = new SerializableEntityStateType(typeof(SuppressiveFire)); ((SkillDef)heatSkillDef2).activationStateMachineName = "Weapon"; ((SkillDef)heatSkillDef2).skillName = "SS2UPYRO_SECONDARY_ALT_NAME"; ((SkillDef)heatSkillDef2).skillNameToken = "SS2UPYRO_SECONDARY_ALT_NAME"; ((SkillDef)heatSkillDef2).skillDescriptionToken = "SS2UPYRO_SECONDARY_ALT_DESCRIPTION"; ((SkillDef)heatSkillDef2).icon = Assets.mainAssetBundle.LoadAsset("pyroSkill2"); ((SkillDef)heatSkillDef2).baseMaxStock = 1; ((SkillDef)heatSkillDef2).baseRechargeInterval = 0f; ((SkillDef)heatSkillDef2).beginSkillCooldownOnSkillEnd = true; ((SkillDef)heatSkillDef2).canceledFromSprinting = false; ((SkillDef)heatSkillDef2).fullRestockOnAssign = true; ((SkillDef)heatSkillDef2).interruptPriority = (InterruptPriority)0; ((SkillDef)heatSkillDef2).isCombatSkill = true; ((SkillDef)heatSkillDef2).mustKeyPress = false; ((SkillDef)heatSkillDef2).cancelSprintingOnActivation = true; ((SkillDef)heatSkillDef2).forceSprintDuringState = false; ((SkillDef)heatSkillDef2).rechargeStock = 1; ((SkillDef)heatSkillDef2).requiredStock = 1; ((SkillDef)heatSkillDef2).stockToConsume = 1; heatSkillDef2.baseHeatRequirement = 0.08f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)heatSkillDef2); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)heatSkillDef2); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)heatSkillDef2); Skills.secondaryFire = (SkillDef)(object)heatSkillDef2; skillLocator.secondary = Utils.RegisterSkillsToFamily(bodyPrefab, val2, val); } private void SetUpUtilities(SkillLocator skillLocator) { //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_0086: 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_00f6: 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) HeatSkillDef heatSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)heatSkillDef).activationState = new SerializableEntityStateType(typeof(HeatJetpack)); ((SkillDef)heatSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)heatSkillDef).skillName = "SS2UPYRO_UTILITY_NAME"; ((SkillDef)heatSkillDef).skillNameToken = "SS2UPYRO_UTILITY_NAME"; ((SkillDef)heatSkillDef).skillDescriptionToken = "SS2UPYRO_UTILITY_DESCRIPTION"; ((SkillDef)heatSkillDef).icon = Assets.mainAssetBundle.LoadAsset("pyroSkill3"); ((SkillDef)heatSkillDef).baseMaxStock = 1; ((SkillDef)heatSkillDef).baseRechargeInterval = 5f; ((SkillDef)heatSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)heatSkillDef).canceledFromSprinting = false; ((SkillDef)heatSkillDef).fullRestockOnAssign = true; ((SkillDef)heatSkillDef).interruptPriority = (InterruptPriority)2; ((SkillDef)heatSkillDef).isCombatSkill = false; ((SkillDef)heatSkillDef).mustKeyPress = true; ((SkillDef)heatSkillDef).cancelSprintingOnActivation = false; ((SkillDef)heatSkillDef).forceSprintDuringState = true; ((SkillDef)heatSkillDef).rechargeStock = 1; ((SkillDef)heatSkillDef).requiredStock = 1; ((SkillDef)heatSkillDef).stockToConsume = 1; heatSkillDef.baseHeatRequirement = 0.4f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)heatSkillDef); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)heatSkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)heatSkillDef); Skills.utilityHeatJetpack = (SkillDef)(object)heatSkillDef; skillLocator.utility = Utils.RegisterSkillsToFamily(bodyPrefab, val); } private void SetUpSpecials(SkillLocator skillLocator) { //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_0086: 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_00f6: 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) HeatSkillDef heatSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)heatSkillDef).activationState = new SerializableEntityStateType(typeof(Flaregun)); ((SkillDef)heatSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)heatSkillDef).skillName = "SS2UPYRO_SPECIAL_NAME"; ((SkillDef)heatSkillDef).skillNameToken = "SS2UPYRO_SPECIAL_NAME"; ((SkillDef)heatSkillDef).skillDescriptionToken = "SS2UPYRO_SPECIAL_DESCRIPTION"; ((SkillDef)heatSkillDef).icon = Assets.mainAssetBundle.LoadAsset("pyroSkill4"); ((SkillDef)heatSkillDef).baseMaxStock = 1; ((SkillDef)heatSkillDef).baseRechargeInterval = 7f; ((SkillDef)heatSkillDef).beginSkillCooldownOnSkillEnd = false; ((SkillDef)heatSkillDef).canceledFromSprinting = false; ((SkillDef)heatSkillDef).fullRestockOnAssign = true; ((SkillDef)heatSkillDef).interruptPriority = (InterruptPriority)1; ((SkillDef)heatSkillDef).isCombatSkill = true; ((SkillDef)heatSkillDef).mustKeyPress = false; ((SkillDef)heatSkillDef).cancelSprintingOnActivation = true; ((SkillDef)heatSkillDef).forceSprintDuringState = false; ((SkillDef)heatSkillDef).rechargeStock = 1; ((SkillDef)heatSkillDef).requiredStock = 1; ((SkillDef)heatSkillDef).stockToConsume = 1; heatSkillDef.baseHeatRequirement = 0.125f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)heatSkillDef); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)heatSkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)heatSkillDef); Skills.specialFlare = (SkillDef)(object)heatSkillDef; skillLocator.special = Utils.RegisterSkillsToFamily(bodyPrefab, val); SetUpScepters(skillLocator); } private void SetUpScepters(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) HeatSkillDef heatSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)heatSkillDef).activationState = new SerializableEntityStateType(typeof(Flaregun)); ((SkillDef)heatSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)heatSkillDef).skillName = "SS2UPYRO_SPECIAL_NAME"; ((SkillDef)heatSkillDef).skillNameToken = "SS2UPYRO_SPECIAL_NAME"; ((SkillDef)heatSkillDef).skillDescriptionToken = "SS2UPYRO_SPECIAL_DESCRIPTION"; ((SkillDef)heatSkillDef).icon = Assets.mainAssetBundle.LoadAsset("pyroSkill4_scepter"); ((SkillDef)heatSkillDef).baseMaxStock = 1; ((SkillDef)heatSkillDef).baseRechargeInterval = 7f; ((SkillDef)heatSkillDef).beginSkillCooldownOnSkillEnd = false; ((SkillDef)heatSkillDef).canceledFromSprinting = false; ((SkillDef)heatSkillDef).fullRestockOnAssign = true; ((SkillDef)heatSkillDef).interruptPriority = (InterruptPriority)1; ((SkillDef)heatSkillDef).isCombatSkill = true; ((SkillDef)heatSkillDef).mustKeyPress = false; ((SkillDef)heatSkillDef).cancelSprintingOnActivation = true; ((SkillDef)heatSkillDef).forceSprintDuringState = false; ((SkillDef)heatSkillDef).rechargeStock = 1; ((SkillDef)heatSkillDef).requiredStock = 1; ((SkillDef)heatSkillDef).stockToConsume = 1; heatSkillDef.baseHeatRequirement = 0.0625f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)heatSkillDef); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)heatSkillDef); Skills.specialFlareScepter = (SkillDef)(object)heatSkillDef; if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill(Skills.specialFlareScepter, "SS2UPyroBody", Skills.specialFlare); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill(Skills.specialFlareScepter, "SS2UPyroBody", (SkillSlot)3, Skills.specialFlare); } private void SetBodyIndex() { //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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) bodyIndex = BodyCatalog.FindBodyIndex("SS2UPyroBody"); if ((int)bodyIndex != -1) { IgnoreSprintCrosshair.bodies.Add(bodyIndex); } ModCompat.SurvariantsCompat.SetVariant(survivorDef, "PyroBody"); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__20_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UPyroBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animPyroEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__20_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } internal static GameObject CreatePyroPrefab() { //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) GameObject crosshair = BuildCrosshair(); GameObject val = PrefabCore.CreatePrefab("SS2UPyroBody", "mdlPyro", new BodyInfo { armor = 0f, armorGrowth = 0f, bodyName = "SS2UPyroBody", bodyNameToken = "SS2UPYRO_NAME", characterPortrait = (Texture)(object)Assets.mainAssetBundle.LoadAsset("texPortraitPyro"), bodyColor = new Color32((byte)215, (byte)131, (byte)38, byte.MaxValue), crosshair = crosshair, damage = 12f, healthGrowth = 33f, healthRegen = 1f, jumpCount = 1, maxHealth = 110f, subtitleNameToken = "SS2UPYRO_SUBTITLE", podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), acceleration = 80f }); val.AddComponent(); val.AddComponent(); PrefabCore.SetupCharacterModel(val, new CustomRendererInfo[1] { new CustomRendererInfo { childName = "Model", material = Assets.LoadMaterialFromAssetBundle("matPyro") } }, 0); return val; } private static GameObject BuildCrosshair() { GameObject val = PrefabAPI.InstantiateClone(Assets.mainAssetBundle.LoadAsset("crosshairPyro.prefab"), "SS2UPyroCrosshair", false); val.AddComponent(); CrosshairController val2 = val.AddComponent(); val2.maxSpreadAngle = 0f; val.AddComponent(); return val; } internal static void CreateDoppelganger() { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SS2UPyroMonsterMaster", true); val.GetComponent().bodyPrefab = bodyPrefab; Prefabs.RemoveAISkillDrivers(val); Prefabs.AddAISkillDriver(val, "Flare", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "Jetpack", (SkillSlot)2, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 24f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, 1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "W+M1", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 24f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, 3f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.masterPrefabs.Add(val); } } } namespace Starstorm2Unofficial.Survivors.Pyro.Components { public class FlamethrowerController : MonoBehaviour { public static GameObject flamethrowerPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Drones/DroneFlamethrowerEffect.prefab").WaitForCompletion(); public static float effectRefreshDuration = 1.8f; private Animator animator; private ModelLocator modelLocator; private CharacterBody characterBody; private Transform muzzleTransform; private float effectRefreshTimer; private GameObject flamethrowerInstance; private float flamethrowerTimer; private bool firing; private int shotCount = 0; private int shotsToBurn = 2; public bool CheckBurn() { bool result = false; shotCount++; if (shotCount >= shotsToBurn) { shotCount = 0; result = true; } return result; } private void Awake() { characterBody = ((Component)this).GetComponent(); effectRefreshTimer = 0f; flamethrowerTimer = 0f; flamethrowerInstance = null; firing = false; } private void Start() { modelLocator = ((Component)this).GetComponent(); if (!Object.op_Implicit((Object)(object)modelLocator) || !Object.op_Implicit((Object)(object)modelLocator.modelTransform)) { return; } GameObject gameObject = ((Component)modelLocator.modelTransform).gameObject; if (Object.op_Implicit((Object)(object)gameObject)) { animator = gameObject.GetComponent(); ChildLocator component = gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { muzzleTransform = component.FindChild("Muzzle"); } } } private void FixedUpdate() { if (firing) { if (flamethrowerTimer > 0f) { flamethrowerTimer -= Time.fixedDeltaTime; RefreshFlamethrowerEffect(); return; } Util.PlaySound("Play_mage_R_end", ((Component)this).gameObject); DestroyFlamethrowerInstsance(); firing = false; StopAnim(); } } private void Update() { UpdateFlamethrowerEffect(); } public void FireFlamethrower(float duration) { if (flamethrowerTimer < duration) { flamethrowerTimer = duration; } if (!firing) { firing = true; Util.PlaySound("Play_mage_R_start", ((Component)this).gameObject); StartAnim(); } CreateFlamethrowerInstance(); } private void StartAnim() { PlayAnimation(animator, "FullBody, Override", "Firing", "", 0.5f); } private void StopAnim() { PlayAnimation(animator, "FullBody, Override", "BufferEmpty", "", 0.5f); } private void PlayAnimation(Animator modelAnimator, string layerName, string animationStateName, string playbackRateParam, float duration) { //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) if (Object.op_Implicit((Object)(object)animator)) { modelAnimator.speed = 1f; modelAnimator.Update(0f); int layerIndex = modelAnimator.GetLayerIndex(layerName); if (layerIndex >= 0) { modelAnimator.SetFloat(playbackRateParam, 1f); modelAnimator.PlayInFixedTime(animationStateName, layerIndex, 0f); modelAnimator.Update(0f); AnimatorStateInfo currentAnimatorStateInfo = modelAnimator.GetCurrentAnimatorStateInfo(layerIndex); float length = ((AnimatorStateInfo)(ref currentAnimatorStateInfo)).length; modelAnimator.SetFloat(playbackRateParam, length / duration); } } } private void CreateFlamethrowerInstance() { if (Object.op_Implicit((Object)(object)flamethrowerInstance)) { return; } effectRefreshTimer = effectRefreshDuration; if (Object.op_Implicit((Object)(object)muzzleTransform)) { flamethrowerInstance = Object.Instantiate(flamethrowerPrefab); if (Object.op_Implicit((Object)(object)flamethrowerInstance) && Object.op_Implicit((Object)(object)flamethrowerInstance.transform)) { ((Component)flamethrowerInstance.transform).GetComponent().newDuration = 2f; } UpdateFlamethrowerEffect(); } } private void DestroyFlamethrowerInstsance() { if (Object.op_Implicit((Object)(object)flamethrowerInstance)) { Object.Destroy((Object)(object)flamethrowerInstance); flamethrowerInstance = null; } } private void UpdateFlamethrowerEffect() { //IL_0031: 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) if (Object.op_Implicit((Object)(object)flamethrowerInstance)) { if (Object.op_Implicit((Object)(object)muzzleTransform)) { flamethrowerInstance.transform.position = muzzleTransform.position; } if (Object.op_Implicit((Object)(object)characterBody) && Object.op_Implicit((Object)(object)characterBody.inputBank)) { Transform transform = flamethrowerInstance.transform; Ray aimRay = characterBody.inputBank.GetAimRay(); transform.forward = ((Ray)(ref aimRay)).direction; } } } private void RefreshFlamethrowerEffect() { effectRefreshTimer -= Time.fixedDeltaTime; if (effectRefreshTimer <= 0f) { DestroyFlamethrowerInstsance(); CreateFlamethrowerInstance(); } } private void OnDestroy() { DestroyFlamethrowerInstsance(); Util.PlaySound("Play_mage_R_end", ((Component)this).gameObject); } } public class HeatController : NetworkBehaviour { public static float baseHeatDecayDuration; public static float heatDecayDelay; public bool pauseDecay; private float heatPercent; private float heatDecayStopwatch; private CharacterBody characterBody; private static int kRpcRpcAddHeatServer; private void Awake() { characterBody = ((Component)this).GetComponent(); heatPercent = 0f; heatDecayStopwatch = 0f; pauseDecay = false; } private void FixedUpdate() { if (!(heatPercent > 0f)) { return; } if (heatDecayStopwatch < heatDecayDelay) { heatDecayStopwatch += Time.fixedDeltaTime; } else if (!pauseDecay) { heatPercent -= Time.fixedDeltaTime / baseHeatDecayDuration; if (heatPercent < 0f) { heatPercent = 0f; } } } public bool IsHighHeat() { return heatPercent > 0.75f; } public float GetHeatPercent() { return heatPercent; } [ClientRpc] public void RpcAddHeatServer(float heat) { AddHeatAuthority(heat); } public void AddHeatAuthority(float heat) { heatPercent += heat; if (heatPercent > 1f) { heatPercent = 1f; } heatDecayStopwatch = 0f; } public void ConsumeHeat(float heat, int stocks) { float num = 1f / Mathf.Max(1f, 0.5f + 0.5f * (float)stocks); heatPercent -= heat * num; if (heatPercent <= 0f) { heatPercent = 0f; } heatDecayStopwatch = 0f; } public void ConsumeHeat(float heat) { ConsumeHeat(heat, 1); } static HeatController() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown baseHeatDecayDuration = 20f; heatDecayDelay = 1f; kRpcRpcAddHeatServer = -1198874350; NetworkBehaviour.RegisterRpcDelegate(typeof(HeatController), kRpcRpcAddHeatServer, new CmdDelegate(InvokeRpcRpcAddHeatServer)); NetworkCRC.RegisterBehaviour("HeatController", 0); } private void UNetVersion() { } protected static void InvokeRpcRpcAddHeatServer(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcAddHeatServer called on server."); } else { ((HeatController)(object)obj).RpcAddHeatServer(reader.ReadSingle()); } } public void CallRpcAddHeatServer(float heat) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcAddHeatServer called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcAddHeatServer); val.Write(((Component)this).GetComponent().netId); val.Write(heat); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcAddHeatServer"); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } } namespace Starstorm2Unofficial.Survivors.Pyro.Components.Projectile { public class FlareProjectileController : MonoBehaviour, IProjectileImpactBehavior { public GameObject initialEffectPrefab; public GameObject explosionEffectPrefab; public float initialDamageCoefficient = 1f; public float initialRadius = 2.4f; public NetworkSoundEventDef explosionSound = null; public float explosionDamageCoefficient = 0.5f; public float explosionRadius = 12f; public float delayBetweenExplosions = 0.3f; private int timesExploded; private int totalExplosionCount; private float explosionStopwatch; private bool hasStarted; private ProjectileDamage projectileDamage; private ProjectileController projectileController; private TeamFilter teamFilter; public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //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) //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_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_00c5: 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_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_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_00f3: 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_0101: 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_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_0119: 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_0123: 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_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //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 //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0186: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Expected O, but got Unknown //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Unknown result type (might be due to invalid IL or missing references) if (hasStarted || !NetworkServer.active) { return; } timesExploded = 0; hasStarted = true; explosionStopwatch = 0f; if (Object.op_Implicit((Object)(object)projectileController) && Object.op_Implicit((Object)(object)teamFilter) && Object.op_Implicit((Object)(object)projectileDamage)) { ProjectileSimple component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.lifetime = 1000000f; } BlastAttack val = new BlastAttack { attacker = projectileController.owner, inflictor = ((Component)this).gameObject, attackerFiltering = (AttackerFiltering)0, baseDamage = projectileDamage.damage * initialDamageCoefficient, baseForce = 0f, bonusForce = Vector3.zero, canRejectForce = true, crit = projectileDamage.crit, damageColorIndex = (DamageColorIndex)0, damageType = projectileDamage.damageType, falloffModel = (FalloffModel)0, position = ((Component)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = initialRadius, teamIndex = teamFilter.teamIndex }; if (Object.op_Implicit((Object)(object)initialEffectPrefab)) { EffectManager.SpawnEffect(initialEffectPrefab, new EffectData { origin = ((Component)this).transform.position, scale = val.radius }, true); } if ((Object)(object)explosionSound != (Object)null) { EffectManager.SimpleSoundEffect(explosionSound.index, ((Component)this).transform.position, true); } val.Fire(); } } private void Awake() { totalExplosionCount = 1; explosionStopwatch = 0f; timesExploded = 0; hasStarted = false; teamFilter = ((Component)this).GetComponent(); projectileController = ((Component)this).GetComponent(); projectileDamage = ((Component)this).GetComponent(); } private void Start() { if (Object.op_Implicit((Object)(object)projectileDamage)) { totalExplosionCount = Mathf.Max(1, Mathf.RoundToInt(projectileDamage.force)); projectileDamage.force = 0f; } } private void FixedUpdate() { if (NetworkServer.active && hasStarted) { explosionStopwatch += Time.fixedDeltaTime; if (explosionStopwatch >= delayBetweenExplosions) { ExplodeServer(); explosionStopwatch -= delayBetweenExplosions; } } } public void ExplodeServer() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_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_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_00a2: 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_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_00b8: 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_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_00d0: 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_00dc: 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_00f3: 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_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Expected O, but got Unknown //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_0126: 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_0143: Expected O, but got Unknown //IL_0172: 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_0165: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)projectileController) && Object.op_Implicit((Object)(object)teamFilter) && Object.op_Implicit((Object)(object)projectileDamage)) { BlastAttack val = new BlastAttack { attacker = projectileController.owner, inflictor = ((Component)this).gameObject, attackerFiltering = (AttackerFiltering)0, baseDamage = projectileDamage.damage * explosionDamageCoefficient, baseForce = 0f, bonusForce = Vector3.zero, canRejectForce = true, crit = projectileDamage.crit, damageColorIndex = (DamageColorIndex)0, damageType = projectileDamage.damageType, falloffModel = (FalloffModel)0, position = ((Component)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 1f, radius = explosionRadius, teamIndex = teamFilter.teamIndex }; if (Object.op_Implicit((Object)(object)explosionEffectPrefab)) { EffectManager.SpawnEffect(explosionEffectPrefab, new EffectData { origin = ((Component)this).transform.position, scale = val.radius }, true); } if ((Object)(object)explosionSound != (Object)null) { EffectManager.SimpleSoundEffect(explosionSound.index, ((Component)this).transform.position, true); } val.Fire(); } timesExploded++; if (timesExploded >= totalExplosionCount) { Object.Destroy((Object)(object)((Component)this).gameObject); } } } } namespace Starstorm2Unofficial.Survivors.Pyro.Components.Crosshair { public class PyroCrosshairController : MonoBehaviour { public static Color32 colorLowHeat = new Color32((byte)232, (byte)228, (byte)117, byte.MaxValue); public static Color colorHighHeat = Color32.op_Implicit(new Color32((byte)209, (byte)86, (byte)33, byte.MaxValue)); private HudElement hudElement; private HeatController heatController; private Image heatBar; private CharacterBody savedCharacterBody; private void Awake() { hudElement = ((Component)this).GetComponent(); heatBar = ((Component)this).GetComponent(); } private void FixedUpdate() { //IL_00f1: 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) if (!Object.op_Implicit((Object)(object)hudElement)) { return; } bool flag = false; if ((Object)(object)savedCharacterBody != (Object)(object)hudElement.targetCharacterBody) { savedCharacterBody = hudElement.targetCharacterBody; flag = true; } if (flag) { heatController = null; } if (!Object.op_Implicit((Object)(object)heatController)) { if (Object.op_Implicit((Object)(object)savedCharacterBody)) { heatController = ((Component)savedCharacterBody).GetComponent(); } } else if (Object.op_Implicit((Object)(object)heatBar)) { float heatPercent = heatController.GetHeatPercent(); float fillAmount = Mathf.Lerp(0f, 1f, heatPercent); heatBar.fillAmount = fillAmount; ((Graphic)heatBar).color = (heatController.IsHighHeat() ? colorHighHeat : Color32.op_Implicit(colorLowHeat)); } } } } namespace Starstorm2Unofficial.Survivors.Nucleator { internal class NucleatorCore : SurvivorBase { public static class SkillDefs { public static SkillDef Primary; public static SkillDef Secondary; public static SkillDef Utility; public static SkillDef Special; public static SkillDef SpecialScepter; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__67_0; internal void b__67_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UNucleatorBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animNucleatorEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } } public static BodyIndex bodyIndex; internal static Material nucleatorMat = Assets.LoadMaterialFromAssetBundle("matNucleator"); private static UnlockableDef masterySkinUnlockableDef; private static UnlockableDef grandMasterySkinUnlockableDef; internal override string bodyName { get; set; } = "SS2UNucleator"; internal override string modelName { get; set; } = "mdlNucleator"; internal override string displayName { get; set; } = "NucleatorDisplay"; internal override GameObject bodyPrefab { get; set; } internal override GameObject displayPrefab { get; set; } internal override float sortPosition { get; set; } = 40.4f; internal override StarstormBodyInfo bodyInfo { get; set; } = new StarstormBodyInfo { armor = 20f, bodyName = "SS2UNucleatorBody", bodyNameToken = "SS2UNUCLEATOR_NAME", bodyColor = new Color(41f / 51f, 41f / 85f, 43f / 51f), characterPortrait = Assets.LoadCharacterIcon("Nucleator"), crosshair = Assets.LoadCrosshair("ToolbotGrenadeLauncherCrosshair"), damage = 12f, healthGrowth = 48f, healthRegen = 2.5f, jumpCount = 1, maxHealth = 160f, subtitleNameToken = "SS2UNUCLEATOR_SUBTITLE", podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod") }; internal override int mainRendererIndex { get; set; } = 0; internal override CustomRendererInfo[] customRendererInfos { get; set; } = new CustomRendererInfo[1] { new CustomRendererInfo { childName = "Model", material = nucleatorMat } }; internal override Type characterMainState { get; set; } = typeof(GenericCharacterMain); internal override ItemDisplayRuleSet itemDisplayRuleSet { get; set; } internal override List itemDisplayRules { get; set; } internal override UnlockableDef characterUnlockableDef { get; set; } internal static GameObject chargeCrosshair { get; set; } internal static GameObject primaryProjectile { get; set; } internal override void InitializeCharacter() { //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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) //IL_0132: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014d: 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) //IL_0172: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) base.InitializeCharacter(); ItemAPI.DoNotAutoIDRSFor(bodyPrefab); EntityStateMachine val = EntityStateMachine.FindByCustomName(bodyPrefab, "Body"); val.mainStateType = new SerializableEntityStateType(typeof(NucleatorMain)); NetworkStateMachine component = bodyPrefab.GetComponent(); EntityStateMachine val2 = bodyPrefab.AddComponent(); val2.customName = "SpecialBuff"; val2.initialStateType = new SerializableEntityStateType(typeof(Idle)); val2.mainStateType = new SerializableEntityStateType(typeof(Idle)); component.stateMachines = component.stateMachines.Append(val2).ToArray(); CharacterBody component2 = bodyPrefab.GetComponent(); component2._defaultCrosshairPrefab = BuildCrosshair(); CharacterMotor component3 = bodyPrefab.GetComponent(); component3.mass = 300f; bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); CameraTargetParams component4 = bodyPrefab.GetComponent(); CharacterCameraParams val3 = ScriptableObject.CreateInstance(); val3.data.minPitch = BlendableFloat.op_Implicit(-70f); val3.data.maxPitch = BlendableFloat.op_Implicit(70f); val3.data.wallCushion = BlendableFloat.op_Implicit(0.1f); val3.data.pivotVerticalOffset = BlendableFloat.op_Implicit(1.7f); val3.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 1.2f, -12f)); component4.cameraParams = val3; FireIrradiate.projectilePrefab = NucleatorProjectiles.BuildPrimary(); FireIrradiateOvercharge.projectilePrefab = NucleatorProjectiles.BuildPrimaryOvercharge(); FireSecondary.coneEffectPrefab = BuildSecondaryVFX("SS2UNucleatorSecondaryEffect", new Color(0.95686275f, 81f / 85f, 61f / 85f)); FireSecondaryOvercharge.overchargeEffectPrefab = BuildSecondaryVFX("SS2UNucleatorSecondaryOverchargeEffect", new Color(1f, 0f, 1f)); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } } private GameObject BuildSecondaryVFX(string name, Color color) { //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_0043: 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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoLeapExplosion.prefab").WaitForCompletion(), name, false); Object.Destroy((Object)(object)val.GetComponent()); EffectComponent component = val.GetComponent(); component.soundName = ""; VFXAttributes component2 = val.GetComponent(); component2.vfxPriority = (VFXPriority)2; ParticleSystem[] componentsInChildren = val.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { if (((Object)componentsInChildren[i]).name == "AreaIndicator") { Object.Destroy((Object)(object)componentsInChildren[i]); } else { componentsInChildren[i].startColor = color; } } Assets.AddEffect(val); return val; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__67_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UNucleatorBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animNucleatorEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__67_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } internal override void InitializeUnlockables() { } private void RegisterStates() { States.AddState(typeof(NucleatorMain)); States.AddState(typeof(ChargeIrradiate)); States.AddState(typeof(FireIrradiate)); States.AddState(typeof(FireIrradiateOvercharge)); States.AddState(typeof(ChargeSecondary)); States.AddState(typeof(FireSecondary)); States.AddState(typeof(FireSecondaryOvercharge)); States.AddState(typeof(ChargeLeap)); States.AddState(typeof(FireLeap)); States.AddState(typeof(FireLeapOvercharge)); States.AddState(typeof(BuffSelf)); States.AddState(typeof(BuffSelfScepter)); } internal override void InitializeSkills() { RegisterStates(); GenericSkill[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SkillLocator component = bodyPrefab.GetComponent(); component.passiveSkill.enabled = true; component.passiveSkill.icon = Assets.mainAssetBundle.LoadAsset("texNucleatorPassive"); component.passiveSkill.skillNameToken = "SS2UNUCLEATOR_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "SS2UNUCLEATOR_PASSIVE_DESCRIPTION"; SetupPrimaries(component); SetupSecondaries(component); SetupUtilities(component); SetupSpecials(component); } private void SetupPrimaries(SkillLocator skillLocator) { //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_0086: 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_00f1: 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) SteppedSkillDef val = ScriptableObject.CreateInstance(); ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(ChargeIrradiate)); ((SkillDef)val).activationStateMachineName = "Weapon"; ((SkillDef)val).skillName = "SS2UNUCLEATOR_PRIMARY_NAME"; ((SkillDef)val).skillNameToken = "SS2UNUCLEATOR_PRIMARY_NAME"; ((SkillDef)val).skillDescriptionToken = "SS2UNUCLEATOR_PRIMARY_DESCRIPTION"; ((SkillDef)val).icon = Assets.mainAssetBundle.LoadAsset("texNucleatorPrimary"); ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 0f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = false; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = true; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; val.stepCount = 2; val.stepGraceDuration = 60f; Skills.FixSkillName((SkillDef)(object)val); Skills.skillDefs.Add((SkillDef)(object)val); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)val); skillLocator.primary = Utils.RegisterSkillsToFamily(bodyPrefab, val2); SkillDefs.Primary = (SkillDef)(object)val; } private void SetupSecondaries(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(ChargeSecondary)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UNUCLEATOR_SECONDARY_NAME"; val.skillNameToken = "SS2UNUCLEATOR_SECONDARY_NAME"; val.skillDescriptionToken = "SS2UNUCLEATOR_SECONDARY_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("texNucleatorSecondary"); val.baseMaxStock = 1; val.baseRechargeInterval = 5f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.keywordTokens = new string[1] { "KEYWORD_STUNNING" }; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.secondary = Utils.RegisterSkillsToFamily(bodyPrefab, val2); SkillDefs.Secondary = val; } private void SetupUtilities(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(ChargeLeap)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UNUCLEATOR_UTILITY_NAME"; val.skillNameToken = "SS2UNUCLEATOR_UTILITY_NAME"; val.skillDescriptionToken = "SS2UNUCLEATOR_UTILITY_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("texNucleatorUtility"); val.baseMaxStock = 1; val.baseRechargeInterval = 7f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.keywordTokens = new string[1] { "KEYWORD_STUNNING" }; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.utility = Utils.RegisterSkillsToFamily(bodyPrefab, val2); SkillDefs.Utility = val; } private void SetupSpecials(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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_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_018e: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(BuffSelf)); val.activationStateMachineName = "SpecialBuff"; val.skillName = "SS2UNUCLEATOR_SPECIAL_NAME"; val.skillNameToken = "SS2UNUCLEATOR_SPECIAL_NAME"; val.skillDescriptionToken = "SS2UNUCLEATOR_SPECIAL_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("texNucleatorSpecial"); val.baseMaxStock = 1; val.baseRechargeInterval = 10f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = false; val.mustKeyPress = true; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.keywordTokens = new string[1] { "KEYWORD_SS2U_RADIATION" }; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.special = Utils.RegisterSkillsToFamily(bodyPrefab, val2); SkillDefs.Special = val; SkillDef val3 = ScriptableObject.CreateInstance(); val3.activationState = new SerializableEntityStateType(typeof(BuffSelfScepter)); val3.activationStateMachineName = "SpecialBuff"; val3.skillName = "SS2UNUCLEATOR_SPECIAL_SCEPTER_NAME"; val3.skillNameToken = "SS2UNUCLEATOR_SPECIAL_SCEPTER_NAME"; val3.skillDescriptionToken = "SS2UNUCLEATOR_SPECIAL_SCEPTER_DESCRIPTION"; val3.icon = Assets.mainAssetBundle.LoadAsset("texNucleatorSpecialScepter"); val3.baseMaxStock = 1; val3.baseRechargeInterval = 10f; val3.beginSkillCooldownOnSkillEnd = true; val3.canceledFromSprinting = false; val3.fullRestockOnAssign = true; val3.interruptPriority = (InterruptPriority)0; val3.isCombatSkill = false; val3.mustKeyPress = true; val3.cancelSprintingOnActivation = true; val3.rechargeStock = 1; val3.requiredStock = 1; val3.stockToConsume = 1; val3.keywordTokens = new string[1] { "KEYWORD_SS2U_RADIATION" }; Skills.FixSkillName(val3); SkillDefs.SpecialScepter = val3; if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill(SkillDefs.SpecialScepter, bodyInfo.bodyName, SkillDefs.Special); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill(SkillDefs.SpecialScepter, bodyInfo.bodyName, (SkillSlot)3, SkillDefs.Special); } internal override void InitializeSkins() { //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_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_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_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) GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; List list = new List(); SkinDef val2 = Skins.CreateSkinDef("SS2UNUCLEATOR_DEFAULT_SKIN", LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32((byte)219, (byte)201, (byte)245, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)92, (byte)97, (byte)69, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)71, (byte)59, (byte)63, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)180, (byte)174, (byte)104, byte.MaxValue))), baseRendererInfos, mainSkinnedMeshRenderer, gameObject); val2.nameToken = "DEFAULT_SKIN"; list.Add(val2); val.skins = list.ToArray(); } internal override void InitializeDoppelganger() { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SS2UNucleatorMonsterMaster", true); val.GetComponent().bodyPrefab = bodyPrefab; Prefabs.RemoveAISkillDrivers(val); Prefabs.AddAISkillDriver(val, "Special", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)4, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "Leap", (SkillSlot)2, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 30f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)4, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Secondary", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 20f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 40f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Strafe", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 40f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 40f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.masterPrefabs.Add(val); } internal override void SetItemDisplays() { SurvivorBase.instance.itemDisplayRules = new List(); NucleatorItemDisplays.RegisterDisplays(); itemDisplayRuleSet.keyAssetRuleGroups = SurvivorBase.instance.itemDisplayRules.ToArray(); } private static RendererInfo[] SkinRendererInfos(RendererInfo[] defaultRenderers, Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); array[0].defaultMaterial = materials[0]; return array; } private static GameObject BuildCrosshair() { GameObject val = PrefabAPI.InstantiateClone(Assets.mainAssetBundle.LoadAsset("crosshairNucleator.prefab"), "SS2UNucleatorCrosshair", false); val.AddComponent(); CrosshairController val2 = val.AddComponent(); val2.maxSpreadAngle = 0f; val.AddComponent(); return val; } private void OnLoadActions() { //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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) bodyIndex = BodyCatalog.FindBodyIndex("SS2UNucleatorBody"); if ((int)bodyIndex != -1) { IgnoreSprintCrosshair.bodies.Add(bodyIndex); } ModCompat.SurvariantsCompat.SetVariant(survivorDef, "NucleatorBody"); } } internal class NucleatorItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { GameObject bodyPrefab = SurvivorBase.instance.bodyPrefab; GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = SurvivorBase.instance.itemDisplayRules; KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } } internal static class NucleatorProjectiles { public static GameObject BuildPrimary() { //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_0033: 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_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_0070: 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_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_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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageLightningboltBasic.prefab").WaitForCompletion(), "SS2UNucleatorPrimaryProjectile", true); Prefabs.projectilePrefabs.Add(val); Transform transform = val.transform; transform.localScale *= 1.5f; val.AddComponent(); GameObject ghostPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/BeetleQueen/BeetleQueenSpitGhost.prefab").WaitForCompletion(); ProjectileDamage component = val.GetComponent(); component.damageType = DamageTypeCombo.op_Implicit((DamageTypeExtended)8192) | DamageTypeCombo.op_Implicit((DamageSource)1); ProjectileController component2 = val.GetComponent(); component2.ghostPrefab = ghostPrefab; ProjectileSimple component3 = val.GetComponent(); component3.desiredForwardSpeed = 60f; component3.lifetime = 10f; ProjectileImpactExplosion component4 = val.GetComponent(); component4.impactEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/BeetleQueen/BeetleSpitExplosion.prefab").WaitForCompletion(); ((ProjectileExplosion)component4).blastRadius = 6f; ((ProjectileExplosion)component4).falloffModel = (FalloffModel)0; ((ProjectileExplosion)component4).blastAttackerFiltering = (AttackerFiltering)2; component4.lifetime = component3.lifetime - 0.1f; PrimaryProjectileComponentSimple primaryProjectileComponentSimple = val.AddComponent(); primaryProjectileComponentSimple.endSizeMultiplier = 2f; primaryProjectileComponentSimple.startDelay = 0.2f; primaryProjectileComponentSimple.endSizeTime = 0.3f; primaryProjectileComponentSimple.baseSpeed = FireIrradiate.minProjectileSpeed; Rigidbody component5 = val.GetComponent(); component5.useGravity = true; AntiGravityForce val2 = val.AddComponent(); val2.antiGravityCoefficient = 0.5f; val2.rb = component5; return val; } public static GameObject BuildPrimaryOvercharge() { //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_0033: 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_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_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_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0155: 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_00cf: 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_01b8: 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_0185: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageLightningboltBasic.prefab").WaitForCompletion(), "SS2UNucleatorPrimaryOverchargeProjectile", true); Prefabs.projectilePrefabs.Add(val); Transform transform = val.transform; transform.localScale *= 3f; val.AddComponent(); GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/BFG/BeamSphereGhost.prefab").WaitForCompletion(), "SS2UNucleatorPrimaryOverchargeGhost", false); ProjectileDamage component = val.GetComponent(); component.damageType = DamageTypeCombo.op_Implicit((DamageSource)1); ParticleSystem[] componentsInChildren = val2.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { switch (i) { case 0: componentsInChildren[i].startColor = Color.white; break; case 1: componentsInChildren[i].startColor = new Color(0.95686275f, 81f / 85f, 61f / 85f); break; case 2: componentsInChildren[i].startColor = new Color(0.95686275f, 81f / 85f, 61f / 85f); break; } } ProjectileController component2 = val.GetComponent(); component2.ghostPrefab = val2; component2.allowPrediction = false; ProjectileSimple component3 = val.GetComponent(); component3.desiredForwardSpeed = 20f; component3.lifetime = 2.1f; GameObject val3 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/LoaderGroundSlam.prefab").WaitForCompletion(), "SS2UNucleatorPrimaryOverchargeImpactEffect", false); VFXAttributes component4 = val3.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.vfxPriority = (VFXPriority)2; } Assets.AddEffect(val3, "Play_mage_m2_impact"); ProjectileImpactExplosion component5 = val.GetComponent(); component5.impactEffect = val3; ((ProjectileExplosion)component5).blastRadius = 10f; ((ProjectileExplosion)component5).falloffModel = (FalloffModel)0; ((ProjectileExplosion)component5).blastAttackerFiltering = (AttackerFiltering)2; component5.lifetime = component3.lifetime - 0.1f; component5.destroyOnWorld = false; PrimaryProjectileComponentSimple primaryProjectileComponentSimple = val.AddComponent(); primaryProjectileComponentSimple.endSizeMultiplier = 2f; primaryProjectileComponentSimple.startDelay = 0.2f; primaryProjectileComponentSimple.endSizeTime = 1.5f; primaryProjectileComponentSimple.baseSpeed = FireIrradiateOvercharge.minProjectileSpeed; return val; } } } namespace Starstorm2Unofficial.Survivors.Nucleator.Components { public class NucleatorChargeComponent : MonoBehaviour { public float chargeFraction; public bool shouldShowCharge; public bool isOvercharge; private void Awake() { Reset(); } private void OnDestroy() { Reset(); } public void Reset() { chargeFraction = 0f; shouldShowCharge = false; isOvercharge = false; } public void StartCharge() { chargeFraction = 0f; shouldShowCharge = true; isOvercharge = false; } public void SetCharge(float charge, float overchargeFraction) { chargeFraction = Mathf.Min(1f, charge); isOvercharge = chargeFraction >= overchargeFraction; } } public class NucleatorNetworkComponent : NetworkBehaviour { private HealthComponent healthComponent; private CharacterBody characterBody; private static int kCmdCmdHealFraction; private void Awake() { healthComponent = ((Component)this).GetComponent(); characterBody = ((Component)this).GetComponent(); } public void HealFractionAuthority(float healFraction) { if (((NetworkBehaviour)this).hasAuthority) { CallCmdHealFraction(healFraction); } } [Command] private void CmdHealFraction(float healFraction) { //IL_0028: 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) if (NetworkServer.active && Object.op_Implicit((Object)(object)healthComponent)) { healthComponent.HealFraction(healFraction, default(ProcChainMask)); } } private void UNetVersion() { } protected static void InvokeCmdCmdHealFraction(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdHealFraction called on client."); } else { ((NucleatorNetworkComponent)(object)obj).CmdHealFraction(reader.ReadSingle()); } } public void CallCmdHealFraction(float healFraction) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdHealFraction called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdHealFraction(healFraction); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdHealFraction); val.Write(((Component)this).GetComponent().netId); val.Write(healFraction); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdHealFraction"); } static NucleatorNetworkComponent() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown kCmdCmdHealFraction = 1188520356; NetworkBehaviour.RegisterCommandDelegate(typeof(NucleatorNetworkComponent), kCmdCmdHealFraction, new CmdDelegate(InvokeCmdCmdHealFraction)); NetworkCRC.RegisterBehaviour("NucleatorNetworkComponent", 0); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } } namespace Starstorm2Unofficial.Survivors.Nucleator.Components.Projectile { [RequireComponent(typeof(ProjectileImpactExplosion))] public class PrimaryProjectileComponentSimple : MonoBehaviour { public float startDelay = 0f; public float endSizeMultiplier = 1f; public float endSizeTime = 1f; public float baseSpeed = 60f; public GameObject secondaryVFX = Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/OmniImpactVFXLoaderLightning.prefab").WaitForCompletion(); private float stopwatch; private float initialRadius; private ProjectileImpactExplosion pie; private float storedRadius; public void Awake() { stopwatch = 0f; pie = ((Component)this).GetComponent(); initialRadius = ((ProjectileExplosion)pie).blastRadius; ProjectileSimple component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { float num = component.desiredForwardSpeed / baseSpeed; if (num > 0f) { startDelay /= num; endSizeTime /= num; } } } public void FixedUpdate() { if (NetworkServer.active) { stopwatch += Time.fixedDeltaTime; if (!(stopwatch <= startDelay)) { float num = Mathf.Lerp(1f, endSizeMultiplier, (stopwatch - startDelay) / endSizeTime); ((ProjectileExplosion)pie).blastRadius = initialRadius * num; storedRadius = ((ProjectileExplosion)pie).blastRadius; } } } private void OnDestroy() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0028: 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_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown if (NetworkServer.active) { EffectManager.SpawnEffect(secondaryVFX, new EffectData { scale = storedRadius * 0.5f, origin = ((Component)this).transform.position, rotation = ((Component)this).transform.rotation }, true); } } } [RequireComponent(typeof(ProjectileController), typeof(ProjectileDamage))] public class ProjectileCheckSpecialBuffComponent : MonoBehaviour { private void Start() { //IL_005a: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { ProjectileController component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component.owner)) { CharacterBody component2 = component.owner.GetComponent(); if (Object.op_Implicit((Object)(object)component2) && component2.HasBuff(BuffCore.nucleatorSpecialBuff)) { ProjectileDamage component3 = ((Component)this).GetComponent(); DamageAPI.AddModdedDamageType(ref component3.damageType, DamageTypeCore.ModdedDamageTypes.NucleatorRadiationOnHit); } } } Object.Destroy((Object)(object)this); } } } namespace Starstorm2Unofficial.Survivors.Nucleator.Components.Crosshair { public class NucleatorCrosshairController : MonoBehaviour { public static Color32 chargeColor = new Color32((byte)224, (byte)248, (byte)44, byte.MaxValue); public static Color32 overchargeColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); private HudElement hudElement; private NucleatorChargeComponent chargeComponent; private Image chargeBar; private Image chargeBackground; private CharacterBody savedCharacterBody; private void Awake() { hudElement = ((Component)this).GetComponent(); ChildLocator component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Transform val = component.FindChild("ChargeBar"); if (Object.op_Implicit((Object)(object)val)) { chargeBar = ((Component)val).GetComponent(); } Transform val2 = component.FindChild("BarBackground"); if (Object.op_Implicit((Object)(object)val2)) { chargeBackground = ((Component)val2).GetComponent(); } } } private void FixedUpdate() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: 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_0147: 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) if (!Object.op_Implicit((Object)(object)hudElement)) { return; } bool flag = false; if ((Object)(object)savedCharacterBody != (Object)(object)hudElement.targetCharacterBody) { savedCharacterBody = hudElement.targetCharacterBody; flag = true; } if (flag) { chargeComponent = null; } if (!Object.op_Implicit((Object)(object)chargeComponent)) { if (Object.op_Implicit((Object)(object)savedCharacterBody)) { chargeComponent = ((Component)savedCharacterBody).GetComponent(); } return; } if (chargeComponent.shouldShowCharge) { ((Graphic)chargeBackground).color = Color.white; ((Graphic)chargeBar).color = Color32.op_Implicit(chargeComponent.isOvercharge ? overchargeColor : chargeColor); chargeBar.fillAmount = chargeComponent.chargeFraction; return; } chargeBar.fillAmount = 0f; if (Object.op_Implicit((Object)(object)chargeBar)) { ((Graphic)chargeBar).color = Color.clear; } if (Object.op_Implicit((Object)(object)chargeBackground)) { ((Graphic)chargeBackground).color = Color.clear; } } } } namespace Starstorm2Unofficial.Survivors.Nemmando { internal class NemmandoCore : SurvivorBase { public static class SkinDefs { public static SkinDef Default; public static SkinDef Mastery; public static SkinDef Grandmastery; public static SkinDef Commando; public static SkinDef CommandoJoke; public static SkinDef Vergil; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__79_0; internal void b__79_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UNemmandoBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animNemmandoEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } } public static BodyIndex bodyIndex; internal static Material nemmandoMat = Assets.CreateMaterial("matNemmando", 1f, Color.white); internal static Material swordMat = Assets.CreateMaterial("matNemmando", 0f, Color.white); public static UnlockableDef survivorUnlock; public static UnlockableDef killSelfUnlockableDef; private static UnlockableDef masterySkinUnlockableDef; private static UnlockableDef grandMasterySkinUnlockableDef; private static UnlockableDef singleTapUnlockableDef; private static UnlockableDef decisiveStrikeUnlockableDef; internal static SkillDef decisiveStrikeSkillDef; internal static SkillDef scepterDecisiveStrikeSkillDef; internal static SkillDef scepterSubmissionSkillDef; public static SkillDef secondaryDistantGash; public static SkillDef specialDecisiveStrike; public static SkillDef specialSubmission; internal override string bodyName { get; set; } = "SS2UNemmando"; internal override string modelName { get; set; } = "mdlNemmando"; internal override string displayName { get; set; } = "NemmandoDisplay"; internal override GameObject bodyPrefab { get; set; } internal override GameObject displayPrefab { get; set; } internal static GameObject bossMasterPrefab { get; set; } internal GameObject bossBodyPrefab { get; set; } internal override float sortPosition { get; set; } = 1.001f; internal override StarstormBodyInfo bodyInfo { get; set; } = new StarstormBodyInfo { armor = 20f, bodyName = "SS2UNemmandoBody", bodyNameToken = "SS2UNEMMANDO_NAME", bodyColor = new Color(1f, 0.2f, 0.2f), characterPortrait = Assets.LoadCharacterIcon("Nemmando"), crosshair = Assets.LoadCrosshair("Standard"), damage = 12f, healthGrowth = 33f, healthRegen = 2.5f, jumpCount = 1, maxHealth = 110f, subtitleNameToken = "SS2UNEMMANDO_SUBTITLE", menuSoundString = "SS2UNemmandoCSS" }; internal override int mainRendererIndex { get; set; } = 0; internal override CustomRendererInfo[] customRendererInfos { get; set; } = new CustomRendererInfo[4] { new CustomRendererInfo { childName = "Model", material = nemmandoMat }, new CustomRendererInfo { childName = "SwordModel", material = swordMat, ignoreOverlays = true }, new CustomRendererInfo { childName = "GunModel", material = nemmandoMat, ignoreOverlays = true }, new CustomRendererInfo { childName = "CoatModel", material = Assets.CreateMaterial("matVergil", 1f) } }; internal override Type characterMainState { get; set; } = typeof(NemmandoMain); internal override ItemDisplayRuleSet itemDisplayRuleSet { get; set; } internal override List itemDisplayRules { get; set; } internal override UnlockableDef characterUnlockableDef { get; set; } = CreateUnlockableDef(); private static void CreateKillSelfUnlockable() { //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) if (!Object.op_Implicit((Object)(object)killSelfUnlockableDef)) { killSelfUnlockableDef = ScriptableObject.CreateInstance(); killSelfUnlockableDef.cachedName = "Skins.SS2UNemmando.Commando"; killSelfUnlockableDef.nameToken = "ACHIEVEMENT_SS2UNEMMANDOKILLSELF_NAME"; killSelfUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texSingleTapUnlockIcon"); if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { AchievementHider.unlockableRewardIdentifiers.Remove(killSelfUnlockableDef.cachedName); } SkinDef val = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/skinCommandoDefault.asset").WaitForCompletion(); if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.icon)) { killSelfUnlockableDef.achievementIcon = val.icon; } Unlockables.unlockableDefs.Add(killSelfUnlockableDef); } } private static UnlockableDef CreateUnlockableDef() { if (!Object.op_Implicit((Object)(object)survivorUnlock)) { survivorUnlock = ScriptableObject.CreateInstance(); survivorUnlock.cachedName = "Characters.SS2UNemmando"; survivorUnlock.nameToken = "ACHIEVEMENT_SS2UNEMMANDOUNLOCK_NAME"; survivorUnlock.achievementIcon = Assets.mainAssetBundle.LoadAsset("texNemmandoIconUnlock"); if (ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { AchievementHider.unlockableRewardIdentifiers.Remove(survivorUnlock.cachedName); } Unlockables.unlockableDefs.Add(survivorUnlock); } if (Config.EnableUnlockAll.Value || !Config.EnableVoid.Value || !ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { return null; } return survivorUnlock; } private void OnLoadActions() { //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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_001d: Invalid comparison between Unknown and I4 //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) bodyIndex = BodyCatalog.FindBodyIndex("SS2UNemmandoBody"); BodyIndex val = BodyCatalog.FindBodyIndex("SS2UNemmandoMonsterBody"); if ((int)val != -1) { NemesisInvasionCore.prioritizePlayersList.Add(val); } ModCompat.SurvariantsCompat.SetVariant(survivorDef, Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/Commando.asset").WaitForCompletion()); } internal override void InitializeCharacter() { //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) base.InitializeCharacter(); ItemAPI.DoNotAutoIDRSFor(bodyPrefab); SetupSwordProjectile(); SetupLaserTracer(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); Assets.LoadNemmandoEffects(); bodyPrefab.AddComponent(); bodyPrefab.GetComponent().initialStateType = new SerializableEntityStateType(typeof(NemmandoSpawnState)); bodyPrefab.AddComponent(); ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.AddComponent(); ((Renderer)((Component)bodyPrefab.GetComponentInChildren().FindChild("GunReloadEffect").GetChild(0)).GetComponent()).material = Assets.CreateMaterial("matAmmo"); InitializeBoss(); if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__79_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UNemmandoBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animNemmandoEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__79_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } private void SetupSwordProjectile() { //IL_002c: 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_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0117: 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) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/FMJ"), "SS2UNemmandoSwordBeam", true); val.transform.localScale = new Vector3(4.5f, 2.5f, 2.5f); GameObject val2 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/EvisProjectile").GetComponent().ghostPrefab, "SS2UNemmandoSwordBeamGhost", false); ParticleSystemRenderer[] componentsInChildren = val2.GetComponentsInChildren(); foreach (ParticleSystemRenderer val3 in componentsInChildren) { if (Object.op_Implicit((Object)(object)val3)) { Material val4 = Object.Instantiate(((Renderer)val3).material); val4.SetColor("_TintColor", Color.red); ((Renderer)val3).material = val4; } } Light[] componentsInChildren2 = val2.GetComponentsInChildren(); foreach (Light val5 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val5)) { val5.color = Color.red; } } val.GetComponent().ghostPrefab = val2; ProjectileDamage component = val.GetComponent(); component.damageType = DamageTypeCombo.GenericSecondary; DamageAPI.AddModdedDamageType(ref component.damageType, DamageTypeCore.ModdedDamageTypes.GougeOnHit); Object.Destroy((Object)(object)((Component)val.transform.Find("SweetSpotBehavior")).gameObject); Prefabs.projectilePrefabs.Add(val); FireSwordBeam.projectilePrefab = val; } private void SetupLaserTracer() { //IL_0049: 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_0088: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerCommandoShotgun"), "SS2UNemmandoLaserTracer", true); LineRenderer[] componentsInChildren = val.GetComponentsInChildren(); foreach (LineRenderer val2 in componentsInChildren) { if (Object.op_Implicit((Object)(object)val2)) { Material val3 = Object.Instantiate(((Renderer)val2).material); val3.SetColor("_TintColor", Color.red); ((Renderer)val2).material = val3; val2.startColor = new Color(0.8f, 0.19f, 0.19f); val2.endColor = new Color(0.8f, 0.19f, 0.19f); } } Assets.AddEffect(val); ChargeBarrageFire.tracerEffectPrefab = val; ScepterBarrageFire.tracerEffectPrefab = val; } private void InitializeBoss() { //IL_0070: 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_0077: 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_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_009a: 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_00a2: 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_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: 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_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: 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_012b: Unknown result type (might be due to invalid IL or missing references) bossBodyPrefab = PrefabAPI.InstantiateClone(bodyPrefab, "SS2UNemmandoMonsterBody", true); CharacterBody component = bossBodyPrefab.GetComponent(); component.baseMaxHealth = 3600f; component.levelMaxHealth = 1080f; component.baseRegen = 0f; component.levelRegen = 0f; component.baseDamage = 3f; component.levelDamage = 0.6f; component.isChampion = true; component.bodyFlags = (BodyFlags)(component.bodyFlags | 1); component.bodyFlags = (BodyFlags)(component.bodyFlags | 0x200); component.bodyFlags = (BodyFlags)(component.bodyFlags | 0x400); component.bodyFlags = (BodyFlags)(component.bodyFlags | 0x800); ItemAPI.DoNotAutoIDRSFor(bossBodyPrefab); if (Object.op_Implicit((Object)(object)component.mainHurtBox)) { Collider collider = component.mainHurtBox.collider; Collider obj = ((collider is CapsuleCollider) ? collider : null); ((CapsuleCollider)obj).radius = ((CapsuleCollider)obj).radius * 1.5f; } ModelLocator component2 = bossBodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component2.modelTransform)) { Transform modelTransform = component2.modelTransform; modelTransform.localScale *= 2f; } bossMasterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/MercMonsterMaster"), "SS2UNemmandoBossMaster", true); bossMasterPrefab.GetComponent().bodyPrefab = bossBodyPrefab; GameObject val = Object.Instantiate(Assets.nemmandoBossFX); val.transform.parent = bossBodyPrefab.GetComponentInChildren().FindChild("Chest"); val.transform.localPosition = Vector3.zero; val.transform.GetChild(0).localPosition = Vector3.zero; val.transform.localScale = Vector3.one * 2f; val.transform.GetChild(0).localScale = Vector3.one * 2f; bossBodyPrefab.AddComponent(); bossBodyPrefab.AddComponent(); Prefabs.bodyPrefabs.Add(bossBodyPrefab); Prefabs.masterPrefabs.Add(bossMasterPrefab); Prefabs.RemoveAISkillDrivers(bossMasterPrefab); Prefabs.AddAISkillDriver(bossMasterPrefab, "Special", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: true, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, 3f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(bossMasterPrefab, "Secondary", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 10f, 40f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, 1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(bossMasterPrefab, "Roll", (SkillSlot)2, null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 15f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, 0.5f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(bossMasterPrefab, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 12f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(bossMasterPrefab, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); NemesisInvasionCore.AddNemesisBoss(bossMasterPrefab, null, "SS2U_StirringSoul", shouldGrantRandomItems: true); } internal override void InitializeUnlockables() { masterySkinUnlockableDef = ScriptableObject.CreateInstance(); masterySkinUnlockableDef.cachedName = "Skins.SS2UNemmando.Mastery"; masterySkinUnlockableDef.nameToken = "ACHIEVEMENT_SS2UNEMMANDOCLEARGAMEMONSOON_NAME"; masterySkinUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texNemmandoSkinMaster"); Unlockables.unlockableDefs.Add(masterySkinUnlockableDef); AchievementHider.unlockableRewardIdentifiers.Remove(masterySkinUnlockableDef.cachedName); grandMasterySkinUnlockableDef = ScriptableObject.CreateInstance(); grandMasterySkinUnlockableDef.cachedName = "Skins.SS2UNemmando.GrandMastery"; grandMasterySkinUnlockableDef.nameToken = "ACHIEVEMENT_SS2UNEMMANDOCLEARGAMETYPHOON_NAME"; grandMasterySkinUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texNemmandoSkinGrandMaster"); Unlockables.unlockableDefs.Add(grandMasterySkinUnlockableDef); AchievementHider.unlockableRewardIdentifiers.Remove(grandMasterySkinUnlockableDef.cachedName); } internal override void InitializeDoppelganger() { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SS2UNemmandoMonsterMaster", true); val.GetComponent().bodyPrefab = bodyPrefab; Prefabs.masterPrefabs.Add(val); Prefabs.RemoveAISkillDrivers(val); Prefabs.AddAISkillDriver(val, "Special", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: true, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, 3f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "Secondary", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 10f, 40f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, 1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Roll", (SkillSlot)2, null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 15f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, 0.5f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(val, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 12f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); } internal override void InitializeHitboxes() { ChildLocator componentInChildren = bodyPrefab.GetComponentInChildren(); GameObject gameObject = ((Component)componentInChildren).gameObject; Transform hitboxTransform = componentInChildren.FindChild("SwordHitbox"); Prefabs.SetupHitbox(gameObject, hitboxTransform, "SwordHitbox"); hitboxTransform = componentInChildren.FindChild("SwordHitboxLarge"); Prefabs.SetupHitbox(gameObject, hitboxTransform, "SwordHitboxLarge"); hitboxTransform = componentInChildren.FindChild("SwordHitboxWide"); Prefabs.SetupHitbox(gameObject, hitboxTransform, "SwordHitboxWide"); } internal override void InitializeSkills() { //IL_001e: 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_00c3: 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_01b8: 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_0205: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_030b: Unknown result type (might be due to invalid IL or missing references) //IL_03b3: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_049f: 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) RegisterStates(); Skills.CreateSkillFamilies(bodyPrefab); SkillDef val = Skills.CreatePrimarySkillDef(new SerializableEntityStateType(typeof(BladeOfCessation2)), "Weapon", "SS2UNEMMANDO_PRIMARY_BLADE_NAME", "SS2UNEMMANDO_PRIMARY_BLADE_DESCRIPTION", Assets.mainAssetBundle.LoadAsset("texBladeOfCessation"), agile: true); val.keywordTokens = new string[2] { "KEYWORD_SS2U_GOUGE", "KEYWORD_AGILE" }; Skills.AddPrimarySkill(bodyPrefab, val); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SECONDARY_CONCUSSION_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SECONDARY_CONCUSSION_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SECONDARY_CONCUSSION_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texPhaseCharge"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ChargeSwordBeam)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 4f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_SS2U_GOUGE" }; SkillDef skillDef = (secondaryDistantGash = Skills.CreateSkillDef(skillDefInfo)); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SECONDARY_SHOOT_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SECONDARY_SHOOT_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SECONDARY_SHOOT_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSubmission"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ShootGun)); skillDefInfo.activationStateMachineName = "Slide"; skillDefInfo.baseMaxStock = 6; skillDefInfo.baseRechargeInterval = 2f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = true; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 6; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[0]; SkillDef skillDef2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkill(bodyPrefab, skillDef); Skills.AddSecondarySkill(bodyPrefab, skillDef2); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_UTILITY_DODGE_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_UTILITY_DODGE_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_UTILITY_DODGE_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texTacticalRoll"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(DodgeState)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 4f; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = true; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = false; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val2); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SPECIAL_SUBMISSION_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SPECIAL_SUBMISSION_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SPECIAL_SUBMISSION_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSubmission"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ChargeBarrageCharge)); skillDefInfo.activationStateMachineName = "Slide"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; SkillDef skillDef3 = (specialSubmission = Skills.CreateSkillDef(skillDefInfo)); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SPECIAL_EPIC_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SPECIAL_EPIC_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SPECIAL_EPIC_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texDecisiveStrike"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ChargedSlashCharge)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_SS2U_GOUGE" }; decisiveStrikeSkillDef = Skills.CreateSkillDef(skillDefInfo); specialDecisiveStrike = decisiveStrikeSkillDef; Skills.AddSpecialSkill(bodyPrefab, skillDef3); Skills.AddSpecialSkill(bodyPrefab, decisiveStrikeSkillDef); SetupScepterSkills(); if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } private void RegisterStates() { States.AddState(typeof(NemmandoSpawnState)); States.AddState(typeof(NemmandoMain)); States.AddState(typeof(BladeOfCessation2)); States.AddState(typeof(ChargeSwordBeam)); States.AddState(typeof(DodgeState)); States.AddState(typeof(Submission)); States.AddState(typeof(ChargedSlashCharge)); States.AddState(typeof(ScepterSlashCharge)); States.AddState(typeof(ScepterSlashEntry)); States.AddState(typeof(ScepterSlashAttack)); States.AddState(typeof(ScepterBarrageCharge)); States.AddState(typeof(ScepterBarrageFire)); States.AddState(typeof(FireSwordBeam)); States.AddState(typeof(ChargeBarrageCharge)); States.AddState(typeof(ChargeBarrageFire)); States.AddState(typeof(NemmandoRestEmote)); States.AddState(typeof(NemmandoTauntEmote)); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill(scepterSubmissionSkillDef, bodyInfo.bodyName, specialSubmission); ItemBase.instance.RegisterScepterSkill(scepterDecisiveStrikeSkillDef, bodyInfo.bodyName, specialDecisiveStrike); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill(scepterSubmissionSkillDef, bodyInfo.bodyName, (SkillSlot)3, specialSubmission); Item.instance.RegisterScepterSkill(scepterDecisiveStrikeSkillDef, bodyInfo.bodyName, (SkillSlot)3, specialDecisiveStrike); } private static void SetupScepterSkills() { //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_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SPECIAL_SCEPSUBMISSION_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SPECIAL_SCEPSUBMISSION_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SPECIAL_SCEPSUBMISSION_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texSubmissionScepter"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ScepterBarrageCharge)); skillDefInfo.activationStateMachineName = "Slide"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; scepterSubmissionSkillDef = Skills.CreateSkillDef(skillDefInfo); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UNEMMANDO_SPECIAL_SCEPEPIC_NAME"; skillDefInfo.skillNameToken = "SS2UNEMMANDO_SPECIAL_SCEPEPIC_NAME"; skillDefInfo.skillDescriptionToken = "SS2UNEMMANDO_SPECIAL_SCEPEPIC_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texDecisiveStrikeScepter"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ScepterSlashCharge)); skillDefInfo.activationStateMachineName = "Body"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_SS2U_GOUGE" }; scepterDecisiveStrikeSkillDef = Skills.CreateSkillDef(skillDefInfo); } internal override void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown MapZone.TryZoneStart += new hook_TryZoneStart(MapZone_TryZoneStart); HealthComponent.Suicide += new hook_Suicide(HealthComponent_Suicide); Detonate.OnEnter += new hook_OnEnter(PlayRuinAnimation); } private void PlayRuinAnimation(orig_OnEnter orig, Detonate self) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (((EntityState)self).characterBody.bodyIndex == bodyIndex) { ((EntityState)self).PlayAnimation("Gesture, Override", "CastRuin"); ((BaseState)self).StartAimMode(self.duration + 0.5f, false); EffectManager.SimpleMuzzleFlash(LegacyResourcesAPI.Load("Prefabs/Effects/MuzzleFlashes/MuzzleflashLunarNeedle"), ((EntityState)self).gameObject, "Head", false); } } private void MapZone_TryZoneStart(orig_TryZoneStart orig, MapZone self, Collider other) { //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Invalid comparison between Unknown and I4 //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_007c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((Component)other).gameObject)) { CharacterBody component = ((Component)other).GetComponent(); if (Object.op_Implicit((Object)(object)component) && component.bodyIndex == bodyIndex) { TeamComponent teamComponent = component.teamComponent; if (Object.op_Implicit((Object)(object)teamComponent) && (int)teamComponent.teamIndex != 1) { TeamIndex teamIndex = teamComponent.teamIndex; teamComponent.teamIndex = (TeamIndex)1; orig.Invoke(self, other); teamComponent.teamIndex = teamIndex; return; } } } orig.Invoke(self, other); } private void HealthComponent_Suicide(orig_Suicide orig, HealthComponent self, GameObject killerOverride, GameObject inflictorOverride, DamageTypeCombo damageType) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Invalid comparison between Unknown and I4 //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_0051: Invalid comparison between Unknown and I4 if ((int)damageType.damageType == 65536 && Object.op_Implicit((Object)(object)self.body) && self.body.bodyIndex == bodyIndex && Object.op_Implicit((Object)(object)self.body.teamComponent) && (int)self.body.teamComponent.teamIndex != 1) { ChatMessage.SendColored("He laughs in the face of the void.", new Color(0.149f, 0.0039f, 0.2117f)); } else { orig.Invoke(self, killerOverride, inflictorOverride, damageType); } } internal override void InitializeSkins() { //IL_005f: 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_0078: 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_00a0: 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_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_014c: Unknown result type (might be due to invalid IL or missing references) //IL_014e: 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_0187: 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_023e: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0279: 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_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: 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_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_033a: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_0503: Unknown result type (might be due to invalid IL or missing references) //IL_0533: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_053e: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0570: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_05a9: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05e8: Unknown result type (might be due to invalid IL or missing references) //IL_05ed: Unknown result type (might be due to invalid IL or missing references) //IL_066f: Unknown result type (might be due to invalid IL or missing references) //IL_069f: Unknown result type (might be due to invalid IL or missing references) //IL_06a1: Unknown result type (might be due to invalid IL or missing references) //IL_06aa: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06dc: Unknown result type (might be due to invalid IL or missing references) //IL_06e5: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_07a7: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07d9: Unknown result type (might be due to invalid IL or missing references) //IL_07e2: Unknown result type (might be due to invalid IL or missing references) //IL_0812: Unknown result type (might be due to invalid IL or missing references) //IL_0814: Unknown result type (might be due to invalid IL or missing references) //IL_081d: Unknown result type (might be due to invalid IL or missing references) //IL_084d: Unknown result type (might be due to invalid IL or missing references) //IL_084f: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; List list = new List(); GameObject gameObject2 = ((Component)component2.FindChild("Coat")).gameObject; GameObjectActivation[] gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = gameObject2, shouldActivate = false } }; GameObjectActivation[] gameObjectActivations2 = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = gameObject2, shouldActivate = true } }; SkinDef val2 = Skins.CreateSkinDef("SS2UNEMMANDO_DEFAULT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texNemmandoSkin"), baseRendererInfos, mainSkinnedMeshRenderer, gameObject); val2.nameToken = "DEFAULT_SKIN"; val2.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmando"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoSword"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoGun"), renderer = baseRendererInfos[2].renderer } }; val2.gameObjectActivations = gameObjectActivations; list.Add(val2); SkinDefs.Default = val2; Material val3 = Assets.CreateMaterial("matNemmandoMGS", 1f); Material val4 = Assets.CreateMaterial("matNemmandoMGS", 0f); Material val5 = Assets.CreateMaterial("matNemmandoMGS", 0f); RendererInfo[] rendererInfos = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { val3, val4, val5 }); SkinDef val6 = Skins.CreateSkinDef("SS2UNEMMANDO_MASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texNemmandoSkinMaster"), rendererInfos, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : masterySkinUnlockableDef); val6.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoMGS"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoSwordMGS"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoClassicGun"), renderer = baseRendererInfos[2].renderer } }; val6.gameObjectActivations = gameObjectActivations; list.Add(val6); SkinDefs.Mastery = val6; RendererInfo[] rendererInfos2 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { Assets.CreateMaterial("matNemmandoClassic", 1f, Color.white, 1f), Assets.CreateMaterial("matNemmando", 70f, Color.white), Assets.CreateMaterial("matNemmandoClassic", 0f, Color.white) }); SkinDef val7 = Skins.CreateSkinDef("SS2UNEMMANDO_CLASSIC_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texNemmandoSkinGrandMaster"), rendererInfos2, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : grandMasterySkinUnlockableDef); val7.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoClassic"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoSword"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoClassicGun"), renderer = baseRendererInfos[2].renderer } }; val7.gameObjectActivations = gameObjectActivations; list.Add(val7); SkinDefs.Grandmastery = val7; RendererInfo[] rendererInfos3 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { Assets.CreateMaterial("matNemmandoAlt", 1f), Assets.CreateMaterial("matNemmandoAlt", 1f), Assets.commandoMat }); CreateKillSelfUnlockable(); SkinDef val8 = Skins.CreateSkinDef("SS2UNEMMANDO_COMMANDO_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texNemmandoCommandoSkin"), rendererInfos3, mainSkinnedMeshRenderer, gameObject, (Config.EnableVoid.Value && !Config.ForceUnlockSkins.Value && ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) ? killSelfUnlockableDef : null); val8.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmando"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoSword"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoGun"), renderer = baseRendererInfos[2].renderer } }; val8.gameObjectActivations = gameObjectActivations; list.Add(val8); SkinDefs.Commando = val8; if (Config.cursed.Value) { Material val9 = Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/matMercSword.mat").WaitForCompletion(); RendererInfo[] rendererInfos4 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { Assets.commandoMat, val9, Assets.commandoMat }); SkinDef val10 = Skins.CreateSkinDef("SS2UNEMMANDO_COMMANDO_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texNemmandoCommandoSkin"), rendererInfos4, mainSkinnedMeshRenderer, gameObject, (Config.EnableVoid.Value && !Config.ForceUnlockSkins.Value && ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) ? killSelfUnlockableDef : null); val10.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshCommandoMesh"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshMercSword"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoGun"), renderer = baseRendererInfos[2].renderer } }; val10.gameObjectActivations = gameObjectActivations; list.Add(val10); SkinDefs.CommandoJoke = val10; RendererInfo[] rendererInfos5 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { Assets.CreateMaterial("matVergil", 3f), Assets.CreateMaterial("matYamato", 5f), Assets.commandoMat }); SkinDef val11 = Skins.CreateSkinDef("SS2UNEMMANDO_VERGIL_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texVergilSkin"), rendererInfos5, mainSkinnedMeshRenderer, gameObject, decisiveStrikeUnlockableDef); val11.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshVergil"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshYamato"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshNemmandoGun"), renderer = baseRendererInfos[2].renderer } }; val11.gameObjectActivations = gameObjectActivations2; list.Add(val11); SkinDefs.Vergil = val11; } val.skins = list.ToArray(); } internal override void SetItemDisplays() { SurvivorBase.instance.itemDisplayRules = new List(); NemmandoItemDisplays.RegisterDisplays(); itemDisplayRuleSet.keyAssetRuleGroups = SurvivorBase.instance.itemDisplayRules.ToArray(); } private static RendererInfo[] SkinRendererInfos(RendererInfo[] defaultRenderers, Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); array[0].defaultMaterial = materials[0]; array[1].defaultMaterial = materials[1]; array[2].defaultMaterial = materials[2]; return array; } } internal class NemmandoItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_0060: 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_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_00bb: 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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_012a: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: 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_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0338: 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_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0365: 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_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0582: 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_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0624: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06ee: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_0721: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Unknown result type (might be due to invalid IL or missing references) //IL_0804: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_0957: Unknown result type (might be due to invalid IL or missing references) //IL_096b: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09b2: Unknown result type (might be due to invalid IL or missing references) //IL_09c6: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: 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_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0ad7: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0b0a: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) //IL_0b32: Unknown result type (might be due to invalid IL or missing references) //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b79: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) //IL_0bd4: Unknown result type (might be due to invalid IL or missing references) //IL_0be8: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0c1b: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c76: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: 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_0ca3: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d40: Unknown result type (might be due to invalid IL or missing references) //IL_0d54: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d87: Unknown result type (might be due to invalid IL or missing references) //IL_0d9b: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) //IL_0df6: Unknown result type (might be due to invalid IL or missing references) //IL_0e0a: Unknown result type (might be due to invalid IL or missing references) //IL_0e0f: Unknown result type (might be due to invalid IL or missing references) //IL_0e3d: Unknown result type (might be due to invalid IL or missing references) //IL_0e51: Unknown result type (might be due to invalid IL or missing references) //IL_0e65: Unknown result type (might be due to invalid IL or missing references) //IL_0e6a: Unknown result type (might be due to invalid IL or missing references) //IL_0e98: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0ec0: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0ef3: Unknown result type (might be due to invalid IL or missing references) //IL_0f07: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f20: Unknown result type (might be due to invalid IL or missing references) //IL_0f4e: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Unknown result type (might be due to invalid IL or missing references) //IL_0f76: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa9: Unknown result type (might be due to invalid IL or missing references) //IL_0fbd: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_1004: Unknown result type (might be due to invalid IL or missing references) //IL_1018: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_105f: Unknown result type (might be due to invalid IL or missing references) //IL_1073: Unknown result type (might be due to invalid IL or missing references) //IL_1087: Unknown result type (might be due to invalid IL or missing references) //IL_108c: Unknown result type (might be due to invalid IL or missing references) //IL_10ba: Unknown result type (might be due to invalid IL or missing references) //IL_10ce: Unknown result type (might be due to invalid IL or missing references) //IL_10e2: Unknown result type (might be due to invalid IL or missing references) //IL_10e7: Unknown result type (might be due to invalid IL or missing references) //IL_1115: Unknown result type (might be due to invalid IL or missing references) //IL_1129: Unknown result type (might be due to invalid IL or missing references) //IL_113d: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Unknown result type (might be due to invalid IL or missing references) //IL_1170: Unknown result type (might be due to invalid IL or missing references) //IL_1184: Unknown result type (might be due to invalid IL or missing references) //IL_1198: Unknown result type (might be due to invalid IL or missing references) //IL_119d: Unknown result type (might be due to invalid IL or missing references) //IL_11cb: Unknown result type (might be due to invalid IL or missing references) //IL_11df: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Unknown result type (might be due to invalid IL or missing references) //IL_11f8: Unknown result type (might be due to invalid IL or missing references) //IL_1226: Unknown result type (might be due to invalid IL or missing references) //IL_123a: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Unknown result type (might be due to invalid IL or missing references) //IL_1253: Unknown result type (might be due to invalid IL or missing references) //IL_1281: Unknown result type (might be due to invalid IL or missing references) //IL_1295: Unknown result type (might be due to invalid IL or missing references) //IL_12a9: Unknown result type (might be due to invalid IL or missing references) //IL_12ae: Unknown result type (might be due to invalid IL or missing references) //IL_12dc: Unknown result type (might be due to invalid IL or missing references) //IL_12f0: Unknown result type (might be due to invalid IL or missing references) //IL_1304: Unknown result type (might be due to invalid IL or missing references) //IL_1309: Unknown result type (might be due to invalid IL or missing references) //IL_1337: Unknown result type (might be due to invalid IL or missing references) //IL_134b: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1364: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_13a6: Unknown result type (might be due to invalid IL or missing references) //IL_13ba: Unknown result type (might be due to invalid IL or missing references) //IL_13bf: Unknown result type (might be due to invalid IL or missing references) //IL_13ed: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Unknown result type (might be due to invalid IL or missing references) //IL_141a: Unknown result type (might be due to invalid IL or missing references) //IL_1448: 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_1470: Unknown result type (might be due to invalid IL or missing references) //IL_1475: Unknown result type (might be due to invalid IL or missing references) //IL_14a3: Unknown result type (might be due to invalid IL or missing references) //IL_14b7: Unknown result type (might be due to invalid IL or missing references) //IL_14cb: Unknown result type (might be due to invalid IL or missing references) //IL_14d0: Unknown result type (might be due to invalid IL or missing references) //IL_14fe: Unknown result type (might be due to invalid IL or missing references) //IL_1512: Unknown result type (might be due to invalid IL or missing references) //IL_1526: Unknown result type (might be due to invalid IL or missing references) //IL_152b: Unknown result type (might be due to invalid IL or missing references) //IL_1559: Unknown result type (might be due to invalid IL or missing references) //IL_156d: Unknown result type (might be due to invalid IL or missing references) //IL_1581: Unknown result type (might be due to invalid IL or missing references) //IL_1586: Unknown result type (might be due to invalid IL or missing references) //IL_15b4: Unknown result type (might be due to invalid IL or missing references) //IL_15c8: Unknown result type (might be due to invalid IL or missing references) //IL_15dc: Unknown result type (might be due to invalid IL or missing references) //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_160f: Unknown result type (might be due to invalid IL or missing references) //IL_1623: Unknown result type (might be due to invalid IL or missing references) //IL_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_166a: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_1692: Unknown result type (might be due to invalid IL or missing references) //IL_1697: Unknown result type (might be due to invalid IL or missing references) //IL_16c5: Unknown result type (might be due to invalid IL or missing references) //IL_16d9: Unknown result type (might be due to invalid IL or missing references) //IL_16ed: Unknown result type (might be due to invalid IL or missing references) //IL_16f2: Unknown result type (might be due to invalid IL or missing references) //IL_1720: Unknown result type (might be due to invalid IL or missing references) //IL_1734: Unknown result type (might be due to invalid IL or missing references) //IL_1748: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_177b: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_17a3: Unknown result type (might be due to invalid IL or missing references) //IL_17a8: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17ea: Unknown result type (might be due to invalid IL or missing references) //IL_17fe: Unknown result type (might be due to invalid IL or missing references) //IL_1803: Unknown result type (might be due to invalid IL or missing references) //IL_1831: Unknown result type (might be due to invalid IL or missing references) //IL_1845: Unknown result type (might be due to invalid IL or missing references) //IL_1859: Unknown result type (might be due to invalid IL or missing references) //IL_185e: Unknown result type (might be due to invalid IL or missing references) //IL_188c: Unknown result type (might be due to invalid IL or missing references) //IL_18a0: Unknown result type (might be due to invalid IL or missing references) //IL_18b4: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Unknown result type (might be due to invalid IL or missing references) //IL_18e7: Unknown result type (might be due to invalid IL or missing references) //IL_18fb: Unknown result type (might be due to invalid IL or missing references) //IL_190f: Unknown result type (might be due to invalid IL or missing references) //IL_1914: Unknown result type (might be due to invalid IL or missing references) //IL_1942: Unknown result type (might be due to invalid IL or missing references) //IL_1956: Unknown result type (might be due to invalid IL or missing references) //IL_196a: Unknown result type (might be due to invalid IL or missing references) //IL_196f: Unknown result type (might be due to invalid IL or missing references) //IL_199d: Unknown result type (might be due to invalid IL or missing references) //IL_19b1: Unknown result type (might be due to invalid IL or missing references) //IL_19c5: 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_19f8: Unknown result type (might be due to invalid IL or missing references) //IL_1a0c: Unknown result type (might be due to invalid IL or missing references) //IL_1a20: Unknown result type (might be due to invalid IL or missing references) //IL_1a25: Unknown result type (might be due to invalid IL or missing references) //IL_1a53: Unknown result type (might be due to invalid IL or missing references) //IL_1a67: Unknown result type (might be due to invalid IL or missing references) //IL_1a7b: Unknown result type (might be due to invalid IL or missing references) //IL_1a80: Unknown result type (might be due to invalid IL or missing references) //IL_1aae: Unknown result type (might be due to invalid IL or missing references) //IL_1ac2: Unknown result type (might be due to invalid IL or missing references) //IL_1ad6: Unknown result type (might be due to invalid IL or missing references) //IL_1adb: Unknown result type (might be due to invalid IL or missing references) //IL_1b09: Unknown result type (might be due to invalid IL or missing references) //IL_1b1d: Unknown result type (might be due to invalid IL or missing references) //IL_1b31: Unknown result type (might be due to invalid IL or missing references) //IL_1b36: 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_1b78: Unknown result type (might be due to invalid IL or missing references) //IL_1b8c: Unknown result type (might be due to invalid IL or missing references) //IL_1b91: Unknown result type (might be due to invalid IL or missing references) //IL_1bbf: Unknown result type (might be due to invalid IL or missing references) //IL_1bd3: Unknown result type (might be due to invalid IL or missing references) //IL_1be7: Unknown result type (might be due to invalid IL or missing references) //IL_1bec: Unknown result type (might be due to invalid IL or missing references) //IL_1c1a: Unknown result type (might be due to invalid IL or missing references) //IL_1c2e: Unknown result type (might be due to invalid IL or missing references) //IL_1c42: Unknown result type (might be due to invalid IL or missing references) //IL_1c47: Unknown result type (might be due to invalid IL or missing references) //IL_1c75: Unknown result type (might be due to invalid IL or missing references) //IL_1c89: Unknown result type (might be due to invalid IL or missing references) //IL_1c9d: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1cd0: Unknown result type (might be due to invalid IL or missing references) //IL_1ce4: Unknown result type (might be due to invalid IL or missing references) //IL_1cf8: Unknown result type (might be due to invalid IL or missing references) //IL_1cfd: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b: Unknown result type (might be due to invalid IL or missing references) //IL_1d3f: Unknown result type (might be due to invalid IL or missing references) //IL_1d53: Unknown result type (might be due to invalid IL or missing references) //IL_1d58: Unknown result type (might be due to invalid IL or missing references) //IL_1d86: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a: Unknown result type (might be due to invalid IL or missing references) //IL_1dae: Unknown result type (might be due to invalid IL or missing references) //IL_1db3: Unknown result type (might be due to invalid IL or missing references) //IL_1de1: Unknown result type (might be due to invalid IL or missing references) //IL_1df5: Unknown result type (might be due to invalid IL or missing references) //IL_1e09: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: 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_1e50: Unknown result type (might be due to invalid IL or missing references) //IL_1e64: Unknown result type (might be due to invalid IL or missing references) //IL_1e69: Unknown result type (might be due to invalid IL or missing references) //IL_1e97: Unknown result type (might be due to invalid IL or missing references) //IL_1eab: Unknown result type (might be due to invalid IL or missing references) //IL_1ebf: Unknown result type (might be due to invalid IL or missing references) //IL_1ec4: 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_1f1a: Unknown result type (might be due to invalid IL or missing references) //IL_1f1f: Unknown result type (might be due to invalid IL or missing references) //IL_1f4d: Unknown result type (might be due to invalid IL or missing references) //IL_1f61: Unknown result type (might be due to invalid IL or missing references) //IL_1f75: Unknown result type (might be due to invalid IL or missing references) //IL_1f7a: Unknown result type (might be due to invalid IL or missing references) //IL_1fa8: Unknown result type (might be due to invalid IL or missing references) //IL_1fbc: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd5: Unknown result type (might be due to invalid IL or missing references) //IL_2003: Unknown result type (might be due to invalid IL or missing references) //IL_2017: Unknown result type (might be due to invalid IL or missing references) //IL_202b: Unknown result type (might be due to invalid IL or missing references) //IL_2030: Unknown result type (might be due to invalid IL or missing references) //IL_205e: Unknown result type (might be due to invalid IL or missing references) //IL_2072: Unknown result type (might be due to invalid IL or missing references) //IL_2086: Unknown result type (might be due to invalid IL or missing references) //IL_208b: Unknown result type (might be due to invalid IL or missing references) //IL_20b9: Unknown result type (might be due to invalid IL or missing references) //IL_20cd: Unknown result type (might be due to invalid IL or missing references) //IL_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_20e6: Unknown result type (might be due to invalid IL or missing references) //IL_2114: Unknown result type (might be due to invalid IL or missing references) //IL_2128: Unknown result type (might be due to invalid IL or missing references) //IL_213c: Unknown result type (might be due to invalid IL or missing references) //IL_2141: Unknown result type (might be due to invalid IL or missing references) //IL_216f: Unknown result type (might be due to invalid IL or missing references) //IL_2183: Unknown result type (might be due to invalid IL or missing references) //IL_2197: Unknown result type (might be due to invalid IL or missing references) //IL_219c: Unknown result type (might be due to invalid IL or missing references) //IL_21ca: Unknown result type (might be due to invalid IL or missing references) //IL_21de: Unknown result type (might be due to invalid IL or missing references) //IL_21f2: Unknown result type (might be due to invalid IL or missing references) //IL_21f7: Unknown result type (might be due to invalid IL or missing references) //IL_2225: Unknown result type (might be due to invalid IL or missing references) //IL_2239: Unknown result type (might be due to invalid IL or missing references) //IL_224d: Unknown result type (might be due to invalid IL or missing references) //IL_2252: Unknown result type (might be due to invalid IL or missing references) //IL_2280: Unknown result type (might be due to invalid IL or missing references) //IL_2294: Unknown result type (might be due to invalid IL or missing references) //IL_22a8: Unknown result type (might be due to invalid IL or missing references) //IL_22ad: Unknown result type (might be due to invalid IL or missing references) //IL_22db: Unknown result type (might be due to invalid IL or missing references) //IL_22ef: Unknown result type (might be due to invalid IL or missing references) //IL_2303: Unknown result type (might be due to invalid IL or missing references) //IL_2308: Unknown result type (might be due to invalid IL or missing references) //IL_2336: Unknown result type (might be due to invalid IL or missing references) //IL_234a: Unknown result type (might be due to invalid IL or missing references) //IL_235e: Unknown result type (might be due to invalid IL or missing references) //IL_2363: Unknown result type (might be due to invalid IL or missing references) //IL_2391: Unknown result type (might be due to invalid IL or missing references) //IL_23a5: Unknown result type (might be due to invalid IL or missing references) //IL_23b9: Unknown result type (might be due to invalid IL or missing references) //IL_23be: Unknown result type (might be due to invalid IL or missing references) //IL_23ec: Unknown result type (might be due to invalid IL or missing references) //IL_2400: Unknown result type (might be due to invalid IL or missing references) //IL_2414: Unknown result type (might be due to invalid IL or missing references) //IL_2419: Unknown result type (might be due to invalid IL or missing references) //IL_2447: Unknown result type (might be due to invalid IL or missing references) //IL_245b: Unknown result type (might be due to invalid IL or missing references) //IL_246f: Unknown result type (might be due to invalid IL or missing references) //IL_2474: Unknown result type (might be due to invalid IL or missing references) //IL_24a2: Unknown result type (might be due to invalid IL or missing references) //IL_24b6: Unknown result type (might be due to invalid IL or missing references) //IL_24ca: Unknown result type (might be due to invalid IL or missing references) //IL_24cf: Unknown result type (might be due to invalid IL or missing references) //IL_24fd: Unknown result type (might be due to invalid IL or missing references) //IL_2511: Unknown result type (might be due to invalid IL or missing references) //IL_2525: Unknown result type (might be due to invalid IL or missing references) //IL_252a: Unknown result type (might be due to invalid IL or missing references) //IL_2558: Unknown result type (might be due to invalid IL or missing references) //IL_256c: Unknown result type (might be due to invalid IL or missing references) //IL_2580: Unknown result type (might be due to invalid IL or missing references) //IL_2585: Unknown result type (might be due to invalid IL or missing references) //IL_25b3: Unknown result type (might be due to invalid IL or missing references) //IL_25c7: Unknown result type (might be due to invalid IL or missing references) //IL_25db: Unknown result type (might be due to invalid IL or missing references) //IL_25e0: Unknown result type (might be due to invalid IL or missing references) //IL_260e: Unknown result type (might be due to invalid IL or missing references) //IL_2622: Unknown result type (might be due to invalid IL or missing references) //IL_2636: Unknown result type (might be due to invalid IL or missing references) //IL_263b: Unknown result type (might be due to invalid IL or missing references) //IL_2664: Unknown result type (might be due to invalid IL or missing references) //IL_2678: Unknown result type (might be due to invalid IL or missing references) //IL_268c: Unknown result type (might be due to invalid IL or missing references) //IL_2691: Unknown result type (might be due to invalid IL or missing references) //IL_26ba: Unknown result type (might be due to invalid IL or missing references) //IL_26ce: Unknown result type (might be due to invalid IL or missing references) //IL_26e2: Unknown result type (might be due to invalid IL or missing references) //IL_26e7: Unknown result type (might be due to invalid IL or missing references) //IL_2710: Unknown result type (might be due to invalid IL or missing references) //IL_2724: Unknown result type (might be due to invalid IL or missing references) //IL_2738: Unknown result type (might be due to invalid IL or missing references) //IL_273d: Unknown result type (might be due to invalid IL or missing references) //IL_2766: Unknown result type (might be due to invalid IL or missing references) //IL_277a: Unknown result type (might be due to invalid IL or missing references) //IL_278e: Unknown result type (might be due to invalid IL or missing references) //IL_2793: Unknown result type (might be due to invalid IL or missing references) //IL_27bc: Unknown result type (might be due to invalid IL or missing references) //IL_27d0: Unknown result type (might be due to invalid IL or missing references) //IL_27e4: Unknown result type (might be due to invalid IL or missing references) //IL_27e9: Unknown result type (might be due to invalid IL or missing references) //IL_2817: Unknown result type (might be due to invalid IL or missing references) //IL_282b: Unknown result type (might be due to invalid IL or missing references) //IL_283f: Unknown result type (might be due to invalid IL or missing references) //IL_2844: Unknown result type (might be due to invalid IL or missing references) //IL_2872: Unknown result type (might be due to invalid IL or missing references) //IL_2886: Unknown result type (might be due to invalid IL or missing references) //IL_289a: Unknown result type (might be due to invalid IL or missing references) //IL_289f: Unknown result type (might be due to invalid IL or missing references) //IL_28cd: Unknown result type (might be due to invalid IL or missing references) //IL_28e1: Unknown result type (might be due to invalid IL or missing references) //IL_28f5: Unknown result type (might be due to invalid IL or missing references) //IL_28fa: Unknown result type (might be due to invalid IL or missing references) //IL_2928: Unknown result type (might be due to invalid IL or missing references) //IL_293c: Unknown result type (might be due to invalid IL or missing references) //IL_2950: Unknown result type (might be due to invalid IL or missing references) //IL_2955: Unknown result type (might be due to invalid IL or missing references) //IL_297e: Unknown result type (might be due to invalid IL or missing references) //IL_2992: Unknown result type (might be due to invalid IL or missing references) //IL_29a6: Unknown result type (might be due to invalid IL or missing references) //IL_29ab: Unknown result type (might be due to invalid IL or missing references) //IL_29bd: 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_29e5: Unknown result type (might be due to invalid IL or missing references) //IL_29ee: Unknown result type (might be due to invalid IL or missing references) //IL_2a21: Unknown result type (might be due to invalid IL or missing references) //IL_2a26: Unknown result type (might be due to invalid IL or missing references) //IL_2a3c: Unknown result type (might be due to invalid IL or missing references) //IL_2a41: Unknown result type (might be due to invalid IL or missing references) //IL_2a57: Unknown result type (might be due to invalid IL or missing references) //IL_2a5c: Unknown result type (might be due to invalid IL or missing references) //IL_2a64: Unknown result type (might be due to invalid IL or missing references) //IL_2a69: Unknown result type (might be due to invalid IL or missing references) //IL_2a6b: Unknown result type (might be due to invalid IL or missing references) //IL_2a74: Unknown result type (might be due to invalid IL or missing references) //IL_2a7d: Unknown result type (might be due to invalid IL or missing references) //IL_2ab0: Unknown result type (might be due to invalid IL or missing references) //IL_2ab5: Unknown result type (might be due to invalid IL or missing references) //IL_2acb: Unknown result type (might be due to invalid IL or missing references) //IL_2ad0: Unknown result type (might be due to invalid IL or missing references) //IL_2ae6: Unknown result type (might be due to invalid IL or missing references) //IL_2aeb: Unknown result type (might be due to invalid IL or missing references) //IL_2af3: Unknown result type (might be due to invalid IL or missing references) //IL_2af8: Unknown result type (might be due to invalid IL or missing references) //IL_2afa: Unknown result type (might be due to invalid IL or missing references) //IL_2b04: Unknown result type (might be due to invalid IL or missing references) //IL_2b06: Unknown result type (might be due to invalid IL or missing references) //IL_2b0b: Unknown result type (might be due to invalid IL or missing references) //IL_2b36: Unknown result type (might be due to invalid IL or missing references) //IL_2b4a: Unknown result type (might be due to invalid IL or missing references) //IL_2b5e: Unknown result type (might be due to invalid IL or missing references) //IL_2b63: Unknown result type (might be due to invalid IL or missing references) //IL_2b91: Unknown result type (might be due to invalid IL or missing references) //IL_2ba5: Unknown result type (might be due to invalid IL or missing references) //IL_2bb9: Unknown result type (might be due to invalid IL or missing references) //IL_2bbe: Unknown result type (might be due to invalid IL or missing references) //IL_2bec: Unknown result type (might be due to invalid IL or missing references) //IL_2c00: Unknown result type (might be due to invalid IL or missing references) //IL_2c14: Unknown result type (might be due to invalid IL or missing references) //IL_2c19: Unknown result type (might be due to invalid IL or missing references) //IL_2c47: Unknown result type (might be due to invalid IL or missing references) //IL_2c5b: Unknown result type (might be due to invalid IL or missing references) //IL_2c6f: Unknown result type (might be due to invalid IL or missing references) //IL_2c74: Unknown result type (might be due to invalid IL or missing references) //IL_2ca2: Unknown result type (might be due to invalid IL or missing references) //IL_2cb6: Unknown result type (might be due to invalid IL or missing references) //IL_2cca: Unknown result type (might be due to invalid IL or missing references) //IL_2ccf: Unknown result type (might be due to invalid IL or missing references) //IL_2cfd: Unknown result type (might be due to invalid IL or missing references) //IL_2d11: Unknown result type (might be due to invalid IL or missing references) //IL_2d25: Unknown result type (might be due to invalid IL or missing references) //IL_2d2a: Unknown result type (might be due to invalid IL or missing references) //IL_2d58: Unknown result type (might be due to invalid IL or missing references) //IL_2d6c: Unknown result type (might be due to invalid IL or missing references) //IL_2d80: Unknown result type (might be due to invalid IL or missing references) //IL_2d85: Unknown result type (might be due to invalid IL or missing references) //IL_2db3: Unknown result type (might be due to invalid IL or missing references) //IL_2dc7: Unknown result type (might be due to invalid IL or missing references) //IL_2ddb: Unknown result type (might be due to invalid IL or missing references) //IL_2de0: Unknown result type (might be due to invalid IL or missing references) //IL_2e0e: Unknown result type (might be due to invalid IL or missing references) //IL_2e22: Unknown result type (might be due to invalid IL or missing references) //IL_2e36: Unknown result type (might be due to invalid IL or missing references) //IL_2e3b: Unknown result type (might be due to invalid IL or missing references) //IL_2e69: Unknown result type (might be due to invalid IL or missing references) //IL_2e7d: Unknown result type (might be due to invalid IL or missing references) //IL_2e91: Unknown result type (might be due to invalid IL or missing references) //IL_2e96: Unknown result type (might be due to invalid IL or missing references) //IL_2ec4: Unknown result type (might be due to invalid IL or missing references) //IL_2ed8: Unknown result type (might be due to invalid IL or missing references) //IL_2eec: Unknown result type (might be due to invalid IL or missing references) //IL_2ef1: Unknown result type (might be due to invalid IL or missing references) //IL_2f1f: Unknown result type (might be due to invalid IL or missing references) //IL_2f33: Unknown result type (might be due to invalid IL or missing references) //IL_2f47: Unknown result type (might be due to invalid IL or missing references) //IL_2f4c: Unknown result type (might be due to invalid IL or missing references) //IL_2f7a: Unknown result type (might be due to invalid IL or missing references) //IL_2f8e: Unknown result type (might be due to invalid IL or missing references) //IL_2fa2: Unknown result type (might be due to invalid IL or missing references) //IL_2fa7: Unknown result type (might be due to invalid IL or missing references) //IL_2fd5: Unknown result type (might be due to invalid IL or missing references) //IL_2fe9: Unknown result type (might be due to invalid IL or missing references) //IL_2ffd: Unknown result type (might be due to invalid IL or missing references) //IL_3002: Unknown result type (might be due to invalid IL or missing references) //IL_3030: Unknown result type (might be due to invalid IL or missing references) //IL_3044: Unknown result type (might be due to invalid IL or missing references) //IL_3058: Unknown result type (might be due to invalid IL or missing references) //IL_305d: Unknown result type (might be due to invalid IL or missing references) //IL_308b: Unknown result type (might be due to invalid IL or missing references) //IL_309f: Unknown result type (might be due to invalid IL or missing references) //IL_30b3: Unknown result type (might be due to invalid IL or missing references) //IL_30b8: Unknown result type (might be due to invalid IL or missing references) //IL_30e6: Unknown result type (might be due to invalid IL or missing references) //IL_30fa: Unknown result type (might be due to invalid IL or missing references) //IL_310e: Unknown result type (might be due to invalid IL or missing references) //IL_3113: Unknown result type (might be due to invalid IL or missing references) //IL_3141: Unknown result type (might be due to invalid IL or missing references) //IL_3155: Unknown result type (might be due to invalid IL or missing references) //IL_3169: Unknown result type (might be due to invalid IL or missing references) //IL_316e: Unknown result type (might be due to invalid IL or missing references) //IL_319c: Unknown result type (might be due to invalid IL or missing references) //IL_31b0: Unknown result type (might be due to invalid IL or missing references) //IL_31c4: Unknown result type (might be due to invalid IL or missing references) //IL_31c9: Unknown result type (might be due to invalid IL or missing references) //IL_31f2: Unknown result type (might be due to invalid IL or missing references) //IL_3206: Unknown result type (might be due to invalid IL or missing references) //IL_321a: Unknown result type (might be due to invalid IL or missing references) //IL_321f: Unknown result type (might be due to invalid IL or missing references) //IL_324d: Unknown result type (might be due to invalid IL or missing references) //IL_3261: Unknown result type (might be due to invalid IL or missing references) //IL_3275: Unknown result type (might be due to invalid IL or missing references) //IL_327a: Unknown result type (might be due to invalid IL or missing references) //IL_32a8: Unknown result type (might be due to invalid IL or missing references) //IL_32bc: Unknown result type (might be due to invalid IL or missing references) //IL_32d0: Unknown result type (might be due to invalid IL or missing references) //IL_32d5: Unknown result type (might be due to invalid IL or missing references) //IL_3303: Unknown result type (might be due to invalid IL or missing references) //IL_3317: Unknown result type (might be due to invalid IL or missing references) //IL_332b: Unknown result type (might be due to invalid IL or missing references) //IL_3330: Unknown result type (might be due to invalid IL or missing references) //IL_335e: Unknown result type (might be due to invalid IL or missing references) //IL_3372: Unknown result type (might be due to invalid IL or missing references) //IL_3386: Unknown result type (might be due to invalid IL or missing references) //IL_338b: Unknown result type (might be due to invalid IL or missing references) //IL_33b9: Unknown result type (might be due to invalid IL or missing references) //IL_33cd: Unknown result type (might be due to invalid IL or missing references) //IL_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_33f8: Unknown result type (might be due to invalid IL or missing references) //IL_340e: Unknown result type (might be due to invalid IL or missing references) //IL_3420: Unknown result type (might be due to invalid IL or missing references) //IL_3429: Unknown result type (might be due to invalid IL or missing references) //IL_345c: Unknown result type (might be due to invalid IL or missing references) //IL_3461: Unknown result type (might be due to invalid IL or missing references) //IL_3477: Unknown result type (might be due to invalid IL or missing references) //IL_347c: Unknown result type (might be due to invalid IL or missing references) //IL_3492: Unknown result type (might be due to invalid IL or missing references) //IL_3497: Unknown result type (might be due to invalid IL or missing references) //IL_349f: 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_34a6: Unknown result type (might be due to invalid IL or missing references) //IL_34af: 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_34eb: Unknown result type (might be due to invalid IL or missing references) //IL_34f0: Unknown result type (might be due to invalid IL or missing references) //IL_3506: Unknown result type (might be due to invalid IL or missing references) //IL_350b: Unknown result type (might be due to invalid IL or missing references) //IL_3521: Unknown result type (might be due to invalid IL or missing references) //IL_3526: Unknown result type (might be due to invalid IL or missing references) //IL_352e: Unknown result type (might be due to invalid IL or missing references) //IL_3533: Unknown result type (might be due to invalid IL or missing references) //IL_3535: Unknown result type (might be due to invalid IL or missing references) //IL_353f: Unknown result type (might be due to invalid IL or missing references) //IL_3541: Unknown result type (might be due to invalid IL or missing references) //IL_3546: Unknown result type (might be due to invalid IL or missing references) //IL_356c: Unknown result type (might be due to invalid IL or missing references) //IL_3580: Unknown result type (might be due to invalid IL or missing references) //IL_3594: Unknown result type (might be due to invalid IL or missing references) //IL_3599: Unknown result type (might be due to invalid IL or missing references) //IL_35c7: Unknown result type (might be due to invalid IL or missing references) //IL_35db: Unknown result type (might be due to invalid IL or missing references) //IL_35ef: Unknown result type (might be due to invalid IL or missing references) //IL_35f4: Unknown result type (might be due to invalid IL or missing references) //IL_3622: Unknown result type (might be due to invalid IL or missing references) //IL_3636: Unknown result type (might be due to invalid IL or missing references) //IL_364a: Unknown result type (might be due to invalid IL or missing references) //IL_364f: Unknown result type (might be due to invalid IL or missing references) //IL_3661: Unknown result type (might be due to invalid IL or missing references) //IL_3677: Unknown result type (might be due to invalid IL or missing references) //IL_3689: Unknown result type (might be due to invalid IL or missing references) //IL_3692: Unknown result type (might be due to invalid IL or missing references) //IL_36c5: Unknown result type (might be due to invalid IL or missing references) //IL_36ca: Unknown result type (might be due to invalid IL or missing references) //IL_36e0: Unknown result type (might be due to invalid IL or missing references) //IL_36e5: Unknown result type (might be due to invalid IL or missing references) //IL_36fb: Unknown result type (might be due to invalid IL or missing references) //IL_3700: Unknown result type (might be due to invalid IL or missing references) //IL_3708: Unknown result type (might be due to invalid IL or missing references) //IL_370d: Unknown result type (might be due to invalid IL or missing references) //IL_370f: Unknown result type (might be due to invalid IL or missing references) //IL_3719: Unknown result type (might be due to invalid IL or missing references) //IL_371b: Unknown result type (might be due to invalid IL or missing references) //IL_3720: Unknown result type (might be due to invalid IL or missing references) //IL_372f: Unknown result type (might be due to invalid IL or missing references) //IL_3745: Unknown result type (might be due to invalid IL or missing references) //IL_3757: Unknown result type (might be due to invalid IL or missing references) //IL_3760: Unknown result type (might be due to invalid IL or missing references) //IL_3793: Unknown result type (might be due to invalid IL or missing references) //IL_3798: Unknown result type (might be due to invalid IL or missing references) //IL_37ae: Unknown result type (might be due to invalid IL or missing references) //IL_37b3: Unknown result type (might be due to invalid IL or missing references) //IL_37c9: Unknown result type (might be due to invalid IL or missing references) //IL_37ce: Unknown result type (might be due to invalid IL or missing references) //IL_37d6: Unknown result type (might be due to invalid IL or missing references) //IL_37db: Unknown result type (might be due to invalid IL or missing references) //IL_37dd: Unknown result type (might be due to invalid IL or missing references) //IL_37e6: Unknown result type (might be due to invalid IL or missing references) //IL_37ef: Unknown result type (might be due to invalid IL or missing references) //IL_3822: Unknown result type (might be due to invalid IL or missing references) //IL_3827: Unknown result type (might be due to invalid IL or missing references) //IL_383d: Unknown result type (might be due to invalid IL or missing references) //IL_3842: Unknown result type (might be due to invalid IL or missing references) //IL_3858: Unknown result type (might be due to invalid IL or missing references) //IL_385d: Unknown result type (might be due to invalid IL or missing references) //IL_3865: Unknown result type (might be due to invalid IL or missing references) //IL_386a: Unknown result type (might be due to invalid IL or missing references) //IL_386c: Unknown result type (might be due to invalid IL or missing references) //IL_3876: Unknown result type (might be due to invalid IL or missing references) //IL_3878: Unknown result type (might be due to invalid IL or missing references) //IL_387d: Unknown result type (might be due to invalid IL or missing references) //IL_38a8: Unknown result type (might be due to invalid IL or missing references) //IL_38bc: Unknown result type (might be due to invalid IL or missing references) //IL_38d0: Unknown result type (might be due to invalid IL or missing references) //IL_38d5: Unknown result type (might be due to invalid IL or missing references) //IL_3903: Unknown result type (might be due to invalid IL or missing references) //IL_3917: Unknown result type (might be due to invalid IL or missing references) //IL_392b: Unknown result type (might be due to invalid IL or missing references) //IL_3930: Unknown result type (might be due to invalid IL or missing references) //IL_395e: Unknown result type (might be due to invalid IL or missing references) //IL_3972: Unknown result type (might be due to invalid IL or missing references) //IL_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_39b9: Unknown result type (might be due to invalid IL or missing references) //IL_39cd: Unknown result type (might be due to invalid IL or missing references) //IL_39e1: Unknown result type (might be due to invalid IL or missing references) //IL_39e6: Unknown result type (might be due to invalid IL or missing references) //IL_3a19: Unknown result type (might be due to invalid IL or missing references) //IL_3a2d: Unknown result type (might be due to invalid IL or missing references) //IL_3a41: Unknown result type (might be due to invalid IL or missing references) //IL_3a46: Unknown result type (might be due to invalid IL or missing references) //IL_3a74: Unknown result type (might be due to invalid IL or missing references) //IL_3a88: Unknown result type (might be due to invalid IL or missing references) //IL_3a9c: Unknown result type (might be due to invalid IL or missing references) //IL_3aa1: Unknown result type (might be due to invalid IL or missing references) //IL_3acf: Unknown result type (might be due to invalid IL or missing references) //IL_3ae3: Unknown result type (might be due to invalid IL or missing references) //IL_3af7: Unknown result type (might be due to invalid IL or missing references) //IL_3afc: Unknown result type (might be due to invalid IL or missing references) //IL_3b25: Unknown result type (might be due to invalid IL or missing references) //IL_3b39: Unknown result type (might be due to invalid IL or missing references) //IL_3b4d: Unknown result type (might be due to invalid IL or missing references) //IL_3b52: Unknown result type (might be due to invalid IL or missing references) //IL_3b80: Unknown result type (might be due to invalid IL or missing references) //IL_3b94: Unknown result type (might be due to invalid IL or missing references) //IL_3ba8: Unknown result type (might be due to invalid IL or missing references) //IL_3bad: Unknown result type (might be due to invalid IL or missing references) //IL_3bdb: Unknown result type (might be due to invalid IL or missing references) //IL_3bef: Unknown result type (might be due to invalid IL or missing references) //IL_3c03: Unknown result type (might be due to invalid IL or missing references) //IL_3c08: Unknown result type (might be due to invalid IL or missing references) //IL_3c36: Unknown result type (might be due to invalid IL or missing references) //IL_3c4a: Unknown result type (might be due to invalid IL or missing references) //IL_3c5e: Unknown result type (might be due to invalid IL or missing references) //IL_3c63: Unknown result type (might be due to invalid IL or missing references) //IL_3c91: Unknown result type (might be due to invalid IL or missing references) //IL_3ca5: Unknown result type (might be due to invalid IL or missing references) //IL_3cb9: Unknown result type (might be due to invalid IL or missing references) //IL_3cbe: Unknown result type (might be due to invalid IL or missing references) //IL_3cec: Unknown result type (might be due to invalid IL or missing references) //IL_3d00: 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_3d47: Unknown result type (might be due to invalid IL or missing references) //IL_3d5b: Unknown result type (might be due to invalid IL or missing references) //IL_3d6f: Unknown result type (might be due to invalid IL or missing references) //IL_3d74: Unknown result type (might be due to invalid IL or missing references) //IL_3da2: Unknown result type (might be due to invalid IL or missing references) //IL_3db6: Unknown result type (might be due to invalid IL or missing references) //IL_3dca: Unknown result type (might be due to invalid IL or missing references) //IL_3dcf: Unknown result type (might be due to invalid IL or missing references) //IL_3dfd: Unknown result type (might be due to invalid IL or missing references) //IL_3e11: Unknown result type (might be due to invalid IL or missing references) //IL_3e25: Unknown result type (might be due to invalid IL or missing references) //IL_3e2a: Unknown result type (might be due to invalid IL or missing references) //IL_3e58: Unknown result type (might be due to invalid IL or missing references) //IL_3e6c: Unknown result type (might be due to invalid IL or missing references) //IL_3e80: Unknown result type (might be due to invalid IL or missing references) //IL_3e85: Unknown result type (might be due to invalid IL or missing references) GameObject bodyPrefab = SurvivorBase.instance.bodyPrefab; GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = SurvivorBase.instance.itemDisplayRules; itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "Head", new Vector3(0f, 0.0026f, 0.0018f), new Vector3(0f, 0f, 0f), new Vector3(0.0038f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Syringe, "DisplaySyringeCluster", "Chest", new Vector3(-0.002f, 0.003f, 0.001f), new Vector3(37.00008f, 340f, 2.672604f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Sword", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Behemoth, "DisplayBehemoth", "Gun", new Vector3(-0.003f, 0.002f, -0.001f), new Vector3(270f, 68.01749f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "Chest", new Vector3(0.002f, 0.008f, 0f), new Vector3(0f, 9.999999f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(-0.001f, 0.0035f, -0f), new Vector3(0f, 45f, 45f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "CalfR", new Vector3(0f, 0.003f, -0.0006f), new Vector3(70f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Chest", new Vector3(-0.0007f, 0.0035f, -0.0025f), new Vector3(0f, 180f, 56f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "Head", new Vector3(0f, 0.0025f, 0.0008f), new Vector3(330f, 0f, 0f), new Vector3(0.008f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "Chest", new Vector3(0.002f, 0.005f, 0f), new Vector3(0f, 180f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "Head", new Vector3(0f, 0.003f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.006f, 0.006f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Chest", new Vector3(-0.0012f, -0.0005f, 0.0023f), new Vector3(300f, 180f, 80.00002f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Chest", new Vector3(0f, 0.0008f, -0.0018f), new Vector3(0f, 180f, 90f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "ThighL", new Vector3(0.0005f, 0.002f, 0f), new Vector3(40.00003f, 14f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Clover, "DisplayClover", "Sword", new Vector3(0f, 0.0025f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "ArmR", new Vector3(0f, 0f, -0.0005f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "Head", new Vector3(0f, 0.002f, 0f), new Vector3(340f, 0f, 0f), new Vector3(0.013f, 0.013f, 0.013f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "ShoulderL", new Vector3(0.001f, 0f, 0f), new Vector3(70.00011f, 270f, 200f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "ArmL", new Vector3(0f, 0.002f, 0f), new Vector3(0f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "Sword", new Vector3(-0.0002f, 0.005f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "Sword", new Vector3(-0.0002f, 0.004f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "Head", new Vector3(0f, -0.0009f, -0.001f), new Vector3(0f, 0f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Pelvis", new Vector3(0.0023f, 0f, 0f), new Vector3(70.00005f, 250f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "ThighR", new Vector3(0f, 0.003f, 0.0008f), new Vector3(90f, 186.0004f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Chest", new Vector3(0f, 0.005f, -0.002f), new Vector3(70f, 180f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "Sword", new Vector3(-0.0005f, 0.0005f, -0.0003f), new Vector3(270f, 255f, 0f), new Vector3(0.0002f, 0.0002f, 0.0002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Pelvis", new Vector3(-0.002f, 0f, 0.0015f), new Vector3(30.00001f, 2700f, 1800f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExecuteLowHealthElite, "DisplayGuillotine", "ThighR", new Vector3(-0.0015f, 0f, 0f), new Vector3(90f, 90f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "Chest", new Vector3(-0.0015f, 0.001f, 0.0014f), new Vector3(0f, 90f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "Head", new Vector3(0.001f, 0.003f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Pelvis", new Vector3(0.0008f, 0f, 0.0016f), new Vector3(0f, 30f, 180f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "ThighL", new Vector3(0.0014f, 0.002f, 0f), new Vector3(90f, 270f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Chest", new Vector3(-0.0007f, 0.0034f, 0f), new Vector3(330f, 45f, 9.858529f), new Vector3(0.005f, 0.008f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Chest", new Vector3(0f, 0.005f, -0.0023f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "ThighR", new Vector3(-0.0013f, 0.004f, 0f), new Vector3(90f, 180f, 0f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "ThighL", new Vector3(0.0008f, 0.0024f, -0.0017f), new Vector3(90f, 230f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Pelvis", new Vector3(0.0015f, 0f, 0.0012f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "Chest", new Vector3(0.001f, 0.002f, 0.002f), new Vector3(270f, 161f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Chest", new Vector3(0.0006f, 0.0023f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Chest", new Vector3(0.0006f, 0.001f, 0.002f), new Vector3(-2.134434f, 20f, 15f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Pelvis", new Vector3(-0.0015f, 0f, 0.0012f), new Vector3(85f, 180f, 180f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SecondarySkillMagazine, "DisplayDoubleMag", "Gun", new Vector3(-0.00017f, -0.0004f, -0.001f), new Vector3(0f, 240f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "Pelvis", new Vector3(0.0023f, 0f, 0f), new Vector3(0f, 0f, 11f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "Chest", new Vector3(0.0018f, 0.003f, 0.0016f), new Vector3(0f, 0f, 90f), new Vector3(0.016f, 0.016f, 0.016f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "Pelvis", new Vector3(0f, -0.0006f, 0.0015f), new Vector3(270f, 345f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "Pelvis", new Vector3(-0.0008f, -0.0038f, 0f), new Vector3(0f, 180f, 2.5761611f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(0.0007f, 0.005f, -0.0024f), new Vector3(0f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "Head", new Vector3(0f, 0.0018f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseFlower", "Head", new Vector3(-0.0008f, 0.0018f, -0.0017f), new Vector3(90f, 180f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "Chest", new Vector3(-0.0005f, -0.001f, 0.0017f), new Vector3(0f, 90f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "Head", new Vector3(0.001f, 0.003f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldheart", "Chest", new Vector3(-0.0004f, 0.002f, 0.002f), new Vector3(0f, 0f, 20f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "ShoulderL", new Vector3(0.0013f, 0f, 0f), new Vector3(15f, 90f, 90f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Chest", new Vector3(0.0006f, 0.0023f, 0.0023f), new Vector3(90f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "ShoulderL", new Vector3(0.0015f, 0.0007f, 0f), new Vector3(-1.024528f, 90f, 90f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "Head", new Vector3(0f, 0.0035f, -0.001f), new Vector3(0f, 270f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Thorns, "DisplayRazorwireLeft", "ArmL", new Vector3(0.0003f, 0f, 0f), new Vector3(270f, 160f, 0f), new Vector3(0.005f, 0.005f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarPrimaryReplacement, "DisplayBirdEye", "Head", new Vector3(0f, 0.002f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.013f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "Chest", new Vector3(0f, 0f, -0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Pelvis", new Vector3(0.0015f, 0.001f, 0f), new Vector3(0f, 180f, 270f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Chest", new Vector3(0.001f, 0.0052f, -0.001f), new Vector3(270f, 0f, 0f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bear, "DisplayBear", "Chest", new Vector3(0f, 0.0025f, 0.0025f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "HandR", new Vector3(0f, 0.0005f, 0.0002f), new Vector3(90f, 180f, 0f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Pelvis", new Vector3(0.0015f, -0.0004f, -0.0014f), new Vector3(0f, 0f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "Sword", new Vector3(-0.0006f, 0.012f, -0.0005f), new Vector3(90f, 345f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "Pelvis", new Vector3(0.0023f, 0f, 0f), new Vector3(0f, 0f, 180f), new Vector3(0.0025f, 0.0025f, 0.0025f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "ThighL", new Vector3(0.0003f, 0.002f, 0.0009f), new Vector3(270f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "Chest", new Vector3(-0.002f, 0.003f, 0.0008f), new Vector3(0f, 180f, 90f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Sword", new Vector3(0f, 0.0023f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "Head", new Vector3(0f, 0.004f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Sword", new Vector3(0.0004f, 0.01f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullCrown", "Head", new Vector3(0f, 0.002f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.006f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Pelvis", new Vector3(0.0015f, -0.0013f, 0.0017f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FlatHealth, "DisplaySteakCurved", "Sword", new Vector3(0f, 0.008f, 0.001f), new Vector3(50f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(-0.001f, 0.005f, -0.0023f), new Vector3(15f, 0f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Tooth, "DisplayToothMeshLarge", "Head", new Vector3(0.0006f, 0.004f, -0.0008f), new Vector3(1.707547f, 13f, 65.00001f), new Vector3(0.03f, 0.03f, 0.03f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "Sword", new Vector3(0f, 0.013f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "Sword", new Vector3(0f, 0.01f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "ThighR", new Vector3(-0.0013f, 0.001f, 0f), new Vector3(0f, 270f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "Head", new Vector3(0f, 0.0043f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "Chest", new Vector3(0f, 0.0035f, -0.0025f), new Vector3(15f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireballsOnHit, "DisplayFireballsOnHit", "Sword", new Vector3(-0.0007f, 0.015f, 0f), new Vector3(275f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "ThighL", new Vector3(0.0017f, 0.002f, 0.0008f), new Vector3(0f, 45f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "Chest", new Vector3(-0.0005f, 0.0024f, 0.0025f), new Vector3(0f, 0f, 45f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "ThighR", new Vector3(-0.00085f, 0.0033f, 0f), new Vector3(30f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomDamageZone, "DisplayRandomDamageZone", "HandR", new Vector3(0f, 0.0017f, 0.0009f), new Vector3(18f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.UtilitySkillMagazine, "DisplayAfterburnerShoulderRing", "Chest", new Vector3(0.002f, 0.004f, 0f), new Vector3(70f, 180f, 180f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "Chest", new Vector3(-0.0003f, 0.0007f, -0.0016f), new Vector3(0f, 35f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "Head", new Vector3(-0.001f, 0.002f, 0f), new Vector3(0f, 0f, 0f), new Vector3(-0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "Head", new Vector3(0f, 0.004f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "Head", new Vector3(0f, 0.004f, 0f), new Vector3(90f, 180f, 0f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "Head", new Vector3(0f, 0.003f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "Head", new Vector3(0f, 0.003f, 0.003f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "Head", new Vector3(0f, 0.0045f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Pelvis", new Vector3(-0.0013f, -0.001f, 0.0015f), new Vector3(0f, 345f, 195f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Pelvis", new Vector3(0.002f, 0f, -0.0015f), new Vector3(0f, 0f, 180f), new Vector3(0.0004f, 0.0004f, 0.0004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Pelvis", new Vector3(-0.0012f, 0.001f, -0.0015f), new Vector3(0f, 30f, 180f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "Head", new Vector3(0f, 0.0022f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.019f, 0.015f, 0.012f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Chest", new Vector3(0f, 0.0034f, -0.003f), new Vector3(0f, 90f, 15f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Pelvis", new Vector3(0.0018f, 0f, -0.001f), new Vector3(85f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Chest", new Vector3(0f, 0.0015f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Pelvis", new Vector3(0.0015f, -0.001f, 0.0014f), new Vector3(0f, 30f, 180f), new Vector3(0f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "Pelvis", new Vector3(-0.002f, -0.0008f, 0.001f), new Vector3(0f, 30f, 170f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "Chest", new Vector3(0.0015f, 0.0045f, 0f), new Vector3(280f, 0f, 15f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Sword", new Vector3(-0.0002f, 0.004f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "Head", new Vector3(0f, 0.004f, -0.0028f), new Vector3(30f, 0f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Chest", new Vector3(0f, 0.002f, 0.002f), new Vector3(15f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", new Vector3(-0.004f, 0f, -0.01f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", new Vector3(0.007f, 0f, -0.01f), new Vector3(270f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", new Vector3(0.007f, -0.005f, -0.005f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", new Vector3(0.003f, 0f, -0.013f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", new Vector3(0.003f, 0f, -0.013f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Chest", new Vector3(0f, 0.0028f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Chest", new Vector3(0.0028f, 0.006f, 0f), new Vector3(15f, 90f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "Chest", new Vector3(-0.0017f, 0.004f, 0f), new Vector3(0f, 0f, 10f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Chest", new Vector3(0f, 0.003f, -0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfL", localPos = new Vector3(0f, 0.004f, 0f), localAngles = new Vector3(0f, 0f, 180f), localScale = new Vector3(0.002f, 0.002f, 0.002f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfR", localPos = new Vector3(0f, 0.004f, 0f), localAngles = new Vector3(0f, 0f, 180f), localScale = new Vector3(0.002f, 0.002f, 0.002f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MushroomVoid, "DisplayMushroomVoid", "Chest", new Vector3(0.002f, 0.005f, 0f), new Vector3(0f, 180f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CloverVoid, "DisplayCloverVoid", "Sword", new Vector3(0f, 0.0025f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StrengthenBurn, "DisplayGasTank", "Pelvis", new Vector3(-0.00126f, -0.00068f, -0.00115f), new Vector3(6.69249f, 180f, 163.5702f), new Vector3(0.00101f, 0.00101f, 0.00101f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RegeneratingScrap, "DisplayRegeneratingScrap", "Pelvis", new Vector3(-0.00109f, -0.00112f, 0.00202f), new Vector3(10.59845f, 342.7056f, 176.7224f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitVoid, "DisplayTriTipVoid", "Chest", new Vector3(-0.0012f, -0.0005f, 0.0023f), new Vector3(300.4234f, 186.2263f, 164.7107f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlassesVoid, "DisplayGlassesVoid", "Head", new Vector3(0f, 0.0026f, 0.0018f), new Vector3(0f, 0f, 0f), new Vector3(0.0038f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCacheVoid, "DisplayKeyVoid", "Chest", new Vector3(0.0018f, 0.003f, 0.0016f), new Vector3(0f, 0f, 90f), new Vector3(0.016f, 0.016f, 0.016f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHitVoid, "DisplayBaubleVoid", "Pelvis", new Vector3(-0.00064f, -0.00388f, 0f), new Vector3(0f, 180f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MissileVoid, "DisplayMissileLauncherVoid", "Chest", new Vector3(0.002f, 0.008f, 0f), new Vector3(0f, 10f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightningVoid, "DisplayUkuleleVoid", "Chest", new Vector3(-0.0007f, 0.0035f, -0.0025f), new Vector3(0f, 180f, 56f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLifeVoid, "DisplayHippoVoid", "Chest", new Vector3(-0.00114f, 0.00445f, -0.00205f), new Vector3(345.0042f, 178.6128f, 0.359f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazineVoid, "DisplayFuelCellVoid", "Chest", new Vector3(-0.0008f, 0.001f, 0.0014f), new Vector3(0f, 0f, 90f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeathVoid, "DisplayWillowWispVoid", "Pelvis", new Vector3(0.0015f, -0.0004f, -0.0014f), new Vector3(0f, 0f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FragileDamageBonus, "DisplayDelicateWatch", "HandR", new Vector3(0.00026f, -0.00047f, 0.00037f), new Vector3(64.89851f, 22.99744f, 18.54056f), new Vector3(0.00596f, 0.00596f, 0.00596f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.OutOfCombatArmor, "DisplayOddlyShapedOpal", "Chest", new Vector3(0f, 0.00254f, 0.00228f), new Vector3(0f, 0f, 0f), new Vector3(0.00166f, 0.00166f, 0.00166f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoreMissile, "DisplayICBM", "Chest", new Vector3(0f, 0.00376f, -0.00232f), new Vector3(3.02057f, 356.9576f, 314.7533f), new Vector3(0.00074f, 0.00074f, 0.00074f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ImmuneToDebuff, "DisplayRainCoatBelt", "Pelvis", new Vector3(0f, 3E-05f, 0.0001f), new Vector3(6.93536f, 180f, 180f), new Vector3(0.00835f, 0.00502f, 0.00815f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomEquipmentTrigger, "DisplayBottledChaos", "Pelvis", new Vector3(0.00095f, -3E-05f, 0.00086f), new Vector3(10.09583f, 180f, 180f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PrimarySkillShuriken, "DisplayShuriken", "HandL", new Vector3(0f, 0.00078f, 0.00038f), new Vector3(0f, 0f, 0f), new Vector3(0.00234f, 0.00234f, 0.00234f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.RandomlyLunar, "DisplayDomino", new Vector3(0.00301f, -0.00211f, -0.00916f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHurt, "DisplayRollOfPennies", "Pelvis", new Vector3(-0.00204f, -0.00045f, -0.00046f), new Vector3(0.19218f, 355.943f, 184.4624f), new Vector3(0.0043f, 0.0043f, 0.0043f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "DisplayLunarShoulderNature", "ShoulderL", new Vector3(0.00114f, 0.0006f, 5E-05f), new Vector3(28.66669f, 333.8164f, 240.7946f), new Vector3(0.00583f, 0.00583f, 0.00583f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfSpeedDoubleHealth, "DisplayLunarShoulderStone", "ShoulderR", new Vector3(-0.00104f, 0.00046f, 0.00021f), new Vector3(349.0207f, 199.2222f, 190.1553f), new Vector3(0.00583f, 0.00583f, 0.00795f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FreeChest, "DisplayShippingRequestForm", "Pelvis", new Vector3(-0.00151f, -0.00063f, -0.00071f), new Vector3(286.5106f, 277.7527f, 137.3893f), new Vector3(0.00234f, 0.00234f, 0.00234f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ElementalRingVoid, "DisplayVoidRing", "Sword", new Vector3(-0.0002f, 0.00445f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "Head", localPos = new Vector3(0f, 0.0022f, 9E-05f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.01083f, 0.01083f, 0.01083f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "HeadCenter", localPos = new Vector3(-0.00033f, 0.00073f, 0.00034f), localAngles = new Vector3(351.1362f, 0f, 0f), localScale = new Vector3(0.02015f, 0.02015f, 0.02015f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.MinorConstructOnKill, "DisplayDefenseNucleus", new Vector3(0.0006f, -2E-05f, -0.01277f), new Vector3(270f, 0.32262f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.VoidMegaCrabItem, "DisplayMegaCrabItem", "Chest", new Vector3(0f, -0.00017f, 0.00139f), new Vector3(0f, 0f, 0f), new Vector3(0.00054f, 0.00054f, 0.00054f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Molotov, "DisplayMolotov", "Pelvis", new Vector3(-0.00107f, 0.00036f, -0.00142f), new Vector3(10.22982f, 87.78105f, 153.947f), new Vector3(0.00163f, 0.00163f, 0.00163f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.VendingMachine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayVendingMachine2"), childName = "Head", localPos = new Vector3(-0.00196f, 0.002f, 0.00116f), localAngles = new Vector3(350.9883f, 108.2437f, 0f), localScale = new Vector3(0.00132f, 0.00132f, 0.00132f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BossHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBlunderbuss"), childName = "Gun", localPos = new Vector3(-1E-05f, 0.00124f, 0f), localAngles = new Vector3(89.44468f, 89.9985f, 204.323f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayTricornGhost"), childName = "Head", localPos = new Vector3(0f, 0.00373f, -0.00096f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.01089f, 0.01089f, 0.01089f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BossHunterConsumed, "DisplayTricornUsed", "Head", new Vector3(0f, 0.00373f, -0.00096f), new Vector3(0f, 0f, 0f), new Vector3(0.01089f, 0.01089f, 0.01089f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GummyClone, "DisplayGummyClone", "Sword", new Vector3(-0.00028f, 0.00631f, 0.00032f), new Vector3(87.2934f, 180f, 180f), new Vector3(0.00135f, 0.00135f, 0.00135f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.MultiShopCard, "DisplayExecutiveCard", "Chest", new Vector3(-1E-05f, 0.00216f, 0.00211f), new Vector3(71.89886f, 180f, 180f), new Vector3(0.01217f, 0.01217f, 0.01217f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.EliteVoidEquipment, "DisplayAffixVoid", "Head", new Vector3(0f, 0.00244f, 0.0015f), new Vector3(70.64544f, 0f, 0f), new Vector3(0.00172f, 0.00172f, 0.00172f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Elites.Earth.eliteEquipmentDef, "DisplayEliteMendingAntlers", "Head", new Vector3(0f, 0.00359f, 0.00057f), new Vector3(0f, 0f, 0f), new Vector3(0.00574f, 0.00574f, 0.00574f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealOnCrit, "DisplayScythe", "Sword", new Vector3(-5E-05f, 8E-05f, 0f), new Vector3(86.5349f, 261.7535f, 261.7387f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSecondaryReplacement, "DisplayBirdClaw", "HandR", new Vector3(0.00141f, -0.0004f, 0.00049f), new Vector3(333.2811f, 351.5399f, 290.5176f), new Vector3(0.00498f, 0.00291f, 0.00619f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.LunarSpecialReplacement, "DisplayBirdHeart", new Vector3(-0.00835f, 0.0003f, -0.00748f), new Vector3(0f, 0f, 0f), new Vector3(0.34151f, 0.34151f, 0.34151f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ParentEgg, "DisplayParentEgg", "Chest", new Vector3(0f, 0.00038f, -0.00145f), new Vector3(0f, 0f, 0f), new Vector3(0.00037f, 0.00037f, 0.00037f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoveSpeedOnKill, "DisplayGrappleHook", "Pelvis", new Vector3(0.00053f, -0.00106f, 0.00151f), new Vector3(355.1072f, 2.28489f, 180.1681f), new Vector3(0.00171f, 0.00171f, 0.00171f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealingPotion, "DisplayHealingPotion", "Pelvis", new Vector3(-0.00165f, -0.00058f, -0.00129f), new Vector3(342.3314f, 182.8015f, 155.542f), new Vector3(0.00042f, 0.00042f, 0.00042f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PermanentDebuffOnHit, "DisplayScorpion", "Chest", new Vector3(3E-05f, 4E-05f, -0.00055f), new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedAndMoveSpeed, "DisplayCoffee", "ThighL", new Vector3(0.00165f, 0.00162f, 4E-05f), new Vector3(348.787f, 58.97269f, 187.1566f), new Vector3(0.00252f, 0.00252f, 0.00252f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritDamage, "DisplayLaserSight", "Gun", new Vector3(-0.00087f, 0.00192f, -0.00047f), new Vector3(0f, 335.0365f, 358.1814f), new Vector3(0.00075f, 0.00075f, 0.00075f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BearVoid, "DisplayBearVoid", "Chest", new Vector3(0f, 0.0025f, 0.0025f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixLunar, "DisplayEliteLunar,Eye", "Head", new Vector3(0f, 0.00232f, 0.00275f), new Vector3(0f, 0f, 0f), new Vector3(0.00241f, 0.00241f, 0.00241f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LightningStrikeOnHit, "DisplayChargedPerforator", "Sword", new Vector3(-0.00047f, 0.0145f, 0.00052f), new Vector3(344.3029f, 169.2036f, 190.3225f), new Vector3(0.01476f, 0.01476f, 0.01476f))); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } } } namespace Starstorm2Unofficial.Survivors.Nemmando.Components { public class SS2CharacterAnimationEvents : MonoBehaviour { private ChildLocator childLocator; private void Awake() { childLocator = ((Component)this).GetComponent(); } public void PlayEffect(string effectString) { if (Object.op_Implicit((Object)(object)childLocator)) { Transform val = childLocator.FindChild(effectString); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(false); ((Component)val).gameObject.SetActive(true); } } } public void StopEffect(string effectString) { if (Object.op_Implicit((Object)(object)childLocator)) { Transform val = childLocator.FindChild(effectString); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.SetActive(false); } } } public void PlaySound(string soundString) { Util.PlaySound(soundString, ((Component)this).gameObject); } } public class NemmandoController : MonoBehaviour { public static GameObject gunCrosshairOverridePrefab = Utils.LoadCrosshair("SimpleDot"); public bool chargingDecisiveStrike = false; public bool rolling = false; private bool gunHolstered; private Transform gun; public GameObject cameraCoverInstance; private CharacterBody characterBody; private CharacterModel model; private ChildLocator childLocator; public static GameObject jetEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/CommandoDashJets.prefab").WaitForCompletion(); private GameObject leftJetInstance; private GameObject rightJetInstance; private void Awake() { characterBody = ((Component)this).gameObject.GetComponent(); childLocator = ((Component)this).gameObject.GetComponentInChildren(); model = ((Component)this).GetComponentInChildren(); ((MonoBehaviour)this).Invoke("HolsterGun", 0.5f); } private void LateUpdate() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (gunHolstered) { gun.localPosition = new Vector3(-0.002f, -0.0015f, 0f); gun.localRotation = Quaternion.Euler(0f, 90f, 0f); } } private void HolsterGun() { if (Object.op_Implicit((Object)(object)characterBody) && (Object)(object)characterBody.skillLocator.secondary.skillDef == (Object)(object)NemmandoCore.secondaryDistantGash && (Object)(object)characterBody.skillLocator.special == (Object)(object)NemmandoCore.specialDecisiveStrike) { gunHolstered = true; gun = childLocator.FindChild("Gun"); gun.parent = childLocator.FindChild("Pelvis"); } } public void ActivateThrusters() { Transform val = childLocator.FindChild("JetMuzzleL"); Transform val2 = childLocator.FindChild("JetMuzzleR"); if (Object.op_Implicit((Object)(object)val) && !Object.op_Implicit((Object)(object)leftJetInstance)) { leftJetInstance = Object.Instantiate(jetEffect, val); } if (Object.op_Implicit((Object)(object)val2) && !Object.op_Implicit((Object)(object)rightJetInstance)) { rightJetInstance = Object.Instantiate(jetEffect, val2); } } public void DeactivateThrusters() { if (Object.op_Implicit((Object)(object)leftJetInstance)) { Object.Destroy((Object)(object)leftJetInstance); leftJetInstance = null; } if (Object.op_Implicit((Object)(object)rightJetInstance)) { Object.Destroy((Object)(object)leftJetInstance); leftJetInstance = null; } } public void CoverScreen() { //IL_00e2: 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) if (!Object.op_Implicit((Object)(object)cameraCoverInstance) && Object.op_Implicit((Object)(object)characterBody) && Object.op_Implicit((Object)(object)characterBody.master) && Object.op_Implicit((Object)(object)characterBody.master.playerCharacterMasterController) && Object.op_Implicit((Object)(object)characterBody.master.playerCharacterMasterController.networkUser) && Object.op_Implicit((Object)(object)characterBody.master.playerCharacterMasterController.networkUser.cameraRigController)) { Transform transform = ((Component)characterBody.master.playerCharacterMasterController.networkUser.cameraRigController).transform; cameraCoverInstance = Object.Instantiate(Assets.nemmandoCameraCover); cameraCoverInstance.transform.parent = transform; cameraCoverInstance.transform.localPosition = Vector3.zero; cameraCoverInstance.transform.localRotation = Quaternion.Euler(0f, 0f, 0f); ApplyOverlays(); } } public void UncoverScreen() { if (Object.op_Implicit((Object)(object)cameraCoverInstance)) { Object.Destroy((Object)(object)cameraCoverInstance); } } private void OnDestroy() { UncoverScreen(); } private void ApplyOverlays() { CharacterModel[] array = Object.FindObjectsOfType(); foreach (CharacterModel val in array) { if (Object.op_Implicit((Object)(object)val)) { TemporaryOverlayInstance val2 = TemporaryOverlayManager.AddOverlay(((Component)val).gameObject); val2.duration = 5f * (ChargedSlashAttack.baseDuration / characterBody.attackSpeed); val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 1f); val2.destroyComponentOnEnd = true; val2.originalMaterial = Assets.pureBlackMaterial; val2.AddToCharacterModel(val); val2.Start(); } } } } public class NemmandoBossSpecialSwapComponent : MonoBehaviour { private CharacterBody body; private void Awake() { body = ((Component)this).GetComponent(); ((MonoBehaviour)this).Invoke("OverrideSpecial", 1f); } private void OverrideSpecial() { if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.teamComponent)) { body.skillLocator.special.SetBaseSkill(NemmandoCore.decisiveStrikeSkillDef); } Object.Destroy((Object)(object)this); } } public class NemmandoUnlockComponent : MonoBehaviour { private HealthComponent healthComponent; public static event Action OnDeath; private void Awake() { healthComponent = ((Component)this).GetComponent(); } private void FixedUpdate() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)healthComponent) && !healthComponent.alive && (int)healthComponent.body.teamComponent.teamIndex != 1) { NemmandoUnlockComponent.OnDeath?.Invoke(Run.instance); } } static NemmandoUnlockComponent() { NemmandoUnlockComponent.OnDeath = delegate { }; } } } namespace Starstorm2Unofficial.Survivors.Nemmando.Achievements { [RegisterAchievement("SS2UNemmandoKillSelf", "Skins.SS2UNemmando.Commando", null, 3u, null)] public class NemmandoKillSelfAchievement : BaseAchievement { public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); NemmandoUnlockComponent.OnDeath += NemmandoUnlockComponent_OnDeath; } public override void OnBodyRequirementBroken() { NemmandoUnlockComponent.OnDeath -= NemmandoUnlockComponent_OnDeath; ((BaseAchievement)this).OnBodyRequirementBroken(); } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return NemmandoCore.bodyIndex; } private void NemmandoUnlockComponent_OnDeath(Run obj) { ((BaseAchievement)this).Grant(); } } [RegisterAchievement("SS2UNemmandoUnlock", "Characters.SS2UNemmando", null, 3u, null)] public class NemmandoUnlockAchievement : BaseAchievement { public override void OnInstall() { ((BaseAchievement)this).OnInstall(); NemmandoUnlockComponent.OnDeath += NemmandoUnlockComponent_OnDeath; } private void NemmandoUnlockComponent_OnDeath(Run obj) { ((BaseAchievement)this).Grant(); } public override void OnUninstall() { NemmandoUnlockComponent.OnDeath -= NemmandoUnlockComponent_OnDeath; ((BaseAchievement)this).OnUninstall(); } } [RegisterAchievement("SS2UNemmandoClearGameTyphoon", "Skins.SS2UNemmando.GrandMastery", null, 15u, null)] public class NemmandoGrandMasteryAchievement : BaseGrandMasteryAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return NemmandoCore.bodyIndex; } } [RegisterAchievement("SS2UNemmandoClearGameMonsoon", "Skins.SS2UNemmando.Mastery", null, 10u, null)] public class NemmandoMasteryAchievement : BasePerSurvivorClearGameMonsoonAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return NemmandoCore.bodyIndex; } } } namespace Starstorm2Unofficial.Survivors.Executioner { internal class ExecutionerItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_0060: 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_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_00bb: 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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_012a: 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_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: 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_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: 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_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0338: 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_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0365: 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_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_045d: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_04a4: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04cc: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04ff: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_0527: Unknown result type (might be due to invalid IL or missing references) //IL_052c: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0582: 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_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_0610: Unknown result type (might be due to invalid IL or missing references) //IL_0624: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_067f: Unknown result type (might be due to invalid IL or missing references) //IL_0693: Unknown result type (might be due to invalid IL or missing references) //IL_0698: Unknown result type (might be due to invalid IL or missing references) //IL_06c6: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_06ee: Unknown result type (might be due to invalid IL or missing references) //IL_06f3: Unknown result type (might be due to invalid IL or missing references) //IL_0721: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_0749: Unknown result type (might be due to invalid IL or missing references) //IL_074e: Unknown result type (might be due to invalid IL or missing references) //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07a9: Unknown result type (might be due to invalid IL or missing references) //IL_07d7: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07ff: Unknown result type (might be due to invalid IL or missing references) //IL_0804: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0846: Unknown result type (might be due to invalid IL or missing references) //IL_085a: Unknown result type (might be due to invalid IL or missing references) //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_088d: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08b5: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08e8: Unknown result type (might be due to invalid IL or missing references) //IL_08fc: Unknown result type (might be due to invalid IL or missing references) //IL_0910: Unknown result type (might be due to invalid IL or missing references) //IL_0915: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_0957: Unknown result type (might be due to invalid IL or missing references) //IL_096b: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09b2: Unknown result type (might be due to invalid IL or missing references) //IL_09c6: Unknown result type (might be due to invalid IL or missing references) //IL_09cb: Unknown result type (might be due to invalid IL or missing references) //IL_09f9: Unknown result type (might be due to invalid IL or missing references) //IL_0a0d: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a54: Unknown result type (might be due to invalid IL or missing references) //IL_0a68: Unknown result type (might be due to invalid IL or missing references) //IL_0a7c: Unknown result type (might be due to invalid IL or missing references) //IL_0a81: 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_0ac3: Unknown result type (might be due to invalid IL or missing references) //IL_0ad7: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0b0a: Unknown result type (might be due to invalid IL or missing references) //IL_0b1e: Unknown result type (might be due to invalid IL or missing references) //IL_0b32: Unknown result type (might be due to invalid IL or missing references) //IL_0b37: Unknown result type (might be due to invalid IL or missing references) //IL_0b65: Unknown result type (might be due to invalid IL or missing references) //IL_0b79: Unknown result type (might be due to invalid IL or missing references) //IL_0b8d: Unknown result type (might be due to invalid IL or missing references) //IL_0b92: Unknown result type (might be due to invalid IL or missing references) //IL_0bc0: Unknown result type (might be due to invalid IL or missing references) //IL_0bd4: Unknown result type (might be due to invalid IL or missing references) //IL_0be8: Unknown result type (might be due to invalid IL or missing references) //IL_0bed: Unknown result type (might be due to invalid IL or missing references) //IL_0c1b: Unknown result type (might be due to invalid IL or missing references) //IL_0c2f: Unknown result type (might be due to invalid IL or missing references) //IL_0c43: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c76: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: 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_0ca3: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0cfe: Unknown result type (might be due to invalid IL or missing references) //IL_0d2c: Unknown result type (might be due to invalid IL or missing references) //IL_0d40: Unknown result type (might be due to invalid IL or missing references) //IL_0d54: Unknown result type (might be due to invalid IL or missing references) //IL_0d59: Unknown result type (might be due to invalid IL or missing references) //IL_0d87: Unknown result type (might be due to invalid IL or missing references) //IL_0d9b: Unknown result type (might be due to invalid IL or missing references) //IL_0daf: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) //IL_0df6: Unknown result type (might be due to invalid IL or missing references) //IL_0e0a: Unknown result type (might be due to invalid IL or missing references) //IL_0e0f: Unknown result type (might be due to invalid IL or missing references) //IL_0e3d: Unknown result type (might be due to invalid IL or missing references) //IL_0e51: Unknown result type (might be due to invalid IL or missing references) //IL_0e65: Unknown result type (might be due to invalid IL or missing references) //IL_0e6a: Unknown result type (might be due to invalid IL or missing references) //IL_0e98: Unknown result type (might be due to invalid IL or missing references) //IL_0eac: Unknown result type (might be due to invalid IL or missing references) //IL_0ec0: Unknown result type (might be due to invalid IL or missing references) //IL_0ec5: Unknown result type (might be due to invalid IL or missing references) //IL_0ef3: Unknown result type (might be due to invalid IL or missing references) //IL_0f07: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0f20: Unknown result type (might be due to invalid IL or missing references) //IL_0f4e: Unknown result type (might be due to invalid IL or missing references) //IL_0f62: Unknown result type (might be due to invalid IL or missing references) //IL_0f76: Unknown result type (might be due to invalid IL or missing references) //IL_0f7b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa9: Unknown result type (might be due to invalid IL or missing references) //IL_0fbd: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_1004: Unknown result type (might be due to invalid IL or missing references) //IL_1018: Unknown result type (might be due to invalid IL or missing references) //IL_102c: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_105f: Unknown result type (might be due to invalid IL or missing references) //IL_1073: Unknown result type (might be due to invalid IL or missing references) //IL_1087: Unknown result type (might be due to invalid IL or missing references) //IL_108c: Unknown result type (might be due to invalid IL or missing references) //IL_10ba: Unknown result type (might be due to invalid IL or missing references) //IL_10ce: Unknown result type (might be due to invalid IL or missing references) //IL_10e2: Unknown result type (might be due to invalid IL or missing references) //IL_10e7: Unknown result type (might be due to invalid IL or missing references) //IL_1115: Unknown result type (might be due to invalid IL or missing references) //IL_1129: Unknown result type (might be due to invalid IL or missing references) //IL_113d: Unknown result type (might be due to invalid IL or missing references) //IL_1142: Unknown result type (might be due to invalid IL or missing references) //IL_1170: Unknown result type (might be due to invalid IL or missing references) //IL_1184: Unknown result type (might be due to invalid IL or missing references) //IL_1198: Unknown result type (might be due to invalid IL or missing references) //IL_119d: Unknown result type (might be due to invalid IL or missing references) //IL_11cb: Unknown result type (might be due to invalid IL or missing references) //IL_11df: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Unknown result type (might be due to invalid IL or missing references) //IL_11f8: Unknown result type (might be due to invalid IL or missing references) //IL_1226: Unknown result type (might be due to invalid IL or missing references) //IL_123a: Unknown result type (might be due to invalid IL or missing references) //IL_124e: Unknown result type (might be due to invalid IL or missing references) //IL_1253: Unknown result type (might be due to invalid IL or missing references) //IL_1281: Unknown result type (might be due to invalid IL or missing references) //IL_1295: Unknown result type (might be due to invalid IL or missing references) //IL_12a9: Unknown result type (might be due to invalid IL or missing references) //IL_12ae: Unknown result type (might be due to invalid IL or missing references) //IL_12dc: Unknown result type (might be due to invalid IL or missing references) //IL_12f0: Unknown result type (might be due to invalid IL or missing references) //IL_1304: Unknown result type (might be due to invalid IL or missing references) //IL_1309: Unknown result type (might be due to invalid IL or missing references) //IL_1337: Unknown result type (might be due to invalid IL or missing references) //IL_134b: Unknown result type (might be due to invalid IL or missing references) //IL_135f: Unknown result type (might be due to invalid IL or missing references) //IL_1364: Unknown result type (might be due to invalid IL or missing references) //IL_1392: Unknown result type (might be due to invalid IL or missing references) //IL_13a6: Unknown result type (might be due to invalid IL or missing references) //IL_13ba: Unknown result type (might be due to invalid IL or missing references) //IL_13bf: Unknown result type (might be due to invalid IL or missing references) //IL_13ed: Unknown result type (might be due to invalid IL or missing references) //IL_1401: Unknown result type (might be due to invalid IL or missing references) //IL_1415: Unknown result type (might be due to invalid IL or missing references) //IL_141a: Unknown result type (might be due to invalid IL or missing references) //IL_1448: 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_1470: Unknown result type (might be due to invalid IL or missing references) //IL_1475: Unknown result type (might be due to invalid IL or missing references) //IL_14a3: Unknown result type (might be due to invalid IL or missing references) //IL_14b7: Unknown result type (might be due to invalid IL or missing references) //IL_14cb: Unknown result type (might be due to invalid IL or missing references) //IL_14d0: Unknown result type (might be due to invalid IL or missing references) //IL_14fe: Unknown result type (might be due to invalid IL or missing references) //IL_1512: Unknown result type (might be due to invalid IL or missing references) //IL_1526: Unknown result type (might be due to invalid IL or missing references) //IL_152b: Unknown result type (might be due to invalid IL or missing references) //IL_1559: Unknown result type (might be due to invalid IL or missing references) //IL_156d: Unknown result type (might be due to invalid IL or missing references) //IL_1581: Unknown result type (might be due to invalid IL or missing references) //IL_1586: Unknown result type (might be due to invalid IL or missing references) //IL_15b4: Unknown result type (might be due to invalid IL or missing references) //IL_15c8: Unknown result type (might be due to invalid IL or missing references) //IL_15dc: Unknown result type (might be due to invalid IL or missing references) //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_160f: Unknown result type (might be due to invalid IL or missing references) //IL_1623: Unknown result type (might be due to invalid IL or missing references) //IL_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_166a: Unknown result type (might be due to invalid IL or missing references) //IL_167e: Unknown result type (might be due to invalid IL or missing references) //IL_1692: Unknown result type (might be due to invalid IL or missing references) //IL_1697: Unknown result type (might be due to invalid IL or missing references) //IL_16c5: Unknown result type (might be due to invalid IL or missing references) //IL_16d9: Unknown result type (might be due to invalid IL or missing references) //IL_16ed: Unknown result type (might be due to invalid IL or missing references) //IL_16f2: Unknown result type (might be due to invalid IL or missing references) //IL_1720: Unknown result type (might be due to invalid IL or missing references) //IL_1734: Unknown result type (might be due to invalid IL or missing references) //IL_1748: Unknown result type (might be due to invalid IL or missing references) //IL_174d: Unknown result type (might be due to invalid IL or missing references) //IL_177b: Unknown result type (might be due to invalid IL or missing references) //IL_178f: Unknown result type (might be due to invalid IL or missing references) //IL_17a3: Unknown result type (might be due to invalid IL or missing references) //IL_17a8: Unknown result type (might be due to invalid IL or missing references) //IL_17d6: Unknown result type (might be due to invalid IL or missing references) //IL_17ea: Unknown result type (might be due to invalid IL or missing references) //IL_17fe: Unknown result type (might be due to invalid IL or missing references) //IL_1803: Unknown result type (might be due to invalid IL or missing references) //IL_1831: Unknown result type (might be due to invalid IL or missing references) //IL_1845: Unknown result type (might be due to invalid IL or missing references) //IL_1859: Unknown result type (might be due to invalid IL or missing references) //IL_185e: Unknown result type (might be due to invalid IL or missing references) //IL_188c: Unknown result type (might be due to invalid IL or missing references) //IL_18a0: Unknown result type (might be due to invalid IL or missing references) //IL_18b4: Unknown result type (might be due to invalid IL or missing references) //IL_18b9: Unknown result type (might be due to invalid IL or missing references) //IL_18e7: Unknown result type (might be due to invalid IL or missing references) //IL_18fb: Unknown result type (might be due to invalid IL or missing references) //IL_190f: Unknown result type (might be due to invalid IL or missing references) //IL_1914: Unknown result type (might be due to invalid IL or missing references) //IL_1942: Unknown result type (might be due to invalid IL or missing references) //IL_1956: Unknown result type (might be due to invalid IL or missing references) //IL_196a: Unknown result type (might be due to invalid IL or missing references) //IL_196f: Unknown result type (might be due to invalid IL or missing references) //IL_199d: Unknown result type (might be due to invalid IL or missing references) //IL_19b1: Unknown result type (might be due to invalid IL or missing references) //IL_19c5: 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_19f8: Unknown result type (might be due to invalid IL or missing references) //IL_1a0c: Unknown result type (might be due to invalid IL or missing references) //IL_1a20: Unknown result type (might be due to invalid IL or missing references) //IL_1a25: Unknown result type (might be due to invalid IL or missing references) //IL_1a53: Unknown result type (might be due to invalid IL or missing references) //IL_1a67: Unknown result type (might be due to invalid IL or missing references) //IL_1a7b: Unknown result type (might be due to invalid IL or missing references) //IL_1a80: Unknown result type (might be due to invalid IL or missing references) //IL_1aae: Unknown result type (might be due to invalid IL or missing references) //IL_1ac2: Unknown result type (might be due to invalid IL or missing references) //IL_1ad6: Unknown result type (might be due to invalid IL or missing references) //IL_1adb: Unknown result type (might be due to invalid IL or missing references) //IL_1b09: Unknown result type (might be due to invalid IL or missing references) //IL_1b1d: Unknown result type (might be due to invalid IL or missing references) //IL_1b31: Unknown result type (might be due to invalid IL or missing references) //IL_1b36: 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_1b78: Unknown result type (might be due to invalid IL or missing references) //IL_1b8c: Unknown result type (might be due to invalid IL or missing references) //IL_1b91: Unknown result type (might be due to invalid IL or missing references) //IL_1bbf: Unknown result type (might be due to invalid IL or missing references) //IL_1bd3: Unknown result type (might be due to invalid IL or missing references) //IL_1be7: Unknown result type (might be due to invalid IL or missing references) //IL_1bec: Unknown result type (might be due to invalid IL or missing references) //IL_1c1a: Unknown result type (might be due to invalid IL or missing references) //IL_1c2e: Unknown result type (might be due to invalid IL or missing references) //IL_1c42: Unknown result type (might be due to invalid IL or missing references) //IL_1c47: Unknown result type (might be due to invalid IL or missing references) //IL_1c75: Unknown result type (might be due to invalid IL or missing references) //IL_1c89: Unknown result type (might be due to invalid IL or missing references) //IL_1c9d: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1cd0: Unknown result type (might be due to invalid IL or missing references) //IL_1ce4: Unknown result type (might be due to invalid IL or missing references) //IL_1cf8: Unknown result type (might be due to invalid IL or missing references) //IL_1cfd: Unknown result type (might be due to invalid IL or missing references) //IL_1d2b: Unknown result type (might be due to invalid IL or missing references) //IL_1d3f: Unknown result type (might be due to invalid IL or missing references) //IL_1d53: Unknown result type (might be due to invalid IL or missing references) //IL_1d58: Unknown result type (might be due to invalid IL or missing references) //IL_1d86: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a: Unknown result type (might be due to invalid IL or missing references) //IL_1dae: Unknown result type (might be due to invalid IL or missing references) //IL_1db3: Unknown result type (might be due to invalid IL or missing references) //IL_1de1: Unknown result type (might be due to invalid IL or missing references) //IL_1df5: Unknown result type (might be due to invalid IL or missing references) //IL_1e09: Unknown result type (might be due to invalid IL or missing references) //IL_1e0e: 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_1e50: Unknown result type (might be due to invalid IL or missing references) //IL_1e64: Unknown result type (might be due to invalid IL or missing references) //IL_1e69: Unknown result type (might be due to invalid IL or missing references) //IL_1e97: Unknown result type (might be due to invalid IL or missing references) //IL_1eab: Unknown result type (might be due to invalid IL or missing references) //IL_1ebf: Unknown result type (might be due to invalid IL or missing references) //IL_1ec4: 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_1f1a: Unknown result type (might be due to invalid IL or missing references) //IL_1f1f: Unknown result type (might be due to invalid IL or missing references) //IL_1f4d: Unknown result type (might be due to invalid IL or missing references) //IL_1f61: Unknown result type (might be due to invalid IL or missing references) //IL_1f75: Unknown result type (might be due to invalid IL or missing references) //IL_1f7a: Unknown result type (might be due to invalid IL or missing references) //IL_1fa8: Unknown result type (might be due to invalid IL or missing references) //IL_1fbc: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd5: Unknown result type (might be due to invalid IL or missing references) //IL_2003: Unknown result type (might be due to invalid IL or missing references) //IL_2017: Unknown result type (might be due to invalid IL or missing references) //IL_202b: Unknown result type (might be due to invalid IL or missing references) //IL_2030: Unknown result type (might be due to invalid IL or missing references) //IL_205e: Unknown result type (might be due to invalid IL or missing references) //IL_2072: Unknown result type (might be due to invalid IL or missing references) //IL_2086: Unknown result type (might be due to invalid IL or missing references) //IL_208b: Unknown result type (might be due to invalid IL or missing references) //IL_20b9: Unknown result type (might be due to invalid IL or missing references) //IL_20cd: Unknown result type (might be due to invalid IL or missing references) //IL_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_20e6: Unknown result type (might be due to invalid IL or missing references) //IL_20f8: Unknown result type (might be due to invalid IL or missing references) //IL_210e: Unknown result type (might be due to invalid IL or missing references) //IL_2120: Unknown result type (might be due to invalid IL or missing references) //IL_2129: Unknown result type (might be due to invalid IL or missing references) //IL_215c: Unknown result type (might be due to invalid IL or missing references) //IL_2161: Unknown result type (might be due to invalid IL or missing references) //IL_2177: Unknown result type (might be due to invalid IL or missing references) //IL_217c: Unknown result type (might be due to invalid IL or missing references) //IL_2192: Unknown result type (might be due to invalid IL or missing references) //IL_2197: Unknown result type (might be due to invalid IL or missing references) //IL_219c: Unknown result type (might be due to invalid IL or missing references) //IL_219e: Unknown result type (might be due to invalid IL or missing references) //IL_21a8: Unknown result type (might be due to invalid IL or missing references) //IL_21aa: Unknown result type (might be due to invalid IL or missing references) //IL_21af: Unknown result type (might be due to invalid IL or missing references) //IL_21da: Unknown result type (might be due to invalid IL or missing references) //IL_21ee: Unknown result type (might be due to invalid IL or missing references) //IL_2202: Unknown result type (might be due to invalid IL or missing references) //IL_2207: Unknown result type (might be due to invalid IL or missing references) //IL_2235: Unknown result type (might be due to invalid IL or missing references) //IL_2249: Unknown result type (might be due to invalid IL or missing references) //IL_225d: Unknown result type (might be due to invalid IL or missing references) //IL_2262: Unknown result type (might be due to invalid IL or missing references) //IL_2290: Unknown result type (might be due to invalid IL or missing references) //IL_22a4: Unknown result type (might be due to invalid IL or missing references) //IL_22b8: Unknown result type (might be due to invalid IL or missing references) //IL_22bd: Unknown result type (might be due to invalid IL or missing references) //IL_22eb: Unknown result type (might be due to invalid IL or missing references) //IL_22ff: Unknown result type (might be due to invalid IL or missing references) //IL_2313: Unknown result type (might be due to invalid IL or missing references) //IL_2318: Unknown result type (might be due to invalid IL or missing references) //IL_2346: Unknown result type (might be due to invalid IL or missing references) //IL_235a: Unknown result type (might be due to invalid IL or missing references) //IL_236e: Unknown result type (might be due to invalid IL or missing references) //IL_2373: Unknown result type (might be due to invalid IL or missing references) //IL_23a1: Unknown result type (might be due to invalid IL or missing references) //IL_23b5: Unknown result type (might be due to invalid IL or missing references) //IL_23c9: Unknown result type (might be due to invalid IL or missing references) //IL_23ce: Unknown result type (might be due to invalid IL or missing references) //IL_23fc: Unknown result type (might be due to invalid IL or missing references) //IL_2410: Unknown result type (might be due to invalid IL or missing references) //IL_2424: Unknown result type (might be due to invalid IL or missing references) //IL_2429: Unknown result type (might be due to invalid IL or missing references) //IL_2457: Unknown result type (might be due to invalid IL or missing references) //IL_246b: Unknown result type (might be due to invalid IL or missing references) //IL_247f: Unknown result type (might be due to invalid IL or missing references) //IL_2484: Unknown result type (might be due to invalid IL or missing references) //IL_24b2: Unknown result type (might be due to invalid IL or missing references) //IL_24c6: Unknown result type (might be due to invalid IL or missing references) //IL_24da: Unknown result type (might be due to invalid IL or missing references) //IL_24df: Unknown result type (might be due to invalid IL or missing references) //IL_250d: Unknown result type (might be due to invalid IL or missing references) //IL_2521: Unknown result type (might be due to invalid IL or missing references) //IL_2535: Unknown result type (might be due to invalid IL or missing references) //IL_253a: Unknown result type (might be due to invalid IL or missing references) //IL_2568: Unknown result type (might be due to invalid IL or missing references) //IL_257c: Unknown result type (might be due to invalid IL or missing references) //IL_2590: Unknown result type (might be due to invalid IL or missing references) //IL_2595: Unknown result type (might be due to invalid IL or missing references) //IL_25c3: Unknown result type (might be due to invalid IL or missing references) //IL_25d7: Unknown result type (might be due to invalid IL or missing references) //IL_25eb: Unknown result type (might be due to invalid IL or missing references) //IL_25f0: Unknown result type (might be due to invalid IL or missing references) //IL_261e: Unknown result type (might be due to invalid IL or missing references) //IL_2632: Unknown result type (might be due to invalid IL or missing references) //IL_2646: Unknown result type (might be due to invalid IL or missing references) //IL_264b: Unknown result type (might be due to invalid IL or missing references) //IL_2674: Unknown result type (might be due to invalid IL or missing references) //IL_2688: Unknown result type (might be due to invalid IL or missing references) //IL_269c: Unknown result type (might be due to invalid IL or missing references) //IL_26a1: Unknown result type (might be due to invalid IL or missing references) //IL_26ca: Unknown result type (might be due to invalid IL or missing references) //IL_26de: Unknown result type (might be due to invalid IL or missing references) //IL_26f2: Unknown result type (might be due to invalid IL or missing references) //IL_26f7: Unknown result type (might be due to invalid IL or missing references) //IL_2720: Unknown result type (might be due to invalid IL or missing references) //IL_2734: Unknown result type (might be due to invalid IL or missing references) //IL_2748: Unknown result type (might be due to invalid IL or missing references) //IL_274d: 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_278a: Unknown result type (might be due to invalid IL or missing references) //IL_279e: Unknown result type (might be due to invalid IL or missing references) //IL_27a3: Unknown result type (might be due to invalid IL or missing references) //IL_27cc: Unknown result type (might be due to invalid IL or missing references) //IL_27e0: Unknown result type (might be due to invalid IL or missing references) //IL_27f4: Unknown result type (might be due to invalid IL or missing references) //IL_27f9: Unknown result type (might be due to invalid IL or missing references) //IL_2827: Unknown result type (might be due to invalid IL or missing references) //IL_283b: Unknown result type (might be due to invalid IL or missing references) //IL_284f: Unknown result type (might be due to invalid IL or missing references) //IL_2854: Unknown result type (might be due to invalid IL or missing references) //IL_2882: Unknown result type (might be due to invalid IL or missing references) //IL_2896: Unknown result type (might be due to invalid IL or missing references) //IL_28aa: Unknown result type (might be due to invalid IL or missing references) //IL_28af: Unknown result type (might be due to invalid IL or missing references) //IL_28dd: Unknown result type (might be due to invalid IL or missing references) //IL_28f1: Unknown result type (might be due to invalid IL or missing references) //IL_2905: Unknown result type (might be due to invalid IL or missing references) //IL_290a: Unknown result type (might be due to invalid IL or missing references) //IL_2938: Unknown result type (might be due to invalid IL or missing references) //IL_294c: Unknown result type (might be due to invalid IL or missing references) //IL_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_298e: Unknown result type (might be due to invalid IL or missing references) //IL_29a2: Unknown result type (might be due to invalid IL or missing references) //IL_29b6: Unknown result type (might be due to invalid IL or missing references) //IL_29bb: Unknown result type (might be due to invalid IL or missing references) //IL_29cd: Unknown result type (might be due to invalid IL or missing references) //IL_29e3: Unknown result type (might be due to invalid IL or missing references) //IL_29f5: Unknown result type (might be due to invalid IL or missing references) //IL_29fe: Unknown result type (might be due to invalid IL or missing references) //IL_2a31: Unknown result type (might be due to invalid IL or missing references) //IL_2a36: Unknown result type (might be due to invalid IL or missing references) //IL_2a4c: Unknown result type (might be due to invalid IL or missing references) //IL_2a51: Unknown result type (might be due to invalid IL or missing references) //IL_2a67: Unknown result type (might be due to invalid IL or missing references) //IL_2a6c: Unknown result type (might be due to invalid IL or missing references) //IL_2a74: Unknown result type (might be due to invalid IL or missing references) //IL_2a79: Unknown result type (might be due to invalid IL or missing references) //IL_2a7b: Unknown result type (might be due to invalid IL or missing references) //IL_2a84: Unknown result type (might be due to invalid IL or missing references) //IL_2a8d: Unknown result type (might be due to invalid IL or missing references) //IL_2ac0: Unknown result type (might be due to invalid IL or missing references) //IL_2ac5: Unknown result type (might be due to invalid IL or missing references) //IL_2adb: Unknown result type (might be due to invalid IL or missing references) //IL_2ae0: Unknown result type (might be due to invalid IL or missing references) //IL_2af6: Unknown result type (might be due to invalid IL or missing references) //IL_2afb: Unknown result type (might be due to invalid IL or missing references) //IL_2b03: Unknown result type (might be due to invalid IL or missing references) //IL_2b08: Unknown result type (might be due to invalid IL or missing references) //IL_2b0a: Unknown result type (might be due to invalid IL or missing references) //IL_2b14: Unknown result type (might be due to invalid IL or missing references) //IL_2b16: Unknown result type (might be due to invalid IL or missing references) //IL_2b1b: Unknown result type (might be due to invalid IL or missing references) //IL_2b2a: Unknown result type (might be due to invalid IL or missing references) //IL_2b40: Unknown result type (might be due to invalid IL or missing references) //IL_2b52: Unknown result type (might be due to invalid IL or missing references) //IL_2b5b: Unknown result type (might be due to invalid IL or missing references) //IL_2b8e: Unknown result type (might be due to invalid IL or missing references) //IL_2b93: Unknown result type (might be due to invalid IL or missing references) //IL_2ba9: Unknown result type (might be due to invalid IL or missing references) //IL_2bae: Unknown result type (might be due to invalid IL or missing references) //IL_2bc4: Unknown result type (might be due to invalid IL or missing references) //IL_2bc9: Unknown result type (might be due to invalid IL or missing references) //IL_2bd1: Unknown result type (might be due to invalid IL or missing references) //IL_2bd6: Unknown result type (might be due to invalid IL or missing references) //IL_2bd8: Unknown result type (might be due to invalid IL or missing references) //IL_2be1: Unknown result type (might be due to invalid IL or missing references) //IL_2bea: Unknown result type (might be due to invalid IL or missing references) //IL_2c18: Unknown result type (might be due to invalid IL or missing references) //IL_2c1d: Unknown result type (might be due to invalid IL or missing references) //IL_2c33: Unknown result type (might be due to invalid IL or missing references) //IL_2c38: Unknown result type (might be due to invalid IL or missing references) //IL_2c4e: Unknown result type (might be due to invalid IL or missing references) //IL_2c53: Unknown result type (might be due to invalid IL or missing references) //IL_2c5b: Unknown result type (might be due to invalid IL or missing references) //IL_2c60: Unknown result type (might be due to invalid IL or missing references) //IL_2c62: Unknown result type (might be due to invalid IL or missing references) //IL_2c6c: Unknown result type (might be due to invalid IL or missing references) //IL_2c6e: Unknown result type (might be due to invalid IL or missing references) //IL_2c73: Unknown result type (might be due to invalid IL or missing references) //IL_2c9e: Unknown result type (might be due to invalid IL or missing references) //IL_2cb2: Unknown result type (might be due to invalid IL or missing references) //IL_2cc6: Unknown result type (might be due to invalid IL or missing references) //IL_2ccb: Unknown result type (might be due to invalid IL or missing references) //IL_2cf9: Unknown result type (might be due to invalid IL or missing references) //IL_2d0d: Unknown result type (might be due to invalid IL or missing references) //IL_2d21: Unknown result type (might be due to invalid IL or missing references) //IL_2d26: Unknown result type (might be due to invalid IL or missing references) //IL_2d54: Unknown result type (might be due to invalid IL or missing references) //IL_2d68: Unknown result type (might be due to invalid IL or missing references) //IL_2d7c: Unknown result type (might be due to invalid IL or missing references) //IL_2d81: Unknown result type (might be due to invalid IL or missing references) //IL_2daf: Unknown result type (might be due to invalid IL or missing references) //IL_2dc3: Unknown result type (might be due to invalid IL or missing references) //IL_2dd7: Unknown result type (might be due to invalid IL or missing references) //IL_2ddc: Unknown result type (might be due to invalid IL or missing references) //IL_2e0a: Unknown result type (might be due to invalid IL or missing references) //IL_2e1e: Unknown result type (might be due to invalid IL or missing references) //IL_2e32: Unknown result type (might be due to invalid IL or missing references) //IL_2e37: Unknown result type (might be due to invalid IL or missing references) //IL_2e65: Unknown result type (might be due to invalid IL or missing references) //IL_2e79: Unknown result type (might be due to invalid IL or missing references) //IL_2e8d: Unknown result type (might be due to invalid IL or missing references) //IL_2e92: Unknown result type (might be due to invalid IL or missing references) //IL_2ec0: Unknown result type (might be due to invalid IL or missing references) //IL_2ed4: Unknown result type (might be due to invalid IL or missing references) //IL_2ee8: Unknown result type (might be due to invalid IL or missing references) //IL_2eed: Unknown result type (might be due to invalid IL or missing references) //IL_2f1b: Unknown result type (might be due to invalid IL or missing references) //IL_2f2f: Unknown result type (might be due to invalid IL or missing references) //IL_2f43: Unknown result type (might be due to invalid IL or missing references) //IL_2f48: Unknown result type (might be due to invalid IL or missing references) //IL_2f76: Unknown result type (might be due to invalid IL or missing references) //IL_2f8a: Unknown result type (might be due to invalid IL or missing references) //IL_2f9e: Unknown result type (might be due to invalid IL or missing references) //IL_2fa3: Unknown result type (might be due to invalid IL or missing references) //IL_2fd1: Unknown result type (might be due to invalid IL or missing references) //IL_2fe5: Unknown result type (might be due to invalid IL or missing references) //IL_2ff9: Unknown result type (might be due to invalid IL or missing references) //IL_2ffe: Unknown result type (might be due to invalid IL or missing references) //IL_302c: Unknown result type (might be due to invalid IL or missing references) //IL_3040: Unknown result type (might be due to invalid IL or missing references) //IL_3054: Unknown result type (might be due to invalid IL or missing references) //IL_3059: Unknown result type (might be due to invalid IL or missing references) //IL_3087: Unknown result type (might be due to invalid IL or missing references) //IL_309b: Unknown result type (might be due to invalid IL or missing references) //IL_30af: Unknown result type (might be due to invalid IL or missing references) //IL_30b4: Unknown result type (might be due to invalid IL or missing references) //IL_30e2: Unknown result type (might be due to invalid IL or missing references) //IL_30f6: Unknown result type (might be due to invalid IL or missing references) //IL_310a: Unknown result type (might be due to invalid IL or missing references) //IL_310f: Unknown result type (might be due to invalid IL or missing references) //IL_313d: Unknown result type (might be due to invalid IL or missing references) //IL_3151: Unknown result type (might be due to invalid IL or missing references) //IL_3165: Unknown result type (might be due to invalid IL or missing references) //IL_316a: Unknown result type (might be due to invalid IL or missing references) //IL_3198: Unknown result type (might be due to invalid IL or missing references) //IL_31ac: Unknown result type (might be due to invalid IL or missing references) //IL_31c0: Unknown result type (might be due to invalid IL or missing references) //IL_31c5: Unknown result type (might be due to invalid IL or missing references) //IL_31f3: Unknown result type (might be due to invalid IL or missing references) //IL_3207: Unknown result type (might be due to invalid IL or missing references) //IL_321b: Unknown result type (might be due to invalid IL or missing references) //IL_3220: Unknown result type (might be due to invalid IL or missing references) //IL_324e: Unknown result type (might be due to invalid IL or missing references) //IL_3262: Unknown result type (might be due to invalid IL or missing references) //IL_3276: Unknown result type (might be due to invalid IL or missing references) //IL_327b: Unknown result type (might be due to invalid IL or missing references) //IL_32a9: Unknown result type (might be due to invalid IL or missing references) //IL_32bd: Unknown result type (might be due to invalid IL or missing references) //IL_32d1: Unknown result type (might be due to invalid IL or missing references) //IL_32d6: Unknown result type (might be due to invalid IL or missing references) //IL_3304: Unknown result type (might be due to invalid IL or missing references) //IL_3318: Unknown result type (might be due to invalid IL or missing references) //IL_332c: Unknown result type (might be due to invalid IL or missing references) //IL_3331: Unknown result type (might be due to invalid IL or missing references) //IL_335a: 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_3382: Unknown result type (might be due to invalid IL or missing references) //IL_3387: Unknown result type (might be due to invalid IL or missing references) //IL_33b5: Unknown result type (might be due to invalid IL or missing references) //IL_33c9: Unknown result type (might be due to invalid IL or missing references) //IL_33dd: Unknown result type (might be due to invalid IL or missing references) //IL_33e2: Unknown result type (might be due to invalid IL or missing references) //IL_3410: Unknown result type (might be due to invalid IL or missing references) //IL_3424: Unknown result type (might be due to invalid IL or missing references) //IL_3438: Unknown result type (might be due to invalid IL or missing references) //IL_343d: Unknown result type (might be due to invalid IL or missing references) //IL_346b: Unknown result type (might be due to invalid IL or missing references) //IL_347f: Unknown result type (might be due to invalid IL or missing references) //IL_3493: Unknown result type (might be due to invalid IL or missing references) //IL_3498: Unknown result type (might be due to invalid IL or missing references) //IL_34c6: Unknown result type (might be due to invalid IL or missing references) //IL_34da: Unknown result type (might be due to invalid IL or missing references) //IL_34ee: Unknown result type (might be due to invalid IL or missing references) //IL_34f3: Unknown result type (might be due to invalid IL or missing references) //IL_3521: Unknown result type (might be due to invalid IL or missing references) //IL_3535: Unknown result type (might be due to invalid IL or missing references) //IL_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_3560: Unknown result type (might be due to invalid IL or missing references) //IL_3576: Unknown result type (might be due to invalid IL or missing references) //IL_3588: Unknown result type (might be due to invalid IL or missing references) //IL_3591: Unknown result type (might be due to invalid IL or missing references) //IL_35c4: Unknown result type (might be due to invalid IL or missing references) //IL_35c9: Unknown result type (might be due to invalid IL or missing references) //IL_35df: Unknown result type (might be due to invalid IL or missing references) //IL_35e4: Unknown result type (might be due to invalid IL or missing references) //IL_35fa: Unknown result type (might be due to invalid IL or missing references) //IL_35ff: Unknown result type (might be due to invalid IL or missing references) //IL_3607: 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_360e: Unknown result type (might be due to invalid IL or missing references) //IL_3617: 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_3653: Unknown result type (might be due to invalid IL or missing references) //IL_3658: Unknown result type (might be due to invalid IL or missing references) //IL_366e: Unknown result type (might be due to invalid IL or missing references) //IL_3673: Unknown result type (might be due to invalid IL or missing references) //IL_3689: Unknown result type (might be due to invalid IL or missing references) //IL_368e: Unknown result type (might be due to invalid IL or missing references) //IL_3696: Unknown result type (might be due to invalid IL or missing references) //IL_369b: Unknown result type (might be due to invalid IL or missing references) //IL_369d: Unknown result type (might be due to invalid IL or missing references) //IL_36a7: Unknown result type (might be due to invalid IL or missing references) //IL_36a9: Unknown result type (might be due to invalid IL or missing references) //IL_36ae: Unknown result type (might be due to invalid IL or missing references) //IL_36d4: Unknown result type (might be due to invalid IL or missing references) //IL_36e8: Unknown result type (might be due to invalid IL or missing references) //IL_36fc: Unknown result type (might be due to invalid IL or missing references) //IL_3701: Unknown result type (might be due to invalid IL or missing references) //IL_372f: Unknown result type (might be due to invalid IL or missing references) //IL_3743: Unknown result type (might be due to invalid IL or missing references) //IL_3757: Unknown result type (might be due to invalid IL or missing references) //IL_375c: Unknown result type (might be due to invalid IL or missing references) //IL_378a: Unknown result type (might be due to invalid IL or missing references) //IL_379e: Unknown result type (might be due to invalid IL or missing references) //IL_37b2: Unknown result type (might be due to invalid IL or missing references) //IL_37b7: Unknown result type (might be due to invalid IL or missing references) //IL_37c9: Unknown result type (might be due to invalid IL or missing references) //IL_37df: Unknown result type (might be due to invalid IL or missing references) //IL_37f1: Unknown result type (might be due to invalid IL or missing references) //IL_37fa: Unknown result type (might be due to invalid IL or missing references) //IL_382d: Unknown result type (might be due to invalid IL or missing references) //IL_3832: Unknown result type (might be due to invalid IL or missing references) //IL_3848: Unknown result type (might be due to invalid IL or missing references) //IL_384d: Unknown result type (might be due to invalid IL or missing references) //IL_3863: Unknown result type (might be due to invalid IL or missing references) //IL_3868: Unknown result type (might be due to invalid IL or missing references) //IL_3870: Unknown result type (might be due to invalid IL or missing references) //IL_3875: Unknown result type (might be due to invalid IL or missing references) //IL_3877: Unknown result type (might be due to invalid IL or missing references) //IL_3881: Unknown result type (might be due to invalid IL or missing references) //IL_3883: Unknown result type (might be due to invalid IL or missing references) //IL_3888: Unknown result type (might be due to invalid IL or missing references) //IL_3897: Unknown result type (might be due to invalid IL or missing references) //IL_38ad: Unknown result type (might be due to invalid IL or missing references) //IL_38bf: Unknown result type (might be due to invalid IL or missing references) //IL_38c8: Unknown result type (might be due to invalid IL or missing references) //IL_38fb: Unknown result type (might be due to invalid IL or missing references) //IL_3900: Unknown result type (might be due to invalid IL or missing references) //IL_3916: Unknown result type (might be due to invalid IL or missing references) //IL_391b: Unknown result type (might be due to invalid IL or missing references) //IL_3931: Unknown result type (might be due to invalid IL or missing references) //IL_3936: Unknown result type (might be due to invalid IL or missing references) //IL_393e: Unknown result type (might be due to invalid IL or missing references) //IL_3943: Unknown result type (might be due to invalid IL or missing references) //IL_3945: Unknown result type (might be due to invalid IL or missing references) //IL_394e: Unknown result type (might be due to invalid IL or missing references) //IL_3957: Unknown result type (might be due to invalid IL or missing references) //IL_398a: Unknown result type (might be due to invalid IL or missing references) //IL_398f: Unknown result type (might be due to invalid IL or missing references) //IL_39a5: Unknown result type (might be due to invalid IL or missing references) //IL_39aa: Unknown result type (might be due to invalid IL or missing references) //IL_39c0: Unknown result type (might be due to invalid IL or missing references) //IL_39c5: Unknown result type (might be due to invalid IL or missing references) //IL_39cd: Unknown result type (might be due to invalid IL or missing references) //IL_39d2: Unknown result type (might be due to invalid IL or missing references) //IL_39d4: Unknown result type (might be due to invalid IL or missing references) //IL_39de: Unknown result type (might be due to invalid IL or missing references) //IL_39e0: Unknown result type (might be due to invalid IL or missing references) //IL_39e5: Unknown result type (might be due to invalid IL or missing references) //IL_3a10: Unknown result type (might be due to invalid IL or missing references) //IL_3a24: Unknown result type (might be due to invalid IL or missing references) //IL_3a38: Unknown result type (might be due to invalid IL or missing references) //IL_3a3d: Unknown result type (might be due to invalid IL or missing references) //IL_3a6b: Unknown result type (might be due to invalid IL or missing references) //IL_3a7f: Unknown result type (might be due to invalid IL or missing references) //IL_3a93: Unknown result type (might be due to invalid IL or missing references) //IL_3a98: Unknown result type (might be due to invalid IL or missing references) //IL_3ac6: Unknown result type (might be due to invalid IL or missing references) //IL_3ada: Unknown result type (might be due to invalid IL or missing references) //IL_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_3b21: Unknown result type (might be due to invalid IL or missing references) //IL_3b35: Unknown result type (might be due to invalid IL or missing references) //IL_3b49: Unknown result type (might be due to invalid IL or missing references) //IL_3b4e: Unknown result type (might be due to invalid IL or missing references) //IL_3b81: Unknown result type (might be due to invalid IL or missing references) //IL_3b95: Unknown result type (might be due to invalid IL or missing references) //IL_3ba9: Unknown result type (might be due to invalid IL or missing references) //IL_3bae: Unknown result type (might be due to invalid IL or missing references) //IL_3bdc: Unknown result type (might be due to invalid IL or missing references) //IL_3bf0: Unknown result type (might be due to invalid IL or missing references) //IL_3c04: Unknown result type (might be due to invalid IL or missing references) //IL_3c09: Unknown result type (might be due to invalid IL or missing references) //IL_3c37: Unknown result type (might be due to invalid IL or missing references) //IL_3c4b: Unknown result type (might be due to invalid IL or missing references) //IL_3c5f: Unknown result type (might be due to invalid IL or missing references) //IL_3c64: Unknown result type (might be due to invalid IL or missing references) //IL_3c8d: Unknown result type (might be due to invalid IL or missing references) //IL_3ca1: Unknown result type (might be due to invalid IL or missing references) //IL_3cb5: Unknown result type (might be due to invalid IL or missing references) //IL_3cba: Unknown result type (might be due to invalid IL or missing references) //IL_3ce8: Unknown result type (might be due to invalid IL or missing references) //IL_3cfc: Unknown result type (might be due to invalid IL or missing references) //IL_3d10: Unknown result type (might be due to invalid IL or missing references) //IL_3d15: Unknown result type (might be due to invalid IL or missing references) //IL_3d43: Unknown result type (might be due to invalid IL or missing references) //IL_3d57: Unknown result type (might be due to invalid IL or missing references) //IL_3d6b: Unknown result type (might be due to invalid IL or missing references) //IL_3d70: Unknown result type (might be due to invalid IL or missing references) //IL_3d9e: Unknown result type (might be due to invalid IL or missing references) //IL_3db2: Unknown result type (might be due to invalid IL or missing references) //IL_3dc6: Unknown result type (might be due to invalid IL or missing references) //IL_3dcb: Unknown result type (might be due to invalid IL or missing references) //IL_3df9: Unknown result type (might be due to invalid IL or missing references) //IL_3e0d: Unknown result type (might be due to invalid IL or missing references) //IL_3e21: Unknown result type (might be due to invalid IL or missing references) //IL_3e26: Unknown result type (might be due to invalid IL or missing references) //IL_3e54: Unknown result type (might be due to invalid IL or missing references) //IL_3e68: Unknown result type (might be due to invalid IL or missing references) //IL_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_3eaf: Unknown result type (might be due to invalid IL or missing references) //IL_3ec3: Unknown result type (might be due to invalid IL or missing references) //IL_3ed7: Unknown result type (might be due to invalid IL or missing references) //IL_3edc: Unknown result type (might be due to invalid IL or missing references) //IL_3f0a: 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_3f37: Unknown result type (might be due to invalid IL or missing references) //IL_3f65: Unknown result type (might be due to invalid IL or missing references) //IL_3f79: Unknown result type (might be due to invalid IL or missing references) //IL_3f8d: Unknown result type (might be due to invalid IL or missing references) //IL_3f92: Unknown result type (might be due to invalid IL or missing references) //IL_3fc0: Unknown result type (might be due to invalid IL or missing references) //IL_3fd4: Unknown result type (might be due to invalid IL or missing references) //IL_3fe8: Unknown result type (might be due to invalid IL or missing references) //IL_3fed: Unknown result type (might be due to invalid IL or missing references) GameObject bodyPrefab = SurvivorBase.instance.bodyPrefab; GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = SurvivorBase.instance.itemDisplayRules; itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "Head", new Vector3(0f, 0.0027f, 0.0012f), new Vector3(330f, 0f, 0f), new Vector3(0.0036f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Syringe, "DisplaySyringeCluster", "ShoulderL", new Vector3(0f, 0f, -0f), new Vector3(13.00001f, 110f, 210f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Gun", new Vector3(-0.0015f, 0.0025f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Behemoth, "DisplayBehemoth", "Gun", new Vector3(-0.001f, 0.0035f, 0f), new Vector3(295f, 90f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "Chest", new Vector3(-0.003f, 0.00065f, 0f), new Vector3(2.134434f, 9.99999f, 20f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(-0.001f, 0.0035f, -0f), new Vector3(0f, 45f, 45f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "CalfR", new Vector3(0f, 0.0037f, -0.001f), new Vector3(75f, 0f, 0f), new Vector3(0.001f, 0.0012f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Chest", new Vector3(-0.0007f, 0.0035f, -0.0027f), new Vector3(0f, 180f, 56f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "Head", new Vector3(0f, 0.00233f, 0.00078f), new Vector3(340.8874f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "ShoulderR", new Vector3(-0.0008f, 0f, 0.0005f), new Vector3(0f, 340f, 90f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "Head", new Vector3(0f, 0.0035f, 0.0005f), new Vector3(310f, 0f, 0f), new Vector3(0.006f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Muzzle", new Vector3(-0f, -0.0005f, -0f), new Vector3(0f, 0f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Chest", new Vector3(0f, 0.003f, -0.003f), new Vector3(270f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "ElbowR", new Vector3(0f, 0.0007f, 0.0003f), new Vector3(90f, 0f, 2f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Clover, "DisplayClover", "Gun", new Vector3(0f, 0.0022f, 0f), new Vector3(0f, 0f, 300f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "ElbowL", new Vector3(0f, 0f, -0.0005f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "Head", new Vector3(0f, 0.0035f, -0.0003f), new Vector3(345f, 0f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "ShoulderL", new Vector3(0.001f, -0f, 0f), new Vector3(0f, 70f, 270f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "ElbowR", new Vector3(-0.0008f, 0.0005f, 0f), new Vector3(0f, 330f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "Muzzle", new Vector3(0f, 0f, -0.00028f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "Muzzle", new Vector3(0f, 0f, -0.0003f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "Head", new Vector3(0f, -0.0009f, -0.001f), new Vector3(0f, 0f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Axe", new Vector3(0f, 0.006f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "ThighR", new Vector3(0f, 0.003f, -0.001f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "ShoulderR", new Vector3(0f, 0.001f, 0f), new Vector3(0f, 180f, 180f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Pelvis", new Vector3(-0.002f, 0f, 0.001f), new Vector3(310f, 30f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExecuteLowHealthElite, "DisplayGuillotine", "Axe", new Vector3(0f, 0.007f, -0.0002f), new Vector3(0f, 270f, 270f), new Vector3(0.01f, 0.015f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "ThighL", new Vector3(0f, 0.0023f, -0.0015f), new Vector3(80f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "Head", new Vector3(0.001f, 0.0023f, -0.0003f), new Vector3(0f, 90f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Chest", new Vector3(0f, 0.002f, 0.0023f), new Vector3(0f, 20f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "Pelvis", new Vector3(0.0025f, 0.0006f, 0f), new Vector3(70f, 250f, 5f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Chest", new Vector3(0f, 0.0023f, -0.0006f), new Vector3(45f, 80f, 0f), new Vector3(0.006f, 0.008f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Chest", new Vector3(-0.0013f, 0.0035f, -0.003f), new Vector3(0f, 0f, 4f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "Pelvis", new Vector3(-0.0023f, 0.001f, 0.001f), new Vector3(80f, 20f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "ThighR", new Vector3(-0.0005f, 0.002f, -0.0015f), new Vector3(90f, 230f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Chest", new Vector3(-0.002f, 0.003f, -0.0023f), new Vector3(270f, 0f, 10f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "Pelvis", new Vector3(0.0026f, -0.001f, -0.001f), new Vector3(0f, 0f, 260f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Chest", new Vector3(0f, 0.002f, 0.0018f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Pelvis", new Vector3(-0.003f, 0.0007f, -0f), new Vector3(0f, 20f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Pelvis", new Vector3(0.0028f, 0.001f, -0.001f), new Vector3(85f, 180f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SecondarySkillMagazine, "DisplayDoubleMag", "Gun", new Vector3(0f, 0f, 8E-05f), new Vector3(15f, 270f, 0f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "Pelvis", new Vector3(-0.0026f, 0.002f, -0.0014f), new Vector3(345f, 0f, 11f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "Chest", new Vector3(0.0015f, 0.003f, 0.002f), new Vector3(20f, 90f, 80f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "ShoulderR", new Vector3(0f, 0.0015f, -0.001f), new Vector3(270f, 20f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "Pelvis", new Vector3(0.0016f, 0.008f, 0.006f), new Vector3(0f, 90f, 180f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(-0f, 0.003f, -0.003f), new Vector3(0f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "Head", new Vector3(0f, 0.002f, 0f), new Vector3(345f, 0f, 0f), new Vector3(0.003f, 0.004f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseFlower", "Head", new Vector3(0.0012f, 0.002f, -0.001f), new Vector3(90f, 100f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "Chest", new Vector3(0f, 0f, 0.002f), new Vector3(0f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "Head", new Vector3(0.001f, 0.002f, -0.0005f), new Vector3(0f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldheart", "Chest", new Vector3(-0.0006f, 0.002f, 0.002f), new Vector3(0f, 0f, 20f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "ShoulderL", new Vector3(0.0004f, 0.0015f, 0f), new Vector3(0f, 90f, 180f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Chest", new Vector3(0.001f, 0.0023f, 0.0017f), new Vector3(90f, 0f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "Chest", new Vector3(0.002f, 0f, 0.0006f), new Vector3(0f, 70f, 90f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "CalfR", new Vector3(0f, 0.002f, 0.0021f), new Vector3(0f, 270f, 280f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Thorns, "DisplayRazorwireLeft", "ShoulderL", new Vector3(-0.0005f, 0f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.008f, 0.006f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "Head", new Vector3(-0.0005f, 0.0004f, -0f), new Vector3(310f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Pelvis", new Vector3(0.003f, 0.0005f, 0.001f), new Vector3(0f, 0f, 270f), new Vector3(0.01f, 0.01f, 0f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Chest", new Vector3(0.0018f, 0.0043f, -0.002f), new Vector3(290f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bear, "DisplayBear", "Chest", new Vector3(0f, 0.002f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "HandR", new Vector3(-0.001f, 0.0005f, -0f), new Vector3(300f, 0f, 270f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Pelvis", new Vector3(-0.0025f, 0.0005f, 0.002f), new Vector3(20f, 315f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "CalfL", new Vector3(0f, 0.002f, -0.001f), new Vector3(0f, 90f, 45f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "Pelvis", new Vector3(0.0032f, 0.0025f, -0.001f), new Vector3(0f, 0f, 160f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "ElbowR", new Vector3(-0f, 0.001f, 0.001f), new Vector3(90f, 180f, 0f), new Vector3(0.003f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "ShoulderR", new Vector3(-0f, 0.001f, 0f), new Vector3(280f, 180f, 0f), new Vector3(0.002f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Chest", new Vector3(0f, 0.002f, -0.002f), new Vector3(270f, 0f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "Head", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Pelvis", new Vector3(-0.0026f, 0f, 0f), new Vector3(90f, 90f, 0f), new Vector3(0.012f, 0.012f, 0.012f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullCrown", "Head", new Vector3(0f, 0.0024f, -0.0003f), new Vector3(320f, 0f, 0f), new Vector3(0.005f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Pelvis", new Vector3(0f, 0f, 0.0023f), new Vector3(0f, 0f, 180f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FlatHealth, "DisplaySteakCurved", "Chest", new Vector3(0f, 0.0026f, 0.0026f), new Vector3(330f, 0f, 0f), new Vector3(0.0016f, 0.0016f, 0.0016f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Tooth, "DisplayToothMeshLarge", "Chest", new Vector3(-0.002f, 0.0055f, -0.001f), new Vector3(340f, 0f, 0f), new Vector3(0.07f, 0.07f, 0.07f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "Muzzle", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "Muzzle", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "Pelvis", new Vector3(0f, 0f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "ShoulderL", new Vector3(0.001f, -0f, -0.001f), new Vector3(0f, 35f, 250f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "Chest", new Vector3(0f, 0.0035f, -0.0025f), new Vector3(15f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireballsOnHit, "DisplayFireballsOnHit", "Gun", new Vector3(-0.003f, 0.003f, 0f), new Vector3(330f, 270f, 0f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "ThighL", new Vector3(0.0006f, 0.002f, -0.001f), new Vector3(0f, 45f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "Chest", new Vector3(-0.0005f, 0.0024f, 0.0025f), new Vector3(0f, 0f, 45f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "ThighR", new Vector3(-0.00085f, 0.0033f, 0f), new Vector3(30f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomDamageZone, "DisplayRandomDamageZone", "Gun", new Vector3(-0.002f, 0.0015f, 0f), new Vector3(270f, 270f, 270f), new Vector3(0.0004f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.UtilitySkillMagazine, "DisplayAfterburnerShoulderRing", "Chest", new Vector3(0.002f, 0.003f, 0f), new Vector3(70f, 180f, 190f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "ThighR", new Vector3(-0f, 0.0003f, -0f), new Vector3(0f, 0f, 180f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "Head", new Vector3(-0.001f, 0.002f, 0f), new Vector3(0f, 0f, 0f), new Vector3(-0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "Head", new Vector3(0f, 0.0042f, 0.0005f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "Head", new Vector3(0f, 0.004f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "Head", new Vector3(0f, 0.003f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "Gun", new Vector3(0f, 0.0032f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "Head", new Vector3(0f, 0.0012f, 0f), new Vector3(90f, 180f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Pelvis", new Vector3(-0.0013f, -0f, 0.002f), new Vector3(0f, 345f, 195f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Lightning, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmLeft"), childName = "ShoulderL", localPos = new Vector3(0.00027f, 0.00402f, 0.00073f), localAngles = new Vector3(272.9691f, 352.6442f, 9.14557f), localScale = new Vector3(0.01f, 0.01f, 0.01f) } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Pelvis", new Vector3(0.0015f, 0.0002f, 0.0014f), new Vector3(0f, 30f, 180f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Pelvis", new Vector3(-0.0016f, 0.0018f, -0.0016f), new Vector3(0f, 30f, 180f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "Head", new Vector3(0f, 0.0022f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.019f, 0.018f, 0.012f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Chest", new Vector3(0f, 0.0034f, -0.003f), new Vector3(0f, 90f, 15f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Pelvis", new Vector3(0.002f, 0.0008f, -0.0014f), new Vector3(85f, 180f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Chest", new Vector3(0f, 0.0015f, -0.0025f), new Vector3(0f, 180f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Pelvis", new Vector3(0.0015f, -0.001f, 0.0014f), new Vector3(0f, 30f, 180f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "Pelvis", new Vector3(-0.0024f, 0.0005f, 0.001f), new Vector3(0f, 30f, 170f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "Chest", new Vector3(0.0015f, 0.0035f, 0f), new Vector3(280f, 0f, 15f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Pelvis", new Vector3(0f, 0f, -0.002f), new Vector3(0f, 0f, 180f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "Head", new Vector3(0f, 0.004f, -0.0028f), new Vector3(30f, 0f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Chest", new Vector3(0f, 0.0018f, 0.002f), new Vector3(15f, 0f, 0f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Chest", new Vector3(0f, 0.004f, -0.002f), new Vector3(70f, 180f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", new Vector3(-0.00684f, 0.013f, -0.008f), new Vector3(90f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", new Vector3(0.007f, 0.02f, -0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", new Vector3(-0.002f, 0.02f, -0.01f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", new Vector3(0.003f, 0.022f, -0.003f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", new Vector3(0.003f, 0.022f, -0.003f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Chest", new Vector3(0f, 0.002f, -0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Chest", new Vector3(0.003f, 0.0058f, 0f), new Vector3(20f, 90f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "Chest", new Vector3(0.0017f, 0.003f, 0f), new Vector3(0f, 0f, 330f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Chest", new Vector3(0f, 0.002f, -0.0033f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", new Vector3(0f, 0.015f, -0.015f), new Vector3(0f, 90f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfL", localPos = new Vector3(0f, 0.0044f, 0f), localAngles = new Vector3(0f, 180f, 180f), localScale = new Vector3(0.002f, 0.002f, 0.0028f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfR", localPos = new Vector3(0f, 0.00441f, 0f), localAngles = new Vector3(0f, 180f, 180f), localScale = new Vector3(0.002f, 0.002f, 0.0028f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarPrimaryReplacement, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBirdEye"), childName = "Head", localPos = new Vector3(0f, 0.004f, 0.001f), localAngles = new Vector3(90f, 180f, 0f), localScale = new Vector3(0.003f, 0.003f, 0.003f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = Assets.needlerPrefab, childName = "Gun", localPos = new Vector3(-0.001f, 0.001f, 0f), localAngles = new Vector3(270f, 0f, 0f), localScale = new Vector3(0.02f, 0.02f, 0.02f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MushroomVoid, "DisplayMushroomVoid", "ShoulderR", new Vector3(-0.0008f, 0f, 0.0005f), new Vector3(0f, 340f, 90f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CloverVoid, "DisplayCloverVoid", "Gun", new Vector3(0f, 0.0022f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StrengthenBurn, "DisplayGasTank", "Chest", new Vector3(-0.00141f, 0.00091f, -0.00212f), new Vector3(1.71386f, 357.6067f, 44.94984f), new Vector3(0.00092f, 0.00092f, 0.00092f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RegeneratingScrap, "DisplayRegeneratingScrap", "Chest", new Vector3(-0.00134f, 0.00202f, -0.00144f), new Vector3(55.5871f, 45.15545f, 52.31505f), new Vector3(0.00231f, 0.00231f, 0.00231f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitVoid, "DisplayTriTipVoid", "Muzzle", new Vector3(0f, -0.0005f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlassesVoid, "DisplayGlassesVoid", "Head", new Vector3(0f, 0.0027f, 0.0012f), new Vector3(330f, 0f, 0f), new Vector3(0.0036f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCacheVoid, "DisplayKeyVoid", "Chest", new Vector3(0.0015f, 0.003f, 0.002f), new Vector3(20.00001f, 90f, 80f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHitVoid, "DisplayBaubleVoid", "Pelvis", new Vector3(0.0016f, 0.008f, 0.006f), new Vector3(0f, 90f, 180f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MissileVoid, "DisplayMissileLauncherVoid", "Chest", new Vector3(-0.003f, 0.00065f, 0f), new Vector3(2.13443f, 9.99999f, 20f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightningVoid, "DisplayUkuleleVoid", "Chest", new Vector3(-0.0007f, 0.00342f, -0.00271f), new Vector3(0f, 180f, 56f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLifeVoid, "DisplayHippoVoid", "Chest", new Vector3(0f, 0.003f, -0.003f), new Vector3(0f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazineVoid, "DisplayFuelCellVoid", "ThighL", new Vector3(0f, 0.0023f, -0.0015f), new Vector3(16.48722f, 160.779f, 182.1724f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeathVoid, "DisplayWillowWispVoid", "Pelvis", new Vector3(-0.0025f, 0.0005f, 0.002f), new Vector3(20.00001f, 315f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FragileDamageBonus, "DisplayDelicateWatch", "HandR", new Vector3(0f, 0f, -0.00024f), new Vector3(270f, 0f, 0f), new Vector3(0.00695f, 0.00695f, 0.00695f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.OutOfCombatArmor, "DisplayOddlyShapedOpal", "Chest", new Vector3(0f, 0.002f, 0.00218f), new Vector3(353.448f, 0.16994f, 0.10158f), new Vector3(0.00218f, 0.00218f, 0.00218f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoreMissile, "DisplayICBM", "Chest", new Vector3(0.00133f, 0.00116f, -0.00285f), new Vector3(0.15432f, 2.31891f, 332.6128f), new Vector3(0.00088f, 0.00088f, 0.00088f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ImmuneToDebuff, "DisplayRainCoatBelt", "ElbowR", new Vector3(0.00018f, -0.00039f, 0.00011f), new Vector3(344.4545f, 84.28957f, 166.0611f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomEquipmentTrigger, "DisplayBottledChaos", "Pelvis", new Vector3(-0.00089f, 0.00065f, -0.00151f), new Vector3(0f, 194.6028f, 180f), new Vector3(0.00129f, 0.00129f, 0.00129f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PrimarySkillShuriken, "DisplayShuriken", "HandL", new Vector3(0.00047f, 0.00085f, -4E-05f), new Vector3(0f, 274.3412f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.RandomlyLunar, "DisplayDomino", new Vector3(0.00439f, 0.01899f, 0.00147f), new Vector3(85.58855f, 180f, 180f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHurt, "DisplayRollOfPennies", "Pelvis", new Vector3(-0.00193f, 0.00028f, -0.00036f), new Vector3(354.6176f, 156.8903f, 195.675f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "DisplayLunarShoulderNature", "ShoulderL", new Vector3(0f, 0f, 0f), new Vector3(5.71015f, 28.78572f, 237.3158f), new Vector3(0.00816f, 0.00816f, 0.00816f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfSpeedDoubleHealth, "DisplayLunarShoulderStone", "ShoulderR", new Vector3(0f, 0f, 0f), new Vector3(357.3668f, 97.95754f, 197.8274f), new Vector3(0.00816f, 0.00816f, 0.00816f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FreeChest, "DisplayShippingRequestForm", "Pelvis", new Vector3(-1E-05f, 0.00015f, 0.00187f), new Vector3(284.6354f, 349.0458f, 189.2882f), new Vector3(0.00304f, 0.00304f, 0.00304f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ElementalRingVoid, "DisplayVoidRing", "Muzzle", new Vector3(0f, 0f, -9E-05f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "Head", localPos = new Vector3(0f, 0.0023f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.01113f, 0.01113f, 0.01113f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "Head", localPos = new Vector3(-0.00014f, 0.00039f, 0.00044f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.01765f, 0.01765f, 0.01765f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.MinorConstructOnKill, "DisplayDefenseNucleus", new Vector3(0.00579f, 0.02212f, 0f), new Vector3(343.9205f, 0f, 0.32262f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.VoidMegaCrabItem, "DisplayMegaCrabItem", "Chest", new Vector3(0f, 0.00125f, -0.00261f), new Vector3(351.6874f, 0f, 0f), new Vector3(0.0016f, 0.0016f, 0.0016f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Molotov, "DisplayMolotov", "Pelvis", new Vector3(-0.00076f, 0.00089f, -0.00171f), new Vector3(3.14155f, 93.79848f, 172.1136f), new Vector3(0.00169f, 0.00169f, 0.00169f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.VendingMachine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayVendingMachine2"), childName = "Head", localPos = new Vector3(-0.00117f, 0.00148f, 0.00158f), localAngles = new Vector3(356.6433f, 148.7356f, 325.9175f), localScale = new Vector3(0.00112f, 0.00112f, 0.00112f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BossHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBlunderbuss"), childName = "Head", localPos = new Vector3(0.0048f, 0.00251f, -0.0008f), localAngles = new Vector3(72.28313f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayTricornGhost"), childName = "Head", localPos = new Vector3(0f, 0.00432f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.00751f, 0.00751f, 0.00751f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BossHunterConsumed, "DisplayTricornUsed", "Head", new Vector3(0f, 0.00432f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.00751f, 0.00751f, 0.00751f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GummyClone, "DisplayGummyClone", "Chest", new Vector3(0.00129f, 0.00166f, 0.00197f), new Vector3(0f, 189.0614f, 0f), new Vector3(0.00155f, 0.00155f, 0.00155f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.MultiShopCard, "DisplayExecutiveCard", "Chest", new Vector3(0.00171f, 0.00095f, 0.00103f), new Vector3(48.88351f, 141.3087f, 113.1223f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.EliteVoidEquipment, "DisplayAffixVoid", "Head", new Vector3(0f, 0.00223f, 0.00087f), new Vector3(65.59724f, 0f, 0f), new Vector3(0.00159f, 0.00159f, 0.00159f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Elites.Earth.eliteEquipmentDef, "DisplayEliteMendingAntlers", "Head", new Vector3(0f, 0.00343f, 0.00077f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealOnCrit, "DisplayScythe", "Axe", new Vector3(0.00011f, 0.00604f, 0.00026f), new Vector3(276.3906f, 73.82772f, 107.6121f), new Vector3(0.00692f, 0.00495f, 0.00629f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSecondaryReplacement, "DisplayBirdClaw", "Gun", new Vector3(0.00025f, 0.00164f, 0.00012f), new Vector3(0f, 355.8867f, 0f), new Vector3(0.00351f, 0.00381f, 0.00505f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.LunarSpecialReplacement, "DisplayBirdHeart", new Vector3(-0.00519f, 0.02043f, -0.00345f), new Vector3(-1E-05f, 180f, 180f), new Vector3(0.34151f, 0.34151f, 0.34151f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ParentEgg, "DisplayParentEgg", "Chest", new Vector3(0f, -0.00133f, 0.00171f), new Vector3(0f, 0f, 0f), new Vector3(0.00036f, 0.00036f, 0.00036f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoveSpeedOnKill, "DisplayGrappleHook", "Pelvis", new Vector3(0.00162f, -0.00021f, 0.00148f), new Vector3(26.26909f, 8.96337f, 181.8389f), new Vector3(0.00138f, 0.00138f, 0.00138f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealingPotion, "DisplayHealingPotion", "Pelvis", new Vector3(-0.00228f, 0.00021f, -0.00096f), new Vector3(0f, 0f, 227.5042f), new Vector3(0.00043f, 0.00043f, 0.00043f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PermanentDebuffOnHit, "DisplayScorpion", "Pelvis", new Vector3(0f, 0.00054f, 0.00217f), new Vector3(358.3619f, 180f, 180f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedAndMoveSpeed, "DisplayCoffee", "ThighL", new Vector3(-0.00196f, -0.0002f, -0.0006f), new Vector3(18.29921f, 325.5469f, 181.0322f), new Vector3(0.00159f, 0.00159f, 0.00159f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritDamage, "DisplayLaserSight", "Gun", new Vector3(-0.0006f, 0.0024f, -2E-05f), new Vector3(0.50947f, 1.13161f, 335.7652f), new Vector3(0.00058f, 0.00058f, 0.00058f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BearVoid, "DisplayBearVoid", "Chest", new Vector3(0f, 0.002f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixLunar, "DisplayEliteLunar,Eye", "Head", new Vector3(0f, 0.00232f, 0.00275f), new Vector3(0f, 0f, 0f), new Vector3(0.00241f, 0.00241f, 0.00241f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LightningStrikeOnHit, "DisplayChargedPerforator", "Gun", new Vector3(-0.00282f, 0.00242f, -2E-05f), new Vector3(82.19386f, 139.1523f, 47.9679f), new Vector3(0.012f, 0.012f, 0.012f))); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } } internal class ExecutionerCore : SurvivorBase { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__61_0; public static Func <>9__75_2; public static Func <>9__75_1; public static Manipulator <>9__75_0; internal void b__61_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UExecutionerBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animExecutionerEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } internal void b__75_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cripple") })) { val.Index += 2; val.Emit(OpCodes.Ldarg_0); val.EmitDelegate>((Func)((bool hasBuff, CharacterBody self) => hasBuff || self.HasBuff(BuffCore.fearDebuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Fear VFX IL Hook failed."); } } internal bool b__75_2(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cripple"); } internal bool b__75_1(bool hasBuff, CharacterBody self) { return hasBuff || self.HasBuff(BuffCore.fearDebuff); } } private static GameObject fearKillEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Bandit2/Bandit2KillEffect.prefab").WaitForCompletion(); public static BodyIndex bodyIndex; private static UnlockableDef masterySkinUnlockableDef; private static UnlockableDef grandMasterySkinUnlockableDef; private static UnlockableDef wastelanderSkinUnlockableDef; public static SkillDef specialDef; public static SkillDef specialScepterDef; internal override string bodyName { get; set; } = "SS2UExecutioner"; internal override string modelName { get; set; } = "mdlExecutioner"; internal override string displayName { get; set; } = "ExecutionerDisplay"; internal override GameObject bodyPrefab { get; set; } internal override GameObject displayPrefab { get; set; } internal override float sortPosition { get; set; } = 40f; internal override StarstormBodyInfo bodyInfo { get; set; } = new StarstormBodyInfo { armor = 0f, bodyName = "SS2UExecutionerBody", bodyNameToken = "SS2UEXECUTIONER_NAME", bodyColor = new Color(0.69f, 0.44f, 0.49f), characterPortrait = Assets.LoadCharacterIcon("Executioner"), crosshair = Assets.LoadCrosshair("Standard"), damage = 12f, healthGrowth = 33f, healthRegen = 1f, jumpCount = 1, maxHealth = 110f, subtitleNameToken = "SS2UEXECUTIONER_SUBTITLE", podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod") }; internal override int mainRendererIndex { get; set; } = 0; internal override CustomRendererInfo[] customRendererInfos { get; set; } = new CustomRendererInfo[3] { new CustomRendererInfo { childName = "Model", material = Assets.LoadMaterialFromAssetBundle("matExecutioner") }, new CustomRendererInfo { childName = "GunModel", material = Assets.LoadMaterialFromAssetBundle("matExecutioner"), ignoreOverlays = true }, new CustomRendererInfo { childName = "AxeModel", material = Assets.LoadMaterialFromAssetBundle("matExecutionerAxe"), ignoreOverlays = true } }; internal override Type characterMainState { get; set; } = typeof(ExecutionerMain); internal override ItemDisplayRuleSet itemDisplayRuleSet { get; set; } internal override List itemDisplayRules { get; set; } internal override UnlockableDef characterUnlockableDef { get; set; } private void OnLoadActions() { //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) bodyIndex = BodyCatalog.FindBodyIndex("SS2UExecutionerBody"); ModCompat.SurvariantsCompat.SetVariant(survivorDef, "Executioner2Body"); } internal override void InitializeCharacter() { base.InitializeCharacter(); ItemAPI.DoNotAutoIDRSFor(bodyPrefab); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); Assets.LoadExecutionerEffects(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); ChildLocator componentInChildren = bodyPrefab.GetComponentInChildren(); ((Component)componentInChildren.FindChild("AxeSpawnEffect").Find("Lightning")).GetComponent().trailMaterial = Assets.matJellyfishLightningLarge; ((Component)componentInChildren.FindChild("DashEffect").Find("DashSkull").Find("Lightning")).GetComponent().trailMaterial = Assets.matMageMatrixDirectionalLightning; ((Component)componentInChildren.FindChild("DashEffect").Find("DashSkull").Find("LightningRound")).GetComponent().trailMaterial = Assets.matJellyfishLightningLarge; ((Component)componentInChildren.FindChild("DashEffect").Find("DashSkull").Find("EffectRadius")).gameObject.SetActive(false); ((Component)componentInChildren.FindChild("SuperchargePassiveEffect").Find("Lightning")).GetComponent().trailMaterial = Assets.matBlueLightningLong; ((Component)componentInChildren.FindChild("SuperchargePassiveEffect").Find("Lightning").Find("LightningRound")).GetComponent().trailMaterial = Assets.matBlueLightningLong; ((Component)componentInChildren.FindChild("SuperchargePassiveEffect").Find("Lightning").Find("LightningRound") .Find("LightningRound (1)")).GetComponent().trailMaterial = Assets.matBlueLightningLong; ((Component)componentInChildren.FindChild("MaxChargeEffect").Find("Lightning")).GetComponent().trailMaterial = Assets.matJellyfishLightningLarge; ((Component)componentInChildren.FindChild("SuperchargeEffect").Find("Lightning")).GetComponent().trailMaterial = Assets.matJellyfishLightningLarge; if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__61_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UExecutionerBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animExecutionerEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__61_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } internal override void InitializeUnlockables() { masterySkinUnlockableDef = ScriptableObject.CreateInstance(); masterySkinUnlockableDef.cachedName = "Skins.SS2UExecutioner.Mastery"; masterySkinUnlockableDef.nameToken = "ACHIEVEMENT_SS2UEXECUTIONERCLEARGAMEMONSOON_NAME"; masterySkinUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerSkinMaster"); Unlockables.unlockableDefs.Add(masterySkinUnlockableDef); AchievementHider.unlockableRewardIdentifiers.Remove(masterySkinUnlockableDef.cachedName); grandMasterySkinUnlockableDef = ScriptableObject.CreateInstance(); grandMasterySkinUnlockableDef.cachedName = "Skins.SS2UExecutioner.GrandMastery"; grandMasterySkinUnlockableDef.nameToken = "ACHIEVEMENT_SS2UEXECUTIONERCLEARGAMETYPHOON_NAME"; grandMasterySkinUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerSkinGrandMaster"); Unlockables.unlockableDefs.Add(grandMasterySkinUnlockableDef); AchievementHider.unlockableRewardIdentifiers.Remove(grandMasterySkinUnlockableDef.cachedName); wastelanderSkinUnlockableDef = ScriptableObject.CreateInstance(); wastelanderSkinUnlockableDef.cachedName = "Skins.SS2UExecutioner.Wastelander"; wastelanderSkinUnlockableDef.nameToken = "ACHIEVEMENT_SS2UEXECUTIONERWASTELANDER_NAME"; wastelanderSkinUnlockableDef.achievementIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerWastelander"); Unlockables.unlockableDefs.Add(wastelanderSkinUnlockableDef); AchievementHider.unlockableRewardIdentifiers.Remove(wastelanderSkinUnlockableDef.cachedName); } internal override void InitializeSkills() { //IL_0024: 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_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_012c: 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) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0348: 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_0410: 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) Skills.CreateSkillFamilies(bodyPrefab); RegisterStates(); Skills.AddPrimarySkill(bodyPrefab, Skills.CreatePrimarySkillDef(new SerializableEntityStateType(typeof(ExecutionerSinglePistol)), "Weapon", "SS2UEXECUTIONER_PISTOL_SINGLE_NAME", "SS2UEXECUTIONER_PISTOL_SINGLE_DESCRIPTION", Assets.mainAssetBundle.LoadAsset("texExecutionerPrimary"), agile: false)); Skills.AddPrimarySkill(bodyPrefab, Skills.CreatePrimarySkillDef(new SerializableEntityStateType(typeof(ExecutionerBurstPistol)), "Weapon", "SS2UEXECUTIONER_PISTOL_NAME", "SS2UEXECUTIONER_PISTOL_DESCRIPTION", Assets.mainAssetBundle.LoadAsset("texExecutionerPrimaryDouble"), agile: false)); SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UEXECUTIONER_IONGUN_NAME"; skillDefInfo.skillNameToken = "SS2UEXECUTIONER_IONGUN_NAME"; skillDefInfo.skillDescriptionToken = "SS2UEXECUTIONER_IONGUN_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerSecondary"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ExecutionerIonGun)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 5; skillDefInfo.baseRechargeInterval = 12f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = false; skillDefInfo.fullRestockOnAssign = false; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 0; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_SHOCKING" }; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UEXECUTIONER_DASH_NAME"; skillDefInfo.skillNameToken = "SS2UEXECUTIONER_DASH_NAME"; skillDefInfo.skillDescriptionToken = "SS2UEXECUTIONER_DASH_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerUtility"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ExecutionerDash)); skillDefInfo.activationStateMachineName = "Slide"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 5f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = true; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = false; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { "KEYWORD_STUNNING", "KEYWORD_SS2U_FEAR" }; SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val2); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UEXECUTIONER_AXE_NAME"; skillDefInfo.skillNameToken = "SS2UEXECUTIONER_AXE_NAME"; skillDefInfo.skillDescriptionToken = "SS2UEXECUTIONER_AXE_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerSpecial"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ExecutionerAxe)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = true; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[1] { "KEYWORD_SLAYER" }; SkillDef val3 = (specialDef = Skills.CreateSkillDef(skillDefInfo)); Skills.AddSpecialSkills(bodyPrefab, val3); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "SS2UEXECUTIONER_AXE_SCEPTER_NAME"; skillDefInfo.skillNameToken = "SS2UEXECUTIONER_AXE_SCEPTER_NAME"; skillDefInfo.skillDescriptionToken = "SS2UEXECUTIONER_AXE_SCEPTER_DESCRIPTION"; skillDefInfo.skillIcon = Assets.mainAssetBundle.LoadAsset("texExecutionerSpecialScepter"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(ExecutionerAxeScepter)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.beginSkillCooldownOnSkillEnd = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.forceSprintDuringState = true; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.isCombatSkill = true; skillDefInfo.mustKeyPress = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.keywordTokens = new string[2] { "KEYWORD_SLAYER", "KEYWORD_SS2U_FEAR" }; SkillDef val4 = Skills.CreateSkillDef(skillDefInfo); specialScepterDef = val4; if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill(specialScepterDef, bodyInfo.bodyName, specialDef); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill(specialScepterDef, bodyInfo.bodyName, (SkillSlot)3, specialDef); } private void RegisterStates() { States.AddState(typeof(ExecutionerMain)); States.AddState(typeof(ExecutionerBurstPistol)); States.AddState(typeof(ExecutionerSinglePistol)); States.AddState(typeof(ExecutionerIonGun)); States.AddState(typeof(ExecutionerDash)); States.AddState(typeof(ExecutionerAxe)); States.AddState(typeof(ExecutionerAxeSlam)); States.AddState(typeof(ExecutionerAxeScepter)); States.AddState(typeof(ExecutionerAxeSlamScepter)); } internal override void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown CharacterMaster.OnInventoryChanged += new hook_OnInventoryChanged(CharacterMaster_OnInventoryChanged); GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal; HealthComponent.TakeDamageProcess += new hook_TakeDamageProcess(HealthComponent_TakeDamage); SetupFearExecute(); } private void HealthComponent_TakeDamage(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_004b: 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) bool alive = self.alive; orig.Invoke(self, damageInfo); if (!NetworkServer.active || !Object.op_Implicit((Object)(object)damageInfo.attacker) || damageInfo.rejected) { return; } CharacterBody component = damageInfo.attacker.GetComponent(); if (Object.op_Implicit((Object)(object)component) && component.bodyIndex == bodyIndex) { ExecutionerKillComponent executionerKillComponent = ((Component)self).GetComponent(); if (!Object.op_Implicit((Object)(object)executionerKillComponent)) { executionerKillComponent = ((MonoBehaviour)(object)self).AddComponent(); } executionerKillComponent.AddTimer(component, 5f); } } private void CharacterMaster_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterMaster self) { //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) orig.Invoke(self); if (!self.hasBody) { return; } CharacterBody body = self.GetBody(); if (Object.op_Implicit((Object)(object)body) && body.bodyIndex == bodyIndex) { ExecutionerController component = ((Component)body).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.CheckInventory(); } } } internal override void InitializeSkins() { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: 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_00f4: 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_012d: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: 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_01df: 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) //IL_0218: 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) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_0303: 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_038b: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) GameObject gameObject = ((Component)bodyPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; List list = new List(); Material val2 = Assets.LoadMaterialFromAssetBundle("matExecutionerAxe"); SkinDef val3 = Skins.CreateSkinDef("SS2UEXECUTIONER_DEFAULT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texExecutionerSkin"), baseRendererInfos, mainSkinnedMeshRenderer, gameObject); val3.nameToken = "DEFAULT_SKIN"; val3.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[3] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutioner"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerGun"), renderer = baseRendererInfos[1].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerAxe"), renderer = baseRendererInfos[2].renderer } }; list.Add(val3); Material val4 = Assets.LoadMaterialFromAssetBundle("matExecutionerMasteryAlt"); RendererInfo[] rendererInfos = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { val4, val4, val2 }); SkinDef val5 = Skins.CreateSkinDef("SS2UEXECUTIONER_MASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texExecutionerSkinMaster"), rendererInfos, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : masterySkinUnlockableDef); val5.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerMastery"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerGun"), renderer = baseRendererInfos[1].renderer } }; list.Add(val5); Material val6 = Assets.LoadMaterialFromAssetBundle("matExecutionerKnight"); RendererInfo[] rendererInfos2 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { val6, val6, val2 }); SkinDef val7 = Skins.CreateSkinDef("SS2UEXECUTIONER_KNIGHT_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texExecutionerSkinGrandMaster"), rendererInfos2, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : grandMasterySkinUnlockableDef); val7.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerKnight"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshExecutionerGun"), renderer = baseRendererInfos[1].renderer } }; list.Add(val7); Material val8 = Assets.LoadMaterialFromAssetBundle("matWastelander"); RendererInfo[] rendererInfos3 = SkinRendererInfos(baseRendererInfos, (Material[])(object)new Material[3] { val8, val8, Assets.LoadMaterialFromAssetBundle("matWastelanderAxe") }); SkinDef val9 = Skins.CreateSkinDef("SS2UEXECUTIONER_WASTELANDER_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texExecutionerWastelander"), rendererInfos3, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : wastelanderSkinUnlockableDef); val9.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshWastelander"), renderer = baseRendererInfos[0].renderer }, new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshWastelanderGun"), renderer = baseRendererInfos[1].renderer } }; list.Add(val9); val.skins = list.ToArray(); } internal override void SetItemDisplays() { SurvivorBase.instance.itemDisplayRules = new List(); ExecutionerItemDisplays.RegisterDisplays(); itemDisplayRuleSet.keyAssetRuleGroups = SurvivorBase.instance.itemDisplayRules.ToArray(); } private static RendererInfo[] SkinRendererInfos(RendererInfo[] defaultRenderers, Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); array[0].defaultMaterial = materials[0]; array[1].defaultMaterial = materials[1]; array[2].defaultMaterial = materials[2]; return array; } private static void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport) { //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_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: 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_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) if (!Object.op_Implicit((Object)(object)damageReport.victimBody)) { return; } CharacterBody victimBody = damageReport.victimBody; if (victimBody.HasBuff(BuffCore.fearDebuff)) { EffectManager.SpawnEffect(fearKillEffect, new EffectData { origin = damageReport.damageInfo.position }, true); } ExecutionerKillComponent component = ((Component)victimBody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.TriggerEffects(damageReport.attackerBody, DamageTypeCombo.op_Implicit(damageReport.damageInfo.damageType)); } else if (Object.op_Implicit((Object)(object)damageReport.attackerBody) && damageReport.attackerBody.bodyIndex == bodyIndex) { int ionCountFromBody = GetIonCountFromBody(victimBody); for (int i = 0; i < ionCountFromBody; i++) { ExecutionerIonOrb executionerIonOrb = new ExecutionerIonOrb(); ((Orb)executionerIonOrb).origin = victimBody.corePosition; ((Orb)executionerIonOrb).target = Util.FindBodyMainHurtBox(damageReport.attackerBody); OrbManager.instance.AddOrb((Orb)(object)executionerIonOrb); } } } internal static int GetIonCountFromBody(CharacterBody body) { if (body.isChampion) { return 5; } return 1; } private void SetupFearExecute() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown //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_006f: Expected O, but got Unknown if (StarstormPlugin.additiveExecutesLoaded) { ExecuteAPI.CalculateAdditiveExecuteThreshold = (CalculateAdditiveExecuteThresholdEventHandler)Delegate.Combine((Delegate?)(object)ExecuteAPI.CalculateAdditiveExecuteThreshold, (Delegate?)new CalculateAdditiveExecuteThresholdEventHandler(FearExecuteThresholdAdditive)); } else { ExecuteAPI.CalculateAdditiveExecuteThreshold = (CalculateAdditiveExecuteThresholdEventHandler)Delegate.Combine((Delegate?)(object)ExecuteAPI.CalculateAdditiveExecuteThreshold, (Delegate?)new CalculateAdditiveExecuteThresholdEventHandler(FearExecuteThreshold)); } object obj = <>c.<>9__75_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); if (val2.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Cripple") })) { val2.Index += 2; val2.Emit(OpCodes.Ldarg_0); val2.EmitDelegate>((Func)((bool hasBuff, CharacterBody self) => hasBuff || self.HasBuff(BuffCore.fearDebuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Fear VFX IL Hook failed."); } }; <>c.<>9__75_0 = val; obj = (object)val; } CharacterBody.UpdateAllTemporaryVisualEffects += (Manipulator)obj; } private void FearExecuteThreshold(CharacterBody victimBody, ref float executeFraction) { if (victimBody.HasBuff(BuffCore.fearDebuff) && executeFraction < BuffCore.fearExecuteFraction) { executeFraction = BuffCore.fearExecuteFraction; } } private void FearExecuteThresholdAdditive(CharacterBody victimBody, ref float executeFractionAdd) { if (victimBody.HasBuff(BuffCore.fearDebuff)) { executeFractionAdd += BuffCore.fearExecuteThresholdAdditive; } } internal override void InitializeDoppelganger() { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), bodyName + "MonsterMaster", true); val.GetComponent().bodyPrefab = bodyPrefab; Prefabs.RemoveAISkillDrivers(val); Prefabs.AddAISkillDriver(val, "Execute", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 15f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)1, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "DashCloser", (SkillSlot)2, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 40f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)1, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Secondary", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 40f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Strafe", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(val, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 30f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.masterPrefabs.Add(val); } } } namespace Starstorm2Unofficial.Survivors.Executioner.Achievements { [RegisterAchievement("SS2UExecutionerClearGameTyphoon", "Skins.SS2UExecutioner.GrandMastery", null, 15u, null)] public class ExecutionerGrandMasteryAchievement : BaseGrandMasteryAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return ExecutionerCore.bodyIndex; } } [RegisterAchievement("SS2UExecutionerClearGameMonsoon", "Skins.SS2UExecutioner.Mastery", null, 10u, null)] public class ExecutionerMasteryAchievement : BasePerSurvivorClearGameMonsoonAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return ExecutionerCore.bodyIndex; } } [RegisterAchievement("SS2UExecutionerWastelander", "Skins.SS2UExecutioner.Wastelander", null, 3u, null)] public class ExecutionerWastelanderAchievement : BaseAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return ExecutionerCore.bodyIndex; } public override void OnBodyRequirementMet() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown ((BaseAchievement)this).OnBodyRequirementMet(); Opening.OnEnter += new hook_OnEnter(StoneGateOpen); } private void StoneGateOpen(orig_OnEnter orig, Opening self) { orig.Invoke(self); ((BaseAchievement)this).Grant(); } public override void OnBodyRequirementBroken() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown Opening.OnEnter -= new hook_OnEnter(StoneGateOpen); ((BaseAchievement)this).OnBodyRequirementBroken(); } } } namespace Starstorm2Unofficial.Survivors.Executioner.Components { public class ExecutionerController : MonoBehaviour { private float maxEmission = 80f; private float currentEmission; private float defaultBodyEmission; private bool wasMaxCharge; private bool isSuperCharged; private Material gunMat; private Material bodyMat; private CharacterBody characterBody; private CharacterModel model; private ChildLocator childLocator; private ParticleSystem dashEffect; private ParticleSystem axeSpawnEffect; private ParticleSystem maxChargeEffect; private ParticleSystem superchargeEffect; private ParticleSystem superchargeEffectLoop; private void Awake() { characterBody = ((Component)this).gameObject.GetComponent(); childLocator = ((Component)this).gameObject.GetComponentInChildren(); model = ((Component)this).GetComponentInChildren(); currentEmission = 0f; wasMaxCharge = false; if (Object.op_Implicit((Object)(object)childLocator)) { dashEffect = ((Component)childLocator.FindChild("DashEffect")).GetComponentInChildren(); axeSpawnEffect = ((Component)childLocator.FindChild("AxeSpawnEffect")).GetComponentInChildren(); maxChargeEffect = ((Component)childLocator.FindChild("MaxChargeEffect")).GetComponentInChildren(); superchargeEffect = ((Component)childLocator.FindChild("SuperchargeEffect")).GetComponentInChildren(); superchargeEffectLoop = ((Component)childLocator.FindChild("SuperchargePassiveEffect")).GetComponentInChildren(); } ((MonoBehaviour)this).Invoke("CheckInventory", 0.2f); } private void Start() { DisableDynamicBones(); SkillLocator component = ((Component)this).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } GenericSkill secondary = component.secondary; if (!Object.op_Implicit((Object)(object)secondary)) { return; } secondary.stock = 0; if (Object.op_Implicit((Object)(object)characterBody) && Object.op_Implicit((Object)(object)characterBody.masterObject)) { MasterIonStockComponent component2 = characterBody.masterObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { secondary.stock = component2.stocks; } } } public void CheckInventory() { //IL_004b: 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) if (Object.op_Implicit((Object)(object)characterBody) && Object.op_Implicit((Object)(object)characterBody.master)) { Inventory inventory = characterBody.master.inventory; if (Object.op_Implicit((Object)(object)inventory)) { if (inventory.GetItemCount(Items.LunarPrimaryReplacement.itemIndex) > 0) { ShowGun(hhhh: false); } else { ShowGun(hhhh: true); } if (inventory.GetItemCount(Items.ArmorReductionOnHit.itemIndex) > 0) { ShowAxe(hhhh: false); } else { ShowAxe(hhhh: true); } } } if (Object.op_Implicit((Object)(object)model)) { bodyMat = model.baseRendererInfos[0].defaultMaterial; gunMat = model.baseRendererInfos[1].defaultMaterial; } } private void ShowGun(bool hhhh) { if (Object.op_Implicit((Object)(object)model)) { if (hhhh) { model.baseRendererInfos[1].defaultMaterial = ((Component)model).gameObject.GetComponent().skins[characterBody.skinIndex].rendererInfos[1].defaultMaterial; } else { model.baseRendererInfos[1].defaultMaterial = null; } } } private void ShowAxe(bool hhhh) { if (Object.op_Implicit((Object)(object)model)) { if (hhhh) { model.baseRendererInfos[2].defaultMaterial = ((Component)model).gameObject.GetComponent().skins[characterBody.skinIndex].rendererInfos[2].defaultMaterial; } else { model.baseRendererInfos[2].defaultMaterial = null; } } } private void DisableDynamicBones() { if (!Object.op_Implicit((Object)(object)model)) { return; } DynamicBone[] components = ((Component)model).GetComponents(); foreach (DynamicBone val in components) { if (Object.op_Implicit((Object)(object)val)) { ((Behaviour)val).enabled = false; } } } private void FixedUpdate() { if (Object.op_Implicit((Object)(object)characterBody) && Object.op_Implicit((Object)(object)characterBody.skillLocator)) { if (characterBody.skillLocator.secondary.stock == characterBody.skillLocator.secondary.maxStock) { if (!wasMaxCharge) { Util.PlaySound("SS2UExecutionerMaxCharge", ((Component)this).gameObject); PlayMaxChargeEffect(); } wasMaxCharge = true; } else { wasMaxCharge = false; } } if (Object.op_Implicit((Object)(object)characterBody)) { bool flag = characterBody.HasBuff(BuffCore.exeSuperchargedBuff); if (isSuperCharged && !flag && Object.op_Implicit((Object)(object)superchargeEffectLoop)) { superchargeEffectLoop.Stop(); } if (!isSuperCharged && flag && Object.op_Implicit((Object)(object)superchargeEffectLoop)) { superchargeEffectLoop.Play(); PlaySuperchargeEffect(); } isSuperCharged = flag; } } public void PlayDashEffect() { if (Object.op_Implicit((Object)(object)dashEffect)) { dashEffect.Play(); } } public void PlayAxeSpawnEffect() { if (Object.op_Implicit((Object)(object)axeSpawnEffect)) { axeSpawnEffect.Play(); } } public void PlayMaxChargeEffect() { if (Object.op_Implicit((Object)(object)maxChargeEffect)) { maxChargeEffect.Play(); } } public void PlaySuperchargeEffect() { if (Object.op_Implicit((Object)(object)superchargeEffect)) { superchargeEffect.Play(); } } } public class ExecutionerKillComponent : MonoBehaviour { public class ExecutionerTimer { public float length; public CharacterBody body; public ExecutionerTimer(CharacterBody b, float l) { body = b; length = l; } } public static float graceDuration = 3f; private List hitList = new List(); private List del = new List(); public void FixedUpdate() { del.Clear(); foreach (ExecutionerTimer hit in hitList) { hit.length -= Time.fixedDeltaTime; if (hit.length <= 0f) { del.Add(hit); } } foreach (ExecutionerTimer item in del) { hitList.Remove(item); } del.Clear(); } public void TriggerEffects(CharacterBody killerBody, DamageType damageType) { //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) List list = new List(); foreach (ExecutionerTimer hit in hitList) { bool flag = false; foreach (CharacterBody item in list) { if ((Object)(object)item == (Object)(object)hit.body) { flag = true; break; } } if (flag) { continue; } list.Add(hit.body); if (NetworkServer.active) { int num = 1; CharacterBody component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { num = ExecutionerCore.GetIonCountFromBody(component); } for (int i = 0; i < num; i++) { ExecutionerIonOrb executionerIonOrb = new ExecutionerIonOrb(); ((Orb)executionerIonOrb).origin = ((Component)this).transform.position; ((Orb)executionerIonOrb).target = Util.FindBodyMainHurtBox(hit.body); OrbManager.instance.AddOrb((Orb)(object)executionerIonOrb); } } } hitList.Clear(); } public void AddTimer(CharacterBody attackerBody, float timer) { if (Object.op_Implicit((Object)(object)attackerBody) && Object.op_Implicit((Object)(object)attackerBody.skillLocator)) { ExecutionerTimer item = new ExecutionerTimer(attackerBody, timer); hitList.Add(item); } } public bool HasReset(CharacterBody body) { foreach (ExecutionerTimer hit in hitList) { if ((Object)(object)hit.body == (Object)(object)body) { return true; } } return false; } } public class IonGunChargeComponent : NetworkBehaviour { public SkillLocator skillLocator; private static int kRpcRpcAddIonCharge; [ClientRpc] public void RpcAddIonCharge() { if (((NetworkBehaviour)this).hasAuthority) { if (!Object.op_Implicit((Object)(object)skillLocator)) { skillLocator = ((Component)this).gameObject.GetComponent(); } GenericSkill val = skillLocator?.secondary; if (Object.op_Implicit((Object)(object)val) && val.stock < val.maxStock) { val.AddOneStock(); } } } private void UNetVersion() { } protected static void InvokeRpcRpcAddIonCharge(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcAddIonCharge called on server."); } else { ((IonGunChargeComponent)(object)obj).RpcAddIonCharge(); } } public void CallRpcAddIonCharge() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcAddIonCharge called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcAddIonCharge); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcAddIonCharge"); } static IonGunChargeComponent() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown kRpcRpcAddIonCharge = 1288672322; NetworkBehaviour.RegisterRpcDelegate(typeof(IonGunChargeComponent), kRpcRpcAddIonCharge, new CmdDelegate(InvokeRpcRpcAddIonCharge)); NetworkCRC.RegisterBehaviour("IonGunChargeComponent", 0); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class MasterIonStockComponent : MonoBehaviour { public int stocks = 0; } } namespace Starstorm2Unofficial.Survivors.Cyborg { public class CyborgTeleSkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public CyborgTeleportTracker teleTracker; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { teleTracker = ((Component)skillSlot).GetComponent() }; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return HasTeleDestination(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && HasTeleDestination(skillSlot); } private static bool HasTeleDestination([NotNull] GenericSkill skillSlot) { CyborgTeleportTracker teleTracker = ((InstanceData)(object)skillSlot.skillInstanceData).teleTracker; return (Object)(object)teleTracker != (Object)null && teleTracker.GetTeleportCoordinates().HasValue; } } public class EnergySkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public CyborgEnergyComponent energyComponent; public float energyFractionCost; } public float energyFractionCost = 0f; public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { energyComponent = ((Component)skillSlot).GetComponent(), energyFractionCost = energyFractionCost }; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return HasEnoughEnergy(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && HasEnoughEnergy(skillSlot); } private static bool HasEnoughEnergy([NotNull] GenericSkill skillSlot) { if (!CyborgCore.useEnergyRework.Value && !((Object)(object)skillSlot.skillFamily.defaultSkillDef == (Object)(object)CyborgCore.Skills.RisingStar)) { return true; } InstanceData instanceData = (InstanceData)(object)skillSlot.skillInstanceData; CyborgEnergyComponent energyComponent = instanceData.energyComponent; return (Object)(object)energyComponent != (Object)null && !energyComponent.energyDepleted && energyComponent.remainingEnergyFraction >= instanceData.energyFractionCost; } } public static class CyborgItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_0056: 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_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_00b1: 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_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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0278: 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_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_039d: 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_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: 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_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_072b: 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_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_0897: Unknown result type (might be due to invalid IL or missing references) //IL_08ab: Unknown result type (might be due to invalid IL or missing references) //IL_08b0: 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_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_0906: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0961: Unknown result type (might be due to invalid IL or missing references) //IL_0966: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a77: Unknown result type (might be due to invalid IL or missing references) //IL_0aa5: 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_0acd: Unknown result type (might be due to invalid IL or missing references) //IL_0ad2: Unknown result type (might be due to invalid IL or missing references) //IL_0b00: Unknown result type (might be due to invalid IL or missing references) //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b83: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Unknown result type (might be due to invalid IL or missing references) //IL_0bb6: Unknown result type (might be due to invalid IL or missing references) //IL_0bca: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0be3: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c25: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c3e: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c80: 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_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cdb: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0d22: Unknown result type (might be due to invalid IL or missing references) //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d4a: Unknown result type (might be due to invalid IL or missing references) //IL_0d4f: Unknown result type (might be due to invalid IL or missing references) //IL_0d7d: Unknown result type (might be due to invalid IL or missing references) //IL_0d91: Unknown result type (might be due to invalid IL or missing references) //IL_0da5: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0dd8: Unknown result type (might be due to invalid IL or missing references) //IL_0dec: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: 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_0e60: Unknown result type (might be due to invalid IL or missing references) //IL_0e8e: 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_0eb6: Unknown result type (might be due to invalid IL or missing references) //IL_0ebb: Unknown result type (might be due to invalid IL or missing references) //IL_0ee9: Unknown result type (might be due to invalid IL or missing references) //IL_0efd: Unknown result type (might be due to invalid IL or missing references) //IL_0f11: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f44: Unknown result type (might be due to invalid IL or missing references) //IL_0f58: Unknown result type (might be due to invalid IL or missing references) //IL_0f6c: Unknown result type (might be due to invalid IL or missing references) //IL_0f71: Unknown result type (might be due to invalid IL or missing references) //IL_0f9f: Unknown result type (might be due to invalid IL or missing references) //IL_0fb3: Unknown result type (might be due to invalid IL or missing references) //IL_0fc7: Unknown result type (might be due to invalid IL or missing references) //IL_0fcc: Unknown result type (might be due to invalid IL or missing references) //IL_0ffa: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Unknown result type (might be due to invalid IL or missing references) //IL_1022: 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_1055: Unknown result type (might be due to invalid IL or missing references) //IL_1069: Unknown result type (might be due to invalid IL or missing references) //IL_107d: Unknown result type (might be due to invalid IL or missing references) //IL_1082: Unknown result type (might be due to invalid IL or missing references) //IL_10b0: Unknown result type (might be due to invalid IL or missing references) //IL_10c4: Unknown result type (might be due to invalid IL or missing references) //IL_10d8: Unknown result type (might be due to invalid IL or missing references) //IL_10dd: Unknown result type (might be due to invalid IL or missing references) //IL_110b: Unknown result type (might be due to invalid IL or missing references) //IL_111f: Unknown result type (might be due to invalid IL or missing references) //IL_1133: Unknown result type (might be due to invalid IL or missing references) //IL_1138: Unknown result type (might be due to invalid IL or missing references) //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_117a: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1193: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_11d5: Unknown result type (might be due to invalid IL or missing references) //IL_11e9: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: Unknown result type (might be due to invalid IL or missing references) //IL_121c: Unknown result type (might be due to invalid IL or missing references) //IL_1230: Unknown result type (might be due to invalid IL or missing references) //IL_1244: Unknown result type (might be due to invalid IL or missing references) //IL_1249: Unknown result type (might be due to invalid IL or missing references) //IL_1277: Unknown result type (might be due to invalid IL or missing references) //IL_128b: Unknown result type (might be due to invalid IL or missing references) //IL_129f: Unknown result type (might be due to invalid IL or missing references) //IL_12a4: Unknown result type (might be due to invalid IL or missing references) //IL_12d2: Unknown result type (might be due to invalid IL or missing references) //IL_12e6: Unknown result type (might be due to invalid IL or missing references) //IL_12fa: Unknown result type (might be due to invalid IL or missing references) //IL_12ff: Unknown result type (might be due to invalid IL or missing references) //IL_132d: Unknown result type (might be due to invalid IL or missing references) //IL_1341: Unknown result type (might be due to invalid IL or missing references) //IL_1355: Unknown result type (might be due to invalid IL or missing references) //IL_135a: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_139c: Unknown result type (might be due to invalid IL or missing references) //IL_13b0: Unknown result type (might be due to invalid IL or missing references) //IL_13b5: Unknown result type (might be due to invalid IL or missing references) //IL_13e3: Unknown result type (might be due to invalid IL or missing references) //IL_13f7: Unknown result type (might be due to invalid IL or missing references) //IL_140b: Unknown result type (might be due to invalid IL or missing references) //IL_1410: 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_1466: Unknown result type (might be due to invalid IL or missing references) //IL_146b: Unknown result type (might be due to invalid IL or missing references) //IL_1499: Unknown result type (might be due to invalid IL or missing references) //IL_14ad: Unknown result type (might be due to invalid IL or missing references) //IL_14c1: Unknown result type (might be due to invalid IL or missing references) //IL_14c6: Unknown result type (might be due to invalid IL or missing references) //IL_14f4: Unknown result type (might be due to invalid IL or missing references) //IL_1508: Unknown result type (might be due to invalid IL or missing references) //IL_151c: Unknown result type (might be due to invalid IL or missing references) //IL_1521: Unknown result type (might be due to invalid IL or missing references) //IL_154f: Unknown result type (might be due to invalid IL or missing references) //IL_1563: Unknown result type (might be due to invalid IL or missing references) //IL_1577: Unknown result type (might be due to invalid IL or missing references) //IL_157c: Unknown result type (might be due to invalid IL or missing references) //IL_15aa: Unknown result type (might be due to invalid IL or missing references) //IL_15be: Unknown result type (might be due to invalid IL or missing references) //IL_15d2: Unknown result type (might be due to invalid IL or missing references) //IL_15d7: Unknown result type (might be due to invalid IL or missing references) //IL_1605: Unknown result type (might be due to invalid IL or missing references) //IL_1619: Unknown result type (might be due to invalid IL or missing references) //IL_162d: Unknown result type (might be due to invalid IL or missing references) //IL_1632: Unknown result type (might be due to invalid IL or missing references) //IL_1660: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_1688: Unknown result type (might be due to invalid IL or missing references) //IL_168d: Unknown result type (might be due to invalid IL or missing references) //IL_16bb: Unknown result type (might be due to invalid IL or missing references) //IL_16cf: Unknown result type (might be due to invalid IL or missing references) //IL_16e3: Unknown result type (might be due to invalid IL or missing references) //IL_16e8: Unknown result type (might be due to invalid IL or missing references) //IL_1716: Unknown result type (might be due to invalid IL or missing references) //IL_172a: Unknown result type (might be due to invalid IL or missing references) //IL_173e: Unknown result type (might be due to invalid IL or missing references) //IL_1743: Unknown result type (might be due to invalid IL or missing references) //IL_1771: Unknown result type (might be due to invalid IL or missing references) //IL_1785: Unknown result type (might be due to invalid IL or missing references) //IL_1799: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17cc: Unknown result type (might be due to invalid IL or missing references) //IL_17e0: Unknown result type (might be due to invalid IL or missing references) //IL_17f4: Unknown result type (might be due to invalid IL or missing references) //IL_17f9: Unknown result type (might be due to invalid IL or missing references) //IL_1827: Unknown result type (might be due to invalid IL or missing references) //IL_183b: Unknown result type (might be due to invalid IL or missing references) //IL_184f: Unknown result type (might be due to invalid IL or missing references) //IL_1854: Unknown result type (might be due to invalid IL or missing references) //IL_1882: Unknown result type (might be due to invalid IL or missing references) //IL_1896: Unknown result type (might be due to invalid IL or missing references) //IL_18aa: Unknown result type (might be due to invalid IL or missing references) //IL_18af: Unknown result type (might be due to invalid IL or missing references) //IL_18dd: Unknown result type (might be due to invalid IL or missing references) //IL_18f1: Unknown result type (might be due to invalid IL or missing references) //IL_1905: Unknown result type (might be due to invalid IL or missing references) //IL_190a: Unknown result type (might be due to invalid IL or missing references) //IL_1938: Unknown result type (might be due to invalid IL or missing references) //IL_194c: Unknown result type (might be due to invalid IL or missing references) //IL_1960: Unknown result type (might be due to invalid IL or missing references) //IL_1965: Unknown result type (might be due to invalid IL or missing references) //IL_1993: Unknown result type (might be due to invalid IL or missing references) //IL_19a7: Unknown result type (might be due to invalid IL or missing references) //IL_19bb: Unknown result type (might be due to invalid IL or missing references) //IL_19c0: Unknown result type (might be due to invalid IL or missing references) //IL_19ee: Unknown result type (might be due to invalid IL or missing references) //IL_1a02: Unknown result type (might be due to invalid IL or missing references) //IL_1a16: Unknown result type (might be due to invalid IL or missing references) //IL_1a1b: Unknown result type (might be due to invalid IL or missing references) //IL_1a49: Unknown result type (might be due to invalid IL or missing references) //IL_1a5d: Unknown result type (might be due to invalid IL or missing references) //IL_1a71: Unknown result type (might be due to invalid IL or missing references) //IL_1a76: Unknown result type (might be due to invalid IL or missing references) //IL_1aa4: Unknown result type (might be due to invalid IL or missing references) //IL_1ab8: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ad1: Unknown result type (might be due to invalid IL or missing references) //IL_1aff: Unknown result type (might be due to invalid IL or missing references) //IL_1b13: Unknown result type (might be due to invalid IL or missing references) //IL_1b27: Unknown result type (might be due to invalid IL or missing references) //IL_1b2c: 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_1b6e: Unknown result type (might be due to invalid IL or missing references) //IL_1b82: Unknown result type (might be due to invalid IL or missing references) //IL_1b87: Unknown result type (might be due to invalid IL or missing references) //IL_1bb5: Unknown result type (might be due to invalid IL or missing references) //IL_1bc9: Unknown result type (might be due to invalid IL or missing references) //IL_1bdd: Unknown result type (might be due to invalid IL or missing references) //IL_1be2: Unknown result type (might be due to invalid IL or missing references) //IL_1c10: Unknown result type (might be due to invalid IL or missing references) //IL_1c24: Unknown result type (might be due to invalid IL or missing references) //IL_1c38: Unknown result type (might be due to invalid IL or missing references) //IL_1c3d: Unknown result type (might be due to invalid IL or missing references) //IL_1c6b: Unknown result type (might be due to invalid IL or missing references) //IL_1c7f: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c98: Unknown result type (might be due to invalid IL or missing references) //IL_1cc6: Unknown result type (might be due to invalid IL or missing references) //IL_1cda: Unknown result type (might be due to invalid IL or missing references) //IL_1cee: Unknown result type (might be due to invalid IL or missing references) //IL_1cf3: Unknown result type (might be due to invalid IL or missing references) //IL_1d21: Unknown result type (might be due to invalid IL or missing references) //IL_1d35: Unknown result type (might be due to invalid IL or missing references) //IL_1d49: Unknown result type (might be due to invalid IL or missing references) //IL_1d4e: Unknown result type (might be due to invalid IL or missing references) //IL_1d7c: Unknown result type (might be due to invalid IL or missing references) //IL_1d90: Unknown result type (might be due to invalid IL or missing references) //IL_1da4: Unknown result type (might be due to invalid IL or missing references) //IL_1da9: Unknown result type (might be due to invalid IL or missing references) //IL_1dd7: Unknown result type (might be due to invalid IL or missing references) //IL_1deb: Unknown result type (might be due to invalid IL or missing references) //IL_1dff: Unknown result type (might be due to invalid IL or missing references) //IL_1e04: Unknown result type (might be due to invalid IL or missing references) //IL_1e32: Unknown result type (might be due to invalid IL or missing references) //IL_1e46: Unknown result type (might be due to invalid IL or missing references) //IL_1e5a: Unknown result type (might be due to invalid IL or missing references) //IL_1e5f: Unknown result type (might be due to invalid IL or missing references) //IL_1e8d: Unknown result type (might be due to invalid IL or missing references) //IL_1ea1: Unknown result type (might be due to invalid IL or missing references) //IL_1eb5: Unknown result type (might be due to invalid IL or missing references) //IL_1eba: Unknown result type (might be due to invalid IL or missing references) //IL_1ee8: Unknown result type (might be due to invalid IL or missing references) //IL_1efc: 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_1f43: Unknown result type (might be due to invalid IL or missing references) //IL_1f57: Unknown result type (might be due to invalid IL or missing references) //IL_1f6b: Unknown result type (might be due to invalid IL or missing references) //IL_1f70: Unknown result type (might be due to invalid IL or missing references) //IL_1f9e: Unknown result type (might be due to invalid IL or missing references) //IL_1fb2: Unknown result type (might be due to invalid IL or missing references) //IL_1fc6: Unknown result type (might be due to invalid IL or missing references) //IL_1fcb: Unknown result type (might be due to invalid IL or missing references) //IL_1ff9: Unknown result type (might be due to invalid IL or missing references) //IL_200d: Unknown result type (might be due to invalid IL or missing references) //IL_2021: Unknown result type (might be due to invalid IL or missing references) //IL_2026: Unknown result type (might be due to invalid IL or missing references) //IL_2054: Unknown result type (might be due to invalid IL or missing references) //IL_2068: Unknown result type (might be due to invalid IL or missing references) //IL_207c: Unknown result type (might be due to invalid IL or missing references) //IL_2081: Unknown result type (might be due to invalid IL or missing references) //IL_20af: Unknown result type (might be due to invalid IL or missing references) //IL_20c3: Unknown result type (might be due to invalid IL or missing references) //IL_20d7: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_210a: Unknown result type (might be due to invalid IL or missing references) //IL_211e: Unknown result type (might be due to invalid IL or missing references) //IL_2132: Unknown result type (might be due to invalid IL or missing references) //IL_2137: Unknown result type (might be due to invalid IL or missing references) //IL_2165: Unknown result type (might be due to invalid IL or missing references) //IL_2179: Unknown result type (might be due to invalid IL or missing references) //IL_218d: Unknown result type (might be due to invalid IL or missing references) //IL_2192: Unknown result type (might be due to invalid IL or missing references) //IL_21c0: Unknown result type (might be due to invalid IL or missing references) //IL_21d4: Unknown result type (might be due to invalid IL or missing references) //IL_21e8: Unknown result type (might be due to invalid IL or missing references) //IL_21ed: Unknown result type (might be due to invalid IL or missing references) //IL_221b: Unknown result type (might be due to invalid IL or missing references) //IL_222f: Unknown result type (might be due to invalid IL or missing references) //IL_2243: Unknown result type (might be due to invalid IL or missing references) //IL_2248: Unknown result type (might be due to invalid IL or missing references) //IL_2276: Unknown result type (might be due to invalid IL or missing references) //IL_228a: Unknown result type (might be due to invalid IL or missing references) //IL_229e: Unknown result type (might be due to invalid IL or missing references) //IL_22a3: Unknown result type (might be due to invalid IL or missing references) //IL_22d1: Unknown result type (might be due to invalid IL or missing references) //IL_22e5: Unknown result type (might be due to invalid IL or missing references) //IL_22f9: Unknown result type (might be due to invalid IL or missing references) //IL_22fe: Unknown result type (might be due to invalid IL or missing references) //IL_232c: Unknown result type (might be due to invalid IL or missing references) //IL_2340: Unknown result type (might be due to invalid IL or missing references) //IL_2354: Unknown result type (might be due to invalid IL or missing references) //IL_2359: Unknown result type (might be due to invalid IL or missing references) //IL_2387: Unknown result type (might be due to invalid IL or missing references) //IL_239b: Unknown result type (might be due to invalid IL or missing references) //IL_23af: Unknown result type (might be due to invalid IL or missing references) //IL_23b4: Unknown result type (might be due to invalid IL or missing references) //IL_23e2: Unknown result type (might be due to invalid IL or missing references) //IL_23f6: Unknown result type (might be due to invalid IL or missing references) //IL_240a: Unknown result type (might be due to invalid IL or missing references) //IL_240f: 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_2451: Unknown result type (might be due to invalid IL or missing references) //IL_2465: Unknown result type (might be due to invalid IL or missing references) //IL_246a: Unknown result type (might be due to invalid IL or missing references) //IL_2498: Unknown result type (might be due to invalid IL or missing references) //IL_24ac: Unknown result type (might be due to invalid IL or missing references) //IL_24c0: Unknown result type (might be due to invalid IL or missing references) //IL_24c5: Unknown result type (might be due to invalid IL or missing references) //IL_24f3: Unknown result type (might be due to invalid IL or missing references) //IL_2507: Unknown result type (might be due to invalid IL or missing references) //IL_251b: Unknown result type (might be due to invalid IL or missing references) //IL_2520: Unknown result type (might be due to invalid IL or missing references) //IL_2549: Unknown result type (might be due to invalid IL or missing references) //IL_255d: Unknown result type (might be due to invalid IL or missing references) //IL_2571: Unknown result type (might be due to invalid IL or missing references) //IL_2576: Unknown result type (might be due to invalid IL or missing references) //IL_259f: Unknown result type (might be due to invalid IL or missing references) //IL_25b3: Unknown result type (might be due to invalid IL or missing references) //IL_25c7: Unknown result type (might be due to invalid IL or missing references) //IL_25cc: Unknown result type (might be due to invalid IL or missing references) //IL_25f5: Unknown result type (might be due to invalid IL or missing references) //IL_2609: Unknown result type (might be due to invalid IL or missing references) //IL_261d: Unknown result type (might be due to invalid IL or missing references) //IL_2622: Unknown result type (might be due to invalid IL or missing references) //IL_264b: Unknown result type (might be due to invalid IL or missing references) //IL_265f: Unknown result type (might be due to invalid IL or missing references) //IL_2673: Unknown result type (might be due to invalid IL or missing references) //IL_2678: Unknown result type (might be due to invalid IL or missing references) //IL_26a1: Unknown result type (might be due to invalid IL or missing references) //IL_26b5: Unknown result type (might be due to invalid IL or missing references) //IL_26c9: Unknown result type (might be due to invalid IL or missing references) //IL_26ce: Unknown result type (might be due to invalid IL or missing references) //IL_26f7: Unknown result type (might be due to invalid IL or missing references) //IL_270b: Unknown result type (might be due to invalid IL or missing references) //IL_271f: Unknown result type (might be due to invalid IL or missing references) //IL_2724: Unknown result type (might be due to invalid IL or missing references) //IL_2752: Unknown result type (might be due to invalid IL or missing references) //IL_2766: Unknown result type (might be due to invalid IL or missing references) //IL_277a: Unknown result type (might be due to invalid IL or missing references) //IL_277f: Unknown result type (might be due to invalid IL or missing references) //IL_27ad: Unknown result type (might be due to invalid IL or missing references) //IL_27c1: Unknown result type (might be due to invalid IL or missing references) //IL_27d5: 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_2808: Unknown result type (might be due to invalid IL or missing references) //IL_281c: Unknown result type (might be due to invalid IL or missing references) //IL_2830: Unknown result type (might be due to invalid IL or missing references) //IL_2835: Unknown result type (might be due to invalid IL or missing references) //IL_2863: Unknown result type (might be due to invalid IL or missing references) //IL_2877: Unknown result type (might be due to invalid IL or missing references) //IL_288b: Unknown result type (might be due to invalid IL or missing references) //IL_2890: Unknown result type (might be due to invalid IL or missing references) //IL_28a2: Unknown result type (might be due to invalid IL or missing references) //IL_28b8: 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_28d3: Unknown result type (might be due to invalid IL or missing references) //IL_2906: Unknown result type (might be due to invalid IL or missing references) //IL_290b: Unknown result type (might be due to invalid IL or missing references) //IL_2921: Unknown result type (might be due to invalid IL or missing references) //IL_2926: Unknown result type (might be due to invalid IL or missing references) //IL_293c: Unknown result type (might be due to invalid IL or missing references) //IL_2941: Unknown result type (might be due to invalid IL or missing references) //IL_2949: Unknown result type (might be due to invalid IL or missing references) //IL_294e: Unknown result type (might be due to invalid IL or missing references) //IL_2950: Unknown result type (might be due to invalid IL or missing references) //IL_2959: Unknown result type (might be due to invalid IL or missing references) //IL_2962: Unknown result type (might be due to invalid IL or missing references) //IL_2995: Unknown result type (might be due to invalid IL or missing references) //IL_299a: Unknown result type (might be due to invalid IL or missing references) //IL_29b0: Unknown result type (might be due to invalid IL or missing references) //IL_29b5: Unknown result type (might be due to invalid IL or missing references) //IL_29cb: Unknown result type (might be due to invalid IL or missing references) //IL_29d0: 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_29df: Unknown result type (might be due to invalid IL or missing references) //IL_29e9: Unknown result type (might be due to invalid IL or missing references) //IL_29eb: Unknown result type (might be due to invalid IL or missing references) //IL_29f0: Unknown result type (might be due to invalid IL or missing references) //IL_29ff: Unknown result type (might be due to invalid IL or missing references) //IL_2a15: Unknown result type (might be due to invalid IL or missing references) //IL_2a27: Unknown result type (might be due to invalid IL or missing references) //IL_2a30: Unknown result type (might be due to invalid IL or missing references) //IL_2a63: Unknown result type (might be due to invalid IL or missing references) //IL_2a68: Unknown result type (might be due to invalid IL or missing references) //IL_2a7e: Unknown result type (might be due to invalid IL or missing references) //IL_2a83: Unknown result type (might be due to invalid IL or missing references) //IL_2a99: Unknown result type (might be due to invalid IL or missing references) //IL_2a9e: Unknown result type (might be due to invalid IL or missing references) //IL_2aa6: Unknown result type (might be due to invalid IL or missing references) //IL_2aab: Unknown result type (might be due to invalid IL or missing references) //IL_2aad: Unknown result type (might be due to invalid IL or missing references) //IL_2ab6: Unknown result type (might be due to invalid IL or missing references) //IL_2abf: Unknown result type (might be due to invalid IL or missing references) //IL_2af2: Unknown result type (might be due to invalid IL or missing references) //IL_2af7: Unknown result type (might be due to invalid IL or missing references) //IL_2b0d: Unknown result type (might be due to invalid IL or missing references) //IL_2b12: Unknown result type (might be due to invalid IL or missing references) //IL_2b28: Unknown result type (might be due to invalid IL or missing references) //IL_2b2d: Unknown result type (might be due to invalid IL or missing references) //IL_2b35: Unknown result type (might be due to invalid IL or missing references) //IL_2b3a: Unknown result type (might be due to invalid IL or missing references) //IL_2b3c: Unknown result type (might be due to invalid IL or missing references) //IL_2b45: Unknown result type (might be due to invalid IL or missing references) //IL_2b4e: Unknown result type (might be due to invalid IL or missing references) //IL_2b81: Unknown result type (might be due to invalid IL or missing references) //IL_2b86: 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_2ba1: Unknown result type (might be due to invalid IL or missing references) //IL_2bb7: Unknown result type (might be due to invalid IL or missing references) //IL_2bbc: Unknown result type (might be due to invalid IL or missing references) //IL_2bc4: Unknown result type (might be due to invalid IL or missing references) //IL_2bc9: Unknown result type (might be due to invalid IL or missing references) //IL_2bcb: Unknown result type (might be due to invalid IL or missing references) //IL_2bd4: 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_2c10: Unknown result type (might be due to invalid IL or missing references) //IL_2c15: Unknown result type (might be due to invalid IL or missing references) //IL_2c2b: Unknown result type (might be due to invalid IL or missing references) //IL_2c30: Unknown result type (might be due to invalid IL or missing references) //IL_2c46: Unknown result type (might be due to invalid IL or missing references) //IL_2c4b: Unknown result type (might be due to invalid IL or missing references) //IL_2c53: Unknown result type (might be due to invalid IL or missing references) //IL_2c58: Unknown result type (might be due to invalid IL or missing references) //IL_2c5a: Unknown result type (might be due to invalid IL or missing references) //IL_2c63: Unknown result type (might be due to invalid IL or missing references) //IL_2c6c: Unknown result type (might be due to invalid IL or missing references) //IL_2c9f: Unknown result type (might be due to invalid IL or missing references) //IL_2ca4: Unknown result type (might be due to invalid IL or missing references) //IL_2cba: Unknown result type (might be due to invalid IL or missing references) //IL_2cbf: Unknown result type (might be due to invalid IL or missing references) //IL_2cd5: Unknown result type (might be due to invalid IL or missing references) //IL_2cda: Unknown result type (might be due to invalid IL or missing references) //IL_2ce2: Unknown result type (might be due to invalid IL or missing references) //IL_2ce7: Unknown result type (might be due to invalid IL or missing references) //IL_2ce9: Unknown result type (might be due to invalid IL or missing references) //IL_2cf3: 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_2d25: Unknown result type (might be due to invalid IL or missing references) //IL_2d39: Unknown result type (might be due to invalid IL or missing references) //IL_2d4d: Unknown result type (might be due to invalid IL or missing references) //IL_2d52: Unknown result type (might be due to invalid IL or missing references) //IL_2d80: Unknown result type (might be due to invalid IL or missing references) //IL_2d94: Unknown result type (might be due to invalid IL or missing references) //IL_2da8: Unknown result type (might be due to invalid IL or missing references) //IL_2dad: Unknown result type (might be due to invalid IL or missing references) //IL_2ddb: Unknown result type (might be due to invalid IL or missing references) //IL_2def: Unknown result type (might be due to invalid IL or missing references) //IL_2e03: Unknown result type (might be due to invalid IL or missing references) //IL_2e08: Unknown result type (might be due to invalid IL or missing references) //IL_2e36: Unknown result type (might be due to invalid IL or missing references) //IL_2e4a: Unknown result type (might be due to invalid IL or missing references) //IL_2e5e: Unknown result type (might be due to invalid IL or missing references) //IL_2e63: Unknown result type (might be due to invalid IL or missing references) //IL_2e91: Unknown result type (might be due to invalid IL or missing references) //IL_2ea5: Unknown result type (might be due to invalid IL or missing references) //IL_2eb9: Unknown result type (might be due to invalid IL or missing references) //IL_2ebe: Unknown result type (might be due to invalid IL or missing references) //IL_2eec: Unknown result type (might be due to invalid IL or missing references) //IL_2f00: Unknown result type (might be due to invalid IL or missing references) //IL_2f14: Unknown result type (might be due to invalid IL or missing references) //IL_2f19: Unknown result type (might be due to invalid IL or missing references) //IL_2f47: Unknown result type (might be due to invalid IL or missing references) //IL_2f5b: Unknown result type (might be due to invalid IL or missing references) //IL_2f6f: Unknown result type (might be due to invalid IL or missing references) //IL_2f74: Unknown result type (might be due to invalid IL or missing references) //IL_2fa2: Unknown result type (might be due to invalid IL or missing references) //IL_2fb6: Unknown result type (might be due to invalid IL or missing references) //IL_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_2ffd: Unknown result type (might be due to invalid IL or missing references) //IL_3011: Unknown result type (might be due to invalid IL or missing references) //IL_3025: Unknown result type (might be due to invalid IL or missing references) //IL_302a: Unknown result type (might be due to invalid IL or missing references) //IL_3058: Unknown result type (might be due to invalid IL or missing references) //IL_306c: Unknown result type (might be due to invalid IL or missing references) //IL_3080: Unknown result type (might be due to invalid IL or missing references) //IL_3085: Unknown result type (might be due to invalid IL or missing references) //IL_30b3: Unknown result type (might be due to invalid IL or missing references) //IL_30c7: Unknown result type (might be due to invalid IL or missing references) //IL_30db: Unknown result type (might be due to invalid IL or missing references) //IL_30e0: Unknown result type (might be due to invalid IL or missing references) //IL_310e: Unknown result type (might be due to invalid IL or missing references) //IL_3122: Unknown result type (might be due to invalid IL or missing references) //IL_3136: Unknown result type (might be due to invalid IL or missing references) //IL_313b: Unknown result type (might be due to invalid IL or missing references) //IL_3169: Unknown result type (might be due to invalid IL or missing references) //IL_317d: Unknown result type (might be due to invalid IL or missing references) //IL_3191: Unknown result type (might be due to invalid IL or missing references) //IL_3196: Unknown result type (might be due to invalid IL or missing references) //IL_31c4: Unknown result type (might be due to invalid IL or missing references) //IL_31d8: Unknown result type (might be due to invalid IL or missing references) //IL_31ec: Unknown result type (might be due to invalid IL or missing references) //IL_31f1: Unknown result type (might be due to invalid IL or missing references) //IL_321f: Unknown result type (might be due to invalid IL or missing references) //IL_3233: Unknown result type (might be due to invalid IL or missing references) //IL_3247: Unknown result type (might be due to invalid IL or missing references) //IL_324c: Unknown result type (might be due to invalid IL or missing references) //IL_327a: Unknown result type (might be due to invalid IL or missing references) //IL_328e: Unknown result type (might be due to invalid IL or missing references) //IL_32a2: Unknown result type (might be due to invalid IL or missing references) //IL_32a7: Unknown result type (might be due to invalid IL or missing references) //IL_32d5: Unknown result type (might be due to invalid IL or missing references) //IL_32e9: Unknown result type (might be due to invalid IL or missing references) //IL_32fd: Unknown result type (might be due to invalid IL or missing references) //IL_3302: Unknown result type (might be due to invalid IL or missing references) //IL_3330: Unknown result type (might be due to invalid IL or missing references) //IL_3344: Unknown result type (might be due to invalid IL or missing references) //IL_3358: Unknown result type (might be due to invalid IL or missing references) //IL_335d: Unknown result type (might be due to invalid IL or missing references) //IL_338b: Unknown result type (might be due to invalid IL or missing references) //IL_339f: Unknown result type (might be due to invalid IL or missing references) //IL_33b3: Unknown result type (might be due to invalid IL or missing references) //IL_33b8: 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_33fa: Unknown result type (might be due to invalid IL or missing references) //IL_340e: Unknown result type (might be due to invalid IL or missing references) //IL_3413: Unknown result type (might be due to invalid IL or missing references) //IL_3441: Unknown result type (might be due to invalid IL or missing references) //IL_3455: Unknown result type (might be due to invalid IL or missing references) //IL_3469: Unknown result type (might be due to invalid IL or missing references) //IL_346e: Unknown result type (might be due to invalid IL or missing references) //IL_349c: Unknown result type (might be due to invalid IL or missing references) //IL_34b0: Unknown result type (might be due to invalid IL or missing references) //IL_34c4: Unknown result type (might be due to invalid IL or missing references) //IL_34c9: Unknown result type (might be due to invalid IL or missing references) //IL_34f7: Unknown result type (might be due to invalid IL or missing references) //IL_350b: Unknown result type (might be due to invalid IL or missing references) //IL_351f: Unknown result type (might be due to invalid IL or missing references) //IL_3524: Unknown result type (might be due to invalid IL or missing references) //IL_3552: Unknown result type (might be due to invalid IL or missing references) //IL_3566: Unknown result type (might be due to invalid IL or missing references) //IL_357a: Unknown result type (might be due to invalid IL or missing references) //IL_357f: Unknown result type (might be due to invalid IL or missing references) //IL_35ad: Unknown result type (might be due to invalid IL or missing references) //IL_35c1: Unknown result type (might be due to invalid IL or missing references) //IL_35d5: Unknown result type (might be due to invalid IL or missing references) //IL_35da: Unknown result type (might be due to invalid IL or missing references) //IL_3603: Unknown result type (might be due to invalid IL or missing references) //IL_3617: Unknown result type (might be due to invalid IL or missing references) //IL_362b: Unknown result type (might be due to invalid IL or missing references) //IL_3630: Unknown result type (might be due to invalid IL or missing references) //IL_365e: Unknown result type (might be due to invalid IL or missing references) //IL_3672: Unknown result type (might be due to invalid IL or missing references) //IL_3686: Unknown result type (might be due to invalid IL or missing references) //IL_368b: Unknown result type (might be due to invalid IL or missing references) //IL_36b9: Unknown result type (might be due to invalid IL or missing references) //IL_36cd: Unknown result type (might be due to invalid IL or missing references) //IL_36e1: Unknown result type (might be due to invalid IL or missing references) //IL_36e6: Unknown result type (might be due to invalid IL or missing references) //IL_3714: Unknown result type (might be due to invalid IL or missing references) //IL_3728: Unknown result type (might be due to invalid IL or missing references) //IL_373c: Unknown result type (might be due to invalid IL or missing references) //IL_3741: Unknown result type (might be due to invalid IL or missing references) //IL_376f: Unknown result type (might be due to invalid IL or missing references) //IL_3783: Unknown result type (might be due to invalid IL or missing references) //IL_3797: Unknown result type (might be due to invalid IL or missing references) //IL_379c: Unknown result type (might be due to invalid IL or missing references) //IL_37ca: Unknown result type (might be due to invalid IL or missing references) //IL_37de: Unknown result type (might be due to invalid IL or missing references) //IL_37f2: Unknown result type (might be due to invalid IL or missing references) //IL_37f7: Unknown result type (might be due to invalid IL or missing references) //IL_3809: Unknown result type (might be due to invalid IL or missing references) //IL_381f: Unknown result type (might be due to invalid IL or missing references) //IL_3831: Unknown result type (might be due to invalid IL or missing references) //IL_383a: Unknown result type (might be due to invalid IL or missing references) //IL_386d: Unknown result type (might be due to invalid IL or missing references) //IL_3872: Unknown result type (might be due to invalid IL or missing references) //IL_3888: Unknown result type (might be due to invalid IL or missing references) //IL_388d: Unknown result type (might be due to invalid IL or missing references) //IL_38a3: Unknown result type (might be due to invalid IL or missing references) //IL_38a8: Unknown result type (might be due to invalid IL or missing references) //IL_38b0: Unknown result type (might be due to invalid IL or missing references) //IL_38b5: Unknown result type (might be due to invalid IL or missing references) //IL_38b7: Unknown result type (might be due to invalid IL or missing references) //IL_38c0: Unknown result type (might be due to invalid IL or missing references) //IL_38c9: Unknown result type (might be due to invalid IL or missing references) //IL_38fc: Unknown result type (might be due to invalid IL or missing references) //IL_3901: Unknown result type (might be due to invalid IL or missing references) //IL_3917: Unknown result type (might be due to invalid IL or missing references) //IL_391c: Unknown result type (might be due to invalid IL or missing references) //IL_3932: Unknown result type (might be due to invalid IL or missing references) //IL_3937: Unknown result type (might be due to invalid IL or missing references) //IL_393f: Unknown result type (might be due to invalid IL or missing references) //IL_3944: Unknown result type (might be due to invalid IL or missing references) //IL_3946: Unknown result type (might be due to invalid IL or missing references) //IL_3950: Unknown result type (might be due to invalid IL or missing references) //IL_3952: Unknown result type (might be due to invalid IL or missing references) //IL_3957: Unknown result type (might be due to invalid IL or missing references) //IL_3982: Unknown result type (might be due to invalid IL or missing references) //IL_3996: Unknown result type (might be due to invalid IL or missing references) //IL_39a0: Unknown result type (might be due to invalid IL or missing references) //IL_39a5: Unknown result type (might be due to invalid IL or missing references) //IL_39aa: Unknown result type (might be due to invalid IL or missing references) //IL_39d8: Unknown result type (might be due to invalid IL or missing references) //IL_39ec: Unknown result type (might be due to invalid IL or missing references) //IL_3a00: Unknown result type (might be due to invalid IL or missing references) //IL_3a05: Unknown result type (might be due to invalid IL or missing references) //IL_3a33: Unknown result type (might be due to invalid IL or missing references) //IL_3a47: Unknown result type (might be due to invalid IL or missing references) //IL_3a5b: Unknown result type (might be due to invalid IL or missing references) //IL_3a60: Unknown result type (might be due to invalid IL or missing references) //IL_3a8e: Unknown result type (might be due to invalid IL or missing references) //IL_3aa2: Unknown result type (might be due to invalid IL or missing references) //IL_3ab6: Unknown result type (might be due to invalid IL or missing references) //IL_3abb: Unknown result type (might be due to invalid IL or missing references) //IL_3acd: Unknown result type (might be due to invalid IL or missing references) //IL_3ae3: Unknown result type (might be due to invalid IL or missing references) //IL_3af5: Unknown result type (might be due to invalid IL or missing references) //IL_3afe: Unknown result type (might be due to invalid IL or missing references) //IL_3b31: Unknown result type (might be due to invalid IL or missing references) //IL_3b36: Unknown result type (might be due to invalid IL or missing references) //IL_3b4c: Unknown result type (might be due to invalid IL or missing references) //IL_3b51: Unknown result type (might be due to invalid IL or missing references) //IL_3b67: Unknown result type (might be due to invalid IL or missing references) //IL_3b6c: Unknown result type (might be due to invalid IL or missing references) //IL_3b74: Unknown result type (might be due to invalid IL or missing references) //IL_3b79: Unknown result type (might be due to invalid IL or missing references) //IL_3b7b: Unknown result type (might be due to invalid IL or missing references) //IL_3b84: Unknown result type (might be due to invalid IL or missing references) //IL_3b8d: Unknown result type (might be due to invalid IL or missing references) //IL_3bc0: Unknown result type (might be due to invalid IL or missing references) //IL_3bc5: Unknown result type (might be due to invalid IL or missing references) //IL_3bdb: Unknown result type (might be due to invalid IL or missing references) //IL_3be0: 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_3bfb: Unknown result type (might be due to invalid IL or missing references) //IL_3c03: Unknown result type (might be due to invalid IL or missing references) //IL_3c08: 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_3c14: Unknown result type (might be due to invalid IL or missing references) //IL_3c16: Unknown result type (might be due to invalid IL or missing references) //IL_3c1b: Unknown result type (might be due to invalid IL or missing references) //IL_3c46: Unknown result type (might be due to invalid IL or missing references) //IL_3c5a: Unknown result type (might be due to invalid IL or missing references) //IL_3c6e: Unknown result type (might be due to invalid IL or missing references) //IL_3c73: Unknown result type (might be due to invalid IL or missing references) //IL_3ca1: Unknown result type (might be due to invalid IL or missing references) //IL_3cb5: Unknown result type (might be due to invalid IL or missing references) //IL_3cc9: Unknown result type (might be due to invalid IL or missing references) //IL_3cce: Unknown result type (might be due to invalid IL or missing references) //IL_3cfc: Unknown result type (might be due to invalid IL or missing references) //IL_3d10: Unknown result type (might be due to invalid IL or missing references) //IL_3d24: Unknown result type (might be due to invalid IL or missing references) //IL_3d29: Unknown result type (might be due to invalid IL or missing references) //IL_3d57: Unknown result type (might be due to invalid IL or missing references) //IL_3d6b: Unknown result type (might be due to invalid IL or missing references) //IL_3d7f: Unknown result type (might be due to invalid IL or missing references) //IL_3d84: Unknown result type (might be due to invalid IL or missing references) //IL_3db7: Unknown result type (might be due to invalid IL or missing references) //IL_3dcb: Unknown result type (might be due to invalid IL or missing references) //IL_3ddf: Unknown result type (might be due to invalid IL or missing references) //IL_3de4: Unknown result type (might be due to invalid IL or missing references) //IL_3e12: Unknown result type (might be due to invalid IL or missing references) //IL_3e26: Unknown result type (might be due to invalid IL or missing references) //IL_3e3a: Unknown result type (might be due to invalid IL or missing references) //IL_3e3f: Unknown result type (might be due to invalid IL or missing references) //IL_3e6d: Unknown result type (might be due to invalid IL or missing references) //IL_3e81: Unknown result type (might be due to invalid IL or missing references) //IL_3e95: Unknown result type (might be due to invalid IL or missing references) //IL_3e9a: Unknown result type (might be due to invalid IL or missing references) //IL_3ec8: Unknown result type (might be due to invalid IL or missing references) //IL_3edc: Unknown result type (might be due to invalid IL or missing references) //IL_3ef0: Unknown result type (might be due to invalid IL or missing references) //IL_3ef5: Unknown result type (might be due to invalid IL or missing references) //IL_3f23: Unknown result type (might be due to invalid IL or missing references) //IL_3f37: 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_3f7e: Unknown result type (might be due to invalid IL or missing references) //IL_3f92: Unknown result type (might be due to invalid IL or missing references) //IL_3fa6: Unknown result type (might be due to invalid IL or missing references) //IL_3fab: Unknown result type (might be due to invalid IL or missing references) //IL_3fbd: Unknown result type (might be due to invalid IL or missing references) //IL_3fd3: Unknown result type (might be due to invalid IL or missing references) //IL_3fe5: Unknown result type (might be due to invalid IL or missing references) //IL_3fee: Unknown result type (might be due to invalid IL or missing references) //IL_4021: Unknown result type (might be due to invalid IL or missing references) //IL_4026: Unknown result type (might be due to invalid IL or missing references) //IL_403c: Unknown result type (might be due to invalid IL or missing references) //IL_4041: Unknown result type (might be due to invalid IL or missing references) //IL_4057: Unknown result type (might be due to invalid IL or missing references) //IL_405c: Unknown result type (might be due to invalid IL or missing references) //IL_4064: Unknown result type (might be due to invalid IL or missing references) //IL_4069: Unknown result type (might be due to invalid IL or missing references) //IL_406b: Unknown result type (might be due to invalid IL or missing references) //IL_4074: Unknown result type (might be due to invalid IL or missing references) //IL_407d: Unknown result type (might be due to invalid IL or missing references) //IL_40b0: Unknown result type (might be due to invalid IL or missing references) //IL_40b5: Unknown result type (might be due to invalid IL or missing references) //IL_40cb: Unknown result type (might be due to invalid IL or missing references) //IL_40d0: Unknown result type (might be due to invalid IL or missing references) //IL_40e6: Unknown result type (might be due to invalid IL or missing references) //IL_40eb: Unknown result type (might be due to invalid IL or missing references) //IL_40f3: Unknown result type (might be due to invalid IL or missing references) //IL_40f8: Unknown result type (might be due to invalid IL or missing references) //IL_40fa: Unknown result type (might be due to invalid IL or missing references) //IL_4104: Unknown result type (might be due to invalid IL or missing references) //IL_4106: Unknown result type (might be due to invalid IL or missing references) //IL_410b: Unknown result type (might be due to invalid IL or missing references) //IL_4136: Unknown result type (might be due to invalid IL or missing references) //IL_414a: Unknown result type (might be due to invalid IL or missing references) //IL_415e: Unknown result type (might be due to invalid IL or missing references) //IL_4163: Unknown result type (might be due to invalid IL or missing references) GameObject cybPrefab = CyborgCore.cybPrefab; GameObject gameObject = ((Component)cybPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = new List(); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "head_end", new Vector3(0f, 0.27f, 0.12f), new Vector3(312.4455f, 358.7655f, 1.55823f), new Vector3(0.36f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Syringe, "DisplaySyringeCluster", "Upperarm.L", new Vector3(0.01744f, 0.16661f, 0.01049f), new Vector3(354.9183f, 305.1207f, 230.4652f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Lowerarm.R_end", new Vector3(-0.0213f, 0.06416f, -0.01324f), new Vector3(0f, 0f, 0f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Behemoth, "DisplayBehemoth", "Lowerarm.R_end", new Vector3(-0.02634f, 0.07575f, -0.01386f), new Vector3(2.18114f, 0.41645f, 0.02294f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "Chest", new Vector3(-0.30034f, 0.02553f, -0.0019f), new Vector3(2.13443f, 9.99999f, 20f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(-0.001f, 0.0035f, -0f), new Vector3(0f, 45f, 45f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "lowerleg.R", new Vector3(0.00986f, 0.38462f, 0.10298f), new Vector3(75.70033f, 184.4452f, 359.1921f), new Vector3(0.1f, 0.12f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Chest", new Vector3(-0.07f, 0.35f, -0.27f), new Vector3(346.9894f, 188.9663f, 54.97551f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "head_end", new Vector3(0.00414f, 0.26565f, 0.15424f), new Vector3(330f, 0f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "Upperarm.R", new Vector3(-0.14767f, -0.11289f, -0.00628f), new Vector3(0f, 340f, 90f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "head_end", new Vector3(0f, 0.35f, 0.05f), new Vector3(310f, 0f, 0f), new Vector3(0.6f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Lowerarm.L_end", new Vector3(0f, -0.05f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Chest", new Vector3(-0.00118f, 0.20073f, -0.30663f), new Vector3(270f, 90f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "Lowerarm.R", new Vector3(0f, 0.07f, 0.03f), new Vector3(90f, 358f, 0f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Clover, "DisplayClover", "Lowerarm.R_end", new Vector3(-0.01413f, 0.05694f, 0.003f), new Vector3(348.7779f, 1.89384f, 1.55342f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "Lowerarm.L", new Vector3(0.0227f, 0.2407f, -0.06751f), new Vector3(90f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "head_end", new Vector3(0.02103f, 0.03829f, -0.0656f), new Vector3(325.3311f, 359.1125f, 1.43278f), new Vector3(1.82653f, 1.82653f, 1.82653f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "Upperarm.L", new Vector3(0.10319f, 0.04916f, -0.00681f), new Vector3(64.6027f, 96.66527f, 9.01371f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "Lowerarm.R", new Vector3(-0.10469f, 0.34879f, 0.04276f), new Vector3(6.40999f, 330f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "Lowerarm.L_end", new Vector3(0.015f, -0.00026f, -0.00709f), new Vector3(89.29308f, 180f, 180f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "Lowerarm.R_end", new Vector3(0.015f, -0.00026f, -0.00709f), new Vector3(89.29308f, 180f, 180f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "head_end", new Vector3(0f, -0.21348f, -0.1f), new Vector3(0f, 0f, 0f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Lowerarm.L_end", new Vector3(0.0228f, 0.25497f, -0.00535f), new Vector3(270f, 0f, 0f), new Vector3(0.25f, 0.25f, 0.25f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "Upperleg.R", new Vector3(-0.00551f, 0.29786f, -0.11933f), new Vector3(90f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "Upperarm.R", new Vector3(0f, -0.15612f, 0f), new Vector3(0f, 180f, 180f), new Vector3(0.03f, 0.03f, 0.03f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Waist", new Vector3(-0.25759f, 0.00044f, 0.10041f), new Vector3(310f, 30f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExecuteLowHealthElite, "DisplayGuillotine", "head_end", new Vector3(0f, 0.15972f, 0.19263f), new Vector3(270.934f, 0f, 0f), new Vector3(0.14829f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "Upperleg.L", new Vector3(0.00143f, 0.22947f, -0.16788f), new Vector3(65.82771f, 173.486f, 173.7576f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "head_end", new Vector3(0.118f, 0.17421f, -1E-05f), new Vector3(0f, 90f, 0f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Chest", new Vector3(0f, -0.17726f, 0.23f), new Vector3(0f, 20f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "Waist", new Vector3(0.24943f, -0.0122f, -0.00248f), new Vector3(77.91518f, 125.5138f, 239.753f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Chest", new Vector3(0.0013f, 0.2276f, -0.02399f), new Vector3(45.00002f, 80f, 0f), new Vector3(0.67429f, 0.8f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Chest", new Vector3(-0.13f, 0.35f, -0.3f), new Vector3(0f, 0f, 4f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "Waist", new Vector3(-0.22156f, 0.0879f, 0.0992f), new Vector3(71.76019f, 322.3472f, 303.6967f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "Upperleg.R", new Vector3(-0.04749f, 0.27383f, -0.12237f), new Vector3(81.58548f, 157.0071f, 324.6693f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Chest", new Vector3(-0.20218f, 0.06408f, -0.22863f), new Vector3(270.0839f, 18.04952f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "Waist", new Vector3(0.25946f, -0.16925f, -0.10237f), new Vector3(0f, 0f, 260f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Chest", new Vector3(0f, 0.00311f, 0.18f), new Vector3(0f, 0f, 0f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Waist", new Vector3(-0.29934f, 0.06663f, 0.09816f), new Vector3(16.68907f, 13.7035f, 307.2074f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Waist", new Vector3(0.28f, -0.04112f, -0.11235f), new Vector3(85.00005f, 180f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SecondarySkillMagazine, "DisplayDoubleMag", "Lowerarm.R_end", new Vector3(-0.02259f, 0.11612f, -0.00162f), new Vector3(15f, 270f, 0f), new Vector3(0.06f, 0.06f, 0.06f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "Waist", new Vector3(-0.26061f, 0.12153f, -0.14269f), new Vector3(343.4653f, 295.4415f, 9.41367f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "Chest", new Vector3(0.14725f, 0.01318f, 0.19875f), new Vector3(13.457f, 124.6577f, 98.06718f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "Upperarm.R", new Vector3(0f, 0.15f, -0.1f), new Vector3(270f, 42.70859f, 0f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "Waist", new Vector3(0.15904f, 0.67785f, 0.59582f), new Vector3(0.0273f, 89.20187f, 179.9936f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(0f, 0.3f, -0.3f), new Vector3(0f, 180f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "head_end", new Vector3(0f, 0.09876f, 0.02713f), new Vector3(345f, 0f, 0f), new Vector3(0.3f, 0.4f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseFlower", "head_end", new Vector3(0.19538f, 0.20106f, -0.10442f), new Vector3(90f, 100f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "Chest", new Vector3(0f, -0.08421f, 0.2014f), new Vector3(0f, 90f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "head_end", new Vector3(0.001f, 0.002f, -0.0005f), new Vector3(0f, 90f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldheart", "Chest", new Vector3(-0.06358f, -0.10085f, 0.17992f), new Vector3(359.7715f, 347.8719f, 19.2114f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "Upperarm.L", new Vector3(0.04f, 0.15f, 0f), new Vector3(0f, 90f, 180f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Chest", new Vector3(0.10383f, 0.22287f, 0.27624f), new Vector3(75.47183f, 2.16902f, 2.03127f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "Chest", new Vector3(0.2264f, -0.06811f, 0.05447f), new Vector3(0f, 70f, 90f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "lowerleg.R", new Vector3(0f, 0.2f, 0.21f), new Vector3(0f, 270f, 280f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Thorns, "DisplayRazorwireLeft", "Upperarm.L", new Vector3(-0.05f, 0f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.8f, 0.6f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarPrimaryReplacement, "DisplayBirdEye", "head_end", new Vector3(0.00822f, -0.10221f, 0.147f), new Vector3(90f, 180f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "head_end", new Vector3(-0.0005f, 0.0004f, -0f), new Vector3(310f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Waist", new Vector3(0.3f, 0.05f, 0.1f), new Vector3(0f, 0f, 270f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Chest", new Vector3(0.17996f, 0.42699f, -0.2002f), new Vector3(290f, 180f, 180f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bear, "DisplayBear", "Chest", new Vector3(-0.00016f, 0.06758f, 0.22978f), new Vector3(0f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "Lowerarm.R_end", new Vector3(-0.1f, 0.05f, 0f), new Vector3(300f, 0f, 270f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Waist", new Vector3(-0.25f, 0.05f, 0.2f), new Vector3(346.3581f, 223.5623f, 7.72966f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "lowerleg.L", new Vector3(0f, 0.2f, -0.1f), new Vector3(326.8031f, 137.6122f, 66.41169f), new Vector3(0.06f, 0.06f, 0.06f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "Waist", new Vector3(0.2328f, -0.0191f, -0.11869f), new Vector3(7.11854f, 20.06703f, 179.4315f), new Vector3(0.6f, 0.6f, 0.6f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "Lowerarm.R", new Vector3(-0.00789f, 0.1415f, 0.09656f), new Vector3(90f, 180f, 0f), new Vector3(0.3f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "Upperarm.R", new Vector3(0.03626f, 0.47549f, -0.06284f), new Vector3(280f, 180f, 0f), new Vector3(0.2f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Chest", new Vector3(-0.0022f, 0.01466f, -0.21238f), new Vector3(270f, 0f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "head_end", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Waist", new Vector3(-0.26f, 0f, 0f), new Vector3(90f, 90f, 0f), new Vector3(1.2f, 1.2f, 1.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullCrown", "head_end", new Vector3(0.00386f, 0.05454f, -0.0082f), new Vector3(320f, 0f, 0f), new Vector3(0.71195f, 0.28478f, 0.28478f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Waist", new Vector3(0f, 0f, 0.23f), new Vector3(0f, 0f, 180f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FlatHealth, "DisplaySteakCurved", "Chest", new Vector3(-0.00031f, 0.22606f, 0.2602f), new Vector3(330f, 0f, 0f), new Vector3(0.16f, 0.16f, 0.16f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "Lowerarm.L_end", new Vector3(0f, 0f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "Lowerarm.L_end", new Vector3(0f, -0.1233998f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "Waist", new Vector3(0f, 0f, 0.2f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "Upperarm.L", new Vector3(0.10489f, 0.07537f, -0.11045f), new Vector3(0f, 35f, 250f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "Chest", new Vector3(0f, 0.26169f, -0.33093f), new Vector3(15f, 0f, 0f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireballsOnHit, "DisplayFireballsOnHit", "Lowerarm.R_end", new Vector3(-0.03296f, 0.15147f, -0.0153f), new Vector3(273.0413f, 245.4623f, 20.12859f), new Vector3(0.05165f, 0.05165f, 0.05165f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "Upperleg.L", new Vector3(0.06034f, 0.30139f, -0.10304f), new Vector3(0.61974f, 278.9955f, 183.0156f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "Chest", new Vector3(-0.05f, 0.24f, 0.26963f), new Vector3(0f, 0f, 45f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "Upperleg.R", new Vector3(-0.11112f, 0.33026f, 0.00168f), new Vector3(30f, 180f, 180f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomDamageZone, "DisplayRandomDamageZone", "Lowerarm.R_end", new Vector3(-0.16208f, -0.11779f, 0.02191f), new Vector3(352.4889f, 78.21933f, 91.00771f), new Vector3(0.04f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "Upperleg.R", new Vector3(0.00064f, 0.2691f, -0.02684f), new Vector3(0f, 0f, 180f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "head_end", new Vector3(-0.1f, 0.2f, 0f), new Vector3(0f, 0f, 0f), new Vector3(-0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "head_end", new Vector3(-0.00062f, 0.20347f, 0.1749f), new Vector3(333.4247f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "head_end", new Vector3(0f, 0.4f, 0f), new Vector3(283.8257f, 180f, 180f), new Vector3(0.03f, 0.03f, 0.03f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "head_end", new Vector3(0f, 0.3f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "head", new Vector3(0.01268f, 0.40631f, 0.31288f), new Vector3(0f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "head_end", new Vector3(0f, 0.38338f, -1E-05f), new Vector3(90f, 180f, 0f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Waist", new Vector3(-0.13f, 0f, 0.2f), new Vector3(5.86697f, 349.9574f, 6.95035f), new Vector3(0.6f, 0.6f, 0.6f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Waist", new Vector3(0.14999f, -0.01687f, 0.17782f), new Vector3(12.72614f, 330.7571f, 332.6467f), new Vector3(0.05f, 0.05f, 0.05f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Waist", new Vector3(-0.16196f, -0.0382f, -0.20261f), new Vector3(3.21876f, 28.06466f, 358.7917f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "head_end", new Vector3(0.00341f, 0.03218f, 0.01353f), new Vector3(0f, 0f, 0f), new Vector3(1.9f, 1.8f, 1.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Chest", new Vector3(0f, 0.34f, -0.3f), new Vector3(0f, 90f, 15f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Waist", new Vector3(0.1989f, -0.06035f, -0.14481f), new Vector3(282.1245f, 265.0938f, 95.15285f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Chest", new Vector3(-0.00094f, -0.08337f, -0.21559f), new Vector3(0f, 180f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Waist", new Vector3(0.15035f, -0.10178f, 0.19175f), new Vector3(0.85334f, 23.0247f, 354.3975f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "Waist", new Vector3(-0.2756f, 0.05027f, 0.10025f), new Vector3(0.52403f, 286.3992f, 6.34143f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "Chest", new Vector3(0.23845f, 0.37449f, -0.00154f), new Vector3(297.6407f, 70.9798f, 303.4817f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Waist", new Vector3(-0.00054f, 0.00275f, -0.28021f), new Vector3(0.06797f, 175.9081f, 355.1628f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "head_end", new Vector3(0.0004f, 0.3781f, -0.27842f), new Vector3(30f, 0f, 0f), new Vector3(0.15f, 0.15f, 0.15f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Chest", new Vector3(-0.0025f, -0.14539f, 0.21546f), new Vector3(15f, 0f, 0f), new Vector3(0.06f, 0.06f, 0.06f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Chest", new Vector3(-0.003f, 0.40561f, -0.28331f), new Vector3(70.00002f, 180f, 0f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", new Vector3(-0.53413f, -0.30894f, 0.93299f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", new Vector3(0.72272f, -0.64198f, 1.18925f), new Vector3(90f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", new Vector3(0.6043f, 0.50282f, 0.97912f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", new Vector3(-0.56186f, 0.76804f, 1.25989f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", new Vector3(-0.56186f, 0.76804f, 1.25989f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", new Vector3(-0.56186f, 0.76804f, 1.25989f), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Chest", new Vector3(-0.00124f, 0.09531f, -0.20699f), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Chest", new Vector3(0.34165f, 0.55398f, -0.07725f), new Vector3(15.88125f, 79.78722f, 326.7364f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "Chest", new Vector3(0.24595f, 0.29929f, -0.00278f), new Vector3(359.8722f, 0.2585f, 326.2169f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Chest", new Vector3(0f, 0.2f, -0.33f), new Vector3(0f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "lowerleg.L", localPos = new Vector3(0.00039f, 0.49533f, 1E-05f), localAngles = new Vector3(356.7153f, 311.6767f, 169.8087f), localScale = new Vector3(0.37162f, 0.37162f, 0.52027f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "lowerleg.R", localPos = new Vector3(0.00039f, 0.49533f, 1E-05f), localAngles = new Vector3(0f, 0f, 179.4167f), localScale = new Vector3(0.37162f, 0.37162f, 0.52027f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Tooth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[5] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshLarge"), childName = "Chest", localPos = new Vector3(0.00433f, 0.20132f, 0.30872f), localAngles = new Vector3(18.49107f, 177.311f, 1.37142f), localScale = new Vector3(2.39344f, 3.73495f, 2.39344f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(-0.05689f, 0.19684f, 0.31104f), localAngles = new Vector3(353.4888f, 187.836f, 8.51722f), localScale = new Vector3(1.43896f, 1.43896f, 1.43896f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(-0.1014f, 0.2132f, 0.30587f), localAngles = new Vector3(18.632f, 13.77735f, 333.1451f), localScale = new Vector3(1.31001f, 1.31001f, 1.31001f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(0.05689f, 0.19684f, 0.31104f), localAngles = new Vector3(353.4888f, 187.836f, -8.51722f), localScale = new Vector3(1.43896f, 1.43896f, 1.43896f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(0.1014f, 0.2132f, 0.30587f), localAngles = new Vector3(18.632f, 13.77735f, -333.1451f), localScale = new Vector3(1.31001f, 1.31001f, 1.31001f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoveSpeedOnKill, "DisplayGrappleHook", "Upperarm.R", new Vector3(-0.0407f, 0.05762f, 0.04535f), new Vector3(5.22303f, 328.7101f, 178.185f), new Vector3(0.2271f, 0.2271f, 0.2271f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealingPotion, "DisplayHealingPotion", "Chest", new Vector3(0.19434f, -0.0007f, 0.18559f), new Vector3(0f, 0f, 0f), new Vector3(0.03333f, 0.03333f, 0.03333f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PermanentDebuffOnHit, "DisplayScorpion", "Chest", new Vector3(0f, -0.13022f, -0.21275f), new Vector3(6.98145f, 0f, 0f), new Vector3(1.16932f, 1.16932f, 1.16932f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedAndMoveSpeed, "DisplayCoffee", "Waist", new Vector3(0.31036f, -0.00235f, -0.00218f), new Vector3(0f, 0f, 0f), new Vector3(0.26748f, 0.26748f, 0.26748f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritDamage, "DisplayLaserSight", "head", new Vector3(0f, 0.31132f, 0f), new Vector3(315f, 90f, 0f), new Vector3(0.20656f, 0.20656f, 0.20656f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BearVoid, "DisplayBearVoid", "Chest", new Vector3(-0.00016f, 0.06758f, 0.22978f), new Vector3(0f, 0f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MushroomVoid, "DisplayMushroomVoid", "Upperarm.R", new Vector3(-0.14767f, -0.11289f, -0.00628f), new Vector3(0f, 340f, 90f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CloverVoid, "DisplayCloverVoid", "Lowerarm.R_end", new Vector3(-0.01413f, 0.05694f, 0.003f), new Vector3(348.7779f, 1.89384f, 1.55342f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StrengthenBurn, "DisplayGasTank", "Upperarm.L", new Vector3(0.0422f, 0.2134f, 0.10468f), new Vector3(0f, 0f, 0f), new Vector3(0.21706f, 0.21706f, 0.21706f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RegeneratingScrap, "DisplayRegeneratingScrap", "Chest", new Vector3(0.10365f, -0.03266f, -0.25778f), new Vector3(0.60785f, 186.5007f, 1.09132f), new Vector3(0.07187f, 0.07187f, 0.07187f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitVoid, "DisplayTriTipVoid", "Lowerarm.L_end", new Vector3(0f, -0.05f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlassesVoid, "DisplayGlassesVoid", "head_end", new Vector3(-0.00075f, 0.2974f, 0.11365f), new Vector3(307.0807f, 358.1367f, 2.27793f), new Vector3(0.36f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCacheVoid, "DisplayKeyVoid", "Chest", new Vector3(0.14725f, 0.01318f, 0.19875f), new Vector3(13.457f, 124.6577f, 98.06718f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHitVoid, "DisplayBaubleVoid", "Waist", new Vector3(0.15904f, 0.67785f, 0.59582f), new Vector3(0.0273f, 89.20187f, 179.9936f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MissileVoid, "DisplayMissileLauncherVoid", "Chest", new Vector3(-0.30034f, 0.02553f, -0.0019f), new Vector3(2.13443f, 9.99999f, 20f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightningVoid, "DisplayUkuleleVoid", "Chest", new Vector3(-0.07f, 0.35f, -0.27f), new Vector3(346.9894f, 188.9663f, 54.97551f), new Vector3(0.8f, 0.8f, 0.8f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLifeVoid, "DisplayHippoVoid", "Chest", new Vector3(0f, 0.3f, -0.3f), new Vector3(0f, 180f, 0f), new Vector3(0.3f, 0.3f, 0.3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazineVoid, "DisplayFuelCellVoid", "Upperleg.L", new Vector3(0.00143f, 0.22947f, -0.16788f), new Vector3(335.7576f, 174.7429f, 175.7614f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeathVoid, "DisplayWillowWispVoid", "Waist", new Vector3(-0.25f, 0.05f, 0.2f), new Vector3(344.337f, 224.041f, 5.75463f), new Vector3(0.08f, 0.08f, 0.08f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FragileDamageBonus, "DisplayDelicateWatch", "head", new Vector3(0.01072f, 0.02234f, 0.18806f), new Vector3(70.58395f, 353.9931f, 352.8643f), new Vector3(1f, 0.82754f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.OutOfCombatArmor, "DisplayOddlyShapedOpal", "Chest", new Vector3(0.00494f, 0.02039f, 0.22476f), new Vector3(14.7022f, 0f, 0f), new Vector3(0.1544f, 0.1544f, 0.1544f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoreMissile, "DisplayICBM", "head", new Vector3(-0.01168f, 0.56092f, -0.06593f), new Vector3(359.9035f, 309.5071f, 2.20686f), new Vector3(0.7009f, 0.04675f, 0.77977f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ImmuneToDebuff, "DisplayRainCoatBelt", "Waist", new Vector3(-0.03839f, 0.00031f, 0.02357f), new Vector3(0f, 0f, 0f), new Vector3(1.19943f, 1.01134f, 1.01134f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomEquipmentTrigger, "DisplayBottledChaos", "Waist", new Vector3(0.23713f, 0.02732f, 0.10536f), new Vector3(347.3455f, 65.43384f, 10.69646f), new Vector3(13f / 160f, 13f / 160f, 13f / 160f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PrimarySkillShuriken, "DisplayShuriken", "Lowerarm.R", new Vector3(0f, 0.34173f, 0.11263f), new Vector3(0f, 0f, 0f), new Vector3(0.50177f, 0.50177f, 0.50177f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.RandomlyLunar, "DisplayDomino", new Vector3(0.54079f, -0.00485f, 0.82987f), new Vector3(2E-05f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHurt, "DisplayRollOfPennies", "Waist", new Vector3(0.25013f, 0.05032f, 0.08599f), new Vector3(0.13516f, 0.04265f, 20.06562f), new Vector3(0.62148f, 0.62148f, 0.62148f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "DisplayLunarShoulderNature", "Chest", new Vector3(-0.40721f, 0.35652f, 0.01299f), new Vector3(359.3603f, 0.00133f, 342.7037f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfSpeedDoubleHealth, "DisplayLunarShoulderStone", "Chest", new Vector3(0.39885f, 0.39849f, -0.01684f), new Vector3(0f, 193.1714f, 332.5494f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FreeChest, "DisplayShippingRequestForm", "Waist", new Vector3(0.16612f, -0.00107f, 0.19053f), new Vector3(83.67088f, 15.04621f, 352.947f), new Vector3(0.30334f, 0.30334f, 0.30334f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ElementalRingVoid, "DisplayVoidRing", "Chest", new Vector3(0f, -0.07625f, -0.0001f), new Vector3(89.92339f, 0f, 0f), new Vector3(0.6617f, 0.6617f, 0.6617f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "head", localPos = new Vector3(0.005f, 0.34227f, 0.16657f), localAngles = new Vector3(2.62072f, 0.033f, 359.847f), localScale = new Vector3(0.97255f, 1.64988f, 0.24631f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "head", localPos = new Vector3(-0.01634f, 0.00596f, 0.05355f), localAngles = new Vector3(0.56289f, 1.62524f, 13.09743f), localScale = new Vector3(2.86155f, 2.86155f, 2.93507f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MinorConstructOnKill, "DisplayDefenseNucleus", "Base", new Vector3(-1.7f, 0f, 0.8f), new Vector3(90f, 0f, 0f), 0.5f * Vector3.one)); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.VoidMegaCrabItem, "DisplayMegaCrabItem", "Chest", new Vector3(0.06565f, -0.08502f, -0.20579f), new Vector3(354.1336f, 180f, 48.85915f), new Vector3(0.12792f, 0.12792f, 0.12792f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Molotov, "DisplayMolotov", "head", new Vector3(-0.25431f, 0.02618f, 0.23001f), new Vector3(341.9067f, 353.7088f, 342.7318f), new Vector3(0.26446f, 0.26446f, 0.26446f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.VendingMachine, "DisplayVendingMachine2", "head", new Vector3(-0.24985f, 0.20061f, 0.26953f), new Vector3(334.4594f, 87.06461f, 339.7497f), new Vector3(0.19051f, 0.19051f, 0.19051f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BossHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBlunderbuss"), childName = "Base", localPos = new Vector3(0.65046f, 0.2412f, 0.95045f), localAngles = new Vector3(0f, 180f, 180f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayTricornGhost"), childName = "head", localPos = new Vector3(0f, 0.64766f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BossHunterConsumed, "DisplayTricornUsed", "head", new Vector3(0f, 0.64766f, 0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GummyClone, "DisplayGummyClone", "head", new Vector3(0.2004f, 0.28753f, 0.09826f), new Vector3(9.04862f, 260.3409f, 5.25775f), new Vector3(0.14829f, 0.14829f, 0.14829f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.MultiShopCard, "DisplayExecutiveCard", "Chest", new Vector3(0f, 0.20042f, 0.30629f), new Vector3(76.42161f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.EliteVoidEquipment, "DisplayAffixVoid", "head", new Vector3(0.01136f, 0.29265f, 0.12021f), new Vector3(73.63046f, 0f, 0f), new Vector3(0.40867f, 0.40867f, 0.40867f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Elites.Earth.eliteEquipmentDef, "DisplayEliteMendingAntlers", "head_end", new Vector3(0f, 0.19335f, 0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealOnCrit, "DisplayScythe", "Lowerarm.R", new Vector3(0.13884f, 0.3245f, -0.02297f), new Vector3(283.2397f, 107.9838f, 58.95483f), new Vector3(0.14314f, 0.14314f, 0.14314f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSecondaryReplacement, "DisplayBirdClaw", "Upperarm.R", new Vector3(-0.073f, 0.01192f, 0.03027f), new Vector3(3.87674f, 29.46614f, 355.7458f), new Vector3(0.44277f, 0.44277f, 0.44277f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSpecialReplacement, "DisplayBirdHeart", "Base", new Vector3(-0.29508f, -1.20822f, 1.12835f), new Vector3(29.19952f, 280.3922f, 38.59686f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ParentEgg, "DisplayParentEgg", "Chest", new Vector3(0.0069f, -0.07487f, 0.23316f), new Vector3(0f, 0f, 0f), new Vector3(0.0331f, 0.0331f, 0.0331f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LightningStrikeOnHit, "DisplayChargedPerforator", "Lowerarm.L", new Vector3(0.03645f, 0.35521f, 0.09256f), new Vector3(12.94629f, 357.8604f, 188.2494f), new Vector3(1f, 1f, 1f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.UtilitySkillMagazine, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "Chest", localPos = new Vector3(0.34809f, 0.24314f, -0.01422f), localAngles = new Vector3(359.8502f, 180f, 194.1998f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayAfterburnerShoulderRing"), childName = "Chest", localPos = new Vector3(-0.34809f, 0.24314f, -0.01422f), localAngles = new Vector3(359.8502f, 180f, 169.2147f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixLunar, "DisplayEliteLunar,Eye", "head", new Vector3(0.02047f, 0.40061f, 0.44407f), new Vector3(0f, 0f, 0f), new Vector3(0.30852f, 0.30852f, 0.30852f))); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } public static void RegisterModdedDisplays() { } } public static class CyborgSkins { public static Mesh meshCyborg; public static Mesh meshCyborgSteam; public static Mesh meshCyborgRock; public static void LoadMeshes(AssetBundle CyborgAssetBundle) { meshCyborg = CyborgAssetBundle.LoadAsset("meshCyborg"); meshCyborgSteam = CyborgAssetBundle.LoadAsset("meshCyborgSteam"); meshCyborgRock = CyborgAssetBundle.LoadAsset("meshCyborgRock"); } private static MeshReplacement[] CreateMeshReplacements(RendererInfo[] rendererInfos, Mesh bodyMesh) { return SkinsCore.CreateMeshReplacements(rendererInfos, bodyMesh); } public static void RegisterSkins() { //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_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_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_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_0101: 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_0116: 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_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0218: 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_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) LoadMeshes(Assets.mainAssetBundle); GameObject cybPrefab = CyborgCore.cybPrefab; GameObject gameObject = ((Component)cybPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; List list = new List(); RendererInfo[] baseRendererInfos = component.baseRendererInfos; SkinDef val2 = Skins.CreateSkinDef("SS2UCYBORG_DEFAULT_SKIN_NAME", LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32((byte)234, (byte)231, (byte)212, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)33, (byte)51, (byte)49, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)32, (byte)40, (byte)53, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)56, (byte)79, (byte)77, byte.MaxValue))), baseRendererInfos, mainSkinnedMeshRenderer, gameObject, null); val2.nameToken = "DEFAULT_SKIN"; val2.meshReplacements = CreateMeshReplacements(baseRendererInfos, meshCyborg); list.Add(val2); Sprite val3 = LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32((byte)250, (byte)243, (byte)181, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)125, (byte)92, (byte)39, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)26, (byte)17, (byte)22, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)57, (byte)33, (byte)33, byte.MaxValue))); UnlockableDef val4 = ScriptableObject.CreateInstance(); val4.cachedName = "Skins.SS2UCyborg.Mastery"; val4.nameToken = "ACHIEVEMENT_SS2UCYBORGCLEARGAMEMONSOON_NAME"; val4.achievementIcon = val3; Unlockables.unlockableDefs.Add(val4); AchievementHider.unlockableRewardIdentifiers.Remove(val4.cachedName); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array, 0); array[0].defaultMaterial = Assets.LoadMaterialFromAssetBundle("matSteamborg"); SkinDef val5 = Skins.CreateSkinDef("SS2UCYBORG_MASTERY_SKIN_NAME", val3, array, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : val4); val5.meshReplacements = CreateMeshReplacements(array, meshCyborgSteam); list.Add(val5); Sprite val6 = LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32(byte.MaxValue, (byte)134, (byte)122, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)7, (byte)14, (byte)30, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)7, (byte)12, (byte)25, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)10, (byte)22, (byte)36, byte.MaxValue))); UnlockableDef val7 = ScriptableObject.CreateInstance(); val7.cachedName = "Skins.SS2UCyborg.GrandMastery"; val7.nameToken = "ACHIEVEMENT_SS2UCYBORGCLEARGAMETYPHOON_NAME"; val7.achievementIcon = val6; Unlockables.unlockableDefs.Add(val7); AchievementHider.unlockableRewardIdentifiers.Remove(val7.cachedName); RendererInfo[] array2 = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array2, 0); array2[0].defaultMaterial = Assets.LoadMaterialFromAssetBundle("matRockborg"); SkinDef val8 = Skins.CreateSkinDef("SS2UCYBORG_GRANDMASTERY_SKIN_NAME", val6, array2, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : val7); val8.meshReplacements = CreateMeshReplacements(array2, meshCyborgRock); list.Add(val8); val.skins = list.ToArray(); } } public class CyborgCore { public static class Skills { public static SkillDef Unmaker; public static SkillDef ChargeRifle; public static EnergySkillDef DefenseMatrix; public static EnergySkillDef RisingStar; public static EnergySkillDef Recall; public static EnergySkillDef FlightMode; public static EnergySkillDef Overheat; public static EnergySkillDef OverheatScepter; public static EnergySkillDef ShockCore; public static EnergySkillDef ShockCoreScepter; public static CyborgTeleSkillDef RecallOverride; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__11_0; internal void b__11_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UCyborgBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animCyborg1Emote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } } public static GameObject cybPrefab; public static GameObject doppelganger; public static BodyIndex bodyIndex; public static SurvivorDef survivorDef; public static ConfigEntry useEnergyRework; public CyborgCore() { Setup(); } private void OnLoadActions() { //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_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Invalid comparison between Unknown and I4 //IL_0024: Unknown result type (might be due to invalid IL or missing references) bodyIndex = BodyCatalog.FindBodyIndex("SS2UCyborgBody"); if ((int)bodyIndex != -1) { IgnoreSprintCrosshair.bodies.Add(bodyIndex); } ModCompat.SurvariantsCompat.SetVariant(survivorDef, "Cyborg2Body"); } private void Setup() { //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_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Expected O, but got Unknown //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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_0109: 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_0169: Unknown result type (might be due to invalid IL or missing references) cybPrefab = CreateCyborgPrefab(); ItemAPI.DoNotAutoIDRSFor(cybPrefab); EntityStates.SS2UStates.Cyborg.Jetpack.JetpackOn.activationEffectPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Engi/EngiHarpoonExplosion.prefab").WaitForCompletion(), "SS2UCyborgJetpackEffect", false); EffectComponent component = EntityStates.SS2UStates.Cyborg.Jetpack.JetpackOn.activationEffectPrefab.GetComponent(); component.soundName = ""; Assets.effectDefs.Add(new EffectDef(EntityStates.SS2UStates.Cyborg.Jetpack.JetpackOn.activationEffectPrefab)); GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Junk/Mage/TracerMageIceLaser.prefab").WaitForCompletion(), "SS2UCyborgTracer", false); val.AddComponent().duration = 0.3f; Assets.effectDefs.Add(new EffectDef(val)); PrimaryLaser.tracerEffectPrefab = val; FireBeam.tracerEffectPrefab = val; FireTriShot.tracerEffectPrefab = val; GameObject val2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/CaptainDefenseMatrix/TracerCaptainDefenseMatrix.prefab").WaitForCompletion(), "SS2UCyborgTracerColossus", false); EffectComponent component2 = val2.GetComponent(); component2.soundName = ""; Assets.effectDefs.Add(new EffectDef(val2)); PrimaryLaser.tracerEffectColossusPrefab = val2; FireBeam.tracerEffectColossusPrefab = val2; FireBeam.perfectTracerEffectColossusPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Golem/TracerGolem.prefab").WaitForCompletion(); FireTriShot.tracerEffectColossusPrefab = val2; RegisterProjectiles(); RegisterStates(); SetUpSkills(); ContentManager.onContentPacksAssigned += LateSetup; CyborgSkins.RegisterSkins(); CreateDoppelganger(); survivorDef = Prefabs.RegisterNewSurvivor(cybPrefab, PrefabCore.CreateDisplayPrefab("CyborgDisplay", cybPrefab), Color.blue, "SS2UCYBORG", 40.1f); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); SetupDefenseMatrix(); if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } } private void SetupDefenseMatrix() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown DefenseMatrix.matrixPrefab = Assets.mainAssetBundle.LoadAsset("DefenseMatrix.prefab"); GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/HitsparkCommandoShotgun.prefab").WaitForCompletion(), "SS2UCyborgDeleteProjectileEffect", false); EffectComponent component = val.GetComponent(); component.soundName = "Play_captain_drone_zap"; Assets.effectDefs.Add(new EffectDef(val)); DefenseMatrix.projectileDeletionEffectPrefab = val; } private static GameObject BuildChargeRifleCrosshair() { GameObject val = PrefabAPI.InstantiateClone(Assets.mainAssetBundle.LoadAsset("crosshairCyborgChargeRifle.prefab"), "SS2UCyborgCrosshair", false); val.AddComponent(); CrosshairController val2 = val.AddComponent(); val2.maxSpreadAngle = 0f; val.AddComponent(); return val; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__11_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UCyborgBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animCyborg1Emote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__11_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } private void LateSetup(ReadOnlyArray obj) { CyborgItemDisplays.RegisterDisplays(); } private void RegisterStates() { States.AddState(typeof(EntityStates.SS2UStates.Cyborg.Jetpack.JetpackOn)); States.AddState(typeof(FlightMode)); States.AddState(typeof(CyborgMain)); States.AddState(typeof(CyborgFireOverheat)); States.AddState(typeof(OverheatScepter)); States.AddState(typeof(PrimaryLaser)); States.AddState(typeof(DeployTeleporter)); States.AddState(typeof(UseTeleporter)); States.AddState(typeof(ChargeBeam)); States.AddState(typeof(FireBeam)); States.AddState(typeof(DefenseMatrix)); States.AddState(typeof(FireTriShot)); States.AddState(typeof(StopTriShot)); States.AddState(typeof(ShockCore)); States.AddState(typeof(ShockCoreScepter)); } private void RegisterProjectiles() { //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Unknown result type (might be due to invalid IL or missing references) //IL_02f0: Expected O, but got Unknown //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0324: Unknown result type (might be due to invalid IL or missing references) //IL_0329: 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_0370: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Expected O, but got Unknown //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: 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_012b: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/ProjectileGhosts/BeamSphereGhost"), "SS2UCyborgOverheatGhost", false); ParticleSystem[] componentsInChildren = val.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { switch (i) { case 0: componentsInChildren[i].startColor = Color.white; break; case 1: componentsInChildren[i].startColor = new Color(0.95686275f, 81f / 85f, 61f / 85f); break; case 2: componentsInChildren[i].startColor = new Color(0.95686275f, 81f / 85f, 61f / 85f); break; } } val.AddComponent(); CyborgFireOverheat.projectilePrefab = CreateOverheatProjectile("SS2UCyborgOverheatProjectile", val, 0, -600f); GameObject val2 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/ProjectileGhosts/BeamSphereGhost"), "SS2UCyborgOverheatGhostScepter", false); componentsInChildren = val2.GetComponentsInChildren(); for (int j = 0; j < componentsInChildren.Length; j++) { switch (j) { case 0: componentsInChildren[j].startColor = Color.white; break; case 1: componentsInChildren[j].startColor = new Color(82f / 85f, 0.6627451f, 79f / 85f); break; case 2: componentsInChildren[j].startColor = new Color(82f / 85f, 0.6627451f, 79f / 85f); break; } } val2.AddComponent(); OverheatScepter.projectileOverride = CreateOverheatProjectile("SS2UCyborgOverheatScepterProjectile", val2, 2, -900f); CyborgFireOverheat.projectilePrefab = CreateOverheatProjectile("SS2UCyborgOverheatProjectile", val, 0, -600f); OverheatScepter.projectileOverride = CreateOverheatProjectile("SS2UCyborgOverheatScepterProjectile", val2, 2, -900f); GameObject val3 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/EngiGrenadeProjectile"), "Prefabs/Projectiles/CyborgTPPylon", true); GameObject val4 = Assets.mainAssetBundle.LoadAsset("cyborgTeleGhost2"); val4.AddComponent(); ProjectileController component = val3.GetComponent(); component.ghostPrefab = val4; component.cannotBeDeleted = true; component.allowPrediction = false; ProjectileSimple component2 = val3.GetComponent(); component2.lifetime = 1000000f; component2.desiredForwardSpeed = 65f; ProjectileImpactExplosion component3 = val3.GetComponent(); component3.lifetime = 1000000f; component3.lifetimeAfterImpact = 1000000f; component3.destroyOnEnemy = false; component3.destroyOnWorld = false; Rigidbody component4 = val3.GetComponent(); component4.drag = 2f; component4.angularDrag = 2f; AntiGravityForce component5 = val3.GetComponent(); component5.antiGravityCoefficient = 1f; val3.AddComponent(); Prefabs.projectilePrefabs.Add(val3); DeployTeleporter.projectilePrefab = val3; GameObject val5 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/OmniImpactVFXLightningMage.prefab").WaitForCompletion(), "SS2UCyborgTelefragEffect", false); EffectComponent component6 = val5.GetComponent(); component6.soundName = "Play_mage_R_lightningBlast"; Assets.effectDefs.Add(new EffectDef(val5)); UseTeleporter.explosionEffectPrefab = val5; GameObject val6 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageLightningboltGhost.prefab").WaitForCompletion(), "SS2UCyborgShockCoreGhost", false); val6.transform.localScale = 2f * Vector3.one; GameObject val7 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Junk/Mage/MageLightningBombExplosion.prefab").WaitForCompletion(), "SS2UShockCoreImplosionEffect", false); EffectComponent component7 = val7.GetComponent(); component7.soundName = "Play_mage_m2_impact"; Assets.effectDefs.Add(new EffectDef(val7)); GameObject implosionEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterExplosion.prefab").WaitForCompletion(); ShockCore.projectilePrefab = CreateShockCoreProjectile("SS2UCyborgShockCoreProjectile", val6, val7, 20f, implosionEffectPrefab); ShockCoreScepter.scepterProjectilePrefab = CreateShockCoreProjectile("SS2UCyborgShockCoreScepterProjectile", val6, val7, 30f, implosionEffectPrefab); } private GameObject CreateShockCoreProjectile(string prefabName, GameObject ghostPrefab, GameObject explosionEffectPrefab, float radius, GameObject implosionEffectPrefab) { //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_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_007f: 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_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageLightningboltBasic.prefab").WaitForCompletion(), prefabName, true); ProjectileController component = val.GetComponent(); component.ghostPrefab = ghostPrefab; component.allowPrediction = false; Object.Destroy((Object)(object)val.GetComponent()); ProjectileSimple component2 = val.GetComponent(); component2.desiredForwardSpeed = 60f; component2.lifetime = 10f; component2.updateAfterFiring = true; ProjectileDamage component3 = val.GetComponent(); component3.damageType = DamageTypeCombo.op_Implicit((DamageType)16777216); component3.damageType.damageSource = (DamageSource)8; ref DamageTypeExtended damageTypeExtended = ref component3.damageType.damageTypeExtended; damageTypeExtended = (DamageTypeExtended)((uint)damageTypeExtended | 0x2200u); ProjectileImpactExplosion component4 = val.GetComponent(); ((ProjectileExplosion)component4).blastRadius = 4f; TeamComponent val2 = val.AddComponent(); val2.hideAllyCardDisplay = true; val.AddComponent(); CharacterBody val3 = val.AddComponent(); val3.rootMotionInMainState = false; val3.bodyFlags = (BodyFlags)4; val3.baseMaxHealth = 1f; val3.baseCrit = 0f; val3.baseAcceleration = 0f; val3.baseArmor = 0f; val3.baseAttackSpeed = 0f; val3.baseDamage = 0f; val3.baseJumpCount = 0; val3.baseJumpPower = 0f; val3.baseMoveSpeed = 0f; val3.baseMaxShield = 0f; val3.baseRegen = 0f; val3.autoCalculateLevelStats = true; val3.levelArmor = 0f; val3.levelAttackSpeed = 0f; val3.levelCrit = 0f; val3.levelDamage = 0f; val3.levelJumpPower = 0f; val3.levelMaxHealth = 0f; val3.levelMaxShield = 0f; val3.levelMoveSpeed = 0f; val3.levelRegen = 0f; val3.hullClassification = (HullClassification)0; HealthComponent val4 = val.AddComponent(); val4.globalDeathEventChanceCoefficient = 0f; val4.body = val3; ShootableShockCore shootableShockCore = val.AddComponent(); shootableShockCore.targetDamageType = DamageTypeCore.ModdedDamageTypes.CyborgCanDetonateShockCore; shootableShockCore.explosionEffectPrefab = explosionEffectPrefab; shootableShockCore.radius = radius; shootableShockCore.pullRadius = radius * 1.5f; shootableShockCore.implosionStartEffectPrefab = implosionEffectPrefab; AddSphereHurtbox(val, 1f); Prefabs.projectilePrefabs.Add(val); return val; } private void AddSphereHurtbox(GameObject go, float radius) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_005c: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(); val.transform.parent = go.transform; val.layer = LayerIndex.entityPrecise.intVal; SphereCollider val2 = val.AddComponent(); val2.radius = radius; HurtBoxGroup val3 = val.AddComponent(); HurtBox val4 = val.AddComponent(); val4.isBullseye = false; val4.healthComponent = go.GetComponent(); val4.damageModifier = (DamageModifier)0; val4.hurtBoxGroup = val3; val4.indexInGroup = 0; HurtBox[] hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val4 }; val3.bullseyeCount = 0; val3.hurtBoxes = hurtBoxes; val3.mainHurtBox = val4; DisableCollisionsBetweenColliders val5 = go.AddComponent(); val5.collidersA = go.GetComponentsInChildren(); val5.collidersB = val.GetComponents(); } private GameObject CreateOverheatProjectile(string name, GameObject ghostPrefab, int bounceCount, float pullStrength) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004c: 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_00dd: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/FMJ"), name, true); ProjectileController component = val.GetComponent(); component.procCoefficient = 1f; component.ghostPrefab = ghostPrefab; ProjectileDamage component2 = val.GetComponent(); component2.damage = 1f; component2.damageType = DamageTypeCombo.op_Implicit((DamageType)0); component2.damageColorIndex = (DamageColorIndex)0; component2.damageType.damageSource = (DamageSource)8; ProjectileSimple component3 = val.GetComponent(); component3.desiredForwardSpeed = 15f; component3.lifetime = 3f; float num = 0.125f; ProjectileProximityBeamController val2 = val.AddComponent(); val2.attackRange = 15f; val2.listClearInterval = num; val2.attackInterval = val2.listClearInterval; val2.damageCoefficient = num; val2.procCoefficient = 0.7f; val2.inheritDamageType = true; val2.bounces = bounceCount; val2.attackFireCount = 30; val2.lightningType = (LightningType)5; RadialForce val3 = val.AddComponent(); val3.radius = val2.attackRange; val3.damping = 0.5f; val3.forceMagnitude = pullStrength; val3.forceCoefficientAtEdge = 0.5f; ProjectileOverlapAttack component4 = val.GetComponent(); Object.Destroy((Object)(object)component4); val.AddComponent(); val.AddComponent(); Prefabs.projectilePrefabs.Add(val); return val; } private void SetUpSkills() { //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown GenericSkill[] componentsInChildren = cybPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SkillLocator component = cybPrefab.GetComponent(); component.passiveSkill.enabled = true; component.passiveSkill.skillNameToken = "SS2UCYBORG_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_PASSIVE_DESCRIPTION" : "SS2UCYBORG_PASSIVE_DESCRIPTION_NOENERGY"); component.passiveSkill.icon = Assets.mainAssetBundle.LoadAsset("cyborgpassive_energy"); SetUpPrimaries(component); SetUpSecondaries(component); SetUpUtilities(component); SetUpSpecials(component); SkillLocator.ResetSkills += new hook_ResetSkills(SkillLocator_ResetSkills); SkillLocator.ApplyAmmoPack += new hook_ApplyAmmoPack(SkillLocator_ApplyAmmoPack); SkillLocator.DeductCooldownFromAllSkillsAuthority += new hook_DeductCooldownFromAllSkillsAuthority(SkillLocator_DeductCooldownFromAllSkillsAuthority); } private void SkillLocator_DeductCooldownFromAllSkillsAuthority(orig_DeductCooldownFromAllSkillsAuthority orig, SkillLocator self, float deduction) { orig.Invoke(self, deduction); CyborgEnergyComponent component = ((Component)self).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { float num = 0f; if (Object.op_Implicit((Object)(object)self.secondary)) { num += deduction / self.secondary.CalculateFinalRechargeInterval(); } if (Object.op_Implicit((Object)(object)self.utility)) { num += deduction / self.utility.CalculateFinalRechargeInterval(); } if (Object.op_Implicit((Object)(object)self.special)) { num += deduction / self.special.CalculateFinalRechargeInterval(); } component.AddEnergyFraction(num); } } private void SkillLocator_ApplyAmmoPack(orig_ApplyAmmoPack orig, SkillLocator self) { orig.Invoke(self); CyborgEnergyComponent component = ((Component)self).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.ApplyAmmoPack(); } } private void SkillLocator_ResetSkills(orig_ResetSkills orig, SkillLocator self) { orig.Invoke(self); CyborgEnergyComponent component = ((Component)self).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.ResetEnergy(); } } private void SetUpPrimaries(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: 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_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: 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) SteppedSkillDef val = ScriptableObject.CreateInstance(); ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(PrimaryLaser)); ((SkillDef)val).activationStateMachineName = "Weapon"; ((SkillDef)val).skillName = "SS2UCYBORG_PRIMARY_GUN_NAME"; ((SkillDef)val).skillNameToken = "SS2UCYBORG_PRIMARY_GUN_NAME"; ((SkillDef)val).skillDescriptionToken = "SS2UCYBORG_PRIMARY_GUN_DESCRIPTION"; ((SkillDef)val).icon = Assets.mainAssetBundle.LoadAsset("cyborgprimary"); ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 0f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = false; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = true; ((SkillDef)val).interruptPriority = (InterruptPriority)0; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = false; ((SkillDef)val).cancelSprintingOnActivation = true; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; val.stepCount = 2; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)val); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)val); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)val); Skills.Unmaker = (SkillDef)(object)val; SteppedSkillDef val3 = ScriptableObject.CreateInstance(); ((SkillDef)val3).activationState = new SerializableEntityStateType(typeof(ChargeBeam)); ((SkillDef)val3).activationStateMachineName = "Weapon"; ((SkillDef)val3).skillName = "SS2UCYBORG_PRIMARY_CHARGE_NAME"; ((SkillDef)val3).skillNameToken = "SS2UCYBORG_PRIMARY_CHARGE_NAME"; ((SkillDef)val3).skillDescriptionToken = "SS2UCYBORG_PRIMARY_CHARGE_DESCRIPTION"; ((SkillDef)val3).icon = Assets.mainAssetBundle.LoadAsset("cyborgprimarycharge"); ((SkillDef)val3).baseMaxStock = 1; ((SkillDef)val3).baseRechargeInterval = 0f; ((SkillDef)val3).beginSkillCooldownOnSkillEnd = false; ((SkillDef)val3).canceledFromSprinting = false; ((SkillDef)val3).fullRestockOnAssign = true; ((SkillDef)val3).interruptPriority = (InterruptPriority)0; ((SkillDef)val3).isCombatSkill = true; ((SkillDef)val3).mustKeyPress = false; ((SkillDef)val3).cancelSprintingOnActivation = true; ((SkillDef)val3).rechargeStock = 1; ((SkillDef)val3).requiredStock = 1; ((SkillDef)val3).stockToConsume = 1; val3.stepCount = 2; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)val3); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)val3); Variant val4 = Utils.RegisterSkillVariant((SkillDef)(object)val3); Skills.ChargeRifle = (SkillDef)(object)val3; skillLocator.primary = Utils.RegisterSkillsToFamily(cybPrefab, val2, val4); } private void SetUpSecondaries(SkillLocator skillLocator) { //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_00ac: 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_0101: 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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01f0: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: 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_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) EnergySkillDef energySkillDef = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef).activationState = new SerializableEntityStateType(typeof(DefenseMatrix)); ((SkillDef)energySkillDef).activationStateMachineName = "DefenseMatrix"; ((SkillDef)energySkillDef).skillName = "SS2UCYBORG_SECONDARY_DEFENSEMATRIX_NAME"; ((SkillDef)energySkillDef).skillNameToken = "SS2UCYBORG_SECONDARY_DEFENSEMATRIX_NAME"; ((SkillDef)energySkillDef).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_SECONDARY_DEFENSEMATRIX_DESCRIPTION" : "SS2UCYBORG_SECONDARY_DEFENSEMATRIX_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef).icon = Assets.mainAssetBundle.LoadAsset("cyborgsecondaryshield"); ((SkillDef)energySkillDef).baseMaxStock = 1; ((SkillDef)energySkillDef).baseRechargeInterval = (useEnergyRework.Value ? 5f : 6f); ((SkillDef)energySkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)energySkillDef).canceledFromSprinting = false; ((SkillDef)energySkillDef).fullRestockOnAssign = true; ((SkillDef)energySkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)energySkillDef).isCombatSkill = false; ((SkillDef)energySkillDef).mustKeyPress = false; ((SkillDef)energySkillDef).cancelSprintingOnActivation = true; ((SkillDef)energySkillDef).rechargeStock = 0; ((SkillDef)energySkillDef).requiredStock = 0; ((SkillDef)energySkillDef).stockToConsume = 0; ((SkillDef)energySkillDef).keywordTokens = new string[0]; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef); Utils.RegisterSkillDef((SkillDef)(object)energySkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef); Skills.DefenseMatrix = energySkillDef; EnergySkillDef energySkillDef2 = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef2).activationState = new SerializableEntityStateType(typeof(FireTriShot)); ((SkillDef)energySkillDef2).activationStateMachineName = "Weapon"; ((SkillDef)energySkillDef2).skillName = "SS2UCYBORG_SECONDARY_TRISHOT_NAME"; ((SkillDef)energySkillDef2).skillNameToken = "SS2UCYBORG_SECONDARY_TRISHOT_NAME"; ((SkillDef)energySkillDef2).skillDescriptionToken = "SS2UCYBORG_SECONDARY_TRISHOT_DESCRIPTION"; ((SkillDef)energySkillDef2).icon = Assets.mainAssetBundle.LoadAsset("cyborgsecondary"); ((SkillDef)energySkillDef2).baseMaxStock = 1; ((SkillDef)energySkillDef2).baseRechargeInterval = (useEnergyRework.Value ? 5f : 6f); ((SkillDef)energySkillDef2).beginSkillCooldownOnSkillEnd = true; ((SkillDef)energySkillDef2).canceledFromSprinting = false; ((SkillDef)energySkillDef2).fullRestockOnAssign = true; ((SkillDef)energySkillDef2).interruptPriority = (InterruptPriority)1; ((SkillDef)energySkillDef2).isCombatSkill = false; ((SkillDef)energySkillDef2).mustKeyPress = false; ((SkillDef)energySkillDef2).cancelSprintingOnActivation = true; ((SkillDef)energySkillDef2).rechargeStock = 0; ((SkillDef)energySkillDef2).requiredStock = 0; ((SkillDef)energySkillDef2).stockToConsume = 0; ((SkillDef)energySkillDef2).keywordTokens = new string[0]; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef2); Utils.RegisterSkillDef((SkillDef)(object)energySkillDef2); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef2); Skills.RisingStar = energySkillDef2; skillLocator.secondary = Utils.RegisterSkillsToFamily(cybPrefab, val2, val); } private void SetUpUtilities(SkillLocator skillLocator) { //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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: 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_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0336: Unknown result type (might be due to invalid IL or missing references) //IL_0337: 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_0340: Unknown result type (might be due to invalid IL or missing references) EnergySkillDef energySkillDef = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef).activationState = new SerializableEntityStateType(typeof(DeployTeleporter)); ((SkillDef)energySkillDef).activationStateMachineName = "Teleporter"; ((SkillDef)energySkillDef).skillName = "SS2UCYBORG_UTILITY_TELEPORT_NAME"; ((SkillDef)energySkillDef).skillNameToken = "SS2UCYBORG_UTILITY_TELEPORT_NAME"; ((SkillDef)energySkillDef).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_UTILITY_TELEPORT_DESCRIPTION" : "SS2UCYBORG_UTILITY_TELEPORT_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef).icon = Assets.mainAssetBundle.LoadAsset("cyborgspecial"); ((SkillDef)energySkillDef).baseMaxStock = 1; ((SkillDef)energySkillDef).baseRechargeInterval = (useEnergyRework.Value ? 5f : 8f); ((SkillDef)energySkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)energySkillDef).canceledFromSprinting = false; ((SkillDef)energySkillDef).fullRestockOnAssign = true; ((SkillDef)energySkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)energySkillDef).isCombatSkill = false; ((SkillDef)energySkillDef).mustKeyPress = true; ((SkillDef)energySkillDef).cancelSprintingOnActivation = false; ((SkillDef)energySkillDef).rechargeStock = 1; ((SkillDef)energySkillDef).requiredStock = 1; ((SkillDef)energySkillDef).stockToConsume = ((!useEnergyRework.Value) ? 1 : 0); ((SkillDef)energySkillDef).keywordTokens = new string[0]; energySkillDef.energyFractionCost = 0.5f; Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)energySkillDef); Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef); Skills.Recall = energySkillDef; CyborgTeleSkillDef cyborgTeleSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)cyborgTeleSkillDef).activationState = new SerializableEntityStateType(typeof(UseTeleporter)); ((SkillDef)cyborgTeleSkillDef).activationStateMachineName = "Teleporter"; ((SkillDef)cyborgTeleSkillDef).skillName = "SS2UCYBORG_UTILITY_TELEPORT_NAME"; ((SkillDef)cyborgTeleSkillDef).skillNameToken = "SS2UCYBORG_UTILITY_TELEPORT_NAME"; ((SkillDef)cyborgTeleSkillDef).skillDescriptionToken = ((SkillDef)energySkillDef).skillDescriptionToken; ((SkillDef)cyborgTeleSkillDef).icon = Assets.mainAssetBundle.LoadAsset("cyborgspecial2"); ((SkillDef)cyborgTeleSkillDef).baseMaxStock = 1; ((SkillDef)cyborgTeleSkillDef).baseRechargeInterval = 5f; ((SkillDef)cyborgTeleSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)cyborgTeleSkillDef).canceledFromSprinting = false; ((SkillDef)cyborgTeleSkillDef).fullRestockOnAssign = true; ((SkillDef)cyborgTeleSkillDef).interruptPriority = (InterruptPriority)1; ((SkillDef)cyborgTeleSkillDef).isCombatSkill = false; ((SkillDef)cyborgTeleSkillDef).mustKeyPress = true; ((SkillDef)cyborgTeleSkillDef).cancelSprintingOnActivation = false; ((SkillDef)cyborgTeleSkillDef).rechargeStock = 0; ((SkillDef)cyborgTeleSkillDef).requiredStock = 1; ((SkillDef)cyborgTeleSkillDef).stockToConsume = 1; ((SkillDef)cyborgTeleSkillDef).keywordTokens = new string[0]; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)cyborgTeleSkillDef); Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)cyborgTeleSkillDef); DeployTeleporter.teleportSkillDef = cyborgTeleSkillDef; Skills.RecallOverride = cyborgTeleSkillDef; EnergySkillDef energySkillDef2 = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef2).activationState = new SerializableEntityStateType(typeof(FlightMode)); ((SkillDef)energySkillDef2).activationStateMachineName = "Jetpack"; ((SkillDef)energySkillDef2).skillName = "SS2UCYBORG_UTILITY_FLIGHT_NAME"; ((SkillDef)energySkillDef2).skillNameToken = "SS2UCYBORG_UTILITY_FLIGHT_NAME"; ((SkillDef)energySkillDef2).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_UTILITY_FLIGHT_DESCRIPTION" : "SS2UCYBORG_UTILITY_FLIGHT_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef2).icon = Assets.mainAssetBundle.LoadAsset("cyborgpassive"); ((SkillDef)energySkillDef2).baseMaxStock = 1; ((SkillDef)energySkillDef2).baseRechargeInterval = (useEnergyRework.Value ? 5f : 8f); ((SkillDef)energySkillDef2).beginSkillCooldownOnSkillEnd = true; ((SkillDef)energySkillDef2).canceledFromSprinting = false; ((SkillDef)energySkillDef2).fullRestockOnAssign = true; ((SkillDef)energySkillDef2).interruptPriority = (InterruptPriority)0; ((SkillDef)energySkillDef2).isCombatSkill = false; ((SkillDef)energySkillDef2).mustKeyPress = false; ((SkillDef)energySkillDef2).cancelSprintingOnActivation = false; ((SkillDef)energySkillDef2).rechargeStock = 1; ((SkillDef)energySkillDef2).requiredStock = 1; ((SkillDef)energySkillDef2).stockToConsume = ((!useEnergyRework.Value) ? 1 : 0); ((SkillDef)energySkillDef2).forceSprintDuringState = true; ((SkillDef)energySkillDef2).keywordTokens = new string[1] { "KEYWORD_HEAVY" }; Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)energySkillDef2); Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef2); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef2); Skills.FlightMode = energySkillDef2; skillLocator.utility = Utils.RegisterSkillsToFamily(cybPrefab, val, val2); } private void SetUpSpecials(SkillLocator skillLocator) { //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_00ac: 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_0127: 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_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0234: 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_024a: 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_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: 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_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) EnergySkillDef energySkillDef = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef).activationState = new SerializableEntityStateType(typeof(CyborgFireOverheat)); ((SkillDef)energySkillDef).activationStateMachineName = "Special"; ((SkillDef)energySkillDef).skillName = "SS2UCYBORG_OVERHEAT_NAME"; ((SkillDef)energySkillDef).skillNameToken = "SS2UCYBORG_OVERHEAT_NAME"; ((SkillDef)energySkillDef).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_OVERHEAT_DESCRIPTION" : "SS2UCYBORG_OVERHEAT_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef).icon = Assets.mainAssetBundle.LoadAsset("cyborgutility"); ((SkillDef)energySkillDef).baseMaxStock = 1; ((SkillDef)energySkillDef).baseRechargeInterval = (useEnergyRework.Value ? 5f : 10f); ((SkillDef)energySkillDef).beginSkillCooldownOnSkillEnd = false; ((SkillDef)energySkillDef).canceledFromSprinting = false; ((SkillDef)energySkillDef).fullRestockOnAssign = true; ((SkillDef)energySkillDef).interruptPriority = (InterruptPriority)1; ((SkillDef)energySkillDef).isCombatSkill = true; ((SkillDef)energySkillDef).mustKeyPress = false; ((SkillDef)energySkillDef).cancelSprintingOnActivation = false; ((SkillDef)energySkillDef).rechargeStock = 1; ((SkillDef)energySkillDef).requiredStock = 1; ((SkillDef)energySkillDef).stockToConsume = ((!useEnergyRework.Value) ? 1 : 0); energySkillDef.energyFractionCost = 0.6f; Skills.Overheat = energySkillDef; Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)energySkillDef); Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef); Variant val = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef); EnergySkillDef energySkillDef2 = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef2).activationState = new SerializableEntityStateType(typeof(ShockCore)); ((SkillDef)energySkillDef2).activationStateMachineName = "Special"; ((SkillDef)energySkillDef2).skillName = "SS2UCYBORG_SHOCKCORE_NAME"; ((SkillDef)energySkillDef2).skillNameToken = "SS2UCYBORG_SHOCKCORE_NAME"; ((SkillDef)energySkillDef2).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_SHOCKCORE_DESCRIPTION" : "SS2UCYBORG_SHOCKCORE_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef2).icon = Assets.mainAssetBundle.LoadAsset("cyborgshockcore"); ((SkillDef)energySkillDef2).baseMaxStock = (useEnergyRework.Value ? 1 : 2); ((SkillDef)energySkillDef2).baseRechargeInterval = 5f; ((SkillDef)energySkillDef2).beginSkillCooldownOnSkillEnd = false; ((SkillDef)energySkillDef2).canceledFromSprinting = false; ((SkillDef)energySkillDef2).fullRestockOnAssign = true; ((SkillDef)energySkillDef2).interruptPriority = (InterruptPriority)1; ((SkillDef)energySkillDef2).isCombatSkill = true; ((SkillDef)energySkillDef2).mustKeyPress = true; ((SkillDef)energySkillDef2).cancelSprintingOnActivation = true; ((SkillDef)energySkillDef2).rechargeStock = 1; ((SkillDef)energySkillDef2).requiredStock = 1; ((SkillDef)energySkillDef2).stockToConsume = ((!useEnergyRework.Value) ? 1 : 0); ((SkillDef)energySkillDef2).keywordTokens = new string[1] { "KEYWORD_SHOCKING" }; energySkillDef2.energyFractionCost = 0.4f; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef2); Utils.RegisterSkillDef((SkillDef)(object)energySkillDef2); Variant val2 = Utils.RegisterSkillVariant((SkillDef)(object)energySkillDef2); Skills.ShockCore = energySkillDef2; skillLocator.special = Utils.RegisterSkillsToFamily(cybPrefab, val, val2); EnergySkillDef energySkillDef3 = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef3).activationState = new SerializableEntityStateType(typeof(OverheatScepter)); ((SkillDef)energySkillDef3).activationStateMachineName = "Special"; ((SkillDef)energySkillDef3).skillName = "SS2UCYBORG_OVERHEAT_SCEPTER_NAME"; ((SkillDef)energySkillDef3).skillNameToken = "SS2UCYBORG_OVERHEAT_SCEPTER_NAME"; ((SkillDef)energySkillDef3).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_OVERHEAT_SCEPTER_DESCRIPTION" : "SS2UCYBORG_OVERHEAT_SCEPTER_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef3).icon = Assets.mainAssetBundle.LoadAsset("cyborgutilityscepter"); ((SkillDef)energySkillDef3).baseMaxStock = 1; ((SkillDef)energySkillDef3).baseRechargeInterval = ((SkillDef)energySkillDef).baseRechargeInterval; ((SkillDef)energySkillDef3).beginSkillCooldownOnSkillEnd = false; ((SkillDef)energySkillDef3).canceledFromSprinting = false; ((SkillDef)energySkillDef3).fullRestockOnAssign = true; ((SkillDef)energySkillDef3).interruptPriority = (InterruptPriority)1; ((SkillDef)energySkillDef3).isCombatSkill = true; ((SkillDef)energySkillDef3).mustKeyPress = false; ((SkillDef)energySkillDef3).cancelSprintingOnActivation = false; ((SkillDef)energySkillDef3).rechargeStock = 1; ((SkillDef)energySkillDef3).requiredStock = 1; ((SkillDef)energySkillDef3).stockToConsume = ((SkillDef)energySkillDef).stockToConsume; energySkillDef3.energyFractionCost = energySkillDef.energyFractionCost; Starstorm2Unofficial.Modules.Skills.skillDefs.Add((SkillDef)(object)energySkillDef3); Skills.OverheatScepter = energySkillDef3; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef3); EnergySkillDef energySkillDef4 = ScriptableObject.CreateInstance(); ((SkillDef)energySkillDef4).activationState = new SerializableEntityStateType(typeof(ShockCoreScepter)); ((SkillDef)energySkillDef4).activationStateMachineName = "Special"; ((SkillDef)energySkillDef4).skillName = "SS2UCYBORG_SHOCKCORE_SCEPTER_NAME"; ((SkillDef)energySkillDef4).skillNameToken = "SS2UCYBORG_SHOCKCORE_SCEPTER_NAME"; ((SkillDef)energySkillDef4).skillDescriptionToken = (useEnergyRework.Value ? "SS2UCYBORG_SHOCKCORE_SCEPTER_DESCRIPTION" : "SS2UCYBORG_SHOCKCORE_SCEPTER_DESCRIPTION_NOENERGY"); ((SkillDef)energySkillDef4).icon = Assets.mainAssetBundle.LoadAsset("cyborgshockcorescepter"); ((SkillDef)energySkillDef4).baseMaxStock = ((SkillDef)energySkillDef2).baseMaxStock; ((SkillDef)energySkillDef4).baseRechargeInterval = ((SkillDef)energySkillDef2).baseRechargeInterval; ((SkillDef)energySkillDef4).beginSkillCooldownOnSkillEnd = false; ((SkillDef)energySkillDef4).canceledFromSprinting = false; ((SkillDef)energySkillDef4).fullRestockOnAssign = true; ((SkillDef)energySkillDef4).interruptPriority = (InterruptPriority)1; ((SkillDef)energySkillDef4).isCombatSkill = true; ((SkillDef)energySkillDef4).mustKeyPress = true; ((SkillDef)energySkillDef4).cancelSprintingOnActivation = true; ((SkillDef)energySkillDef4).rechargeStock = 1; ((SkillDef)energySkillDef4).requiredStock = 1; ((SkillDef)energySkillDef4).stockToConsume = ((SkillDef)energySkillDef2).stockToConsume; ((SkillDef)energySkillDef4).keywordTokens = new string[1] { "KEYWORD_SHOCKING" }; energySkillDef4.energyFractionCost = energySkillDef2.energyFractionCost; Starstorm2Unofficial.Modules.Skills.FixSkillName((SkillDef)(object)energySkillDef4); Skills.ShockCoreScepter = energySkillDef4; if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill((SkillDef)(object)Skills.OverheatScepter, "SS2UCyborgBody", (SkillDef)(object)Skills.Overheat); ItemBase.instance.RegisterScepterSkill((SkillDef)(object)Skills.ShockCoreScepter, "SS2UCyborgBody", (SkillDef)(object)Skills.ShockCore); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill((SkillDef)(object)Skills.OverheatScepter, "SS2UCyborgBody", (SkillSlot)3, (SkillDef)(object)Skills.Overheat); Item.instance.RegisterScepterSkill((SkillDef)(object)Skills.ShockCoreScepter, "SS2UCyborgBody", (SkillSlot)3, (SkillDef)(object)Skills.ShockCore); } internal static void CreateDoppelganger() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SS2UCyborgMonsterMaster", true); doppelganger.GetComponent().bodyPrefab = cybPrefab; Prefabs.RemoveAISkillDrivers(doppelganger); Prefabs.AddAISkillDriver(doppelganger, "Overheat", (SkillSlot)3, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "Teleport", (SkillSlot)2, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(doppelganger, "Shield", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: true, null); Prefabs.AddAISkillDriver(doppelganger, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 50f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: true, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, 1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "Strafe", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 30f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.masterPrefabs.Add(doppelganger); } internal static GameObject CreateCyborgPrefab() { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_01f5: Unknown result type (might be due to invalid IL or missing references) //IL_01fa: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026a: 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_02bf: 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) GameObject crosshair = BuildChargeRifleCrosshair(); GameObject val = PrefabCore.CreatePrefab("SS2UCyborgBody", "mdlCyborg", new BodyInfo { armor = 0f, armorGrowth = 0f, bodyName = "SS2UCyborgBody", bodyNameToken = "SS2UCYBORG_NAME", characterPortrait = (Texture)(object)Assets.mainAssetBundle.LoadAsset("cyborgicon"), bodyColor = new Color32((byte)138, (byte)183, (byte)168, byte.MaxValue), crosshair = crosshair, damage = 12f, healthGrowth = 33f, healthRegen = 1f, jumpCount = 1, maxHealth = 110f, subtitleNameToken = "SS2UCYBORG_SUBTITLE", podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod"), acceleration = 40f }); PrefabCore.SetupCharacterModel(val, new CustomRendererInfo[1] { new CustomRendererInfo { childName = "Model", material = Assets.LoadMaterialFromAssetBundle("matCyborg") } }, 0); val.AddComponent(); val.AddComponent(); val.GetComponent().mainStateType = new SerializableEntityStateType(typeof(CyborgMain)); bool flag = true; EntityStateMachine val2 = EntityStateMachine.FindByCustomName(val, "Slide"); if (!Object.op_Implicit((Object)(object)val2)) { flag = false; val2 = val.AddComponent(); } val2.customName = "Jetpack"; val2.initialStateType = new SerializableEntityStateType(typeof(Idle)); val2.mainStateType = new SerializableEntityStateType(typeof(Idle)); NetworkStateMachine component = val.GetComponent(); component.stateMachines = component.stateMachines.Append(val2).ToArray(); if (!flag) { SetStateOnHurt component2 = val.GetComponent(); component2.idleStateMachine.Append(val2); } EntityStateMachine val3 = val.AddComponent(); val3.customName = "Teleporter"; val3.initialStateType = new SerializableEntityStateType(typeof(Idle)); val3.mainStateType = new SerializableEntityStateType(typeof(Idle)); component.stateMachines = component.stateMachines.Append(val3).ToArray(); EntityStateMachine val4 = val.AddComponent(); val4.customName = "DefenseMatrix"; val4.initialStateType = new SerializableEntityStateType(typeof(Idle)); val4.mainStateType = new SerializableEntityStateType(typeof(Idle)); component.stateMachines = component.stateMachines.Append(val4).ToArray(); EntityStateMachine val5 = val.AddComponent(); val5.customName = "Special"; val5.initialStateType = new SerializableEntityStateType(typeof(Idle)); val5.mainStateType = new SerializableEntityStateType(typeof(Idle)); component.stateMachines = component.stateMachines.Append(val5).ToArray(); ModelLocator component3 = val.GetComponent(); ChildLocator component4 = ((Component)component3.modelTransform).gameObject.GetComponent(); PrefabCore.SetupHitbox(((Component)component3.modelTransform).gameObject, component4.FindChild("RamHitbox"), "RamHitbox"); return val; } public static bool IsColossusSkin(CharacterBody body) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)body)) { return false; } SkinDef bodySkinDef = SkinCatalog.GetBodySkinDef(body.bodyIndex, (int)body.skinIndex); if (!Object.op_Implicit((Object)(object)bodySkinDef)) { return false; } return bodySkinDef.nameToken == "SS2UCYBORG_GRANDMASTERY_SKIN_NAME"; } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Components { public class CyborgEnergyComponent : NetworkBehaviour { public static float delayBeforeShieldRecharge; public static float energyDepletedFraction; public float energyRechargeDelayStopwatch; public int energySkillsActive = 0; public bool energyDepleted = false; public float remainingEnergyFraction = 1f; public float rifleChargeFraction = 0f; public bool riflePerfectCharge = false; public SkillLocator skillLocator; public bool showTriShotCrosshair = false; public int armToFireFrom = 0; private static int kRpcRpcRestoreEnergy; private void Awake() { skillLocator = ((Component)this).GetComponent(); } private void FixedUpdate() { if (energySkillsActive > 0) { return; } if (energyRechargeDelayStopwatch <= 0f || energyDepleted) { remainingEnergyFraction += Time.fixedDeltaTime / GetRechargeTime(); if (remainingEnergyFraction >= energyDepletedFraction) { energyDepleted = false; } remainingEnergyFraction = Mathf.Min(remainingEnergyFraction, GetMaxEnergyFraction()); } else { energyRechargeDelayStopwatch -= Time.fixedDeltaTime; } } public void ApplyAmmoPack() { AddEnergyFraction(1f); energyDepleted = false; } public void ResetEnergy() { remainingEnergyFraction = GetMaxEnergyFraction(); energyDepleted = false; energyRechargeDelayStopwatch = 0f; } public void AddEnergyFraction(float fraction) { remainingEnergyFraction = Mathf.Min(remainingEnergyFraction + fraction, GetMaxEnergyFraction()); } public void ConsumeEnergy(float fraction) { remainingEnergyFraction -= fraction; if (remainingEnergyFraction <= 0f) { remainingEnergyFraction = 0f; energyDepleted = true; energyRechargeDelayStopwatch = 0f; } energyRechargeDelayStopwatch = delayBeforeShieldRecharge; } public float GetMaxEnergyFraction() { float num = 1f; if (!CyborgCore.useEnergyRework.Value) { if (Object.op_Implicit((Object)(object)skillLocator) && Object.op_Implicit((Object)(object)skillLocator.secondary)) { num += (float)skillLocator.secondary.bonusStockFromBody; } return num; } if (Object.op_Implicit((Object)(object)skillLocator)) { if (Object.op_Implicit((Object)(object)skillLocator.secondary)) { num += (float)skillLocator.secondary.bonusStockFromBody / 9f; } if (Object.op_Implicit((Object)(object)skillLocator.utility)) { num += (float)skillLocator.utility.bonusStockFromBody / 3f; } if (Object.op_Implicit((Object)(object)skillLocator.special)) { num += (float)skillLocator.special.bonusStockFromBody / 3f; } } return num; } private float GetRechargeTime() { if (!CyborgCore.useEnergyRework.Value) { if (Object.op_Implicit((Object)(object)skillLocator) && Object.op_Implicit((Object)(object)skillLocator.secondary)) { return skillLocator.secondary.CalculateFinalRechargeInterval(); } return 6f; } float num = 5f; float num2 = 5f; float num3 = 5f; if (Object.op_Implicit((Object)(object)skillLocator)) { if (Object.op_Implicit((Object)(object)skillLocator.secondary)) { num = skillLocator.secondary.CalculateFinalRechargeInterval(); } if (Object.op_Implicit((Object)(object)skillLocator.utility)) { num2 = skillLocator.utility.CalculateFinalRechargeInterval(); } if (Object.op_Implicit((Object)(object)skillLocator.special)) { num3 = skillLocator.special.CalculateFinalRechargeInterval(); } } return num + num2 + num3; } public void ResetCharge() { rifleChargeFraction = 0f; riflePerfectCharge = false; } [Server] public void RestoreEnergyServer(float reductionFraction) { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Cyborg.Components.CyborgEnergyComponent::RestoreEnergyServer(System.Single)' called on client"); } else if (NetworkServer.active && Object.op_Implicit((Object)(object)skillLocator)) { CallRpcRestoreEnergy(reductionFraction); } } [ClientRpc] private void RpcRestoreEnergy(float reductionFraction) { AddEnergyFraction(reductionFraction); } static CyborgEnergyComponent() { //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Expected O, but got Unknown delayBeforeShieldRecharge = 0.5f; energyDepletedFraction = 0.2f; kRpcRpcRestoreEnergy = 933869059; NetworkBehaviour.RegisterRpcDelegate(typeof(CyborgEnergyComponent), kRpcRpcRestoreEnergy, new CmdDelegate(InvokeRpcRpcRestoreEnergy)); NetworkCRC.RegisterBehaviour("CyborgEnergyComponent", 0); } private void UNetVersion() { } protected static void InvokeRpcRpcRestoreEnergy(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcRestoreEnergy called on server."); } else { ((CyborgEnergyComponent)(object)obj).RpcRestoreEnergy(reader.ReadSingle()); } } public void CallRpcRestoreEnergy(float reductionFraction) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcRestoreEnergy called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcRestoreEnergy); val.Write(((Component)this).GetComponent().netId); val.Write(reductionFraction); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcRestoreEnergy"); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class CyborgTeleportTracker : NetworkBehaviour { [SyncVar] private Vector3 _teleportPosition = Vector3.zero; [SyncVar] private bool _canTeleport = false; private GameObject teleportObject; public static GameObject teleportDestroyEffect; private static int kCmdCmdDestroyTeleporter; public Vector3 Network_teleportPosition { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return _teleportPosition; } [param: In] set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).SetSyncVar(value, ref _teleportPosition, 1u); } } public bool Network_canTeleport { get { return _canTeleport; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref _canTeleport, 2u); } } private void FixedUpdate() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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) if (!NetworkServer.active || !_canTeleport) { return; } if (!Object.op_Implicit((Object)(object)teleportObject)) { DestroyTeleporterServer(); return; } Vector3 position = teleportObject.transform.position; if (position != _teleportPosition) { Network_teleportPosition = position; } } private void OnDestroy() { if (NetworkServer.active) { DestroyTeleporterServer(); } } public Vector3? GetTeleportCoordinates() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) if (!_canTeleport) { return null; } return _teleportPosition; } [Server] public void SetTeleporterServer(GameObject teleportProjectile) { //IL_005c: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Cyborg.Components.CyborgTeleportTracker::SetTeleporterServer(UnityEngine.GameObject)' called on client"); } else if (NetworkServer.active && Object.op_Implicit((Object)(object)teleportProjectile)) { if (Object.op_Implicit((Object)(object)teleportObject)) { DestroyTeleporterServer(); } teleportObject = teleportProjectile; Network_teleportPosition = teleportObject.transform.position; Network_canTeleport = true; } } [Server] public void DestroyTeleporterServer() { //IL_0044: 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_0051: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Cyborg.Components.CyborgTeleportTracker::DestroyTeleporterServer()' called on client"); } else if (NetworkServer.active) { if (Object.op_Implicit((Object)(object)teleportObject)) { EffectManager.SimpleEffect(teleportDestroyEffect, teleportObject.transform.position, default(Quaternion), true); Object.Destroy((Object)(object)teleportObject); } teleportObject = null; Network_canTeleport = false; } } [Command] public void CmdDestroyTeleporter() { if (NetworkServer.active) { DestroyTeleporterServer(); } } static CyborgTeleportTracker() { //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown teleportDestroyEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Engi/OmniExplosionVFXEngiTurretDeath.prefab").WaitForCompletion(); kCmdCmdDestroyTeleporter = 1211766621; NetworkBehaviour.RegisterCommandDelegate(typeof(CyborgTeleportTracker), kCmdCmdDestroyTeleporter, new CmdDelegate(InvokeCmdCmdDestroyTeleporter)); NetworkCRC.RegisterBehaviour("CyborgTeleportTracker", 0); } private void UNetVersion() { } protected static void InvokeCmdCmdDestroyTeleporter(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdDestroyTeleporter called on client."); } else { ((CyborgTeleportTracker)(object)obj).CmdDestroyTeleporter(); } } public void CallCmdDestroyTeleporter() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdDestroyTeleporter called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdDestroyTeleporter(); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdDestroyTeleporter); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdDestroyTeleporter"); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { //IL_0008: 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) if (forceAll) { writer.Write(_teleportPosition); writer.Write(_canTeleport); return true; } bool flag = false; if ((((NetworkBehaviour)this).syncVarDirtyBits & (true ? 1u : 0u)) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(_teleportPosition); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 2u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(_canTeleport); } if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); } return flag; } public override void OnDeserialize(NetworkReader reader, bool initialState) { //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_0035: 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) if (initialState) { _teleportPosition = reader.ReadVector3(); _canTeleport = reader.ReadBoolean(); return; } int num = (int)reader.ReadPackedUInt32(); if (((uint)num & (true ? 1u : 0u)) != 0) { _teleportPosition = reader.ReadVector3(); } if (((uint)num & 2u) != 0) { _canTeleport = reader.ReadBoolean(); } } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Components.TeleportProjectile { public class AssignToTeleportTracker : MonoBehaviour { private Rigidbody rigidBody; private CyborgTeleportTracker ctt; public void Start() { if (NetworkServer.active) { rigidBody = ((Component)this).GetComponent(); ProjectileController component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.owner)) { ctt = component.owner.GetComponent(); ctt.SetTeleporterServer(((Component)this).gameObject); } } } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Components.ShockCoreProjectile { public class ShootableShockCore : ShootableProjectileComponent { public GameObject implosionStartEffectPrefab; public GameObject explosionEffectPrefab; public float radius = 20f; public float pullRadius = 30f; public float delayBeforeExplosion = 0.5f; public float implosionDamageCoefficient = 3f; private ProjectileImpactExplosion pie; private float explosionTimer = 0f; private bool beginTimer = false; public void Awake() { pie = ((Component)this).gameObject.GetComponent(); } public void FixedUpdate() { if (!NetworkServer.active || !beginTimer) { return; } explosionTimer -= Time.fixedDeltaTime; if (explosionTimer <= 0f) { beginTimer = false; if (Object.op_Implicit((Object)(object)pie)) { ((ProjectileExplosion)pie).Detonate(); Object.Destroy((Object)(object)((Component)this).gameObject); } } } public override void OnShootActions(DamageInfo damageInfo) { //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_0046: 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_00c5: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_0153: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Expected O, but got Unknown base.OnShootActions(damageInfo); explosionTimer = delayBeforeExplosion; beginTimer = true; if (Object.op_Implicit((Object)(object)pie)) { ((ProjectileExplosion)pie).blastRadius = radius; ((ProjectileExplosion)pie).falloffModel = (FalloffModel)0; ((ProjectileExplosion)pie).explosionEffect = explosionEffectPrefab; pie.destroyOnEnemy = false; pie.destroyOnWorld = false; } damageInfo.force = Vector3.zero; damageInfo.rejected = true; damageInfo.damage = 0f; ProjectileDamage component = ((Component)this).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.damage *= implosionDamageCoefficient; DamageAPI.AddModdedDamageType(ref component.damageType, targetDamageType); } TeamIndex teamIndex = (TeamIndex)(-1); TeamFilter component2 = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { teamIndex = component2.teamIndex; } GameObject attacker = null; ProjectileController component3 = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { attacker = component3.owner; } if (Object.op_Implicit((Object)(object)implosionStartEffectPrefab)) { EffectManager.SpawnEffect(implosionStartEffectPrefab, new EffectData { origin = ((Component)this).transform.position, scale = 4f }, true); } RootPulse(((Component)this).transform.position, pullRadius, teamIndex, attacker); ProjectileSimple component4 = ((Component)this).GetComponent(); component4.desiredForwardSpeed = 0f; } private void RootPulse(Vector3 position, float radius, TeamIndex teamIndex, GameObject attacker) { //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_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: 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_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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_0111: 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_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: 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) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_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_0183: Unknown result type (might be due to invalid IL or missing references) //IL_0188: 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_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_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_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_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_01d4: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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_01f7: Expected O, but got Unknown List list = new List(); HurtBox[] hurtBoxes = new SphereSearch { origin = position, radius = radius, mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask }.RefreshCandidates().FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(teamIndex)).OrderCandidatesByDistance() .FilterCandidatesByDistinctHurtBoxEntities() .GetHurtBoxes(); foreach (HurtBox val in hurtBoxes) { CharacterBody body = val.healthComponent.body; if (Object.op_Implicit((Object)(object)body) && !list.Contains(body) && !HGMath.IsVectorNaN(((Component)val).transform.position)) { list.Add(body); Vector3 val2 = ((Component)val).transform.position - position; float magnitude = ((Vector3)(ref val2)).magnitude; Vector3 val3 = val2 / magnitude; Rigidbody component = ((Component)val.healthComponent).GetComponent(); float num = (Object.op_Implicit((Object)(object)component) ? component.mass : 1f); float num2 = magnitude; float num3 = TreebotFlower2Projectile.yankSuitabilityCurve.Evaluate(num); Vector3 val4 = (Object.op_Implicit((Object)(object)component) ? component.velocity : Vector3.zero); if (HGMath.IsVectorNaN(val4)) { val4 = Vector3.zero; } Vector3 val5 = -val4; if (num2 > 0f) { val5 = val3 * (0f - Trajectory.CalculateInitialYSpeedForHeight(num2, 0f - body.acceleration)); } Vector3 val6 = val5 * (num * num3); if (!HGMath.IsVectorNaN(val6)) { DamageInfo val7 = new DamageInfo { attacker = attacker, inflictor = ((Component)this).gameObject, crit = false, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)2049), force = val6, position = ((Component)val).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; val.healthComponent.TakeDamageForce(val7, true, false); } } } } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Components.OverheatProjectile { public class BFGGhostReduceSizeOverTime : MonoBehaviour { public float lifetime = 3f; private ParticleSystem[] particles = null; private float stopwatch = 0f; private float origScaleFire; private float origScaleBeams; private float origScaleLightning; private float scaleMultFire = 0f; private float scaleMultBeams = 0f; private float scaleMultLightning = 0f; private void Awake() { particles = ((Component)this).GetComponentsInChildren(); for (int i = 0; i < particles.Length; i++) { switch (i) { case 0: origScaleFire = particles[i].startSize; break; case 1: origScaleBeams = particles[i].startSize; break; case 2: origScaleLightning = particles[i].startSize; break; } } } private void FixedUpdate() { if (particles == null) { return; } stopwatch += Time.fixedDeltaTime; for (int i = 0; i < particles.Length; i++) { switch (i) { case 0: particles[i].startSize = Mathf.Lerp(origScaleFire, scaleMultFire * origScaleFire, stopwatch / lifetime); break; case 1: particles[i].startSize = Mathf.Lerp(origScaleBeams, scaleMultBeams * origScaleBeams, stopwatch / lifetime); break; case 2: particles[i].startSize = Mathf.Lerp(origScaleLightning, scaleMultLightning * origScaleLightning, stopwatch / lifetime); break; } } } } [RequireComponent(typeof(ProjectileProximityBeamController))] public class LightningSoundComponent : MonoBehaviour { private ProjectileProximityBeamController pbc; private void Start() { pbc = ((Component)this).GetComponent(); if (!Object.op_Implicit((Object)(object)pbc)) { Object.Destroy((Object)(object)this); } } private void FixedUpdate() { //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) if (NetworkServer.active && pbc.listClearTimer - Time.fixedDeltaTime <= 0f && HasTarget(pbc)) { EffectManager.SimpleSoundEffect(Assets.ror1LightningSound.index, ((Component)this).transform.position, true); } } private bool HasTarget(ProjectileProximityBeamController pbc) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) BullseyeSearch search = pbc.search; Vector3 position = ((Component)this).transform.position; Vector3 forward = ((Component)this).transform.forward; search.searchOrigin = position; search.searchDirection = forward; search.sortMode = (SortMode)1; search.teamMaskFilter = TeamMask.allButNeutral; ((TeamMask)(ref search.teamMaskFilter)).RemoveTeam(pbc.myTeamIndex); search.filterByLoS = false; search.minAngleFilter = pbc.minAngleFilter; search.maxAngleFilter = pbc.maxAngleFilter; search.maxDistanceFilter = pbc.attackRange; search.RefreshCandidates(); return (Object)(object)search.GetResults().FirstOrDefault() != (Object)null; } } [RequireComponent(typeof(ProjectileSimple))] [RequireComponent(typeof(ProjectileProximityBeamController))] public class OverheatReduceTickrateOverTime : MonoBehaviour { public float fullDPSDurationPercent = 1f / 3f; public float finalDPSMultiplier = 0.2f; private float initialResetInterval; private float startDecayTime; private float totalLifetime; private float stopwatch = 0f; private ProjectileProximityBeamController pbc; public void Start() { pbc = ((Component)this).GetComponent(); initialResetInterval = pbc.listClearInterval; ProjectileSimple component = ((Component)this).GetComponent(); totalLifetime = component.lifetime; startDecayTime = component.lifetime * fullDPSDurationPercent; } public void FixedUpdate() { if (NetworkServer.active && Object.op_Implicit((Object)(object)pbc)) { stopwatch += Time.fixedDeltaTime; if (stopwatch >= startDecayTime) { float num = Mathf.Lerp(1f, finalDPSMultiplier, (stopwatch - startDecayTime) / (totalLifetime - startDecayTime)); pbc.listClearInterval = initialResetInterval / num; pbc.attackInterval = initialResetInterval / num; } } } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Components.Crosshair { public class CyborgCrosshairChargeController : MonoBehaviour { public static ConfigEntry useSimpleEnergyBar; public static ConfigEntry fontSize; public static Color chargeColor = Color.white; public static Color perfectChargeColor = Color32.op_Implicit(new Color32((byte)197, (byte)246, (byte)241, byte.MaxValue)); public static Color shieldColor = Color32.op_Implicit(new Color32((byte)139, (byte)237, (byte)227, byte.MaxValue)); public static Color shieldDepleteColor = Color32.op_Implicit(new Color32((byte)250, (byte)100, (byte)100, byte.MaxValue)); public static Color shieldConsumeColor = Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)); private static Color emptyColor = new Color(1f, 1f, 1f, 0f); private CyborgEnergyComponent chargeComponent; private HudElement hudElement; private Image chargeBar; private Image chargeBarBackground; private Image shieldBar; private Image energyBackground; private Image energyBar; private TextMeshProUGUI energyText; private TextMeshProUGUI shieldText; private Image rightDot; private Image leftDot; private CharacterBody savedCharacterBody; public static ConfigEntry energyBarScale; public static ConfigEntry energyBarXPos; public static ConfigEntry energyBarYPos; private RectTransform energyRect; private void Awake() { //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) hudElement = ((Component)this).GetComponent(); chargeBar = ((Component)this).GetComponent(); ChildLocator component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { Transform val = component.FindChild("ShieldBar"); if (Object.op_Implicit((Object)(object)val)) { shieldBar = ((Component)val).GetComponent(); } Transform val2 = component.FindChild("BackgroundImage"); if (Object.op_Implicit((Object)(object)val2)) { chargeBarBackground = ((Component)val2).GetComponent(); } Transform val3 = component.FindChild("RightDot"); if (Object.op_Implicit((Object)(object)val3)) { rightDot = ((Component)val3).GetComponent(); } Transform val4 = component.FindChild("LeftDot"); if (Object.op_Implicit((Object)(object)val4)) { leftDot = ((Component)val4).GetComponent(); } Transform val5 = component.FindChild("EnergyBar"); if (Object.op_Implicit((Object)(object)val5)) { energyBar = ((Component)val5).GetComponent(); } Transform val6 = component.FindChild("EnergyBackground"); if (Object.op_Implicit((Object)(object)val6)) { energyBackground = ((Component)val6).GetComponent(); energyRect = ((Component)val6).GetComponent(); } TMP_FontAsset font = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/Fonts/Bombardier/tmpBombDropshadow.asset").WaitForCompletion(); Transform val7 = component.FindChild("EnergyText"); if (Object.op_Implicit((Object)(object)val7)) { energyText = ((Component)val7).GetComponent(); } if (Object.op_Implicit((Object)(object)energyText)) { ((TMP_Text)energyText).font = font; } Transform val8 = component.FindChild("ShieldText"); if (Object.op_Implicit((Object)(object)val8)) { shieldText = ((Component)val8).GetComponent(); } if (Object.op_Implicit((Object)(object)shieldText)) { ((TMP_Text)shieldText).font = font; } } } private void FixedUpdate() { //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_0160: 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_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: 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_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_0410: 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_0430: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_039a: 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_04ec: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_0506: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: 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_0553: Unknown result type (might be due to invalid IL or missing references) //IL_0574: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)hudElement)) { return; } bool flag = false; if ((Object)(object)savedCharacterBody != (Object)(object)hudElement.targetCharacterBody) { savedCharacterBody = hudElement.targetCharacterBody; flag = true; } if (flag) { chargeComponent = null; } if (!Object.op_Implicit((Object)(object)chargeComponent)) { if (Object.op_Implicit((Object)(object)savedCharacterBody)) { chargeComponent = ((Component)savedCharacterBody).GetComponent(); } return; } if (Object.op_Implicit((Object)(object)chargeBarBackground)) { if (Object.op_Implicit((Object)(object)chargeComponent.skillLocator) && (Object)(object)chargeComponent.skillLocator.primary.skillDef == (Object)(object)CyborgCore.Skills.ChargeRifle) { ((Graphic)chargeBarBackground).color = Color.white; } else { ((Graphic)chargeBarBackground).color = Color.clear; } } if (Object.op_Implicit((Object)(object)chargeBar)) { float fillAmount = Mathf.Lerp(0f, 1f, chargeComponent.rifleChargeFraction); chargeBar.fillAmount = fillAmount; ((Graphic)chargeBar).color = (chargeComponent.riflePerfectCharge ? perfectChargeColor : chargeColor); } if ((Object)(object)energyRect != (Object)null) { ((Transform)energyRect).localScale = energyBarScale.Value * Vector3.one; if (((Transform)energyRect).localPosition.y != energyBarYPos.Value || ((Transform)energyRect).localPosition.x != energyBarXPos.Value) { Vector3 localPosition = default(Vector3); ((Vector3)(ref localPosition))..ctor(energyBarXPos.Value, energyBarYPos.Value, ((Transform)energyRect).localPosition.z); ((Transform)energyRect).localPosition = localPosition; } } float fillAmount2 = Mathf.Lerp(0f, 1f, chargeComponent.remainingEnergyFraction / chargeComponent.GetMaxEnergyFraction()); Color color = shieldColor; if (chargeComponent.energyDepleted) { color = shieldDepleteColor; } else if (chargeComponent.energySkillsActive > 0 || chargeComponent.energyRechargeDelayStopwatch > 0f) { color = shieldConsumeColor; } if (useSimpleEnergyBar.Value || !CyborgCore.useEnergyRework.Value) { if (Object.op_Implicit((Object)(object)shieldBar)) { shieldBar.fillAmount = fillAmount2; ((Graphic)shieldBar).color = color; } if (Object.op_Implicit((Object)(object)shieldText)) { ((TMP_Text)shieldText).text = Mathf.FloorToInt(100f * chargeComponent.remainingEnergyFraction) + "%"; ((Graphic)shieldText).color = color; ((TMP_Text)shieldText).fontSize = fontSize.Value; } if (Object.op_Implicit((Object)(object)energyBackground)) { ((Graphic)energyBackground).color = emptyColor; } if (Object.op_Implicit((Object)(object)energyBar)) { ((Graphic)energyBar).color = emptyColor; } if (Object.op_Implicit((Object)(object)energyText) && ((Graphic)energyText).color != emptyColor) { ((Graphic)energyText).color = emptyColor; } } else { if (Object.op_Implicit((Object)(object)energyBar)) { energyBar.fillAmount = fillAmount2; ((Graphic)energyBar).color = color; } if (Object.op_Implicit((Object)(object)energyBackground)) { ((Graphic)energyBackground).color = shieldColor; } if (Object.op_Implicit((Object)(object)energyText)) { ((TMP_Text)energyText).text = Mathf.FloorToInt(100f * chargeComponent.remainingEnergyFraction) + "%"; ((Graphic)energyText).color = color; ((TMP_Text)energyText).fontSize = fontSize.Value / energyBarScale.Value; } if (Object.op_Implicit((Object)(object)shieldBar)) { ((Graphic)shieldBar).color = emptyColor; } if (Object.op_Implicit((Object)(object)shieldText) && ((Graphic)shieldText).color != emptyColor) { ((Graphic)shieldText).color = emptyColor; } } Color white = Color.white; white.a = (chargeComponent.showTriShotCrosshair ? 1f : 0f); if (Object.op_Implicit((Object)(object)rightDot)) { ((Graphic)rightDot).color = white; } if (Object.op_Implicit((Object)(object)leftDot)) { ((Graphic)leftDot).color = white; } } } } namespace Starstorm2Unofficial.Survivors.Cyborg.Achievements { [RegisterAchievement("SS2UCyborgClearGameTyphoon", "Skins.SS2UCyborg.GrandMastery", null, 15u, null)] public class CyborgGrandMasteryAchievement : BaseGrandMasteryAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return CyborgCore.bodyIndex; } } [RegisterAchievement("SS2UCyborgClearGameMonsoon", "Skins.SS2UCyborg.Mastery", null, 10u, null)] public class CyborgMasteryAchievement : BasePerSurvivorClearGameMonsoonAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return CyborgCore.bodyIndex; } } } namespace Starstorm2Unofficial.Survivors.Chirr { public class BefriendSkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public ChirrFriendController targetingController; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { targetingController = ((Component)skillSlot).GetComponent() }; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return CanBefriend(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && CanBefriend(skillSlot); } private static bool CanBefriend([NotNull] GenericSkill skillSlot) { ChirrFriendController targetingController = ((InstanceData)(object)skillSlot.skillInstanceData).targetingController; if ((Object)(object)targetingController != (Object)null) { return targetingController.CanBefriend(); } return false; } } public static class ChirrItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_0056: 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_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_00b1: 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_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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0284: 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_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0303: 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_030a: Unknown result type (might be due to invalid IL or missing references) //IL_0313: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_034f: 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) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_0421: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0488: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_04c9: Unknown result type (might be due to invalid IL or missing references) //IL_04fc: Unknown result type (might be due to invalid IL or missing references) //IL_0501: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_0532: Unknown result type (might be due to invalid IL or missing references) //IL_0537: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_058b: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_05c6: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d5: Unknown result type (might be due to invalid IL or missing references) //IL_05df: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_0625: Unknown result type (might be due to invalid IL or missing references) //IL_0639: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0680: Unknown result type (might be due to invalid IL or missing references) //IL_0694: Unknown result type (might be due to invalid IL or missing references) //IL_0699: 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_0722: Unknown result type (might be due to invalid IL or missing references) //IL_0736: Unknown result type (might be due to invalid IL or missing references) //IL_074a: Unknown result type (might be due to invalid IL or missing references) //IL_074f: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0791: Unknown result type (might be due to invalid IL or missing references) //IL_07a5: Unknown result type (might be due to invalid IL or missing references) //IL_07aa: Unknown result type (might be due to invalid IL or missing references) //IL_07d3: Unknown result type (might be due to invalid IL or missing references) //IL_07e7: Unknown result type (might be due to invalid IL or missing references) //IL_07fb: Unknown result type (might be due to invalid IL or missing references) //IL_0800: Unknown result type (might be due to invalid IL or missing references) //IL_082e: Unknown result type (might be due to invalid IL or missing references) //IL_0842: Unknown result type (might be due to invalid IL or missing references) //IL_0856: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0889: Unknown result type (might be due to invalid IL or missing references) //IL_089d: Unknown result type (might be due to invalid IL or missing references) //IL_08b1: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08e4: Unknown result type (might be due to invalid IL or missing references) //IL_08f8: Unknown result type (might be due to invalid IL or missing references) //IL_090c: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_093f: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_0967: Unknown result type (might be due to invalid IL or missing references) //IL_096c: Unknown result type (might be due to invalid IL or missing references) //IL_099a: Unknown result type (might be due to invalid IL or missing references) //IL_09ae: Unknown result type (might be due to invalid IL or missing references) //IL_09c2: Unknown result type (might be due to invalid IL or missing references) //IL_09c7: Unknown result type (might be due to invalid IL or missing references) //IL_09f5: Unknown result type (might be due to invalid IL or missing references) //IL_0a09: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a22: Unknown result type (might be due to invalid IL or missing references) //IL_0a34: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a5c: Unknown result type (might be due to invalid IL or missing references) //IL_0a65: Unknown result type (might be due to invalid IL or missing references) //IL_0a98: Unknown result type (might be due to invalid IL or missing references) //IL_0a9d: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Unknown result type (might be due to invalid IL or missing references) //IL_0ab8: Unknown result type (might be due to invalid IL or missing references) //IL_0ace: Unknown result type (might be due to invalid IL or missing references) //IL_0ad3: Unknown result type (might be due to invalid IL or missing references) //IL_0adb: Unknown result type (might be due to invalid IL or missing references) //IL_0ae0: Unknown result type (might be due to invalid IL or missing references) //IL_0ae2: Unknown result type (might be due to invalid IL or missing references) //IL_0aeb: Unknown result type (might be due to invalid IL or missing references) //IL_0af4: 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_0b42: Unknown result type (might be due to invalid IL or missing references) //IL_0b47: Unknown result type (might be due to invalid IL or missing references) //IL_0b5d: Unknown result type (might be due to invalid IL or missing references) //IL_0b62: Unknown result type (might be due to invalid IL or missing references) //IL_0b6a: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b71: Unknown result type (might be due to invalid IL or missing references) //IL_0b7b: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b82: Unknown result type (might be due to invalid IL or missing references) //IL_0bad: Unknown result type (might be due to invalid IL or missing references) //IL_0bc1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd5: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0c08: 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_0c30: Unknown result type (might be due to invalid IL or missing references) //IL_0c35: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c77: Unknown result type (might be due to invalid IL or missing references) //IL_0c8b: Unknown result type (might be due to invalid IL or missing references) //IL_0c90: Unknown result type (might be due to invalid IL or missing references) //IL_0cbe: Unknown result type (might be due to invalid IL or missing references) //IL_0cd2: Unknown result type (might be due to invalid IL or missing references) //IL_0ce6: Unknown result type (might be due to invalid IL or missing references) //IL_0ceb: Unknown result type (might be due to invalid IL or missing references) //IL_0d19: Unknown result type (might be due to invalid IL or missing references) //IL_0d2d: Unknown result type (might be due to invalid IL or missing references) //IL_0d41: Unknown result type (might be due to invalid IL or missing references) //IL_0d46: Unknown result type (might be due to invalid IL or missing references) //IL_0d74: Unknown result type (might be due to invalid IL or missing references) //IL_0d88: Unknown result type (might be due to invalid IL or missing references) //IL_0d9c: Unknown result type (might be due to invalid IL or missing references) //IL_0da1: 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_0e2a: Unknown result type (might be due to invalid IL or missing references) //IL_0e3e: Unknown result type (might be due to invalid IL or missing references) //IL_0e52: Unknown result type (might be due to invalid IL or missing references) //IL_0e57: Unknown result type (might be due to invalid IL or missing references) //IL_0e85: Unknown result type (might be due to invalid IL or missing references) //IL_0e99: Unknown result type (might be due to invalid IL or missing references) //IL_0ead: Unknown result type (might be due to invalid IL or missing references) //IL_0eb2: 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_0f08: Unknown result type (might be due to invalid IL or missing references) //IL_0f0d: Unknown result type (might be due to invalid IL or missing references) //IL_0f3b: Unknown result type (might be due to invalid IL or missing references) //IL_0f4f: Unknown result type (might be due to invalid IL or missing references) //IL_0f63: Unknown result type (might be due to invalid IL or missing references) //IL_0f68: Unknown result type (might be due to invalid IL or missing references) //IL_0f96: Unknown result type (might be due to invalid IL or missing references) //IL_0faa: Unknown result type (might be due to invalid IL or missing references) //IL_0fbe: 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_0ff1: Unknown result type (might be due to invalid IL or missing references) //IL_1005: Unknown result type (might be due to invalid IL or missing references) //IL_1019: Unknown result type (might be due to invalid IL or missing references) //IL_101e: Unknown result type (might be due to invalid IL or missing references) //IL_104c: Unknown result type (might be due to invalid IL or missing references) //IL_1060: Unknown result type (might be due to invalid IL or missing references) //IL_1074: Unknown result type (might be due to invalid IL or missing references) //IL_1079: Unknown result type (might be due to invalid IL or missing references) //IL_10a7: Unknown result type (might be due to invalid IL or missing references) //IL_10bb: Unknown result type (might be due to invalid IL or missing references) //IL_10cf: Unknown result type (might be due to invalid IL or missing references) //IL_10d4: Unknown result type (might be due to invalid IL or missing references) //IL_1102: Unknown result type (might be due to invalid IL or missing references) //IL_1116: Unknown result type (might be due to invalid IL or missing references) //IL_112a: Unknown result type (might be due to invalid IL or missing references) //IL_112f: Unknown result type (might be due to invalid IL or missing references) //IL_115d: Unknown result type (might be due to invalid IL or missing references) //IL_1171: Unknown result type (might be due to invalid IL or missing references) //IL_1185: Unknown result type (might be due to invalid IL or missing references) //IL_118a: Unknown result type (might be due to invalid IL or missing references) //IL_11b8: Unknown result type (might be due to invalid IL or missing references) //IL_11cc: Unknown result type (might be due to invalid IL or missing references) //IL_11e0: Unknown result type (might be due to invalid IL or missing references) //IL_11e5: Unknown result type (might be due to invalid IL or missing references) //IL_1213: Unknown result type (might be due to invalid IL or missing references) //IL_1227: Unknown result type (might be due to invalid IL or missing references) //IL_123b: Unknown result type (might be due to invalid IL or missing references) //IL_1240: Unknown result type (might be due to invalid IL or missing references) //IL_126e: Unknown result type (might be due to invalid IL or missing references) //IL_1282: Unknown result type (might be due to invalid IL or missing references) //IL_1296: Unknown result type (might be due to invalid IL or missing references) //IL_129b: Unknown result type (might be due to invalid IL or missing references) //IL_12c9: Unknown result type (might be due to invalid IL or missing references) //IL_12dd: Unknown result type (might be due to invalid IL or missing references) //IL_12f1: Unknown result type (might be due to invalid IL or missing references) //IL_12f6: Unknown result type (might be due to invalid IL or missing references) //IL_131f: Unknown result type (might be due to invalid IL or missing references) //IL_1333: Unknown result type (might be due to invalid IL or missing references) //IL_1347: Unknown result type (might be due to invalid IL or missing references) //IL_134c: Unknown result type (might be due to invalid IL or missing references) //IL_137a: Unknown result type (might be due to invalid IL or missing references) //IL_138e: Unknown result type (might be due to invalid IL or missing references) //IL_13a2: Unknown result type (might be due to invalid IL or missing references) //IL_13a7: Unknown result type (might be due to invalid IL or missing references) //IL_13d5: 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_13fd: Unknown result type (might be due to invalid IL or missing references) //IL_1402: Unknown result type (might be due to invalid IL or missing references) //IL_1430: Unknown result type (might be due to invalid IL or missing references) //IL_1444: Unknown result type (might be due to invalid IL or missing references) //IL_1458: Unknown result type (might be due to invalid IL or missing references) //IL_145d: Unknown result type (might be due to invalid IL or missing references) //IL_148b: Unknown result type (might be due to invalid IL or missing references) //IL_149f: Unknown result type (might be due to invalid IL or missing references) //IL_14b3: Unknown result type (might be due to invalid IL or missing references) //IL_14b8: Unknown result type (might be due to invalid IL or missing references) //IL_14e6: Unknown result type (might be due to invalid IL or missing references) //IL_14fa: Unknown result type (might be due to invalid IL or missing references) //IL_150e: Unknown result type (might be due to invalid IL or missing references) //IL_1513: Unknown result type (might be due to invalid IL or missing references) //IL_1541: Unknown result type (might be due to invalid IL or missing references) //IL_1555: Unknown result type (might be due to invalid IL or missing references) //IL_1569: Unknown result type (might be due to invalid IL or missing references) //IL_156e: Unknown result type (might be due to invalid IL or missing references) //IL_159c: Unknown result type (might be due to invalid IL or missing references) //IL_15b0: 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_15f7: Unknown result type (might be due to invalid IL or missing references) //IL_160b: Unknown result type (might be due to invalid IL or missing references) //IL_161f: Unknown result type (might be due to invalid IL or missing references) //IL_1624: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Unknown result type (might be due to invalid IL or missing references) //IL_1666: Unknown result type (might be due to invalid IL or missing references) //IL_167a: Unknown result type (might be due to invalid IL or missing references) //IL_167f: Unknown result type (might be due to invalid IL or missing references) //IL_16ad: Unknown result type (might be due to invalid IL or missing references) //IL_16c1: Unknown result type (might be due to invalid IL or missing references) //IL_16d5: Unknown result type (might be due to invalid IL or missing references) //IL_16da: Unknown result type (might be due to invalid IL or missing references) //IL_1708: Unknown result type (might be due to invalid IL or missing references) //IL_171c: Unknown result type (might be due to invalid IL or missing references) //IL_1730: Unknown result type (might be due to invalid IL or missing references) //IL_1735: Unknown result type (might be due to invalid IL or missing references) //IL_1763: Unknown result type (might be due to invalid IL or missing references) //IL_1777: Unknown result type (might be due to invalid IL or missing references) //IL_178b: Unknown result type (might be due to invalid IL or missing references) //IL_1790: Unknown result type (might be due to invalid IL or missing references) //IL_17be: Unknown result type (might be due to invalid IL or missing references) //IL_17d2: Unknown result type (might be due to invalid IL or missing references) //IL_17e6: Unknown result type (might be due to invalid IL or missing references) //IL_17eb: Unknown result type (might be due to invalid IL or missing references) //IL_1819: Unknown result type (might be due to invalid IL or missing references) //IL_182d: Unknown result type (might be due to invalid IL or missing references) //IL_1841: Unknown result type (might be due to invalid IL or missing references) //IL_1846: Unknown result type (might be due to invalid IL or missing references) //IL_1874: Unknown result type (might be due to invalid IL or missing references) //IL_1888: Unknown result type (might be due to invalid IL or missing references) //IL_189c: Unknown result type (might be due to invalid IL or missing references) //IL_18a1: Unknown result type (might be due to invalid IL or missing references) //IL_18cf: Unknown result type (might be due to invalid IL or missing references) //IL_18e3: Unknown result type (might be due to invalid IL or missing references) //IL_18f7: Unknown result type (might be due to invalid IL or missing references) //IL_18fc: Unknown result type (might be due to invalid IL or missing references) //IL_192a: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_1952: Unknown result type (might be due to invalid IL or missing references) //IL_1957: Unknown result type (might be due to invalid IL or missing references) //IL_1985: Unknown result type (might be due to invalid IL or missing references) //IL_1999: Unknown result type (might be due to invalid IL or missing references) //IL_19ad: Unknown result type (might be due to invalid IL or missing references) //IL_19b2: Unknown result type (might be due to invalid IL or missing references) //IL_19e0: Unknown result type (might be due to invalid IL or missing references) //IL_19f4: Unknown result type (might be due to invalid IL or missing references) //IL_1a08: Unknown result type (might be due to invalid IL or missing references) //IL_1a0d: Unknown result type (might be due to invalid IL or missing references) //IL_1a3b: Unknown result type (might be due to invalid IL or missing references) //IL_1a4f: Unknown result type (might be due to invalid IL or missing references) //IL_1a63: Unknown result type (might be due to invalid IL or missing references) //IL_1a68: Unknown result type (might be due to invalid IL or missing references) //IL_1a96: Unknown result type (might be due to invalid IL or missing references) //IL_1aaa: Unknown result type (might be due to invalid IL or missing references) //IL_1abe: Unknown result type (might be due to invalid IL or missing references) //IL_1ac3: 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_1b05: Unknown result type (might be due to invalid IL or missing references) //IL_1b19: Unknown result type (might be due to invalid IL or missing references) //IL_1b1e: Unknown result type (might be due to invalid IL or missing references) //IL_1b4c: Unknown result type (might be due to invalid IL or missing references) //IL_1b60: Unknown result type (might be due to invalid IL or missing references) //IL_1b74: Unknown result type (might be due to invalid IL or missing references) //IL_1b79: Unknown result type (might be due to invalid IL or missing references) //IL_1ba7: Unknown result type (might be due to invalid IL or missing references) //IL_1bbb: Unknown result type (might be due to invalid IL or missing references) //IL_1bcf: Unknown result type (might be due to invalid IL or missing references) //IL_1bd4: Unknown result type (might be due to invalid IL or missing references) //IL_1c02: Unknown result type (might be due to invalid IL or missing references) //IL_1c16: Unknown result type (might be due to invalid IL or missing references) //IL_1c2a: Unknown result type (might be due to invalid IL or missing references) //IL_1c2f: Unknown result type (might be due to invalid IL or missing references) //IL_1c5d: Unknown result type (might be due to invalid IL or missing references) //IL_1c71: Unknown result type (might be due to invalid IL or missing references) //IL_1c85: Unknown result type (might be due to invalid IL or missing references) //IL_1c8a: Unknown result type (might be due to invalid IL or missing references) //IL_1cb8: Unknown result type (might be due to invalid IL or missing references) //IL_1ccc: Unknown result type (might be due to invalid IL or missing references) //IL_1ce0: Unknown result type (might be due to invalid IL or missing references) //IL_1ce5: Unknown result type (might be due to invalid IL or missing references) //IL_1d13: Unknown result type (might be due to invalid IL or missing references) //IL_1d27: Unknown result type (might be due to invalid IL or missing references) //IL_1d3b: Unknown result type (might be due to invalid IL or missing references) //IL_1d40: Unknown result type (might be due to invalid IL or missing references) //IL_1d6e: Unknown result type (might be due to invalid IL or missing references) //IL_1d82: Unknown result type (might be due to invalid IL or missing references) //IL_1d96: Unknown result type (might be due to invalid IL or missing references) //IL_1d9b: 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_1ddd: Unknown result type (might be due to invalid IL or missing references) //IL_1df1: Unknown result type (might be due to invalid IL or missing references) //IL_1df6: Unknown result type (might be due to invalid IL or missing references) //IL_1e24: Unknown result type (might be due to invalid IL or missing references) //IL_1e38: Unknown result type (might be due to invalid IL or missing references) //IL_1e4c: Unknown result type (might be due to invalid IL or missing references) //IL_1e51: Unknown result type (might be due to invalid IL or missing references) //IL_1e7f: Unknown result type (might be due to invalid IL or missing references) //IL_1e93: Unknown result type (might be due to invalid IL or missing references) //IL_1ea7: Unknown result type (might be due to invalid IL or missing references) //IL_1eac: Unknown result type (might be due to invalid IL or missing references) //IL_1eda: Unknown result type (might be due to invalid IL or missing references) //IL_1eee: Unknown result type (might be due to invalid IL or missing references) //IL_1f02: Unknown result type (might be due to invalid IL or missing references) //IL_1f07: Unknown result type (might be due to invalid IL or missing references) //IL_1f35: Unknown result type (might be due to invalid IL or missing references) //IL_1f49: Unknown result type (might be due to invalid IL or missing references) //IL_1f5d: Unknown result type (might be due to invalid IL or missing references) //IL_1f62: Unknown result type (might be due to invalid IL or missing references) //IL_1f90: Unknown result type (might be due to invalid IL or missing references) //IL_1fa4: Unknown result type (might be due to invalid IL or missing references) //IL_1fb8: Unknown result type (might be due to invalid IL or missing references) //IL_1fbd: Unknown result type (might be due to invalid IL or missing references) //IL_1feb: Unknown result type (might be due to invalid IL or missing references) //IL_1fff: Unknown result type (might be due to invalid IL or missing references) //IL_2013: Unknown result type (might be due to invalid IL or missing references) //IL_2018: 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_20a1: Unknown result type (might be due to invalid IL or missing references) //IL_20b5: Unknown result type (might be due to invalid IL or missing references) //IL_20c9: Unknown result type (might be due to invalid IL or missing references) //IL_20ce: Unknown result type (might be due to invalid IL or missing references) //IL_20fc: Unknown result type (might be due to invalid IL or missing references) //IL_2110: Unknown result type (might be due to invalid IL or missing references) //IL_2124: Unknown result type (might be due to invalid IL or missing references) //IL_2129: Unknown result type (might be due to invalid IL or missing references) //IL_2157: Unknown result type (might be due to invalid IL or missing references) //IL_216b: Unknown result type (might be due to invalid IL or missing references) //IL_217f: Unknown result type (might be due to invalid IL or missing references) //IL_2184: Unknown result type (might be due to invalid IL or missing references) //IL_21b2: Unknown result type (might be due to invalid IL or missing references) //IL_21c6: Unknown result type (might be due to invalid IL or missing references) //IL_21da: Unknown result type (might be due to invalid IL or missing references) //IL_21df: Unknown result type (might be due to invalid IL or missing references) //IL_220d: Unknown result type (might be due to invalid IL or missing references) //IL_2221: Unknown result type (might be due to invalid IL or missing references) //IL_2235: 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_2263: Unknown result type (might be due to invalid IL or missing references) //IL_2277: Unknown result type (might be due to invalid IL or missing references) //IL_228b: Unknown result type (might be due to invalid IL or missing references) //IL_2290: Unknown result type (might be due to invalid IL or missing references) //IL_22be: Unknown result type (might be due to invalid IL or missing references) //IL_22d2: Unknown result type (might be due to invalid IL or missing references) //IL_22e6: Unknown result type (might be due to invalid IL or missing references) //IL_22eb: Unknown result type (might be due to invalid IL or missing references) //IL_2319: Unknown result type (might be due to invalid IL or missing references) //IL_232d: Unknown result type (might be due to invalid IL or missing references) //IL_2341: Unknown result type (might be due to invalid IL or missing references) //IL_2346: Unknown result type (might be due to invalid IL or missing references) //IL_2374: Unknown result type (might be due to invalid IL or missing references) //IL_2388: Unknown result type (might be due to invalid IL or missing references) //IL_239c: Unknown result type (might be due to invalid IL or missing references) //IL_23a1: Unknown result type (might be due to invalid IL or missing references) //IL_23cf: Unknown result type (might be due to invalid IL or missing references) //IL_23e3: Unknown result type (might be due to invalid IL or missing references) //IL_23f7: Unknown result type (might be due to invalid IL or missing references) //IL_23fc: Unknown result type (might be due to invalid IL or missing references) //IL_242a: Unknown result type (might be due to invalid IL or missing references) //IL_243e: Unknown result type (might be due to invalid IL or missing references) //IL_2452: Unknown result type (might be due to invalid IL or missing references) //IL_2457: Unknown result type (might be due to invalid IL or missing references) //IL_2485: Unknown result type (might be due to invalid IL or missing references) //IL_2499: Unknown result type (might be due to invalid IL or missing references) //IL_24ad: Unknown result type (might be due to invalid IL or missing references) //IL_24b2: Unknown result type (might be due to invalid IL or missing references) //IL_24e0: Unknown result type (might be due to invalid IL or missing references) //IL_24f4: Unknown result type (might be due to invalid IL or missing references) //IL_2508: Unknown result type (might be due to invalid IL or missing references) //IL_250d: Unknown result type (might be due to invalid IL or missing references) //IL_2536: Unknown result type (might be due to invalid IL or missing references) //IL_254a: Unknown result type (might be due to invalid IL or missing references) //IL_255e: Unknown result type (might be due to invalid IL or missing references) //IL_2563: Unknown result type (might be due to invalid IL or missing references) //IL_2591: Unknown result type (might be due to invalid IL or missing references) //IL_25a5: Unknown result type (might be due to invalid IL or missing references) //IL_25b9: Unknown result type (might be due to invalid IL or missing references) //IL_25be: Unknown result type (might be due to invalid IL or missing references) //IL_25ec: Unknown result type (might be due to invalid IL or missing references) //IL_2600: Unknown result type (might be due to invalid IL or missing references) //IL_2614: Unknown result type (might be due to invalid IL or missing references) //IL_2619: Unknown result type (might be due to invalid IL or missing references) //IL_2647: Unknown result type (might be due to invalid IL or missing references) //IL_265b: Unknown result type (might be due to invalid IL or missing references) //IL_266f: Unknown result type (might be due to invalid IL or missing references) //IL_2674: Unknown result type (might be due to invalid IL or missing references) //IL_269d: Unknown result type (might be due to invalid IL or missing references) //IL_26b1: Unknown result type (might be due to invalid IL or missing references) //IL_26c5: Unknown result type (might be due to invalid IL or missing references) //IL_26ca: Unknown result type (might be due to invalid IL or missing references) //IL_26f8: Unknown result type (might be due to invalid IL or missing references) //IL_270c: Unknown result type (might be due to invalid IL or missing references) //IL_2720: Unknown result type (might be due to invalid IL or missing references) //IL_2725: Unknown result type (might be due to invalid IL or missing references) //IL_2753: Unknown result type (might be due to invalid IL or missing references) //IL_2767: Unknown result type (might be due to invalid IL or missing references) //IL_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_27ae: Unknown result type (might be due to invalid IL or missing references) //IL_27c2: Unknown result type (might be due to invalid IL or missing references) //IL_27d6: Unknown result type (might be due to invalid IL or missing references) //IL_27db: Unknown result type (might be due to invalid IL or missing references) //IL_2809: Unknown result type (might be due to invalid IL or missing references) //IL_281d: Unknown result type (might be due to invalid IL or missing references) //IL_2831: Unknown result type (might be due to invalid IL or missing references) //IL_2836: Unknown result type (might be due to invalid IL or missing references) //IL_285f: Unknown result type (might be due to invalid IL or missing references) //IL_2873: Unknown result type (might be due to invalid IL or missing references) //IL_2887: Unknown result type (might be due to invalid IL or missing references) //IL_288c: Unknown result type (might be due to invalid IL or missing references) //IL_28ba: Unknown result type (might be due to invalid IL or missing references) //IL_28ce: Unknown result type (might be due to invalid IL or missing references) //IL_28e2: Unknown result type (might be due to invalid IL or missing references) //IL_28e7: Unknown result type (might be due to invalid IL or missing references) //IL_2915: Unknown result type (might be due to invalid IL or missing references) //IL_2929: Unknown result type (might be due to invalid IL or missing references) //IL_293d: 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_2970: Unknown result type (might be due to invalid IL or missing references) //IL_2984: Unknown result type (might be due to invalid IL or missing references) //IL_2998: Unknown result type (might be due to invalid IL or missing references) //IL_299d: Unknown result type (might be due to invalid IL or missing references) //IL_29cb: Unknown result type (might be due to invalid IL or missing references) //IL_29df: Unknown result type (might be due to invalid IL or missing references) //IL_29f3: Unknown result type (might be due to invalid IL or missing references) //IL_29f8: Unknown result type (might be due to invalid IL or missing references) //IL_2a0a: Unknown result type (might be due to invalid IL or missing references) //IL_2a20: 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_2a3b: Unknown result type (might be due to invalid IL or missing references) //IL_2a5f: Unknown result type (might be due to invalid IL or missing references) //IL_2a64: Unknown result type (might be due to invalid IL or missing references) //IL_2a6b: Unknown result type (might be due to invalid IL or missing references) //IL_2a70: Unknown result type (might be due to invalid IL or missing references) //IL_2a77: Unknown result type (might be due to invalid IL or missing references) //IL_2a7c: Unknown result type (might be due to invalid IL or missing references) //IL_2a84: 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_2a8b: Unknown result type (might be due to invalid IL or missing references) //IL_2a95: Unknown result type (might be due to invalid IL or missing references) //IL_2a97: Unknown result type (might be due to invalid IL or missing references) //IL_2a9c: Unknown result type (might be due to invalid IL or missing references) //IL_2ac7: Unknown result type (might be due to invalid IL or missing references) //IL_2adb: Unknown result type (might be due to invalid IL or missing references) //IL_2aef: Unknown result type (might be due to invalid IL or missing references) //IL_2af4: Unknown result type (might be due to invalid IL or missing references) //IL_2b22: Unknown result type (might be due to invalid IL or missing references) //IL_2b36: Unknown result type (might be due to invalid IL or missing references) //IL_2b4a: Unknown result type (might be due to invalid IL or missing references) //IL_2b4f: Unknown result type (might be due to invalid IL or missing references) //IL_2b7d: Unknown result type (might be due to invalid IL or missing references) //IL_2b91: Unknown result type (might be due to invalid IL or missing references) //IL_2ba5: Unknown result type (might be due to invalid IL or missing references) //IL_2baa: Unknown result type (might be due to invalid IL or missing references) //IL_2bd8: Unknown result type (might be due to invalid IL or missing references) //IL_2bec: Unknown result type (might be due to invalid IL or missing references) //IL_2c00: Unknown result type (might be due to invalid IL or missing references) //IL_2c05: Unknown result type (might be due to invalid IL or missing references) //IL_2c33: Unknown result type (might be due to invalid IL or missing references) //IL_2c47: Unknown result type (might be due to invalid IL or missing references) //IL_2c5b: Unknown result type (might be due to invalid IL or missing references) //IL_2c60: Unknown result type (might be due to invalid IL or missing references) //IL_2c8e: Unknown result type (might be due to invalid IL or missing references) //IL_2ca2: Unknown result type (might be due to invalid IL or missing references) //IL_2cb6: Unknown result type (might be due to invalid IL or missing references) //IL_2cbb: Unknown result type (might be due to invalid IL or missing references) //IL_2ce9: Unknown result type (might be due to invalid IL or missing references) //IL_2cfd: Unknown result type (might be due to invalid IL or missing references) //IL_2d11: Unknown result type (might be due to invalid IL or missing references) //IL_2d16: Unknown result type (might be due to invalid IL or missing references) //IL_2d44: Unknown result type (might be due to invalid IL or missing references) //IL_2d58: Unknown result type (might be due to invalid IL or missing references) //IL_2d6c: Unknown result type (might be due to invalid IL or missing references) //IL_2d71: Unknown result type (might be due to invalid IL or missing references) //IL_2d9f: Unknown result type (might be due to invalid IL or missing references) //IL_2db3: Unknown result type (might be due to invalid IL or missing references) //IL_2dc7: Unknown result type (might be due to invalid IL or missing references) //IL_2dcc: Unknown result type (might be due to invalid IL or missing references) //IL_2dfa: Unknown result type (might be due to invalid IL or missing references) //IL_2e0e: Unknown result type (might be due to invalid IL or missing references) //IL_2e22: Unknown result type (might be due to invalid IL or missing references) //IL_2e27: Unknown result type (might be due to invalid IL or missing references) //IL_2e55: Unknown result type (might be due to invalid IL or missing references) //IL_2e69: Unknown result type (might be due to invalid IL or missing references) //IL_2e7d: Unknown result type (might be due to invalid IL or missing references) //IL_2e82: Unknown result type (might be due to invalid IL or missing references) //IL_2eb0: Unknown result type (might be due to invalid IL or missing references) //IL_2ec4: Unknown result type (might be due to invalid IL or missing references) //IL_2ed8: Unknown result type (might be due to invalid IL or missing references) //IL_2edd: Unknown result type (might be due to invalid IL or missing references) //IL_2f0b: Unknown result type (might be due to invalid IL or missing references) //IL_2f1f: Unknown result type (might be due to invalid IL or missing references) //IL_2f33: Unknown result type (might be due to invalid IL or missing references) //IL_2f38: Unknown result type (might be due to invalid IL or missing references) //IL_2f66: Unknown result type (might be due to invalid IL or missing references) //IL_2f7a: Unknown result type (might be due to invalid IL or missing references) //IL_2f8e: Unknown result type (might be due to invalid IL or missing references) //IL_2f93: Unknown result type (might be due to invalid IL or missing references) //IL_2fc1: Unknown result type (might be due to invalid IL or missing references) //IL_2fd5: Unknown result type (might be due to invalid IL or missing references) //IL_2fe9: Unknown result type (might be due to invalid IL or missing references) //IL_2fee: Unknown result type (might be due to invalid IL or missing references) //IL_301c: Unknown result type (might be due to invalid IL or missing references) //IL_3030: Unknown result type (might be due to invalid IL or missing references) //IL_3044: Unknown result type (might be due to invalid IL or missing references) //IL_3049: Unknown result type (might be due to invalid IL or missing references) //IL_305b: Unknown result type (might be due to invalid IL or missing references) //IL_3071: Unknown result type (might be due to invalid IL or missing references) //IL_3083: Unknown result type (might be due to invalid IL or missing references) //IL_308c: 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_30da: Unknown result type (might be due to invalid IL or missing references) //IL_30df: Unknown result type (might be due to invalid IL or missing references) //IL_30f5: Unknown result type (might be due to invalid IL or missing references) //IL_30fa: Unknown result type (might be due to invalid IL or missing references) //IL_3102: Unknown result type (might be due to invalid IL or missing references) //IL_3107: Unknown result type (might be due to invalid IL or missing references) //IL_3109: Unknown result type (might be due to invalid IL or missing references) //IL_3113: Unknown result type (might be due to invalid IL or missing references) //IL_3115: Unknown result type (might be due to invalid IL or missing references) //IL_311a: Unknown result type (might be due to invalid IL or missing references) //IL_3145: Unknown result type (might be due to invalid IL or missing references) //IL_3159: Unknown result type (might be due to invalid IL or missing references) //IL_316d: Unknown result type (might be due to invalid IL or missing references) //IL_3172: Unknown result type (might be due to invalid IL or missing references) //IL_31a0: Unknown result type (might be due to invalid IL or missing references) //IL_31b4: Unknown result type (might be due to invalid IL or missing references) //IL_31c8: Unknown result type (might be due to invalid IL or missing references) //IL_31cd: Unknown result type (might be due to invalid IL or missing references) //IL_31fb: Unknown result type (might be due to invalid IL or missing references) //IL_320f: Unknown result type (might be due to invalid IL or missing references) //IL_3223: Unknown result type (might be due to invalid IL or missing references) //IL_3228: Unknown result type (might be due to invalid IL or missing references) //IL_3256: Unknown result type (might be due to invalid IL or missing references) //IL_326a: Unknown result type (might be due to invalid IL or missing references) //IL_327e: Unknown result type (might be due to invalid IL or missing references) //IL_3283: Unknown result type (might be due to invalid IL or missing references) //IL_32b1: Unknown result type (might be due to invalid IL or missing references) //IL_32c5: Unknown result type (might be due to invalid IL or missing references) //IL_32d9: Unknown result type (might be due to invalid IL or missing references) //IL_32de: Unknown result type (might be due to invalid IL or missing references) //IL_330c: Unknown result type (might be due to invalid IL or missing references) //IL_3320: Unknown result type (might be due to invalid IL or missing references) //IL_3334: Unknown result type (might be due to invalid IL or missing references) //IL_3339: Unknown result type (might be due to invalid IL or missing references) //IL_3367: Unknown result type (might be due to invalid IL or missing references) //IL_337b: Unknown result type (might be due to invalid IL or missing references) //IL_338f: Unknown result type (might be due to invalid IL or missing references) //IL_3394: Unknown result type (might be due to invalid IL or missing references) //IL_33c2: Unknown result type (might be due to invalid IL or missing references) //IL_33d6: Unknown result type (might be due to invalid IL or missing references) //IL_33ea: Unknown result type (might be due to invalid IL or missing references) //IL_33ef: Unknown result type (might be due to invalid IL or missing references) //IL_341d: Unknown result type (might be due to invalid IL or missing references) //IL_3431: Unknown result type (might be due to invalid IL or missing references) //IL_3445: Unknown result type (might be due to invalid IL or missing references) //IL_344a: Unknown result type (might be due to invalid IL or missing references) //IL_3478: Unknown result type (might be due to invalid IL or missing references) //IL_348c: Unknown result type (might be due to invalid IL or missing references) //IL_34a0: Unknown result type (might be due to invalid IL or missing references) //IL_34a5: Unknown result type (might be due to invalid IL or missing references) //IL_34d3: Unknown result type (might be due to invalid IL or missing references) //IL_34e7: Unknown result type (might be due to invalid IL or missing references) //IL_34fb: Unknown result type (might be due to invalid IL or missing references) //IL_3500: Unknown result type (might be due to invalid IL or missing references) //IL_352e: Unknown result type (might be due to invalid IL or missing references) //IL_3542: Unknown result type (might be due to invalid IL or missing references) //IL_3556: Unknown result type (might be due to invalid IL or missing references) //IL_355b: Unknown result type (might be due to invalid IL or missing references) //IL_3589: Unknown result type (might be due to invalid IL or missing references) //IL_359d: Unknown result type (might be due to invalid IL or missing references) //IL_35b1: Unknown result type (might be due to invalid IL or missing references) //IL_35b6: Unknown result type (might be due to invalid IL or missing references) //IL_35e4: Unknown result type (might be due to invalid IL or missing references) //IL_35f8: Unknown result type (might be due to invalid IL or missing references) //IL_360c: Unknown result type (might be due to invalid IL or missing references) //IL_3611: Unknown result type (might be due to invalid IL or missing references) //IL_363f: Unknown result type (might be due to invalid IL or missing references) //IL_3653: Unknown result type (might be due to invalid IL or missing references) //IL_3667: Unknown result type (might be due to invalid IL or missing references) //IL_366c: Unknown result type (might be due to invalid IL or missing references) //IL_369a: Unknown result type (might be due to invalid IL or missing references) //IL_36ae: Unknown result type (might be due to invalid IL or missing references) //IL_36c2: Unknown result type (might be due to invalid IL or missing references) //IL_36c7: Unknown result type (might be due to invalid IL or missing references) //IL_36f5: Unknown result type (might be due to invalid IL or missing references) //IL_3709: Unknown result type (might be due to invalid IL or missing references) //IL_371d: Unknown result type (might be due to invalid IL or missing references) //IL_3722: Unknown result type (might be due to invalid IL or missing references) //IL_3750: Unknown result type (might be due to invalid IL or missing references) //IL_3764: Unknown result type (might be due to invalid IL or missing references) //IL_3778: Unknown result type (might be due to invalid IL or missing references) //IL_377d: 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_37bf: Unknown result type (might be due to invalid IL or missing references) //IL_37d3: Unknown result type (might be due to invalid IL or missing references) //IL_37d8: Unknown result type (might be due to invalid IL or missing references) //IL_3806: Unknown result type (might be due to invalid IL or missing references) //IL_381a: Unknown result type (might be due to invalid IL or missing references) //IL_382e: Unknown result type (might be due to invalid IL or missing references) //IL_3833: Unknown result type (might be due to invalid IL or missing references) //IL_3861: Unknown result type (might be due to invalid IL or missing references) //IL_3875: Unknown result type (might be due to invalid IL or missing references) //IL_3889: Unknown result type (might be due to invalid IL or missing references) //IL_388e: Unknown result type (might be due to invalid IL or missing references) //IL_38bc: Unknown result type (might be due to invalid IL or missing references) //IL_38d0: Unknown result type (might be due to invalid IL or missing references) //IL_38e4: Unknown result type (might be due to invalid IL or missing references) //IL_38e9: Unknown result type (might be due to invalid IL or missing references) //IL_3917: Unknown result type (might be due to invalid IL or missing references) //IL_392b: Unknown result type (might be due to invalid IL or missing references) //IL_393f: Unknown result type (might be due to invalid IL or missing references) //IL_3944: Unknown result type (might be due to invalid IL or missing references) //IL_3972: Unknown result type (might be due to invalid IL or missing references) //IL_3986: Unknown result type (might be due to invalid IL or missing references) //IL_399a: Unknown result type (might be due to invalid IL or missing references) //IL_399f: Unknown result type (might be due to invalid IL or missing references) //IL_39cd: Unknown result type (might be due to invalid IL or missing references) //IL_39e1: Unknown result type (might be due to invalid IL or missing references) //IL_39f5: Unknown result type (might be due to invalid IL or missing references) //IL_39fa: Unknown result type (might be due to invalid IL or missing references) //IL_3a23: Unknown result type (might be due to invalid IL or missing references) //IL_3a37: Unknown result type (might be due to invalid IL or missing references) //IL_3a4b: Unknown result type (might be due to invalid IL or missing references) //IL_3a50: Unknown result type (might be due to invalid IL or missing references) //IL_3a7e: Unknown result type (might be due to invalid IL or missing references) //IL_3a92: Unknown result type (might be due to invalid IL or missing references) //IL_3aa6: Unknown result type (might be due to invalid IL or missing references) //IL_3aab: Unknown result type (might be due to invalid IL or missing references) //IL_3ad9: Unknown result type (might be due to invalid IL or missing references) //IL_3aed: Unknown result type (might be due to invalid IL or missing references) //IL_3b01: Unknown result type (might be due to invalid IL or missing references) //IL_3b06: 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_3b8f: Unknown result type (might be due to invalid IL or missing references) //IL_3ba3: Unknown result type (might be due to invalid IL or missing references) //IL_3bb7: Unknown result type (might be due to invalid IL or missing references) //IL_3bbc: Unknown result type (might be due to invalid IL or missing references) //IL_3bea: Unknown result type (might be due to invalid IL or missing references) //IL_3bfe: Unknown result type (might be due to invalid IL or missing references) //IL_3c12: Unknown result type (might be due to invalid IL or missing references) //IL_3c17: Unknown result type (might be due to invalid IL or missing references) //IL_3da1: Unknown result type (might be due to invalid IL or missing references) //IL_3db7: Unknown result type (might be due to invalid IL or missing references) //IL_3dc9: Unknown result type (might be due to invalid IL or missing references) //IL_3dd2: Unknown result type (might be due to invalid IL or missing references) //IL_3e05: Unknown result type (might be due to invalid IL or missing references) //IL_3e0a: Unknown result type (might be due to invalid IL or missing references) //IL_3e20: Unknown result type (might be due to invalid IL or missing references) //IL_3e25: Unknown result type (might be due to invalid IL or missing references) //IL_3e3b: Unknown result type (might be due to invalid IL or missing references) //IL_3e40: Unknown result type (might be due to invalid IL or missing references) //IL_3e48: Unknown result type (might be due to invalid IL or missing references) //IL_3e4d: 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_3e58: Unknown result type (might be due to invalid IL or missing references) //IL_3e61: Unknown result type (might be due to invalid IL or missing references) //IL_3e94: Unknown result type (might be due to invalid IL or missing references) //IL_3e99: Unknown result type (might be due to invalid IL or missing references) //IL_3eaf: Unknown result type (might be due to invalid IL or missing references) //IL_3eb4: Unknown result type (might be due to invalid IL or missing references) //IL_3eca: Unknown result type (might be due to invalid IL or missing references) //IL_3ecf: Unknown result type (might be due to invalid IL or missing references) //IL_3ed7: Unknown result type (might be due to invalid IL or missing references) //IL_3edc: Unknown result type (might be due to invalid IL or missing references) //IL_3ede: Unknown result type (might be due to invalid IL or missing references) //IL_3ee8: Unknown result type (might be due to invalid IL or missing references) //IL_3eea: Unknown result type (might be due to invalid IL or missing references) //IL_3eef: Unknown result type (might be due to invalid IL or missing references) //IL_3c3d: Unknown result type (might be due to invalid IL or missing references) //IL_3c53: Unknown result type (might be due to invalid IL or missing references) //IL_3c65: Unknown result type (might be due to invalid IL or missing references) //IL_3c6e: Unknown result type (might be due to invalid IL or missing references) //IL_3ca1: Unknown result type (might be due to invalid IL or missing references) //IL_3ca6: Unknown result type (might be due to invalid IL or missing references) //IL_3cbc: Unknown result type (might be due to invalid IL or missing references) //IL_3cc1: Unknown result type (might be due to invalid IL or missing references) //IL_3cd7: Unknown result type (might be due to invalid IL or missing references) //IL_3cdc: Unknown result type (might be due to invalid IL or missing references) //IL_3ce4: Unknown result type (might be due to invalid IL or missing references) //IL_3ce9: Unknown result type (might be due to invalid IL or missing references) //IL_3ceb: Unknown result type (might be due to invalid IL or missing references) //IL_3cf4: Unknown result type (might be due to invalid IL or missing references) //IL_3cfd: Unknown result type (might be due to invalid IL or missing references) //IL_3d30: Unknown result type (might be due to invalid IL or missing references) //IL_3d35: Unknown result type (might be due to invalid IL or missing references) //IL_3d4b: Unknown result type (might be due to invalid IL or missing references) //IL_3d50: Unknown result type (might be due to invalid IL or missing references) //IL_3d66: Unknown result type (might be due to invalid IL or missing references) //IL_3d6b: 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_3d78: Unknown result type (might be due to invalid IL or missing references) //IL_3d7a: Unknown result type (might be due to invalid IL or missing references) //IL_3d84: Unknown result type (might be due to invalid IL or missing references) //IL_3d86: Unknown result type (might be due to invalid IL or missing references) //IL_3d8b: Unknown result type (might be due to invalid IL or missing references) //IL_3f16: Unknown result type (might be due to invalid IL or missing references) //IL_3f2a: Unknown result type (might be due to invalid IL or missing references) //IL_3f3e: Unknown result type (might be due to invalid IL or missing references) //IL_3f43: Unknown result type (might be due to invalid IL or missing references) //IL_3f71: Unknown result type (might be due to invalid IL or missing references) //IL_3f85: Unknown result type (might be due to invalid IL or missing references) //IL_3f99: Unknown result type (might be due to invalid IL or missing references) //IL_3f9e: Unknown result type (might be due to invalid IL or missing references) //IL_3fcc: Unknown result type (might be due to invalid IL or missing references) //IL_3fe0: Unknown result type (might be due to invalid IL or missing references) //IL_3ff4: Unknown result type (might be due to invalid IL or missing references) //IL_3ff9: Unknown result type (might be due to invalid IL or missing references) //IL_4027: Unknown result type (might be due to invalid IL or missing references) //IL_403b: Unknown result type (might be due to invalid IL or missing references) //IL_404f: Unknown result type (might be due to invalid IL or missing references) //IL_4054: Unknown result type (might be due to invalid IL or missing references) //IL_4066: Unknown result type (might be due to invalid IL or missing references) //IL_407c: Unknown result type (might be due to invalid IL or missing references) //IL_408e: Unknown result type (might be due to invalid IL or missing references) //IL_4097: Unknown result type (might be due to invalid IL or missing references) //IL_40ca: Unknown result type (might be due to invalid IL or missing references) //IL_40cf: Unknown result type (might be due to invalid IL or missing references) //IL_40e5: Unknown result type (might be due to invalid IL or missing references) //IL_40ea: Unknown result type (might be due to invalid IL or missing references) //IL_4100: Unknown result type (might be due to invalid IL or missing references) //IL_4105: Unknown result type (might be due to invalid IL or missing references) //IL_410d: 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_4114: Unknown result type (might be due to invalid IL or missing references) //IL_411d: 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_4159: Unknown result type (might be due to invalid IL or missing references) //IL_415e: Unknown result type (might be due to invalid IL or missing references) //IL_4174: Unknown result type (might be due to invalid IL or missing references) //IL_4179: Unknown result type (might be due to invalid IL or missing references) //IL_418f: Unknown result type (might be due to invalid IL or missing references) //IL_4194: Unknown result type (might be due to invalid IL or missing references) //IL_419c: Unknown result type (might be due to invalid IL or missing references) //IL_41a1: 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_41ad: Unknown result type (might be due to invalid IL or missing references) //IL_41af: Unknown result type (might be due to invalid IL or missing references) //IL_41b4: Unknown result type (might be due to invalid IL or missing references) //IL_41df: Unknown result type (might be due to invalid IL or missing references) //IL_41f3: Unknown result type (might be due to invalid IL or missing references) //IL_4207: Unknown result type (might be due to invalid IL or missing references) //IL_420c: Unknown result type (might be due to invalid IL or missing references) //IL_423a: Unknown result type (might be due to invalid IL or missing references) //IL_424e: Unknown result type (might be due to invalid IL or missing references) //IL_4262: Unknown result type (might be due to invalid IL or missing references) //IL_4267: Unknown result type (might be due to invalid IL or missing references) //IL_4295: Unknown result type (might be due to invalid IL or missing references) //IL_42a9: 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_42c2: Unknown result type (might be due to invalid IL or missing references) //IL_42f0: Unknown result type (might be due to invalid IL or missing references) //IL_4304: Unknown result type (might be due to invalid IL or missing references) //IL_4318: Unknown result type (might be due to invalid IL or missing references) //IL_431d: Unknown result type (might be due to invalid IL or missing references) //IL_4350: Unknown result type (might be due to invalid IL or missing references) //IL_4364: Unknown result type (might be due to invalid IL or missing references) //IL_4378: Unknown result type (might be due to invalid IL or missing references) //IL_437d: Unknown result type (might be due to invalid IL or missing references) GameObject chirrPrefab = ChirrCore.chirrPrefab; GameObject gameObject = ((Component)chirrPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = new List(); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Syringe, "DisplaySyringeCluster", "Chest", new Vector3(-0.15023f, 0.12526f, 0.45821f), new Vector3(6.25538f, 345.4568f, 42.6496f), new Vector3(0.30366f, 0.30366f, 0.30366f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bear, "DisplayBearSit", "Chest", new Vector3(0.00567f, 0.22306f, 0.5638f), new Vector3(336.991f, 0.49044f, 1.00001f), new Vector3(0.32535f, 0.32535f, 0.32535f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Behemoth, "DisplayBehemoth", "Chest", new Vector3(-0.02081f, 0.71763f, 0.28906f), new Vector3(343.7892f, 235.066f, 45.66403f), new Vector3(0.09f, 0.09f, 0.09f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "ElbowR", new Vector3(-0.04616f, -0.60304f, -0.08146f), new Vector3(356.7162f, 168.417f, 187.8333f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Pelvis", new Vector3(-0.46048f, -0.48838f, -0.23426f), new Vector3(62.58829f, 179.054f, 177.8278f), new Vector3(0.13254f, 0.13254f, 0.13254f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(-0.18854f, 0.55266f, 0.09293f), new Vector3(300.2466f, 292.0094f, 240.7119f), new Vector3(1f, 1f, 1f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.Tooth, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[6] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothNecklaceDecal"), childName = "Chest", localPos = new Vector3(-0.02534f, 0.65133f, -0.0682f), localAngles = new Vector3(294.631f, 357.532f, 1.85058f), localScale = new Vector3(0.96688f, 0.52618f, 0.96688f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshLarge"), childName = "Chest", localPos = new Vector3(-0.01865f, 0.37971f, -0.36382f), localAngles = new Vector3(53.04276f, 3.02555f, 1.58643f), localScale = new Vector3(2.39344f, 3.73495f, 2.39344f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(-0.07398f, 0.38544f, -0.34308f), localAngles = new Vector3(40.64451f, 350.1534f, 323.6163f), localScale = new Vector3(1.43896f, 1.43896f, 1.43896f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall1"), childName = "Chest", localPos = new Vector3(-0.12198f, 0.40744f, -0.30539f), localAngles = new Vector3(18.632f, 13.77735f, 333.1451f), localScale = new Vector3(1.31001f, 1.31001f, 1.31001f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall2"), childName = "Chest", localPos = new Vector3(0.03461f, 0.38508f, -0.33694f), localAngles = new Vector3(56.85872f, 12.13364f, 57.47216f), localScale = new Vector3(1.47862f, 1.47862f, 1.47862f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayToothMeshSmall2"), childName = "Chest", localPos = new Vector3(0.07587f, 0.40531f, -0.32007f), localAngles = new Vector3(53.03017f, 339.519f, 19.58785f), localScale = new Vector3(1.47632f, 1.47632f, 1.47632f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "Head", new Vector3(0.01546f, 0.31216f, 0.54586f), new Vector3(317.8046f, 0.07596f, 358.8435f), new Vector3(1.50537f, 1f, 1.17131f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "HandL", new Vector3(0.00455f, -0.09714f, -0.05172f), new Vector3(79.37135f, 1.58121f, 5.49504f), new Vector3(0.09361f, 0.09361f, 0.06845f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "ShoulderL", new Vector3(-0.13628f, 0.15534f, 0.26413f), new Vector3(332.8565f, 77.47125f, 54.80316f), new Vector3(7f / 160f, 7f / 160f, 7f / 160f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Chest", new Vector3(-0.02517f, 0.2486f, 0.63842f), new Vector3(317.349f, 359.2465f, 0.83228f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "Pelvis", new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", new Vector3(1f, -1.44374f, 1.00245f), new Vector3(79.1022f, 5.29585f, 6.18342f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "Head", new Vector3(0.00746f, 0.14667f, 0.40238f), new Vector3(314.4365f, 359.6817f, 0.32543f), new Vector3(3.7724f, 1f, 2.1725f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "Chest", new Vector3(-0.2302f, 0.24834f, 0.36928f), new Vector3(55.48694f, 5.29165f, 41.68101f), new Vector3(0.13386f, 0.13386f, 0.13386f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Chest", new Vector3(0.12011f, 0.30736f, 0.73098f), new Vector3(7.60706f, 81.33895f, 301.6433f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "Head", new Vector3(-0.00572f, 0.58101f, -0.37234f), new Vector3(354.9276f, 0.89379f, 1.00378f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Chest", new Vector3(-0.279f, 0.49017f, -0.14875f), new Vector3(34.94321f, 57.60104f, 311.9139f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "WingR1", new Vector3(0.01065f, 0.60301f, -0.44011f), new Vector3(86.01606f, 15.49513f, 14.54624f), new Vector3(1f, 1f, 1f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "HandR", localPos = new Vector3(-0.00984f, -0.11173f, 0.01f), localAngles = new Vector3(2.91213f, 180.9317f, 178.9989f), localScale = new Vector3(0.16715f, 0.16715f, 0.16715f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "HandL", localPos = new Vector3(0.0081f, -0.11142f, 0.00969f), localAngles = new Vector3(2.91213f, 180.9317f, 178.9989f), localScale = new Vector3(0.16715f, 0.16715f, 0.16715f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Pelvis", new Vector3(-0.37928f, 0.30007f, 0.01175f), new Vector3(2.82264f, 0.3134f, 341.7837f), new Vector3(0.54208f, 0.54208f, 0.54208f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "ShoulderL", new Vector3(-0.17874f, 0.52203f, -0.07117f), new Vector3(78.43723f, 248.4556f, 182.0916f), new Vector3(0.42424f, 0.68323f, 0.68323f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealOnCrit, "DisplayScythe", "Pelvis", new Vector3(0.10931f, 0.2641f, 0.28469f), new Vector3(38.92262f, 280.1779f, 284.7581f), new Vector3(0.21985f, 0.21985f, 0.21985f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "ShoulderR", new Vector3(0.12764f, 0.02011f, -0.14796f), new Vector3(302.4363f, 237.1508f, 42.04613f), new Vector3(0.18444f, 0.18444f, 0.18444f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "Chest", new Vector3(-0.01319f, 0.60932f, 0.34391f), new Vector3(300.3394f, 191.9624f, 168.454f), new Vector3(0.28206f, 0.28206f, 0.28206f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "Pelvis", new Vector3(0.23711f, -0.16623f, 0.28675f), new Vector3(38.85259f, 278.8196f, 358.9197f), new Vector3(0.30529f, 0.30529f, 0.30529f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "Head", new Vector3(-0.76854f, 0.19512f, -0.13695f), new Vector3(316.2369f, 352.1038f, 187.1849f), new Vector3(2.10714f, 2.10714f, 2.10714f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Head", new Vector3(0.022f, -0.85371f, -0.44901f), new Vector3(306.9829f, 2.90805f, 358.7383f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Chest", new Vector3(-0.43019f, -0.23488f, 0.18538f), new Vector3(12.11927f, 290.5139f, 351.905f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Clover, "DisplayClover", "Head", new Vector3(0.65994f, 0.23503f, -0.5935f), new Vector3(296.1083f, 174.9901f, 186.3231f), new Vector3(0.73227f, 0.73227f, 0.73227f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "Chest", new Vector3(0.294f, -0.14077f, 0.51293f), new Vector3(278.9928f, 327.992f, 106.0074f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Chest", new Vector3(0.03952f, 0.1524f, -0.09973f), new Vector3(323.4799f, 52.82478f, 125.8604f), new Vector3(1.1f, 1.1f, 1.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Chest", new Vector3(0.17172f, 0.51184f, 0.41762f), new Vector3(320.4774f, 175.7188f, 27.72161f), new Vector3(0.62847f, 0.62847f, 0.62847f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "WingL1", new Vector3(0.01351f, 0.85619f, -0.42017f), new Vector3(48.05252f, 354.9252f, 5.29162f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "WingLEnd", new Vector3(-0.02729f, 0.02033f, -0.05153f), new Vector3(349.159f, 0.79105f, 308.9109f), new Vector3(1.16712f, 1.16712f, 1.16712f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Chest", new Vector3(0.06502f, 0.93282f, 0.33266f), new Vector3(276.1395f, 190.3199f, 170.6098f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "WingR2", new Vector3(-0.0065f, 0.1342f, -0.12539f), new Vector3(42.94081f, 188.9775f, 94.10269f), new Vector3(0.438f, 0.438f, 0.438f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "Head", new Vector3(-0.01938f, 0.40242f, -0.24337f), new Vector3(0.70255f, 1.01255f, 0.98901f), new Vector3(2.35414f, 2.35414f, 2.33825f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "ShoulderL", new Vector3(-0.16028f, 0.1485f, -0.10518f), new Vector3(59.79329f, 276.0453f, 47.3881f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "Head", new Vector3(0.28248f, 0.59512f, -0.28753f), new Vector3(6.03945f, 257.9412f, 33.06877f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Pelvis", new Vector3(-0.41048f, -0.41826f, -0.26212f), new Vector3(20.62992f, 26.01957f, 304.6966f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", new Vector3(1.45758f, 0.00135f, -0.74336f), new Vector3(8.23762f, 180f, 180f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Chest", new Vector3(-0.32155f, 0.19367f, -0.37164f), new Vector3(278.9392f, 187.3527f, 198.2888f), new Vector3(0.13478f, 0.13478f, 0.13478f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Chest", new Vector3(-0.41854f, -0.30217f, 0.35018f), new Vector3(5.05936f, 276.7172f, 1.00413f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Chest", new Vector3(0.38529f, 0.04209f, -0.37359f), new Vector3(301.9651f, 359.3799f, 1.88888f), new Vector3(0.35162f, 0.35162f, 0.35162f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SecondarySkillMagazine, "DisplayDoubleMag", "WingR1", new Vector3(-0.05069f, 0.45175f, -0.29928f), new Vector3(1f, 1f, 1f), new Vector3(0.15137f, 0.15137f, 0.15137f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "WingR1", new Vector3(-0.06306f, 1.03674f, -0.44728f), new Vector3(1f, 1f, 1f), new Vector3(0.39297f, 0.39465f, 0.39465f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "HandR", new Vector3(-0.0343f, -0.38311f, 0.08292f), new Vector3(350.2878f, 251.5455f, 272.1064f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "LowerArmR", new Vector3(0.06666f, 0.0625f, 0.16629f), new Vector3(78.19929f, 287.5869f, 291.5888f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "UpperArmR", new Vector3(0.16306f, 0.65225f, -0.04339f), new Vector3(288.6337f, 82.54973f, 270.6353f), new Vector3(0.23865f, 0.23865f, 0.23865f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "ShoulderL", new Vector3(0.0064f, 0.90037f, 0.02357f), new Vector3(67.77676f, 299.2639f, 351.0946f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "ShoulderR", new Vector3(0.00964f, 0.68832f, 0.01936f), new Vector3(280.3314f, 314.3229f, 47.53419f), new Vector3(1.27506f, 1.27847f, 1.27847f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "WingR2", new Vector3(-0.00319f, -1.12287f, -0.80266f), new Vector3(350.9676f, 58.72039f, 335.148f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(-0.01106f, 0.24168f, -0.4664f), new Vector3(358.996f, 180.7725f, 359.004f), new Vector3(0.44216f, 0.44216f, 0.44216f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.UtilitySkillMagazine, "DisplayAfterburnerShoulderRing", "Pelvis", new Vector3(0.00267f, -0.13704f, 0.01621f), new Vector3(285.7728f, 184.5249f, 176.3194f), new Vector3(1.129f, 1.129f, 1.129f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullcrown", "Pelvis", new Vector3(0.00696f, 0.05595f, -0.04846f), new Vector3(1f, 1f, 173.9113f), new Vector3(1.7206f, 0.28452f, 0.3967f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "Head", new Vector3(0.00397f, 0.26022f, -0.0849f), new Vector3(317.6588f, 2.18407f, 359.5154f), new Vector3(0.85891f, 0.85891f, 0.44609f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseflower", "Head", new Vector3(-0.6032f, 0.0986f, -0.55638f), new Vector3(304.9672f, 177.3004f, 184.5284f), new Vector3(0.37671f, 0.37671f, 0.37671f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "LowerArmL", new Vector3(-0.1052f, 0.50997f, 0.03391f), new Vector3(80.2589f, 332.1017f, 331.619f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "Head", new Vector3(0.4725f, 0.30171f, -0.24015f), new Vector3(297.734f, 0.01084f, 358.6537f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "Head", new Vector3(-0.40925f, -0.11607f, -0.19022f), new Vector3(2.44045f, 0.99267f, 1.01493f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExecuteLowHealthElite, "DisplayGuillotine", "Chest", new Vector3(0.22974f, 0.24791f, 0.4794f), new Vector3(295.7652f, 238.2417f, 148.8397f), new Vector3(0.25665f, 0.25665f, 0.25665f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Pelvis", new Vector3(0.48157f, -0.0613f, 0.02283f), new Vector3(1.07836f, 275.6779f, 298.4128f), new Vector3(0.51274f, 0.51274f, 0.51274f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "LowerArmL", new Vector3(-0.09182f, 0.06795f, -0.11802f), new Vector3(85.12505f, 202.0774f, 168.7453f), new Vector3(0.21873f, 0.21873f, 0.21873f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldHeart", "Chest", new Vector3(0.30478f, -0.32459f, -0.11352f), new Vector3(327.4489f, 359.7195f, 0.73533f), new Vector3(0.33018f, 0.33018f, 0.33018f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "Head", new Vector3(0.51911f, 0.54707f, -0.09855f), new Vector3(300.7584f, 11.76619f, 313.548f), new Vector3(0.25801f, 0.25801f, 0.25801f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Chest", new Vector3(0.23214f, 0.36201f, -0.22746f), new Vector3(51.086f, 151.7892f, 21.96281f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Chest", new Vector3(-0.04282f, 0.60151f, 0.35958f), new Vector3(320.0241f, 180.968f, 179.1135f), new Vector3(0.34534f, 0.34534f, 0.34534f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "Neck", new Vector3(0.26799f, 0.03852f, -0.07754f), new Vector3(358.7633f, 85.44554f, 333.6164f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Pelvis", new Vector3(0.45102f, 0f, -1E-05f), new Vector3(1f, 1f, 1f), new Vector3(0.1298f, 0.1298f, 0.1298f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "Pelvis", new Vector3(0f, 0.33696f, 0.31244f), new Vector3(358.8429f, 257.0013f, 190.6211f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Thorns, "DisplayRazorwireLeftVoidSurvivor", "ElbowL", new Vector3(-0.09733f, -0.23549f, -0.12083f), new Vector3(278.8405f, 297.3141f, 63.81865f), new Vector3(1.2048f, 1.2048f, 1.2048f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FlatHealth, "DisplaySteakCurved", "Head", new Vector3(0f, 0.1679f, 0.72457f), new Vector3(281.0661f, 358.9223f, 356.9044f), new Vector3(0.1327f, 0.1327f, 0.1327f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "LowerArmL", new Vector3(0f, 0.172f, 0f), new Vector3(270f, 1E-05f, 0f), new Vector3(0.07f, 0.07f, 0.07f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "LowerArmR", new Vector3(0f, 0f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.07f, 0.07f, 0.07f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "Chest", new Vector3(-0.10376f, 0.20155f, 0.56549f), new Vector3(315.3498f, 351.2206f, 10.31494f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "UpperArmR", new Vector3(-0.12434f, 0.16757f, 0.07909f), new Vector3(6.08667f, 290.4821f, 252.8224f), new Vector3(0.5f, 0.5f, 0.5f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarPrimaryReplacement, "DisplayBirdEye", "Head", new Vector3(0.00484f, 0.44638f, 0.31547f), new Vector3(332.8555f, 178.8018f, 181.9016f), new Vector3(0.34473f, 0.34473f, 0.34473f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "Head", new Vector3(0.83507f, 0.37624f, -0.78891f), new Vector3(290.2606f, 357.3579f, 0.14143f), new Vector3(0.13063f, 0.13063f, 0.13063f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Head", new Vector3(0.93804f, 0.45057f, -0.76999f), new Vector3(10.8654f, 186.5376f, 283.7511f), new Vector3(1.51536f, 1.51536f, 1.51536f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "LowerArmR", new Vector3(-0.05483f, 0.42953f, 0.01824f), new Vector3(81.83345f, 192.4065f, 207.7989f), new Vector3(0.78911f, 0.78911f, 0.78911f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "Head", new Vector3(-0.58446f, 0.47933f, -0.33597f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "WingR1", new Vector3(0.01357f, 0.82464f, -0.25284f), new Vector3(0.38246f, 48.96363f, 82.46727f), new Vector3(0.0564f, 0.0564f, 0.0564f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Chest", new Vector3(-0.27641f, 0.14312f, 0.39589f), new Vector3(329.3064f, 11.17662f, 344.1488f), new Vector3(0.0755f, 0.0755f, 0.0755f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", new Vector3(0.443f, -1.29099f, -1.20587f), new Vector3(270f, 0.32262f, 0f), new Vector3(0.075f, 0.075f, 0.075f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireballsOnHit, "DisplayFireballsOnHit", "UpperArmR", new Vector3(-0.21633f, 0.65065f, -0.03582f), new Vector3(344.0815f, 147.0711f, 299.8145f), new Vector3(0.08234f, 0.08234f, 0.08234f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LightningStrikeOnHit, "DisplayChargedPerforator", "UpperArmL", new Vector3(0.20725f, 0.65464f, 0.07406f), new Vector3(6.85846f, 87.05473f, 53.06927f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "LowerArmR", new Vector3(-0.15407f, -0.63656f, 0.49147f), new Vector3(10.53178f, 168.8489f, 209.1654f), new Vector3(0.05013f, 0.05013f, 0.05013f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "Chest", new Vector3(-0.29371f, -0.15212f, 0.52658f), new Vector3(2.31172f, 89.91504f, 15.27005f), new Vector3(0.0573f, 0.0573f, 0.0573f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "WingL1", new Vector3(0.00563f, 0.39232f, -0.1553f), new Vector3(40.47644f, 350.5995f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomDamageZone, "DisplayRandomDamageZone", "Pelvis", new Vector3(0f, 0.25973f, 0.30578f), new Vector3(35.26917f, 180f, 180f), new Vector3(0.10719f, 0.10719f, 0.10719f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarSecondaryReplacement, "DisplayBirdClaw", "UpperArmR", new Vector3(-0.05166f, 0.35473f, 0.01664f), new Vector3(333.0368f, 182.5115f, 67.91328f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.LunarSpecialReplacement, "DisplayBirdHeart", new Vector3(-1.4677f, -0.3564f, -0.7053f), new Vector3(7.40916f, 270.837f, 94.74821f), new Vector3(0.34151f, 0.34151f, 0.34151f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ParentEgg, "DisplayParentEgg", "Pelvis", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.12177f, 0.12177f, 0.12177f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Chest", new Vector3(-0.0204f, 0.49999f, 0.39458f), new Vector3(13.87488f, 0.58435f, 0.0971f), new Vector3(0.47632f, 0.47632f, 0.47632f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "ShoulderR", new Vector3(0f, 0f, 0f), new Vector3(343.7116f, 325.1237f, 320.823f), new Vector3(0.24461f, 0.24461f, 0.24461f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", new Vector3(-0.55437f, -0.0261f, -1.01856f), new Vector3(270f, 0.32262f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "Head", new Vector3(0.32533f, 0.46202f, -0.18691f), new Vector3(0f, 0f, 0f), new Vector3(0.20446f, 0.20446f, 0.20446f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "Head", new Vector3(0.00856f, 0.57427f, -0.02452f), new Vector3(282.8624f, 174.4761f, 186.0091f), new Vector3(0.74495f, 0.74495f, 0.74495f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "Head", new Vector3(0.01051f, 0.52361f, -0.51862f), new Vector3(306.2482f, 177.9596f, 182.6374f), new Vector3(0.05021f, 0.05021f, 0.05021f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "Head", new Vector3(0.00958f, 0.53205f, -0.37046f), new Vector3(297.0258f, 177.2962f, 183.258f), new Vector3(0.15152f, 0.15152f, 0.15152f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", new Vector3(-1.45538f, -0.02608f, -1.01349f), new Vector3(270f, 0.32262f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "Head", new Vector3(0.00224f, 0.53675f, 0.89609f), new Vector3(328.138f, 0.53373f, 359.6873f), new Vector3(1.25901f, 0.74514f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Head", new Vector3(0.81913f, 0.2276f, 0.30262f), new Vector3(4.72695f, 231.9432f, 85.54887f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "ShoulderL", new Vector3(-0.1831f, 0.18367f, 0.04956f), new Vector3(312.1308f, 179.8003f, 289.8329f), new Vector3(0.55565f, 0.55565f, 0.55565f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Chest", new Vector3(-0.00556f, 0.11936f, 0.40453f), new Vector3(0f, 180f, 0f), new Vector3(0.37679f, 0.37679f, 0.37679f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.Lightning, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayLightningArmRight"), childName = "Head", localPos = Vector3.one, localAngles = Vector3.one, localScale = Vector3.one, limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Chest", new Vector3(-0.49818f, 0.5014f, 0.19441f), new Vector3(43.20132f, 258.0447f, 310.3215f), new Vector3(0.1587f, 0.1587f, 0.1587f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Pelvis", new Vector3(0.47532f, 0f, -3E-05f), new Vector3(24.76932f, 0f, 0f), new Vector3(0.04116f, 0.04116f, 0.04116f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "ShoulderL", new Vector3(0.00441f, 0.3243f, 0.08073f), new Vector3(351.4334f, 284.5128f, 224.2097f), new Vector3(0.5201f, 0.5201f, 0.5201f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Chest", new Vector3(-0.5024f, -0.32432f, -0.04251f), new Vector3(356.998f, 106.08f, 65.02573f), new Vector3(0.54903f, 0.54903f, 0.54903f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "ShoulderR", new Vector3(0.30289f, 0.32553f, 0.12158f), new Vector3(296.1528f, 87.98994f, 179.9712f), new Vector3(0.69059f, 0.69059f, 0.69059f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Chest", new Vector3(-0.38861f, -0.19473f, -0.19039f), new Vector3(346.2986f, 58.63267f, 19.53799f), new Vector3(0.26855f, 0.26855f, 0.26855f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Chest", new Vector3(-0.0355f, 0.42978f, 0.5152f), new Vector3(325.1208f, 358.4429f, 0.43592f), new Vector3(0.56483f, 0.56483f, 0.56483f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Chest", new Vector3(-0.02764f, 0.68675f, 0.16716f), new Vector3(351.3396f, 359.6454f, 0.00642f), new Vector3(0.18198f, 0.18198f, 0.18198f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Pelvis", new Vector3(0.10218f, 0.02832f, -0.00117f), new Vector3(39.52095f, 0f, 0f), new Vector3(0.30072f, 0.30072f, 0.30072f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "Head", new Vector3(0.01056f, 0.57135f, -0.41752f), new Vector3(62.99248f, 0.13626f, 186.629f), new Vector3(0.11666f, 0.11666f, 0.11666f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "Chest", new Vector3(-0.36021f, -0.38208f, 0.22049f), new Vector3(357.008f, 4.32376f, 22.47773f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", "Chest", new Vector3(-1.87522f, 1.37483f, -0.61257f), new Vector3(84.9408f, 179.6061f, 179.9815f), new Vector3(0.15f, 0.15f, 0.15f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Chest", new Vector3(0.35555f, -0.29918f, 0.47806f), new Vector3(12.1111f, 345.1084f, 356.8066f), new Vector3(0.063f, 0.063f, 0.063f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "Head", new Vector3(0.01072f, 0.48826f, -0.78804f), new Vector3(350.5901f, 345.2021f, 351.3283f), new Vector3(0.32204f, 0.32204f, 0.32204f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Chest", new Vector3(0.42201f, -0.29445f, -0.12135f), new Vector3(27.01526f, 122.2887f, 299.4163f), new Vector3(0.08969f, 0.08969f, 0.06393f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Chest", new Vector3(-0.49119f, -0.25172f, -0.10299f), new Vector3(344.4935f, 268.0937f, 340.5231f), new Vector3(0.11269f, 0.11269f, 0.11269f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.AffixLunar, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayEliteLunar,Eye"), childName = "Head", localPos = new Vector3(0.00238f, 0.46029f, 0.82285f), localAngles = new Vector3(326.6886f, 0.60057f, 359.6052f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoveSpeedOnKill, "DisplayGrappleHook", "WingR2", new Vector3(-0.0319f, 0.14791f, -0.3891f), new Vector3(0f, 0f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealingPotion, "DisplayHealingPotion", "WingL1", new Vector3(0.03087f, 2.07135f, -0.58706f), new Vector3(87.58573f, 253.4877f, 247.0912f), new Vector3(0.13252f, 0.13252f, 0.13252f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PermanentDebuffOnHit, "DisplayScorpion", "Pelvis", new Vector3(0.03711f, 0.00819f, -0.0694f), new Vector3(32.44383f, 180f, 180f), new Vector3(3f, 3f, 3f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedAndMoveSpeed, "DisplayCoffee", "Pelvis", new Vector3(0.35016f, -0.62932f, -0.36503f), new Vector3(7.93441f, 144.723f, 40.78794f), new Vector3(0.25f, 0.25f, 0.25f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritDamage, "DisplayLaserSight", "Head", new Vector3(-0.01149f, 0.49715f, 0.08563f), new Vector3(0f, 90f, 6.71617f), new Vector3(0.18555f, 0.18555f, 0.18555f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BearVoid, "DisplayBearVoidSit", "Chest", new Vector3(0.00567f, 0.22306f, 0.5638f), new Vector3(336.991f, 0.49044f, 1.00001f), new Vector3(0.32535f, 0.32535f, 0.32535f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MushroomVoid, "DisplayMushroomVoid", "Chest", new Vector3(-0.2302f, 0.24834f, 0.36928f), new Vector3(55.48694f, 5.29165f, 41.68101f), new Vector3(0.13386f, 0.13386f, 0.13386f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CloverVoid, "DisplayCloverVoid", "Head", new Vector3(0.6262f, 0.26936f, -0.5714f), new Vector3(293.738f, 174.5184f, 186.8068f), new Vector3(0.73227f, 0.73227f, 0.73227f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StrengthenBurn, "DisplayGasTank", "WingR2", new Vector3(-0.06044f, 0.0511f, -0.35608f), new Vector3(0f, 0f, 0f), new Vector3(0.13066f, 0.13066f, 0.13066f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RegeneratingScrap, "DisplayRegeneratingScrap", "Chest", new Vector3(-0.40356f, -0.06715f, 0.44204f), new Vector3(348.6971f, 293.5712f, 338.4493f), new Vector3(0.12007f, 0.12007f, 0.12007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitVoid, "DisplayTriTipVoid", "ShoulderR", new Vector3(0.18518f, -0.77175f, -0.63465f), new Vector3(43.56147f, 63.76232f, 138.5817f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlassesVoid, "DisplayGlassesVoid", "Head", new Vector3(-0.00848f, 0.27443f, 0.50568f), new Vector3(319.4023f, 0.12552f, 1.31686f), new Vector3(1.49488f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCacheVoid, "DisplayKeyVoid", "HandR", new Vector3(-0.03378f, -0.41593f, 0.09592f), new Vector3(352.4407f, 307.0146f, 263.4155f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHitVoid, "DisplayBaubleVoid", "WingR2", new Vector3(-0.00319f, -1.12287f, -0.80266f), new Vector3(350.9676f, 58.72039f, 335.148f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MissileVoid, "DisplayMissileLauncherVoid", "ElbowR", new Vector3(-0.07161f, -0.58049f, -0.14376f), new Vector3(348.906f, 172.3322f, 190.4321f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightningVoid, "DisplayUkuleleVoid", "Chest", new Vector3(-0.03399f, 0.27351f, 0.6403f), new Vector3(318.713f, 359.3023f, 0.80868f), new Vector3(0.7f, 0.7f, 0.7f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLifeVoid, "DisplayHippoVoid", "Chest", new Vector3(-0.01106f, 0.24168f, -0.4664f), new Vector3(358.996f, 180.7725f, 359.004f), new Vector3(0.44216f, 0.44216f, 0.44216f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazineVoid, "DisplayFuelCellVoid", "Pelvis", new Vector3(0.21988f, -0.3463f, 0.3285f), new Vector3(340.5811f, 0.63003f, 327.4721f), new Vector3(0.35529f, 0.35529f, 0.35529f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeathVoid, "DisplayWillowWispVoid", "Pelvis", new Vector3(-0.46048f, -0.48838f, -0.23426f), new Vector3(62.58829f, 179.054f, 177.8278f), new Vector3(0.13254f, 0.13254f, 0.13254f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FragileDamageBonus, "DisplayDelicateWatch", "HandL", new Vector3(0.02404f, -0.17044f, -0.02602f), new Vector3(79.17068f, 235.4588f, 74.08698f), new Vector3(0.64414f, 0.64414f, 0.64414f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.OutOfCombatArmor, "DisplayOddlyShapedOpal", "Pelvis", new Vector3(0.36519f, 0.08453f, 0.1513f), new Vector3(3.24596f, 256.8709f, 2.57618f), new Vector3(0.37935f, 0.37935f, 0.37935f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MoreMissile, "DisplayICBM", "WingR2", new Vector3(0.01164f, 0.00399f, -0.2423f), new Vector3(0f, 334.91f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ImmuneToDebuff, "DisplayRainCoatBelt", "Chest", new Vector3(0.00715f, -0.18159f, -0.05281f), new Vector3(290.9177f, 354.1962f, 3.8727f), new Vector3(2.95532f, 1.27291f, 1.27291f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RandomEquipmentTrigger, "DisplayBottledChaos", "Pelvis", new Vector3(0.38179f, 0.33733f, -0.01783f), new Vector3(334.7498f, 66.24985f, 83.83425f), new Vector3(0.14641f, 0.14641f, 0.14641f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PrimarySkillShuriken, "DisplayShuriken", "HandR", new Vector3(-0.01229f, -0.1835f, 0.07199f), new Vector3(354.3894f, 353.3548f, 5.67876f), new Vector3(0.34119f, 0.34119f, 0.34119f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.RandomlyLunar, "DisplayDomino", new Vector3(0.687f, -0.30488f, -0.69297f), new Vector3(277.8341f, 180f, 180f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHurt, "DisplayRollOfPennies", "UpperArmL", new Vector3(0.13413f, 0.50973f, -0.16932f), new Vector3(58.5436f, 307.2332f, 262.348f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "DisplayLunarShoulderNature", "ShoulderR", new Vector3(0.11455f, -0.09253f, 0.084f), new Vector3(3.70443f, 315.4499f, 213.5794f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HalfSpeedDoubleHealth, "DisplayLunarShoulderStone", "ShoulderL", new Vector3(-0.15238f, 0.206f, 0.01224f), new Vector3(8.46096f, 173.2564f, 212.9194f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FreeChest, "DisplayShippingRequestForm", "Pelvis", new Vector3(-0.32823f, 0.45358f, -0.04389f), new Vector3(315.7032f, 145.4739f, 301.5168f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ElementalRingVoid, "DisplayVoidRing", "ShoulderR", new Vector3(0.00463f, 0.76168f, 0.0238f), new Vector3(273.7516f, 207.0382f, 133.05f), new Vector3(1.18541f, 1.18541f, 1.18541f))); if (Config.ChirrEgoFullHeadReplacement.Value) { itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "Head", localPos = new Vector3(0.00281f, 0.20885f, 0.00621f), localAngles = new Vector3(4.00844f, 359.9461f, 0.01786f), localScale = new Vector3(5.38898f, 1.93572f, 4.37334f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "Neck", localPos = new Vector3(0.02074f, 0.07013f, 0.05536f), localAngles = new Vector3(4.97696f, 5.94505f, 8.78821f), localScale = new Vector3(3.20744f, 2.59127f, 3.20744f), limbMask = (LimbFlags)0 } } } }); } else { itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.LunarSun, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHead"), childName = "Head", localPos = new Vector3(0.00675f, 0.50966f, 0.05856f), localAngles = new Vector3(75.00004f, 0f, 0f), localScale = new Vector3(0.75f, 0.75f, 0.75f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplaySunHeadNeck"), childName = "Neck", localPos = new Vector3(0.02074f, 0.07013f, 0.05536f), localAngles = new Vector3(4.97696f, 5.94505f, 8.78821f), localScale = new Vector3(3.20744f, 2.59127f, 3.20744f), limbMask = (LimbFlags)0 } } } }); } itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.MinorConstructOnKill, "DisplayDefenseNucleus", new Vector3(0.55f, -1.83803f, -1.30853f), new Vector3(326.9531f, 0f, 0.32262f), new Vector3(0.4f, 0.4f, 0.4f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.VoidMegaCrabItem, "DisplayMegaCrabItem", "Head", new Vector3(-0.01446f, -0.79292f, 0.51989f), new Vector3(335.283f, 0.40798f, 359.7498f), new Vector3(0.24436f, 0.24436f, 0.24436f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Molotov, "DisplayMolotov", "ShoulderR", new Vector3(-0.19002f, 0.14201f, 0.10526f), new Vector3(18.24455f, 171.2352f, 190.5506f), new Vector3(0.55564f, 0.55564f, 0.55564f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.VendingMachine, "DisplayVendingMachine2", "Head", new Vector3(-0.83022f, 0.18775f, 0.46236f), new Vector3(358.3845f, 133.6339f, 277.618f), new Vector3(0.26726f, 0.26726f, 0.26726f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Equipment.BossHunter, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayBlunderbuss"), childName = "Head", localPos = new Vector3(1.26644f, 0.90127f, 0.873f), localAngles = new Vector3(55.9059f, 0.90615f, 2.3868f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayTricornGhost"), childName = "Head", localPos = new Vector3(0.01058f, 0.58483f, -0.4099f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(1f, 1f, 1f), limbMask = (LimbFlags)0 } } } }); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BossHunterConsumed, "DisplayTricornUsed", "Head", new Vector3(0.01058f, 0.58483f, -0.4099f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GummyClone, "DisplayGummyClone", "Chest", new Vector3(-0.29304f, 0.35178f, -0.30096f), new Vector3(21.27639f, 356.3309f, 357.941f), new Vector3(0.33509f, 0.33509f, 0.33509f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.MultiShopCard, "DisplayExecutiveCard", "Chest", new Vector3(-0.35586f, -0.4621f, 0.3318f), new Vector3(58.99131f, 179.4167f, 250.5275f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.EliteVoidEquipment, "DisplayAffixVoid", "Head", new Vector3(0.02166f, 0.21442f, 0.09454f), new Vector3(7.22854f, 1.40685f, 0.30024f), new Vector3(0.97717f, 0.97717f, 0.97717f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Elites.Earth.eliteEquipmentDef, "DisplayEliteMendingAntlers", "Head", new Vector3(0.0083f, 0.49201f, -0.29676f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } } public static class ChirrSkins { public static Mesh meshChirr; public static Mesh meshChirrMaid; public static Mesh meshChirrMaidDress; public static SkinDef maidSkin; public static void LoadMeshes(AssetBundle assetBundle) { meshChirr = assetBundle.LoadAsset("meshChirr"); meshChirrMaid = assetBundle.LoadAsset("meshChirrMaid"); meshChirrMaidDress = assetBundle.LoadAsset("meshChirrMaidDress"); } public static void RegisterSkins() { //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_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_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_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018e: 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_021e: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) LoadMeshes(Assets.mainAssetBundle); GameObject chirrPrefab = ChirrCore.chirrPrefab; GameObject gameObject = ((Component)chirrPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); ModelSkinController val = gameObject.AddComponent(); ChildLocator component2 = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; List list = new List(); RendererInfo[] baseRendererInfos = component.baseRendererInfos; SkinDef val2 = Skins.CreateSkinDef("SS2UCHIRR_DEFAULT_SKIN_NAME", LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)76, (byte)116, (byte)114, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)83, (byte)118, (byte)99, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)120, (byte)147, (byte)90, byte.MaxValue))), baseRendererInfos, mainSkinnedMeshRenderer, gameObject, null); val2.nameToken = "DEFAULT_SKIN"; val2.meshReplacements = SkinsCore.CreateMeshReplacements(baseRendererInfos, meshChirr, default(Mesh)); val2.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component2.FindChildGameObject("ModelDress"), shouldActivate = false } }; list.Add(val2); Sprite val3 = LoadoutAPI.CreateSkinIcon(Color32.op_Implicit(new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)139, (byte)139, (byte)139, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)0, (byte)0, (byte)0, byte.MaxValue)), Color32.op_Implicit(new Color32((byte)120, (byte)147, (byte)90, byte.MaxValue))); UnlockableDef val4 = ScriptableObject.CreateInstance(); val4.cachedName = "Skins.SS2UChirr.Mastery"; val4.nameToken = "ACHIEVEMENT_SS2UCHIRRCLEARGAMEMONSOON_NAME"; val4.achievementIcon = val3; Unlockables.unlockableDefs.Add(val4); AchievementHider.unlockableRewardIdentifiers.Add(val4.cachedName); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array, 0); array[0].defaultMaterial = Assets.CreateMaterial("matChirr", 0f, new Color(1f, 1f, 1f), 1f); array[1].defaultMaterial = Assets.CreateMaterial("matChirrMaidDress", 0f, new Color(1f, 1f, 1f), 0f); SkinDef val5 = Skins.CreateSkinDef("SS2UCHIRR_MASTERY_SKIN_NAME", val3, array, mainSkinnedMeshRenderer, gameObject, Config.ForceUnlockSkins.Value ? null : val4); val5.meshReplacements = SkinsCore.CreateMeshReplacements(array, meshChirrMaid, meshChirrMaidDress); val5.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component2.FindChildGameObject("ModelDress"), shouldActivate = true } }; list.Add(val5); maidSkin = val5; val.skins = list.ToArray(); } } public class FriendLeashSkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public ChirrFriendController targetingController; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { targetingController = ((Component)skillSlot).GetComponent() }; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return CanLeash(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && CanLeash(skillSlot); } private static bool CanLeash([NotNull] GenericSkill skillSlot) { ChirrFriendController targetingController = ((InstanceData)(object)skillSlot.skillInstanceData).targetingController; if ((Object)(object)targetingController != (Object)null) { return targetingController.CanLeash(); } return false; } } public class ChirrCore { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_Init <>9__14_0; internal void b__14_0(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UChirrBody") { GameObject val = Assets.mainAssetBundle.LoadAsset("animChirrEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); val.GetComponentInChildren().scale = 1.5f; break; } } } } public static bool convertedMithrixThisRun = false; public static BodyIndex bodyIndex; public static GameObject chirrPrefab; public static GameObject doppelganger; public static GameObject chirrHeal; public static SkillDef specialDef; public static SkillDef specialScepterDef; public static SurvivorDef survivorDef; public static List brotherKillChirrTokens = new List(); public ChirrCore() { Setup(); } private void OnLoadActions() { //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_0010: 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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0042: 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_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_0092: 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_00b2: 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_00d2: 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_00f2: 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_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) bodyIndex = BodyCatalog.FindBodyIndex("SS2UChirrBody"); ChirrFriendController.BlacklistBody(bodyIndex); BodyIndex key = BodyCatalog.FindBodyIndex("BrotherBody"); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("VoidRaidCrabBody")); ChirrFriendController.BlacklistBody(key); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("UrchinTurretBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("WispSoulBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("ShopkeeperBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("VoidInfestorBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MinorConstructAttachableBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("VoidRaidCrabBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MiniVoidRaidCrabBodyBase")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MiniVoidRaidCrabBodyPhase1")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MiniVoidRaidCrabBodyPhase2")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MiniVoidRaidCrabBodyPhase3")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("MiniVoidRaidCrabBodyPhase4")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("FalseSonBossBody")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("FalseSonBossBodyLunarShard")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("ArraignP1Body")); ChirrFriendController.BlacklistBody(BodyCatalog.FindBodyIndex("ArraignP2Body")); ChirrFriendController.bodyDamageValueOverrides.Add(key, 10f); ChirrFriendController.bodyDamageValueOverrides.Add(BodyCatalog.FindBodyIndex("BrotherHurtBody"), 10f); ModCompat.SurvariantsCompat.SetVariant(survivorDef, "ChirrBody"); } private void Setup() { //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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Expected O, but got Unknown chirrPrefab = CreateChirrPrefab(); ItemAPI.DoNotAutoIDRSFor(chirrPrefab); chirrPrefab.GetComponent().mainStateType = new SerializableEntityStateType(typeof(ChirrMain)); brotherKillChirrTokens.Add("SS2UBROTHER_KILL_CHIRR1"); brotherKillChirrTokens.Add("SS2UBROTHER_KILL_CHIRR2"); RegisterProjectiles(); RegisterStates(); SetUpSkills(); ContentManager.onContentPacksAssigned += LateSetup; CreateDoppelganger(); survivorDef = Prefabs.RegisterNewSurvivor(chirrPrefab, PrefabCore.CreateDisplayPrefab("ChirrDisplay", chirrPrefab), Color.green, "SS2UCHIRR", 40.2f); ChirrSkins.RegisterSkins(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(OnLoadActions)); if (brotherKillChirrTokens.Count > 0) { GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal; } Run.onRunStartGlobal += ResetMithrixConvertedTracker; Stage.onStageStartGlobal += Stage_onStageStartGlobal; Phase3.OnEnter += new hook_OnEnter(Phase3_OnEnter1); if (StarstormPlugin.emoteAPILoaded) { EmoteAPICompat(); } } private void Phase3_OnEnter1(orig_OnEnter orig, Phase3 self) { ChirrFriendController.canBefriendFalseSon = true; orig.Invoke(self); } private void Stage_onStageStartGlobal(Stage obj) { ChirrFriendController.canBefriendFalseSon = true; SceneDef sceneDefForCurrentScene = SceneCatalog.GetSceneDefForCurrentScene(); if (Object.op_Implicit((Object)(object)sceneDefForCurrentScene) && sceneDefForCurrentScene.baseSceneName == "Meridian") { ChirrFriendController.canBefriendFalseSon = false; } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void EmoteAPICompat() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__14_0; if (obj == null) { hook_Init val = delegate(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "SS2UChirrBody") { GameObject val2 = Assets.mainAssetBundle.LoadAsset("animChirrEmote.prefab"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val2, 0, true); val2.GetComponentInChildren().scale = 1.5f; break; } } }; <>c.<>9__14_0 = val; obj = (object)val; } SurvivorCatalog.Init += (hook_Init)obj; } private void LateSetup(ReadOnlyArray obj) { ChirrItemDisplays.RegisterDisplays(); } private void GlobalEventManager_onCharacterDeathGlobal(DamageReport report) { //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_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_0051: Unknown result type (might be due to invalid IL or missing references) if (EnemyCore.IsMoon() && Object.op_Implicit((Object)(object)report.victimBody) && report.victimBody.bodyIndex == bodyIndex && Object.op_Implicit((Object)(object)report.attackerBody) && (report.attackerBody.bodyIndex == EnemyCore.brotherHurtIndex || report.attackerBody.bodyIndex == EnemyCore.brotherIndex)) { int index = Random.Range(0, brotherKillChirrTokens.Count); EnemyCore.FakeMithrixChatMessageServer(brotherKillChirrTokens[index]); } } private void ResetMithrixConvertedTracker(Run obj) { survivorDef.outroFlavorToken = "SS2UCHIRR_OUTRO_FLAVOR"; } private void RegisterStates() { States.AddState(typeof(EntityStates.SS2UStates.Chirr.JetpackOn)); States.AddState(typeof(ChirrMain)); States.AddState(typeof(ChirrPrimary)); States.AddState(typeof(Headbutt)); States.AddState(typeof(ChirrHeal)); States.AddState(typeof(Befriend)); States.AddState(typeof(BefriendScepter)); States.AddState(typeof(Leash)); States.AddState(typeof(ChirrRestEmote)); States.AddState(typeof(ChirrTauntLoopEmote)); } private void RegisterProjectiles() { //IL_004e: 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_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: 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) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/WoodSpriteIndicator"), "SS2UChirrTargetIndicator", false); val.AddComponent(); val.GetComponentInChildren().sprite = Assets.mainAssetBundle.LoadAsset("texChirrTargetCrosshair"); val.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f); ((Component)val.GetComponentInChildren()).transform.rotation = Quaternion.Euler(0f, 0f, -45f); ((Behaviour)val.GetComponentInChildren()).enabled = false; ((Behaviour)val.GetComponentInChildren()).enabled = false; SpriteRenderer componentInChildren = val.GetComponentInChildren(); componentInChildren.color = Color.white; GameObject val2 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/WoodSpriteIndicator"), "SS2UChirrTargetIndicator", false); val2.GetComponentInChildren().sprite = Assets.mainAssetBundle.LoadAsset("texChirrBefriendCrosshair"); ((Component)val2.GetComponentInChildren()).transform.rotation = Quaternion.Euler(0f, 0f, 0f); ((Behaviour)val2.GetComponentInChildren()).enabled = false; val2.GetComponentInChildren().actionName = "SpecialSkill"; componentInChildren = val2.GetComponentInChildren(); componentInChildren.color = Color.white; GameObject val3 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/WoodSpriteIndicator"), "SS2UChirrFriendIndicator", false); val3.AddComponent(); val3.GetComponentInChildren().sprite = Assets.mainAssetBundle.LoadAsset("texChirrFriendCrosshair"); val3.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f); ((Component)val3.GetComponentInChildren()).transform.rotation = Quaternion.Euler(0f, 0f, -45f); ((Behaviour)val3.GetComponentInChildren()).enabled = false; ((Behaviour)val3.GetComponentInChildren()).enabled = false; componentInChildren = val3.GetComponentInChildren(); componentInChildren.color = Color.white; ChirrFriendController.indicatorCannotBefriendPrefab = val; ChirrFriendController.indicatorReadyToBefriendPrefab = val2; ChirrFriendController.indicatorFriendPrefab = val3; GameObject projectilePrefab = BuildChirrDart(); ChirrPrimary.projectilePrefab = projectilePrefab; } private GameObject BuildChirrDart() { //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_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_00a6: 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) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ElitePoison/UrchinSeekingProjectile.prefab").WaitForCompletion(), "SS2UChirrDartProjectile", true); ProjectileSimple component = val.GetComponent(); component.desiredForwardSpeed = 130f; component.lifetime = 2f; ProjectileSteerTowardTarget component2 = val.GetComponent(); component2.rotationSpeed = 20f; ProjectileController component3 = val.GetComponent(); component3.allowPrediction = false; ProjectileDirectionalTargetFinder component4 = val.GetComponent(); component4.lookRange = 45f; component4.lookCone = 12f; component4.targetSearchInterval = 0.1f; ProjectileDamage component5 = val.GetComponent(); component5.damageType = DamageTypeCombo.op_Implicit((DamageType)0); component5.damageType.damageSource = (DamageSource)1; ProjectileSingleTargetImpact component6 = val.GetComponent(); component6.impactEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/OmniImpactVFXSlashSyringe.prefab").WaitForCompletion(); Prefabs.projectilePrefabs.Add(val); return val; } private void SetUpSkills() { GenericSkill[] componentsInChildren = chirrPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SkillLocator component = chirrPrefab.GetComponent(); SetUpPassive(component); SetUpPrimaries(component); SetUpSecondaries(component); SetUpUtilities(component); SetUpSpecials(component); } private void SetUpPassive(SkillLocator skillLocator) { skillLocator.passiveSkill.enabled = true; skillLocator.passiveSkill.skillNameToken = "SS2UCHIRR_PASSIVE_NAME"; skillLocator.passiveSkill.skillDescriptionToken = "SS2UCHIRR_PASSIVE_DESCRIPTION"; skillLocator.passiveSkill.icon = Assets.mainAssetBundle.LoadAsset("ChirrPassive"); } private void SetUpPrimaries(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(ChirrPrimary)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UCHIRR_DARTS_NAME"; val.skillNameToken = "SS2UCHIRR_DARTS_NAME"; val.skillDescriptionToken = "SS2UCHIRR_DARTS_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("ChirrPrimary"); val.baseMaxStock = 1; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.keywordTokens = new string[0]; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.primary = Utils.RegisterSkillsToFamily(chirrPrefab, val2); } private void SetUpSecondaries(SkillLocator skillLocator) { //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_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(Headbutt)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UCHIRR_HEADBUTT_NAME"; val.skillNameToken = "SS2UCHIRR_HEADBUTT_NAME"; val.skillDescriptionToken = "SS2UCHIRR_HEADBUTT_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("ChirrSecondary"); val.baseMaxStock = 1; val.baseRechargeInterval = 6f; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)1; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.keywordTokens = new string[1] { "KEYWORD_STUNNING" }; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.secondary = Utils.RegisterSkillsToFamily(chirrPrefab, val2); } private void SetUpUtilities(SkillLocator skillLocator) { //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_0086: 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_00de: 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) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(ChirrHeal)); val.activationStateMachineName = "Weapon"; val.skillName = "SS2UCHIRR_HEAL_NAME"; val.skillNameToken = "SS2UCHIRR_HEAL_NAME"; val.skillDescriptionToken = "SS2UCHIRR_HEAL_DESCRIPTION"; val.icon = Assets.mainAssetBundle.LoadAsset("ChirrUtility"); val.baseMaxStock = 1; val.baseRechargeInterval = 12f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)1; val.isCombatSkill = false; val.mustKeyPress = false; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; Skills.FixSkillName(val); Skills.skillDefs.Add(val); Variant val2 = Utils.RegisterSkillVariant(val); skillLocator.utility = Utils.RegisterSkillsToFamily(chirrPrefab, val2); } private void SetUpSpecials(SkillLocator skillLocator) { //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_0086: 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_00ce: 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_00de: 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_0179: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) BefriendSkillDef befriendSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)befriendSkillDef).activationState = new SerializableEntityStateType(typeof(Befriend)); ((SkillDef)befriendSkillDef).activationStateMachineName = "Befriend"; ((SkillDef)befriendSkillDef).skillName = "SS2UCHIRR_BEFRIEND_NAME"; ((SkillDef)befriendSkillDef).skillNameToken = "SS2UCHIRR_BEFRIEND_NAME"; ((SkillDef)befriendSkillDef).skillDescriptionToken = "SS2UCHIRR_BEFRIEND_DESCRIPTION"; ((SkillDef)befriendSkillDef).icon = Assets.mainAssetBundle.LoadAsset("ChirrSpecial1"); ((SkillDef)befriendSkillDef).baseMaxStock = 1; ((SkillDef)befriendSkillDef).baseRechargeInterval = 3f; ((SkillDef)befriendSkillDef).beginSkillCooldownOnSkillEnd = false; ((SkillDef)befriendSkillDef).canceledFromSprinting = false; ((SkillDef)befriendSkillDef).fullRestockOnAssign = true; ((SkillDef)befriendSkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)befriendSkillDef).isCombatSkill = false; ((SkillDef)befriendSkillDef).mustKeyPress = true; ((SkillDef)befriendSkillDef).cancelSprintingOnActivation = false; ((SkillDef)befriendSkillDef).rechargeStock = 1; ((SkillDef)befriendSkillDef).requiredStock = 1; ((SkillDef)befriendSkillDef).stockToConsume = 1; Skills.skillDefs.Add((SkillDef)(object)befriendSkillDef); specialDef = (SkillDef)(object)befriendSkillDef; Variant val = Utils.RegisterSkillVariant((SkillDef)(object)befriendSkillDef); skillLocator.special = Utils.RegisterSkillsToFamily(chirrPrefab, val); Skills.FixSkillName((SkillDef)(object)befriendSkillDef); SkillDef val2 = ScriptableObject.CreateInstance(); val2.activationState = new SerializableEntityStateType(typeof(Leash)); val2.activationStateMachineName = "Leash"; val2.skillName = "SS2UCHIRR_LEASH_NAME"; val2.skillNameToken = "SS2UCHIRR_LEASH_NAME"; val2.skillDescriptionToken = "SS2UCHIRR_LEASH_DESCRIPTION"; val2.icon = Assets.mainAssetBundle.LoadAsset("ChirrSpecial2"); val2.baseMaxStock = 1; val2.baseRechargeInterval = 12f; val2.beginSkillCooldownOnSkillEnd = false; val2.canceledFromSprinting = false; val2.fullRestockOnAssign = true; val2.interruptPriority = (InterruptPriority)1; val2.isCombatSkill = false; val2.mustKeyPress = true; val2.cancelSprintingOnActivation = false; val2.rechargeStock = 1; val2.requiredStock = 1; val2.stockToConsume = 1; Skills.skillDefs.Add(val2); Befriend.leashOverrideSkillDef = val2; Skills.FixSkillName(val2); BefriendSkillDef befriendSkillDef2 = ScriptableObject.CreateInstance(); ((SkillDef)befriendSkillDef2).activationState = new SerializableEntityStateType(typeof(BefriendScepter)); ((SkillDef)befriendSkillDef2).activationStateMachineName = "Befriend"; ((SkillDef)befriendSkillDef2).skillName = "SS2UCHIRR_BEFRIEND_SCEPTER_NAME"; ((SkillDef)befriendSkillDef2).skillNameToken = "SS2UCHIRR_BEFRIEND_SCEPTER_NAME"; ((SkillDef)befriendSkillDef2).skillDescriptionToken = "SS2UCHIRR_BEFRIEND_SCEPTER_DESCRIPTION"; ((SkillDef)befriendSkillDef2).icon = Assets.mainAssetBundle.LoadAsset("ChirrSpecialScepter"); ((SkillDef)befriendSkillDef2).baseMaxStock = 1; ((SkillDef)befriendSkillDef2).baseRechargeInterval = 3f; ((SkillDef)befriendSkillDef2).beginSkillCooldownOnSkillEnd = true; ((SkillDef)befriendSkillDef2).canceledFromSprinting = false; ((SkillDef)befriendSkillDef2).fullRestockOnAssign = true; ((SkillDef)befriendSkillDef2).interruptPriority = (InterruptPriority)0; ((SkillDef)befriendSkillDef2).isCombatSkill = false; ((SkillDef)befriendSkillDef2).mustKeyPress = true; ((SkillDef)befriendSkillDef2).cancelSprintingOnActivation = false; ((SkillDef)befriendSkillDef2).rechargeStock = 1; ((SkillDef)befriendSkillDef2).requiredStock = 1; ((SkillDef)befriendSkillDef2).stockToConsume = 1; Skills.skillDefs.Add((SkillDef)(object)befriendSkillDef2); specialScepterDef = (SkillDef)(object)befriendSkillDef2; Skills.FixSkillName((SkillDef)(object)befriendSkillDef2); if (StarstormPlugin.scepterPluginLoaded) { ScepterSetup(); } if (StarstormPlugin.classicItemsLoaded) { ClassicScepterSetup(); } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ScepterSetup() { ItemBase.instance.RegisterScepterSkill(specialScepterDef, "SS2UChirrBody", specialDef); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void ClassicScepterSetup() { Item.instance.RegisterScepterSkill(specialScepterDef, "SS2UChirrBody", (SkillSlot)3, specialDef); } public static void CreateDoppelganger() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SS2UChirrMonsterMaster", true); doppelganger.GetComponent().bodyPrefab = chirrPrefab; Prefabs.RemoveAISkillDrivers(doppelganger); Prefabs.AddAISkillDriver(doppelganger, "Secondary", (SkillSlot)1, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 8f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)1, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "HealSelf", (SkillSlot)2, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)3, 1f, (AimType)1, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: true, noRepeat: true, null); Prefabs.AddAISkillDriver(doppelganger, "Primary", (SkillSlot)0, null, requireSkillReady: true, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 45f, selectionRequiresTargetLoS: true, selectionRequiresOnGround: false, selectionRequiresAimTarget: true, -1, (TargetType)0, activationRequiresTargetLoS: true, activationRequiresAimTargetLoS: true, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: false, shouldFireEquipment: false, (ButtonPressType)0, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "Strafe", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 0f, 30f, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)2, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.AddAISkillDriver(doppelganger, "Chase", (SkillSlot)(-1), null, requireSkillReady: false, requireEquipmentReady: false, float.NegativeInfinity, float.PositiveInfinity, float.NegativeInfinity, float.PositiveInfinity, 30f, float.PositiveInfinity, selectionRequiresTargetLoS: false, selectionRequiresOnGround: false, selectionRequiresAimTarget: false, -1, (TargetType)0, activationRequiresTargetLoS: false, activationRequiresAimTargetLoS: false, activationRequiresAimConfirmation: false, (MovementType)1, 1f, (AimType)2, ignoreNodeGraph: false, shouldSprint: true, shouldFireEquipment: false, (ButtonPressType)1, -1f, resetCurrentEnemyOnNextDriverSelection: false, noRepeat: false, null); Prefabs.masterPrefabs.Add(doppelganger); } internal static GameObject CreateChirrPrefab() { //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_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_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: 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_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0263: 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_0279: Unknown result type (might be due to invalid IL or missing references) //IL_027e: 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_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: 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) //IL_0338: Unknown result type (might be due to invalid IL or missing references) chirrPrefab = PrefabCore.CreatePrefab("SS2UChirrBody", "mdlChirr", new BodyInfo { armor = 0f, armorGrowth = 0f, bodyName = "SS2UChirrBody", bodyNameToken = "SS2UCHIRR_NAME", characterPortrait = (Texture)(object)Assets.mainAssetBundle.LoadAsset("ChirrIcon"), bodyColor = new Color32((byte)129, (byte)167, (byte)98, byte.MaxValue), crosshair = Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/TreebotCrosshair.prefab").WaitForCompletion(), damage = 12f, healthGrowth = 30f, healthRegen = 1f, jumpCount = 1, jumpPower = 22.5f, maxHealth = 100f, subtitleNameToken = "SS2UCHIRR_SUBTITLE", podPrefab = LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/SurvivorPod") }); PrefabCore.SetupCharacterModel(chirrPrefab, new CustomRendererInfo[2] { new CustomRendererInfo { childName = "Model", material = Assets.LoadMaterialFromAssetBundle("matChirr") }, new CustomRendererInfo { childName = "ModelDress", material = Assets.LoadMaterialFromAssetBundle("matChirrMaidDress") } }, 0); GameObject gameObject = ((Component)chirrPrefab.GetComponent().modelTransform).gameObject; ChildLocator component = gameObject.GetComponent(); PrefabCore.SetupHitbox(gameObject, component.FindChild("HeadbuttHitbox"), "HeadbuttHitbox"); NetworkStateMachine component2 = chirrPrefab.GetComponent(); bool flag = true; EntityStateMachine val = EntityStateMachine.FindByCustomName(chirrPrefab, "Slide"); if (!Object.op_Implicit((Object)(object)val)) { flag = false; val = chirrPrefab.AddComponent(); } val.customName = "Jetpack"; val.initialStateType = new SerializableEntityStateType(typeof(Idle)); val.mainStateType = new SerializableEntityStateType(typeof(Idle)); component2.stateMachines = component2.stateMachines.Append(val).ToArray(); if (!flag) { SetStateOnHurt component3 = chirrPrefab.GetComponent(); component3.idleStateMachine.Append(val); } chirrPrefab.AddComponent(); chirrPrefab.AddComponent(); EntityStateMachine val2 = chirrPrefab.AddComponent(); val2.customName = "Befriend"; val2.initialStateType = new SerializableEntityStateType(typeof(Idle)); val2.mainStateType = new SerializableEntityStateType(typeof(Idle)); component2.stateMachines = component2.stateMachines.Append(val2).ToArray(); EntityStateMachine val3 = chirrPrefab.AddComponent(); val3.customName = "Leash"; val3.initialStateType = new SerializableEntityStateType(typeof(Idle)); val3.mainStateType = new SerializableEntityStateType(typeof(Idle)); component2.stateMachines = component2.stateMachines.Append(val3).ToArray(); CameraTargetParams component4 = chirrPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component4) && Object.op_Implicit((Object)(object)component4.cameraPivotTransform)) { component4.cameraPivotTransform.localPosition = new Vector3(0f, 1.8f, 0f); } return chirrPrefab; } } } namespace Starstorm2Unofficial.Survivors.Chirr.Components { [RequireComponent(typeof(CharacterBody))] public class ChirrFriendController : NetworkBehaviour { [CompilerGenerated] private sealed class d__64 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public ChirrFriendController <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__64(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(0.3f); <>1__state = 1; return true; case 1: <>1__state = -1; EnemyCore.FakeFalseSonChatMessageServer("SS2UFALSESONBOSS_CHIRR_BEFRIEND_1"); <>2__current = null; <>1__state = 2; return true; case 2: <>1__state = -1; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static bool canBefriendFalseSon; public static bool minionPingRetarget; public static float befriendHealthFraction; public static float befriendChampionHealthFraction; public static GameObject teleportHelperPrefab; public static GameObject indicatorCannotBefriendPrefab; public static GameObject indicatorReadyToBefriendPrefab; public static GameObject indicatorFriendPrefab; public static bool allowBefriendNemesis; public static Dictionary bodyDamageValueOverrides; public static List itemCopyBlacklist; private bool hadBeads = false; private bool hadGoldSeed = false; public static HashSet blacklistedBodies; private Indicator indicatorCannotBefriend; private Indicator indicatorReadyToBefriend; private Indicator indicatorFriend; private HurtBox trackingTarget; private float trackerUpdateStopwatch; private readonly BullseyeSearch search = new BullseyeSearch(); private InputBankTest inputBank; private CharacterBody ownerBody; private CharacterMaster ownerMaster; private TeamComponent teamComponent; private MasterFriendInfo masterFriendInfo; private bool _canLeash = false; [SyncVar] private bool _canBefriendTarget = false; [SyncVar] private bool _hasFriend = false; [SyncVar] private uint _trackingTargetMasterNetID = ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value; private CharacterBody targetBody; private CharacterMaster targetMaster; private float minionTargetResetStopwatch; public float trackerUpdateFrequency = 4f; public float maxTrackingDistance = 90f; public float maxTrackingAngle = 90f; public bool canBefriendChampion = false; private bool hadScepter = false; private static int kCmdCmdRemoveFriend; private static int kRpcRpcSetTargetBodyGlass; private static int kRpcRpcDontDestroyOnLoad; private static int kRpcRpcSetMithrixConverted; private static int kCmdCmdLeashFriend; public bool Network_canBefriendTarget { get { return _canBefriendTarget; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref _canBefriendTarget, 1u); } } public bool Network_hasFriend { get { return _hasFriend; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref _hasFriend, 2u); } } public uint Network_trackingTargetMasterNetID { get { return _trackingTargetMasterNetID; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref _trackingTargetMasterNetID, 4u); } } public static void AddBodyDamageValueOverride(BodyIndex bodyIndex, float value) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0012: 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) if ((int)bodyIndex != -1) { bodyDamageValueOverrides.Remove(bodyIndex); bodyDamageValueOverrides.Add(bodyIndex, value); } } private void RemoveBlacklistedItems(Inventory inventory) { //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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Invalid comparison between Unknown and I4 //IL_002c: 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) foreach (string item in itemCopyBlacklist) { ItemIndex val = ItemCatalog.FindItemIndex(item); if ((int)val != -1) { inventory.RemoveItem(val, inventory.GetItemCount(val)); } } } private bool IsBlacklistedItem(ItemIndex item) { //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_001f: 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) foreach (string item2 in itemCopyBlacklist) { ItemIndex val = ItemCatalog.FindItemIndex(item2); if (val == item) { return true; } } return false; } public static void BlacklistBody(BodyIndex bodyIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Invalid comparison between Unknown and I4 //IL_0011: Unknown result type (might be due to invalid IL or missing references) if ((int)bodyIndex != -1) { blacklistedBodies.Add(bodyIndex); } } private bool HasLunarTrinket() { if (!hadBeads) { hadBeads = Object.op_Implicit((Object)(object)ownerMaster) && Object.op_Implicit((Object)(object)ownerMaster.inventory) && ownerMaster.inventory.GetItemCount(Items.LunarTrinket) > 0; } return hadBeads; } private bool HasGoldSeed() { if (!hadGoldSeed) { hadGoldSeed = Object.op_Implicit((Object)(object)ownerMaster) && Object.op_Implicit((Object)(object)ownerMaster.inventory) && ownerMaster.inventory.GetItemCount(Items.TitanGoldDuringTP) > 0; } return hadGoldSeed; } public bool HasScepter() { //IL_0039: 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) int num = 0; if (Object.op_Implicit((Object)(object)ownerMaster) && Object.op_Implicit((Object)(object)ownerMaster.inventory)) { num += ownerMaster.inventory.GetItemCount(ItemCatalog.FindItemIndex("CIScepter")); num += ownerMaster.inventory.GetItemCount(ItemCatalog.FindItemIndex("ITEM_ANCIENT_SCEPTER")); } bool result = num > 0; if (!hadScepter) { hadScepter = result; } return result; } public bool HasFriend() { return _hasFriend; } public bool CanBefriend() { return _canBefriendTarget && Object.op_Implicit((Object)(object)targetBody) && !targetBody.HasBuff(BuffCore.chirrFriendBuff) && !targetBody.HasBuff(BuffCore.chirrSelfBuff); } private void Awake() { //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Expected O, but got Unknown //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Expected O, but got Unknown ownerBody = ((Component)this).GetComponent(); teamComponent = ((Component)this).GetComponent(); inputBank = ((Component)this).GetComponent(); minionTargetResetStopwatch = 0f; trackerUpdateStopwatch = 0f; Inventory.onServerItemGiven += UpdateMinionInventory; if (minionPingRetarget) { PingerController.SetCurrentPing += new hook_SetCurrentPing(MinionPingRetarget); } Phase1.OnEnter += new hook_OnEnter(BrotherEncounterActions); indicatorCannotBefriend = new Indicator(((Component)this).gameObject, indicatorCannotBefriendPrefab); indicatorReadyToBefriend = new Indicator(((Component)this).gameObject, indicatorReadyToBefriendPrefab); indicatorFriend = new Indicator(((Component)this).gameObject, indicatorFriendPrefab); } private void BrotherEncounterActions(orig_OnEnter orig, Phase1 self) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (NetworkServer.active && _hasFriend) { SyncInventory(targetMaster); LeashFriendServer(((Component)this).transform.position); } } private void Start() { if (Object.op_Implicit((Object)(object)ownerBody)) { ownerMaster = ownerBody.master; } if (NetworkServer.active) { TrySpawnSavedMaster(); } } [Server] public void TrySpawnSavedMaster() { //IL_0090: 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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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_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_014b: Unknown result type (might be due to invalid IL or missing references) //IL_04ca: Unknown result type (might be due to invalid IL or missing references) //IL_04cf: 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_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0127: 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) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: 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_013f: 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_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01f1: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0201: 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_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_0212: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Expected O, but got Unknown //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Expected O, but got Unknown //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b1: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_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_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e5: Expected O, but got Unknown //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0343: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::TrySpawnSavedMaster()' called on client"); } else { if (!NetworkServer.active || !Object.op_Implicit((Object)(object)ownerMaster)) { return; } masterFriendInfo = ((Component)ownerMaster).GetComponent(); if (!Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo = ((MonoBehaviour)(object)ownerMaster).AddComponent(); } if (masterFriendInfo.masterNetID == ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value) { if (masterFriendInfo.masterIndex == MasterCatalog.FindMasterIndex("BrotherHurtMaster")) { MasterIndex val = MasterCatalog.FindMasterIndex("BrotherMaster"); if (val != MasterIndex.none) { masterFriendInfo.masterIndex = val; } } else if (masterFriendInfo.masterIndex == MasterCatalog.FindMasterIndex("FalseSonBossLunarShardMaster") || masterFriendInfo.masterIndex == MasterCatalog.FindMasterIndex("FalseSonBossLunarShardBrokenMaster")) { MasterIndex val2 = MasterCatalog.FindMasterIndex("FalseSonBossMaster"); if (val2 != MasterIndex.none) { masterFriendInfo.masterIndex = val2; } } GameObject masterPrefab = MasterCatalog.GetMasterPrefab(masterFriendInfo.masterIndex); if (Object.op_Implicit((Object)(object)masterPrefab)) { bool flag = false; bool flag2 = false; HullClassification hullSize = (HullClassification)1; CharacterMaster component = masterPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { GameObject bodyPrefab = masterPrefab.GetComponent().bodyPrefab; if (Object.op_Implicit((Object)(object)bodyPrefab)) { CharacterBody component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { flag = component2.isFlying; flag2 = component2.isChampion; } } } if (flag2) { hullSize = (HullClassification)2; } Vector3 position = ownerBody.corePosition + Vector3.back * 5f; SpawnCard val3 = ScriptableObject.CreateInstance(); val3.hullSize = hullSize; val3.nodeGraphType = (GraphType)(flag ? 1 : 0); val3.prefab = teleportHelperPrefab; GameObject val4 = DirectorCore.instance.TrySpawnObject(new DirectorSpawnRequest(val3, new DirectorPlacementRule { placementMode = (PlacementMode)3, position = ownerBody.corePosition, minDistance = 12f, maxDistance = 60f }, RoR2Application.rng)); if (Object.op_Implicit((Object)(object)val4)) { position = val4.transform.position; Object.Destroy((Object)(object)val4); } Object.Destroy((Object)(object)val3); MasterSummon val5 = new MasterSummon { masterPrefab = masterPrefab, ignoreTeamMemberLimit = true, position = position, summonerBodyObject = (Object.op_Implicit((Object)(object)ownerBody) ? ((Component)ownerBody).gameObject : null), useAmbientLevel = false }; CharacterMaster val6 = val5.Perform(); if (Object.op_Implicit((Object)(object)val6)) { MasterFriendInfo obj = masterFriendInfo; NetworkInstanceId netId = ((NetworkBehaviour)val6).netId; obj.masterNetID = ((NetworkInstanceId)(ref netId)).Value; if (Object.op_Implicit((Object)(object)val6.inventory)) { SyncInventory(val6); val6.inventory.SetEquipmentIndex(masterFriendInfo.masterEquipmentIndex); } CharacterBody body = val6.GetBody(); if (Object.op_Implicit((Object)(object)body)) { foreach (BuffIndex eliteBuff in masterFriendInfo.EliteBuffs) { if (!body.HasBuff(eliteBuff)) { body.AddBuff(eliteBuff); } } } bool flag3 = false; if (masterFriendInfo.loadout != null) { val6.SetLoadoutServer(masterFriendInfo.loadout); flag3 = true; } if (flag3 && Object.op_Implicit((Object)(object)body)) { ((MonoBehaviour)(object)body).AddComponent(); } } } } if (masterFriendInfo.masterNetID == ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value) { return; } Network_trackingTargetMasterNetID = masterFriendInfo.masterNetID; if (!ResolveTargetMaster()) { return; } Network_hasFriend = true; Network_canBefriendTarget = false; if (!ownerBody.HasBuff(BuffCore.chirrSelfBuff)) { ownerBody.AddBuff(BuffCore.chirrSelfBuff); } if (Object.op_Implicit((Object)(object)targetBody)) { trackingTarget = targetBody.mainHurtBox; targetBody.AddBuff(BuffCore.chirrFriendBuff); if (targetBody.bodyIndex == EnemyCore.brotherHurtIndex || targetBody.bodyIndex == EnemyCore.brotherIndex) { targetBody.AddBuff(Buffs.HiddenInvincibility); } } } } private void OnDestroy() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Expected O, but got Unknown //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown Inventory.onServerItemGiven -= UpdateMinionInventory; if (minionPingRetarget) { PingerController.SetCurrentPing -= new hook_SetCurrentPing(MinionPingRetarget); } Phase1.OnEnter -= new hook_OnEnter(BrotherEncounterActions); if (indicatorCannotBefriend != null) { indicatorCannotBefriend.DestroyVisualizer(); } if (indicatorReadyToBefriend != null) { indicatorReadyToBefriend.DestroyVisualizer(); } if (indicatorFriend != null) { indicatorFriend.DestroyVisualizer(); } } private void UpdateMinionInventory(Inventory inventory, ItemIndex itemIndex, int count) { //IL_007a: 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_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || count <= 0 || !Object.op_Implicit((Object)(object)ownerMaster) || !_hasFriend || !Object.op_Implicit((Object)(object)targetMaster) || !Object.op_Implicit((Object)(object)targetMaster.inventory) || IsBlacklistedItem(itemIndex) || !((Object)(object)ownerMaster != (Object)(object)targetMaster)) { return; } CharacterMaster component = ((Component)inventory).GetComponent(); if ((Object)(object)component == (Object)(object)ownerMaster) { ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex); if (!itemDef.tags.Contains((ItemTag)13)) { targetMaster.inventory.GiveItem(itemIndex, count); } } } private void SyncInventory(CharacterMaster master) { if (!Object.op_Implicit((Object)(object)master) || !Object.op_Implicit((Object)(object)master.inventory) || !Object.op_Implicit((Object)(object)ownerMaster) || !Object.op_Implicit((Object)(object)ownerMaster.inventory)) { return; } master.inventory.CopyItemsFrom(ownerMaster.inventory, Inventory.defaultItemCopyFilterDelegate); if (Object.op_Implicit((Object)(object)masterFriendInfo) && masterFriendInfo.masterItemStacks != null) { master.inventory.AddItemsFrom(masterFriendInfo.masterItemStacks, (Func)((ItemIndex x) => (int)x != -1)); } RemoveBlacklistedItems(master.inventory); master.inventory.RemoveItem(Items.MinionLeash, master.inventory.GetItemCount(Items.MinionLeash)); } public void MinionPingRetarget(orig_SetCurrentPing orig, PingerController self, PingInfo ping) { //IL_0003: 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_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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, ping); if (!NetworkServer.active || !Object.op_Implicit((Object)(object)((PingInfo)(ref ping)).targetGameObject) || !_hasFriend || !Object.op_Implicit((Object)(object)targetMaster) || targetMaster.aiComponents == null) { return; } TeamIndex val = (TeamIndex)(-1); if (Object.op_Implicit((Object)(object)ownerBody) && Object.op_Implicit((Object)(object)ownerBody.teamComponent)) { val = ownerBody.teamComponent.teamIndex; } CharacterBody component = ((PingInfo)(ref ping)).targetGameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.teamComponent) && component.teamComponent.teamIndex != val) { for (int i = 0; i < targetMaster.aiComponents.Length; i++) { BaseAI val2 = targetMaster.aiComponents[i]; val2.currentEnemy.gameObject = ((Component)component).gameObject; val2.currentEnemy.bestHurtBox = component.mainHurtBox; val2.enemyAttention = 10000f; val2.targetRefreshTimer = 10000f; val2.BeginSkillDriver(val2.EvaluateSkillDrivers()); } } } private void FixedUpdate() { if (NetworkServer.active) { FixedUpdateServer(); } ResolveTargetAndUpdateIndicators(); } private bool ResolveTargetMaster() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) bool result = false; if (_trackingTargetMasterNetID != ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value) { GameObject val = Util.FindNetworkObject(new NetworkInstanceId(_trackingTargetMasterNetID)); if (Object.op_Implicit((Object)(object)val)) { targetMaster = val.GetComponent(); if (Object.op_Implicit((Object)(object)targetMaster)) { result = true; targetBody = targetMaster.GetBody(); } } } return result; } private void ResolveTargetAndUpdateIndicators() { if (ResolveTargetMaster() && Object.op_Implicit((Object)(object)targetBody)) { Transform val = (Object.op_Implicit((Object)(object)targetBody.mainHurtBox) ? ((Component)targetBody.mainHurtBox).transform : targetBody.transform); if (Object.op_Implicit((Object)(object)val)) { indicatorCannotBefriend.targetTransform = val; indicatorReadyToBefriend.targetTransform = val; indicatorFriend.targetTransform = val; if (_hasFriend) { indicatorFriend.active = true; indicatorCannotBefriend.active = false; indicatorReadyToBefriend.active = false; } else if (_canBefriendTarget) { indicatorReadyToBefriend.active = true; indicatorFriend.active = false; indicatorCannotBefriend.active = false; } else { indicatorCannotBefriend.active = true; indicatorFriend.active = false; indicatorReadyToBefriend.active = false; } } } else { indicatorCannotBefriend.active = false; indicatorFriend.active = false; indicatorReadyToBefriend.active = false; } } [Server] private void FixedUpdateServer() { //IL_0095: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::FixedUpdateServer()' called on client"); return; } CheckTargetAliveServer(); if (!_hasFriend) { if (ownerBody.HasBuff(BuffCore.chirrSelfBuff)) { ownerBody.RemoveBuff(BuffCore.chirrSelfBuff); } trackerUpdateStopwatch += Time.fixedDeltaTime; if (trackerUpdateStopwatch >= 1f / trackerUpdateFrequency) { trackerUpdateStopwatch = 0f; HurtBox val = SearchForTarget(inputBank.GetAimRay()); if ((Object)(object)val != (Object)(object)trackingTarget) { ChangeTrackingTargetServer(val); } } UpdateCanBefriendServer(); } else { bool flag = CanLeashServer(); if (flag != _canLeash) { _canLeash = flag; } } CheckFriendTargetAliveServer(); } [Server] private void CheckFriendTargetAliveServer() { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::CheckFriendTargetAliveServer()' called on client"); return; } minionTargetResetStopwatch += Time.fixedDeltaTime; if (!(minionTargetResetStopwatch >= 1f)) { return; } minionTargetResetStopwatch -= 1f; if (!Object.op_Implicit((Object)(object)targetMaster) || targetMaster.aiComponents == null) { return; } BaseAI[] aiComponents = targetMaster.aiComponents; foreach (BaseAI val in aiComponents) { if (((val.targetRefreshTimer > 600f || val.enemyAttentionDuration > 600f) && !Object.op_Implicit((Object)(object)val.currentEnemy.gameObject)) || !Object.op_Implicit((Object)(object)val.currentEnemy.healthComponent) || !val.currentEnemy.healthComponent.alive) { val.enemyAttention = 0f; val.targetRefreshTimer = 0f; val.currentEnemy.Reset(); } } } [Server] private void CheckTargetAliveServer() { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::CheckTargetAliveServer()' called on client"); return; } if (Object.op_Implicit((Object)(object)targetMaster) && !targetMaster.IsDeadAndOutOfLivesServer()) { UpdateCanBefriendServer(); return; } if (Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo.Clear(); } trackingTarget = null; if (_hasFriend) { Network_hasFriend = false; } Network_trackingTargetMasterNetID = ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value; } [Server] private void ChangeTrackingTargetServer(HurtBox newHurtbox) { //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::ChangeTrackingTargetServer(RoR2.HurtBox)' called on client"); } else if (Object.op_Implicit((Object)(object)newHurtbox) && Object.op_Implicit((Object)(object)newHurtbox.healthComponent) && Object.op_Implicit((Object)(object)newHurtbox.healthComponent.body) && Object.op_Implicit((Object)(object)newHurtbox.healthComponent.body.master)) { NetworkInstanceId netId = ((NetworkBehaviour)newHurtbox.healthComponent.body.master).netId; uint value = ((NetworkInstanceId)(ref netId)).Value; if (value != ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value && value != _trackingTargetMasterNetID) { Network_trackingTargetMasterNetID = value; trackingTarget = newHurtbox; UpdateCanBefriendServer(); } } } [Server] private void UpdateCanBefriendServer() { //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) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::UpdateCanBefriendServer()' called on client"); } else if (Object.op_Implicit((Object)(object)trackingTarget) && Object.op_Implicit((Object)(object)trackingTarget.healthComponent)) { bool flag = trackingTarget.healthComponent.combinedHealthFraction <= ((Object.op_Implicit((Object)(object)trackingTarget.healthComponent.body) && trackingTarget.healthComponent.body.isChampion && trackingTarget.healthComponent.body.bodyIndex == EnemyCore.brotherHurtIndex) ? befriendChampionHealthFraction : befriendHealthFraction); if (flag != _canBefriendTarget) { Network_canBefriendTarget = flag; } } } private HurtBox SearchForTarget(Ray aimRay) { //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_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: 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_0197: 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_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) search.teamMaskFilter = TeamMask.GetEnemyTeams(teamComponent.teamIndex); search.filterByLoS = true; search.searchOrigin = ((Ray)(ref aimRay)).origin; search.searchDirection = ((Ray)(ref aimRay)).direction; search.sortMode = (SortMode)2; search.maxDistanceFilter = maxTrackingDistance; search.maxAngleFilter = maxTrackingAngle; search.RefreshCandidates(); search.FilterOutGameObject(((Component)this).gameObject); IEnumerable results = search.GetResults(); List list = new List(); foreach (HurtBox item in results) { if (!Object.op_Implicit((Object)(object)item.healthComponent)) { continue; } CharacterBody body = item.healthComponent.body; if (Object.op_Implicit((Object)(object)body)) { bool isPlayerControlled = body.isPlayerControlled; bool isChampion = body.isChampion; bool flag = blacklistedBodies.Contains(body.bodyIndex); bool flag2 = Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCount(Items.HealthDecay) > 0; bool flag3 = (Object)(object)((Component)body).GetComponent() != (Object)null || (Object.op_Implicit((Object)(object)body.master) && (Object)(object)((Component)body.master).GetComponent() != (Object)null); bool flag4 = body.HasBuff(BuffCore.chirrFriendBuff) || body.HasBuff(BuffCore.chirrSelfBuff); bool flag5 = ((Enum)body.bodyFlags).HasFlag((Enum)(object)(BodyFlags)4); bool flag6 = false; if (Object.op_Implicit((Object)(object)body.inventory)) { flag6 = body.inventory.GetItemCount(NemesisInvasionCore.NemesisMarkerItem) > 0; } bool flag7 = body.bodyIndex == EnemyCore.brotherHurtIndex; bool flag8 = flag7 && (canBefriendChampion || hadScepter || HasLunarTrinket()); bool flag9 = body.bodyIndex == EnemyCore.falseSonBossPhase3Index; bool flag10 = flag9 && (canBefriendChampion || hadScepter || HasGoldSeed()) && canBefriendFalseSon; bool flag11 = flag9 || flag7; if (!isPlayerControlled && !flag5 && !flag2 && !flag3 && !flag4 && (((!isChampion || canBefriendChampion) && !flag11) || flag8 || flag10) && !flag && (!flag6 || allowBefriendNemesis)) { list.Add(item); } } } return list.FirstOrDefault(); } [Server] public void BefriendServer(TeamIndex teamIndex) { //IL_0156: Unknown result type (might be due to invalid IL or missing references) //IL_017e: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0436: Invalid comparison between Unknown and I4 //IL_03b5: Unknown result type (might be due to invalid IL or missing references) //IL_03bf: Expected O, but got Unknown //IL_072c: Unknown result type (might be due to invalid IL or missing references) //IL_0731: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_073e: Unknown result type (might be due to invalid IL or missing references) //IL_0743: Unknown result type (might be due to invalid IL or missing references) //IL_0790: Unknown result type (might be due to invalid IL or missing references) //IL_0795: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05a7: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_0863: Unknown result type (might be due to invalid IL or missing references) //IL_0868: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_0875: Unknown result type (might be due to invalid IL or missing references) //IL_087a: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_089e: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::BefriendServer(RoR2.TeamIndex)' called on client"); } else { if (!NetworkServer.active) { return; } if (CanBefriend() && Object.op_Implicit((Object)(object)targetMaster) && Object.op_Implicit((Object)(object)targetBody)) { Network_canBefriendTarget = false; Network_hasFriend = true; ReturnStolenItemsOnGettingHit component = ((Component)targetBody).GetComponent(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.itemStealController)) { component.itemStealController.ForceReclaimAllItemsImmediately(); } if (Object.op_Implicit((Object)(object)Run.instance)) { List instancesList = InstanceTracker.GetInstancesList(); foreach (CombatSquad item in instancesList) { if ((Object)(object)item != (Object)null && item.membersList != null && item.membersList.Contains(targetMaster)) { item.RemoveMember(targetMaster); if (!item.defeatedServer && item.membersList.Count <= 0) { item.TriggerDefeat(); } } } } targetMaster.teamIndex = teamIndex; if (Object.op_Implicit((Object)(object)targetBody.teamComponent)) { targetBody.teamComponent.teamIndex = teamIndex; } if (Object.op_Implicit((Object)(object)ownerMaster)) { if (Object.op_Implicit((Object)(object)targetMaster.minionOwnership)) { targetMaster.minionOwnership.SetOwner(ownerMaster); } AIOwnership component2 = ((Component)targetMaster).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.ownerMaster = ownerMaster; } BaseAI component3 = ((Component)targetMaster).GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.leader.gameObject = ((Component)this).gameObject; component3.aimVectorDampTime = 0.01f; component3.aimVectorMaxSpeed = 360f; } if (!Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo = ((Component)ownerMaster).GetComponent(); if (!Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo = ((MonoBehaviour)(object)ownerMaster).AddComponent(); } } } Util.CleanseBody(targetBody, true, false, true, true, true, false); targetBody.AddTimedBuff(Buffs.HiddenInvincibility, 3f); targetBody.AddBuff(BuffCore.chirrFriendBuff); if (!ownerBody.HasBuff(BuffCore.chirrSelfBuff)) { ownerBody.AddBuff(BuffCore.chirrSelfBuff); } if (Object.op_Implicit((Object)(object)targetBody.healthComponent)) { targetBody.healthComponent.health = targetBody.healthComponent.fullHealth; targetBody.healthComponent.shield = targetBody.healthComponent.fullShield; } if (Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo.masterNetID = _trackingTargetMasterNetID; masterFriendInfo.masterItemStacks = ItemCatalog.RequestItemStackArray(); masterFriendInfo.masterEquipmentIndex = (EquipmentIndex)(-1); masterFriendInfo.masterIndex = targetMaster.masterIndex; if (masterFriendInfo.loadout == null) { masterFriendInfo.loadout = new Loadout(); } targetMaster.loadout.Copy(masterFriendInfo.loadout); } if (Object.op_Implicit((Object)(object)targetMaster.inventory)) { targetMaster.inventory.RemoveItem(Items.UseAmbientLevel, targetMaster.inventory.GetItemCount(Items.UseAmbientLevel)); EquipmentIndex equipmentIndex = targetMaster.inventory.GetEquipmentIndex(); if ((int)equipmentIndex != -1) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex); if (Object.op_Implicit((Object)(object)equipmentDef) && Object.op_Implicit((Object)(object)equipmentDef.passiveBuffDef) && Object.op_Implicit((Object)(object)equipmentDef.passiveBuffDef.eliteDef)) { int num = Mathf.FloorToInt((equipmentDef.passiveBuffDef.eliteDef.healthBoostCoefficient - 1f) * 10f); if (num > 0) { targetMaster.inventory.RemoveItem(Items.BoostHp, num); } int num2 = Mathf.FloorToInt((equipmentDef.passiveBuffDef.eliteDef.damageBoostCoefficient - 1f) * 10f); if (num2 > 0) { targetMaster.inventory.RemoveItem(Items.BoostDamage, num2); } } } masterFriendInfo.masterEquipmentIndex = equipmentIndex; EquipmentDef val = null; if (Object.op_Implicit((Object)(object)masterFriendInfo)) { masterFriendInfo.masterItemStacks = new int[0]; for (int i = 0; i < masterFriendInfo.masterItemStacks.Length; i++) { masterFriendInfo.masterItemStacks[i] = targetMaster.inventory.GetItemCountPermanent((ItemIndex)i); } masterFriendInfo.masterEquipmentIndex = targetMaster.inventory.GetEquipmentIndex(); EquipmentDef equipmentDef2 = EquipmentCatalog.GetEquipmentDef(masterFriendInfo.masterEquipmentIndex); if (Object.op_Implicit((Object)(object)equipmentDef2) && Object.op_Implicit((Object)(object)equipmentDef2.passiveBuffDef) && equipmentDef2.passiveBuffDef.isElite) { val = equipmentDef2; } } EliteDef[] eliteDefs = EliteCatalog.eliteDefs; foreach (EliteDef val2 in eliteDefs) { if (Object.op_Implicit((Object)(object)val2.eliteEquipmentDef) && Object.op_Implicit((Object)(object)val2.eliteEquipmentDef.passiveBuffDef) && targetBody.HasBuff(val2.eliteEquipmentDef.passiveBuffDef)) { masterFriendInfo.EliteBuffs.Add(val2.eliteEquipmentDef.passiveBuffDef.buffIndex); } } if (Object.op_Implicit((Object)(object)val)) { masterFriendInfo.EliteBuffs.Remove(val.passiveBuffDef.buffIndex); } if (StarstormPlugin.blightedElitesLoaded) { HandleBlighted(targetBody, masterFriendInfo.EliteBuffs); } SyncInventory(targetMaster); } if (targetMaster.aiComponents != null) { for (int k = 0; k < targetMaster.aiComponents.Length; k++) { targetMaster.aiComponents[k].currentEnemy.Reset(); } } if (targetBody.bodyIndex == EnemyCore.brotherHurtIndex || targetBody.bodyIndex == EnemyCore.brotherIndex) { targetBody.AddBuff(Buffs.HiddenInvincibility); if (EnemyCore.IsMoon()) { CallRpcSetMithrixConverted(); EnemyCore.FakeMithrixChatMessageServer("SS2UBROTHERHURT_CHIRR_BEFRIEND_1"); } } else if (targetBody.bodyIndex == EnemyCore.falseSonBossPhase3Index) { targetBody.AddBuff(Buffs.HiddenInvincibility); ((MonoBehaviour)this).StartCoroutine(DelayFalseSonChatMessage()); if (Object.op_Implicit((Object)(object)MeridianEventTriggerInteraction.instance) && Object.op_Implicit((Object)(object)MeridianEventTriggerInteraction.instance.mainStateMachine) && ((object)MeridianEventTriggerInteraction.instance.mainStateMachine.state).GetType() == typeof(Phase3)) { Debug.Log((object)"Chirr: Setting MeridianEventTriggerInteraction to next state."); EntityState state = MeridianEventTriggerInteraction.instance.mainStateMachine.state; Phase3 val3 = (Phase3)(object)((state is Phase3) ? state : null); if (!((FSBFPhaseBaseState)val3).spawnedNextState) { ((EntityState)val3).outer.SetNextState(((FSBFPhaseBaseState)val3).nextState); } } } else if (targetBody.bodyIndex == EnemyCore.scavLunar1Index || targetBody.bodyIndex == EnemyCore.scavLunar2Index || targetBody.bodyIndex == EnemyCore.scavLunar3Index || targetBody.bodyIndex == EnemyCore.scavLunar4Index) { NetworkUser val4 = Util.LookUpBodyNetworkUser(ownerBody); if (Object.op_Implicit((Object)(object)val4)) { val4.AwardLunarCoins(10u); } } } else { Debug.LogError((object)"ChirrFriendController: Befriend called without valid target."); } } } [IteratorStateMachine(typeof(d__64))] private IEnumerator DelayFalseSonChatMessage() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__64(0) { <>4__this = this }; } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private void HandleBlighted(CharacterBody body, HashSet eliteBuffs) { //IL_002d: 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) AffixBlightedComponent component = ((Component)body).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (Object.op_Implicit((Object)(object)component.buff1)) { eliteBuffs.Remove(component.buff1.buffIndex); } if (Object.op_Implicit((Object)(object)component.buff2)) { eliteBuffs.Remove(component.buff2.buffIndex); } } } [Client] public void RemoveFriendClient() { if (!NetworkClient.active) { Debug.LogWarning((object)"[Client] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::RemoveFriendClient()' called on server"); } else { CallCmdRemoveFriend(); } } [Command] private void CmdRemoveFriend() { //IL_003b: 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_0029: 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_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_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_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) if (NetworkServer.active && HasFriend() && (!Object.op_Implicit((Object)(object)targetBody) || targetBody.bodyIndex != EnemyCore.brotherHurtIndex) && targetBody.bodyIndex != EnemyCore.brotherIndex && targetBody.bodyIndex != EnemyCore.falseSonBossIndex && targetBody.bodyIndex != EnemyCore.falseSonBossPhase2Index && targetBody.bodyIndex != EnemyCore.falseSonBossPhase3Index) { CallRpcSetTargetBodyGlass(); targetMaster.TrueKill(); } } [ClientRpc] private void RpcSetTargetBodyGlass() { if (Object.op_Implicit((Object)(object)targetBody)) { targetBody.isGlass = true; } } [ClientRpc] private void RpcDontDestroyOnLoad(uint netID) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) GameObject val = Util.FindNetworkObject(new NetworkInstanceId(netID)); if (Object.op_Implicit((Object)(object)val)) { Object.DontDestroyOnLoad((Object)(object)val); } } [ClientRpc] private void RpcSetMithrixConverted() { ChirrCore.survivorDef.outroFlavorToken = "SS2UCHIRR_OUTRO_BROTHER_EASTEREGG"; } [Server] public void HurtFriend(DamageInfo damageInfo) { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::HurtFriend(RoR2.DamageInfo)' called on client"); } else if (Object.op_Implicit((Object)(object)targetBody)) { targetBody.healthComponent.TakeDamage(damageInfo); } } public bool CanLeash() { return _canLeash; } private bool CanLeashServer() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_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) int result; if (_hasFriend && Object.op_Implicit((Object)(object)targetBody)) { Vector3 val = targetBody.corePosition - ownerBody.corePosition; result = ((((Vector3)(ref val)).sqrMagnitude > 25f) ? 1 : 0); } else { result = 0; } return (byte)result != 0; } [Client] public void LeashFriendClient(Vector3 newPos) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogWarning((object)"[Client] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::LeashFriendClient(UnityEngine.Vector3)' called on server"); } else { CallCmdLeashFriend(newPos); } } [Command] private void CmdLeashFriend(Vector3 newPos) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) LeashFriendServer(newPos); } [Server] public void LeashFriendServer(Vector3 newPos) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void Starstorm2Unofficial.Survivors.Chirr.Components.ChirrFriendController::LeashFriendServer(UnityEngine.Vector3)' called on client"); return; } TeleportHelper.TeleportBody(targetBody, newPos); targetBody.AddTimedBuff(Buffs.HiddenInvincibility, 1f); MinionDistractComponent component = ((Component)targetBody).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.ResetLifetime(); } else { ((MonoBehaviour)(object)targetBody).AddComponent(); } } static ChirrFriendController() { //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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Expected O, but got Unknown //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Expected O, but got Unknown //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Expected O, but got Unknown //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Expected O, but got Unknown canBefriendFalseSon = true; minionPingRetarget = false; befriendHealthFraction = 0.5f; befriendChampionHealthFraction = 0.3f; teleportHelperPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/DirectorSpawnProbeHelperPrefab.prefab").WaitForCompletion(); allowBefriendNemesis = false; bodyDamageValueOverrides = new Dictionary(); itemCopyBlacklist = new List { "FreeChest", "TreasureCache", "TreasureCacheVoid", "ITEM_BLUELEMURIAN", "CIScepter", "ITEM_ANCIENT_SCEPTER" }; blacklistedBodies = new HashSet(); kCmdCmdRemoveFriend = -342163104; NetworkBehaviour.RegisterCommandDelegate(typeof(ChirrFriendController), kCmdCmdRemoveFriend, new CmdDelegate(InvokeCmdCmdRemoveFriend)); kCmdCmdLeashFriend = -996103555; NetworkBehaviour.RegisterCommandDelegate(typeof(ChirrFriendController), kCmdCmdLeashFriend, new CmdDelegate(InvokeCmdCmdLeashFriend)); kRpcRpcSetTargetBodyGlass = 1144172699; NetworkBehaviour.RegisterRpcDelegate(typeof(ChirrFriendController), kRpcRpcSetTargetBodyGlass, new CmdDelegate(InvokeRpcRpcSetTargetBodyGlass)); kRpcRpcDontDestroyOnLoad = -549795718; NetworkBehaviour.RegisterRpcDelegate(typeof(ChirrFriendController), kRpcRpcDontDestroyOnLoad, new CmdDelegate(InvokeRpcRpcDontDestroyOnLoad)); kRpcRpcSetMithrixConverted = 583924879; NetworkBehaviour.RegisterRpcDelegate(typeof(ChirrFriendController), kRpcRpcSetMithrixConverted, new CmdDelegate(InvokeRpcRpcSetMithrixConverted)); NetworkCRC.RegisterBehaviour("ChirrFriendController", 0); } private void UNetVersion() { } protected static void InvokeCmdCmdRemoveFriend(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdRemoveFriend called on client."); } else { ((ChirrFriendController)(object)obj).CmdRemoveFriend(); } } protected static void InvokeCmdCmdLeashFriend(NetworkBehaviour obj, NetworkReader reader) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"Command CmdLeashFriend called on client."); } else { ((ChirrFriendController)(object)obj).CmdLeashFriend(reader.ReadVector3()); } } public void CallCmdRemoveFriend() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdRemoveFriend called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdRemoveFriend(); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdRemoveFriend); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdRemoveFriend"); } public void CallCmdLeashFriend(Vector3 newPos) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0058: 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_0022: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdLeashFriend called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdLeashFriend(newPos); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdLeashFriend); val.Write(((Component)this).GetComponent().netId); val.Write(newPos); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdLeashFriend"); } protected static void InvokeRpcRpcSetTargetBodyGlass(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcSetTargetBodyGlass called on server."); } else { ((ChirrFriendController)(object)obj).RpcSetTargetBodyGlass(); } } protected static void InvokeRpcRpcDontDestroyOnLoad(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcDontDestroyOnLoad called on server."); } else { ((ChirrFriendController)(object)obj).RpcDontDestroyOnLoad(reader.ReadPackedUInt32()); } } protected static void InvokeRpcRpcSetMithrixConverted(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcSetMithrixConverted called on server."); } else { ((ChirrFriendController)(object)obj).RpcSetMithrixConverted(); } } public void CallRpcSetTargetBodyGlass() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcSetTargetBodyGlass called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcSetTargetBodyGlass); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcSetTargetBodyGlass"); } public void CallRpcDontDestroyOnLoad(uint netID) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcDontDestroyOnLoad called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcDontDestroyOnLoad); val.Write(((Component)this).GetComponent().netId); val.WritePackedUInt32(netID); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcDontDestroyOnLoad"); } public void CallRpcSetMithrixConverted() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcSetMithrixConverted called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcSetMithrixConverted); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcSetMithrixConverted"); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { if (forceAll) { writer.Write(_canBefriendTarget); writer.Write(_hasFriend); writer.WritePackedUInt32(_trackingTargetMasterNetID); return true; } bool flag = false; if ((((NetworkBehaviour)this).syncVarDirtyBits & (true ? 1u : 0u)) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(_canBefriendTarget); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 2u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(_hasFriend); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 4u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.WritePackedUInt32(_trackingTargetMasterNetID); } if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); } return flag; } public override void OnDeserialize(NetworkReader reader, bool initialState) { if (initialState) { _canBefriendTarget = reader.ReadBoolean(); _hasFriend = reader.ReadBoolean(); _trackingTargetMasterNetID = reader.ReadPackedUInt32(); return; } int num = (int)reader.ReadPackedUInt32(); if (((uint)num & (true ? 1u : 0u)) != 0) { _canBefriendTarget = reader.ReadBoolean(); } if (((uint)num & 2u) != 0) { _hasFriend = reader.ReadBoolean(); } if (((uint)num & 4u) != 0) { _trackingTargetMasterNetID = reader.ReadPackedUInt32(); } } } public class ChirrLeashSkillOverrideController : MonoBehaviour { private ChirrFriendController friendController; private SkillLocator skillLocator; private GenericSkill specialSlot; private EntityStateMachine befriendMachine; private bool appliedSkillOverride = false; public void Awake() { friendController = ((Component)this).GetComponent(); skillLocator = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)skillLocator) && Object.op_Implicit((Object)(object)skillLocator.special)) { specialSlot = skillLocator.special; } befriendMachine = EntityStateMachine.FindByCustomName(((Component)this).gameObject, "Befriend"); if (!Object.op_Implicit((Object)(object)befriendMachine) || !Object.op_Implicit((Object)(object)friendController) || !Object.op_Implicit((Object)(object)specialSlot)) { Object.Destroy((Object)(object)this); } } public void FixedUpdate() { if (!appliedSkillOverride) { if (friendController.HasFriend() && ((object)befriendMachine.state).GetType() == typeof(Idle)) { appliedSkillOverride = true; specialSlot.SetSkillOverride((object)this, Befriend.leashOverrideSkillDef, (SkillOverridePriority)4); specialSlot.stock = 1; } } else if (!friendController.HasFriend() && ((object)befriendMachine.state).GetType() == typeof(Idle)) { appliedSkillOverride = false; specialSlot.UnsetSkillOverride((object)this, Befriend.leashOverrideSkillDef, (SkillOverridePriority)4); } } } [RequireComponent(typeof(CharacterMaster))] public class MasterFriendInfo : MonoBehaviour { public uint masterNetID = ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value; public int[] masterItemStacks; public MasterIndex masterIndex = MasterIndex.none; public EquipmentIndex masterEquipmentIndex; public HashSet EliteBuffs = new HashSet(); public Loadout loadout = null; public void Clear() { //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_0025: Unknown result type (might be due to invalid IL or missing references) masterNetID = ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value; masterItemStacks = null; masterIndex = MasterIndex.none; masterEquipmentIndex = (EquipmentIndex)(-1); loadout = null; EliteBuffs.Clear(); } private void Awake() { Stage.onServerStageComplete += ResetNetID; } private void OnDestroy() { Stage.onServerStageComplete -= ResetNetID; } private void ResetNetID(Stage obj) { masterNetID = ((NetworkInstanceId)(ref NetworkInstanceId.Invalid)).Value; } } public class MinionDistractComponent : MonoBehaviour { public float delayBetweenPulses = 2f; public float distractDuration = 5f; public float baseLifetime = 8f; public float distractRadius = 30f; private float lifetime; private float stopwatch = 0f; private float pulseStopwatch = 0f; private CharacterBody ownerBody; private TeamIndex teamIndex = (TeamIndex)(-1); private void Awake() { lifetime = baseLifetime; ownerBody = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)ownerBody)) { DistractEnemiesServer(); } else { Object.Destroy((Object)(object)this); } } private void FixedUpdate() { if (NetworkServer.active) { if (!ownerBody.HasBuff(BuffCore.chirrFriendDistractBuff)) { ownerBody.AddBuff(BuffCore.chirrFriendDistractBuff); } lifetime -= Time.fixedDeltaTime; pulseStopwatch += Time.fixedDeltaTime; if (pulseStopwatch >= delayBetweenPulses) { DistractEnemiesServer(); pulseStopwatch -= delayBetweenPulses; } if (lifetime <= 0f) { Object.Destroy((Object)(object)this); } } } public void DistractEnemiesServer() { //IL_0068: 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_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: 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_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02eb: Unknown result type (might be due to invalid IL or missing references) //IL_02f2: Expected O, but got Unknown //IL_02e6: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)((Component)this).transform)) { return; } if (Object.op_Implicit((Object)(object)ownerBody) && Object.op_Implicit((Object)(object)ownerBody.teamComponent)) { teamIndex = ownerBody.teamComponent.teamIndex; } List list = new List(); Collider[] array = Physics.OverlapSphere(((Component)this).transform.position, distractRadius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { HealthComponent healthComponent = component.healthComponent; CharacterBody val = null; if (Object.op_Implicit((Object)(object)healthComponent)) { val = healthComponent.body; } if (Object.op_Implicit((Object)(object)healthComponent) && Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.teamComponent) && val.teamComponent.teamIndex != teamIndex && !list.Contains(val)) { list.Add(healthComponent.body); } } } foreach (CharacterBody item in list) { if (!Object.op_Implicit((Object)(object)item.master) || item.isPlayerControlled || item.isChampion || item.master.aiComponents == null || item.master.aiComponents.Length == 0) { continue; } BaseAI[] aiComponents = item.master.aiComponents; foreach (BaseAI val2 in aiComponents) { if ((Object)(object)val2.currentEnemy.gameObject != (Object)(object)((Component)this).gameObject) { val2.currentEnemy.gameObject = ((Component)this).gameObject; val2.currentEnemy.bestHurtBox = ownerBody.mainHurtBox; val2.enemyAttention = distractDuration; val2.targetRefreshTimer = distractDuration; val2.BeginSkillDriver(val2.EvaluateSkillDrivers()); } } if (Object.op_Implicit((Object)(object)OrbManager.instance)) { HealOrb val3 = new HealOrb { healValue = (Object.op_Implicit((Object)(object)ownerBody.healthComponent) ? (ownerBody.healthComponent.fullCombinedHealth * 0.01f) : 10f), target = ownerBody.mainHurtBox, origin = ((Object.op_Implicit((Object)(object)item.mainHurtBox) && Object.op_Implicit((Object)(object)((Component)item.mainHurtBox).transform)) ? ((Component)item.mainHurtBox).transform.position : item.corePosition) }; OrbManager.instance.AddOrb((Orb)(object)val3); } } } public void ResetLifetime() { lifetime = baseLifetime; } private void OnDestroy() { if (Object.op_Implicit((Object)(object)ownerBody) && ownerBody.HasBuff(BuffCore.chirrFriendDistractBuff)) { ownerBody.RemoveBuff(BuffCore.chirrFriendDistractBuff); } } } public class RespawnMasterOnStart : MonoBehaviour { private void Start() { //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) CharacterBody component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component.master)) { component.master.Respawn(component.footPosition, ((Component)this).transform.rotation, false); Object.Destroy((Object)(object)this); } } } } namespace Starstorm2Unofficial.Survivors.Chirr.Achievements { [RegisterAchievement("SS2UChirrClearGameMonsoon", "Skins.SS2UChirr.Mastery", null, 10u, null)] public class ChirrMasteryAchievement : BasePerSurvivorClearGameMonsoonAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) return ChirrCore.bodyIndex; } } } namespace Starstorm2Unofficial.SharedHooks { internal static class GetStatCoefficients { public delegate void HandleStatsInventory(CharacterBody sender, StatHookEventArgs args, Inventory inventory); public static HandleStatsInventory HandleStatsInventoryActions; internal static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)sender.inventory) && HandleStatsInventoryActions != null) { HandleStatsInventoryActions(sender, args, sender.inventory); } } } internal static class OnCharacterDeathGlobal { public delegate void OnCharacterDeathInventory(GlobalEventManager self, DamageReport damageReport, CharacterBody attackerBody, Inventory attackerInventory, CharacterBody victimBody); public static OnCharacterDeathInventory OnCharacterDeathInventoryActions; public static void GlobalEventManager_OnCharacterDeath(orig_OnCharacterDeath orig, GlobalEventManager self, DamageReport damageReport) { orig.Invoke(self, damageReport); if (NetworkServer.active && Object.op_Implicit((Object)(object)damageReport.attackerBody) && Object.op_Implicit((Object)(object)damageReport.attackerBody.inventory) && Object.op_Implicit((Object)(object)damageReport.victimBody)) { OnCharacterDeathInventoryActions?.Invoke(self, damageReport, damageReport.attackerBody, damageReport.attackerBody.inventory, damageReport.victimBody); } } } internal static class OnHitEnemy { public delegate void OnHitNoAttacker(DamageInfo damageInfo, CharacterBody victimBody); public delegate void OnHitAttacker(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody); public delegate void OnHitAttackerInventory(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody, Inventory attackerInventory); public static OnHitNoAttacker OnHitNoAttackerActions; public static OnHitAttacker OnHitAttackerActions; public static OnHitAttackerInventory OnHitAttackerInventoryActions; public static void GlobalEventManager_OnHitEnemy(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { orig.Invoke(self, damageInfo, victim); if (!NetworkServer.active || !(damageInfo.procCoefficient > 0f) || damageInfo.rejected) { return; } CharacterBody val = (Object.op_Implicit((Object)(object)victim) ? victim.GetComponent() : null); if (!Object.op_Implicit((Object)(object)val)) { return; } OnHitNoAttackerActions?.Invoke(damageInfo, val); CharacterBody val2 = (Object.op_Implicit((Object)(object)damageInfo.attacker) ? damageInfo.attacker.GetComponent() : null); if (Object.op_Implicit((Object)(object)val2)) { OnHitAttackerActions?.Invoke(damageInfo, val, val2); if (Object.op_Implicit((Object)(object)val2.inventory)) { OnHitAttackerInventoryActions?.Invoke(damageInfo, val, val2, val2.inventory); } } } } } namespace Starstorm2Unofficial.Modules { public static class BazaarChecker { private static bool inBazaar = false; private static SceneDef bazaarScene = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/bazaar.asset").WaitForCompletion(); internal static void Stage_onStageStartGlobal(Stage obj) { inBazaar = false; if ((Object)(object)SceneCatalog.GetSceneDefForCurrentScene() == (Object)(object)bazaarScene) { inBazaar = true; } } public static bool InBazaar() { return inBazaar; } } internal static class CameraParams { internal static CharacterCameraParams NewCameraParams(string name, Vector3 standardPosition) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) return NewCameraParams(name, 70f, 1.37f, standardPosition, 0.1f); } internal static CharacterCameraParams NewCameraParams(string name, float pitch, Vector3 standardPosition) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) return NewCameraParams(name, pitch, 1.37f, standardPosition, 0.1f); } internal static CharacterCameraParams NewCameraParams(string name, float pitch, float pivotVerticalOffset, Vector3 standardPosition) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) return NewCameraParams(name, pitch, pivotVerticalOffset, standardPosition, 0.1f); } internal static CharacterCameraParams NewCameraParams(string name, float pitch, float pivotVerticalOffset, Vector3 standardPosition, float wallCushion) { //IL_001e: 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) CharacterCameraParams val = ScriptableObject.CreateInstance(); val.maxPitch = pitch; val.minPitch = 0f - pitch; val.pivotVerticalOffset = pivotVerticalOffset; val.standardLocalCameraPos = standardPosition; val.wallCushion = wallCushion; return val; } } public class Files { public static PluginInfo PluginInfo; internal static string assemblyDir => Path.GetDirectoryName(PluginInfo.Location); internal static void Init(PluginInfo info) { PluginInfo = info; } internal static string GetPathToFile(string folderName, string fileName) { return Path.Combine(assemblyDir, folderName, fileName); } } internal static class LanguageTokens { [CompilerGenerated] private static class <>O { public static hook_SetFolders <0>__fixme; } internal static string languageRoot => Path.Combine(assemblyDir, "language"); internal static string assemblyDir => Path.GetDirectoryName(Files.PluginInfo.Location); public static void RegisterLanguageTokens() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown object obj = <>O.<0>__fixme; if (obj == null) { hook_SetFolders val = fixme; <>O.<0>__fixme = val; obj = (object)val; } Language.SetFolders += (hook_SetFolders)obj; } private static void fixme(orig_SetFolders orig, Language self, IEnumerable newFolders) { if (Directory.Exists(languageRoot)) { IEnumerable second = Directory.EnumerateDirectories(Path.Combine(languageRoot), self.name); orig.Invoke(self, newFolders.Union(second)); } else { orig.Invoke(self, newFolders); } } } public class SoundBanks { private static bool initialized; public static string SoundBankDirectory => Path.Combine(Files.assemblyDir, "Assets"); public static void Init() { if (initialized) { return; } initialized = true; using (Stream stream = new FileStream(SoundBankDirectory + "\\Starstorm2Unofficial.bnk", FileMode.Open)) { byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); SoundBanks.Add(array); } if (ModCompat.SS2OCompat.pluginLoaded) { return; } using Stream stream2 = new FileStream(SoundBankDirectory + "\\SS2UMusic.bnk", FileMode.Open); byte[] array2 = new byte[stream2.Length]; stream2.Read(array2, 0, array2.Length); SoundBanks.Add(array2); } } public static class Assets { internal static AssetBundle mainAssetBundle; internal static List networkSoundEventDefs = new List(); internal static List effectDefs = new List(); internal static List networkedObjectPrefabs = new List(); internal static Shader hotpoo = Addressables.LoadAssetAsync((object)"RoR2/Base/Shaders/HGStandard.shader").WaitForCompletion(); internal static Material commandoMat; private static string[] assetNames = new string[0]; internal static GameObject nemmandoCameraCover; internal static Material pureBlackMaterial; internal static GameObject needlerPrefab; internal static GameObject sigilFX; internal static GameObject jetBootsFX; internal static GameObject lightJetBootsFX; public static NetworkSoundEventDef ror1LightningSound; internal static Material matBlueLightningLong; internal static Material matJellyfishLightningLarge; internal static Material matMageMatrixDirectionalLightning; internal static Material matClaySwing; internal static Material matDistortion; internal static Material matMercSwipe; internal static Material matMercSwipeRed; internal static Material matLunarGolem; internal static GameObject exeGunTracer; internal static GameObject exeIonBurstTracer; internal static GameObject exeIonEffect; internal static GameObject exeAxeSlamEffect; internal static GameObject exeIonOrb; internal static GameObject exeIonSuperOrb; internal static NetworkSoundEventDef exeChargeGainSoundDef; internal static NetworkSoundEventDef exeChargeMaxSoundDef; internal static NetworkSoundEventDef exeSuperchargeSoundDef; internal static GameObject nemmandoBossFX; internal static GameObject nemSwingFX; internal static GameObject nemImpactFX; internal static GameObject nemPreImpactFX; internal static GameObject nemChargedSlashFX; internal static GameObject nemChargedSlashStartFX; internal static GameObject nemChargedSlashFXBlue; internal static GameObject nemChargedSlashStartFXBlue; internal static GameObject nemScepterImpactFX; internal static GameObject nemDashEffect; internal static GameObject nemSaberSwingFX; internal static GameObject mercSwingFX; internal static NetworkSoundEventDef nemImpactSoundDef; internal static void Initialize() { LoadAssetBundle(); PopulateAssets(); } internal static void LoadAssetBundle() { if ((Object)(object)mainAssetBundle == (Object)null) { mainAssetBundle = AssetBundle.LoadFromFile(Files.GetPathToFile("Assets", "assetstorm")); ShaderSwapper.UpgradeStubbedShaders(mainAssetBundle); } assetNames = mainAssetBundle.GetAllAssetNames(); } internal static void PopulateAssets() { //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0160: 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_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Expected O, but got Unknown //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Expected O, but got Unknown matBlueLightningLong = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Effects/OrbEffects/LightningStrikeOrbEffect").transform.Find("Ring")).GetComponent()).material); matJellyfishLightningLarge = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/VagrantCannonExplosion").transform.Find("Lightning, Radial")).GetComponent()).material); matMageMatrixDirectionalLightning = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Effects/OmniEffect/OmniImpactVFXLightningMage").transform.Find("Matrix, Directional")).GetComponent()).material); matClaySwing = Object.Instantiate(((Renderer)LegacyResourcesAPI.Load("prefabs/effects/ImpSwipeEffect").GetComponentInChildren()).material); matDistortion = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/LoaderGroundSlam").transform.Find("Sphere, Distortion")).GetComponent()).material); matMercSwipe = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Projectiles/EvisProjectile").GetComponent().ghostPrefab.transform.Find("Base")).GetComponent()).material); matMercSwipeRed = Object.Instantiate(((Renderer)((Component)LegacyResourcesAPI.Load("Prefabs/Projectiles/EvisProjectile").GetComponent().ghostPrefab.transform.Find("Base")).GetComponent()).material); matMercSwipeRed.SetColor("_TintColor", Color.red); matLunarGolem = Addressables.LoadAssetAsync((object)"RoR2/Base/LunarGolem/matLunarGolem.mat").WaitForCompletion(); ror1LightningSound = CreateNetworkSoundEventDef("Play_SS2U_RoR1Lightning"); needlerPrefab = CreateItemDisplay("DisplayNeedler", "matNeedler", Color.white, 3f); sigilFX = mainAssetBundle.LoadAsset("SigilEffect"); sigilFX.AddComponent(); sigilFX.AddComponent(); PrefabAPI.RegisterNetworkPrefab(sigilFX); NemesisItemBehavior.effectPrefab = PrefabAPI.InstantiateClone(mainAssetBundle.LoadAsset("NemmandoBossEffect"), "GenericNemesisEffect", false); jetBootsFX = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/OmniEffect/OmniExplosionVFXCommandoGrenade"), "JetBootsEffect"); RemoveEffect(jetBootsFX.transform.Find("ScaledHitsparks 1")); RemoveEffect(jetBootsFX.transform.Find("UnscaledHitsparks 1")); RemoveEffect(jetBootsFX.transform.Find("Nova Sphere (1)")); ShakeEmitter component = jetBootsFX.GetComponent(); component.radius *= 0.5f; jetBootsFX.GetComponent().soundName = "SS2UJetBootsExplosion"; jetBootsFX.AddComponent(); EffectDef item = new EffectDef(jetBootsFX); effectDefs.Add(item); lightJetBootsFX = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/OmniEffect/OmniExplosionVFXCommandoGrenade"), "JetBootsLightEffect"); RemoveEffect(lightJetBootsFX.transform.Find("ScaledHitsparks 1")); RemoveEffect(lightJetBootsFX.transform.Find("UnscaledHitsparks 1")); RemoveEffect(lightJetBootsFX.transform.Find("Nova Sphere (1)")); RemoveEffect(lightJetBootsFX.transform.Find("ScaledSmoke, Billboard")); RemoveEffect(lightJetBootsFX.transform.Find("Unscaled Smoke, Billboard")); RemoveEffect(lightJetBootsFX.transform.Find("Physics Sparks")); RemoveEffect(lightJetBootsFX.transform.Find("Flash, Soft Glow")); RemoveEffect(lightJetBootsFX.transform.Find("Unscaled Flames")); RemoveEffect(lightJetBootsFX.transform.Find("Dash, Bright")); lightJetBootsFX.GetComponent().radius = 0f; lightJetBootsFX.GetComponent().soundName = "SS2UJetBootsExplosion"; lightJetBootsFX.AddComponent(); EffectDef item2 = new EffectDef(lightJetBootsFX); effectDefs.Add(item2); } private static void RemoveEffect(Transform transformToKill) { if (Object.op_Implicit((Object)(object)transformToKill)) { Object.DestroyImmediate((Object)(object)((Component)transformToKill).gameObject); } } internal static void LoadExecutionerEffects() { //IL_02f6: 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_03f3: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) exeChargeGainSoundDef = CreateNetworkSoundEventDef("SS2UExecutionerGainCharge"); exeChargeMaxSoundDef = CreateNetworkSoundEventDef("SS2UExecutionerMaxCharge"); exeSuperchargeSoundDef = CreateNetworkSoundEventDef("SS2UExecutionerSupercharge"); exeGunTracer = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerCommandoDefault"), "TracerExecutionerDefault", true); if (!Object.op_Implicit((Object)(object)exeGunTracer.GetComponent())) { exeGunTracer.AddComponent(); } if (!Object.op_Implicit((Object)(object)exeGunTracer.GetComponent())) { exeGunTracer.AddComponent(); } if (!Object.op_Implicit((Object)(object)exeGunTracer.GetComponent())) { exeGunTracer.AddComponent(); } Tracer component = exeGunTracer.GetComponent(); component.speed = 300f; component.length = 16f; LineRenderer[] componentsInChildren = exeGunTracer.GetComponentsInChildren(); foreach (LineRenderer val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val)) { val.widthMultiplier = 0.4f; } } AddEffect(exeGunTracer); exeIonBurstTracer = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerCommandoShotgun"), "TracerExecutionerIonBurst", true); if (!Object.op_Implicit((Object)(object)exeIonBurstTracer.GetComponent())) { exeIonBurstTracer.AddComponent(); } if (!Object.op_Implicit((Object)(object)exeIonBurstTracer.GetComponent())) { exeIonBurstTracer.AddComponent(); } if (!Object.op_Implicit((Object)(object)exeIonBurstTracer.GetComponent())) { exeIonBurstTracer.AddComponent(); } Tracer component2 = exeIonBurstTracer.GetComponent(); component2.speed = 240f; component2.length = 21f; LineRenderer[] componentsInChildren2 = exeIonBurstTracer.GetComponentsInChildren(); foreach (LineRenderer val2 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val2)) { val2.widthMultiplier *= 2f; } } AddEffect(exeIonBurstTracer); exeIonOrb = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/OrbEffects/InfusionOrbEffect"), "ExecutionerIonOrbEffect", true); if (!Object.op_Implicit((Object)(object)exeIonOrb.GetComponent())) { exeIonOrb.AddComponent(); } Object.DestroyImmediate((Object)(object)exeIonOrb.GetComponent()); ((Component)exeIonOrb.transform.Find("TrailParent").Find("Trail")).GetComponent().widthMultiplier = 0.5f; ((Renderer)((Component)exeIonOrb.transform.Find("TrailParent").Find("Trail")).GetComponent()).material = matBlueLightningLong; ((Component)exeIonOrb.transform.Find("VFX")).gameObject.SetActive(false); exeIonOrb.transform.Find("VFX").localScale = Vector3.one * 3f; AddEffect(exeIonOrb); exeIonSuperOrb = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/OrbEffects/InfusionOrbEffect"), "ExecutionerIonSuperOrbEffect", true); if (!Object.op_Implicit((Object)(object)exeIonSuperOrb.GetComponent())) { exeIonSuperOrb.AddComponent(); } Object.DestroyImmediate((Object)(object)exeIonSuperOrb.GetComponent()); ((Component)exeIonSuperOrb.transform.Find("TrailParent").Find("Trail")).GetComponent().widthMultiplier = 1.5f; ((Renderer)((Component)exeIonSuperOrb.transform.Find("TrailParent").Find("Trail")).GetComponent()).material = matBlueLightningLong; ((Component)exeIonSuperOrb.transform.Find("VFX")).gameObject.SetActive(false); exeIonSuperOrb.transform.Find("VFX").localScale = Vector3.one * 3f; AddEffect(exeIonSuperOrb); exeIonEffect = LoadEffect("IonEffect", parentToTransform: true); exeAxeSlamEffect = LoadEffect("AxeSlamEffect", "", parentToTransform: false, applyScale: false); } internal static void LoadNemmandoEffects() { //IL_02a7: 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) nemImpactSoundDef = CreateNetworkSoundEventDef("SS2UNemmandoSaberHit"); nemmandoCameraCover = mainAssetBundle.LoadAsset("NemmandoCameraCover"); pureBlackMaterial = mainAssetBundle.LoadAsset("matPureBlack"); nemmandoBossFX = mainAssetBundle.LoadAsset("NemmandoBossEffect"); nemSwingFX = LoadEffect("NemmandoSwingEffect", "", parentToTransform: true); nemImpactFX = LoadEffect("ImpactNemmandoSlash", "", parentToTransform: false); nemPreImpactFX = LoadEffect("PreImpactScepterStrike", "", parentToTransform: false); nemScepterImpactFX = LoadEffect("ImpactScepterStrike", "", parentToTransform: false); nemSaberSwingFX = LoadEffect("NemmandoSwingEffectSaber", "", parentToTransform: true); mercSwingFX = LoadEffect("NemmandoSwingEffectMerc", "", parentToTransform: true); nemChargedSlashFX = LoadEffect("NemmandoChargeSlashEffect", "", parentToTransform: true); nemChargedSlashStartFX = LoadEffect("NemmandoChargeSlashStartEffect", "", parentToTransform: true); nemChargedSlashFXBlue = LoadEffect("NemmandoChargeSlashEffectBlue", "", parentToTransform: true); nemChargedSlashStartFXBlue = LoadEffect("NemmandoChargeSlashStartEffectBlue", "", parentToTransform: true); ((Renderer)nemSwingFX.GetComponent()).material = matMercSwipeRed; ((Renderer)nemSaberSwingFX.GetComponent()).material = matMercSwipeRed; ((Renderer)((Component)nemSaberSwingFX.transform.Find("Distortion")).GetComponent()).material = matDistortion; ((Renderer)mercSwingFX.GetComponent()).material = matMercSwipe; ((Renderer)((Component)mercSwingFX.transform.Find("Distortion")).GetComponent()).material = matDistortion; ((Renderer)((Component)nemChargedSlashStartFX.transform.Find("Round")).GetComponent()).material = matDistortion; ((Renderer)((Component)nemChargedSlashStartFXBlue.transform.Find("Round")).GetComponent()).material = matDistortion; nemDashEffect = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/OrbEffects/InfusionOrbEffect"), "NemmandoDashOrbEffect", true); if (!Object.op_Implicit((Object)(object)nemDashEffect.GetComponent())) { nemDashEffect.AddComponent(); } Object.DestroyImmediate((Object)(object)nemDashEffect.GetComponent()); Object.DestroyImmediate((Object)(object)((Component)nemDashEffect.transform.Find("TrailParent")).gameObject); Object.DestroyImmediate((Object)(object)((Component)nemDashEffect.transform.Find("VFX")).gameObject); GameObject val = Object.Instantiate(mainAssetBundle.LoadAsset("NemmandoDashEffect")); val.transform.parent = nemDashEffect.transform; val.transform.localRotation = Quaternion.identity; val.transform.localPosition = Vector3.zero; AddEffect(nemDashEffect); } private static GameObject CreateItemDisplay(string prefabName, string matName, Color emColor, float emPower) { //IL_000f: 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_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) GameObject val = mainAssetBundle.LoadAsset(prefabName); Material val2 = CreateMaterial(matName, emPower, emColor); MeshRenderer component = val.GetComponent(); ((Renderer)component).material = val2; val.AddComponent().rendererInfos = (RendererInfo[])(object)new RendererInfo[1] { new RendererInfo { defaultMaterial = val2, renderer = (Renderer)(object)component, ignoreOverlays = false, defaultShadowCastingMode = (ShadowCastingMode)1 } }; return val; } private static GameObject CreateTracer(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; AddEffect(val); return val; } internal static NetworkSoundEventDef CreateNetworkSoundEventDef(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance(); val.akId = AkSoundEngine.GetIDFromString(eventName); val.eventName = eventName; ((Object)val).name = "nse" + eventName; networkSoundEventDefs.Add(val); return val; } public static void ConvertAllRenderersToHopooShader(GameObject objectToConvert) { //IL_00f9: 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_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)objectToConvert)) { return; } Renderer[] componentsInChildren = objectToConvert.GetComponentsInChildren(); foreach (Renderer val in componentsInChildren) { if (!Object.op_Implicit((Object)(object)val) || !Object.op_Implicit((Object)(object)val.material)) { continue; } bool flag = Object.op_Implicit((Object)(object)val.material.shader) && (((Object)val.material.shader).name == "Standard" || ((Object)val.material.shader).name == "Autodesk Interactive"); if (((Object)val).name == "UseGlassShader" || ((Object)val).name == "UseGlass2Shader" || ((Object)val).name == "UseGlass3Shader") { if (((Object)val).name == "UseGlassShader") { val.material = Addressables.LoadAssetAsync((object)"RoR2/Base/Infusion/matInfusionGlass.mat").WaitForCompletion(); } else if (((Object)val).name == "UseGlass2Shader") { val.material = Addressables.LoadAssetAsync((object)"RoR2/DLC1/HealingPotion/matHealingPotionGlass.mat").WaitForCompletion(); } else if (((Object)val).name == "UseGlass3Shader") { val.material = Addressables.LoadAssetAsync((object)"RoR2/DLC1/VendingMachine/matVendingMachineGlass.mat").WaitForCompletion(); } } else if (flag) { val.material.shader = hotpoo; } } } internal static RendererInfo[] SetupRendererInfos(GameObject obj) { //IL_001a: 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_0049: 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) MeshRenderer[] componentsInChildren = obj.GetComponentsInChildren(); RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[componentsInChildren.Length]; for (int i = 0; i < componentsInChildren.Length; i++) { array[i] = new RendererInfo { defaultMaterial = ((Renderer)componentsInChildren[i]).material, renderer = (Renderer)(object)componentsInChildren[i], defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }; } return array; } internal static Texture LoadCharacterIcon(string characterName) { return mainAssetBundle.LoadAsset("tex" + characterName + "Icon"); } internal static GameObject LoadCrosshair(string crosshairName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair") == (Object)null) { return LegacyResourcesAPI.Load("Prefabs/Crosshair/StandardCrosshair"); } return LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); } private static GameObject LoadEffect(string resourceName) { return LoadEffect(resourceName, "", parentToTransform: false); } private static GameObject LoadEffect(string resourceName, string soundName) { return LoadEffect(resourceName, soundName, parentToTransform: false); } private static GameObject LoadEffect(string resourceName, bool parentToTransform) { return LoadEffect(resourceName, "", parentToTransform); } private static GameObject LoadEffect(string resourceName, string soundName, bool parentToTransform) { return LoadEffect(resourceName, "", parentToTransform, applyScale: true); } private static GameObject LoadEffect(string resourceName, string soundName, bool parentToTransform, bool applyScale) { //IL_0091: 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) bool flag = false; for (int i = 0; i < assetNames.Length; i++) { if (assetNames[i].Contains(resourceName.ToLower())) { flag = true; i = assetNames.Length; } } if (!flag) { Debug.LogError((object)("Failed to load effect: " + resourceName + " because it does not exist in the AssetBundle")); return null; } GameObject val = mainAssetBundle.LoadAsset(resourceName); val.AddComponent().duration = 12f; val.AddComponent(); val.AddComponent().vfxPriority = (VFXPriority)2; EffectComponent val2 = val.AddComponent(); val2.applyScale = applyScale; val2.effectIndex = (EffectIndex)(-1); val2.parentToReferencedTransform = parentToTransform; val2.positionAtReferencedTransform = true; val2.soundName = soundName; AddEffect(val, soundName); return val; } internal static void AddEffect(GameObject effectPrefab) { AddEffect(effectPrefab, ""); } internal static void AddEffect(GameObject effectPrefab, string soundName) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown EffectDef val = new EffectDef(); val.prefab = effectPrefab; val.prefabEffectComponent = effectPrefab.GetComponent(); val.prefabName = ((Object)effectPrefab).name; val.prefabVfxAttributes = effectPrefab.GetComponent(); val.spawnSoundEventName = soundName; if (!Object.op_Implicit((Object)(object)effectPrefab.GetComponent())) { effectPrefab.AddComponent(); } effectDefs.Add(val); } public static Material CreateMaterial(string materialName, float emission, Color emissionColor, float normalStrength) { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: 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) if (!Object.op_Implicit((Object)(object)commandoMat)) { commandoMat = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/matCommandoDualies.mat").WaitForCompletion(); } Material val = Object.Instantiate(commandoMat); Material val2 = mainAssetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val2)) { Debug.LogError((object)("Failed to load material: " + materialName + " - Check to see that the name in your Unity project matches the one in this code")); return commandoMat; } if (Object.op_Implicit((Object)(object)val2.shader) && !(((Object)val2.shader).name == "Standard") && !(((Object)val2.shader).name == "Autodesk Interactive")) { Debug.Log((object)("CreateMaterial: " + materialName + " has shader set to something other than standard (" + ((Object)val2.shader).name + "). Assuming this is a stubbed shader, parameters will be ignored.")); return val2; } ((Object)val).name = materialName; val.SetColor("_Color", val2.GetColor("_Color")); val.SetTexture("_MainTex", val2.GetTexture("_MainTex")); val.SetColor("_EmColor", emissionColor); val.SetFloat("_EmPower", emission); val.SetTexture("_EmTex", val2.GetTexture("_EmissionMap")); val.SetFloat("_NormalStrength", normalStrength); return val; } public static Material CreateMaterial(string materialName) { return CreateMaterial(materialName, 0f); } public static Material CreateMaterial(string materialName, float emission) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(materialName, emission, Color.white); } public static Material CreateMaterial(string materialName, float emission, Color emissionColor) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(materialName, emission, emissionColor, 0f); } public static Material LoadMaterialFromAssetBundle(string materialName) { return mainAssetBundle.LoadAsset(materialName); } } internal static class Config { internal static ConfigEntry ss_test; internal static ConfigEntry cursed; internal static ConfigEntry RestKeybind; internal static ConfigEntry TauntKeybind; internal static ConfigEntry EnableGrandMasteryCommando; internal static ConfigEntry EnableGrandMasteryToolbot; internal static ConfigEntry EnableExecutioner; internal static ConfigEntry EnableNemmando; internal static ConfigEntry EnableCyborg; internal static ConfigEntry EnableChirr; internal static ConfigEntry EnablePyro; internal static ConfigEntry EnableNucleator; internal static ConfigEntry EnableItems; internal static List> ItemToggles; internal static ConfigEntry EnableEquipment; internal static ConfigEntry EnableFunnyCanister; internal static ConfigEntry ChirrEgoFullHeadReplacement; internal static ConfigEntry NemmandoDecisiveMoveSpeedScaling; internal static ConfigEntry NemmandoSecondaryAlwaysFullCharge; internal static ConfigEntry EnableTyphoon; internal static ConfigEntry TyphoonIncreaseSpawnCap; internal static ConfigEntry EnableEvents; internal static ConfigEntry stormCreditCost; internal static ConfigEntry enableOptimizedStormVisuals; internal static ConfigEntry disableStormVisuals; internal static ConfigEntry ForceUnlockSkins; internal static ConfigEntry EnableUnlockAll; internal static ConfigEntry EnableVoid; internal static void Initialize() { //IL_07af: Unknown result type (might be due to invalid IL or missing references) //IL_07de: Unknown result type (might be due to invalid IL or missing references) ModCompat.SS2OCompat.autoConfig = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Compatibility", "SS2 Official - Autoconfig", true, "Automatically disable duplicated features that exist in SS2 Official. Disable this if you want to pick and choose which things to keep.").Value; ModCompat.SurvariantsCompat.useVariants = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Compatibility", "Survariants", true, "Enable Survariants compat. Nemesis characters will be variants of their original character, and duplicated SS2 Official characters will be variants of those characters if they are enabled.").Value; EnableUnlockAll = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Unlock All", "Unlock Gameplay", false, "Automatically unlock all survivors and alt skills."); ForceUnlockSkins = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Unlock All", "Unlock Skins", false, "Automatically unlock all skins."); AchievementHider.enabled = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Unlock All", "Hide Disabled Achievements", true, "Achievements for config-disabled content will not show up in the logbook (might still show up in other places).").Value; cursed = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Cursed", "Enabled", false, "Enables Starstorm 2's lesser serious features, featuring content ranging from skins that slightly clash with lore to high quality shitposts - here be dragons!."); EnableItems = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Items", "Enabled", true, "Enables Starstorm 2's items. Set to false to disable all of Starstorm 2's items."); EnableEquipment = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Equipment", "Enabled", true, "Enables Starstorm 2's equipment. Set to false to disable all of Starstorm 2's equipment."); EnableExecutioner = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Executioner", true, "Enable this survivor."); EnableNemmando = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Nemesis Commando", true, "Enable this survivor."); EnableCyborg = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Cyborg", true, "Enable this survivor."); EnableChirr = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Chirr", true, "Enable this survivor."); EnablePyro = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Pyro", true, "Enable this survivor."); EnableNucleator = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors", "Nucleator", true, "Enable this survivor."); EnableGrandMasteryCommando = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Skins", "Commando: Grand Mastery", true, "Enable this skin."); EnableGrandMasteryToolbot = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Skins", "MUL-T: Grand Mastery", true, "Enable this skin."); EnableVoid = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Enabled", true, "Enables gameplay changes related to the Void Fields hidden realm. Set to false to make Void Fields behave as it does in vanilla RoR2. Note that some unlocks will be unavailable if this is disabled."); NemesisInvasionCore.scaleHPWithPlayercount = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Scale HP with Playercount", true, "Nemesis Bosses gain extra HP per connected player.").Value; NemesisInvasionCore.hpMult = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - HP Multiplier", 1f, "Multiplies Nemesis Boss HP. Stacks multiplicatively with Playercount HP Scaling. Must be > 1").Value; NemesisInvasionCore.damageMult = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Damage Multiplier", 1f, "Multiplies Nemesis Boss damage. Must be > 1").Value; NemesisInvasionCore.speedMult = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Speed Multiplier", 1f, "Multiplies Nemesis Boss movement speed. Must be > 1").Value; NemesisInvasionCore.moveSpeedCap = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Speed Cap", 0f, "Maximum raw movement speed value for Nemesis Bosses. Set to 0 to disable this check.").Value; NemesisInvasionCore.bonusArmor = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Bonus Armor", 0f, "Additional armor that Nemesis Bosses recieve.").Value; NemesisInvasionManager.useVoidTeam = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Use Void Team", false, "Invaders are a part of the void team.").Value; NemesisInvasionManager.requireFullVoid = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Require Void Fields Completion", true, "Invasion only starts if Void Fields was successfully cleared. If false, you only need to enter Void Fields to trigger the invasion.").Value; NemesisInvasionManager.useAIBlacklist = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Item Blacklists", "Nemesis Invasion - Blacklist AIBlacklist items.", true, "Prevents invaders from getting items with this tag.").Value; NemesisInvasionManager.useMithrixBlacklist = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Item Blacklists", "Nemesis Invasion - Item Blacklists - Blacklist BrotherBlacklist (Mithrix) items.", true, "Prevents invaders from getting items with this tag.").Value; NemesisInvasionManager.useEngiTurretBlacklist = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Item Blacklists", "Nemesis Invasion - Item Blacklists - Blacklist CannotCopy (Engi Turret) items.", true, "Prevents invaders from getting items with this tag.").Value; NemesisInvasionManager.useHealingBlacklist = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Item Blacklists", "Nemesis Invasion - Item Blacklists - Blacklist Healing items.", true, "Prevents invaders from getting items with this tag.").Value; NemesisInvasionManager.nemesisItemBlacklistString = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Item Blacklists", "Nemesis Invasion - Additional Item Blacklist", "IceRing, FireRing, ElementalRingVoid, FlatHealth, PersonalShield, ArmorPlate, MushroomVoid, Bear, BearVoid, ITEM_BLOODMASK, BleedOnHit, BleedOnHitVoid, BleedOnHitAndExplode, Missile, MissileVoid, PrimarySkillShuriken, ShockNearby, NovaOnHeal, Thorns, DroneWeapons, Icicle, ImmuneToDebuff, CaptainDefenseMatrix, ExtraLife, ExtraLifeVoid, ExplodeOnDeathVoid", "List item codenames separated by commas (ex. Behemoth, ShockNearby, Clover). List of item codenames can be found by using the list_item console command from the DebugToolKit mod.").Value; ModCompat.SS2OCompat.enableNemCommandoInvasion = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Compatibility", "SS2 Official Nemesis Commando", true, "Add this survivor to the Nemesis Invasion event.").Value; ModCompat.SS2OCompat.enableNemMercInvasion = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes :: Compatibility", "SS2 Official Nemesis Mercenary", true, "Add this survivor to the Nemesis Invasion event.").Value; ChirrFriendController.allowBefriendNemesis = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Void Fields changes", "Nemesis Invasion - Allow Chirr Befriend", false, "Allow Chirr to befriend Nemesis Invaders when she has Scepter. Might cause crashes?").Value; EnableTyphoon = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Typhoon", "Enabled", true, "Enables Starstorm 2's Typhoon difficulty. Set to false to prevent Typhoon from appearing in difficulty selection."); TyphoonIncreaseSpawnCap = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Typhoon", "Increase Spawn Limit", true, "Increases the enemy spawn limit when Typhoon difficulty is selected. May cause bugs or performance issues. Disable to use the default spawn limit."); EnableEvents = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Events", "Enabled", true, "Enables Starstorm 2's random events, including storms. Set to false to disable events."); stormCreditCost = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Events", "Storm Credit Cost", 150, "Credit cost to begin a storm. Increase this value to make storms less frequent."); enableOptimizedStormVisuals = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Events", "Enable Optimized Storm Visuals", false, "Changes storm visuals like rain and snow to have far fewer particles to improve performance"); disableStormVisuals = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Events", "Disable Storm Visuals", false, "Removes storm particle effects entirely if they're still hurting your computer. Doesn't disable environment fog/filter"); ChirrEgoFullHeadReplacement = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Chirr", "Egocentrism full head replacement.", false, "Egocentrism replaces Chirr's head (looks a bit jank)."); NemmandoDecisiveMoveSpeedScaling = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Nemesis Commando", "Decisive Strike Move Speed Scaling", true, "Decisive Strike's dash distance scales with move speed. (Client-Side)"); NemmandoSecondaryAlwaysFullCharge = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Nemesis Commando", "Distant Gash Always Fully Charges", false, "Distant Gash fully charges without holding down the button. (Client-Side)"); FireLeap.leapAirControl = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Nucleator", "Utility Air Control", false, "Utility gains extra air control at higher movement speeds (this causes momentum to be preserved worse). (Client-Side)"); ChargeLeap.stationaryLeap = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Nucleator", "Utility Stops Movement", false, "Charging the Utility makes you stand still. (Client-Side)"); CyborgCore.useEnergyRework = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "Enable Energy Core Passive (Client-Side)", true, "Cyborg skills use a single Energy Pool instead of having cooldowns. Set this to false to get the old Cyborg kit."); CyborgCrosshairChargeController.useSimpleEnergyBar = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "UI - Simple Energy Meter", false, "Use a simplified Energy Meter. Ignores other Energy Meter options."); CyborgCrosshairChargeController.energyBarScale = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "UI - Energy Meter Scale", 0.6f, "Size of Energy Meter."); CyborgCrosshairChargeController.fontSize = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "UI - Energy Meter Font Size", 24f, "Size of Energy Meter number text."); CyborgCrosshairChargeController.energyBarXPos = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "UI - Energy Meter X Position", 0f, "Horizontal position of Energy Meter."); CyborgCrosshairChargeController.energyBarYPos = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Survivors :: Cyborg", "UI - Energy Meter Y Position", -160f, "Vertical position of Energy Meter."); RestKeybind = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Keybinds", "Rest Emote", new KeyboardShortcut((KeyCode)49, Array.Empty()), "Keybind used for the Rest emote."); TauntKeybind = ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind("Starstorm 2 :: Keybinds", "Taunt Emote", new KeyboardShortcut((KeyCode)50, Array.Empty()), "Keybind used for the Taunt emote."); if (StarstormPlugin.riskOfOptionsLoaded) { RiskOfOptionsCompat(); } if (!ModCompat.SS2OCompat.ShouldLoadAutoconfigContent()) { Debug.LogWarning((object)"SS2U: Disabling autoconfig content."); EnableEvents.Value = false; EnableVoid.Value = false; EnableTyphoon.Value = false; EnableGrandMasteryCommando.Value = false; EnableGrandMasteryToolbot.Value = false; } } internal static ConfigEntry CharacterEnableConfig(string characterName) { return CharacterEnableConfig(characterName, characterName); } internal static ConfigEntry CharacterEnableConfig(string characterName, string fullName) { //IL_001b: 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: Expected O, but got Unknown //IL_005c: Expected O, but got Unknown return ((BaseUnityPlugin)StarstormPlugin.instance).Config.Bind(new ConfigDefinition("Starstorm 2 :: " + characterName, "Enabled"), true, new ConfigDescription("Enables Starstorm 2's " + fullName + " survivor. Set to false to disable Starstorm 2's " + fullName + " survivor.", (AcceptableValueBase)null, Array.Empty())); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void RiskOfOptionsCompat() { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Expected O, but got Unknown //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Expected O, but got Unknown //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Expected O, but got Unknown //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Expected O, but got Unknown //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Expected O, but got Unknown ModSettingsManager.SetModIcon(Assets.mainAssetBundle.LoadAsset("modIcon.png")); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(RestKeybind)); ModSettingsManager.AddOption((BaseOption)new KeyBindOption(TauntKeybind)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(NemmandoSecondaryAlwaysFullCharge)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(NemmandoDecisiveMoveSpeedScaling)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(FireLeap.leapAirControl)); ModSettingsManager.AddOption((BaseOption)new CheckBoxOption(CyborgCrosshairChargeController.useSimpleEnergyBar)); } public static bool GetKeyPressed(ConfigEntry entry) { //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_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_0020: 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_0052: Unknown result type (might be due to invalid IL or missing references) KeyboardShortcut value = entry.Value; foreach (KeyCode modifier in ((KeyboardShortcut)(ref value)).Modifiers) { if (!Input.GetKey(modifier)) { return false; } } value = entry.Value; return Input.GetKeyDown(((KeyboardShortcut)(ref value)).MainKey); } } internal class ContentPacks : IContentPackProvider { [CompilerGenerated] private sealed class d__7 : IEnumerator, IDisposable, IEnumerator { 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__7(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__6 : IEnumerator, IDisposable, IEnumerator { 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__6(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__5 : IEnumerator, IDisposable, IEnumerator { 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__5(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(Prefabs.bodyPrefabs.ToArray()); <>4__this.contentPack.buffDefs.Add(BuffCore.buffDefs.ToArray()); <>4__this.contentPack.effectDefs.Add(Assets.effectDefs.ToArray()); <>4__this.contentPack.entityStateTypes.Add(States.entityStates.ToArray()); <>4__this.contentPack.equipmentDefs.Add(Items.equipmentDefs.ToArray()); <>4__this.contentPack.itemDefs.Add(Items.itemDefs.ToArray()); <>4__this.contentPack.masterPrefabs.Add(Prefabs.masterPrefabs.ToArray()); <>4__this.contentPack.networkSoundEventDefs.Add(Assets.networkSoundEventDefs.ToArray()); <>4__this.contentPack.projectilePrefabs.Add(Prefabs.projectilePrefabs.ToArray()); <>4__this.contentPack.skillDefs.Add(Skills.skillDefs.ToArray()); <>4__this.contentPack.skillFamilies.Add(Skills.skillFamilies.ToArray()); <>4__this.contentPack.survivorDefs.Add(Prefabs.survivorDefinitions.ToArray()); <>4__this.contentPack.unlockableDefs.Add(Unlockables.unlockableDefs.ToArray()); <>4__this.contentPack.networkedObjectPrefabs.Add(Assets.networkedObjectPrefabs.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 string identifier => "com.ChirrLover.Starstorm2Unofficial"; 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__5))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__5(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__6))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__6(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__7))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__7(0) { <>4__this = this, args = args }; } } internal static class Effects { private static List skinList; internal static SkinEffectData[] skinInfos; internal static void Initialize() { skinList = new List(); skinList.Add(new SkinEffectData { skinNameToken = "SS2UEXECUTIONER_DEFAULT_SKIN_NAME", shootSound = "SS2UExecutionerPrimary", ionShootSound = "SS2UExecutionerSecondary", bodyName = "SS2UEXECUTIONER_NAME" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UEXECUTIONER_MASTERY_SKIN_NAME", shootSound = "SS2UExecutionerPrimary", ionShootSound = "SS2UExecutionerSecondary" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UEXECUTIONER_KNIGHT_SKIN_NAME", shootSound = "SS2UExecutionerPrimary", ionShootSound = "SS2UExecutionerSecondary" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UEXECUTIONER_WASTELANDER_SKIN_NAME", shootSound = "SS2UWastelanderPrimary", ionShootSound = "SS2UWastelanderSecondary" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UNEMMANDO_DEFAULT_SKIN_NAME", impactEffect = Assets.nemImpactFX, impactSoundDef = Assets.nemImpactSoundDef, defaultSwordEmission = 0f, chargeEffectString = "SwordChargeEffect", chargeAttackEffect = Assets.nemChargedSlashStartFX, chargeAttackLoopEffect = Assets.nemChargedSlashFX, swingEffect = Assets.nemSaberSwingFX, swingSound = "SS2UNemmandoSwingSaber", shootSound = "SS2UNemmandoShoot", bodyName = "SS2UNEMMANDO_NAME" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UNEMMANDO_MASTERY_SKIN_NAME", impactEffect = Assets.nemImpactFX, impactSoundDef = Assets.nemImpactSoundDef, defaultSwordEmission = 0f, chargeEffectString = "SwordChargeEffect", chargeAttackEffect = Assets.nemChargedSlashStartFX, chargeAttackLoopEffect = Assets.nemChargedSlashFX, swingEffect = Assets.nemSaberSwingFX, swingSound = "SS2UNemmandoSwingSaber", shootSound = "SS2UNemmandoShootClassic", hasSheath = true }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UNEMMANDO_CLASSIC_SKIN_NAME", impactEffect = Assets.nemImpactFX, impactSoundDef = Assets.nemImpactSoundDef, defaultSwordEmission = 1f, chargeEffectString = "SwordChargeEffect", chargeAttackEffect = Assets.nemChargedSlashStartFX, chargeAttackLoopEffect = Assets.nemChargedSlashFX, swingEffect = Assets.nemSaberSwingFX, swingSound = "SS2UNemmandoSwingSaber", shootSound = "SS2UNemmandoShootClassic" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UNEMMANDO_COMMANDO_SKIN_NAME", impactEffect = LegacyResourcesAPI.Load("Prefabs/Effects/OmniEffect/OmniImpactVFXSlashMerc"), impactSoundDef = LegacyResourcesAPI.Load("NetworkSoundEventDefs/nseMercSwordImpact"), defaultSwordEmission = 1f, chargeEffectString = "SwordChargeEffectBlue", chargeAttackEffect = Assets.nemChargedSlashStartFXBlue, chargeAttackLoopEffect = Assets.nemChargedSlashFXBlue, swingEffect = Assets.mercSwingFX, swingSound = "Play_merc_sword_swing", shootSound = "Play_commando_M1" }); skinList.Add(new SkinEffectData { skinNameToken = "SS2UNEMMANDO_VERGIL_SKIN_NAME", impactEffect = LegacyResourcesAPI.Load("Prefabs/Effects/OmniEffect/OmniImpactVFXSlashMerc"), impactSoundDef = Assets.nemImpactSoundDef, defaultSwordEmission = 5f, chargeEffectString = "SwordChargeEffectBlue", chargeAttackEffect = Assets.nemChargedSlashStartFXBlue, chargeAttackLoopEffect = Assets.nemChargedSlashFXBlue, hasSheath = true, swingEffect = Assets.mercSwingFX, swingSound = "SS2UNemmandoSwingSaber", shootSound = "SS2UNemmandoShoot" }); skinInfos = skinList.ToArray(); } public static void AddSkinData(SkinEffectData newSkinData) { Array.Resize(ref skinInfos, skinInfos.Length + 1); skinInfos[skinInfos.Length - 1] = newSkinData; } public static SkinEffectData GetSkinData(string skinName, string bodyName) { for (int i = 0; i < skinInfos.Length; i++) { if (skinInfos[i].skinNameToken == skinName) { return skinInfos[i]; } } for (int j = 0; j < skinInfos.Length; j++) { if (skinInfos[j].bodyName == bodyName) { return skinInfos[j]; } } return skinInfos[0]; } } public class CustomEffectComponent : MonoBehaviour { public GameObject swingEffect; public GameObject impactEffect; public float defaultSwordEmission; public string chargeEffectString; public GameObject chargeAttackEffect; public GameObject chargeAttackLoopEffect; public string swingSound; public NetworkSoundEventDef impactSoundDef; public string shootSound; public string ionShootSound; public bool hasSheath; private CharacterBody body; private CharacterModel model; private void Awake() { body = ((Component)this).GetComponent(); model = ((Component)this).GetComponentInChildren(); ((MonoBehaviour)this).Invoke("GetEffectData", 0.5f); } private void GetEffectData() { SkinEffectData skinData = Effects.GetSkinData(((Component)model).GetComponent().skins[body.skinIndex].nameToken, body.baseNameToken); swingEffect = skinData.swingEffect; impactEffect = skinData.impactEffect; swingSound = skinData.swingSound; impactSoundDef = skinData.impactSoundDef; shootSound = skinData.shootSound; ionShootSound = skinData.ionShootSound; hasSheath = skinData.hasSheath; defaultSwordEmission = skinData.defaultSwordEmission; chargeAttackEffect = skinData.chargeAttackEffect; chargeAttackLoopEffect = skinData.chargeAttackLoopEffect; chargeEffectString = skinData.chargeEffectString; } public void PlaySwingEffect(string muzzleString) { EffectManager.SimpleMuzzleFlash(swingEffect, ((Component)this).gameObject, muzzleString, false); } public void PlayShootSound(bool scaled) { if (scaled) { Util.PlayAttackSpeedSound(swingSound, ((Component)this).gameObject, body.attackSpeed); } else { Util.PlaySound(swingSound, ((Component)this).gameObject); } } } public struct SkinEffectData { public string skinNameToken; public GameObject swingEffect; public GameObject impactEffect; public float defaultSwordEmission; public string chargeEffectString; public GameObject chargeAttackEffect; public GameObject chargeAttackLoopEffect; public string swingSound; public NetworkSoundEventDef impactSoundDef; public string shootSound; public string ionShootSound; public bool hasSheath; public string bodyName; } public static class Helpers { public const string agilePrefix = "Agile. "; public static void CreateHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { HitBoxGroup val = prefab.AddComponent(); HitBox val2 = ((Component)hitboxTransform).gameObject.AddComponent(); ((Component)hitboxTransform).gameObject.layer = LayerIndex.projectile.intVal; val.hitBoxes = (HitBox[])(object)new HitBox[1] { val2 }; val.groupName = hitboxName; } public static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } } internal static class ArrayHelper { public static T[] Append(ref T[] array, List list) { int num = array.Length; int count = list.Count; Array.Resize(ref array, num + count); list.CopyTo(array, num); return array; } public static Func AppendDel(List list) { return (T[] r) => Append(ref r, list); } } internal static class ItemDisplays { private static Dictionary itemDisplayPrefabs = new Dictionary(); internal static void PopulateDisplays() { PopulateFromBody("Commando"); PopulateFromBody("Croco"); PopulateFromBody("Mage"); } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet itemDisplayRuleSet = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName + "Body").GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; 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?.ToLower(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } internal static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLower()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLower()])) { return itemDisplayPrefabs[name.ToLower()]; } return null; } internal static void GatherDisplayNames() { //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) StringBuilder stringBuilder = StringBuilderPool.RentStringBuilder(); GameObject[] bodyPrefabs = BodyCatalog.bodyPrefabs; foreach (GameObject val in bodyPrefabs) { ModelLocator component = val.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { continue; } Transform modelTransform = component.modelTransform; if (!Object.op_Implicit((Object)(object)modelTransform)) { continue; } CharacterModel component2 = ((Component)modelTransform).GetComponent(); if (!Object.op_Implicit((Object)(object)component2)) { continue; } ItemDisplayRuleSet itemDisplayRuleSet = component2.itemDisplayRuleSet; if (!Object.op_Implicit((Object)(object)itemDisplayRuleSet)) { continue; } KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.keyAssetRuleGroups; if (keyAssetRuleGroups.Length == 0) { continue; } stringBuilder.AppendLine("====Body: " + ((Object)val).name); for (int j = 0; j < keyAssetRuleGroups.Length; j++) { ItemDisplayRule[] rules = keyAssetRuleGroups[j].displayRuleGroup.rules; foreach (ItemDisplayRule val2 in rules) { GameObject followerPrefab = val2.followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLower(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; stringBuilder.AppendLine(((Object)followerPrefab).name); } } } } } Debug.Log((object)stringBuilder.ToString()); StringBuilderPool.ReturnStringBuilder(stringBuilder); } public static void DefaultItemDisplays() { } } internal static class Items { internal static List itemDefs = new List(); internal static List equipmentDefs = new List(); } internal static class Music { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func <>9__1_1; public static Func <>9__1_2; public static Manipulator <>9__1_0; internal void b__1_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val = new ILCursor(il); int num = default(int); val.GotoNext(new Func[1] { (Instruction i) => ILPatternMatchingExt.MatchStloc(i, ref num) }); val.EmitDelegate>((Func)((bool b) => b || musicSources != 0)); } internal bool b__1_1(Instruction i) { int num = default(int); return ILPatternMatchingExt.MatchStloc(i, ref num); } internal bool b__1_2(bool b) { if (b) { return true; } return musicSources != 0; } } internal static int musicSources; internal static void Initialize() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__1_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown ILCursor val2 = new ILCursor(il); int num = default(int); val2.GotoNext(new Func[1] { (Instruction i) => ILPatternMatchingExt.MatchStloc(i, ref num) }); val2.EmitDelegate>((Func)((bool b) => b || musicSources != 0)); }; <>c.<>9__1_0 = val; obj = (object)val; } MusicController.LateUpdate += (Manipulator)obj; } } internal static class Prefabs { private static PhysicMaterial ragdollMaterial; internal static List survivorDefinitions = new List(); internal static List bodyPrefabs = new List(); internal static List masterPrefabs = new List(); internal static List projectilePrefabs = new List(); public static void RemoveAISkillDrivers(GameObject masterObject) { AISkillDriver[] components = masterObject.GetComponents(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } } public static AISkillDriver AddAISkillDriver(GameObject masterObject, string customName, SkillSlot skillSlot, SkillDef requiredSkill, bool requireSkillReady, bool requireEquipmentReady, float minUserHealthFraction, float maxUserHealthFraction, float minTargetHealthFraction, float maxTargetHealthFraction, float minDistance, float maxDistance, bool selectionRequiresTargetLoS, bool selectionRequiresOnGround, bool selectionRequiresAimTarget, int maxTimesSelected, TargetType moveTargetType, bool activationRequiresTargetLoS, bool activationRequiresAimTargetLoS, bool activationRequiresAimConfirmation, MovementType movementType, float moveInputScale, AimType aimType, bool ignoreNodeGraph, bool shouldSprint, bool shouldFireEquipment, ButtonPressType buttonPressType, float driverUpdateTimerOverride, bool resetCurrentEnemyOnNextDriverSelection, bool noRepeat, AISkillDriver nextHighPriorityOverride) { //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_0099: 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_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) CharacterMaster component = masterObject.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return null; } AISkillDriver val = masterObject.AddComponent(); val.customName = customName; val.skillSlot = skillSlot; val.requiredSkill = requiredSkill; val.requireSkillReady = requireSkillReady; val.requireEquipmentReady = requireEquipmentReady; val.minUserHealthFraction = minUserHealthFraction; val.maxUserHealthFraction = maxUserHealthFraction; val.minTargetHealthFraction = minTargetHealthFraction; val.maxTargetHealthFraction = maxTargetHealthFraction; val.minDistance = minDistance; val.maxDistance = maxDistance; val.selectionRequiresTargetLoS = selectionRequiresTargetLoS; val.selectionRequiresOnGround = selectionRequiresOnGround; val.selectionRequiresAimTarget = selectionRequiresAimTarget; val.maxTimesSelected = maxTimesSelected; val.moveTargetType = moveTargetType; val.activationRequiresTargetLoS = activationRequiresTargetLoS; val.activationRequiresAimConfirmation = activationRequiresAimConfirmation; val.activationRequiresAimTargetLoS = activationRequiresAimTargetLoS; val.movementType = movementType; val.moveInputScale = moveInputScale; val.aimType = aimType; val.ignoreNodeGraph = ignoreNodeGraph; val.shouldSprint = shouldSprint; val.shouldFireEquipment = shouldFireEquipment; val.buttonPressType = buttonPressType; val.driverUpdateTimerOverride = driverUpdateTimerOverride; val.resetCurrentEnemyOnNextDriverSelection = resetCurrentEnemyOnNextDriverSelection; val.noRepeat = noRepeat; val.nextHighPriorityOverride = nextHighPriorityOverride; return val; } internal static SurvivorDef RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string namePrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) string displayNameToken = namePrefix + "_NAME"; string descriptionToken = namePrefix + "_DESCRIPTION"; string outroFlavorToken = namePrefix + "_OUTRO_FLAVOR"; string mainEndingEscapeFailureFlavorToken = namePrefix + "_OUTRO_FAILURE"; SurvivorDef val = ScriptableObject.CreateInstance(); val.bodyPrefab = bodyPrefab; val.displayPrefab = displayPrefab; val.primaryColor = charColor; val.displayNameToken = displayNameToken; val.descriptionToken = descriptionToken; val.outroFlavorToken = outroFlavorToken; val.mainEndingEscapeFailureFlavorToken = mainEndingEscapeFailureFlavorToken; val.desiredSortPosition = sortPosition; val.unlockableDef = unlockableDef; val.cachedName = namePrefix; survivorDefinitions.Add(val); return val; } internal static SurvivorDef RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string namePrefix) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, namePrefix, null, 100f); } internal static SurvivorDef RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string namePrefix, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, namePrefix, null, sortPosition); } internal static SurvivorDef RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string namePrefix, UnlockableDef unlockableDef) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return RegisterNewSurvivor(bodyPrefab, displayPrefab, charColor, namePrefix, unlockableDef, 80f); } internal static GameObject CreateDisplayPrefab(string modelName, GameObject prefab, StarstormBodyInfo bodyInfo) { if (!Object.op_Implicit((Object)(object)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"))) { Debug.LogError((object)(bodyInfo.bodyNameToClone + "Body is not a valid body, character creation failed")); return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"), modelName + "Prefab"); GameObject val2 = CreateModel(val, modelName); Transform val3 = SetupModel(val, val2.transform, bodyInfo); val2.AddComponent().baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; Assets.ConvertAllRenderersToHopooShader(val2); return val2.gameObject; } internal static GameObject CreatePrefab(string bodyName, string modelName, StarstormBodyInfo bodyInfo) { //IL_00f6: 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_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0242: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"))) { Debug.LogError((object)(bodyInfo.bodyNameToClone + "Body is not a valid body, character creation failed")); return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"), bodyName); Transform val2 = null; GameObject val3 = null; if (modelName != "mdl") { val3 = CreateModel(val, modelName); if ((Object)(object)val3 == (Object)null) { val3 = ((Component)val.GetComponentInChildren()).gameObject; } val2 = SetupModel(val, val3.transform, bodyInfo); } CharacterBody component = val.GetComponent(); ((Object)component).name = bodyInfo.bodyName; component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.baseMaxHealth = bodyInfo.maxHealth; component.levelMaxHealth = bodyInfo.healthGrowth; component.baseRegen = bodyInfo.healthRegen; component.levelRegen = component.baseRegen * 0.2f; component.baseMaxShield = bodyInfo.shield; component.levelMaxShield = bodyInfo.shieldGrowth; component.baseMoveSpeed = bodyInfo.moveSpeed; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.baseAcceleration = bodyInfo.acceleration; component.baseJumpPower = bodyInfo.jumpPower; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.baseDamage = bodyInfo.damage; component.levelDamage = component.baseDamage * 0.2f; component.baseAttackSpeed = bodyInfo.attackSpeed; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.baseArmor = bodyInfo.armor; component.levelArmor = bodyInfo.armorGrowth; component.baseCrit = bodyInfo.crit; component.levelCrit = bodyInfo.critGrowth; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.hideCrosshair = false; component.aimOriginTransform = val2.Find("AimOrigin"); component.hullClassification = (HullClassification)0; component.preferredPodPrefab = bodyInfo.podPrefab; component.isChampion = false; component.bodyColor = bodyInfo.bodyColor; if ((Object)(object)val2 != (Object)null) { SetupCharacterDirection(val, val2, val3.transform); } SetupCameraTargetParams(val); if ((Object)(object)bodyInfo.cameraParams != (Object)null) { val.GetComponent().cameraParams = bodyInfo.cameraParams; } if ((Object)(object)val2 != (Object)null) { SetupModelLocator(val, val2, val3.transform); } SetupRigidbody(val); SetupCapsuleCollider(val); SetupMainHurtbox(val, val3); SetupFootstepController(val3); SetupRagdoll(val3); SetupAimAnimator(val, val3); bodyPrefabs.Add(val); return val; } internal static void CreateGenericDoppelganger(GameObject bodyPrefab, string masterName, string masterToCopy) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/" + masterToCopy + "MonsterMaster"), masterName, true); val.GetComponent().bodyPrefab = bodyPrefab; masterPrefabs.Add(val); } private static Transform SetupModel(GameObject prefab, Transform modelTransform, StarstormBodyInfo bodyInfo) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0056: 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_006c: Expected O, but got Unknown //IL_0085: 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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Expected O, but got Unknown //IL_00d6: 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_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("ModelBase"); val.transform.parent = prefab.transform; val.transform.localPosition = bodyInfo.modelBasePosition; val.transform.localRotation = Quaternion.identity; val.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val2 = new GameObject("CameraPivot"); val2.transform.parent = val.transform; val2.transform.localPosition = bodyInfo.cameraPivotPosition; val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = Vector3.one; GameObject val3 = new GameObject("AimOrigin"); val3.transform.parent = val.transform; val3.transform.localPosition = bodyInfo.aimOriginPosition; val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; prefab.GetComponent().aimOriginTransform = val3.transform; modelTransform.parent = val.transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; return val.transform; } private static GameObject CreateModel(GameObject main, string modelName) { Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); if ((Object)(object)Assets.mainAssetBundle.LoadAsset(modelName) == (Object)null) { Debug.LogError((object)"Trying to load a null model- check to see if the name in your code matches the name of the object in Unity"); return null; } GameObject val = Object.Instantiate(Assets.mainAssetBundle.LoadAsset(modelName)); Assets.ConvertAllRenderersToHopooShader(val); return val; } internal static void SetupCharacterModel(GameObject prefab, CustomRendererInfo[] rendererInfo, int mainRendererIndex) { //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) CharacterModel val = ((Component)prefab.GetComponent().modelTransform).gameObject.AddComponent(); ChildLocator component = ((Component)val).GetComponent(); val.body = prefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Debug.LogError((object)"Failed CharacterModel setup: ChildLocator component does not exist on the model"); return; } List list = new List(); for (int i = 0; i < rendererInfo.Length; i++) { if (!Object.op_Implicit((Object)(object)component.FindChild(rendererInfo[i].childName))) { Debug.LogError((object)("Trying to add a RendererInfo for a renderer that does not exist: " + rendererInfo[i].childName)); continue; } Renderer component2 = ((Component)component.FindChild(rendererInfo[i].childName)).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { list.Add(new RendererInfo { renderer = ((Component)component.FindChild(rendererInfo[i].childName)).GetComponent(), defaultMaterial = rendererInfo[i].material, ignoreOverlays = rendererInfo[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } } val.baseRendererInfos = list.ToArray(); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List(); if (mainRendererIndex > val.baseRendererInfos.Length) { Debug.LogError((object)("Invalid mainRendererIndex- failed to set mainSkinnedMeshRenderer for " + ((Object)prefab).name)); } else { val.mainSkinnedMeshRenderer = ((Component)val.baseRendererInfos[mainRendererIndex].renderer).GetComponent(); } } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { 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) { //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) CameraTargetParams component = prefab.GetComponent(); component.cameraParams = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().cameraParams; component.cameraPivotTransform = prefab.transform.Find("ModelBase").Find("CameraPivot"); component.recoil = Vector2.zero; component.dontRaycastToPivot = false; } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupRigidbody(GameObject prefab) { Rigidbody component = prefab.GetComponent(); component.mass = 100f; } 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; } private static void SetupMainHurtbox(GameObject prefab, GameObject model) { //IL_0078: Unknown result type (might be due to invalid IL or missing references) ChildLocator component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component.FindChild("MainHurtbox"))) { Debug.LogError((object)"Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator component called 'MainHurtbox'"); return; } HurtBoxGroup val = model.AddComponent(); HurtBox val2 = ((Component)component.FindChild("MainHurtbox")).gameObject.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = prefab.GetComponent(); val2.isBullseye = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 0; val2.isSniperTarget = true; val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val2 }; val.mainHurtBox = val2; val.bullseyeCount = 1; } 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.material = ragdollMaterial; component2.sharedMaterial = ragdollMaterial; } } } } 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(); } internal static void SetupHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { HitBoxGroup val = prefab.AddComponent(); HitBox val2 = ((Component)hitboxTransform).gameObject.AddComponent(); ((Component)hitboxTransform).gameObject.layer = LayerIndex.projectile.intVal; val.hitBoxes = (HitBox[])(object)new HitBox[1] { val2 }; val.groupName = hitboxName; } internal static void SetupHitbox(GameObject prefab, string hitboxName, params Transform[] hitboxTransforms) { HitBoxGroup val = prefab.AddComponent(); List list = new List(); foreach (Transform val2 in hitboxTransforms) { HitBox item = ((Component)val2).gameObject.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.projectile.intVal; list.Add(item); } val.hitBoxes = list.ToArray(); val.groupName = hitboxName; } } internal static class Skills { internal static List skillFamilies = new List(); internal static List skillDefs = new List(); internal static void CreateSkillFamilies(GameObject targetPrefab) { GenericSkill[] componentsInChildren = targetPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SkillLocator component = targetPrefab.GetComponent(); component.primary = targetPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); ((Object)val2).name = ((Object)targetPrefab).name + "PrimaryFamily"; val2.variants = (Variant[])(object)new Variant[0]; component.primary._skillFamily = val2; component.secondary = targetPrefab.AddComponent(); SkillFamily val3 = ScriptableObject.CreateInstance(); ((Object)val3).name = ((Object)targetPrefab).name + "SecondaryFamily"; val3.variants = (Variant[])(object)new Variant[0]; component.secondary._skillFamily = val3; component.utility = targetPrefab.AddComponent(); SkillFamily val4 = ScriptableObject.CreateInstance(); ((Object)val4).name = ((Object)targetPrefab).name + "UtilityFamily"; val4.variants = (Variant[])(object)new Variant[0]; component.utility._skillFamily = val4; component.special = targetPrefab.AddComponent(); SkillFamily val5 = ScriptableObject.CreateInstance(); ((Object)val5).name = ((Object)targetPrefab).name + "SpecialFamily"; val5.variants = (Variant[])(object)new Variant[0]; component.special._skillFamily = val5; skillFamilies.Add(val2); skillFamilies.Add(val3); skillFamilies.Add(val4); skillFamilies.Add(val5); } internal static void AddPrimarySkill(GameObject targetPrefab, SkillDef skillDef) { AddPrimarySkill(targetPrefab, skillDef, null); } internal static void AddPrimarySkill(GameObject targetPrefab, SkillDef skillDef, UnlockableDef unlockableDef) { //IL_003c: 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_005e: Expected O, but got Unknown //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) SkillLocator component = targetPrefab.GetComponent(); SkillFamily skillFamily = component.primary.skillFamily; 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 }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); val.unlockableDef = unlockableDef; variants[num] = val; } internal static void AddSecondarySkill(GameObject targetPrefab, SkillDef skillDef) { AddSecondarySkill(targetPrefab, skillDef, null); } internal static void AddSecondarySkill(GameObject targetPrefab, SkillDef skillDef, UnlockableDef unlockableDef) { //IL_003c: 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_005e: Expected O, but got Unknown //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) SkillLocator component = targetPrefab.GetComponent(); SkillFamily skillFamily = component.secondary.skillFamily; 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 }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); val.unlockableDef = unlockableDef; variants[num] = val; } internal static void AddSecondarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSecondarySkill(targetPrefab, skillDef); } } internal static void AddUtilitySkill(GameObject targetPrefab, SkillDef skillDef) { AddUtilitySkill(targetPrefab, skillDef, null); } internal static void AddUtilitySkill(GameObject targetPrefab, SkillDef skillDef, UnlockableDef unlockableDef) { //IL_003c: 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_005e: Expected O, but got Unknown //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) SkillLocator component = targetPrefab.GetComponent(); SkillFamily skillFamily = component.utility.skillFamily; 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 }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); val.unlockableDef = unlockableDef; variants[num] = val; } internal static void AddUtilitySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddUtilitySkill(targetPrefab, skillDef); } } internal static void AddSpecialSkill(GameObject targetPrefab, SkillDef skillDef) { AddSpecialSkill(targetPrefab, skillDef, null); } internal static void AddSpecialSkill(GameObject targetPrefab, SkillDef skillDef, UnlockableDef unlockableDef) { //IL_003c: 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_005e: Expected O, but got Unknown //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) SkillLocator component = targetPrefab.GetComponent(); SkillFamily skillFamily = component.special.skillFamily; 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 }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); val.unlockableDef = unlockableDef; variants[num] = val; } internal static void AddSpecialSkills(GameObject targetPrefab, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSpecialSkill(targetPrefab, skillDef); } } internal static SkillDef CreatePrimarySkillDef(SerializableEntityStateType state, string stateMachine, string skillNameToken, string skillDescriptionToken, Sprite skillIcon, bool agile) { //IL_0025: 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_0062: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.skillName = skillNameToken; val.skillNameToken = skillNameToken; val.skillDescriptionToken = skillDescriptionToken; val.icon = skillIcon; val.activationState = state; val.activationStateMachineName = stateMachine; val.baseMaxStock = 1; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.forceSprintDuringState = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.resetCooldownTimerOnUse = false; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = !agile; val.rechargeStock = 1; val.requiredStock = 0; val.stockToConsume = 0; if (agile) { val.keywordTokens = new string[1] { "KEYWORD_AGILE" }; } skillDefs.Add(val); FixSkillName(val); return val; } internal static SkillDef CreateSkillDef(SkillDefInfo skillDefInfo) { //IL_0039: 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_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.skillName = skillDefInfo.skillName; val.skillNameToken = skillDefInfo.skillNameToken; val.skillDescriptionToken = skillDefInfo.skillDescriptionToken; val.icon = skillDefInfo.skillIcon; val.activationState = skillDefInfo.activationState; val.activationStateMachineName = skillDefInfo.activationStateMachineName; val.baseMaxStock = skillDefInfo.baseMaxStock; val.baseRechargeInterval = skillDefInfo.baseRechargeInterval; val.beginSkillCooldownOnSkillEnd = skillDefInfo.beginSkillCooldownOnSkillEnd; val.canceledFromSprinting = skillDefInfo.canceledFromSprinting; val.forceSprintDuringState = skillDefInfo.forceSprintDuringState; val.fullRestockOnAssign = skillDefInfo.fullRestockOnAssign; val.interruptPriority = skillDefInfo.interruptPriority; val.resetCooldownTimerOnUse = skillDefInfo.resetCooldownTimerOnUse; val.isCombatSkill = skillDefInfo.isCombatSkill; val.mustKeyPress = skillDefInfo.mustKeyPress; val.cancelSprintingOnActivation = skillDefInfo.cancelSprintingOnActivation; val.rechargeStock = skillDefInfo.rechargeStock; val.requiredStock = skillDefInfo.requiredStock; val.stockToConsume = skillDefInfo.stockToConsume; val.keywordTokens = skillDefInfo.keywordTokens; skillDefs.Add(val); FixSkillName(val); return val; } public static void FixSkillName(SkillDef skillDef) { ((Object)skillDef).name = skillDef.skillName; } } internal static class Skins { internal struct SkinDefInfo { internal SkinDef[] BaseSkins; internal Sprite Icon; internal string NameToken; internal UnlockableDef UnlockableDef; internal GameObject RootObject; internal RendererInfo[] RendererInfos; internal MeshReplacement[] MeshReplacements; internal GameObjectActivation[] GameObjectActivations; internal ProjectileGhostReplacement[] ProjectileGhostReplacements; internal MinionSkinReplacement[] MinionSkinReplacements; internal string Name; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] rendererInfos, SkinnedMeshRenderer mainRenderer, GameObject root) { return CreateSkinDef(skinName, skinIcon, rendererInfos, mainRenderer, root, null); } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] rendererInfos, SkinnedMeshRenderer mainRenderer, GameObject root, UnlockableDef unlockableDef) { 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 = rendererInfos; skinDefInfo.RootObject = root; skinDefInfo.UnlockableDef = unlockableDef; SkinDefInfo skinDefInfo2 = skinDefInfo; SkinDef val = ScriptableObject.CreateInstance(); val.baseSkins = skinDefInfo2.BaseSkins; val.icon = skinDefInfo2.Icon; val.unlockableDef = skinDefInfo2.UnlockableDef; val.rootObject = skinDefInfo2.RootObject; val.rendererInfos = skinDefInfo2.RendererInfos; val.gameObjectActivations = skinDefInfo2.GameObjectActivations; val.meshReplacements = skinDefInfo2.MeshReplacements; val.projectileGhostReplacements = skinDefInfo2.ProjectileGhostReplacements; val.minionSkinReplacements = skinDefInfo2.MinionSkinReplacements; val.nameToken = skinDefInfo2.NameToken; ((Object)val).name = skinDefInfo2.Name; return val; } } public static class States { internal static List entityStates = new List(); internal static void Initialize() { AddState(typeof(BaseEmote)); AddState(typeof(RestEmote)); AddState(typeof(TauntEmote)); AddState(typeof(NemesisSpawnState)); AddState(typeof(BaseCustomMainState)); AddState(typeof(BaseCustomSkillState)); AddState(typeof(BaseMeleeAttack)); } internal static void AddState(Type t) { entityStates.Add(t); } } internal static class Unlockables { internal struct UnlockableInfo { internal string Name; internal Func HowToUnlockString; internal Func UnlockedString; internal int SortScore; } [CompilerGenerated] private static class <>O { public static Manipulator <0>__CollectAchievementDefs; public static Manipulator <1>__Init_Il; } private static readonly HashSet usedRewardIds = new HashSet(); internal static List achievementDefs = new List(); internal static List unlockableDefs = new List(); private static readonly List<(AchievementDef achDef, UnlockableDef unlockableDef, string unlockableName)> moddedUnlocks = new List<(AchievementDef, UnlockableDef, string)>(); private static bool addingUnlockables; public static bool ableToAdd { get; private set; } = false; internal static UnlockableDef CreateNewUnlockable(UnlockableInfo unlockableInfo) { UnlockableDef val = ScriptableObject.CreateInstance(); val.nameToken = unlockableInfo.Name; val.cachedName = unlockableInfo.Name; val.getHowToUnlockString = unlockableInfo.HowToUnlockString; val.getUnlockedString = unlockableInfo.UnlockedString; val.sortScore = unlockableInfo.SortScore; return val; } public static UnlockableDef AddUnlockable(bool serverTracked) where TUnlockable : BaseAchievement, IModdedUnlockableDataProvider, new() { //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_0053: 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_0075: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0188: Expected O, but got Unknown //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Expected O, but got Unknown TUnlockable val = new TUnlockable(); string unlockableIdentifier = val.UnlockableIdentifier; if (!usedRewardIds.Add(unlockableIdentifier)) { throw new InvalidOperationException("The unlockable identifier '" + unlockableIdentifier + "' is already used by another mod or the base game."); } AchievementDef val2 = new AchievementDef { identifier = val.AchievementIdentifier, unlockableRewardIdentifier = val.UnlockableIdentifier, prerequisiteAchievementIdentifier = val.PrerequisiteUnlockableIdentifier, nameToken = val.AchievementNameToken, descriptionToken = val.AchievementDescToken, achievedIcon = val.IconSprite, type = val.GetType(), serverTrackerType = (serverTracked ? val.GetType() : null) }; UnlockableInfo unlockableInfo = default(UnlockableInfo); unlockableInfo.Name = val.UnlockableIdentifier; unlockableInfo.HowToUnlockString = val.GetHowToUnlock; unlockableInfo.UnlockedString = val.GetUnlocked; unlockableInfo.SortScore = 200; UnlockableDef val3 = CreateNewUnlockable(unlockableInfo); unlockableDefs.Add(val3); achievementDefs.Add(val2); moddedUnlocks.Add((val2, val3, val.UnlockableIdentifier)); if (!addingUnlockables) { addingUnlockables = true; object obj = <>O.<0>__CollectAchievementDefs; if (obj == null) { Manipulator val4 = CollectAchievementDefs; <>O.<0>__CollectAchievementDefs = val4; obj = (object)val4; } AchievementManager.CollectAchievementDefs += (Manipulator)obj; object obj2 = <>O.<1>__Init_Il; if (obj2 == null) { Manipulator val5 = Init_Il; <>O.<1>__Init_Il = val5; obj2 = (object)val5; } UnlockableCatalog.Init += (Manipulator)obj2; } return val3; } public static ILCursor CallDel_(this ILCursor cursor, TDelegate target, out int index) where TDelegate : Delegate { index = cursor.EmitDelegate(target); return cursor; } public static ILCursor CallDel_(this ILCursor cursor, TDelegate target) where TDelegate : Delegate { int index; return cursor.CallDel_(target, out index); } private static void Init_Il(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) new ILCursor(il).GotoNext((MoveType)1, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallOrCallvirt(x, typeof(UnlockableCatalog), "SetUnlockableDefs") }).CallDel_(ArrayHelper.AppendDel(unlockableDefs)); } private static void CollectAchievementDefs(ILContext il) { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0086: 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_00b2: Unknown result type (might be due to invalid IL or missing references) FieldInfo field = typeof(AchievementManager).GetField("achievementIdentifiers", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); if ((object)field == null) { throw new NullReferenceException("Could not find field in AchievementManager"); } ILCursor val = new ILCursor(il); val.GotoNext((MoveType)2, new Func[2] { (Instruction x) => ILPatternMatchingExt.MatchEndfinally(x), (Instruction x) => ILPatternMatchingExt.MatchLdloc(x, 1) }); val.Emit(OpCodes.Ldarg_0); val.Emit(OpCodes.Ldsfld, field); val.EmitDelegate, Dictionary, List>>((Action, Dictionary, List>)EmittedDelegate); val.Emit(OpCodes.Ldloc_1); static void EmittedDelegate(List list, Dictionary map, List identifiers) { ableToAdd = false; for (int i = 0; i < moddedUnlocks.Count; i++) { var (val2, val3, text) = moddedUnlocks[i]; if (val2 != null) { identifiers.Add(val2.identifier); list.Add(val2); map.Add(val2.identifier, val2); } } } } } internal interface IModdedUnlockableDataProvider { string AchievementIdentifier { get; } string UnlockableIdentifier { get; } string AchievementNameToken { get; } string PrerequisiteUnlockableIdentifier { get; } string UnlockableNameToken { get; } string AchievementDescToken { get; } Sprite IconSprite { get; } Func GetHowToUnlock { get; } Func GetUnlocked { get; } } internal abstract class SS2Unlockable : BaseAchievement, IModdedUnlockableDataProvider { public abstract string AchievementIdentifier { get; } public abstract string UnlockableIdentifier { get; } public abstract string AchievementNameToken { get; } public abstract string PrerequisiteUnlockableIdentifier { get; } public abstract string UnlockableNameToken { get; } public abstract string AchievementDescToken { get; } public abstract Sprite IconSprite { get; } public abstract Func GetHowToUnlock { get; } public abstract Func GetUnlocked { get; } public override bool wantsBodyCallbacks => ((BaseAchievement)this).wantsBodyCallbacks; public void Revoke() { if (((BaseAchievement)this).userProfile.HasAchievement(AchievementIdentifier)) { ((BaseAchievement)this).userProfile.RevokeAchievement(AchievementIdentifier); } ((BaseAchievement)this).userProfile.RevokeUnlockable(UnlockableCatalog.GetUnlockableDef(UnlockableIdentifier)); } public override void OnGranted() { ((BaseAchievement)this).OnGranted(); } public override void OnInstall() { ((BaseAchievement)this).OnInstall(); } public override void OnUninstall() { ((BaseAchievement)this).OnUninstall(); } public override float ProgressForAchievement() { return ((BaseAchievement)this).ProgressForAchievement(); } public override BodyIndex LookUpRequiredBodyIndex() { //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 ((BaseAchievement)this).LookUpRequiredBodyIndex(); } public override void OnBodyRequirementBroken() { ((BaseAchievement)this).OnBodyRequirementBroken(); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); } } } namespace Starstorm2Unofficial.Modules.Survivors { internal abstract class SurvivorBase { internal static SurvivorBase instance; public SurvivorDef survivorDef; internal abstract string bodyName { get; set; } internal abstract string modelName { get; set; } internal abstract string displayName { get; set; } internal abstract GameObject bodyPrefab { get; set; } internal abstract GameObject displayPrefab { get; set; } internal abstract float sortPosition { get; set; } internal string fullBodyName => bodyName + "Body"; internal abstract UnlockableDef characterUnlockableDef { get; set; } internal abstract StarstormBodyInfo bodyInfo { get; set; } internal abstract int mainRendererIndex { get; set; } internal abstract CustomRendererInfo[] customRendererInfos { get; set; } internal abstract Type characterMainState { get; set; } internal abstract ItemDisplayRuleSet itemDisplayRuleSet { get; set; } internal abstract List itemDisplayRules { get; set; } internal virtual void Initialize() { instance = this; InitializeCharacter(); ContentManager.onContentPacksAssigned += LateSetup; } private void LateSetup(ReadOnlyArray obj) { SetItemDisplays(); } internal virtual void InitializeCharacter() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) InitializeUnlockables(); bodyPrefab = Prefabs.CreatePrefab(bodyName + "Body", modelName, bodyInfo); bodyPrefab.GetComponent().mainStateType = new SerializableEntityStateType(characterMainState); Prefabs.SetupCharacterModel(bodyPrefab, customRendererInfos, mainRendererIndex); displayPrefab = Prefabs.CreateDisplayPrefab(displayName, bodyPrefab, bodyInfo); if (bodyInfo.menuSoundString != "") { displayPrefab.AddComponent().soundString = bodyInfo.menuSoundString; } survivorDef = Prefabs.RegisterNewSurvivor(bodyPrefab, displayPrefab, Color.grey, bodyName.ToUpper(), characterUnlockableDef, sortPosition); RegisterTokens(); Hook(); InitializeHitboxes(); InitializeSkills(); InitializeSkins(); InitializeItemDisplays(); InitializeDoppelganger(); } internal virtual void InitializeUnlockables() { } internal virtual void InitializeSkills() { } internal virtual void InitializeHitboxes() { } internal virtual void InitializeSkins() { } internal virtual void InitializeDoppelganger() { Prefabs.CreateGenericDoppelganger(instance.bodyPrefab, bodyName + "MonsterMaster", "Merc"); } internal virtual void InitializeItemDisplays() { CharacterModel componentInChildren = bodyPrefab.GetComponentInChildren(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); ((Object)itemDisplayRuleSet).name = "idrs" + bodyName; componentInChildren.itemDisplayRuleSet = itemDisplayRuleSet; } internal virtual void SetItemDisplays() { } internal virtual void RegisterTokens() { } internal virtual void Hook() { } } } namespace Starstorm2Unofficial.Modules.Orbs { public class ExecutionerIonOrb : Orb { private const float speed = 60f; private IonGunChargeComponent chargeComponent; public override void Begin() { //IL_0014: 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_001b: 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_0033: Expected O, but got Unknown ((Orb)this).duration = ((Orb)this).distanceToTarget / 60f; EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Assets.exeIonOrb, val, true); HurtBox component = ((Component)base.target).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { chargeComponent = ((Component)component.healthComponent).GetComponent(); } } public override void OnArrival() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)chargeComponent)) { chargeComponent.CallRpcAddIonCharge(); EffectManager.SimpleSoundEffect(Assets.exeChargeGainSoundDef.index, ((Component)chargeComponent).transform.position, true); } } } public class ExecutionerIonSuperOrb : Orb { private const float speed = 20f; private CharacterBody body; public override void Begin() { //IL_0014: 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_001b: 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_0033: Expected O, but got Unknown ((Orb)this).duration = ((Orb)this).distanceToTarget / 20f; EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Assets.exeIonSuperOrb, val, true); HurtBox component = ((Component)base.target).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { body = component.healthComponent.body; } } public override void OnArrival() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)body) && NetworkServer.active) { body.AddBuff(BuffCore.exeSuperchargedBuff); EffectManager.SimpleSoundEffect(Assets.exeSuperchargeSoundDef.index, body.transform.position, true); } } } public class ExecutionerIonTempSuperOrb : Orb { private const float speed = 20f; private CharacterBody body; public override void Begin() { //IL_0014: 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_001b: 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_0033: Expected O, but got Unknown ((Orb)this).duration = ((Orb)this).distanceToTarget / 20f; EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Assets.exeIonSuperOrb, val, true); HurtBox component = ((Component)base.target).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { body = component.healthComponent.body; } } public override void OnArrival() { //IL_0036: 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) if (Object.op_Implicit((Object)(object)body) && NetworkServer.active) { body.AddTimedBuff(BuffCore.exeSuperchargedBuff, 10f); EffectManager.SimpleSoundEffect(Assets.exeSuperchargeSoundDef.index, body.transform.position, true); } } } public class NemmandoDashOrb : Orb { private const float speed = 80f; public override void Begin() { //IL_0014: 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_001b: 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_0033: Expected O, but got Unknown ((Orb)this).duration = ((Orb)this).distanceToTarget / 80f; EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Assets.nemDashEffect, val, true); } public override void OnArrival() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0008: 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_0020: Expected O, but got Unknown EffectData val = new EffectData { origin = base.origin, genericFloat = ((Orb)this).duration }; val.SetHurtBoxReference(base.target); EffectManager.SpawnEffect(Assets.nemPreImpactFX, val, true); HurtBox component = ((Component)base.target).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } GameObject gameObject = ((Component)component.healthComponent).gameObject; if (Object.op_Implicit((Object)(object)gameObject)) { SetStateOnHurt component2 = gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.CallRpcSetStun(5f); } } } } } namespace Starstorm2Unofficial.Modules.Achievements { internal static class AchievementHider { [CompilerGenerated] private static class <>O { public static hook_BuildAchievementEntries <0>__LogBookController_BuildAchievementEntries; } public static List unlockableRewardIdentifiers = new List(12) { "Skins.SS2UCommando.GrandMastery", "Skins.SS2UToolbot.GrandMastery", "Skins.SS2UCyborg.GrandMastery", "Skins.SS2UCyborg.Mastery", "Skins.SS2UExecutioner.GrandMastery", "Skins.SS2UExecutioner.Mastery", "Skins.SS2UExecutioner.Wastelander", "Skins.SS2UNemmando.Commando", "Characters.SS2UNemmando", "Skins.SS2UNemmando.Mastery", "Skins.SS2UNemmando.GrandMastery", "Skins.SS2UChirr.Mastery" }; public static bool enabled = true; public static void Init() { //IL_001f: 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_002a: Expected O, but got Unknown if (enabled) { object obj = <>O.<0>__LogBookController_BuildAchievementEntries; if (obj == null) { hook_BuildAchievementEntries val = LogBookController_BuildAchievementEntries; <>O.<0>__LogBookController_BuildAchievementEntries = val; obj = (object)val; } LogBookController.BuildAchievementEntries += (hook_BuildAchievementEntries)obj; } } private static Entry[] LogBookController_BuildAchievementEntries(orig_BuildAchievementEntries orig, Dictionary expansionAvailability) { Entry[] source = orig.Invoke(expansionAvailability); return source.Where(delegate(Entry entry) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Expected O, but got Unknown AchievementDef val = (AchievementDef)entry.extraData; return !unlockableRewardIdentifiers.Contains(val.unlockableRewardIdentifier); }).ToArray(); } } public class BaseGrandMasteryAchievement : BaseAchievement { 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_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_0032: 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_005b: Invalid comparison between Unknown and I4 //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0060: 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) { DifficultyDef infernoDef = StarstormPlugin.GetInfernoDef(); bool flag = infernoDef != null && difficultyDef == infernoDef; bool flag2 = (int)val >= 3 && (int)val <= 10; bool flag3 = difficultyDef.scalingValue >= 3.5f; if (flag3 || flag || flag2) { ((BaseAchievement)this).Grant(); } } } } } namespace Starstorm2Unofficial.Cores { public class PrefabCore { internal static List survivorDefs = new List(); public static GameObject pyroPrefab; public static GameObject pyroDisplayPrefab; public static GameObject chirrPrefab; public static GameObject chirrDisplayPrefab; public static GameObject spooderPrefab; private static PhysicMaterial ragdollMaterial; public static List bodyList = new List(); private static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, float sortPosition, string namePrefix, UnlockableDef unlockDef) { SurvivorDef val = ScriptableObject.CreateInstance(); val.displayNameToken = namePrefix + "_NAME"; val.unlockableDef = unlockDef; val.descriptionToken = namePrefix + "_DESCRIPTION"; val.bodyPrefab = bodyPrefab; val.displayPrefab = displayPrefab; val.outroFlavorToken = namePrefix + "_OUTRO_FLAVOR"; val.mainEndingEscapeFailureFlavorToken = namePrefix + "_OUTRO_FAILURE"; val.desiredSortPosition = sortPosition; survivorDefs.Add(val); } public static GameObject CreateDisplayPrefab(string modelName, GameObject prefab) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody"), modelName + "Prefab"); GameObject val2 = CreateModel(val, modelName); Transform val3 = SetupModel(val, val2.transform); val2.AddComponent().baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; return val2.gameObject; } public static GameObject CreatePrefab(string bodyName, string modelName, BodyInfo bodyInfo) { //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_007f: 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) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody"), bodyName); GameObject val2 = CreateModel(val, modelName); Transform val3 = SetupModel(val, val2.transform); CharacterBody component = val.GetComponent(); ((Object)component).name = bodyInfo.bodyName; component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.bodyColor = Color32.op_Implicit(bodyInfo.bodyColor); component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.baseMaxHealth = bodyInfo.maxHealth; component.levelMaxHealth = bodyInfo.healthGrowth; component.baseRegen = bodyInfo.healthRegen; component.levelRegen = component.baseRegen * 0.2f; component.baseMaxShield = bodyInfo.shield; component.levelMaxShield = bodyInfo.shieldGrowth; component.baseMoveSpeed = bodyInfo.moveSpeed; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.baseAcceleration = bodyInfo.acceleration; component.baseJumpPower = bodyInfo.jumpPower; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.baseDamage = bodyInfo.damage; component.levelDamage = component.baseDamage * 0.2f; component.baseAttackSpeed = bodyInfo.attackSpeed; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.baseArmor = bodyInfo.armor; component.levelArmor = bodyInfo.armorGrowth; component.baseCrit = bodyInfo.crit; component.levelCrit = bodyInfo.critGrowth; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.hideCrosshair = false; component.aimOriginTransform = val3.Find("AimOrigin"); component.hullClassification = (HullClassification)0; component.preferredPodPrefab = bodyInfo.podPrefab; component.isChampion = false; SetupCharacterDirection(val, val3, val2.transform); SetupCameraTargetParams(val); SetupModelLocator(val, val3, val2.transform); SetupRigidbody(val); SetupCapsuleCollider(val); SetupMainHurtbox(val, val2); SetupFootstepController(val2); SetupRagdoll(val2); SetupAimAnimator(val, val2); Prefabs.bodyPrefabs.Add(val); bodyList.Add(val); return val; } private static Transform SetupModel(GameObject prefab, Transform modelTransform) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0033: 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_0064: 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_007a: Expected O, but got Unknown //IL_00a1: 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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject("ModelBase"); val.transform.parent = prefab.transform; val.transform.localPosition = new Vector3(0f, -0.92f, 0f); val.transform.localRotation = Quaternion.identity; val.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val2 = new GameObject("CameraPivot"); val2.transform.parent = val.transform; val2.transform.localPosition = new Vector3(0f, 1.6f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = Vector3.one; GameObject val3 = new GameObject("AimOrigin"); val3.transform.parent = val.transform; val3.transform.localPosition = new Vector3(0f, 2.2f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; prefab.GetComponent().aimOriginTransform = val3.transform; modelTransform.parent = val.transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; return val.transform; } private static GameObject CreateModel(GameObject main, string modelName) { Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.DestroyImmediate((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); return Assets.mainAssetBundle.LoadAsset(modelName); } public static void SetupCharacterModel(GameObject prefab, CustomRendererInfo[] rendererInfo, int mainRendererIndex) { //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) CharacterModel val = ((Component)prefab.GetComponent().modelTransform).gameObject.AddComponent(); ChildLocator component = ((Component)val).GetComponent(); val.body = prefab.GetComponent(); List list = new List(); for (int i = 0; i < rendererInfo.Length; i++) { list.Add(new RendererInfo { renderer = ((Component)component.FindChild(rendererInfo[i].childName)).GetComponent(), defaultMaterial = rendererInfo[i].material, ignoreOverlays = rendererInfo[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } val.baseRendererInfos = list.ToArray(); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List(); val.mainSkinnedMeshRenderer = ((Component)val.baseRendererInfos[mainRendererIndex].renderer).GetComponent(); } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { 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) { //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) CameraTargetParams component = prefab.GetComponent(); component.cameraParams = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/MercBody").GetComponent().cameraParams; component.cameraPivotTransform = prefab.transform.Find("ModelBase").Find("CameraPivot"); component.recoil = Vector2.zero; component.dontRaycastToPivot = false; } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupRigidbody(GameObject prefab) { Rigidbody component = prefab.GetComponent(); component.mass = 100f; } 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; } private static void SetupMainHurtbox(GameObject prefab, GameObject model) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) HurtBoxGroup val = model.AddComponent(); ChildLocator component = model.GetComponent(); HurtBox val2 = ((Component)component.FindChild("MainHurtbox")).gameObject.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = prefab.GetComponent(); val2.isBullseye = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 0; val2.isSniperTarget = true; val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val2 }; val.mainHurtBox = val2; val.bullseyeCount = 1; } 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.material = ragdollMaterial; component2.sharedMaterial = ragdollMaterial; } } } } 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 SetupHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { HitBoxGroup val = prefab.AddComponent(); HitBox val2 = ((Component)hitboxTransform).gameObject.AddComponent(); ((Component)hitboxTransform).gameObject.layer = LayerIndex.projectile.intVal; val.hitBoxes = (HitBox[])(object)new HitBox[1] { val2 }; val.groupName = hitboxName; } } public class SkinsCore { public SkinsCore() { ((ResourceAvailability)(ref BodyCatalog.availability)).onAvailable += Availability_onAvailable; } private void Availability_onAvailable() { try { VanillaSurvivorSkins.RegisterVanillaSurvivorSkins(); } catch (Exception ex) { LogCore.LogError("error registering vanilla survivor skins\n" + ex, 31, "Availability_onAvailable"); } } public static MeshReplacement[] CreateMeshReplacements(RendererInfo[] rendererInfos, params Mesh[] orderedMeshes) { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < orderedMeshes.Length; i++) { if (!((Object)(object)orderedMeshes[i] == (Object)null)) { list.Add(new MeshReplacement { mesh = orderedMeshes[i], renderer = rendererInfos[i].renderer }); } } return list.ToArray(); } public static GameObjectActivation[] createGameObjectActivations(GameObject[] allObjects, params GameObject[] activatedObjects) { //IL_0019: 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) List list = new List(); for (int i = 0; i < allObjects.Length; i++) { bool shouldActivate = activatedObjects.Contains(allObjects[i]); list.Add(new GameObjectActivation { gameObject = allObjects[i], shouldActivate = shouldActivate }); } return list.ToArray(); } } public class EventsCore { public static EventsCore instance; public static float stormDuration = 90f; public static float stormWarningTimer; public EventDirector director; private PostProcessVolume stormPP; private GameObject rainObjPrefab = Assets.mainAssetBundle.LoadAsset("StormFX"); private GameObject rainObjPrefabOptimized = Assets.mainAssetBundle.LoadAsset("StormFXOptimized"); private GameObject stormFXOBjprefab; public GameObject stormFXObj; public Run currentRun; public EventsCore() { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Expected O, but got Unknown instance = this; NetworkingAPI.RegisterMessageType(); SetUpVisualsPrefab(); Run.onRunStartGlobal += Run_Start; Run.onRunDestroyGlobal += Run_OnDestroy; SceneCatalog.OnActiveSceneChanged += new hook_OnActiveSceneChanged(SceneCatalog_OnActiveSceneChanged); } private void SetUpVisualsPrefab() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown if (Config.disableStormVisuals.Value) { stormFXOBjprefab = new GameObject("stormFXsimple"); } else if (Config.enableOptimizedStormVisuals.Value) { stormFXOBjprefab = rainObjPrefabOptimized; } else { stormFXOBjprefab = rainObjPrefab; } } private void Run_Start(Run run) { //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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Invalid comparison between Unknown and I4 //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Invalid comparison between Unknown and I4 //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Invalid comparison between Unknown and I4 //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Invalid comparison between Unknown and I4 //IL_007f: 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_009d: Unknown result type (might be due to invalid IL or missing references) currentRun = run; stormWarningTimer = 15f; DifficultyIndex selectedDifficulty = run.selectedDifficulty; if ((int)selectedDifficulty == 0) { stormWarningTimer = 30f; } else if ((int)selectedDifficulty == 1) { stormWarningTimer = 25f; } else if ((int)selectedDifficulty == 2 || ((int)selectedDifficulty >= 3 && (int)selectedDifficulty <= 10)) { stormWarningTimer = 20f; } else if (Config.TyphoonIncreaseSpawnCap.Value && selectedDifficulty == TyphoonCore.diffIdxTyphoon) { stormWarningTimer = 15f; } else { float num = DifficultyCatalog.GetDifficultyDef(selectedDifficulty).scalingValue * 0.8f; if (num == 0f) { num = 1f; } stormWarningTimer = 30f / num; } stormFXObj = SetUpVisuals(); stormFXObj.transform.parent = ((Component)run).transform; PostProcessDuration component = stormFXObj.GetComponent(); component.maxDuration += stormWarningTimer; director = ((Component)run).gameObject.AddComponent(); SpawnCard val = ScriptableObject.CreateInstance(); val.directorCreditCost = Config.stormCreditCost.Value; val.prefab = null; List list = new List(); list.Add(new EventCard { card = val, duration = stormDuration, preActivationDuration = stormWarningTimer, OnSelected = WarnStorm, OnActivated = StartStorm, OnDeactivated = StopStorm }); director.eventCards = list; } private void Run_OnDestroy(Run self) { if (Object.op_Implicit((Object)(object)director)) { director.StopAllEvents(); } } private void SceneCatalog_OnActiveSceneChanged(orig_OnActiveSceneChanged orig, Scene oldScene, Scene newScene) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(oldScene, newScene); if (Object.op_Implicit((Object)(object)stormFXObj) && !Config.disableStormVisuals.Value) { int num; switch (((Scene)(ref newScene)).name) { case "frozenwall": case "itfrozenwall": num = 1; break; case "goolake": case "itgoolake": case "drybasin": case "lemuriantemple": num = 2; break; case "skymeadow": case "itskymeadow": case "slumberingsatellite": num = 3; break; case "dampcavesimple": case "itdampcavesimple": case "helminthroost": num = 4; break; default: num = 0; break; } for (int i = 0; i < stormFXObj.transform.childCount; i++) { ((Component)stormFXObj.transform.GetChild(i)).gameObject.SetActive(i == num); } } } private GameObject SetUpVisuals() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: 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_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Expected O, but got Unknown RampFog val = ScriptableObject.CreateInstance(); ((ParameterOverride)(object)((PostProcessEffectSettings)val).enabled).value = true; ((ParameterOverride)((PostProcessEffectSettings)val).enabled).overrideState = true; ((ParameterOverride)(object)val.fogZero).value = -0.01f; ((ParameterOverride)val.fogZero).overrideState = true; ((ParameterOverride)(object)val.fogOne).value = 0.169f; ((ParameterOverride)val.fogOne).overrideState = true; ((ParameterOverride)(object)val.fogColorStart).value = Color32.op_Implicit(new Color32((byte)39, (byte)42, (byte)45, (byte)16)); ((ParameterOverride)val.fogColorStart).overrideState = true; ((ParameterOverride)(object)val.fogColorMid).value = Color32.op_Implicit(new Color32((byte)58, (byte)64, (byte)72, (byte)202)); ((ParameterOverride)val.fogColorMid).overrideState = true; ((ParameterOverride)(object)val.fogColorEnd).value = Color32.op_Implicit(new Color32((byte)75, (byte)87, (byte)100, byte.MaxValue)); ((ParameterOverride)val.fogColorEnd).overrideState = true; ((ParameterOverride)(object)val.skyboxStrength).value = 0f; ((ParameterOverride)val.skyboxStrength).overrideState = true; GameObject val2 = (GameObject)(Object.op_Implicit((Object)(object)stormFXOBjprefab) ? ((object)PrefabAPI.InstantiateClone(stormFXOBjprefab, "stormFX", false)) : ((object)new GameObject("stormFXsimple"))); val2.AddComponent(); val2.SetActive(false); val2.layer = 20; PostProcessProfile val3 = ScriptableObject.CreateInstance(); val3.settings.Add((PostProcessEffectSettings)(object)val); stormPP = val2.AddComponent(); stormPP.profile = val3; stormPP.sharedProfile = val3; ((Behaviour)stormPP).enabled = true; stormPP.isGlobal = true; stormPP.priority = 1000f; PostProcessDuration val4 = val2.AddComponent(); val4.maxDuration = stormDuration; val4.ppVolume = stormPP; val4.ppWeightCurve = new AnimationCurve(); val4.ppWeightCurve.AddKey(0f, 0f); val4.ppWeightCurve.AddKey(0.05f, 1f); val4.ppWeightCurve.AddKey(0.95f, 1f); val4.ppWeightCurve.AddKey(1f, 0f); val4.ppWeightCurve.preWrapMode = (WrapMode)8; val4.ppWeightCurve.postWrapMode = (WrapMode)8; WeatherParticles val5 = val2.AddComponent(); val5.resetPositionToZero = true; val5.lockRotation = false; return val2; } private void WarnStorm() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "SS2U_EVENT_STORM" }); showStormFX(shouldshow: true); } private void StartStorm() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(StormStats); DeathRewards.OnKilledServer += new hook_OnKilledServer(DeathRewards_OnKilledServer); foreach (CharacterMaster instances in CharacterMaster.instancesList) { if ((int)instances.teamIndex != 1) { CharacterBody body = instances.GetBody(); if (Object.op_Implicit((Object)(object)body)) { body.statsDirty = true; } } } if (Config.disableStormVisuals.Value) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "SS2U_EVENT_STORM_START" }); } } private void StopStorm() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Invalid comparison between Unknown and I4 //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients -= new StatHookEventHandler(StormStats); DeathRewards.OnKilledServer -= new hook_OnKilledServer(DeathRewards_OnKilledServer); foreach (CharacterMaster instances in CharacterMaster.instancesList) { if ((int)instances.teamIndex != 1) { CharacterBody body = instances.GetBody(); if (Object.op_Implicit((Object)(object)body)) { body.statsDirty = true; } } } if (Config.disableStormVisuals.Value) { Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "(Storm ended.)" }); } showStormFX(shouldshow: false); } private void StormStats(CharacterBody sender, StatHookEventArgs args) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)sender.teamComponent) && (int)sender.teamComponent.teamIndex != 1) { args.armorAdd += 50f; args.attackSpeedMultAdd += 0.5f; args.damageMultAdd += 0.5f; args.moveSpeedMultAdd += 0.5f; } } private void showStormFX(bool shouldshow) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) stormFXObj.SetActive(shouldshow); NetworkIdentity component = ((Component)currentRun).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { LogCore.LogInfo("currentRun networkidentity found. sending network message", 274, "showStormFX"); NetMessageExtensions.Send((INetMessage)(object)new SyncStorms(component.netId, shouldshow), (NetworkDestination)1); } else { LogCore.LogInfo("currentRun networkidentity not found", 277, "showStormFX"); } } private void DeathRewards_OnKilledServer(orig_OnKilledServer orig, DeathRewards self, DamageReport damageReport) { if (Object.op_Implicit((Object)(object)self)) { self.expReward = (uint)((float)self.expReward * 1.5f); } orig.Invoke(self, damageReport); } } public class EventCard { public SpawnCard card; public float preActivationDuration; public float duration; public float timeActivated; public Func isAvailable = () => true; public Action OnSelected; public Action OnActivated; public Action OnDeactivated; public int cost => card.directorCreditCost; public bool isActive { get; private set; } public void Select() { OnSelected(); } public void Activate() { isActive = true; timeActivated = Time.time; OnActivated(); } public void Deactivate() { isActive = false; OnDeactivated(); } } public class EventDirector : MonoBehaviour { public float eventCredit; public static readonly List instancesList = new List(); public List eventCards; private EventCard selectedEvent; private float eventSelectionTime; private Xoroshiro128Plus rng; private float interval; public void Awake() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Expected O, but got Unknown if (NetworkServer.active) { rng = new Xoroshiro128Plus((ulong)Run.instance.stageRng.nextUint); } } private void OnEnable() { instancesList.Add(this); } private void OnDisable() { instancesList.Remove(this); } private void FixedUpdate() { //IL_0083: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)Run.instance) || StarstormPlugin.kingArenaActive) { return; } if (!Run.instance.isRunStopwatchPaused) { interval -= Time.fixedDeltaTime; if (interval <= 0f) { interval = rng.RangeFloat(1f, 15f); float scalingValue = DifficultyCatalog.GetDifficultyDef(Run.instance.selectedDifficulty).scalingValue; float num = rng.RangeFloat(0f, 1f) * scalingValue; eventCredit += num; AttemptSpawnEvent(); } } foreach (EventCard eventCard in eventCards) { if (eventCard.isActive && Time.time - eventCard.timeActivated > eventCard.duration) { eventCard.Deactivate(); } } } private void AttemptSpawnEvent() { if (selectedEvent == null) { EventCard eventCard = eventCards[rng.RangeInt(0, eventCards.Count)]; if (eventCredit >= (float)eventCard.cost && !eventCard.isActive && eventCard.isAvailable()) { eventCredit -= eventCard.cost; PrepareEvent(eventCard); } } else if (Time.time - eventSelectionTime > selectedEvent.preActivationDuration) { selectedEvent.Activate(); selectedEvent = null; } } private void PrepareEvent(EventCard card) { selectedEvent = card; selectedEvent.Select(); eventSelectionTime = Time.time; } public int StopAllEvents() { int num = 0; foreach (EventCard eventCard in eventCards) { if (eventCard.isActive) { eventCard.Deactivate(); num++; } } return num; } } public class SyncStorms : INetMessage, ISerializableObject { private NetworkInstanceId bodyID; private bool stormActive; public SyncStorms() { } public SyncStorms(NetworkInstanceId netBodyID, bool netStormActive) { //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) bodyID = netBodyID; stormActive = netStormActive; } public void OnReceived() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { LogCore.LogWarning("SyncStorms: Host ran this. Skip", 517, "OnReceived"); return; } GameObject val = Util.FindNetworkObject(bodyID); if (!Object.op_Implicit((Object)(object)val)) { LogCore.LogWarning("SyncStorms: stormFxObject is null.", 523, "OnReceived"); return; } LogCore.LogInfo("SyncStorms: running " + stormActive, 527, "OnReceived"); ((Component)val.transform.GetChild(0)).gameObject.SetActive(stormActive); } public void Serialize(NetworkWriter writer) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) writer.Write(bodyID); writer.Write(stormActive); } public void Deserialize(NetworkReader reader) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) bodyID = reader.ReadNetworkId(); stormActive = reader.ReadBoolean(); } } public class ItemDisplayCore { public static Dictionary itemDisplayPaths = new Dictionary { { "DisplayEliteHorn", "RoR2/Base/EliteFire/DisplayEliteHorn.prefab" }, { "DisplayEliteStealthCrown", "RoR2/Base/EliteHaunted/DisplayEliteStealthCrown.prefab" }, { "DisplayEliteIceCrown", "RoR2/Base/EliteIce/DisplayEliteIceCrown.prefab" }, { "DisplayEliteRhinoHorn", "RoR2/Base/EliteLightning/DisplayEliteRhinoHorn.prefab" }, { "DisplayEliteLunar, Fire", "RoR2/Base/EliteLunar/DisplayEliteLunar, Fire.prefab" }, { "DisplayEliteLunar,Eye", "RoR2/Base/EliteLunar/DisplayEliteLunar,Eye.prefab" }, { "DisplayEliteUrchinCrown", "RoR2/Base/ElitePoison/DisplayEliteUrchinCrown.prefab" }, { "DisplayBFG", "RoR2/Base/BFG/DisplayBFG.prefab" }, { "DisplayGravCube", "RoR2/Base/Blackhole/DisplayGravCube.prefab" }, { "DisplayGravCubeFollower", "RoR2/Base/Blackhole/DisplayGravCubeFollower.prefab" }, { "DisplayPotion", "RoR2/Base/BurnNearby/DisplayPotion.prefab" }, { "DisplayWaterPack", "RoR2/Base/Cleanse/DisplayWaterPack.prefab" }, { "DisplayMissileRack", "RoR2/Base/CommandMissile/DisplayMissileRack.prefab" }, { "DisplayEffigy", "RoR2/Base/CrippleWard/DisplayEffigy.prefab" }, { "DisplayNeuralImplant", "RoR2/Base/CritOnUse/DisplayNeuralImplant.prefab" }, { "DisplayDeathProjectile", "RoR2/Base/DeathProjectile/DisplayDeathProjectile.prefab" }, { "DisplayRadio", "RoR2/Base/DroneBackup/DisplayRadio.prefab" }, { "DisplayEgg", "RoR2/Base/FireBallDash/DisplayEgg.prefab" }, { "DisplayFruit", "RoR2/Base/Fruit/DisplayFruit.prefab" }, { "DisplayElephantFigure", "RoR2/Base/GainArmor/DisplayElephantFigure.prefab" }, { "DisplayVase", "RoR2/Base/Gateway/DisplayVase.prefab" }, { "DisplayGoldGat", "RoR2/Base/GoldGat/DisplayGoldGat.prefab" }, { "DisplayBugWings", "RoR2/Base/Jetpack/DisplayBugWings.prefab" }, { "DisplayLifestealOnHit", "RoR2/Base/LifestealOnHit/DisplayLifestealOnHit.prefab" }, { "DisplayLightningArmLeft", "RoR2/Base/Lightning/DisplayLightningArmLeft.prefab" }, { "DisplayLightningArmLeftVoidSurvivor", "RoR2/Base/Lightning/DisplayLightningArmLeftVoidSurvivor.prefab" }, { "DisplayLightningArmRight,Bandit2", "RoR2/Base/Lightning/DisplayLightningArmRight,Bandit2.prefab" }, { "DisplayLightningArmRight,Croco", "RoR2/Base/Lightning/DisplayLightningArmRight,Croco.prefab" }, { "DisplayLightningArmRight", "RoR2/Base/Lightning/DisplayLightningArmRight.prefab" }, { "DisplayMeteor", "RoR2/Base/Meteor/DisplayMeteor.prefab" }, { "DisplayMeteorFollower", "RoR2/Base/Meteor/DisplayMeteorFollower.prefab" }, { "DisplayBatteryArray", "RoR2/Base/QuestVolatileBattery/DisplayBatteryArray.prefab" }, { "DisplayRecycler", "RoR2/Base/Recycle/DisplayRecycler.prefab" }, { "DisplaySawmerang", "RoR2/Base/Saw/DisplaySawmerang.prefab" }, { "DisplaySawmerangFollower", "RoR2/Base/Saw/DisplaySawmerangFollower.prefab" }, { "DisplayScanner", "RoR2/Base/Scanner/DisplayScanner.prefab" }, { "DisplayTeamWarCry", "RoR2/Base/TeamWarCry/DisplayTeamWarCry.prefab" }, { "DisplayTonic", "RoR2/Base/Tonic/DisplayTonic.prefab" }, { "DisplayAlienHead", "RoR2/Base/AlienHead/DisplayAlienHead.prefab" }, { "DisplayRepulsionArmorPlate", "RoR2/Base/ArmorPlate/DisplayRepulsionArmorPlate.prefab" }, { "DisplayWarhammer", "RoR2/Base/ArmorReductionOnHit/DisplayWarhammer.prefab" }, { "DisplayWolfPelt", "RoR2/Base/AttackSpeedOnCrit/DisplayWolfPelt.prefab" }, { "DisplayFossil", "RoR2/Base/AutoCastEquipment/DisplayFossil.prefab" }, { "DisplayBandolier", "RoR2/Base/Bandolier/DisplayBandolier.prefab" }, { "DisplayBrooch", "RoR2/Base/BarrierOnKill/DisplayBrooch.prefab" }, { "DisplayAegis", "RoR2/Base/BarrierOnOverHeal/DisplayAegis.prefab" }, { "DisplayBear", "RoR2/Base/Bear/DisplayBear.prefab" }, { "DisplayBearSit", "RoR2/Base/Bear/DisplayBearSit.prefab" }, { "DisplayBeetleGland", "RoR2/Base/BeetleGland/DisplayBeetleGland.prefab" }, { "DisplayBehemoth", "RoR2/Base/Behemoth/DisplayBehemoth.prefab" }, { "DisplayTriTip", "RoR2/Base/BleedOnHit/DisplayTriTip.prefab" }, { "DisplayBleedOnHitAndExplode", "RoR2/Base/BleedOnHitAndExplode/DisplayBleedOnHitAndExplode.prefab" }, { "DisplayTome", "RoR2/Base/BonusGoldPackOnKill/DisplayTome.prefab" }, { "DisplayAPRound", "RoR2/Base/BossDamageBonus/DisplayAPRound.prefab" }, { "DisplayHook", "RoR2/Base/BounceNearby/DisplayHook.prefab" }, { "DisplayHookHead", "RoR2/Base/BounceNearby/DisplayHookHead.prefab" }, { "DisplayUkulele", "RoR2/Base/ChainLightning/DisplayUkulele.prefab" }, { "DisplayClover", "RoR2/Base/Clover/DisplayClover.prefab" }, { "DisplayGlasses", "RoR2/Base/CritGlasses/DisplayGlasses.prefab" }, { "DisplayCrowbar", "RoR2/Base/Crowbar/DisplayCrowbar.prefab" }, { "DisplayDagger", "RoR2/Base/Dagger/DisplayDagger.prefab" }, { "DisplayDeathMark", "RoR2/Base/DeathMark/DisplayDeathMark.prefab" }, { "DisplayFireRing", "RoR2/Base/ElementalRings/DisplayFireRing.prefab" }, { "DisplayIceRing", "RoR2/Base/ElementalRings/DisplayIceRing.prefab" }, { "DisplayWarHorn", "RoR2/Base/EnergizedOnEquipmentUse/DisplayWarHorn.prefab" }, { "DisplayBattery", "RoR2/Base/EquipmentMagazine/DisplayBattery.prefab" }, { "DisplayGuillotine", "RoR2/Base/ExecuteLowHealthElite/DisplayGuillotine.prefab" }, { "DisplayWilloWisp", "RoR2/Base/ExplodeOnDeath/DisplayWilloWisp.prefab" }, { "DisplayHippo", "RoR2/Base/ExtraLife/DisplayHippo.prefab" }, { "DisplayGravBoots", "RoR2/Base/FallBoots/DisplayGravBoots.prefab" }, { "DisplayFeather", "RoR2/Base/Feather/DisplayFeather.prefab" }, { "DisplayFireballsOnHit", "RoR2/Base/FireballsOnHit/DisplayFireballsOnHit.prefab" }, { "DisplayFirework", "RoR2/Base/Firework/DisplayFirework.prefab" }, { "DisplaySteakCurved", "RoR2/Base/FlatHealth/DisplaySteakCurved.prefab" }, { "DisplaySteakFlat", "RoR2/Base/FlatHealth/DisplaySteakFlat.prefab" }, { "DisplayFocusedConvergence", "RoR2/Base/FocusConvergence/DisplayFocusedConvergence.prefab" }, { "DisplayFocusedConvergenceFollower", "RoR2/Base/FocusConvergence/DisplayFocusedConvergenceFollower.prefab" }, { "DisplayMask", "RoR2/Base/GhostOnKill/DisplayMask.prefab" }, { "DisplayBoneCrown", "RoR2/Base/GoldOnHit/DisplayBoneCrown.prefab" }, { "DisplaySkullcrown", "RoR2/Base/HeadHunter/DisplaySkullcrown.prefab" }, { "DisplayScythe", "RoR2/Base/HealOnCrit/DisplayScythe.prefab" }, { "DisplaySnail", "RoR2/Base/HealWhileSafe/DisplaySnail.prefab" }, { "DisplayHoof", "RoR2/Base/Hoof/DisplayHoof.prefab" }, { "DisplayFrostRelic", "RoR2/Base/Icicle/DisplayFrostRelic.prefab" }, { "DisplayFrostRelicFollower", "RoR2/Base/Icicle/DisplayFrostRelicFollower.prefab" }, { "DisplayIcicle", "RoR2/Base/Icicle/DisplayIcicle.prefab" }, { "DisplayGasoline", "RoR2/Base/IgniteOnKill/DisplayGasoline.prefab" }, { "DisplayAntler", "RoR2/Base/IncreaseHealing/DisplayAntler.prefab" }, { "DisplayInfusion", "RoR2/Base/Infusion/DisplayInfusion.prefab" }, { "DisplayWaxBird", "RoR2/Base/JumpBoost/DisplayWaxBird.prefab" }, { "DisplayBrainstalk", "RoR2/Base/KillEliteFrenzy/DisplayBrainstalk.prefab" }, { "DisplayKnurl", "RoR2/Base/Knurl/DisplayKnurl.prefab" }, { "DisplayLaserTurbine", "RoR2/Base/LaserTurbine/DisplayLaserTurbine.prefab" }, { "DisplayChargedPerforator", "RoR2/Base/LightningStrikeOnHit/DisplayChargedPerforator.prefab" }, { "DisplayLunarDagger", "RoR2/Base/LunarDagger/DisplayLunarDagger.prefab" }, { "DisplayBirdEye", "RoR2/Base/LunarSkillReplacements/DisplayBirdEye.prefab" }, { "DisplayBirdClaw", "RoR2/Base/LunarSkillReplacements/DisplayBirdClaw.prefab" }, { "DisplayBirdHeart", "RoR2/Base/LunarSkillReplacements/DisplayBirdHeart.prefab" }, { "DisplayBirdFoot", "RoR2/Base/LunarSkillReplacements/DisplayBirdFoot.prefab" }, { "DisplayBeads", "RoR2/Base/LunarTrinket/DisplayBeads.prefab" }, { "DisplayMedkit", "RoR2/Base/Medkit/DisplayMedkit.prefab" }, { "DisplayMissileLauncher", "RoR2/Base/Missile/DisplayMissileLauncher.prefab" }, { "DisplayMonstersOnShrineUse", "RoR2/Base/MonstersOnShrineUse/DisplayMonstersOnShrineUse.prefab" }, { "DisplayMushroom", "RoR2/Base/Mushroom/DisplayMushroom.prefab" }, { "DisplayDiamond", "RoR2/Base/NearbyDamageBonus/DisplayDiamond.prefab" }, { "DisplayDevilHorns", "RoR2/Base/NovaOnHeal/DisplayDevilHorns.prefab" }, { "DisplayJellyGuts", "RoR2/Base/NovaOnLowHealth/DisplayJellyGuts.prefab" }, { "DisplayParentEgg", "RoR2/Base/ParentEgg/DisplayParentEgg.prefab" }, { "DisplayPearl", "RoR2/Base/Pearl/DisplayPearl.prefab" }, { "DisplayShieldGenerator", "RoR2/Base/PersonalShield/DisplayShieldGenerator.prefab" }, { "DisplayStealthkit", "RoR2/Base/Phasing/DisplayStealthkit.prefab" }, { "DisplayInterstellarDeskPlant", "RoR2/Base/Plant/DisplayInterstellarDeskPlant.prefab" }, { "DisplayRandomDamageZone", "RoR2/Base/RandomDamageZone/DisplayRandomDamageZone.prefab" }, { "DisplayCorpseflower", "RoR2/Base/RepeatHeal/DisplayCorpseflower.prefab" }, { "DisplayEmpathyChip", "RoR2/Base/RoboBallBuddy/DisplayEmpathyChip.prefab" }, { "DisplayDoubleMag", "RoR2/Base/SecondarySkillMagazine/DisplayDoubleMag.prefab" }, { "DisplaySeed", "RoR2/Base/Seed/DisplaySeed.prefab" }, { "DisplayShieldBug", "RoR2/Base/ShieldOnly/DisplayShieldBug.prefab" }, { "DisplayShinyPearl", "RoR2/Base/ShinyPearl/DisplayShinyPearl.prefab" }, { "DisplayTeslaCoil", "RoR2/Base/ShockNearby/DisplayTeslaCoil.prefab" }, { "DisplaySiphonOnLowHealth", "RoR2/Base/SiphonOnLowHealth/DisplaySiphonOnLowHealth.prefab" }, { "DisplayBauble", "RoR2/Base/SlowOnHit/DisplayBauble.prefab" }, { "DisplayBuckler", "RoR2/Base/SprintArmor/DisplayBuckler.prefab" }, { "DisplaySoda", "RoR2/Base/SprintBonus/DisplaySoda.prefab" }, { "DisplayWhip", "RoR2/Base/SprintOutOfCombat/DisplayWhip.prefab" }, { "DisplayBrokenMask", "RoR2/Base/SprintWisp/DisplayBrokenMask.prefab" }, { "DisplaySquidTurret", "RoR2/Base/Squid/DisplaySquidTurret.prefab" }, { "DisplayStickyBomb", "RoR2/Base/StickyBomb/DisplayStickyBomb.prefab" }, { "DisplayStunGrenade", "RoR2/Base/StunChanceOnHit/DisplayStunGrenade.prefab" }, { "DisplaySyringe", "RoR2/Base/Syringe/DisplaySyringe.prefab" }, { "DisplaySyringeCluster", "RoR2/Base/Syringe/DisplaySyringeCluster.prefab" }, { "DisplayTalisman", "RoR2/Base/Talisman/DisplayTalisman.prefab" }, { "DisplayTalismanFollower", "RoR2/Base/Talisman/DisplayTalismanFollower.prefab" }, { "DisplayRazorwireCoiled", "RoR2/Base/Thorns/DisplayRazorwireCoiled.prefab" }, { "DisplayRazorwireLeft", "RoR2/Base/Thorns/DisplayRazorwireLeft.prefab" }, { "DisplayRazorwireLeftVoidSurvivor", "RoR2/Base/Thorns/DisplayRazorwireLeftVoidSurvivor.prefab" }, { "DisplayRazorwireRight", "RoR2/Base/Thorns/DisplayRazorwireRight.prefab" }, { "DisplayGoldHeart", "RoR2/Base/TitanGoldDuringTP/DisplayGoldHeart.prefab" }, { "DisplayToothMeshLarge", "RoR2/Base/Tooth/DisplayToothMeshLarge.prefab" }, { "DisplayToothMeshSmall1", "RoR2/Base/Tooth/DisplayToothMeshSmall1.prefab" }, { "DisplayToothMeshSmall2", "RoR2/Base/Tooth/DisplayToothMeshSmall2.prefab" }, { "DisplayToothNecklaceDecal", "RoR2/Base/Tooth/DisplayToothNecklaceDecal.prefab" }, { "DisplayGlowFlower", "RoR2/Base/TPHealingNova/DisplayGlowFlower.prefab" }, { "DisplayKey", "RoR2/Base/TreasureCache/DisplayKey.prefab" }, { "DisplayAfterburner", "RoR2/Base/UtilitySkillMagazine/DisplayAfterburner.prefab" }, { "DisplayAfterburnerShoulderRing", "RoR2/Base/UtilitySkillMagazine/DisplayAfterburnerShoulderRing.prefab" }, { "DisplayPauldron", "RoR2/Base/WarCryOnMultiKill/DisplayPauldron.prefab" }, { "DisplayWarbanner", "RoR2/Base/WardOnLevel/DisplayWarbanner.prefab" }, { "SkillDisplay", "RoR2/Base/UI/SkillDisplay.prefab" }, { "RegeneratingScrapExplosionDisplay", "RoR2/DLC1/RegeneratingScrap/RegeneratingScrapExplosionDisplay.prefab" }, { "RailgunnerDisplay", "RoR2/DLC1/Railgunner/RailgunnerDisplay.prefab" }, { "VoidSurvivorDisplay", "RoR2/DLC1/VoidSurvivor/VoidSurvivorDisplay.prefab" }, { "DisplayEliteMendingAntlers", "RoR2/DLC1/EliteEarth/DisplayEliteMendingAntlers.prefab" }, { "DisplayEliteRabbitEars", "RoR2/DLC1/DisplayEliteRabbitEars.prefab" }, { "DisplayAffixVoid", "RoR2/DLC1/EliteVoid/DisplayAffixVoid.prefab" }, { "DisplayBlunderbuss", "RoR2/DLC1/BossHunter/DisplayBlunderbuss.prefab" }, { "DisplayBlunderbussFollower", "RoR2/DLC1/BossHunter/DisplayBlunderbussFollower.prefab" }, { "DisplayTricornGhost", "RoR2/DLC1/BossHunter/DisplayTricornGhost.prefab" }, { "DisplayTricornUsed", "RoR2/DLC1/BossHunter/DisplayTricornUsed.prefab" }, { "DisplayGummyClone", "RoR2/DLC1/GummyClone/DisplayGummyClone.prefab" }, { "DisplayIrradiatingLaser", "RoR2/DLC1/IrradiatingLaser/DisplayIrradiatingLaser.prefab" }, { "DisplayLunarPortalOnUse", "RoR2/DLC1/LunarPortalOnUse/DisplayLunarPortalOnUse.prefab" }, { "DisplayLunarPortalOnUseFollower", "RoR2/DLC1/LunarPortalOnUse/DisplayLunarPortalOnUseFollower.prefab" }, { "DisplayMolotov", "RoR2/DLC1/Molotov/DisplayMolotov.prefab" }, { "DisplayExecutiveCard", "RoR2/DLC1/MultiShopCard/DisplayExecutiveCard.prefab" }, { "DisplayVendingMachine", "RoR2/DLC1/VendingMachine/DisplayVendingMachine.prefab" }, { "DisplayVendingMachine2", "RoR2/DLC1/VendingMachine/DisplayVendingMachine2.prefab" }, { "DisplayCoffee", "RoR2/DLC1/AttackSpeedAndMoveSpeed/DisplayCoffee.prefab" }, { "DisplayBearVoid", "RoR2/DLC1/BearVoid/DisplayBearVoid.prefab" }, { "DisplayBearVoidSit", "RoR2/DLC1/BearVoid/DisplayBearVoidSit.prefab" }, { "DisplayTriTipVoid", "RoR2/DLC1/BleedOnHitVoid/DisplayTriTipVoid.prefab" }, { "DisplayUkuleleVoid", "RoR2/DLC1/ChainLightningVoid/DisplayUkuleleVoid.prefab" }, { "DisplayCloverVoid", "RoR2/DLC1/CloverVoid/DisplayCloverVoid.prefab" }, { "DisplayLaserSight", "RoR2/DLC1/CritDamage/DisplayLaserSight.prefab" }, { "DisplayGlassesVoid", "RoR2/DLC1/CritGlassesVoid/DisplayGlassesVoid.prefab" }, { "DisplayDroneWeaponLauncher", "RoR2/DLC1/DroneWeapons/DisplayDroneWeaponLauncher.prefab" }, { "DisplayDroneWeaponMinigun", "RoR2/DLC1/DroneWeapons/DisplayDroneWeaponMinigun.prefab" }, { "DisplayDroneWeaponRobotArm", "RoR2/DLC1/DroneWeapons/DisplayDroneWeaponRobotArm.prefab" }, { "DisplayVoidRing", "RoR2/DLC1/ElementalRingVoid/DisplayVoidRing.prefab" }, { "DisplayFuelCellVoid", "RoR2/DLC1/EquipmentMagazineVoid/DisplayFuelCellVoid.prefab" }, { "DisplayWillowWispVoid", "RoR2/DLC1/ExplodeOnDeathVoid/DisplayWillowWispVoid.prefab" }, { "DisplayHippoVoid", "RoR2/DLC1/ExtraLifeVoid/DisplayHippoVoid.prefab" }, { "DisplayDelicateWatch", "RoR2/DLC1/FragileDamageBonus/DisplayDelicateWatch.prefab" }, { "DisplayShippingRequestForm", "RoR2/DLC1/FreeChest/DisplayShippingRequestForm.prefab" }, { "DisplayRollOfPennies", "RoR2/DLC1/GoldOnHurt/DisplayRollOfPennies.prefab" }, { "DisplayLunarShoulderNature", "RoR2/DLC1/HalfAttackSpeedHalfCooldowns/DisplayLunarShoulderNature.prefab" }, { "DisplayLunarShoulderStone", "RoR2/DLC1/HalfSpeedDoubleHealth/DisplayLunarShoulderStone.prefab" }, { "DisplayHealingPotion", "RoR2/DLC1/HealingPotion/DisplayHealingPotion.prefab" }, { "DisplayRainCoatBelt", "RoR2/DLC1/ImmuneToDebuff/DisplayRainCoatBelt.prefab" }, { "DisplaySunHead", "RoR2/DLC1/LunarSun/DisplaySunHead.prefab" }, { "DisplaySunHeadNeck", "RoR2/DLC1/LunarSun/DisplaySunHeadNeck.prefab" }, { "DisplayLunarWings", "RoR2/DLC1/LunarWings/DisplayLunarWings.prefab" }, { "DisplayDefenseNucleus", "RoR2/DLC1/MinorConstructOnKill/DisplayDefenseNucleus.prefab" }, { "DisplayDefenseNucleusFollower", "RoR2/DLC1/MinorConstructOnKill/DisplayDefenseNucleusFollower.prefab" }, { "DisplayMissileLauncherVoid", "RoR2/DLC1/MissileVoid/DisplayMissileLauncherVoid.prefab" }, { "DisplayICBM", "RoR2/DLC1/MoreMissile/DisplayICBM.prefab" }, { "DisplayGrappleHook", "RoR2/DLC1/MoveSpeedOnKill/DisplayGrappleHook.prefab" }, { "DisplayMushroomVoid", "RoR2/DLC1/MushroomVoid/DisplayMushroomVoid.prefab" }, { "DisplayOddlyShapedOpal", "RoR2/DLC1/OutOfCombatArmor/DisplayOddlyShapedOpal.prefab" }, { "DisplayScorpion", "RoR2/DLC1/PermanentDebuffOnHit/DisplayScorpion.prefab" }, { "DisplayShuriken", "RoR2/DLC1/PrimarySkillShuriken/DisplayShuriken.prefab" }, { "DisplayBottledChaos", "RoR2/DLC1/RandomEquipmentTrigger/DisplayBottledChaos.prefab" }, { "DisplayDomino", "RoR2/DLC1/RandomlyLunar/DisplayDomino.prefab" }, { "DisplayDominoFollower", "RoR2/DLC1/RandomlyLunar/DisplayDominoFollower.prefab" }, { "DisplayRegeneratingScrap", "RoR2/DLC1/RegeneratingScrap/DisplayRegeneratingScrap.prefab" }, { "DisplayScrapVoid", "RoR2/DLC1/ScrapVoid/DisplayScrapVoid.prefab" }, { "DisplayScrapVoidGreen", "RoR2/DLC1/ScrapVoid/DisplayScrapVoidGreen.prefab" }, { "DisplayScrapVoidRed", "RoR2/DLC1/ScrapVoid/DisplayScrapVoidRed.prefab" }, { "DisplayScrapVoidWhite", "RoR2/DLC1/ScrapVoid/DisplayScrapVoidWhite.prefab" }, { "DisplayBaubleVoid", "RoR2/DLC1/SlowOnHitVoid/DisplayBaubleVoid.prefab" }, { "DisplayGasTank", "RoR2/DLC1/StrengthenBurn/DisplayGasTank.prefab" }, { "DisplayKeyVoid", "RoR2/DLC1/TreasureCacheVoid/DisplayKeyVoid.prefab" }, { "DisplayMegaCrabItem", "RoR2/DLC1/DisplayMegaCrabItem.prefab" }, { "PickupCaptainDefenseMatrix", "RoR2/Base/CaptainDefenseMatrix/PickupCaptainDefenseMatrix.prefab" }, { "PickupArtifactKey", "RoR2/Base/ArtifactKey/PickupArtifactKey.prefab" }, { "PickupStarSeed", "RoR2/Base/LunarBadLuck/PickupStarSeed.prefab" } }; public static Dictionary itemDisplayPrefabs = new Dictionary(StringComparer.OrdinalIgnoreCase); public static GameObject capacitorPrefab; public static bool scepterInstalled = false; public ItemDisplayCore() { if (Chainloader.PluginInfos.ContainsKey("com.DestroyedClone.AncientScepter")) { scepterInstalled = true; } PopulateDisplays(); } public static KeyAssetRuleGroup CreateGenericDisplayRule(Object keyAsset, string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) return CreateGenericDisplayRule(keyAsset, LoadDisplay(prefabName), childName, position, rotation, scale); } public static KeyAssetRuleGroup CreateGenericDisplayRule(Object keyAsset, 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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_004f: 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_0057: 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_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_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_0072: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007b: 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) KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset; result.displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = itemPrefab, limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale } } }; return result; } public static KeyAssetRuleGroup CreateMirroredDisplayRule(Object keyAsset, string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_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) //IL_005c: 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_0065: 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_006d: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_00c9: 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_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: 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_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0108: 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_010d: Unknown result type (might be due to invalid IL or missing references) KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset; result.displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = LoadDisplay(prefabName), limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = LoadDisplay(prefabName), limbMask = (LimbFlags)0, localPos = new Vector3(-1f * position.x, position.y, position.z), localAngles = rotation, localScale = new Vector3(scale.x, scale.y, -1f * scale.z) } } }; return result; } public static KeyAssetRuleGroup CreateZMirroredDisplayRule(Object keyAsset, string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_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) //IL_005c: 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_0065: 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_006d: 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_007f: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: 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_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_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) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: 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_0106: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0108: 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_010d: Unknown result type (might be due to invalid IL or missing references) KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset; result.displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = LoadDisplay(prefabName), limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = childName, followerPrefab = LoadDisplay(prefabName), limbMask = (LimbFlags)0, localPos = new Vector3(-1f * position.x, position.y, position.z), localAngles = rotation, localScale = new Vector3(-1f * scale.x, scale.y, scale.z) } } }; return result; } public static KeyAssetRuleGroup CreateFollowerDisplayRule(Object keyAsset, GameObject displayPrefab, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0030: 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_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_005b: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006b: 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_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_007c: 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) //IL_0082: Unknown result type (might be due to invalid IL or missing references) KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset; result.displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, childName = "Base", followerPrefab = displayPrefab, limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale } } }; return result; } public static KeyAssetRuleGroup CreateFollowerDisplayRule(Object keyAsset, string prefabName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: 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) return CreateFollowerDisplayRule(keyAsset, LoadDisplay(prefabName), position, rotation, scale); } public static ItemDisplayRule[] CreateDisplayRule(string childName, GameObject displayPrefab, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_000b: 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_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_004b: Unknown result type (might be due to invalid IL or missing references) return (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { childName = childName, followerPrefab = displayPrefab, limbMask = (LimbFlags)0, localPos = position, localAngles = rotation, localScale = scale, ruleType = (ItemDisplayRuleType)0 } }; } public static GameObject LoadDisplay(string name) { string key = name.ToLower(); if (itemDisplayPrefabs.ContainsKey(key) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[key])) { return itemDisplayPrefabs[key]; } Debug.LogWarning((object)("could not find item display prefab for " + name)); return null; } public static GameObject LoadAddressable(string path) { //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) return Addressables.LoadAssetAsync((object)path).WaitForCompletion(); } private static void PopulateDisplays() { foreach (KeyValuePair itemDisplayPath in itemDisplayPaths) { GameObject val = LoadAddressable(itemDisplayPath.Value); if (!Object.op_Implicit((Object)(object)val)) { Debug.LogError((object)("[SS2U]ItemDisplayCore.LoadAddressable:: Issue loading path for \"" + itemDisplayPath.Key + "\" with path \"" + itemDisplayPath.Value + "\".")); } else { itemDisplayPrefabs.Add(itemDisplayPath.Key, val); } } } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet itemDisplayRuleSet = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName + "Body").GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; 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?.ToLower(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] public static ItemDef LoadScepterObject() { return ((ItemBase)ItemBase.instance).ItemDef; } } public class EnemyCore { [CompilerGenerated] private static class <>O { public static hook_AddBuff_BuffDef <0>__CharacterBody_AddBuff_BuffDef; public static hook_FixedUpdate <1>__HookProjectileImpact_FixedUpdate; } public static GameObject wayfarerPrefab; public static GameObject masterPrefab; public static GameObject wayfarerBuffWardPrefab; public static BodyIndex brotherHurtIndex; public static BodyIndex brotherIndex; public static BodyIndex scavLunar1Index; public static BodyIndex scavLunar2Index; public static BodyIndex scavLunar3Index; public static BodyIndex scavLunar4Index; public static BodyIndex falseSonBossIndex; public static BodyIndex falseSonBossPhase2Index; public static BodyIndex falseSonBossPhase3Index; private static SceneDef sceneMoon = Addressables.LoadAssetAsync((object)"RoR2/Base/moon/moon.asset").WaitForCompletion(); private static SceneDef sceneMoon2 = Addressables.LoadAssetAsync((object)"RoR2/Base/moon2/moon2.asset").WaitForCompletion(); public static bool IsMoon() { SceneDef sceneDefForCurrentScene = SceneCatalog.GetSceneDefForCurrentScene(); return Object.op_Implicit((Object)(object)sceneDefForCurrentScene) && ((Object)(object)sceneDefForCurrentScene == (Object)(object)sceneMoon || (Object)(object)sceneDefForCurrentScene == (Object)(object)sceneMoon2); } public static void StoreBodyIndexes() { //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_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_0029: 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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) brotherHurtIndex = BodyCatalog.FindBodyIndex("BrotherHurtBody"); brotherIndex = BodyCatalog.FindBodyIndex("BrotherBody"); scavLunar1Index = BodyCatalog.FindBodyIndex("ScavLunar1Body"); scavLunar2Index = BodyCatalog.FindBodyIndex("ScavLunar2Body"); scavLunar3Index = BodyCatalog.FindBodyIndex("ScavLunar3Body"); scavLunar4Index = BodyCatalog.FindBodyIndex("ScavLunar4Body"); falseSonBossIndex = BodyCatalog.FindBodyIndex("FalseSonBossBody"); falseSonBossPhase2Index = BodyCatalog.FindBodyIndex("FalseSonBossBodyLunarShard"); falseSonBossPhase3Index = BodyCatalog.FindBodyIndex("FalseSonBossBodyBrokenLunarShard"); } public static void FakeMithrixChatMessageServer(string token) { //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_004e: Expected O, but got Unknown string text = ""; text += Language.GetString("BROTHER_BODY_NAME"); text += ":"; text += Language.GetString(token); text += ""; Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = text }); } public static void FakeFalseSonChatMessageServer(string token) { //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_004e: Expected O, but got Unknown string text = ""; text += Language.GetString("FALSESONBOSS_BODY_NAME"); text += ":"; text += Language.GetString(token); text += ""; Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = text }); } internal static void CreatePrefab() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Expected O, but got Unknown //IL_0091: 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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00df: 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_01ad: 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_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02d8: 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) //IL_02e3: 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_032c: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_038b: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03d6: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_0428: Unknown result type (might be due to invalid IL or missing references) //IL_042a: Unknown result type (might be due to invalid IL or missing references) //IL_0433: 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_047c: Unknown result type (might be due to invalid IL or missing references) //IL_047e: Unknown result type (might be due to invalid IL or missing references) //IL_0487: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Unknown result type (might be due to invalid IL or missing references) //IL_04d0: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_04db: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0524: Unknown result type (might be due to invalid IL or missing references) //IL_0526: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_057b: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_07a8: Unknown result type (might be due to invalid IL or missing references) //IL_07ad: Unknown result type (might be due to invalid IL or missing references) //IL_07b3: Expected O, but got Unknown //IL_07c9: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_07d4: Expected O, but got Unknown wayfarerPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("prefabs/CharacterBodies/GreaterWispBody"), "WayfarerBody", true); wayfarerPrefab.GetComponent().localPlayerAuthority = true; Object.Destroy((Object)(object)((Component)wayfarerPrefab.transform.Find("Model Base")).gameObject); GameObject val = Assets.mainAssetBundle.LoadAsset("mdlWayfarer"); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = wayfarerPrefab.transform; val2.transform.localPosition = new Vector3(0f, 8.5f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = Vector3.one; Transform transform = val.transform; transform.parent = val2.transform; transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; ChildLocator component = val.GetComponent(); CharacterBody component2 = wayfarerPrefab.GetComponent(); ((Object)component2).name = "WayfarerBody"; component2.baseNameToken = "WAYFARER_BODY_NAME"; component2.subtitleNameToken = "WAYFARER_SUBTITLE"; component2.isChampion = true; component2.portraitIcon = Assets.mainAssetBundle.LoadAsset("WayfarerIcon"); component2.baseMaxHealth = 2100f; component2.levelMaxHealth = 630f; component2.baseArmor = 20f; component2.baseDamage = 10f; component2.levelDamage = 5.4f; component2.baseMoveSpeed = 8.5f; component2.hullClassification = (HullClassification)1; component2.mainRootSpeed = 0f; ((Component)component2).GetComponent().mainStateType = new SerializableEntityStateType(typeof(GenericCharacterMain)); DeathRewards component3 = wayfarerPrefab.GetComponent(); component3.bossPickup = new SerializablePickupIndex { pickupName = "ItemIndex.Lamp" }; CameraTargetParams val3 = wayfarerPrefab.AddOrGetComponent(); val3.cameraParams = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/TitanBody").GetComponent().cameraParams; ModelLocator component4 = wayfarerPrefab.GetComponent(); component4.modelTransform = transform; component4.modelBaseTransform = val2.transform; component4.autoUpdateModelTransform = true; CharacterModel val4 = val.AddComponent(); val4.body = component2; val4.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[10] { new RendererInfo { defaultMaterial = ((Renderer)val.GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)val.GetComponentInChildren() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("Head")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("Head")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("LanternL")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("LanternL")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("LanternR")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("LanternR")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("ChainL1")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("ChainL1")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("ChainL2")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("ChainL2")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("ChainR1")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("ChainR1")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("ChainR2")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("ChainR2")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("LNeckChain")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("LNeckChain")).GetComponent() }, new RendererInfo { defaultMaterial = ((Renderer)((Component)component.FindChild("RNeckChain")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false, renderer = (Renderer)(object)((Component)component.FindChild("RNeckChain")).GetComponent() } }; val4.autoPopulateLightInfos = true; val4.temporaryOverlays = new List(); TeamComponent val5 = wayfarerPrefab.AddOrGetComponent(); val5.body = component2; CharacterDeathBehavior component5 = wayfarerPrefab.GetComponent(); component5.deathStateMachine = wayfarerPrefab.GetComponent(); component5.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath)); Rigidbody component6 = wayfarerPrefab.GetComponent(); component6.freezeRotation = true; RigidbodyDirection component7 = wayfarerPrefab.GetComponent(); component7.freezeXRotation = true; component7.freezeYRotation = false; component7.freezeZRotation = true; Object.Destroy((Object)(object)wayfarerPrefab.GetComponent()); CapsuleCollider val6 = wayfarerPrefab.AddComponent(); val6.center = new Vector3(0f, 8.35f, 0f); val6.radius = 4.24f; val6.height = 16.52f; val6.direction = 1; HealthComponent component8 = wayfarerPrefab.GetComponent(); HurtBoxGroup val7 = val.AddComponent(); val7.bullseyeCount = 1; List list = new List(); CapsuleCollider[] componentsInChildren = val.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { HurtBox val8 = ((Component)componentsInChildren[i]).gameObject.AddOrGetComponent(); ((Component)val8).gameObject.layer = LayerIndex.entityPrecise.intVal; val8.healthComponent = component8; if (i == 0) { val8.isBullseye = true; } val8.hurtBoxGroup = val7; list.Add(val8); } val7.hurtBoxes = list.ToArray(); val7.mainHurtBox = ((Component)componentsInChildren[0]).GetComponent(); wayfarerBuffWardPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/AffixHauntedWard"), "WayfarerBuffWard", true); NetworkedBodyAttachment val9 = wayfarerBuffWardPrefab.AddOrGetComponent(); val9.shouldParentToAttachedBody = true; BuffWard component9 = wayfarerBuffWardPrefab.GetComponent(); component9.buffDuration = 8f; component9.buffDef = Buffs.WarCryBuff; component9.Networkradius = CreateBuffWard.radius + component2.radius; object obj = <>O.<0>__CharacterBody_AddBuff_BuffDef; if (obj == null) { hook_AddBuff_BuffDef val10 = CharacterBody_AddBuff_BuffDef; <>O.<0>__CharacterBody_AddBuff_BuffDef = val10; obj = (object)val10; } CharacterBody.AddBuff_BuffDef += (hook_AddBuff_BuffDef)obj; object obj2 = <>O.<1>__HookProjectileImpact_FixedUpdate; if (obj2 == null) { hook_FixedUpdate val11 = HookProjectileImpact_FixedUpdate; <>O.<1>__HookProjectileImpact_FixedUpdate = val11; obj2 = (object)val11; } HookProjectileImpact.FixedUpdate += (hook_FixedUpdate)obj2; PrefabCore.bodyList.Add(wayfarerPrefab); } private static void CharacterBody_AddBuff_BuffDef(orig_AddBuff_BuffDef orig, CharacterBody self, BuffDef buffDef) { //IL_0002: 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) if (self.bodyIndex != BodyCatalog.FindBodyIndex(wayfarerPrefab) || !((Object)(object)buffDef == (Object)(object)Buffs.WarCryBuff)) { orig.Invoke(self, buffDef); } } private static void HookProjectileImpact_FixedUpdate(orig_FixedUpdate orig, HookProjectileImpact self) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Invalid comparison between Unknown and I4 //IL_0038: 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_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_0055: Unknown result type (might be due to invalid IL or missing references) if ((int)self.hookState == 2) { GameObject networkowner = self.projectileController.Networkowner; if (((networkowner == null) ? null : networkowner.GetComponent()?.bodyIndex) == (BodyIndex?)BodyCatalog.FindBodyIndex("WayfarerBody")) { Object.Destroy((Object)(object)self); return; } } orig.Invoke(self); } internal static void CreateAI() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_0101: Unknown result type (might be due to invalid IL or missing references) //IL_010f: 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_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Unknown result type (might be due to invalid IL or missing references) //IL_0165: 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_0181: Unknown result type (might be due to invalid IL or missing references) masterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("prefabs/CharacterMasters/AncientWispMaster"), "WayfarerMaster", true); CharacterMaster val = masterPrefab.AddOrGetComponent(); val.bodyPrefab = wayfarerPrefab; Prefabs.masterPrefabs.Add(masterPrefab); BaseAI component = masterPrefab.GetComponent(); component.fullVision = true; component.enemyAttentionDuration = 6000f; AISkillDriver[] componentsInChildren = ((Component)val).GetComponentsInChildren(); foreach (AISkillDriver val2 in componentsInChildren) { Object.Destroy((Object)(object)val2); } AISkillDriver val3 = ((MonoBehaviour)(object)val).AddComponent(); val3.activationRequiresTargetLoS = false; val3.aimType = (AimType)1; val3.maxDistance = 50f; val3.minDistance = 0f; val3.movementType = (MovementType)1; val3.requireSkillReady = true; val3.selectionRequiresTargetLoS = true; val3.skillSlot = (SkillSlot)0; AISkillDriver val4 = ((MonoBehaviour)(object)val).AddComponent(); val4.maxDistance = 100f; val4.minDistance = 0f; val4.maxUserHealthFraction = 0.5f; val4.movementType = (MovementType)2; val4.moveTargetType = (TargetType)0; val4.requireSkillReady = true; val4.skillSlot = (SkillSlot)1; AISkillDriver val5 = ((MonoBehaviour)(object)val).AddComponent(); val5.maxDistance = CreateBuffWard.radius + 5f; val5.minDistance = 0f; val5.movementType = (MovementType)0; val5.moveTargetType = (TargetType)1; val5.requireSkillReady = true; val5.skillSlot = (SkillSlot)2; AISkillDriver val6 = ((MonoBehaviour)(object)val).AddComponent(); val6.aimType = (AimType)2; val6.minDistance = 0f; val6.movementType = (MovementType)1; val6.skillSlot = (SkillSlot)(-1); } private void SetUpSkills() { GenericSkill[] componentsInChildren = wayfarerPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } SetUpPrimary(); SetUpSecondary(); SetUpUtility(); } private void SetUpPrimary() { //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_0050: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(FireChains)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 1; val.baseRechargeInterval = 3f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; Skills.skillDefs.Add(val); SkillLocator component = wayfarerPrefab.GetComponent(); component.primary = wayfarerPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; Skills.skillFamilies.Add(val2); Reflection.SetFieldValue((object)component.primary, "_skillFamily", val2); val2 = component.primary.skillFamily; Variant[] variants = val2.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; } private void SetUpSecondary() { //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_0050: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(CloakState)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 1; val.baseRechargeInterval = 16f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)1; val.isCombatSkill = false; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; Skills.skillDefs.Add(val); SkillLocator component = wayfarerPrefab.GetComponent(); component.secondary = wayfarerPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; Skills.skillFamilies.Add(val2); Reflection.SetFieldValue((object)component.secondary, "_skillFamily", val2); val2 = component.secondary.skillFamily; Variant[] variants = val2.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; } private void SetUpUtility() { //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_0050: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Expected O, but got Unknown //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(CreateBuffWard)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 1; val.baseRechargeInterval = 9f; val.beginSkillCooldownOnSkillEnd = false; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; Skills.skillDefs.Add(val); SkillLocator component = wayfarerPrefab.GetComponent(); component.utility = wayfarerPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; Skills.skillFamilies.Add(val2); Reflection.SetFieldValue((object)component.utility, "_skillFamily", val2); val2 = component.utility.skillFamily; Variant[] variants = val2.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; } internal static void RegisterStates() { } internal static void CreateSpawnCards() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0044: 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_005f: Expected O, but got Unknown //IL_0068: 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) CharacterSpawnCard val = ScriptableObject.CreateInstance(); ((Object)val).name = "WayfarerCSC"; ((SpawnCard)val).prefab = masterPrefab; ((SpawnCard)val).directorCreditCost = 600; ((SpawnCard)val).hullSize = (HullClassification)1; ((SpawnCard)val).nodeGraphType = (GraphType)0; ((SpawnCard)val).occupyPosition = false; DirectorCard val2 = new DirectorCard(); val2.selectionWeight = 1; val2.spawnCard = (SpawnCard)(object)val; val2.spawnDistance = (MonsterSpawnDistance)0; DirectorCardHolder val3 = new DirectorCardHolder(); val3.Card = val2; val3.InteractableCategory = (InteractableCategory)0; val3.MonsterCategory = (MonsterCategory)4; } } public class DamageTypeCore { public static class ModdedDamageTypes { public static ModdedDamageType CyborgCanDetonateShockCore; public static ModdedDamageType ScaleForceToMass; public static ModdedDamageType GroundedForceCorrection; public static ModdedDamageType GougeOnHit; public static ModdedDamageType ExtendFear; public static ModdedDamageType GuaranteedFearOnHit; public static ModdedDamageType ResetVictimForce; public static ModdedDamageType ErraticGadget; public static ModdedDamageType AntiFlyingForce; public static ModdedDamageType Root5s; public static ModdedDamageType NucleatorRadiationOnHit; } private uint currentMax = 0u; public static DamageTypeCore instance; public static float gougeDamageCoefficient = 1.5f; public DamageTypeCore() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_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_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Expected O, but got Unknown instance = this; ModdedDamageTypes.GroundedForceCorrection = DamageAPI.ReserveDamageType(); ModdedDamageTypes.AntiFlyingForce = DamageAPI.ReserveDamageType(); ModdedDamageTypes.ResetVictimForce = DamageAPI.ReserveDamageType(); ModdedDamageTypes.CyborgCanDetonateShockCore = DamageAPI.ReserveDamageType(); ModdedDamageTypes.ScaleForceToMass = DamageAPI.ReserveDamageType(); ModdedDamageTypes.GougeOnHit = DamageAPI.ReserveDamageType(); ModdedDamageTypes.ExtendFear = DamageAPI.ReserveDamageType(); ModdedDamageTypes.GuaranteedFearOnHit = DamageAPI.ReserveDamageType(); ModdedDamageTypes.ErraticGadget = DamageAPI.ReserveDamageType(); ModdedDamageTypes.Root5s = DamageAPI.ReserveDamageType(); ModdedDamageTypes.NucleatorRadiationOnHit = DamageAPI.ReserveDamageType(); HealthComponent.TakeDamageProcess += new hook_TakeDamageProcess(HealthComponent_TakeDamage); GlobalEventManager.ProcessHitEnemy += new hook_ProcessHitEnemy(GlobalEventManager_OnHitEnemy); } private void GlobalEventManager_OnHitEnemy(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_0037: 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_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_0088: 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_00ae: 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_0114: 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_013c: 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_0189: 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) orig.Invoke(self, damageInfo, victim); if (!NetworkServer.active || damageInfo.rejected || !Object.op_Implicit((Object)(object)victim)) { return; } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.GougeOnHit)) { InflictDotInfo val = default(InflictDotInfo); val.attackerObject = damageInfo.attacker; val.victimObject = victim; val.dotIndex = DoTCore.NemmandoGouge; val.duration = 2f; val.damageMultiplier = gougeDamageCoefficient; InflictDotInfo val2 = val; DotController.InflictDot(ref val2); } CharacterBody component = victim.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.ExtendFear) && Object.op_Implicit((Object)(object)component) && component.HasBuff(BuffCore.fearDebuff)) { component.AddTimedBuff(BuffCore.fearDebuff, ExecutionerDash.debuffDuration); } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.Root5s)) { component.AddTimedBuff(Buffs.LunarSecondaryRoot, 5f); } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.NucleatorRadiationOnHit) && component.bodyIndex != NucleatorCore.bodyIndex) { InflictDotInfo val = default(InflictDotInfo); val.attackerObject = damageInfo.attacker; val.victimObject = victim; val.dotIndex = DoTCore.NucleatorRadiation; val.duration = 5f; val.damageMultiplier = 1f; val.maxStacksFromAttacker = 1u; InflictDotInfo val3 = val; DotController.InflictDot(ref val3); } } } private void HealthComponent_TakeDamage(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_0018: 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_0106: 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_005e: 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_0089: 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_019b: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0333: Unknown result type (might be due to invalid IL or missing references) //IL_0494: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_051f: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_02b6: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ee: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0418: Unknown result type (might be due to invalid IL or missing references) //IL_041e: 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_042c: 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_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0439: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0464: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_0471: Unknown result type (might be due to invalid IL or missing references) //IL_0478: Unknown result type (might be due to invalid IL or missing references) //IL_047d: Unknown result type (might be due to invalid IL or missing references) //IL_0482: Unknown result type (might be due to invalid IL or missing references) //IL_0490: Expected O, but got Unknown //IL_0626: Unknown result type (might be due to invalid IL or missing references) //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_0632: Unknown result type (might be due to invalid IL or missing references) bool flag = false; if (NetworkServer.active) { CharacterBody body = self.body; if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.ResetVictimForce)) { if (Object.op_Implicit((Object)(object)body.rigidbody)) { body.rigidbody.velocity = new Vector3(0f, body.rigidbody.velocity.y, 0f); body.rigidbody.angularVelocity = new Vector3(0f, body.rigidbody.angularVelocity.y, 0f); } if ((Object)(object)body.characterMotor != (Object)null) { body.characterMotor.velocity.x = 0f; body.characterMotor.velocity.z = 0f; body.characterMotor.rootMotion.x = 0f; body.characterMotor.rootMotion.z = 0f; } } CharacterBody val = null; if (damageInfo.dotIndex == DoTCore.NemmandoGouge && damageInfo.procCoefficient == 0f) { if (Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)val)) { val = damageInfo.attacker.GetComponent(); } if (Object.op_Implicit((Object)(object)val)) { damageInfo.crit = Util.CheckRoll(val.crit, val.master); } damageInfo.procCoefficient = 0.5f; ((ProcChainMask)(ref damageInfo.procChainMask)).AddProc((ProcType)12); flag = true; } else if (damageInfo.dotIndex == DoTCore.StrangeCanPoison) { if (Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)val)) { val = damageInfo.attacker.GetComponent(); } float num = 1f; float num2 = self.combinedHealth * 0.025f; if (Object.op_Implicit((Object)(object)val)) { num = 100f * (num2 / self.fullCombinedHealth) * val.damage; } damageInfo.damage = Mathf.Max(num2, num); EffectManager.SimpleEffect(DoTCore.StrangeCanHitEffect, damageInfo.position, ((Component)self).transform.rotation, true); } else if (damageInfo.dotIndex == DoTCore.DetritiveTrematodeInfection) { if (self.combinedHealthFraction > 0.25f) { damageInfo.damage = 0f; damageInfo.rejected = true; DotController val2 = DotController.FindDotController(((Component)self).gameObject); if (Object.op_Implicit((Object)(object)val2)) { int num3 = -1; for (int i = 0; i < val2.dotStackList.Count; i++) { if (val2.dotStackList[i].dotIndex == DoTCore.DetritiveTrematodeInfection) { num3 = i; break; } } if (num3 >= 0) { val2.RemoveDotStackAtServer(num3); } } } else { EffectManager.SimpleEffect(DoTCore.TrematodeHitEffect, damageInfo.position, ((Component)self).transform.rotation, true); } } else if (damageInfo.dotIndex == DoTCore.NucleatorRadiation) { if (Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)val)) { val = damageInfo.attacker.GetComponent(); } if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)val.teamComponent)) { damageInfo.damageType = DamageTypeCombo.op_Implicit((DamageType)2048); damageInfo.rejected = true; float num4 = 7f; new BlastAttack { baseDamage = val.damage * 2f, attacker = damageInfo.attacker, inflictor = damageInfo.attacker, baseForce = 0f, attackerFiltering = (AttackerFiltering)2, crit = val.RollCrit(), position = damageInfo.position, falloffModel = (FalloffModel)0, procCoefficient = 0.5f, procChainMask = default(ProcChainMask), radius = num4, damageColorIndex = (DamageColorIndex)4, damageType = DamageTypeCombo.op_Implicit((DamageTypeExtended)8192), teamIndex = val.teamComponent.teamIndex }.Fire(); EffectManager.SpawnEffect(DoTCore.TrematodeHitEffect, new EffectData { origin = damageInfo.position, rotation = ((Component)self).transform.rotation, scale = num4 }, true); } } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.GuaranteedFearOnHit)) { self.body.AddTimedBuff(BuffCore.fearDebuff, ExecutionerDash.debuffDuration); } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.GroundedForceCorrection) && (Object)(object)body.characterMotor != (Object)null && body.characterMotor.isGrounded && damageInfo.force.y <= 1200f) { damageInfo.force.y = 1200f; } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.ScaleForceToMass)) { if (!body.isFlying && (Object)(object)body.characterMotor != (Object)null) { if (!body.characterMotor.isGrounded) { if (body.isChampion) { damageInfo.force.x *= 0.7f; damageInfo.force.z *= 0.7f; } } else if (body.isChampion) { damageInfo.force.x *= 0.5f; damageInfo.force.z *= 0.5f; } } if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num5 = Mathf.Max(body.rigidbody.mass / 100f, 1f); if (body.isFlying) { num5 = Mathf.Min(num5, 7.5f); } damageInfo.force *= num5; } } if (DamageAPI.HasModdedDamageType(damageInfo, ModdedDamageTypes.AntiFlyingForce)) { float num6 = -1600f; if (Object.op_Implicit((Object)(object)body) && body.isFlying) { Rigidbody rigidbody = body.rigidbody; if (Object.op_Implicit((Object)(object)rigidbody)) { num6 *= Mathf.Min(4f, Mathf.Max(rigidbody.mass / 100f, 1f)); if (damageInfo.force.y > num6) { damageInfo.force.y = num6; } } } } } orig.Invoke(self, damageInfo); if (NetworkServer.active && !damageInfo.rejected && flag) { GlobalEventManager.instance.OnHitEnemy(damageInfo, ((Component)self).gameObject); } } } internal class ItemCore { public static ItemCore instance; public List items = new List(); public List itemDefs = new List(); public static ItemTier sibTier = (ItemTier)5; public static bool dropInMultiplayerInstalled = Chainloader.PluginInfos.ContainsKey("com.niwith.DropInMultiplayer"); public ItemCore() { instance = this; } public void InitItems() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) List list = new List(); foreach (SS2Item item in items) { item.Init(); if (item.DropInMultiBlacklist) { list.Add(item.itemDef.itemIndex); } itemDefs.Add(item.itemDef); } } public static void DropShipCall(Transform transform, int itemCount, uint teamLevel = 1u) { //IL_008d: 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_00a7: Unknown result type (might be due to invalid IL or missing references) float num = (float)itemCount * (float)(Math.Sqrt(teamLevel * 13) - 4.0); List list = (Util.CheckRoll(0.5f * num - 1f, 0f, (CharacterMaster)null) ? Run.instance.availableTier3DropList : ((!Util.CheckRoll(4f * num, 0f, (CharacterMaster)null)) ? Run.instance.availableTier1DropList : Run.instance.availableTier2DropList)); int index = Run.instance.treasureRng.RangeInt(0, list.Count); PickupDropletController.CreatePickupDroplet(list[index], transform.position, new Vector3(0f, 0f, 0f)); } public static void RollNkota(Transform transform, int itemCount) { //IL_00b2: 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_00cc: Unknown result type (might be due to invalid IL or missing references) int num = itemCount - 1; float num2 = 79.2f; float num3 = 19.8f; float num4 = 1f; int num5 = RollTierSmallChest(); for (int i = 0; i < num; i++) { if (num5 >= 3) { break; } int num6 = RollTierSmallChest(); if (num6 > num5) { num5 = num6; } } List list = num5 switch { 3 => Run.instance.availableTier3DropList, 2 => Run.instance.availableTier2DropList, _ => Run.instance.availableTier1DropList, }; int index = Run.instance.treasureRng.RangeInt(0, list.Count); PickupDropletController.CreatePickupDroplet(list[index], transform.position, new Vector3(0f, 0f, 0f)); } private static int RollTierSmallChest() { int result = 1; if (Util.CheckRoll(1f, 0f, (CharacterMaster)null)) { result = 3; } else if (Util.CheckRoll(19.999998f, 0f, (CharacterMaster)null)) { result = 2; } return result; } } internal class DoTCore { public static DotIndex DetritiveTrematodeInfection; public static DotIndex StrangeCanPoison; public static DotIndex NemmandoGouge; public static DotIndex NucleatorRadiation; public static GameObject TrematodeHitEffect; public static GameObject StrangeCanHitEffect; public DoTCore() { //IL_0014: 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_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) RegisterDoTs(); StrangeCanHitEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoDiseaseImpactEffect.prefab").WaitForCompletion(), "SS2UStrangeCanHitEffect", false); Assets.AddEffect(StrangeCanHitEffect, "SS2UStrangeCan"); TrematodeHitEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/BeetleQueen/BeetleSpitExplosion.prefab").WaitForCompletion(), "SS2UTrematodeHitEffect", false); Assets.AddEffect(TrematodeHitEffect); } protected internal void RegisterDoTs() { //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_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_004b: 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_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) DetritiveTrematodeInfection = DotAPI.RegisterDotDef(1f, 1f, (DamageColorIndex)3, BuffCore.detritiveBuff, (CustomDotBehaviour)null, (CustomDotVisual)null); StrangeCanPoison = DotAPI.RegisterDotDef(1f, 1f, (DamageColorIndex)4, BuffCore.strangeCanPoisonBuff, (CustomDotBehaviour)null, (CustomDotVisual)null); NemmandoGouge = DotAPI.RegisterDotDef(0.25f, 0.25f, (DamageColorIndex)2, BuffCore.gougeBuff, (CustomDotBehaviour)null, (CustomDotVisual)null); NucleatorRadiation = DotAPI.RegisterDotDef(1f, 2f, (DamageColorIndex)4, BuffCore.nucleatorSpecialDebuff, (CustomDotBehaviour)null, (CustomDotVisual)null); } } internal class EquipmentCore { public static EquipmentCore instance; public List equipment = new List(); public List equipmentDefs = new List(); private const string modPrefix = "@Starstorm2Unofficial:"; private const string prefabPath = "@Starstorm2Unofficial:Assets/AssetBundle/Items/"; public EquipmentCore() { instance = this; } public void InitEquipment() { foreach (SS2Equipment item in equipment) { item.Init(); equipmentDefs.Add(item.equipDef); } } } public class BuffCore { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func <>9__22_4; public static Func <>9__22_3; public static Manipulator <>9__22_0; public static Func <>9__22_7; public static Func <>9__22_5; public static Func <>9__22_8; public static Func <>9__22_6; public static Manipulator <>9__22_1; public static hook_OnEnter <>9__22_2; internal void b__22_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)2, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled") })) { val.Emit(OpCodes.Ldloc_3); val.EmitDelegate>((Func)((bool playerControlled, CharacterBody body) => playerControlled || body.HasBuff(chirrFriendBuff) || body.HasBuff(chirrSelfBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up Chirr anti-Void Infestor IL Hook."); } } internal bool b__22_4(Instruction x) { return ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled"); } internal bool b__22_3(bool playerControlled, CharacterBody body) { return playerControlled || body.HasBuff(chirrFriendBuff) || body.HasBuff(chirrSelfBuff); } internal void b__22_1(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004b: 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_0093: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Weak") })) { ILCursor obj = val; obj.Index += 2; val.Emit(OpCodes.Ldarg_0); val.EmitDelegate>((Func)((bool hasBuff, CharacterModel self) => hasBuff || self.body.HasBuff(chirrFriendBuff) || self.body.HasBuff(nucleatorSpecialBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up Weak overlay IL Hook."); } val = new ILCursor(il); if (val.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "FullCrit") })) { ILCursor obj2 = val; obj2.Index += 2; val.Emit(OpCodes.Ldarg_0); val.EmitDelegate>((Func)((bool hasBuff, CharacterModel self) => hasBuff || self.body.HasBuff(chirrFriendDistractBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up FullCrit overlay IL Hook."); } } internal bool b__22_7(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Weak"); } internal bool b__22_5(bool hasBuff, CharacterModel self) { return hasBuff || self.body.HasBuff(chirrFriendBuff) || self.body.HasBuff(nucleatorSpecialBuff); } internal bool b__22_8(Instruction x) { return ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "FullCrit"); } internal bool b__22_6(bool hasBuff, CharacterModel self) { return hasBuff || self.body.HasBuff(chirrFriendDistractBuff); } internal void b__22_2(orig_OnEnter orig, BaseSplitDeath self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && ((EntityState)self).characterBody.HasBuff(chirrFriendBuff) && NetworkServer.active) { self.spawnCount = 0; ((GenericCharacterDeath)self).DestroyBodyAsapServer(); } } } public static float fearExecuteFraction = 0.15f; public static float fearExecuteThresholdAdditive = 0.17647052f; public static BuffDef detritiveBuff; public static BuffDef greaterBannerBuff; public static BuffDef strangeCanPoisonBuff; public static BuffDef sigilBuff; public static BuffDef greenChocBuff; public static BuffDef watchMetronomeBuff; public static BuffDef fearDebuff; public static BuffDef gougeBuff; public static BuffDef exeSuperchargedBuff; public static BuffDef nucleatorSpecialBuff; public static BuffDef nucleatorSpecialDebuff; public static BuffDef chirrFriendBuff; public static BuffDef chirrSelfBuff; public static BuffDef chirrFriendDistractBuff; private GameObject greenChocPrefab; private GameObject greenChocEffect; internal static List buffDefs = new List(); public BuffCore() { RegisterBuffs(); RegisterEffects(); Hook(); } protected void RegisterBuffs() { //IL_0018: 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_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_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: 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_0251: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: 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_0335: Unknown result type (might be due to invalid IL or missing references) //IL_0363: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044d: Unknown result type (might be due to invalid IL or missing references) //IL_04b0: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) exeSuperchargedBuff = CreateBuffDef("SS2UExecutionerSuperchargedBuff", canStack: false, isCooldown: false, isDebuff: false, new Color(0f, 1f, 1f), LegacyResourcesAPI.Load("Textures/BuffIcons/texBuffNullifiedIcon")); nucleatorSpecialBuff = CreateBuffDef("SS2UNucleatorSpecialBuff", canStack: true, isCooldown: false, isDebuff: false, Color32.op_Implicit(new Color32((byte)224, (byte)217, (byte)67, byte.MaxValue)), Assets.mainAssetBundle.LoadAsset("radiation_debuff")); nucleatorSpecialDebuff = CreateBuffDef("SS2UNucleatorSpecialDebuff", canStack: false, isCooldown: false, isDebuff: false, Color32.op_Implicit(new Color32((byte)224, (byte)217, (byte)67, byte.MaxValue)), Assets.mainAssetBundle.LoadAsset("radiation_debuff")); detritiveBuff = ScriptableObject.CreateInstance(); detritiveBuff.buffColor = Color.white; detritiveBuff.canStack = true; detritiveBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_Trematodes"); detritiveBuff.isDebuff = false; ((Object)detritiveBuff).name = "SS2UInfested"; buffDefs.Add(detritiveBuff); greaterBannerBuff = ScriptableObject.CreateInstance(); greaterBannerBuff.canStack = false; greaterBannerBuff.iconSprite = Addressables.LoadAssetAsync((object)"RoR2/Base/WardOnLevel/texBuffWarbannerIcon.tif").WaitForCompletion(); ((Object)greaterBannerBuff).name = "SS2UGreaterWarbanner"; greaterBannerBuff.buffColor = new Color(0.8392157f, 83f / 170f, 0.22745098f); buffDefs.Add(greaterBannerBuff); strangeCanPoisonBuff = ScriptableObject.CreateInstance(); strangeCanPoisonBuff.canStack = false; strangeCanPoisonBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_StrangeCan"); ((Object)strangeCanPoisonBuff).name = "SS2UStrangeCanPoison"; strangeCanPoisonBuff.isDebuff = false; strangeCanPoisonBuff.buffColor = Color32.op_Implicit(new Color32((byte)200, (byte)233, (byte)61, byte.MaxValue)); buffDefs.Add(strangeCanPoisonBuff); sigilBuff = ScriptableObject.CreateInstance(); sigilBuff.canStack = false; sigilBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_Sigil"); ((Object)sigilBuff).name = "SS2USigilCritDefBoost"; sigilBuff.isDebuff = false; sigilBuff.buffColor = Color.white; buffDefs.Add(sigilBuff); greenChocBuff = ScriptableObject.CreateInstance(); greenChocBuff.canStack = true; greenChocBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_Chocolate"); ((Object)greenChocBuff).name = "SS2UGreenChocAttackBoost"; greenChocBuff.isDebuff = false; greenChocBuff.buffColor = Color.white; buffDefs.Add(greenChocBuff); watchMetronomeBuff = ScriptableObject.CreateInstance(); watchMetronomeBuff.canStack = true; watchMetronomeBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_WatchMetronome"); ((Object)watchMetronomeBuff).name = "SS2UWatchMetronome"; watchMetronomeBuff.isDebuff = false; watchMetronomeBuff.buffColor = new Color(0.376f, 0.843f, 0.898f, 1f); buffDefs.Add(watchMetronomeBuff); chirrFriendBuff = CreateBuffDef("SS2UChirrFriendBuff", canStack: false, isCooldown: false, isDebuff: false, Color32.op_Implicit(new Color32((byte)245, (byte)123, (byte)145, byte.MaxValue)), Assets.mainAssetBundle.LoadAsset("buffChirrSoulLink")); chirrSelfBuff = CreateBuffDef("SS2UChirrSelfBuff", canStack: false, isCooldown: false, isDebuff: false, Color32.op_Implicit(new Color32((byte)245, (byte)123, (byte)145, byte.MaxValue)), Assets.mainAssetBundle.LoadAsset("buffChirrSoulLink")); chirrFriendDistractBuff = CreateBuffDef("SS2UChirrFriendDistractBuff", canStack: false, isCooldown: false, isDebuff: false, new Color(0.8235294f, 10f / 51f, 0.08627451f), Addressables.LoadAssetAsync((object)"RoR2/Base/Common/texBuffCloakIcon.tif").WaitForCompletion()); fearDebuff = ScriptableObject.CreateInstance(); fearDebuff.canStack = false; fearDebuff.iconSprite = Assets.mainAssetBundle.LoadAsset("surprised-skull"); ((Object)fearDebuff).name = "SS2UFearDebuff"; fearDebuff.isDebuff = true; fearDebuff.buffColor = Color.white; buffDefs.Add(fearDebuff); gougeBuff = ScriptableObject.CreateInstance(); gougeBuff.canStack = true; gougeBuff.iconSprite = Assets.mainAssetBundle.LoadAsset("Status_NemesisBleed"); ((Object)gougeBuff).name = "SS2UGouge"; gougeBuff.isDebuff = true; gougeBuff.buffColor = Color.red; buffDefs.Add(gougeBuff); } private void RegisterEffects() { //IL_0034: 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_004b: 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) greenChocPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/WarCryEffect"), "SS2UGreenChocEffect", false); ParticleSystem componentInChildren = greenChocPrefab.GetComponentInChildren(); if (Object.op_Implicit((Object)(object)componentInChildren)) { MainModule main = componentInChildren.main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(new Color(0.58f, 0.9f, 0.66f)); } Assets.AddEffect(greenChocPrefab); } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //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_0068: Expected O, but got Unknown //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown //IL_00a7: 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_00b2: Expected O, but got Unknown HealthComponent.TakeDamageProcess += new hook_TakeDamageProcess(HealthComponent_TakeDamage); CharacterBody.OnClientBuffsChanged += new hook_OnClientBuffsChanged(CharacterBody_OnClientBuffsChanged); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); object obj = <>c.<>9__22_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_003d: Unknown result type (might be due to invalid IL or missing references) ILCursor val5 = new ILCursor(il); if (val5.TryGotoNext((MoveType)2, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled") })) { val5.Emit(OpCodes.Ldloc_3); val5.EmitDelegate>((Func)((bool playerControlled, CharacterBody body) => playerControlled || body.HasBuff(chirrFriendBuff) || body.HasBuff(chirrSelfBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up Chirr anti-Void Infestor IL Hook."); } }; <>c.<>9__22_0 = val; obj = (object)val; } Infest.FixedUpdate += (Manipulator)obj; object obj2 = <>c.<>9__22_1; if (obj2 == null) { Manipulator val2 = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_004b: 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_0093: Expected O, but got Unknown //IL_00d6: Unknown result type (might be due to invalid IL or missing references) ILCursor val4 = new ILCursor(il); if (val4.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "Weak") })) { ILCursor obj4 = val4; obj4.Index += 2; val4.Emit(OpCodes.Ldarg_0); val4.EmitDelegate>((Func)((bool hasBuff, CharacterModel self) => hasBuff || self.body.HasBuff(chirrFriendBuff) || self.body.HasBuff(nucleatorSpecialBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up Weak overlay IL Hook."); } val4 = new ILCursor(il); if (val4.TryGotoNext(new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchLdsfld(x, typeof(Buffs), "FullCrit") })) { ILCursor obj5 = val4; obj5.Index += 2; val4.Emit(OpCodes.Ldarg_0); val4.EmitDelegate>((Func)((bool hasBuff, CharacterModel self) => hasBuff || self.body.HasBuff(chirrFriendDistractBuff))); } else { Debug.LogError((object)"Starstorm 2 Unofficial: Failed to set up FullCrit overlay IL Hook."); } }; <>c.<>9__22_1 = val2; obj2 = (object)val2; } CharacterModel.UpdateOverlays += (Manipulator)obj2; object obj3 = <>c.<>9__22_2; if (obj3 == null) { hook_OnEnter val3 = delegate(orig_OnEnter orig, BaseSplitDeath self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)((EntityState)self).characterBody) && ((EntityState)self).characterBody.HasBuff(chirrFriendBuff) && NetworkServer.active) { self.spawnCount = 0; ((GenericCharacterDeath)self).DestroyBodyAsapServer(); } }; <>c.<>9__22_2 = val3; obj3 = (object)val3; } BaseSplitDeath.OnEnter += (hook_OnEnter)obj3; } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_012d: 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_0126: 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_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: 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_0191: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018a: 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_01b1: 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_01b8: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (Object.op_Implicit((Object)(object)self.skillLocator) && self.HasBuff(chirrFriendBuff)) { if (Object.op_Implicit((Object)(object)self.skillLocator.primary)) { GenericSkill primary = self.skillLocator.primary; primary.cooldownScale *= 0.66f; } if (Object.op_Implicit((Object)(object)self.skillLocator.secondary)) { GenericSkill secondary = self.skillLocator.secondary; secondary.cooldownScale *= 0.66f; } if (Object.op_Implicit((Object)(object)self.skillLocator.utility)) { GenericSkill utility = self.skillLocator.utility; utility.cooldownScale *= 0.66f; } if (Object.op_Implicit((Object)(object)self.skillLocator.special)) { GenericSkill special = self.skillLocator.special; special.cooldownScale *= 0.66f; } if (!((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)512)) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 0x200); } if (!((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)2048)) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 0x800); } if (!((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)16)) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 0x10); } if (!((Enum)self.bodyFlags).HasFlag((Enum)(object)(BodyFlags)1)) { self.bodyFlags = (BodyFlags)(self.bodyFlags | 1); } } } private void HealthComponent_TakeDamage(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Invalid comparison between Unknown and I4 //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Invalid comparison between Unknown and I4 //IL_0094: 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_00a3: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { if (Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(chirrFriendBuff)) { if (!Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)damageInfo.inflictor) && (int)damageInfo.damageColorIndex == 9 && (int)damageInfo.damageType.damageType == 66) { damageInfo.damage = 0f; damageInfo.rejected = true; } if (!damageInfo.canRejectForce) { damageInfo.force *= 0.1f; } } if (((DamageTypeCombo)(ref damageInfo.damageType)).IsDamageSourceSkillBased) { CharacterBody val = null; if (Object.op_Implicit((Object)(object)damageInfo.attacker)) { val = damageInfo.attacker.GetComponent(); } if (Object.op_Implicit((Object)(object)val) && val.HasBuff(chirrFriendBuff)) { damageInfo.damage *= (val.isElite ? 3f : 2f); } } } orig.Invoke(self, damageInfo); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.HasBuff(greaterBannerBuff)) { args.critAdd += 25f; } int buffCount = sender.GetBuffCount(greenChocBuff); if (buffCount > 0) { args.damageMultAdd += 0.5f * (float)buffCount; } if (sender.HasBuff(fearDebuff)) { args.moveSpeedReductionMultAdd += 0.5f; } if (sender.HasBuff(chirrFriendBuff)) { if (!sender.isElite) { args.healthMultAdd += 0.5f; } else { args.healthMultAdd += 1f; } } if (sender.HasBuff(chirrFriendDistractBuff)) { args.armorAdd += 100f; } } private void CharacterBody_OnClientBuffsChanged(orig_OnClientBuffsChanged orig, CharacterBody self) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (self.HasBuff(greenChocBuff) && !Object.op_Implicit((Object)(object)greenChocEffect)) { Transform val = (Object.op_Implicit((Object)(object)self.mainHurtBox) ? ((Component)self.mainHurtBox).transform : self.transform); if (Object.op_Implicit((Object)(object)val)) { greenChocEffect = Object.Instantiate(greenChocPrefab, val.position, Quaternion.identity, val); } } if (!self.HasBuff(greenChocBuff) && Object.op_Implicit((Object)(object)greenChocEffect)) { Object.Destroy((Object)(object)greenChocEffect); } } public static BuffDef CreateBuffDef(string name, bool canStack, bool isCooldown, bool isDebuff, Color color, Sprite iconSprite) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) BuffDef val = ScriptableObject.CreateInstance(); ((Object)val).name = name; val.canStack = canStack; val.isCooldown = isCooldown; val.isDebuff = isDebuff; val.buffColor = color; val.iconSprite = iconSprite; buffDefs.Add(val); ((Object)val).name = ((Object)val).name; return val; } } public class TyphoonCore { public static DifficultyIndex diffIdxTyphoon; public const float difScale = 3.5f; public const string iconPath = "Assets/AssetBundle/GeneralAssets/TyphoonIcon"; public Sprite iconSprite = Assets.mainAssetBundle.LoadAsset("TyphoonIcon"); public const string difServerTag = "ty"; public Color difColor = new Color(0.71f, 0.25f, 0.5f); private static int defMonsterCap; public TyphoonCore() { //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_0064: 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_0075: Expected O, but got Unknown //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) string text = "DIFFICULTY_TYPHOON_NAME"; string text2 = "DIFFICULTY_TYPHOON_DESCRIPTION"; if (Config.TyphoonIncreaseSpawnCap.Value) { text2 = "DIFFICULTY_TYPHOON_INCREASEDSPAWNCAP_DESCRIPTION"; } DifficultyDef val = new DifficultyDef(3.5f, text, "Assets/AssetBundle/GeneralAssets/TyphoonIcon", text2, difColor, "ty", true); val.iconSprite = iconSprite; val.foundIconSprite = true; diffIdxTyphoon = DifficultyAPI.AddDifficulty(val); Run.onRunStartGlobal += Run_onRunStartGlobal; Run.onRunDestroyGlobal += Run_onRunDestroyGlobal; } private void Run_onRunStartGlobal(Run run) { //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_004e: Unknown result type (might be due to invalid IL or missing references) defMonsterCap = TeamCatalog.GetTeamDef((TeamIndex)2).softCharacterLimit; if (run.selectedDifficulty != diffIdxTyphoon) { return; } foreach (CharacterMaster value in run.userMasters.Values) { value.inventory.GiveItem(Items.MonsoonPlayerHelper.itemIndex, 1); } if (Config.TyphoonIncreaseSpawnCap.Value) { TeamDef teamDef = TeamCatalog.GetTeamDef((TeamIndex)2); teamDef.softCharacterLimit = Mathf.FloorToInt((float)teamDef.softCharacterLimit * 1.5f); } } private void Run_onRunDestroyGlobal(Run run) { TeamCatalog.GetTeamDef((TeamIndex)2).softCharacterLimit = defMonsterCap; } } } namespace Starstorm2Unofficial.Cores.Unlockables { public static class VanillaSurvivorUnlockables { public static UnlockableDef commandoGrandMastery; public static UnlockableDef toolbotGrandMastery; public static UnlockableDef acridGrandMastery; public static void RegisterUnlockables() { if (Config.EnableGrandMasteryCommando.Value) { commandoGrandMastery = ScriptableObject.CreateInstance(); commandoGrandMastery.cachedName = "Skins.SS2UCommando.GrandMastery"; commandoGrandMastery.nameToken = "ACHIEVEMENT_SS2UCOMMANDOCLEARGAMETYPHOON_NAME"; commandoGrandMastery.achievementIcon = Assets.mainAssetBundle.LoadAsset("texCommandoSkinGrandMaster"); Starstorm2Unofficial.Modules.Unlockables.unlockableDefs.Add(commandoGrandMastery); AchievementHider.unlockableRewardIdentifiers.Remove(commandoGrandMastery.cachedName); } if (Config.EnableGrandMasteryToolbot.Value) { toolbotGrandMastery = ScriptableObject.CreateInstance(); toolbotGrandMastery.cachedName = "Skins.SS2UToolbot.GrandMastery"; toolbotGrandMastery.nameToken = "ACHIEVEMENT_SS2UTOOLBOTCLEARGAMETYPHOON_NAME"; toolbotGrandMastery.achievementIcon = Assets.mainAssetBundle.LoadAsset("texToolbotSkinGrandMaster"); Starstorm2Unofficial.Modules.Unlockables.unlockableDefs.Add(toolbotGrandMastery); AchievementHider.unlockableRewardIdentifiers.Remove(toolbotGrandMastery.cachedName); } } } } namespace Starstorm2Unofficial.Cores.Unlockables.Achievements.Vanilla { [RegisterAchievement("SS2UCommandoClearGameTyphoon", "Skins.SS2UCommando.GrandMastery", null, 15u, null)] public class CommandoGrandMasteryAchievement : BaseGrandMasteryAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //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_000e: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex("CommandoBody"); } } [RegisterAchievement("SS2UToolbotClearGameTyphoon", "Skins.SS2UToolbot.GrandMastery", null, 15u, null)] public class ToolbotGrandMasteryAchievement : BaseGrandMasteryAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //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_000e: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex("ToolbotBody"); } } } namespace Starstorm2Unofficial.Cores.States.Wayfarer { internal class CloakState : BaseSkillState { public static float baseDuration = 3f; private Animator animator; private float duration; private bool hasCloaked; public override void OnEnter() { ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).PlayCrossfade("FullBody, Override", "Cloak", "Cloak.playbackRate", duration, 0.2f); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!hasCloaked && (double)animator.GetFloat("Cloak.active") > 0.5) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.Cloak, 10f); hasCloaked = true; } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } internal class CreateBuffWard : BaseSkillState { public static float baseDuration = 3.5f; public static float radius = 30f; private Animator animator; private GameObject buffPrefab; public override void OnEnter() { ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); ((EntityState)this).PlayCrossfade("FullBody, Override", "Ward", "Ward.playbackRate", baseDuration / ((BaseState)this).attackSpeedStat, 0.2f); } public override void FixedUpdate() { //IL_005f: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)buffPrefab) && (double)animator.GetFloat("Ward.active") > 0.5) { buffPrefab = Object.Instantiate(EnemyCore.wayfarerBuffWardPrefab); buffPrefab.GetComponent().teamIndex = ((EntityState)this).characterBody.teamComponent.teamIndex; buffPrefab.GetComponent().AttachToGameObjectAndSpawn(((EntityState)this).gameObject, (string)null); } if (((EntityState)this).fixedAge >= baseDuration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)buffPrefab)) { Object.Destroy((Object)(object)buffPrefab); } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } internal class FireChains : BaseSkillState { public static float baseDuration = 2f; public static float damageCoefficient = 4f; public static float force = 10f; public static float radius = 15f; public static GameObject explosionPrefab = LegacyResourcesAPI.Load("prefabs/effects/omnieffect/OmniExplosionVFX"); private Animator animator; private float duration; private EffectData effectData; private BlastAttack attack; private ChildLocator locator; private bool hasAttackedL; private bool hasAttackedR; private GameObject chainPrefab = LegacyResourcesAPI.Load("prefabs/projectiles/GravekeeperHookProjectile"); public override void OnEnter() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); duration = baseDuration / ((BaseState)this).attackSpeedStat; effectData = new EffectData(); effectData.scale = radius; ((EntityState)this).PlayCrossfade("FullBody, Override", "Melee", "Melee.playbackRate", duration, 0.2f); locator = ((Component)((EntityState)this).GetModelTransform()).GetComponent(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)animator)) { if (!hasAttackedL && (double)animator.GetFloat("MeleeL.active") > 0.5) { hasAttackedL = true; DoAttack("LanternL"); } else if (!hasAttackedR && (double)animator.GetFloat("MeleeR.active") > 0.5) { hasAttackedR = true; DoAttack("LanternR"); } } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } private void DoAttack(string childName) { //IL_003a: 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_0045: 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_004d: Unknown result type (might be due to invalid IL or missing references) Util.PlayAttackSpeedSound(FireHook.soundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); if (((EntityState)this).isAuthority) { ProjectileManager instance = ProjectileManager.instance; GameObject obj = chainPrefab; Vector3 position = locator.FindChild(childName).position; Ray aimRay = ((BaseState)this).GetAimRay(); instance.FireProjectile(obj, position, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * damageCoefficient, force, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } internal class MeleeSlam : BaseSkillState { public static float baseDuration = 2f; public static float damageCoefficient = 4f; public static float force = 10f; public static float radius = 15f; public static GameObject explosionPrefab = LegacyResourcesAPI.Load("prefabs/effects/omnieffect/OmniExplosionVFX"); private Animator animator; private float duration; private EffectData effectData; private BlastAttack attack; private ChildLocator locator; private bool hasAttackedL; private bool hasAttackedR; public override void OnEnter() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Expected O, but got Unknown //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) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); duration = baseDuration / ((BaseState)this).attackSpeedStat; effectData = new EffectData(); effectData.scale = radius; ((EntityState)this).PlayCrossfade("FullBody, Override", "Melee", "Melee.playbackRate", duration, 0.2f); attack = new BlastAttack(); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; attack.baseForce = force; attack.radius = radius; attack.teamIndex = TeamComponent.GetObjectTeam(((EntityState)this).gameObject); locator = ((Component)((EntityState)this).GetModelTransform()).GetComponent(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)animator)) { if (!hasAttackedL && (double)animator.GetFloat("MeleeL.active") > 0.5) { hasAttackedL = true; DoAttack("LanternL"); } else if (!hasAttackedR && (double)animator.GetFloat("MeleeR.active") > 0.5) { hasAttackedR = true; DoAttack("LanternR"); } } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } private void DoAttack(string childName) { //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_0019: 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_004f: 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_005b: Unknown result type (might be due to invalid IL or missing references) Vector3 position = locator.FindChild(childName).position; effectData.origin = position; EffectManager.SpawnEffect(explosionPrefab, effectData, true); if (((EntityState)this).isAuthority) { Debug.Log((object)position); attack.position = position; attack.Fire(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } } namespace Starstorm2Unofficial.Cores.Skins { public static class VanillaSurvivorSkins { [CompilerGenerated] private static class <>O { public static hook_FireBullet <0>__BaseNailgunState_FireBullet; public static hook_FireBullet <1>__FireSpear_FireBullet; public static hook_OnEnter <2>__ToolbotDualWield_OnEnter; } public static Mesh meshCommandoClassic; public static Mesh meshCommandoClassicGun; public static Mesh meshArmoredAcrid; public static void LoadMeshes(AssetBundle vanillaSurvivorsAssetBundle) { meshCommandoClassic = vanillaSurvivorsAssetBundle.LoadAsset("meshCommandoClassic"); meshCommandoClassicGun = vanillaSurvivorsAssetBundle.LoadAsset("meshCommandoClassicGun"); } public static void RegisterVanillaSurvivorSkins() { Debug.LogError((object)"SS2U: Skipping skin setup because it needs to be fixed, and I won't be the one who does it."); } private static void RegisterCommandoSkins() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) if (Config.EnableGrandMasteryCommando.Value) { GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion(); ModelSkinController componentInChildren = val.GetComponentInChildren(); GameObject gameObject = ((Component)componentInChildren).gameObject; CharacterModel component = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array, 0); Material defaultMaterial = Assets.LoadMaterialFromAssetBundle("matCommandoClassic"); array[0].defaultMaterial = defaultMaterial; array[1].defaultMaterial = defaultMaterial; array[2].defaultMaterial = defaultMaterial; SkinDef val2 = Starstorm2Unofficial.Modules.Skins.CreateSkinDef("COMMANDO_GRANDMASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texCommandoSkinGrandMaster"), array, mainSkinnedMeshRenderer, gameObject, VanillaSurvivorUnlockables.commandoGrandMastery); val2.meshReplacements = SkinsCore.CreateMeshReplacements(array, Assets.mainAssetBundle.LoadAsset("meshCommandoClassicGun"), Assets.mainAssetBundle.LoadAsset("meshCommandoClassicGun"), Assets.mainAssetBundle.LoadAsset("meshCommandoClassic")); List list = componentInChildren.skins.ToList(); list.Insert(3, val2); componentInChildren.skins = list.ToArray(); SkinDef[][] fieldValue = Reflection.GetFieldValue(typeof(BodyCatalog), "skins"); fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins; BodyCatalog.skins = fieldValue; } } private static void RegisterMultSkins() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_00e7: 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_0125: 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_0130: 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_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_018d: 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_01f8: 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_0203: Expected O, but got Unknown //IL_0219: 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_0224: Expected O, but got Unknown //IL_023a: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Expected O, but got Unknown if (Config.EnableGrandMasteryToolbot.Value) { GameObject val = Addressables.LoadAssetAsync((object)"RoR2/Base/Toolbot/ToolbotBody.prefab").WaitForCompletion(); ModelSkinController componentInChildren = val.GetComponentInChildren(); GameObject gameObject = ((Component)componentInChildren).gameObject; CharacterModel component = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array, 0); array[1].defaultMaterial = Assets.matLunarGolem; SkinDef val2 = Starstorm2Unofficial.Modules.Skins.CreateSkinDef("TOOLBOT_GRANDMASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texToolbotSkinGrandMaster"), array, mainSkinnedMeshRenderer, gameObject, VanillaSurvivorUnlockables.toolbotGrandMastery); val2.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[1] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshToolbotGM"), renderer = (Renderer)(object)((Component)val2.rendererInfos[1].renderer).GetComponent() } }; val2.projectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[3] { new ProjectileGhostReplacement { projectilePrefab = LegacyResourcesAPI.Load("Prefabs/Projectiles/CryoCanisterProjectile"), projectileGhostReplacementPrefab = LegacyResourcesAPI.Load("Prefabs/ProjectileGhosts/LunarWispTrackingBombGhost") }, new ProjectileGhostReplacement { projectilePrefab = LegacyResourcesAPI.Load("Prefabs/Projectiles/CryoCanisterBombletsProjectile"), projectileGhostReplacementPrefab = LegacyResourcesAPI.Load("Prefabs/ProjectileGhosts/LunarGolemTwinShotProjectileGhost") }, new ProjectileGhostReplacement { projectilePrefab = LegacyResourcesAPI.Load("Prefabs/Projectiles/ToolbotGrenadeLauncherProjectile"), projectileGhostReplacementPrefab = LegacyResourcesAPI.Load("Prefabs/ProjectileGhosts/LunarExploderShardGhost") } }; List list = componentInChildren.skins.ToList(); list.Insert(3, val2); componentInChildren.skins = list.ToArray(); SkinDef[][] fieldValue = Reflection.GetFieldValue(typeof(BodyCatalog), "skins"); fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins; BodyCatalog.skins = fieldValue; object obj = <>O.<0>__BaseNailgunState_FireBullet; if (obj == null) { hook_FireBullet val3 = BaseNailgunState_FireBullet; <>O.<0>__BaseNailgunState_FireBullet = val3; obj = (object)val3; } BaseNailgunState.FireBullet += (hook_FireBullet)obj; object obj2 = <>O.<1>__FireSpear_FireBullet; if (obj2 == null) { hook_FireBullet val4 = FireSpear_FireBullet; <>O.<1>__FireSpear_FireBullet = val4; obj2 = (object)val4; } FireSpear.FireBullet += (hook_FireBullet)obj2; object obj3 = <>O.<2>__ToolbotDualWield_OnEnter; if (obj3 == null) { hook_OnEnter val5 = ToolbotDualWield_OnEnter; <>O.<2>__ToolbotDualWield_OnEnter = val5; obj3 = (object)val5; } ToolbotDualWield.OnEnter += (hook_OnEnter)obj3; } } private static void RegisterAcridSkins() { //IL_0093: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) GameObject val = BodyCatalog.FindBodyPrefab("CrocoBody"); ModelSkinController componentInChildren = val.GetComponentInChildren(); GameObject gameObject = ((Component)componentInChildren).gameObject; CharacterModel component = gameObject.GetComponent(); SkinnedMeshRenderer mainSkinnedMeshRenderer = component.mainSkinnedMeshRenderer; RendererInfo[] baseRendererInfos = component.baseRendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[baseRendererInfos.Length]; baseRendererInfos.CopyTo(array, 0); Material defaultMaterial = Assets.LoadMaterialFromAssetBundle("matAcridArmor"); array[0].defaultMaterial = defaultMaterial; SkinDef val2 = Starstorm2Unofficial.Modules.Skins.CreateSkinDef("ACRID_GRANDMASTERY_SKIN_NAME", Assets.mainAssetBundle.LoadAsset("texAcridSkinGrandMaster"), array, mainSkinnedMeshRenderer, gameObject, VanillaSurvivorUnlockables.acridGrandMastery); val2.meshReplacements = (MeshReplacement[])(object)new MeshReplacement[1] { new MeshReplacement { mesh = Assets.mainAssetBundle.LoadAsset("meshAcridGM"), renderer = (Renderer)(object)((Component)val2.rendererInfos[0].renderer).GetComponent() } }; List list = componentInChildren.skins.ToList(); list.Insert(2, val2); componentInChildren.skins = list.ToArray(); SkinDef[][] fieldValue = Reflection.GetFieldValue(typeof(BodyCatalog), "skins"); fieldValue[BodyCatalog.FindBodyIndex(val)] = componentInChildren.skins; BodyCatalog.skins = fieldValue; } private static void ToolbotDualWield_OnEnter(orig_OnEnter orig, ToolbotDualWield self) { orig.Invoke(self); if (((Component)((EntityState)self).GetModelTransform()).GetComponentInChildren().skins[((EntityState)self).characterBody.skinIndex].nameToken == "TOOLBOT_GRANDMASTERY_SKIN_NAME") { ((Renderer)self.coverLeftInstance.GetComponentInChildren()).material = Assets.matLunarGolem; ((Renderer)self.coverRightInstance.GetComponentInChildren()).material = Assets.matLunarGolem; } } private static void FireSpear_FireBullet(orig_FireBullet orig, FireSpear self, Ray aimRay) { //IL_004f: Unknown result type (might be due to invalid IL or missing references) bool flag = false; GameObject tracerEffectPrefab = ((GenericBulletBaseState)self).tracerEffectPrefab; if (((Component)((EntityState)self).GetModelTransform()).GetComponentInChildren().skins[((EntityState)self).characterBody.skinIndex].nameToken == "TOOLBOT_GRANDMASTERY_SKIN_NAME") { flag = true; ((GenericBulletBaseState)self).tracerEffectPrefab = LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerHuntressSnipe"); } orig.Invoke(self, aimRay); if (flag) { ((GenericBulletBaseState)self).tracerEffectPrefab = tracerEffectPrefab; } } private static void BaseNailgunState_FireBullet(orig_FireBullet orig, BaseNailgunState self, Ray aimRay, int bulletCount, float spreadPitchScale, float spreadYawScale) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) bool flag = false; GameObject tracerEffectPrefab = BaseNailgunState.tracerEffectPrefab; if (((Component)((EntityState)self).GetModelTransform()).GetComponentInChildren().skins[((EntityState)self).characterBody.skinIndex].nameToken == "TOOLBOT_GRANDMASTERY_SKIN_NAME") { flag = true; BaseNailgunState.tracerEffectPrefab = LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/TracerLunarWispMinigun"); } orig.Invoke(self, aimRay, bulletCount, spreadPitchScale, spreadYawScale); if (flag) { BaseNailgunState.tracerEffectPrefab = tracerEffectPrefab; } } } } namespace Starstorm2Unofficial.Cores.Equipment { internal class CloakingHeadband : SS2Equipment { public override string NameInternal => "SS2U_CloakingHeadband"; public override float Cooldown => 45f; public override string PickupIconPath => "CloakingHeadband_Icon"; public override string PickupModelPath => "MDLCloakingHeadband"; private static GameObject effectPrefab => Addressables.LoadAssetAsync((object)"RoR2/Base/Phasing/ProcStealthkit.prefab").WaitForCompletion(); public override void RegisterHooks() { } protected override bool ActivateEquipment(EquipmentSlot equip) { //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0057: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown equip.characterBody.AddTimedBuff(Buffs.CloakSpeed, 10f); equip.characterBody.AddTimedBuff(Buffs.Cloak, 10f); if (Object.op_Implicit((Object)(object)equip.characterBody) && Object.op_Implicit((Object)(object)effectPrefab)) { EffectManager.SpawnEffect(effectPrefab, new EffectData { rotation = Quaternion.identity, origin = equip.characterBody.transform.position }, true); } return true; } } internal class GreaterWarbanner : SS2Equipment { private static GameObject warbannerObj; public static NetworkSoundEventDef networkSound; public override string NameInternal => "SS2U_GreaterWarbanner"; public override float Cooldown => 60f; public override string PickupIconPath => "GreaterWarbanner_Icon"; public override string PickupModelPath => "MDLGreaterWarbanner"; private static GameObject CreateWarbanner() { //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/WarbannerWard"), "GreaterWarbannerWard", true); val.GetComponent().buffDef = BuffCore.greaterBannerBuff; val.AddComponent(); Transform val2 = val.transform.Find("Indicator/IndicatorSphere"); Transform val3 = val.transform.Find("mdlWarbanner"); for (int i = 0; i < val3.childCount; i++) { ((Component)val3.GetChild(i)).gameObject.SetActive(false); } Material val4 = (from mat in Resources.FindObjectsOfTypeAll() where ((Object)mat).name == "matWarcrySphereIndicator" select mat).FirstOrDefault(); if (Object.op_Implicit((Object)(object)val4)) { ((Renderer)((Component)val2).GetComponent()).material = val4; } GameObject val5 = PrefabAPI.InstantiateClone(Assets.mainAssetBundle.LoadAsset("MDLGreaterWarbannerWard"), "GreaterWarbannerProp", false); val5.GetComponent().material.shader = Assets.hotpoo; val5.transform.parent = ((Component)val3).transform; val5.transform.localPosition = new Vector3(0f, 3f, 0f); val5.transform.localScale = new Vector3(6.3f, 6f, 6f); val5.transform.localRotation = Quaternion.identity; return val; } public override void RegisterHooks() { networkSound = Assets.CreateNetworkSoundEventDef("SS2UGreaterWarbanner"); warbannerObj = CreateWarbanner(); } protected override bool ActivateEquipment(EquipmentSlot equip) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)equip.characterBody) || !Object.op_Implicit((Object)(object)equip.characterBody.masterObject)) { return false; } GreaterWarbannerBodyTracker greaterWarbannerBodyTracker = equip.characterBody.masterObject.AddOrGetComponent(); if ((Object)(object)greaterWarbannerBodyTracker.banner != (Object)null) { NetworkServer.Destroy(greaterWarbannerBodyTracker.banner); } GameObject val = Object.Instantiate(warbannerObj, equip.characterBody.transform.position, Quaternion.identity); val.GetComponent().teamIndex = equip.characterBody.teamComponent.teamIndex; val.GetComponent().radius = 25f; greaterWarbannerBodyTracker.banner = val; EffectManager.SimpleSoundEffect(networkSound.index, equip.characterBody.transform.position, true); NetworkServer.Spawn(val); return true; } } public class GreaterWarbannerBodyTracker : MonoBehaviour { public GameObject banner; } [RequireComponent(typeof(BuffWard))] public class GreaterWarbannerComponent : MonoBehaviour { private float stopwatch; private BuffWard ward; public float cdr = 0.5f; public float healFraction = 0.025f; public float procInterval = 1f; private void Awake() { ward = ((Component)this).GetComponent(); stopwatch = 0f; } private void FixedUpdate() { if (NetworkServer.active) { stopwatch += Time.fixedDeltaTime; if (stopwatch >= procInterval) { stopwatch -= procInterval; Proc(); } } } private void Proc() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: 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_004d: 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_008c: Invalid comparison between Unknown and I4 //IL_0052: 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_0082: 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_0071: 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) if (!Object.op_Implicit((Object)(object)ward)) { return; } float radiusSqr = ward.calculatedRadius * ward.calculatedRadius; Vector3 position = ((Component)this).transform.position; if (ward.invertTeamFilter) { TeamIndex val = (TeamIndex)0; while ((int)val < 5) { if (val != ward.teamFilter.teamIndex) { ProcTeam(TeamComponent.GetTeamMembers(val), radiusSqr, position); } val = (TeamIndex)(sbyte)(val + 1); } } else { ProcTeam(TeamComponent.GetTeamMembers(ward.teamFilter.teamIndex), radiusSqr, position); } } private void ProcTeam(ReadOnlyCollection recipients, float radiusSqr, Vector3 currentPosition) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Invalid comparison between Unknown and I4 //IL_00c5: 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) foreach (TeamComponent recipient in recipients) { Vector3 val = ((Component)recipient).transform.position - currentPosition; if ((int)ward.shape == 1) { val.y = 0f; } if (!(((Vector3)(ref val)).sqrMagnitude <= radiusSqr)) { continue; } CharacterBody component = ((Component)recipient).GetComponent(); if (Object.op_Implicit((Object)(object)component) && (!ward.requireGrounded || !Object.op_Implicit((Object)(object)component.characterMotor) || component.characterMotor.isGrounded)) { if (Object.op_Implicit((Object)(object)component.healthComponent)) { component.healthComponent.HealFraction(healFraction, default(ProcChainMask)); } if (Object.op_Implicit((Object)(object)component.skillLocator)) { component.skillLocator.DeductCooldownFromAllSkillsServer(cdr); } } } } } internal class PressurizedCanister : SS2Equipment { public override string NameInternal => "SS2U_Canister"; public override float Cooldown => 15f; public override string PickupIconPath => "PressurizedCanister_Icon"; public override string PickupModelPath => "MDLPressurizedCanister"; public override void RegisterHooks() { } protected override bool ActivateEquipment(EquipmentSlot equip) { CanisterBehavior canisterBehavior = ((Component)equip).gameObject.AddComponent(); canisterBehavior.body = equip.characterBody; return true; } } public class CanisterBehavior : NetworkBehaviour { public CharacterBody body; private const float duration = 1f; private const float thrustForce = 110f; private float timer; private static GameObject thrustStartEffect = LegacyResourcesAPI.Load("prefabs/effects/SmokescreenEffect"); private static GameObject thrustEffect = LegacyResourcesAPI.Load("prefabs/effects/impacteffects/CharacterLandImpact"); private void Awake() { timer = 0f; } private void FixedUpdate() { //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Expected O, but got Unknown //IL_0060: 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_0143: Expected O, but got Unknown //IL_014b: 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_0113: 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) if (!Object.op_Implicit((Object)(object)body)) { return; } if (timer == 0f) { CharacterMotor characterMotor = body.characterMotor; if (Object.op_Implicit((Object)(object)characterMotor)) { ((BaseCharacterController)characterMotor).Motor.ForceUnground(0.1f); } EffectData val = new EffectData(); val.origin = body.footPosition; EffectManager.SpawnEffect(thrustStartEffect, val, true); } timer += Time.fixedDeltaTime; if (timer < 1f && Object.op_Implicit((Object)(object)body)) { bool value = Config.EnableFunnyCanister.Value; CharacterMotor characterMotor2 = body.characterMotor; if (Object.op_Implicit((Object)(object)characterMotor2)) { if (NetworkServer.active && (value || body.inputBank.jump.down)) { characterMotor2.ApplyForce(Vector3.up * 110f * (body.rigidbody.mass / 100f), false, false); } EffectData val2 = new EffectData(); val2.origin = body.footPosition; val2.scale = 0.5f; EffectManager.SpawnEffect(thrustEffect, val2, true); } } else { Object.Destroy((Object)(object)this); } } private void OnDestroy() { } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } } namespace Starstorm2Unofficial.Cores.Items { internal class BabyToys : SS2Item { public override string NameInternal => "LevelDownOnPickup"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)3 }; public override string PickupIconPath => "CoffeeBag_Icon"; public override string PickupModelPath => "MDLCoffeeBag"; public override void RegisterHooks() { //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) { orig.Invoke(self); int count = GetCount(self); self.level -= (float)(3 * count); } } internal class ShackledLamp : SS2Item { private GameObject chainPrefab = LegacyResourcesAPI.Load("prefabs/projectiles/GravekeeperHookProjectile"); private static float chainDamageCoefficient = 3f; private static float chainDamageCoefficientStack = 1f; private static float chainForce = 10f; private static int chainFireInterval = 5; private int attackCounter; public override string NameInternal => "SS2U_Lamp"; public override ItemTier Tier => (ItemTier)4; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)1 }; public override string PickupIconPath => "LampItem"; public override string PickupModelPath => ""; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CharacterBody.OnSkillActivated += new hook_OnSkillActivated(CharacterBody_OnSkillActivated); } private void CharacterBody_OnSkillActivated(orig_OnSkillActivated orig, CharacterBody self, GenericSkill skill) { //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) orig.Invoke(self, skill); int count = GetCount(self); if (count <= 0 || !((Object)(object)self.skillLocator?.primary == (Object)(object)skill)) { return; } attackCounter++; if (attackCounter >= chainFireInterval) { attackCounter = 0; Util.PlayAttackSpeedSound(FireHook.soundString, ((Component)self).gameObject, self.attackSpeed); if (NetworkServer.active) { float num = self.damage * (chainDamageCoefficient + chainDamageCoefficientStack * (float)(count - 1)); ProjectileManager.instance.FireProjectile(chainPrefab, self.inputBank.aimOrigin, Util.QuaternionSafeLookRotation(self.inputBank.aimDirection), ((Component)self).gameObject, self.damage * chainDamageCoefficient, chainForce, Util.CheckRoll(self.crit, self.master), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } } } } internal class BrokenBloodTester : SS2Item { private static float healAccum; public override string NameInternal => "BloodTester"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)3, (ItemTag)4 }; public override string PickupIconPath => "BloodTester_Icon"; public override string PickupModelPath => "MDLBloodTester"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown HealthComponent.Heal += new hook_Heal(HealthComponent_Heal); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1824f, -0.0858f, -0.001f), localAngles = new Vector3(2.6649f, 75.6855f, 176.4035f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(-0.0062f, -0.0952f, 0.1152f), localAngles = new Vector3(10.1501f, 0.3952f, 179.1961f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.2131f, -0.0993f, -0.043f), localAngles = new Vector3(4.834f, 95.4655f, 199.7518f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1444f, 0.0053f, -0.1933f), localAngles = new Vector3(2.673f, 161.2628f, 179.8488f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.2053f, 0.0275f, -0.0637f), localAngles = new Vector3(27.8597f, 97.9709f, 176.7718f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.0023f, -0.0208f, -0.353f), localAngles = new Vector3(352.9314f, 180.0029f, 359.9534f), localScale = new Vector3(0.188f, 0.188f, 0.188f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.0751f, -0.1042f, -0.2108f), localAngles = new Vector3(343.0136f, 184.803f, 180.5884f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(1.9841f, 2.9825f, 1.9692f), localAngles = new Vector3(0f, 85.607f, 0f), localScale = new Vector3(1f, 1f, 1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "WeaponPlatformEnd", localPos = new Vector3(0.1825f, -0.1119f, 0.2563f), localAngles = new Vector3(0.5702f, 90.3798f, 88.3474f), localScale = new Vector3(0.2f, 0.2f, 0.2f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "LowerArmL", localPos = new Vector3(-1.1987f, 3.4378f, -0.4143f), localAngles = new Vector3(353.7809f, 247.0507f, 358.5906f), localScale = new Vector3(1f, 1f, 1f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.0017f, 0f, -0.0021f), localAngles = new Vector3(2.5642f, 150.8249f, 176.8134f), localScale = new Vector3(0.0015f, 0.0015f, 0.0015f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.0013f, -0.0006f, -0.0016f), localAngles = new Vector3(6.0814f, 148.3985f, 175.9165f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); return val2; } private float HealthComponent_Heal(orig_Heal orig, HealthComponent self, float amount, ProcChainMask procChainMask, bool nonRegen) { //IL_00f1: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self)) { CharacterBody body = self.body; if (Object.op_Implicit((Object)(object)body)) { int count = GetCount(body); float num = (float)count * StaticValues.testerGold; if (count > 0 && !Run.instance.isRunStopwatchPaused) { TeleporterInteraction val = TeleporterInteraction.instance; if ((!Object.op_Implicit((Object)(object)val) || !val.isCharged) && Object.op_Implicit((Object)(object)body.teamComponent) && body.isPlayerControlled && self.health < self.fullHealth && nonRegen) { healAccum += amount; } if (healAccum >= StaticValues.testerHealing) { healAccum -= StaticValues.testerHealing; body.master.GiveMoney((uint)num); } } } } return orig.Invoke(self, amount, procChainMask, nonRegen); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); int count = GetCount(self); self.moveSpeed += self.baseMoveSpeed * 0.1f * (float)count; self.attackSpeed += self.baseAttackSpeed * 0.07f * (float)count; } } internal class CoffeeBag : SS2Item { public override string NameInternal => "SS2U_Coffee"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "CoffeeBag_Icon"; public override string PickupModelPath => "MDLCoffeeBag"; public override void RegisterHooks() { GetStatCoefficients.HandleStatsInventoryActions = (GetStatCoefficients.HandleStatsInventory)Delegate.Combine(GetStatCoefficients.HandleStatsInventoryActions, new GetStatCoefficients.HandleStatsInventory(HandleStats)); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.07f, 0.1f), localAngles = new Vector3(0f, 65f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.1f, 0.16f, 0.15f), localAngles = new Vector3(0f, 50f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.08f, 0.16f, 0.2f), localAngles = new Vector3(0f, 30f, 180f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0f, 0.16f, 0.2f), localAngles = new Vector3(0f, 0f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.2f, 0.12f), localAngles = new Vector3(0f, 40f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0f, 0.2f, 0.24f), localAngles = new Vector3(0f, 0f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.08f, 0.1f, 0.2f), localAngles = new Vector3(0f, 30f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0f, 0.29f, 1f), localAngles = new Vector3(0f, 0f, 250f), localScale = new Vector3(1f, 1f, 1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighFrontL", localPos = new Vector3(-0.0129f, 0f, -0.05f), localAngles = new Vector3(0f, 220f, 180f), localScale = new Vector3(0.2f, 0.2f, 0.2f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(1f, -0.6f, -0.5f), localAngles = new Vector3(0f, 90f, 130f), localScale = new Vector3(1f, 1f, 1f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.0002f, 0.0019f, -0.0016f), localAngles = new Vector3(0f, 180f, 180f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.0013f, 0.0018f, 0.0007f), localAngles = new Vector3(0f, 65f, 180f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); return val2; } private void HandleStats(CharacterBody sender, StatHookEventArgs args, Inventory inventory) { int itemCount = inventory.GetItemCount(itemDef); args.moveSpeedMultAdd += 0.07f * (float)itemCount; args.attackSpeedMultAdd += 0.075f * (float)itemCount; } } internal class DetritiveTrematode : SS2Item { public override string NameInternal => "SS2U_Trematode"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[3]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "DetritiveTrematode_Icon"; public override string PickupModelPath => "MDLDetritiveTrematode"; public override void RegisterHooks() { OnHitEnemy.OnHitAttackerInventoryActions = (OnHitEnemy.OnHitAttackerInventory)Delegate.Combine(OnHitEnemy.OnHitAttackerInventoryActions, new OnHitEnemy.OnHitAttackerInventory(ProcItem)); } private void ProcItem(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody, Inventory attackerInventory) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) int itemCount = attackerInventory.GetItemCount(itemDef); if (itemCount > 0 && Object.op_Implicit((Object)(object)victimBody.healthComponent) && !(victimBody.healthComponent.combinedHealthFraction > 0.25f)) { for (int i = 0; i < itemCount; i++) { InflictDotInfo val = default(InflictDotInfo); val.attackerObject = ((Component)attackerBody).gameObject; val.victimObject = ((Component)victimBody).gameObject; val.dotIndex = DoTCore.DetritiveTrematodeInfection; val.duration = 600000f; val.damageMultiplier = 1f; val.maxStacksFromAttacker = (uint)itemCount; InflictDotInfo val2 = val; DotController.InflictDot(ref val2); } } } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } } internal class Diary : SS2Item { public override string NameInternal => "SS2U_Diary"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)3, (ItemTag)31 }; public override string PickupIconPath => "Diary_Icon"; public override string PickupModelPath => "MDLDiary"; public override void RegisterHooks() { GetStatCoefficients.HandleStatsInventoryActions = (GetStatCoefficients.HandleStatsInventory)Delegate.Combine(GetStatCoefficients.HandleStatsInventoryActions, new GetStatCoefficients.HandleStatsInventory(HandleStats)); } private void HandleStats(CharacterBody sender, StatHookEventArgs args, Inventory inventory) { int itemCount = inventory.GetItemCount(itemDef); args.moveSpeedMultAdd += 0.1f * (float)itemCount; args.armorAdd += 3f * (float)itemCount; } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_003b: 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_0072: 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_008d: 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_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_00b2: 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_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Expected O, but got Unknown //IL_00ce: 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_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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: 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_022b: 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_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: 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_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: 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) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: 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_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_050a: 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_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = Assets.mainAssetBundle.LoadAsset(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } } internal class DormantFungus : SS2Item { public override string NameInternal => "SS2U_Dungus"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[5]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "DormantFungus_Icon"; public override string PickupModelPath => "MDLDormantFungus"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CharacterBody.OnInventoryChanged += new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.0534f, 0.0483f, 0.1874f), localAngles = new Vector3(303.7209f, 98.2102f, 101.9909f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.2236f, -0.0119f, -0.0677f), localAngles = new Vector3(328.9899f, 191.0635f, 127.5044f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.1692f, 0.0751f, -0.0135f), localAngles = new Vector3(335.7093f, 201.6389f, 86.6875f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.2328f, 0.0785f, 0.0293f), localAngles = new Vector3(76.4825f, 42.1719f, 337.1561f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.2783f, 0.066f, 0.1656f), localAngles = new Vector3(25.532f, 151.5236f, 98.2747f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.0931f, 0.2321f, -0.1714f), localAngles = new Vector3(333.906f, 248.7815f, 91.473f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(0.2454f, 0.051f, -0.1518f), localAngles = new Vector3(351.9315f, 209.8458f, 97.4965f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(3.0099f, 2.7818f, 3.2627f), localAngles = new Vector3(336.3833f, 303.6277f, 312.8879f), localScale = new Vector3(0.6f, 0.6f, 0.6f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "PlatformBase", localPos = new Vector3(0.3147f, -0.167f, 0.7414f), localAngles = new Vector3(303.7524f, 279.8964f, 292.4984f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "UpperArmL", localPos = new Vector3(-1.9929f, -2.4683f, 1.0449f), localAngles = new Vector3(47.8033f, 24.9564f, 112.5967f), localScale = new Vector3(0.6f, 0.6f, 0.6f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ShoulderL", localPos = new Vector3(0.0018f, -0.001f, 0.0006f), localAngles = new Vector3(313.9065f, 139.7861f, 135.2533f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ShoulderL", localPos = new Vector3(0.0026f, -0.0002f, 0.0005f), localAngles = new Vector3(2.1902f, 170.2704f, 117.2842f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); return val2; } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.inventory)) { self.AddItemBehavior(GetCount(self)); } orig.Invoke(self); } } public class DormantFungusBehavior : ItemBehavior { private HealthComponent healthComponent; private float timer; public void Awake() { base.body = ((Component)this).gameObject.GetComponent(); healthComponent = ((Component)this).gameObject.GetComponent(); } public void FixedUpdate() { //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) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)healthComponent)) { return; } if (base.body.isSprinting) { timer += Time.deltaTime; if (timer >= 1f) { healthComponent.HealFraction(0.006f + 0.006f * (float)base.stack, default(ProcChainMask)); timer = 0f; } } else { timer = 0f; } } } internal class DroidHead : SS2Item { public class DroidHeadBehavior : ItemBehavior { public static int maxDroids = 4; private List activeDroids = new List(); public bool CanSpawnDroid() { ClearDeadDroids(); return activeDroids.Count < maxDroids; } public void AddDroid(CharacterMaster master) { activeDroids.Add(master); } private void ClearDeadDroids() { activeDroids = activeDroids.Where((CharacterMaster master) => (Object)(object)master != (Object)null && (Object)(object)master.GetBody() != (Object)null).ToList(); } } public static NetworkSoundEventDef procSound; public override string NameInternal => "SS2U_DroidHead"; public override ItemTier Tier => (ItemTier)2; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "DroidHead_Icon"; public override string PickupModelPath => "MDLDroidHead"; public override void RegisterHooks() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Expected O, but got Unknown procSound = Assets.CreateNetworkSoundEventDef("SS2UDroidHead"); CharacterBody.OnInventoryChanged += new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); OnCharacterDeathGlobal.OnCharacterDeathInventoryActions = (OnCharacterDeathGlobal.OnCharacterDeathInventory)Delegate.Combine(OnCharacterDeathGlobal.OnCharacterDeathInventoryActions, new OnCharacterDeathGlobal.OnCharacterDeathInventory(ProcDroidHead)); } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.inventory)) { self.AddItemBehavior(GetCount(self)); } } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.154f, 0f, -0.1602f), localAngles = new Vector3(15.2417f, 141.4141f, 180f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1927f, -0.078f, 0.0495f), localAngles = new Vector3(21.4305f, 58.3257f, 183.0518f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.0888f, -0.0221f, -0.2011f), localAngles = new Vector3(6.7902f, 170.4913f, 182.1258f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.2395f, 0.0231f, -0.1579f), localAngles = new Vector3(11.0259f, 149.285f, 189.7534f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1758f, 0.0498f, -0.1555f), localAngles = new Vector3(28.0175f, 139.2946f, 175.1604f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1795f, 0.0094f, 0.0094f), localAngles = new Vector3(9.2046f, 95.0137f, 189.3625f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.0516f, -0.0898f, -0.2502f), localAngles = new Vector3(357.1606f, 183.0843f, 181.5753f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0f, 1.6f, 1.3f), localAngles = new Vector3(310f, 180f, 0f), localScale = new Vector3(3f, 2.5f, 3.5f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "PlatformBase", localPos = new Vector3(-0.5005f, 0.6628f, 0.6538f), localAngles = new Vector3(0f, 341.659f, 0f), localScale = new Vector3(0.2f, 0.2f, 0.2f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Hip", localPos = new Vector3(-2.4027f, 2.3874f, 0.2516f), localAngles = new Vector3(339.9485f, 299.0386f, 213.9489f), localScale = new Vector3(1f, 1f, 1f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(-0.0027f, -0.0005f, -0.0016f), localAngles = new Vector3(13.8719f, 230.8945f, 167.7166f), localScale = new Vector3(0.0013f, 0.0013f, 0.0013f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Sword", localPos = new Vector3(-0.0003f, 0.0109f, -0.0001f), localAngles = new Vector3(353.8759f, 221.1168f, 2.4036f), localScale = new Vector3(0.0013f, 0.0013f, 0.0013f) } }); return val2; } private void ProcDroidHead(GlobalEventManager self, DamageReport damageReport, CharacterBody attackerBody, Inventory attackerInventory, CharacterBody victimBody) { //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Expected O, but got Unknown //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0198: 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_0129: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) if (!victimBody.isElite) { return; } int itemCountEffective = attackerInventory.GetItemCountEffective(itemDef); if (itemCountEffective <= 0) { return; } DroidHeadBehavior component = ((Component)attackerBody).GetComponent(); if (!Object.op_Implicit((Object)(object)component) || !component.CanSpawnDroid()) { return; } MasterSummon val = new MasterSummon(); val.position = victimBody.corePosition; val.masterPrefab = LegacyResourcesAPI.Load("Prefabs/CharacterMasters/DroneBackupMaster"); val.summonerBodyObject = ((Component)attackerBody).gameObject; val.ignoreTeamMemberLimit = true; val.useAmbientLevel = true; CharacterMaster val2 = val.Perform(); if (!Object.op_Implicit((Object)(object)val2)) { return; } component.AddDroid(val2); if (Object.op_Implicit((Object)(object)val2.inventory)) { float num = 0.5f + (float)itemCountEffective * 0.5f; int num2 = Mathf.RoundToInt(num / 0.1f); if (num2 > 0) { val2.inventory.GiveItemPermanent(Items.BoostDamage, num2); } if (Object.op_Implicit((Object)(object)victimBody.inventory)) { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(victimBody.inventory.currentEquipmentIndex); if (Object.op_Implicit((Object)(object)equipmentDef) && Object.op_Implicit((Object)(object)equipmentDef.passiveBuffDef) && equipmentDef.passiveBuffDef.isElite) { val2.inventory.SetEquipmentIndex(victimBody.inventory.currentEquipmentIndex, false); } } } ((Component)val2).gameObject.AddComponent().lifeTimer = 30f; EffectManager.SimpleSoundEffect(procSound.index, victimBody.corePosition, true); } } internal class ErraticGadget : SS2Item { public static GameObject tracerEffectPrefab = LegacyResourcesAPI.Load("prefabs/effects/tracers/TracerCaptainDefenseMatrix"); public override string NameInternal => "SS2U_ErraticGadget"; public override ItemTier Tier => (ItemTier)2; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)1, (ItemTag)31 }; public override string PickupIconPath => "ErraticGadget_Icon"; public override string PickupModelPath => "MDLErraticGadget"; public override void RegisterHooks() { OnHitEnemy.OnHitAttackerInventoryActions = (OnHitEnemy.OnHitAttackerInventory)Delegate.Combine(OnHitEnemy.OnHitAttackerInventoryActions, new OnHitEnemy.OnHitAttackerInventory(ProcGadget)); GetStatCoefficients.HandleStatsInventoryActions = (GetStatCoefficients.HandleStatsInventory)Delegate.Combine(GetStatCoefficients.HandleStatsInventoryActions, new GetStatCoefficients.HandleStatsInventory(HandleStats)); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } private void ProcGadget(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody, Inventory attackerInventory) { //IL_0017: 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_00ac: 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_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: 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_00ff: 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_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Expected O, but got Unknown //IL_0141: 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_0071: 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_007e: 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_008c: Expected O, but got Unknown if (!damageInfo.crit || damageInfo.procCoefficient <= 0f || DamageAPI.HasModdedDamageType(damageInfo, DamageTypeCore.ModdedDamageTypes.ErraticGadget) || !Object.op_Implicit((Object)(object)victimBody.healthComponent)) { return; } int itemCount = attackerInventory.GetItemCount(itemDef); if (itemCount > 0) { if (Object.op_Implicit((Object)(object)tracerEffectPrefab)) { EffectData val = new EffectData { origin = victimBody.corePosition, start = attackerBody.corePosition }; EffectManager.SpawnEffect(tracerEffectPrefab, val, true); } DamageInfo val2 = new DamageInfo { attacker = damageInfo.attacker, inflictor = damageInfo.inflictor, crit = damageInfo.crit, canRejectForce = damageInfo.canRejectForce, damageType = DamageTypeCombo.op_Implicit((DamageTypeExtended)8192), damageColorIndex = (DamageColorIndex)3, dotIndex = damageInfo.dotIndex, force = damageInfo.force * 0.5f, position = damageInfo.position, procChainMask = damageInfo.procChainMask, rejected = damageInfo.rejected, procCoefficient = damageInfo.procCoefficient * 0.5f }; DamageAPI.AddModdedDamageType(val2, DamageTypeCore.ModdedDamageTypes.ErraticGadget); val2.damage = damageInfo.damage * (float)itemCount * 0.5f; victimBody.healthComponent.TakeDamage(val2); GlobalEventManager.instance.OnHitEnemy(val2, ((Component)victimBody).gameObject); } } private void HandleStats(CharacterBody sender, StatHookEventArgs args, Inventory inventory) { if (inventory.GetItemCount(itemDef) > 0) { args.critAdd += 10f; } } } internal class Fork : SS2Item { public override string NameInternal => "SS2U_Fork"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)1, (ItemTag)31 }; public override string PickupIconPath => "Fork_Icon"; public override string PickupModelPath => "MDLFork"; public override void RegisterHooks() { GetStatCoefficients.HandleStatsInventoryActions = (GetStatCoefficients.HandleStatsInventory)Delegate.Combine(GetStatCoefficients.HandleStatsInventoryActions, new GetStatCoefficients.HandleStatsInventory(HandleStats)); } private void HandleStats(CharacterBody sender, StatHookEventArgs args, Inventory inventory) { int itemCount = inventory.GetItemCount(itemDef); args.damageMultAdd += 0.05f * (float)itemCount; } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_003b: 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_0072: 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_008d: 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_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_00b2: 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_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Expected O, but got Unknown //IL_00ce: 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_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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: 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_022b: 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_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: 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_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: 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) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: 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_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_050a: 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_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0635: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0670: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_068c: Unknown result type (might be due to invalid IL or missing references) //IL_0695: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06c8: Unknown result type (might be due to invalid IL or missing references) //IL_06de: Unknown result type (might be due to invalid IL or missing references) //IL_06e3: 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_0703: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = Assets.mainAssetBundle.LoadAsset(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-0.1586f, 0.3278f, 0.3603f), localAngles = new Vector3(47.3573f, 332.2906f, 198.0251f), localScale = new Vector3(0.06f, 0.06f, 0.06f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-0.1043f, 0.1095f, 0.3005f), localAngles = new Vector3(42.8143f, 58.2528f, 291.6888f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.1392f, 0.1651f, 0.1949f), localAngles = new Vector3(45.0796f, 21.4808f, 194.4862f), localScale = new Vector3(0.03f, 0.03f, 0.03f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.1973f, 0.1404f, 0.3352f), localAngles = new Vector3(83.942f, 51.1569f, 227.1741f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.1097f, 0.1232f, 0.2816f), localAngles = new Vector3(78.4158f, 160.9205f, 348.3299f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.1371f, 0.3891f, 0.1955f), localAngles = new Vector3(18.5425f, 33.4606f, 213.1825f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-1.2061f, 2.1674f, 2.7863f), localAngles = new Vector3(7.2876f, 340.4511f, 220.5762f), localScale = new Vector3(0.3f, 0.3f, 0.3f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "FlowerBase", localPos = new Vector3(-0.7234f, 1.4397f, 0f), localAngles = new Vector3(0f, 320.333f, 215.4378f), localScale = new Vector3(0.4f, 0.4f, 0.4f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-1.3477f, 0.7851f, -3.2079f), localAngles = new Vector3(39.0607f, 243.0906f, 267.9274f), localScale = new Vector3(0.4f, 0.4f, 0.4f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "GunModel", localPos = new Vector3(-0.0086f, -0.0012f, 0.0417f), localAngles = new Vector3(344.166f, 88.7058f, 110.4904f), localScale = new Vector3(0.004f, 0.004f, 0.004f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Sword", localPos = new Vector3(-0.001f, 0.0146f, 0f), localAngles = new Vector3(23.7289f, 33.6548f, 27.8921f), localScale = new Vector3(0.0006f, 0.0006f, 0.0006f) } }); return val2; } } internal class GreenChocolate : SS2Item { public float damageThreshold = 0.2f; public override string NameInternal => "SS2U_GreenChoc"; public override ItemTier Tier => (ItemTier)2; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[5]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "GreenChocolate_Icon"; public override string PickupModelPath => "MDLGreenChocolate"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown HealthComponent.TakeDamageProcess += new hook_TakeDamageProcess(HealthComponent_TakeDamage); } private void HealthComponent_TakeDamage(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { if (NetworkServer.active && Object.op_Implicit((Object)(object)damageInfo.attacker)) { int count = GetCount(self.body); if (count > 0) { float num = self.fullCombinedHealth * damageThreshold; if (damageInfo.damage >= num) { float num2 = damageInfo.damage - num; damageInfo.damage = num + num2 * 0.5f; int buffCount = self.body.GetBuffCount(BuffCore.greenChocBuff); int num3 = Mathf.Min(buffCount + 1, count); self.body.ClearTimedBuffs(BuffCore.greenChocBuff); for (int i = 0; i < num3; i++) { self.body.AddTimedBuff(BuffCore.greenChocBuff, 7f); } } } } orig.Invoke(self, damageInfo); } } internal class HottestSauce : SS2Item { private float sauceDamageCoef = StaticValues.hottestSusHit; public override string NameInternal => "FireOnEquipmentUse"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[3]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "HottestSauce_Icon"; public override string PickupModelPath => "MDLHottestSauce"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown EquipmentSlot.PerformEquipmentAction += new hook_PerformEquipmentAction(EquipmentSlot_PerformEquipmentAction); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1783f, -0.0743f, 0.0996f), localAngles = new Vector3(323.2641f, 153.6151f, 161.313f), localScale = new Vector3(0.05f, 0.05f, 0.05f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.1816f, -0.0975f, 0.0582f), localAngles = new Vector3(23.1899f, 144.6882f, 177.3828f), localScale = new Vector3(0.05f, 0.05f, 0.05f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-0.1189f, 0.3318f, -0.1902f), localAngles = new Vector3(344.0087f, 24.1534f, 181.6373f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "CannonHeadL", localPos = new Vector3(0.178f, 0.2201f, 0.1678f), localAngles = new Vector3(314.4302f, 355.6576f, 59.4658f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(-0.2315f, 0.053f, 0.0078f), localAngles = new Vector3(309.3626f, 168.683f, 178.801f), localScale = new Vector3(0.05f, 0.05f, 0.05f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-0.1028f, 0.2313f, -0.3288f), localAngles = new Vector3(29.3866f, 6.1308f, 15.1956f), localScale = new Vector3(0.04f, 0.04f, 0.04f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.185f, 0.1144f, -0.1246f), localAngles = new Vector3(33.1811f, 278.4078f, 207.8812f), localScale = new Vector3(0.02f, 0.02f, 0.02f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(-2.0163f, 3.1193f, -1.3766f), localAngles = new Vector3(25.5887f, 358.7055f, 359.4573f), localScale = new Vector3(0.3f, 0.3f, 0.3f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "FlowerBase", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(1.2091f, -2.7822f, 7.4245f), localAngles = new Vector3(12.33f, 34.4234f, 358.249f), localScale = new Vector3(0.4f, 0.4f, 0.4f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.0019f, 0.0025f, -0.0026f), localAngles = new Vector3(25.5056f, 13.5026f, 357.6461f), localScale = new Vector3(0.0004f, 0.0004f, 0.0004f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ArmL", localPos = new Vector3(0.0005f, -0.0017f, 0.0008f), localAngles = new Vector3(3.1321f, 209.3164f, 158.2628f), localScale = new Vector3(0.0004f, 0.0004f, 0.0004f) } }); return val2; } protected override void SetupMaterials(GameObject modelPrefab) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) ((Component)modelPrefab.transform.GetChild(0)).GetComponent().material = Assets.CreateMaterial("matHottestSauce", 1f, Color.red); } private bool EquipmentSlot_PerformEquipmentAction(orig_PerformEquipmentAction orig, EquipmentSlot self, EquipmentDef equipmentDef) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //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_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_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_0114: 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_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Expected O, but got Unknown //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) bool flag = orig.Invoke(self, equipmentDef); if (flag && Object.op_Implicit((Object)(object)self)) { CharacterBody characterBody = self.characterBody; if (Object.op_Implicit((Object)(object)characterBody)) { int count = GetCount(characterBody); if (count > 0) { Util.PlaySound("HottestSus", ((Component)self).gameObject); List list = new List(); SphereSearch val = new SphereSearch(); val.ClearCandidates(); val.origin = characterBody.corePosition; val.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; val.radius = StaticValues.hottestSusRadius; val.RefreshCandidates(); val.FilterCandidatesByHurtBoxTeam(TeamMask.GetUnprotectedTeams(characterBody.teamComponent.teamIndex)); val.FilterCandidatesByDistinctHurtBoxEntities(); val.GetHurtBoxes(list); foreach (HurtBox item in list) { if (Object.op_Implicit((Object)(object)item.healthComponent) && (Object)(object)item.healthComponent != (Object)(object)self.healthComponent) { DamageInfo val2 = new DamageInfo { attacker = ((Component)self).gameObject, position = ((Component)item.healthComponent).transform.position, crit = characterBody.RollCrit(), damage = characterBody.damage * sauceDamageCoef, procChainMask = default(ProcChainMask) }; item.healthComponent.TakeDamage(val2); InflictDotInfo val3 = default(InflictDotInfo); val3.attackerObject = ((Component)self).gameObject; val3.victimObject = ((Component)item.healthComponent).gameObject; val3.dotIndex = (DotIndex)1; val3.duration = StaticValues.hottestSusDuration; val3.damageMultiplier = StaticValues.hottestSusDamage + (float)count; InflictDotInfo val4 = val3; DotController.InflictDot(ref val4); } } } } } return flag; } } internal class HuntersSigil : SS2Item { public override string NameInternal => "Sigil"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[3]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "HuntersSigil_Icon"; public override string PickupModelPath => "MDLSigil"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown CharacterBody.OnInventoryChanged += new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "PlatformBase", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Chest", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } protected override void SetupMaterials(GameObject modelPrefab) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) modelPrefab.GetComponentInChildren().material = Assets.CreateMaterial("matHuntersSigil", 1f, Color.white, 1f); } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { self.AddItemBehavior(GetCount(self)); orig.Invoke(self); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); int count = GetCount(self); if (count > 0 && self.HasBuff(BuffCore.sigilBuff)) { self.armor += StaticValues.sekiroArmor + StaticValues.sekiroArmorStack * (float)(count - 1); self.crit += StaticValues.sekiroCrit + StaticValues.sekiroCritStack * (float)(count - 1); } } } public class SigilBehavior : ItemBehavior { private bool sigilActive = false; private bool hasBuff = false; private float activeStopwatch; private GameObject sigilEffectInstance; public void Awake() { base.body = ((Component)this).gameObject.GetComponent(); } public void FixedUpdate() { activeStopwatch -= Time.fixedDeltaTime; if (sigilActive) { activeStopwatch = 0.75f; } if (activeStopwatch <= 0f && hasBuff) { hasBuff = false; base.body.RemoveBuff(BuffCore.sigilBuff); base.body.statsDirty = true; } if (base.body.notMovingStopwatch > 1f && !sigilActive) { base.body.AddBuff(BuffCore.sigilBuff); hasBuff = true; sigilActive = true; base.body.statsDirty = true; activeStopwatch = 0.75f; SpawnEffect(); } else if (base.body.notMovingStopwatch == 0f && sigilActive) { sigilActive = false; DestroyEffect(); } } private void DestroyEffect() { if (Object.op_Implicit((Object)(object)sigilEffectInstance)) { ((Component)sigilEffectInstance.transform.GetChild(0)).GetComponent().Stop(); ((MonoBehaviour)this).CancelInvoke(); ((MonoBehaviour)this).Invoke("DestroyEffectInstance", 1f); } } private void DestroyEffectInstance() { if (Object.op_Implicit((Object)(object)sigilEffectInstance)) { Object.Destroy((Object)(object)sigilEffectInstance); NetworkServer.UnSpawn(sigilEffectInstance); } } private void SpawnEffect() { //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)sigilEffectInstance)) { sigilEffectInstance = Object.Instantiate(Assets.sigilFX); sigilEffectInstance.transform.parent = base.body.coreTransform; sigilEffectInstance.transform.localPosition = new Vector3(0f, -0.3f, 0f); sigilEffectInstance.transform.parent = null; NetworkServer.Spawn(sigilEffectInstance); } } public void OnDisable() { if (hasBuff) { base.body.RemoveBuff(BuffCore.sigilBuff); } DestroyEffect(); } private void OnDestroy() { if (hasBuff) { base.body.RemoveBuff(BuffCore.sigilBuff); } DestroyEffect(); } } public class SigilSoundComponent : MonoBehaviour { private void Awake() { Util.PlaySound("SS2USigilActivation", ((Component)this).gameObject); } } internal class Malice : SS2Item { public static GameObject maliceEffect = Assets.mainAssetBundle.LoadAsset("MaliceEffect"); public override string NameInternal => "AoeOnHit"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)1 }; public override string PickupIconPath => "Malice_Icon"; public override string PickupModelPath => "MDLMalice"; public override void RegisterHooks() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Expected O, but got Unknown EffectComponent val = maliceEffect.AddComponent(); Assets.effectDefs.Add(new EffectDef(maliceEffect)); maliceEffect.AddComponent().duration = 5f; GlobalEventManager.ProcessHitEnemy += new hook_ProcessHitEnemy(GlobalEventManager_OnHitEnemy); } private void GlobalEventManager_OnHitEnemy(orig_ProcessHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_007a: 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_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: 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_0108: 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_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0171: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) GameObject attacker = damageInfo.attacker; if (Object.op_Implicit((Object)(object)attacker)) { CharacterBody component = attacker.GetComponent(); int count = GetCount(component); if (count > 0) { int num = 0; float maliceDmgReductionValue = StaticValues.maliceDmgReductionValue; float num2 = StaticValues.maliceRangeValue + (float)count * StaticValues.maliceRangeStackValue; EffectData val = new EffectData(); if (Object.op_Implicit((Object)(object)victim)) { val.origin = victim.transform.position; } else { val.origin = component.corePosition; } val.scale = num2; EffectManager.SpawnEffect(maliceEffect, val, true); DamageInfo val2 = new DamageInfo(); val2.attacker = attacker; val2.crit = damageInfo.crit; val2.damage = damageInfo.damage; val2.damageColorIndex = (DamageColorIndex)0; val2.damageType = DamageTypeCombo.op_Implicit((DamageType)131072); val2.dotIndex = (DotIndex)(-1); val2.inflictor = attacker; val2.procChainMask = default(ProcChainMask); val2.procCoefficient = StaticValues.maliceProcCoefValue; Collider[] array = Physics.OverlapSphere(damageInfo.position, num2); int num3 = 0; while (num < count && num3 < array.Length) { HealthComponent component2 = ((Component)array[num3]).GetComponent(); if (Object.op_Implicit((Object)(object)component2) && ((Component)component2).GetComponent().teamIndex != TeamComponent.GetObjectTeam(attacker) && (Object)(object)component2.body != (Object)(object)victim.GetComponent()) { val2.position = ((Component)array[num3]).transform.position; val2.damage *= maliceDmgReductionValue; component2.TakeDamage(val2); num++; } num3++; } } } orig.Invoke(self, damageInfo, victim); } } internal class MoltenCoin : SS2Item { public static NetworkSoundEventDef procSound; public override string NameInternal => "SS2U_MoltenCoin"; public override ItemTier Tier => (ItemTier)0; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "MoltenCoin_Icon"; public override string PickupModelPath => "MDLMoltenCoin"; protected override void RegisterItem() { base.RegisterItem(); procSound = Assets.CreateNetworkSoundEventDef("SS2UMoltenCoin"); } public override void RegisterHooks() { OnHitEnemy.OnHitAttackerInventoryActions = (OnHitEnemy.OnHitAttackerInventory)Delegate.Combine(OnHitEnemy.OnHitAttackerInventoryActions, new OnHitEnemy.OnHitAttackerInventory(ProcCoin)); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_003b: 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_0072: 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_008d: 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_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_00b2: 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_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Expected O, but got Unknown //IL_00ce: 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_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_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016a: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: 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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01f4: 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_022b: 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_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: 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_026b: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_0290: Unknown result type (might be due to invalid IL or missing references) //IL_02be: 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_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: 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) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_0391: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_03ad: 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_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03e9: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0404: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0425: Unknown result type (might be due to invalid IL or missing references) //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04d3: Unknown result type (might be due to invalid IL or missing references) //IL_04dc: Unknown result type (might be due to invalid IL or missing references) //IL_050a: 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_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054b: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05a2: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05dd: Unknown result type (might be due to invalid IL or missing references) //IL_05de: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = Assets.mainAssetBundle.LoadAsset(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } protected override void SetupMaterials(GameObject modelPrefab) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) modelPrefab.GetComponentInChildren().material = Assets.CreateMaterial("matMoltenCoin", 1f, Color.yellow, 0f); } private void ProcCoin(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody, Inventory attackerInventory) { //IL_0052: 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_0066: 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_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) int itemCountEffective = attackerInventory.GetItemCountEffective(itemDef); CharacterMaster master = attackerBody.master; if (itemCountEffective <= 0 || (!((ProcChainMask)(ref damageInfo.procChainMask)).HasProc((ProcType)26) && !Util.CheckRoll(6f * damageInfo.procCoefficient, master))) { return; } EffectManager.SimpleSoundEffect(procSound.index, damageInfo.position, true); InflictDotInfo val = default(InflictDotInfo); val.victimObject = ((Component)victimBody).gameObject; val.attackerObject = damageInfo.attacker; val.totalDamage = attackerBody.damage * 3.2f * (float)itemCountEffective; val.dotIndex = (DotIndex)1; val.damageMultiplier = 0.75f + 0.25f * (float)itemCountEffective; InflictDotInfo val2 = val; StrengthenBurnUtils.CheckDotForUpgrade(attackerInventory, ref val2); DotController.InflictDot(ref val2); if (Object.op_Implicit((Object)(object)master) && !BazaarChecker.InBazaar()) { int num = 1; if (Object.op_Implicit((Object)(object)Run.instance) && Object.op_Implicit((Object)(object)Stage.instance)) { num = Run.instance.GetDifficultyScaledCost(1, Stage.instance.entryDifficultyCoefficient); } master.GiveMoney((uint)num); } } } internal class NkotasHeritage : SS2Item { private static NetworkSoundEventDef networkSound; private static GameObject effectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/SurvivorPod/PodGroundImpact.prefab").WaitForCompletion(); public override string NameInternal => "SS2U_ItemOnLevelUp"; public override ItemTier Tier => (ItemTier)2; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "NkotasHeritage_Icon"; public override string PickupModelPath => "MDLNkotasHeritage"; public override void Init() { base.Init(); networkSound = Assets.CreateNetworkSoundEventDef("SS2UDiaryLevelUp"); } public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown GlobalEventManager.OnTeamLevelUp += new hook_OnTeamLevelUp(GlobalEventManager_OnTeamLevelUp); ChargingState.OnEnter += new hook_OnEnter(ChargingState_OnEnter); } public void ProcNkotaServer(TeamIndex teamIndex) { //IL_0012: 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_00ba: 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_00d6: Expected O, but got Unknown //IL_00dc: 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) if (!NetworkServer.active) { return; } ReadOnlyCollection teamMembers = TeamComponent.GetTeamMembers(teamIndex); foreach (TeamComponent item in teamMembers) { if (Object.op_Implicit((Object)(object)item.body) && item.body.isPlayerControlled && Object.op_Implicit((Object)(object)item.body.inventory)) { int itemCount = item.body.inventory.GetItemCount(itemDef); if (itemCount > 0) { ItemCore.RollNkota(item.body.transform, itemCount); EffectManager.SpawnEffect(effectPrefab, new EffectData { origin = item.body.transform.position, scale = 15f }, true); EffectManager.SimpleSoundEffect(networkSound.index, item.body.transform.position, true); } } } } private void ChargingState_OnEnter(orig_OnEnter orig, ChargingState self) { orig.Invoke(self); if (NetworkServer.active) { ProcNkotaServer((TeamIndex)1); } } public void GlobalEventManager_OnTeamLevelUp(orig_OnTeamLevelUp orig, TeamIndex teamIndex) { //IL_0002: 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) orig.Invoke(teamIndex); if (NetworkServer.active) { ProcNkotaServer(teamIndex); } } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } } internal class PrototypeJetBoots : SS2Item { private GameObject bootsEffect = Assets.jetBootsFX; private GameObject bootsEffectLight = Assets.lightJetBootsFX; public override string NameInternal => "ExplodeOnJump"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)1 }; public override string PickupIconPath => "JetBoots_Icon"; public override string PickupModelPath => "MDLJetBoots"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown CharacterMotor.OnLeaveStableGround += new hook_OnLeaveStableGround(CharacterMotor_OnLeaveStableGround); } private void CharacterMotor_OnLeaveStableGround(orig_OnLeaveStableGround orig, CharacterMotor self) { //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_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_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //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_00a1: 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_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: 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_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_00e3: 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) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) bool justPressed = ((ButtonState)(ref ((Component)self).GetComponent().jump)).justPressed; if (Object.op_Implicit((Object)(object)self) && justPressed) { CharacterBody component = ((Component)self).GetComponent(); int count = GetCount(component); if (count > 0) { GameObject gameObject = ((Component)component).gameObject; float baseDamage = component.damage * (StaticValues.bootsBase + StaticValues.bootsStack * (float)count); EffectData val = new EffectData { color = new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue), scale = 6f, origin = component.footPosition }; new BlastAttack { attacker = gameObject, baseDamage = baseDamage, radius = StaticValues.bootsRadius, crit = component.RollCrit(), falloffModel = (FalloffModel)0, procCoefficient = StaticValues.bootsProc, teamIndex = component.teamComponent.teamIndex, position = gameObject.transform.position }.Fire(); switch (StaticValues.timbsQuality) { case StaticValues.JetBootsEffectQuality.Default: EffectManager.SpawnEffect(bootsEffect, val, false); break; case StaticValues.JetBootsEffectQuality.Light: EffectManager.SpawnEffect(bootsEffectLight, val, false); break; } } } orig.Invoke(self); } } internal class RelicOfMass : SS2Item { public override string NameInternal => "SS2U_RelicMass"; public override ItemTier Tier => (ItemTier)3; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)3 }; public override string PickupIconPath => "RelicOfMassLunar"; public override string PickupModelPath => "MDLRelicOfMass"; public override void RegisterHooks() { //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(ModifyAccel); GetStatCoefficients.HandleStatsInventoryActions = (GetStatCoefficients.HandleStatsInventory)Delegate.Combine(GetStatCoefficients.HandleStatsInventoryActions, new GetStatCoefficients.HandleStatsInventory(HandleStats)); } protected override void SetupMaterials(GameObject modelPrefab) { modelPrefab.GetComponentInChildren().material = Assets.CreateMaterial("matRelicOfMass"); } private void ModifyAccel(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); int count = GetCount(self); if (count > 0) { self.acceleration = self.baseAcceleration / ((float)count * 8f); } } private void HandleStats(CharacterBody sender, StatHookEventArgs args, Inventory inventory) { int itemCount = inventory.GetItemCount(itemDef); args.healthMultAdd += (float)itemCount; } } internal class StirringSoul : SS2Item { public static NetworkSoundEventDef procSound; public static GameObject MonsterSoulPickup; public override string NameInternal => "SS2U_StirringSoul"; public override bool CanRemove => false; public override ItemTier Tier => (ItemTier)9; public override ItemTag[] Tags { get { ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); return (ItemTag[])(object)array; } } public override string PickupIconPath => "StirringSoul_Icon"; public override string PickupModelPath => "StirlingSoul.prefab"; public override bool DropInMultiBlacklist => true; public override void Init() { base.Init(); SetUpSoulPickup(); procSound = Assets.CreateNetworkSoundEventDef("SS2UStirringSoul"); } public override void RegisterHooks() { OnCharacterDeathGlobal.OnCharacterDeathInventoryActions = (OnCharacterDeathGlobal.OnCharacterDeathInventory)Delegate.Combine(OnCharacterDeathGlobal.OnCharacterDeathInventoryActions, new OnCharacterDeathGlobal.OnCharacterDeathInventory(ProcSoul)); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05fd: Unknown result type (might be due to invalid IL or missing references) //IL_062b: Unknown result type (might be due to invalid IL or missing references) //IL_0630: Unknown result type (might be due to invalid IL or missing references) //IL_0646: Unknown result type (might be due to invalid IL or missing references) //IL_064b: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0666: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0687: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_06be: Unknown result type (might be due to invalid IL or missing references) //IL_06c3: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06de: 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_06ff: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0009f, 0.2272f, -0.0417f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0003f, 0.0733f, -0.0143f), localAngles = new Vector3(342.0413f, 76.995f, 347.0571f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0164f, 0.043f, -0.1033f), localAngles = new Vector3(75.4036f, 348.4647f, 340.9313f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "HeadCenter", localPos = new Vector3(0.0002f, 0.0038f, -0.0283f), localAngles = new Vector3(22.8253f, 179.6242f, 149.6239f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(0.007f, 0.194f, -0.0042f), localAngles = new Vector3(14.4202f, 178.2166f, 202.7005f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(0.0479f, 0.102f, -0.0097f), localAngles = new Vector3(13.7816f, 195.8768f, 199.8034f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0104f, 0.1035f, 0.0001f), localAngles = new Vector3(51.3166f, 176.8947f, 167.6958f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "HeadCenter", localPos = new Vector3(0.4261f, 0.9458f, -1.1529f), localAngles = new Vector3(349.9306f, 290.3599f, 306.7653f), localScale = new Vector3(0.3f, 0.3f, 0.3f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "FlowerBase", localPos = new Vector3(-0.1356f, 0.2677f, -0.181f), localAngles = new Vector3(357.5828f, 180.0001f, 123.9136f), localScale = new Vector3(0.5f, 0.5f, 0.5f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0546f, 1.116f, 0.562f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.5f, 0.5f, 0.5f) } }); val2.Add("mdlExecutioner", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(-0.0001f, 0.0021f, -0.0004f), localAngles = new Vector3(53.1893f, 234.3853f, 213.5773f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); val2.Add("mdlNemmando", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Head", localPos = new Vector3(0f, 0.0019f, -0.0008f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.001f, 0.001f, 0.001f) } }); return val2; } protected override void SetupMaterials(GameObject modelPrefab) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) Renderer componentInChildren = (Renderer)(object)modelPrefab.GetComponentInChildren(); componentInChildren.materials[0].shader = Assets.hotpoo; componentInChildren.materials[1] = Assets.CreateMaterial("matTempWhite", 1f, new Color(0.37f, 0.28f, 0.4f), 0f); } private void SetUpSoulPickup() { //IL_0025: 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_00ef: 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_0110: 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_0148: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) MonsterSoulPickup = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/HealPack"), "MonsterSoul", true); MonsterSoulPickup.transform.localScale = Vector3.one * 2.5f; MonsterSoulPickup.GetComponent().drag = 15f; MonsterSoulPickup.GetComponent().duration = 20f; MonsterSoulPickup.GetComponent().delayBeforeBeginningBlinking = 19f; GameObject gameObject = ((Component)MonsterSoulPickup.transform.Find("PickupTrigger")).gameObject; Object.Destroy((Object)(object)gameObject.GetComponent()); SoulPickup soulPickup = gameObject.AddComponent(); soulPickup.baseObject = MonsterSoulPickup; GameObject gameObject2 = ((Component)MonsterSoulPickup.transform.Find("HealthOrbEffect")).gameObject; GameObject gameObject3 = ((Component)gameObject2.transform.Find("VFX").Find("Core")).gameObject; MainModule main = gameObject3.GetComponent().main; Color val = default(Color); ((Color)(ref val))..ctor(0.85f, 0.07f, 1f); ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(val); GameObject gameObject4 = ((Component)gameObject2.transform.Find("VFX").Find("PulseGlow")).gameObject; MainModule main2 = gameObject4.GetComponent().main; ((MainModule)(ref main2)).startColor = MinMaxGradient.op_Implicit(val); Object.Destroy((Object)(object)((Component)gameObject2.transform.Find("TrailParent")).gameObject); } private void ProcSoul(GlobalEventManager self, DamageReport damageReport, CharacterBody attackerBody, Inventory attackerInventory, CharacterBody victimBody) { //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091->IL0091: Incompatible stack types: O vs I4 //IL_0086->IL0091: Incompatible stack types: I4 vs O //IL_0086->IL0091: Incompatible stack types: O vs I4 int itemCount = attackerInventory.GetItemCount(itemDef); if (itemCount > 0 && !Run.instance.isRunStopwatchPaused && Object.op_Implicit((Object)(object)victimBody.master) && !((Enum)victimBody.bodyFlags).HasFlag((Enum)(object)(BodyFlags)4)) { GameObject val = Object.Instantiate(MonsterSoulPickup, victimBody.corePosition, Random.rotation); object obj = val.GetComponent(); int num; if (Object.op_Implicit((Object)(object)attackerBody.teamComponent)) { obj = attackerBody.teamComponent.teamIndex; num = (int)obj; } else { num = -1; obj = num; num = (int)obj; } ((TeamFilter)num).teamIndex = (TeamIndex)obj; val.GetComponentInChildren().team = val.GetComponent(); NetworkServer.Spawn(val); } } } internal class SoulPickup : MonoBehaviour { public GameObject baseObject; public TeamFilter team; private bool alive = true; private void OnTriggerStay(Collider other) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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) if (!NetworkServer.active || !alive || TeamComponent.GetObjectTeam(((Component)other).gameObject) != team.teamIndex) { return; } CharacterBody component = ((Component)other).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { alive = false; EffectManager.SimpleSoundEffect(StirringSoul.procSound.index, ((Component)this).transform.position, true); if (Util.CheckRoll(3f, (CharacterMaster)null)) { ItemCore.DropShipCall(((Component)this).transform, 1, 5u); } Object.Destroy((Object)(object)baseObject); } } } internal class StrangeCan : SS2Item { public override string NameInternal => "SS2U_PoisonOnHit"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[1] { (ItemTag)1 }; public override string PickupIconPath => "StrangeCan_Icon"; public override string PickupModelPath => "MDLStrangeCan"; public override void Init() { base.Init(); } public override void RegisterHooks() { OnHitEnemy.OnHitAttackerInventoryActions = (OnHitEnemy.OnHitAttackerInventory)Delegate.Combine(OnHitEnemy.OnHitAttackerInventoryActions, new OnHitEnemy.OnHitAttackerInventory(ProcItem)); } private void ProcItem(DamageInfo damageInfo, CharacterBody victimBody, CharacterBody attackerBody, Inventory attackerInventory) { //IL_0055: 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_00a6: 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) int itemCountEffective = attackerInventory.GetItemCountEffective(itemDef); if (itemCountEffective > 0 && (((ProcChainMask)(ref damageInfo.procChainMask)).HasProc((ProcType)26) || Util.CheckRoll(3.5f + 5f * (float)itemCountEffective, attackerBody.master))) { InflictDotInfo val = default(InflictDotInfo); val.attackerObject = ((Component)attackerBody).gameObject; val.victimObject = ((Component)victimBody).gameObject; val.dotIndex = DoTCore.StrangeCanPoison; val.duration = 5f; val.damageMultiplier = 1f; val.maxStacksFromAttacker = 1u; InflictDotInfo val2 = val; DotController.InflictDot(ref val2); } } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "Pelvis", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } } internal class WatchMetronome : SS2Item { public override string NameInternal => "SS2U_Metronome"; public override ItemTier Tier => (ItemTier)1; public override ItemTag[] Tags => (ItemTag[])(object)new ItemTag[2] { (ItemTag)3, (ItemTag)8 }; public override string PickupIconPath => "WatchMetronome_Icon"; public override string PickupModelPath => "MDLWatchMetronome"; public override void RegisterHooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown CharacterBody.OnInventoryChanged += new hook_OnInventoryChanged(CharacterBody_OnInventoryChanged); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } public override ItemDisplayRuleDict CreateDisplayRules() { //IL_0036: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: 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_00b9: Expected O, but got Unknown //IL_00c9: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: 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_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: 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_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: 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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_025c: 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_0267: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02d9: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_02fa: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0367: 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) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_038c: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: 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_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03fa: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_041a: 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_0420: Unknown result type (might be due to invalid IL or missing references) //IL_043b: 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_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_0492: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04ce: Unknown result type (might be due to invalid IL or missing references) //IL_04d7: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_050a: Unknown result type (might be due to invalid IL or missing references) //IL_0520: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_053b: Unknown result type (might be due to invalid IL or missing references) //IL_0540: Unknown result type (might be due to invalid IL or missing references) //IL_0545: Unknown result type (might be due to invalid IL or missing references) //IL_0546: Unknown result type (might be due to invalid IL or missing references) //IL_0561: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) //IL_05ce: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) SS2Item.displayPrefab = LegacyResourcesAPI.Load(PickupModelPath); ItemDisplay val = SS2Item.displayPrefab.AddComponent(); val.rendererInfos = Utils.SetupRendererInfos(SS2Item.displayPrefab); ItemDisplayRuleDict val2 = new ItemDisplayRuleDict((ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.2f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlHuntress", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.13f, 0.16f, 0.26f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMage", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.15f, 0.16f, 0.24f), localAngles = new Vector3(90f, 40f, 0f), localScale = new Vector3(0.08f, 0.08f, 0.08f) } }); val2.Add("mdlEngi", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.12f, 0.16f, 0.23f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlMerc", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlLoader", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCaptain", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlToolbot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlTreebot", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); val2.Add("mdlCroco", (ItemDisplayRule[])(object)new ItemDisplayRule[1] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = SS2Item.displayPrefab, childName = "ThighL", localPos = new Vector3(0.11f, 0.29f, 0.24f), localAngles = new Vector3(90f, 30f, 0f), localScale = new Vector3(0.1f, 0.1f, 0.1f) } }); return val2; } private void CharacterBody_OnInventoryChanged(orig_OnInventoryChanged orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.inventory)) { self.AddItemBehavior(GetCount(self)); } } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.isSprinting) { int buffCount = sender.GetBuffCount(BuffCore.watchMetronomeBuff); if (buffCount > 0) { args.moveSpeedMultAdd += (float)Math.Sqrt(0.1f * (float)buffCount) * 2f; } } } } public class MetronomeBehavior : ItemBehavior { public static float chargeDuration = 4f; private float notSprintingStopwatch; private float charge; public void Awake() { notSprintingStopwatch = 0f; base.body = ((Component)this).gameObject.GetComponent(); charge = 0f; } public void FixedUpdate() { //IL_0132: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)base.body)) { return; } bool flag = Object.op_Implicit((Object)(object)base.body.characterMotor) && base.body.characterMotor.isGrounded; if (!base.body.isSprinting) { if (flag) { notSprintingStopwatch += Time.fixedDeltaTime; } } else { notSprintingStopwatch = 0f; } if (notSprintingStopwatch > 0f) { if (flag && charge < 1f) { float val = charge + Time.fixedDeltaTime / chargeDuration; charge = Math.Min(val, 1f); } } else if (charge > 0f) { float val2 = charge - Time.fixedDeltaTime / (2f + 2f * (float)base.stack); charge = Math.Max(val2, 0f); } int buffCount = base.body.GetBuffCount(BuffCore.watchMetronomeBuff.buffIndex); int num = Mathf.FloorToInt(charge * 10f); if (buffCount != num) { SetMetronomeBuffsServer(num); } } private void OnDestroy() { if (NetworkServer.active) { ClearMetronomeBuffsServer(); } } private void SetMetronomeBuffsServer(int count) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active || !Object.op_Implicit((Object)(object)base.body)) { return; } int num = base.body.GetBuffCount(BuffCore.watchMetronomeBuff.buffIndex); if (num > count) { do { base.body.RemoveBuff(BuffCore.watchMetronomeBuff); num--; } while (num > count); } else if (num < count) { do { base.body.AddBuff(BuffCore.watchMetronomeBuff); num++; } while (num < count); } } private void ClearMetronomeBuffsServer() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { int buffCount = base.body.GetBuffCount(BuffCore.watchMetronomeBuff.buffIndex); for (int i = 0; i < buffCount; i++) { base.body.RemoveBuff(BuffCore.watchMetronomeBuff); } } } } } namespace Starstorm2Unofficial.Cores.ItemDisplays { public static class PyroItemDisplays { public static ItemDisplayRuleSet itemDisplayRuleSet; public static List itemRules; public static void RegisterDisplays() { //IL_0056: 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_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_00b1: 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_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_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_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_0167: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: 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_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_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_0278: 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_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_02e7: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_032e: Unknown result type (might be due to invalid IL or missing references) //IL_0342: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_035b: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_039d: 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_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03f8: Unknown result type (might be due to invalid IL or missing references) //IL_040c: Unknown result type (might be due to invalid IL or missing references) //IL_0411: 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_0453: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_049a: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_04f5: Unknown result type (might be due to invalid IL or missing references) //IL_0509: Unknown result type (might be due to invalid IL or missing references) //IL_051d: Unknown result type (might be due to invalid IL or missing references) //IL_0522: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_05ab: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05d3: Unknown result type (might be due to invalid IL or missing references) //IL_05d8: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_061a: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_0661: Unknown result type (might be due to invalid IL or missing references) //IL_0675: Unknown result type (might be due to invalid IL or missing references) //IL_0689: Unknown result type (might be due to invalid IL or missing references) //IL_068e: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06d0: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06e9: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_072b: 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_0744: Unknown result type (might be due to invalid IL or missing references) //IL_0772: Unknown result type (might be due to invalid IL or missing references) //IL_0786: Unknown result type (might be due to invalid IL or missing references) //IL_079a: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_07e1: Unknown result type (might be due to invalid IL or missing references) //IL_07f5: Unknown result type (might be due to invalid IL or missing references) //IL_07fa: Unknown result type (might be due to invalid IL or missing references) //IL_0828: Unknown result type (might be due to invalid IL or missing references) //IL_083c: Unknown result type (might be due to invalid IL or missing references) //IL_0850: Unknown result type (might be due to invalid IL or missing references) //IL_0855: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_0897: Unknown result type (might be due to invalid IL or missing references) //IL_08ab: Unknown result type (might be due to invalid IL or missing references) //IL_08b0: 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_08f2: Unknown result type (might be due to invalid IL or missing references) //IL_0906: Unknown result type (might be due to invalid IL or missing references) //IL_090b: Unknown result type (might be due to invalid IL or missing references) //IL_0939: Unknown result type (might be due to invalid IL or missing references) //IL_094d: Unknown result type (might be due to invalid IL or missing references) //IL_0961: Unknown result type (might be due to invalid IL or missing references) //IL_0966: Unknown result type (might be due to invalid IL or missing references) //IL_0994: Unknown result type (might be due to invalid IL or missing references) //IL_09a8: Unknown result type (might be due to invalid IL or missing references) //IL_09bc: Unknown result type (might be due to invalid IL or missing references) //IL_09c1: Unknown result type (might be due to invalid IL or missing references) //IL_09ef: Unknown result type (might be due to invalid IL or missing references) //IL_0a03: Unknown result type (might be due to invalid IL or missing references) //IL_0a17: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a5e: Unknown result type (might be due to invalid IL or missing references) //IL_0a72: Unknown result type (might be due to invalid IL or missing references) //IL_0a77: Unknown result type (might be due to invalid IL or missing references) //IL_0aa5: 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_0acd: Unknown result type (might be due to invalid IL or missing references) //IL_0ad2: Unknown result type (might be due to invalid IL or missing references) //IL_0b00: Unknown result type (might be due to invalid IL or missing references) //IL_0b14: Unknown result type (might be due to invalid IL or missing references) //IL_0b28: Unknown result type (might be due to invalid IL or missing references) //IL_0b2d: Unknown result type (might be due to invalid IL or missing references) //IL_0b5b: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b83: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Unknown result type (might be due to invalid IL or missing references) //IL_0bb6: Unknown result type (might be due to invalid IL or missing references) //IL_0bca: Unknown result type (might be due to invalid IL or missing references) //IL_0bde: Unknown result type (might be due to invalid IL or missing references) //IL_0be3: Unknown result type (might be due to invalid IL or missing references) //IL_0c11: Unknown result type (might be due to invalid IL or missing references) //IL_0c25: Unknown result type (might be due to invalid IL or missing references) //IL_0c39: Unknown result type (might be due to invalid IL or missing references) //IL_0c3e: Unknown result type (might be due to invalid IL or missing references) //IL_0c6c: Unknown result type (might be due to invalid IL or missing references) //IL_0c80: 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_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cdb: Unknown result type (might be due to invalid IL or missing references) //IL_0cef: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0d22: Unknown result type (might be due to invalid IL or missing references) //IL_0d36: Unknown result type (might be due to invalid IL or missing references) //IL_0d4a: Unknown result type (might be due to invalid IL or missing references) //IL_0d4f: Unknown result type (might be due to invalid IL or missing references) //IL_0d7d: Unknown result type (might be due to invalid IL or missing references) //IL_0d91: Unknown result type (might be due to invalid IL or missing references) //IL_0da5: Unknown result type (might be due to invalid IL or missing references) //IL_0daa: Unknown result type (might be due to invalid IL or missing references) //IL_0dd8: Unknown result type (might be due to invalid IL or missing references) //IL_0dec: Unknown result type (might be due to invalid IL or missing references) //IL_0e00: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e33: 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_0e60: Unknown result type (might be due to invalid IL or missing references) //IL_0e8e: 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_0eb6: Unknown result type (might be due to invalid IL or missing references) //IL_0ebb: Unknown result type (might be due to invalid IL or missing references) //IL_0ee9: Unknown result type (might be due to invalid IL or missing references) //IL_0efd: Unknown result type (might be due to invalid IL or missing references) //IL_0f11: Unknown result type (might be due to invalid IL or missing references) //IL_0f16: Unknown result type (might be due to invalid IL or missing references) //IL_0f44: Unknown result type (might be due to invalid IL or missing references) //IL_0f58: Unknown result type (might be due to invalid IL or missing references) //IL_0f6c: Unknown result type (might be due to invalid IL or missing references) //IL_0f71: Unknown result type (might be due to invalid IL or missing references) //IL_0f9f: Unknown result type (might be due to invalid IL or missing references) //IL_0fb3: Unknown result type (might be due to invalid IL or missing references) //IL_0fc7: Unknown result type (might be due to invalid IL or missing references) //IL_0fcc: Unknown result type (might be due to invalid IL or missing references) //IL_0ffa: Unknown result type (might be due to invalid IL or missing references) //IL_100e: Unknown result type (might be due to invalid IL or missing references) //IL_1022: 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_1055: Unknown result type (might be due to invalid IL or missing references) //IL_1069: Unknown result type (might be due to invalid IL or missing references) //IL_107d: Unknown result type (might be due to invalid IL or missing references) //IL_1082: Unknown result type (might be due to invalid IL or missing references) //IL_10b0: Unknown result type (might be due to invalid IL or missing references) //IL_10c4: Unknown result type (might be due to invalid IL or missing references) //IL_10d8: Unknown result type (might be due to invalid IL or missing references) //IL_10dd: Unknown result type (might be due to invalid IL or missing references) //IL_110b: Unknown result type (might be due to invalid IL or missing references) //IL_111f: Unknown result type (might be due to invalid IL or missing references) //IL_1133: Unknown result type (might be due to invalid IL or missing references) //IL_1138: Unknown result type (might be due to invalid IL or missing references) //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_117a: Unknown result type (might be due to invalid IL or missing references) //IL_118e: Unknown result type (might be due to invalid IL or missing references) //IL_1193: Unknown result type (might be due to invalid IL or missing references) //IL_11c1: Unknown result type (might be due to invalid IL or missing references) //IL_11d5: Unknown result type (might be due to invalid IL or missing references) //IL_11e9: Unknown result type (might be due to invalid IL or missing references) //IL_11ee: Unknown result type (might be due to invalid IL or missing references) //IL_121c: Unknown result type (might be due to invalid IL or missing references) //IL_1230: Unknown result type (might be due to invalid IL or missing references) //IL_1244: Unknown result type (might be due to invalid IL or missing references) //IL_1249: Unknown result type (might be due to invalid IL or missing references) //IL_1277: Unknown result type (might be due to invalid IL or missing references) //IL_128b: Unknown result type (might be due to invalid IL or missing references) //IL_129f: Unknown result type (might be due to invalid IL or missing references) //IL_12a4: Unknown result type (might be due to invalid IL or missing references) //IL_12d2: Unknown result type (might be due to invalid IL or missing references) //IL_12e6: Unknown result type (might be due to invalid IL or missing references) //IL_12fa: Unknown result type (might be due to invalid IL or missing references) //IL_12ff: Unknown result type (might be due to invalid IL or missing references) //IL_132d: Unknown result type (might be due to invalid IL or missing references) //IL_1341: Unknown result type (might be due to invalid IL or missing references) //IL_1355: Unknown result type (might be due to invalid IL or missing references) //IL_135a: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_139c: Unknown result type (might be due to invalid IL or missing references) //IL_13b0: Unknown result type (might be due to invalid IL or missing references) //IL_13b5: Unknown result type (might be due to invalid IL or missing references) //IL_13e3: Unknown result type (might be due to invalid IL or missing references) //IL_13f7: Unknown result type (might be due to invalid IL or missing references) //IL_140b: Unknown result type (might be due to invalid IL or missing references) //IL_1410: 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_1466: Unknown result type (might be due to invalid IL or missing references) //IL_146b: Unknown result type (might be due to invalid IL or missing references) //IL_1499: Unknown result type (might be due to invalid IL or missing references) //IL_14ad: Unknown result type (might be due to invalid IL or missing references) //IL_14c1: Unknown result type (might be due to invalid IL or missing references) //IL_14c6: Unknown result type (might be due to invalid IL or missing references) //IL_14f4: Unknown result type (might be due to invalid IL or missing references) //IL_1508: Unknown result type (might be due to invalid IL or missing references) //IL_151c: Unknown result type (might be due to invalid IL or missing references) //IL_1521: Unknown result type (might be due to invalid IL or missing references) //IL_154f: Unknown result type (might be due to invalid IL or missing references) //IL_1563: Unknown result type (might be due to invalid IL or missing references) //IL_1577: Unknown result type (might be due to invalid IL or missing references) //IL_157c: Unknown result type (might be due to invalid IL or missing references) //IL_15aa: Unknown result type (might be due to invalid IL or missing references) //IL_15be: Unknown result type (might be due to invalid IL or missing references) //IL_15d2: Unknown result type (might be due to invalid IL or missing references) //IL_15d7: Unknown result type (might be due to invalid IL or missing references) //IL_1605: Unknown result type (might be due to invalid IL or missing references) //IL_1619: Unknown result type (might be due to invalid IL or missing references) //IL_162d: Unknown result type (might be due to invalid IL or missing references) //IL_1632: Unknown result type (might be due to invalid IL or missing references) //IL_1660: Unknown result type (might be due to invalid IL or missing references) //IL_1674: Unknown result type (might be due to invalid IL or missing references) //IL_1688: Unknown result type (might be due to invalid IL or missing references) //IL_168d: Unknown result type (might be due to invalid IL or missing references) //IL_16bb: Unknown result type (might be due to invalid IL or missing references) //IL_16cf: Unknown result type (might be due to invalid IL or missing references) //IL_16e3: Unknown result type (might be due to invalid IL or missing references) //IL_16e8: Unknown result type (might be due to invalid IL or missing references) //IL_1716: Unknown result type (might be due to invalid IL or missing references) //IL_172a: Unknown result type (might be due to invalid IL or missing references) //IL_173e: Unknown result type (might be due to invalid IL or missing references) //IL_1743: Unknown result type (might be due to invalid IL or missing references) //IL_1771: Unknown result type (might be due to invalid IL or missing references) //IL_1785: Unknown result type (might be due to invalid IL or missing references) //IL_1799: Unknown result type (might be due to invalid IL or missing references) //IL_179e: Unknown result type (might be due to invalid IL or missing references) //IL_17cc: Unknown result type (might be due to invalid IL or missing references) //IL_17e0: Unknown result type (might be due to invalid IL or missing references) //IL_17f4: Unknown result type (might be due to invalid IL or missing references) //IL_17f9: Unknown result type (might be due to invalid IL or missing references) //IL_1827: Unknown result type (might be due to invalid IL or missing references) //IL_183b: Unknown result type (might be due to invalid IL or missing references) //IL_184f: Unknown result type (might be due to invalid IL or missing references) //IL_1854: Unknown result type (might be due to invalid IL or missing references) //IL_1882: Unknown result type (might be due to invalid IL or missing references) //IL_1896: Unknown result type (might be due to invalid IL or missing references) //IL_18aa: Unknown result type (might be due to invalid IL or missing references) //IL_18af: Unknown result type (might be due to invalid IL or missing references) //IL_18dd: Unknown result type (might be due to invalid IL or missing references) //IL_18f1: Unknown result type (might be due to invalid IL or missing references) //IL_1905: Unknown result type (might be due to invalid IL or missing references) //IL_190a: Unknown result type (might be due to invalid IL or missing references) //IL_1938: Unknown result type (might be due to invalid IL or missing references) //IL_194c: Unknown result type (might be due to invalid IL or missing references) //IL_1960: Unknown result type (might be due to invalid IL or missing references) //IL_1965: Unknown result type (might be due to invalid IL or missing references) //IL_1993: Unknown result type (might be due to invalid IL or missing references) //IL_19a7: Unknown result type (might be due to invalid IL or missing references) //IL_19bb: Unknown result type (might be due to invalid IL or missing references) //IL_19c0: Unknown result type (might be due to invalid IL or missing references) //IL_19ee: Unknown result type (might be due to invalid IL or missing references) //IL_1a02: Unknown result type (might be due to invalid IL or missing references) //IL_1a16: Unknown result type (might be due to invalid IL or missing references) //IL_1a1b: Unknown result type (might be due to invalid IL or missing references) //IL_1a49: Unknown result type (might be due to invalid IL or missing references) //IL_1a5d: Unknown result type (might be due to invalid IL or missing references) //IL_1a71: Unknown result type (might be due to invalid IL or missing references) //IL_1a76: Unknown result type (might be due to invalid IL or missing references) //IL_1aa4: Unknown result type (might be due to invalid IL or missing references) //IL_1ab8: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ad1: Unknown result type (might be due to invalid IL or missing references) //IL_1aff: Unknown result type (might be due to invalid IL or missing references) //IL_1b13: Unknown result type (might be due to invalid IL or missing references) //IL_1b27: Unknown result type (might be due to invalid IL or missing references) //IL_1b2c: 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_1b6e: Unknown result type (might be due to invalid IL or missing references) //IL_1b82: Unknown result type (might be due to invalid IL or missing references) //IL_1b87: Unknown result type (might be due to invalid IL or missing references) //IL_1bb5: Unknown result type (might be due to invalid IL or missing references) //IL_1bc9: Unknown result type (might be due to invalid IL or missing references) //IL_1bdd: Unknown result type (might be due to invalid IL or missing references) //IL_1be2: Unknown result type (might be due to invalid IL or missing references) //IL_1c10: Unknown result type (might be due to invalid IL or missing references) //IL_1c24: Unknown result type (might be due to invalid IL or missing references) //IL_1c38: Unknown result type (might be due to invalid IL or missing references) //IL_1c3d: Unknown result type (might be due to invalid IL or missing references) //IL_1c6b: Unknown result type (might be due to invalid IL or missing references) //IL_1c7f: Unknown result type (might be due to invalid IL or missing references) //IL_1c93: Unknown result type (might be due to invalid IL or missing references) //IL_1c98: Unknown result type (might be due to invalid IL or missing references) //IL_1cc6: Unknown result type (might be due to invalid IL or missing references) //IL_1cda: Unknown result type (might be due to invalid IL or missing references) //IL_1cee: Unknown result type (might be due to invalid IL or missing references) //IL_1cf3: Unknown result type (might be due to invalid IL or missing references) //IL_1d21: Unknown result type (might be due to invalid IL or missing references) //IL_1d35: Unknown result type (might be due to invalid IL or missing references) //IL_1d49: Unknown result type (might be due to invalid IL or missing references) //IL_1d4e: Unknown result type (might be due to invalid IL or missing references) //IL_1d7c: Unknown result type (might be due to invalid IL or missing references) //IL_1d90: Unknown result type (might be due to invalid IL or missing references) //IL_1da4: Unknown result type (might be due to invalid IL or missing references) //IL_1da9: Unknown result type (might be due to invalid IL or missing references) //IL_1dd7: Unknown result type (might be due to invalid IL or missing references) //IL_1deb: Unknown result type (might be due to invalid IL or missing references) //IL_1dff: Unknown result type (might be due to invalid IL or missing references) //IL_1e04: Unknown result type (might be due to invalid IL or missing references) //IL_1e32: Unknown result type (might be due to invalid IL or missing references) //IL_1e46: Unknown result type (might be due to invalid IL or missing references) //IL_1e5a: Unknown result type (might be due to invalid IL or missing references) //IL_1e5f: Unknown result type (might be due to invalid IL or missing references) //IL_1e8d: Unknown result type (might be due to invalid IL or missing references) //IL_1ea1: Unknown result type (might be due to invalid IL or missing references) //IL_1eb5: Unknown result type (might be due to invalid IL or missing references) //IL_1eba: Unknown result type (might be due to invalid IL or missing references) //IL_1ee8: Unknown result type (might be due to invalid IL or missing references) //IL_1efc: 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_1f43: Unknown result type (might be due to invalid IL or missing references) //IL_1f57: Unknown result type (might be due to invalid IL or missing references) //IL_1f6b: Unknown result type (might be due to invalid IL or missing references) //IL_1f70: Unknown result type (might be due to invalid IL or missing references) //IL_1f9e: Unknown result type (might be due to invalid IL or missing references) //IL_1fb2: Unknown result type (might be due to invalid IL or missing references) //IL_1fc6: Unknown result type (might be due to invalid IL or missing references) //IL_1fcb: Unknown result type (might be due to invalid IL or missing references) //IL_1ff9: Unknown result type (might be due to invalid IL or missing references) //IL_200d: Unknown result type (might be due to invalid IL or missing references) //IL_2021: Unknown result type (might be due to invalid IL or missing references) //IL_2026: Unknown result type (might be due to invalid IL or missing references) //IL_2054: Unknown result type (might be due to invalid IL or missing references) //IL_2068: Unknown result type (might be due to invalid IL or missing references) //IL_207c: Unknown result type (might be due to invalid IL or missing references) //IL_2081: Unknown result type (might be due to invalid IL or missing references) //IL_20af: Unknown result type (might be due to invalid IL or missing references) //IL_20c3: Unknown result type (might be due to invalid IL or missing references) //IL_20d7: Unknown result type (might be due to invalid IL or missing references) //IL_20dc: Unknown result type (might be due to invalid IL or missing references) //IL_210a: Unknown result type (might be due to invalid IL or missing references) //IL_211e: Unknown result type (might be due to invalid IL or missing references) //IL_2132: Unknown result type (might be due to invalid IL or missing references) //IL_2137: Unknown result type (might be due to invalid IL or missing references) //IL_2165: Unknown result type (might be due to invalid IL or missing references) //IL_2179: Unknown result type (might be due to invalid IL or missing references) //IL_218d: Unknown result type (might be due to invalid IL or missing references) //IL_2192: Unknown result type (might be due to invalid IL or missing references) //IL_21c0: Unknown result type (might be due to invalid IL or missing references) //IL_21d4: Unknown result type (might be due to invalid IL or missing references) //IL_21e8: Unknown result type (might be due to invalid IL or missing references) //IL_21ed: Unknown result type (might be due to invalid IL or missing references) //IL_221b: Unknown result type (might be due to invalid IL or missing references) //IL_222f: Unknown result type (might be due to invalid IL or missing references) //IL_2243: Unknown result type (might be due to invalid IL or missing references) //IL_2248: Unknown result type (might be due to invalid IL or missing references) //IL_2276: Unknown result type (might be due to invalid IL or missing references) //IL_228a: Unknown result type (might be due to invalid IL or missing references) //IL_229e: Unknown result type (might be due to invalid IL or missing references) //IL_22a3: Unknown result type (might be due to invalid IL or missing references) //IL_22d1: Unknown result type (might be due to invalid IL or missing references) //IL_22e5: Unknown result type (might be due to invalid IL or missing references) //IL_22f9: Unknown result type (might be due to invalid IL or missing references) //IL_22fe: Unknown result type (might be due to invalid IL or missing references) //IL_232c: Unknown result type (might be due to invalid IL or missing references) //IL_2340: Unknown result type (might be due to invalid IL or missing references) //IL_2354: Unknown result type (might be due to invalid IL or missing references) //IL_2359: Unknown result type (might be due to invalid IL or missing references) //IL_2387: Unknown result type (might be due to invalid IL or missing references) //IL_239b: Unknown result type (might be due to invalid IL or missing references) //IL_23af: Unknown result type (might be due to invalid IL or missing references) //IL_23b4: Unknown result type (might be due to invalid IL or missing references) //IL_23e2: Unknown result type (might be due to invalid IL or missing references) //IL_23f6: Unknown result type (might be due to invalid IL or missing references) //IL_240a: Unknown result type (might be due to invalid IL or missing references) //IL_240f: 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_244c: Unknown result type (might be due to invalid IL or missing references) //IL_2460: Unknown result type (might be due to invalid IL or missing references) //IL_2465: Unknown result type (might be due to invalid IL or missing references) //IL_248e: Unknown result type (might be due to invalid IL or missing references) //IL_24a2: Unknown result type (might be due to invalid IL or missing references) //IL_24b6: Unknown result type (might be due to invalid IL or missing references) //IL_24bb: Unknown result type (might be due to invalid IL or missing references) //IL_24e4: Unknown result type (might be due to invalid IL or missing references) //IL_24f8: Unknown result type (might be due to invalid IL or missing references) //IL_250c: Unknown result type (might be due to invalid IL or missing references) //IL_2511: Unknown result type (might be due to invalid IL or missing references) //IL_253a: Unknown result type (might be due to invalid IL or missing references) //IL_254e: Unknown result type (might be due to invalid IL or missing references) //IL_2562: Unknown result type (might be due to invalid IL or missing references) //IL_2567: Unknown result type (might be due to invalid IL or missing references) //IL_2590: Unknown result type (might be due to invalid IL or missing references) //IL_25a4: Unknown result type (might be due to invalid IL or missing references) //IL_25b8: Unknown result type (might be due to invalid IL or missing references) //IL_25bd: Unknown result type (might be due to invalid IL or missing references) //IL_25eb: Unknown result type (might be due to invalid IL or missing references) //IL_25ff: Unknown result type (might be due to invalid IL or missing references) //IL_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_2646: Unknown result type (might be due to invalid IL or missing references) //IL_265a: Unknown result type (might be due to invalid IL or missing references) //IL_266e: Unknown result type (might be due to invalid IL or missing references) //IL_2673: Unknown result type (might be due to invalid IL or missing references) //IL_26a1: Unknown result type (might be due to invalid IL or missing references) //IL_26b5: Unknown result type (might be due to invalid IL or missing references) //IL_26c9: Unknown result type (might be due to invalid IL or missing references) //IL_26ce: Unknown result type (might be due to invalid IL or missing references) //IL_26fc: Unknown result type (might be due to invalid IL or missing references) //IL_2710: Unknown result type (might be due to invalid IL or missing references) //IL_2724: Unknown result type (might be due to invalid IL or missing references) //IL_2729: Unknown result type (might be due to invalid IL or missing references) //IL_2752: Unknown result type (might be due to invalid IL or missing references) //IL_2766: Unknown result type (might be due to invalid IL or missing references) //IL_277a: Unknown result type (might be due to invalid IL or missing references) //IL_277f: Unknown result type (might be due to invalid IL or missing references) //IL_2791: Unknown result type (might be due to invalid IL or missing references) //IL_27a7: Unknown result type (might be due to invalid IL or missing references) //IL_27b9: Unknown result type (might be due to invalid IL or missing references) //IL_27c2: Unknown result type (might be due to invalid IL or missing references) //IL_27f5: Unknown result type (might be due to invalid IL or missing references) //IL_27fa: Unknown result type (might be due to invalid IL or missing references) //IL_2810: Unknown result type (might be due to invalid IL or missing references) //IL_2815: Unknown result type (might be due to invalid IL or missing references) //IL_282b: Unknown result type (might be due to invalid IL or missing references) //IL_2830: Unknown result type (might be due to invalid IL or missing references) //IL_2838: Unknown result type (might be due to invalid IL or missing references) //IL_283d: Unknown result type (might be due to invalid IL or missing references) //IL_283f: Unknown result type (might be due to invalid IL or missing references) //IL_2848: Unknown result type (might be due to invalid IL or missing references) //IL_2851: Unknown result type (might be due to invalid IL or missing references) //IL_2884: Unknown result type (might be due to invalid IL or missing references) //IL_2889: Unknown result type (might be due to invalid IL or missing references) //IL_289f: Unknown result type (might be due to invalid IL or missing references) //IL_28a4: Unknown result type (might be due to invalid IL or missing references) //IL_28ba: Unknown result type (might be due to invalid IL or missing references) //IL_28bf: Unknown result type (might be due to invalid IL or missing references) //IL_28c7: Unknown result type (might be due to invalid IL or missing references) //IL_28cc: Unknown result type (might be due to invalid IL or missing references) //IL_28ce: Unknown result type (might be due to invalid IL or missing references) //IL_28d8: Unknown result type (might be due to invalid IL or missing references) //IL_28da: Unknown result type (might be due to invalid IL or missing references) //IL_28df: Unknown result type (might be due to invalid IL or missing references) GameObject pyroPrefab = PrefabCore.pyroPrefab; GameObject gameObject = ((Component)pyroPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); itemDisplayRuleSet = ScriptableObject.CreateInstance(); itemRules = new List(); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.CritGlasses, "DisplayGlasses", "Head", new Vector3(0f, 0.0027f, 0.0012f), new Vector3(330f, 0f, 0f), new Vector3(0.0036f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Syringe, "DisplaySyringeCluster", "ShoulderL", new Vector3(0f, 0f, -0f), new Vector3(13.00001f, 110f, 210f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NearbyDamageBonus, "DisplayDiamond", "Gun", new Vector3(-0.0015f, 0.0025f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Missile, "DisplayMissileLauncher", "Chest", new Vector3(-0.003f, 0.00065f, 0f), new Vector3(2.134434f, 9.99999f, 20f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Dagger, "DisplayDagger", "Chest", new Vector3(-0.001f, 0.0035f, -0f), new Vector3(0f, 45f, 45f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Hoof, "DisplayHoof", "CalfR", new Vector3(0f, 0.0037f, -0.001f), new Vector3(75f, 0f, 0f), new Vector3(0.001f, 0.0012f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ChainLightning, "DisplayUkulele", "Chest", new Vector3(-0.0007f, 0.0035f, -0.0027f), new Vector3(0f, 180f, 56f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GhostOnKill, "DisplayMask", "Head", new Vector3(0f, 0.0025f, 0.0008f), new Vector3(330f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Mushroom, "DisplayMushroom", "ShoulderR", new Vector3(-0.0008f, 0f, 0.0005f), new Vector3(0f, 340f, 90f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AttackSpeedOnCrit, "DisplayWolfPelt", "Head", new Vector3(0f, 0.0035f, 0.0005f), new Vector3(310f, 0f, 0f), new Vector3(0.006f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHit, "DisplayTriTip", "Muzzle", new Vector3(-0f, -0.0005f, -0f), new Vector3(0f, 0f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WardOnLevel, "DisplayWarbanner", "Chest", new Vector3(0f, 0.003f, -0.003f), new Vector3(270f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HealWhileSafe, "DisplaySnail", "ElbowR", new Vector3(0f, 0.0007f, 0.0003f), new Vector3(90f, 0f, 2f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnOverHeal, "DisplayAegis", "ElbowL", new Vector3(0f, 0f, -0.0005f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.GoldOnHit, "DisplayBoneCrown", "Head", new Vector3(0f, 0.0035f, -0.0003f), new Vector3(345f, 0f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.WarCryOnMultiKill, "DisplayPauldron", "ShoulderL", new Vector3(0.001f, -0f, 0f), new Vector3(0f, 70f, 270f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintArmor, "DisplayBuckler", "ElbowR", new Vector3(-0.0008f, 0.0005f, 0f), new Vector3(0f, 330f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IceRing, "DisplayIceRing", "Muzzle", new Vector3(0f, 0f, -0.00028f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FireRing, "DisplayFireRing", "Muzzle", new Vector3(0f, 0f, -0.0003f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.JumpBoost, "DisplayWaxBird", "Head", new Vector3(0f, -0.0009f, -0.001f), new Vector3(0f, 0f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorReductionOnHit, "DisplayWarhammer", "Axe", new Vector3(0f, 0.006f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ArmorPlate, "DisplayRepulsionArmorPlate", "ThighR", new Vector3(0f, 0.003f, -0.001f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Feather, "DisplayFeather", "ShoulderR", new Vector3(0f, 0.001f, 0f), new Vector3(0f, 180f, 180f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Crowbar, "DisplayCrowbar", "Pelvis", new Vector3(-0.002f, 0f, 0.001f), new Vector3(310f, 30f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EquipmentMagazine, "DisplayBattery", "ThighL", new Vector3(0f, 0.0023f, -0.0015f), new Vector3(80f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.NovaOnHeal, "DisplayDevilHorns", "Head", new Vector3(0.001f, 0.0023f, -0.0003f), new Vector3(0f, 90f, 0f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Infusion, "DisplayInfusion", "Chest", new Vector3(0f, 0.002f, 0.0023f), new Vector3(0f, 20f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Medkit, "DisplayMedkit", "Pelvis", new Vector3(0.0025f, 0.0006f, 0f), new Vector3(70f, 250f, 5f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bandolier, "DisplayBandolier", "Chest", new Vector3(0f, 0.0023f, -0.0006f), new Vector3(45f, 80f, 0f), new Vector3(0.006f, 0.008f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BounceNearby, "DisplayHook", "Chest", new Vector3(-0.0013f, 0.0035f, -0.003f), new Vector3(0f, 0f, 4f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.IgniteOnKill, "DisplayGasoline", "Pelvis", new Vector3(-0.0023f, 0.001f, 0.001f), new Vector3(80f, 20f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StunChanceOnHit, "DisplayStunGrenade", "ThighR", new Vector3(-0.0005f, 0.002f, -0.0015f), new Vector3(90f, 230f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Firework, "DisplayFirework", "Chest", new Vector3(-0.002f, 0.003f, -0.0023f), new Vector3(270f, 0f, 10f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarDagger, "DisplayLunarDagger", "Pelvis", new Vector3(0.0026f, -0.001f, -0.001f), new Vector3(0f, 0f, 260f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Knurl, "DisplayKnurl", "Chest", new Vector3(0f, 0.002f, 0.0018f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BeetleGland, "DisplayBeetleGland", "Pelvis", new Vector3(-0.003f, 0.0007f, -0f), new Vector3(0f, 20f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintBonus, "DisplaySoda", "Pelvis", new Vector3(0.0028f, 0.001f, -0.001f), new Vector3(85f, 180f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.StickyBomb, "DisplayStickyBomb", "Pelvis", new Vector3(-0.0026f, 0.002f, -0.0014f), new Vector3(345f, 0f, 11f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TreasureCache, "DisplayKey", "Chest", new Vector3(0.0015f, 0.003f, 0.002f), new Vector3(20f, 90f, 80f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BossDamageBonus, "DisplayAPRound", "ShoulderR", new Vector3(0f, 0.0015f, -0.001f), new Vector3(270f, 20f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SlowOnHit, "DisplayBauble", "Pelvis", new Vector3(0.0016f, 0.008f, 0.006f), new Vector3(0f, 90f, 180f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExtraLife, "DisplayHippo", "Chest", new Vector3(-0f, 0.003f, -0.003f), new Vector3(0f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.KillEliteFrenzy, "DisplayBrainstalk", "Head", new Vector3(0f, 0.002f, 0f), new Vector3(345f, 0f, 0f), new Vector3(0.003f, 0.004f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.RepeatHeal, "DisplayCorpseFlower", "Head", new Vector3(0.0012f, 0.002f, -0.001f), new Vector3(90f, 100f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AutoCastEquipment, "DisplayFossil", "Chest", new Vector3(0f, 0f, 0.002f), new Vector3(0f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.IncreaseHealing, "DisplayAntler", "Head", new Vector3(0.001f, 0.002f, -0.0005f), new Vector3(0f, 90f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TitanGoldDuringTP, "DisplayGoldheart", "Chest", new Vector3(-0.0006f, 0.002f, 0.002f), new Vector3(0f, 0f, 20f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintWisp, "DisplayBrokenMask", "ShoulderL", new Vector3(0.0004f, 0.0015f, 0f), new Vector3(0f, 90f, 180f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BarrierOnKill, "DisplayBrooch", "Chest", new Vector3(0.001f, 0.0023f, 0.0017f), new Vector3(90f, 0f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.TPHealingNova, "DisplayGlowFlower", "Chest", new Vector3(0.002f, 0f, 0.0006f), new Vector3(0f, 70f, 90f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarUtilityReplacement, "DisplayBirdFoot", "CalfR", new Vector3(0f, 0.002f, 0.0021f), new Vector3(0f, 270f, 280f), new Vector3(0.008f, 0.008f, 0.008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Thorns, "DisplayRazorwireLeft", "ShoulderL", new Vector3(-0.0005f, 0f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.008f, 0.006f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarPrimaryReplacement, "DisplayBirdEye", "Head", new Vector3(0f, 0.004f, 0.001f), new Vector3(90f, 180f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.NovaOnLowHealth, "DisplayJellyGuts", "Head", new Vector3(-0.0005f, 0.0004f, -0f), new Vector3(310f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LunarTrinket, "DisplayBeads", "Pelvis", new Vector3(0.003f, 0.0005f, 0.001f), new Vector3(0f, 0f, 270f), new Vector3(0.01f, 0.01f, 0f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Plant, "DisplayInterstellarDeskPlant", "Chest", new Vector3(0.0018f, 0.0043f, -0.002f), new Vector3(290f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Bear, "DisplayBear", "Chest", new Vector3(0f, 0.002f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.DeathMark, "DisplayDeathMark", "HandR", new Vector3(-0.001f, 0.0005f, -0f), new Vector3(300f, 0f, 270f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ExplodeOnDeath, "DisplayWilloWisp", "Pelvis", new Vector3(-0.0025f, 0.0005f, 0.002f), new Vector3(20f, 315f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Seed, "DisplaySeed", "CalfL", new Vector3(0f, 0.002f, -0.001f), new Vector3(0f, 90f, 45f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SprintOutOfCombat, "DisplayWhip", "Pelvis", new Vector3(0.0032f, 0.0025f, -0.001f), new Vector3(0f, 0f, 160f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Phasing, "DisplayStealthkit", "ElbowR", new Vector3(-0f, 0.001f, 0.001f), new Vector3(90f, 180f, 0f), new Vector3(0.003f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.PersonalShield, "DisplayShieldGenerator", "ShoulderR", new Vector3(-0f, 0.001f, 0f), new Vector3(280f, 180f, 0f), new Vector3(0.002f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShockNearby, "DisplayTeslaCoil", "Chest", new Vector3(0f, 0.002f, -0.002f), new Vector3(270f, 0f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Items.ShieldOnly, "DisplayShieldBug", "Head", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.AlienHead, "DisplayAlienHead", "Pelvis", new Vector3(-0.0026f, 0f, 0f), new Vector3(90f, 90f, 0f), new Vector3(0.012f, 0.012f, 0.012f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.HeadHunter, "DisplaySkullCrown", "Head", new Vector3(0f, 0.0024f, -0.0003f), new Vector3(320f, 0f, 0f), new Vector3(0.005f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.EnergizedOnEquipmentUse, "DisplayWarHorn", "Pelvis", new Vector3(0f, 0f, 0.0023f), new Vector3(0f, 0f, 180f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.FlatHealth, "DisplaySteakCurved", "Chest", new Vector3(0f, 0.0026f, 0.0026f), new Vector3(330f, 0f, 0f), new Vector3(0.0016f, 0.0016f, 0.0016f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Tooth, "DisplayToothMeshLarge", "Chest", new Vector3(-0.002f, 0.0055f, -0.001f), new Vector3(340f, 0f, 0f), new Vector3(0.07f, 0.07f, 0.07f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Pearl, "DisplayPearl", "Muzzle", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.ShinyPearl, "DisplayShinyPearl", "Muzzle", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BonusGoldPackOnKill, "DisplayTome", "Pelvis", new Vector3(0f, 0f, 0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.Squid, "DisplaySquidTurret", "ShoulderL", new Vector3(0.001f, -0f, -0.001f), new Vector3(0f, 35f, 250f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.LaserTurbine, "DisplayLaserTurbine", "Chest", new Vector3(0f, 0.0035f, -0.0025f), new Vector3(15f, 0f, 0f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.SiphonOnLowHealth, "DisplaySiphonOnLowHealth", "ThighL", new Vector3(0.0006f, 0.002f, -0.001f), new Vector3(0f, 45f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.BleedOnHitAndExplode, "DisplayBleedOnHitAndExplode", "Chest", new Vector3(-0.0005f, 0.0024f, 0.0025f), new Vector3(0f, 0f, 45f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Items.MonstersOnShrineUse, "DisplayMonstersOnShrineUse", "ThighR", new Vector3(-0.00085f, 0.0033f, 0f), new Vector3(30f, 180f, 180f), new Vector3(0.0008f, 0.0008f, 0.0008f))); itemRules.Add(ItemDisplayCore.CreateMirroredDisplayRule((Object)(object)Items.UtilitySkillMagazine, "DisplayAfterburnerShoulderRing", "Chest", new Vector3(0.002f, 0.003f, 0f), new Vector3(70f, 180f, 190f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Fruit, "DisplayFruit", "ThighR", new Vector3(-0f, 0.0003f, -0f), new Vector3(0f, 0f, 180f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateZMirroredDisplayRule((Object)(object)Equipment.AffixRed, "DisplayEliteHorn", "Head", new Vector3(-0.001f, 0.002f, 0f), new Vector3(0f, 0f, 0f), new Vector3(-0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixBlue, "DisplayEliteRhinoHorn", "Head", new Vector3(0f, 0.0042f, 0.0005f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixWhite, "DisplayEliteIceCrown", "Head", new Vector3(0f, 0.004f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.0003f, 0.0003f, 0.0003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixPoison, "DisplayEliteUrchinCrown", "Head", new Vector3(0f, 0.003f, 0f), new Vector3(270f, 0f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CritOnUse, "DisplayNeuralImplant", "Head", new Vector3(0f, 0.0032f, 0f), new Vector3(0f, 90f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.AffixHaunted, "DisplayEliteStealthCrown", "Head", new Vector3(0f, 0.0012f, 0f), new Vector3(90f, 180f, 0f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DroneBackup, "DisplayRadio", "Pelvis", new Vector3(-0.0013f, -0f, 0.002f), new Vector3(0f, 345f, 195f), new Vector3(0.006f, 0.006f, 0.006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Lightning, ItemDisplayCore.capacitorPrefab, "Chest", new Vector3(-0.001f, 0f, -0.004f), new Vector3(0f, 0f, 0f), new Vector3(0.01f, 0.01f, 0.01f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BurnNearby, "DisplayPotion", "Pelvis", new Vector3(0.0015f, 0.0002f, 0.0014f), new Vector3(0f, 30f, 180f), new Vector3(0.0005f, 0.0005f, 0.0005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CrippleWard, "DisplayEffigy", "Pelvis", new Vector3(-0.0016f, 0.0018f, -0.0016f), new Vector3(0f, 30f, 180f), new Vector3(0.005f, 0.005f, 0.005f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GainArmor, "DisplayElephantFigure", "Head", new Vector3(0f, 0.0022f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0.019f, 0.018f, 0.012f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Recycle, "DisplayRecycler", "Chest", new Vector3(0f, 0.0034f, -0.003f), new Vector3(0f, 90f, 15f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.FireBallDash, "DisplayEgg", "Pelvis", new Vector3(0.002f, 0.0008f, -0.0014f), new Vector3(85f, 180f, 0f), new Vector3(0.004f, 0.004f, 0.004f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Cleanse, "DisplayWaterPack", "Chest", new Vector3(0f, 0.0015f, -0.0025f), new Vector3(0f, 180f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Tonic, "DisplayTonic", "Pelvis", new Vector3(0.0015f, -0.001f, 0.0014f), new Vector3(0f, 30f, 180f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Gateway, "DisplayVase", "Pelvis", new Vector3(-0.0024f, 0.0005f, 0.001f), new Vector3(0f, 30f, 170f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Scanner, "DisplayScanner", "Chest", new Vector3(0.0015f, 0.0035f, 0f), new Vector3(280f, 0f, 15f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.DeathProjectile, "DisplayDeathProjectile", "Pelvis", new Vector3(0f, 0f, -0.002f), new Vector3(0f, 0f, 180f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.LifestealOnHit, "DisplayLifestealOnHit", "Head", new Vector3(0f, 0.004f, -0.0028f), new Vector3(30f, 0f, 0f), new Vector3(0.0015f, 0.0015f, 0.0015f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.TeamWarCry, "DisplayTeamWarCry", "Chest", new Vector3(0f, 0.0018f, 0.002f), new Vector3(15f, 0f, 0f), new Vector3(0.0006f, 0.0006f, 0.0006f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.CommandMissile, "DisplayMissileRack", "Chest", new Vector3(0f, 0.004f, -0.002f), new Vector3(70f, 180f, 0f), new Vector3(0.007f, 0.007f, 0.007f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Icicle, "DisplayFrostRelic", new Vector3(-0f, 0.013f, -0.008f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.Talisman, "DisplayTalisman", new Vector3(0.007f, 0.02f, -0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Items.FocusConvergence, "DisplayFocusedConvergence", new Vector3(-0.002f, 0.02f, -0.01f), new Vector3(0f, 0f, 0f), new Vector3(0.1f, 0.1f, 0.1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Meteor, "DisplayMeteor", new Vector3(0.003f, 0.022f, -0.003f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Blackhole, "DisplayGravCube", new Vector3(0.003f, 0.022f, -0.003f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.Jetpack, "DisplayBugWings", "Chest", new Vector3(0f, 0.002f, -0.002f), new Vector3(0f, 0f, 0f), new Vector3(0.002f, 0.002f, 0.002f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.GoldGat, "DisplayGoldGat", "Chest", new Vector3(0.003f, 0.0058f, 0f), new Vector3(20f, 90f, 0f), new Vector3(0.001f, 0.001f, 0.001f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.BFG, "DisplayBFG", "Chest", new Vector3(0.0017f, 0.003f, 0f), new Vector3(0f, 0f, 330f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateGenericDisplayRule((Object)(object)Equipment.QuestVolatileBattery, "DisplayBatteryArray", "Chest", new Vector3(0f, 0.002f, -0.0033f), new Vector3(0f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f))); itemRules.Add(ItemDisplayCore.CreateFollowerDisplayRule((Object)(object)Equipment.Saw, "DisplaySawmerang", new Vector3(0f, 0.015f, -0.015f), new Vector3(0f, 90f, 0f), new Vector3(0.2f, 0.2f, 0.2f))); itemRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)Items.FallBoots, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfL", localPos = new Vector3(0f, 0.004f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.002f, 0.002f, 0.0028f), limbMask = (LimbFlags)0 }, new ItemDisplayRule { ruleType = (ItemDisplayRuleType)0, followerPrefab = ItemDisplayCore.LoadDisplay("DisplayGravBoots"), childName = "CalfR", localPos = new Vector3(0f, 0.004f, 0f), localAngles = new Vector3(0f, 0f, 0f), localScale = new Vector3(0.002f, 0.002f, 0.0028f), limbMask = (LimbFlags)0 } } } }); KeyAssetRuleGroup[] keyAssetRuleGroups = itemRules.ToArray(); itemDisplayRuleSet.keyAssetRuleGroups = keyAssetRuleGroups; component.itemDisplayRuleSet = itemDisplayRuleSet; } public static void RegisterModdedDisplays() { } } } namespace Starstorm2Unofficial.Cores.NemesisInvasion { public class NemesisInvasionCore { public delegate void NemesisItemHook(CharacterBody sender, StatHookEventArgs args); [CompilerGenerated] private static class <>O { public static hook_UpdateTargets <0>__AttemptTargetPlayer; } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Func <>9__13_1; public static Func <>9__13_2; public static Manipulator <>9__13_0; public static StatHookEventHandler <>9__16_0; public static hook_TakeDamageProcess <>9__16_1; internal void b__13_0(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); val.GotoNext((MoveType)2, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled") }); val.Emit(OpCodes.Ldloc_3); val.EmitDelegate>((Func)((bool playerControlled, CharacterBody body) => playerControlled || (Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCount(NemesisMarkerItem) > 0))); } internal bool b__13_1(Instruction x) { return ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled"); } internal bool b__13_2(bool playerControlled, CharacterBody body) { return playerControlled || (Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCount(NemesisMarkerItem) > 0); } internal void b__16_0(CharacterBody sender, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)sender.inventory) && sender.inventory.GetItemCount(NemesisMarkerItem) > 0) { float num = 1f; if (scaleHPWithPlayercount) { num += hpMultPerPlayer * (float)Mathf.Max(0, Run.instance.participatingPlayerCount - 1); } num *= hpMult; if (num > 1f) { args.healthMultAdd += num - 1f; } if (damageMult > 1f) { args.damageMultAdd += damageMult - 1f; } if (speedMult > 1f) { args.moveSpeedMultAdd += speedMult - 1f; } args.armorAdd += bonusArmor; NemesisItemActions?.Invoke(sender, args); } } internal void b__16_1(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Invalid comparison between Unknown and I4 //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Invalid comparison between Unknown and I4 if (NetworkServer.active && Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)self.body.inventory) && self.body.inventory.GetItemCount(NemesisMarkerItem) > 0) { bool flag = DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)2097152)) != 0; bool flag2 = !Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)damageInfo.inflictor) && (int)damageInfo.damageColorIndex == 9 && (int)damageInfo.damageType.damageType == 66; if (flag || flag2) { damageInfo.damage = 0f; damageInfo.rejected = true; } } orig.Invoke(self, damageInfo); } } public static List prioritizePlayersList = new List(); public static ItemDef NemesisMarkerItem; public static GameObject NemesisMusicPrefab; public static float hpMult = 1f; public static float damageMult = 1f; public static float speedMult = 1f; public static float hpMultPerPlayer = 0.5f; public static float bonusArmor = 0f; public static bool scaleHPWithPlayercount = true; public static float moveSpeedCap = 0f; public static NemesisItemHook NemesisItemActions; public NemesisInvasionCore() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Expected O, but got Unknown //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown BuildNemesisMusicController(); NemesisInvasionManager.Initialize(); BuildNemesisItem(); RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(NemforcerMinibossCompat)); object obj = <>O.<0>__AttemptTargetPlayer; if (obj == null) { hook_UpdateTargets val = AttemptTargetPlayer; <>O.<0>__AttemptTargetPlayer = val; obj = (object)val; } BaseAI.UpdateTargets += (hook_UpdateTargets)obj; if (moveSpeedCap > 0f) { CharacterBody.FixedUpdate += new hook_FixedUpdate(CapMoveSpeed); } ApplyInfestationFix(); } private void BuildNemesisMusicController() { if (!Object.op_Implicit((Object)(object)NemesisMusicPrefab)) { NemesisMusicPrefab = PrefabAPI.InstantiateClone(Assets.mainAssetBundle.LoadAsset("EmptyGameObject"), "NemesisMusicObject", false); NemesisMusicPrefab.AddComponent(); NemesisMusicPrefab.AddComponent(); PrefabAPI.RegisterNetworkPrefab(NemesisMusicPrefab); } } private void CapMoveSpeed(orig_FixedUpdate orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self.inventory) && self.inventory.GetItemCount(NemesisMarkerItem) > 0 && self.moveSpeed > moveSpeedCap) { self.moveSpeed = moveSpeedCap; } } private void ApplyInfestationFix() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__13_0; if (obj == null) { Manipulator val = delegate(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) ILCursor val2 = new ILCursor(il); val2.GotoNext((MoveType)2, new Func[1] { (Instruction x) => ILPatternMatchingExt.MatchCallvirt(x, "get_isPlayerControlled") }); val2.Emit(OpCodes.Ldloc_3); val2.EmitDelegate>((Func)((bool playerControlled, CharacterBody body) => playerControlled || (Object.op_Implicit((Object)(object)body.inventory) && body.inventory.GetItemCount(NemesisMarkerItem) > 0))); }; <>c.<>9__13_0 = val; obj = (object)val; } Infest.FixedUpdate += (Manipulator)obj; } private void BuildNemesisItem() { //IL_0021: 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_0094: Expected O, but got Unknown //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_00b4: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown NemesisMarkerItem = ScriptableObject.CreateInstance(); ((Object)NemesisMarkerItem).name = "SS2UNemesisMarkerItem"; NemesisMarkerItem.deprecatedTier = (ItemTier)5; NemesisMarkerItem.nameToken = "SS2UNemesisMarkerItem"; NemesisMarkerItem.pickupToken = "Applies Nemesis Invader stat boosts."; NemesisMarkerItem.descriptionToken = "Applies Nemesis Invader stat boosts."; NemesisMarkerItem.tags = (ItemTag[])(object)new ItemTag[2] { (ItemTag)9, (ItemTag)12 }; ((Object)NemesisMarkerItem).name = "SS2UNemesisMarkerItem"; ItemDisplayRule[] array = (ItemDisplayRule[])(object)new ItemDisplayRule[0]; ItemAPI.Add(new CustomItem(NemesisMarkerItem, array)); object obj = <>c.<>9__16_0; if (obj == null) { StatHookEventHandler val = delegate(CharacterBody sender, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)sender.inventory) && sender.inventory.GetItemCount(NemesisMarkerItem) > 0) { float num = 1f; if (scaleHPWithPlayercount) { num += hpMultPerPlayer * (float)Mathf.Max(0, Run.instance.participatingPlayerCount - 1); } num *= hpMult; if (num > 1f) { args.healthMultAdd += num - 1f; } if (damageMult > 1f) { args.damageMultAdd += damageMult - 1f; } if (speedMult > 1f) { args.moveSpeedMultAdd += speedMult - 1f; } args.armorAdd += bonusArmor; NemesisItemActions?.Invoke(sender, args); } }; <>c.<>9__16_0 = val; obj = (object)val; } RecalculateStatsAPI.GetStatCoefficients += (StatHookEventHandler)obj; object obj2 = <>c.<>9__16_1; if (obj2 == null) { hook_TakeDamageProcess val2 = delegate(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Invalid comparison between Unknown and I4 //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Invalid comparison between Unknown and I4 if (NetworkServer.active && Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)self.body.inventory) && self.body.inventory.GetItemCount(NemesisMarkerItem) > 0) { bool flag = DamageTypeCombo.op_Implicit(damageInfo.damageType & DamageTypeCombo.op_Implicit((DamageType)2097152)) != 0; bool flag2 = !Object.op_Implicit((Object)(object)damageInfo.attacker) && !Object.op_Implicit((Object)(object)damageInfo.inflictor) && (int)damageInfo.damageColorIndex == 9 && (int)damageInfo.damageType.damageType == 66; if (flag || flag2) { damageInfo.damage = 0f; damageInfo.rejected = true; } } orig.Invoke(self, damageInfo); }; <>c.<>9__16_1 = val2; obj2 = (object)val2; } HealthComponent.TakeDamageProcess += (hook_TakeDamageProcess)obj2; CharacterBody.onBodyInventoryChangedGlobal += CharacterBody_onBodyInventoryChangedGlobal; } private void CharacterBody_onBodyInventoryChangedGlobal(CharacterBody self) { if (Object.op_Implicit((Object)(object)self.inventory)) { self.AddItemBehavior(self.inventory.GetItemCount(NemesisMarkerItem)); } } private void NemforcerMinibossCompat() { //IL_00ce: 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_00d5: 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_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: 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_00fb: 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_010d: 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_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Invalid comparison between Unknown and I4 //IL_0130: Unknown result type (might be due to invalid IL or missing references) GameObject val = MasterCatalog.FindMasterPrefab("NemesisEnforcerMiniBossMaster"); if (!Object.op_Implicit((Object)(object)val)) { return; } Debug.Log((object)"Starstorm 2 Unofficial: Adding Nemforcer Miniboss to Nemesis invader list."); AddNemesisBoss(val, null, string.Empty, shouldGrantRandomItems: true, addEffect: true); CharacterMaster component = val.GetComponent(); if (!Object.op_Implicit((Object)(object)component) || !Object.op_Implicit((Object)(object)component.bodyPrefab)) { return; } CharacterBody component2 = component.bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.baseMaxHealth = 5400f; component2.levelMaxHealth = 1620f; component2.baseDamage = 8f; component2.levelDamage = 1.6f; component2.baseRegen = 0f; component2.levelRegen = 0f; component2.isChampion = true; component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 1); component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 0x200); component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 0x400); component2.bodyFlags = (BodyFlags)(component2.bodyFlags | 0x800); BodyIndex val2 = BodyCatalog.FindBodyIndex(component2); if ((int)val2 != -1) { prioritizePlayersList.Add(val2); } } } public static void AddNemesisBoss(GameObject masterPrefab, int[] itemStacks, string itemDropName, bool shouldGrantRandomItems, bool addEffect = false) { NemesisCard card = CreateNemesisBossCard(masterPrefab, itemStacks, itemDropName, shouldGrantRandomItems, addEffect); AddNemesisBoss(card); } public static void AddNemesisBoss(NemesisCard card) { if (card != null) { NemesisInvasionManager.nemesisCards.Add(card); } } public static NemesisCard CreateNemesisBossCard(GameObject masterPrefab, int[] itemStacks, string itemDropName, bool shouldGrantRandomItems, bool addEffect) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)masterPrefab)) { return null; } CharacterSpawnCard val = ScriptableObject.CreateInstance(); val.forbiddenAsBoss = false; val.noElites = true; ((SpawnCard)val).nodeGraphType = (GraphType)0; ((SpawnCard)val).prefab = masterPrefab; return new NemesisCard(val, itemStacks, itemDropName, shouldGrantRandomItems, addEffect); } private static void AttemptTargetPlayer(orig_UpdateTargets orig, BaseAI self) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_021f: 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_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_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Invalid comparison between Unknown and I4 //IL_02b5: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (!Object.op_Implicit((Object)(object)self.body) || !Object.op_Implicit((Object)(object)self.body.teamComponent) || !Object.op_Implicit((Object)(object)self.body.inventory) || self.body.inventory.GetItemCount(NemesisMarkerItem) <= 0 || !prioritizePlayersList.Contains(self.body.bodyIndex) || self.currentEnemy == null || !Object.op_Implicit((Object)(object)self.currentEnemy.characterBody) || self.currentEnemy.characterBody.isPlayerControlled || !Object.op_Implicit((Object)(object)self.currentEnemy.characterBody.healthComponent) || !self.currentEnemy.characterBody.healthComponent.alive || !Object.op_Implicit((Object)(object)self.currentEnemy.characterBody.teamComponent)) { return; } TeamMask enemyTeams = TeamMask.GetEnemyTeams(self.body.teamComponent.teamIndex); List list = new List(); foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances) { if (Object.op_Implicit((Object)(object)instance.body) && instance.body.isPlayerControlled && Object.op_Implicit((Object)(object)instance.body.teamComponent) && ((TeamMask)(ref enemyTeams)).HasTeam(instance.body.teamComponent.teamIndex) && Object.op_Implicit((Object)(object)instance.body.healthComponent) && instance.body.healthComponent.alive && (int)instance.body.GetVisibilityLevel(self.body) >= 3) { list.Add(instance.body); } } if (list.Count <= 0) { return; } Vector3 corePosition = self.body.corePosition; float num = float.PositiveInfinity; CharacterBody val = null; foreach (CharacterBody item in list) { Vector3 val2 = corePosition - item.corePosition; float sqrMagnitude = ((Vector3)(ref val2)).sqrMagnitude; if (sqrMagnitude < num) { num = sqrMagnitude; val = item; } } if (Object.op_Implicit((Object)(object)val)) { self.currentEnemy.gameObject = ((Component)val).gameObject; self.currentEnemy.bestHurtBox = val.mainHurtBox; self.enemyAttention = self.enemyAttentionDuration; self.targetRefreshTimer = 10f; self.BeginSkillDriver(self.EvaluateSkillDrivers()); } } } public class NemesisCard { public CharacterSpawnCard spawnCard; public int[] itemStacks; public string itemDropName; public bool shouldGrantRandomItems; public bool addEffect; public NemesisCard(CharacterSpawnCard spawnCard, int[] itemStacks, string itemDropName, bool shouldGrantRandomItems, bool addEffect = false) { this.spawnCard = spawnCard; this.itemStacks = itemStacks; this.itemDropName = itemDropName; this.shouldGrantRandomItems = shouldGrantRandomItems; this.addEffect = addEffect; } } public class NemesisItemBehavior : ItemBehavior { public delegate void OnNemStart(NemesisItemBehavior self, CharacterBody body); public delegate void OnNemDisable(NemesisItemBehavior self, CharacterBody body); public static GameObject effectPrefab; public static OnNemStart NemStartActions; public static OnNemDisable NemDisableActions; private NemesisCard nemesisCard = null; private bool addEffect = false; private BodyFlags origFlags = (BodyFlags)0; private GameObject effectInstance; private void Start() { //IL_001f: 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_0035: 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_0041: 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_004d: 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_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_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)base.body)) { return; } origFlags = base.body.bodyFlags; base.body.bodyFlags = (BodyFlags)(base.body.bodyFlags | 1 | 0x800 | 0x400 | 0x200); if (nemesisCard == null) { foreach (NemesisCard nemesisCard in NemesisInvasionManager.nemesisCards) { if (!Object.op_Implicit((Object)(object)nemesisCard.spawnCard) || !Object.op_Implicit((Object)(object)((SpawnCard)nemesisCard.spawnCard).prefab)) { continue; } CharacterMaster component = ((SpawnCard)nemesisCard.spawnCard).prefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component) || !Object.op_Implicit((Object)(object)component.bodyPrefab)) { continue; } CharacterBody component2 = component.bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2) && component2.bodyIndex == base.body.bodyIndex) { if (nemesisCard.addEffect) { addEffect = true; } break; } } } if (addEffect && Object.op_Implicit((Object)(object)effectPrefab)) { effectInstance = Object.Instantiate(effectPrefab, base.body.corePosition, Quaternion.identity, base.body.transform); effectInstance.transform.localPosition = Vector3.zero; effectInstance.transform.localScale = Vector3.one * 4f; } NemStartActions?.Invoke(this, base.body); } private void OnDisable() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)base.body)) { base.body.bodyFlags = origFlags; origFlags = (BodyFlags)0; NemDisableActions?.Invoke(this, base.body); } if (Object.op_Implicit((Object)(object)effectInstance)) { Object.Destroy((Object)(object)effectInstance); } } } } namespace Starstorm2Unofficial.Cores.NemesisInvasion.Components { public class NemesisInvasionManager : MonoBehaviour { [CompilerGenerated] private static class <>O { public static Action <0>__VoidInvasionManagerSetup; public static hook_OnEnter <1>__MissionCompleted_OnEnter; public static Action <2>__Stage_onStageStartGlobal; public static Action <3>__InitNemesisBlacklist; public static Func <4>__PickupIsNonBlacklistedItem; } [CompilerGenerated] private sealed class <>c__DisplayClass32_0 { public NemesisCard card; } [CompilerGenerated] private sealed class <>c__DisplayClass32_1 { public CombatSquad combatSquad; public DirectorSpawnRequest directorSpawnRequest; public <>c__DisplayClass32_0 CS$<>8__locals1; internal void b__1(SpawnResult result) { //IL_0001: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_034e: 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_0336: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) CharacterMaster component = result.spawnedInstance.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } combatSquad.AddMember(component); if (Object.op_Implicit((Object)(object)component.inventory)) { component.inventory.GiveItem(Items.TeleportWhenOob, 1); component.inventory.GiveItem(Items.AdaptiveArmor, 1); component.inventory.GiveItem(Items.UseAmbientLevel, 1); component.inventory.GiveItem(NemesisInvasionCore.NemesisMarkerItem, 1); if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.MonsterTeamGainsItems) && directorSpawnRequest.teamIndexOverride != (TeamIndex?)2) { component.inventory.AddItemsFrom(MonsterTeamGainsItemsArtifactManager.monsterTeamInventory); } if (CS$<>8__locals1.card.itemStacks != null) { for (int i = 0; i < CS$<>8__locals1.card.itemStacks.Length; i++) { if (CS$<>8__locals1.card.itemStacks[i] > 0) { component.inventory.GiveItem((ItemIndex)i, CS$<>8__locals1.card.itemStacks[i]); } } } if (CS$<>8__locals1.card.shouldGrantRandomItems) { List list = Run.instance.availableTier1DropList.Where(PickupIsNonBlacklistedItem).ToList(); List list2 = Run.instance.availableTier2DropList.Where(PickupIsNonBlacklistedItem).ToList(); List list3 = Run.instance.availableTier3DropList.Where(PickupIsNonBlacklistedItem).ToList(); List availableEquipmentDropList = Run.instance.availableEquipmentDropList; GrantItems(component.inventory, list, 3, 9); GrantItems(component.inventory, list2, 2, 4); GrantItems(component.inventory, list3, 1, 1); } } CharacterBody body = component.GetBody(); if (!Object.op_Implicit((Object)(object)body)) { return; } NemesisDropItemOnDeath nemesisDropItemOnDeath = ((Component)body).gameObject.AddComponent(); if (CS$<>8__locals1.card.itemDropName != string.Empty) { ItemIndex val = (ItemIndex)(-1); bool flag = CS$<>8__locals1.card.itemDropName == "SS2U_StirringSoul"; bool flag2 = CS$<>8__locals1.card.itemDropName == "StirringSoul"; if (flag || flag2) { ItemIndex val2 = ItemCatalog.FindItemIndex("SS2U_StirringSoul"); ItemIndex val3 = ItemCatalog.FindItemIndex("StirringSoul"); bool flag3 = Run.instance.availableItems.Contains(val2); bool flag4 = Run.instance.availableItems.Contains(val3); if (flag) { if (flag3) { val = val2; } else if (flag4) { val = val3; } } else if (flag2) { if (flag4) { val = val3; } else if (flag3) { val = val2; } } } else { val = ItemCatalog.FindItemIndex(CS$<>8__locals1.card.itemDropName); } if (Run.instance.availableItems.Contains(val)) { nemesisDropItemOnDeath.itemToDrop = val; } else { nemesisDropItemOnDeath.itemToDrop = (ItemIndex)(-1); } } else { nemesisDropItemOnDeath.itemToDrop = (ItemIndex)(-1); } } } [CompilerGenerated] private sealed class d__32 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public NemesisCard card; public Xoroshiro128Plus rng; public NemesisInvasionManager <>4__this; private <>c__DisplayClass32_0 <>8__1; private Transform 5__2; private MonsterSpawnDistance 5__3; private List 5__4; private CharacterBody 5__5; private <>c__DisplayClass32_1 <>8__6; private DirectorPlacementRule 5__7; private GameObject 5__8; private NemesisMusicController 5__9; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__32(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>8__1 = null; 5__2 = null; 5__4 = null; 5__5 = null; <>8__6 = null; 5__7 = null; 5__8 = null; 5__9 = null; <>1__state = -2; } private bool MoveNext() { //IL_00fb: 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_008c: Expected O, but got Unknown //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Expected O, but got Unknown //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Expected O, but got Unknown //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Expected O, but got Unknown //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>8__1 = new <>c__DisplayClass32_0(); <>8__1.card = card; if (!NetworkServer.active) { <>2__current = null; <>1__state = 1; return true; } goto IL_007c; case 1: <>1__state = -1; goto IL_007c; case 2: <>1__state = -1; if (!<>4__this.playedEventStartChatMessage) { <>4__this.playedEventStartChatMessage = true; Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "SS2UNEMESIS_MODE_ACTIVE_WARNING" }); } <>2__current = (object)new WaitForSeconds(12f); <>1__state = 3; return true; case 3: <>1__state = -1; 5__2 = null; 5__3 = (MonsterSpawnDistance)2; if (Object.op_Implicit((Object)(object)TeleporterInteraction.instance)) { 5__2 = ((Component)TeleporterInteraction.instance).transform; 5__3 = (MonsterSpawnDistance)1; } else { 5__4 = CharacterBody.readOnlyInstancesList.Where((CharacterBody cb) => cb.isPlayerControlled && Object.op_Implicit((Object)(object)cb.teamComponent) && (int)cb.teamComponent.teamIndex == 1).ToList(); if (5__4.Count > 0) { 5__5 = 5__4.FirstOrDefault(); if (Object.op_Implicit((Object)(object)5__5)) { 5__2 = 5__5.transform; } 5__5 = null; } 5__4 = null; } if (Object.op_Implicit((Object)(object)5__2) && Object.op_Implicit((Object)(object)Run.instance)) { <>8__6 = new <>c__DisplayClass32_1(); <>8__6.CS$<>8__locals1 = <>8__1; 5__7 = new DirectorPlacementRule { spawnOnTarget = 5__2, placementMode = (PlacementMode)3 }; <>8__6.directorSpawnRequest = new DirectorSpawnRequest((SpawnCard)(object)<>8__6.CS$<>8__locals1.card.spawnCard, 5__7, rng); <>8__6.directorSpawnRequest.teamIndexOverride = (TeamIndex)(useVoidTeam ? 4 : 2); <>8__6.directorSpawnRequest.ignoreTeamMemberLimit = true; <>8__6.combatSquad = Object.Instantiate(LegacyResourcesAPI.Load("Prefabs/NetworkedObjects/Encounters/ShadowCloneEncounter")).GetComponent(); <>8__6.directorSpawnRequest.onSpawnedServer = (Action)Delegate.Combine(<>8__6.directorSpawnRequest.onSpawnedServer, (Action)delegate(SpawnResult result) { //IL_0001: 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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_03b0: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_0373: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_02f9: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_03a3: Unknown result type (might be due to invalid IL or missing references) //IL_0395: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_034c: Unknown result type (might be due to invalid IL or missing references) //IL_034e: 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_0336: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) CharacterMaster component = result.spawnedInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { <>8__6.combatSquad.AddMember(component); if (Object.op_Implicit((Object)(object)component.inventory)) { component.inventory.GiveItem(Items.TeleportWhenOob, 1); component.inventory.GiveItem(Items.AdaptiveArmor, 1); component.inventory.GiveItem(Items.UseAmbientLevel, 1); component.inventory.GiveItem(NemesisInvasionCore.NemesisMarkerItem, 1); if (RunArtifactManager.instance.IsArtifactEnabled(Artifacts.MonsterTeamGainsItems) && <>8__6.directorSpawnRequest.teamIndexOverride != (TeamIndex?)2) { component.inventory.AddItemsFrom(MonsterTeamGainsItemsArtifactManager.monsterTeamInventory); } if (<>8__6.CS$<>8__locals1.card.itemStacks != null) { for (int i = 0; i < <>8__6.CS$<>8__locals1.card.itemStacks.Length; i++) { if (<>8__6.CS$<>8__locals1.card.itemStacks[i] > 0) { component.inventory.GiveItem((ItemIndex)i, <>8__6.CS$<>8__locals1.card.itemStacks[i]); } } } if (<>8__6.CS$<>8__locals1.card.shouldGrantRandomItems) { List list = Run.instance.availableTier1DropList.Where(PickupIsNonBlacklistedItem).ToList(); List list2 = Run.instance.availableTier2DropList.Where(PickupIsNonBlacklistedItem).ToList(); List list3 = Run.instance.availableTier3DropList.Where(PickupIsNonBlacklistedItem).ToList(); List availableEquipmentDropList = Run.instance.availableEquipmentDropList; GrantItems(component.inventory, list, 3, 9); GrantItems(component.inventory, list2, 2, 4); GrantItems(component.inventory, list3, 1, 1); } } CharacterBody body = component.GetBody(); if (Object.op_Implicit((Object)(object)body)) { NemesisDropItemOnDeath nemesisDropItemOnDeath = ((Component)body).gameObject.AddComponent(); if (<>8__6.CS$<>8__locals1.card.itemDropName != string.Empty) { ItemIndex val = (ItemIndex)(-1); bool flag = <>8__6.CS$<>8__locals1.card.itemDropName == "SS2U_StirringSoul"; bool flag2 = <>8__6.CS$<>8__locals1.card.itemDropName == "StirringSoul"; if (flag || flag2) { ItemIndex val2 = ItemCatalog.FindItemIndex("SS2U_StirringSoul"); ItemIndex val3 = ItemCatalog.FindItemIndex("StirringSoul"); bool flag3 = Run.instance.availableItems.Contains(val2); bool flag4 = Run.instance.availableItems.Contains(val3); if (flag) { if (flag3) { val = val2; } else if (flag4) { val = val3; } } else if (flag2) { if (flag4) { val = val3; } else if (flag3) { val = val2; } } } else { val = ItemCatalog.FindItemIndex(<>8__6.CS$<>8__locals1.card.itemDropName); } if (Run.instance.availableItems.Contains(val)) { nemesisDropItemOnDeath.itemToDrop = val; } else { nemesisDropItemOnDeath.itemToDrop = (ItemIndex)(-1); } } else { nemesisDropItemOnDeath.itemToDrop = (ItemIndex)(-1); } } } }); 5__8 = DirectorCore.instance.TrySpawnObject(<>8__6.directorSpawnRequest); if (Object.op_Implicit((Object)(object)<>4__this.nemesisMusic)) { 5__9 = <>4__this.nemesisMusic.GetComponent(); if (Object.op_Implicit((Object)(object)5__9)) { 5__9.StartMusicServer(); } <>8__6.combatSquad.onDefeatedServer += <>4__this.StopNemesisMusic; 5__9 = null; } NetworkServer.Spawn(((Component)<>8__6.combatSquad).gameObject); <>8__6 = null; 5__7 = null; 5__8 = null; } <>2__current = null; <>1__state = 4; return true; case 4: { <>1__state = -1; return false; } IL_007c: <>2__current = (object)new WaitForSeconds(3f); <>1__state = 2; return true; } } 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__31 : IEnumerator, IDisposable, IEnumerator { private int <>1__state; private object <>2__current; public NemesisInvasionManager <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__31(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Expected O, but got Unknown //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_0095: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = (object)new WaitForSeconds(3f); <>1__state = 1; return true; case 1: <>1__state = -1; if (!NetworkServer.active) { <>2__current = null; <>1__state = 2; return true; } goto IL_0074; case 2: <>1__state = -1; goto IL_0074; case 3: { <>1__state = -1; return false; } IL_0074: <>4__this.playedEventEndChatMessage = true; Chat.SendBroadcastChat((ChatMessageBase)new SimpleChatMessage { baseToken = "SS2UNEMESIS_MODE_DEACTIVATED" }); <>2__current = null; <>1__state = 3; return true; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public GameObject nemesisMusic; public static PostProcessProfile voidPostProcess = Addressables.LoadAssetAsync((object)"RoR2/DLC1/Common/Void/ppSceneVoidStage.asset").WaitForCompletion(); public static List nemesisCards = new List(); public static NemesisInvasionManager instance; public static HashSet itemBlacklist = new HashSet(); public static HashSet itemWhitelist = new HashSet(); public static bool allowSpawnInBazaar = false; private static SceneDef bazaarSceneDef = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/bazaar.asset").WaitForCompletion(); private static SceneDef arenaSceneDef = Addressables.LoadAssetAsync((object)"RoR2/Base/arena/arena.asset").WaitForCompletion(); public static bool requireFullVoid = true; private bool playedEventStartChatMessage = false; private bool playedEventEndChatMessage = false; private List remainingCards; public bool voidClearedSuccessfully; public static NemesisCard currentCard; private int cardSpawnCount; public static bool useVoidTeam = false; public static bool useAIBlacklist = true; public static bool useMithrixBlacklist = true; public static bool useEngiTurretBlacklist = true; public static bool useHealingBlacklist = true; public static bool forceRemoveBlacklistedItems = true; public static string nemesisItemBlacklistString; public static void Initialize() { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown Run.onRunStartGlobal += VoidInvasionManagerSetup; object obj = <>O.<1>__MissionCompleted_OnEnter; if (obj == null) { hook_OnEnter val = MissionCompleted_OnEnter; <>O.<1>__MissionCompleted_OnEnter = val; obj = (object)val; } MissionCompleted.OnEnter += (hook_OnEnter)obj; Stage.onStageStartGlobal += Stage_onStageStartGlobal; RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, new Action(InitNemesisBlacklist)); } private static void VoidInvasionManagerSetup(Run run) { if ((Object)(object)instance != (Object)null) { Object.Destroy((Object)(object)instance); } instance = ((MonoBehaviour)(object)run).AddComponent(); } private static void InitNemesisBlacklist() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) nemesisItemBlacklistString = new string((from c in nemesisItemBlacklistString.ToCharArray() where !char.IsWhiteSpace(c) select c).ToArray()); string[] array = nemesisItemBlacklistString.Split(new char[1] { ',' }); string[] array2 = array; foreach (string itemName in array2) { BlacklistItem(itemName); } itemWhitelist.Add(Items.UseAmbientLevel.itemIndex); itemWhitelist.Add(Items.TeleportWhenOob.itemIndex); itemWhitelist.Add(Items.AdaptiveArmor.itemIndex); itemWhitelist.Add(NemesisInvasionCore.NemesisMarkerItem.itemIndex); } private static void Stage_onStageStartGlobal(Stage obj) { if (!Object.op_Implicit((Object)(object)instance)) { return; } SceneDef sceneDefForCurrentScene = SceneCatalog.GetSceneDefForCurrentScene(); if (Object.op_Implicit((Object)(object)sceneDefForCurrentScene)) { if (!sceneDefForCurrentScene.isFinalStage && (Object)(object)sceneDefForCurrentScene != (Object)(object)arenaSceneDef && instance.voidClearedSuccessfully) { instance.SpawnNemesis(); } if (!requireFullVoid && (Object)(object)sceneDefForCurrentScene == (Object)(object)arenaSceneDef) { instance.voidClearedSuccessfully = true; } } } public static void BlacklistItem(string itemName) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Invalid comparison between Unknown and I4 //IL_0018: Unknown result type (might be due to invalid IL or missing references) ItemIndex val = ItemCatalog.FindItemIndex(itemName); if ((int)val != -1) { itemBlacklist.Add(val); } } private static void MissionCompleted_OnEnter(orig_OnEnter orig, MissionCompleted self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)instance)) { instance.voidClearedSuccessfully = true; } } private void Awake() { voidClearedSuccessfully = false; remainingCards = new List(nemesisCards); cardSpawnCount = 0; } public void SpawnNemesis() { //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_00d0: 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_0129: Expected O, but got Unknown if (NetworkServer.active && Object.op_Implicit((Object)(object)nemesisMusic)) { Object.Destroy((Object)(object)nemesisMusic); } if (Object.op_Implicit((Object)(object)Run.instance) && cardSpawnCount < nemesisCards.Count) { SceneDef sceneDefForCurrentScene = SceneCatalog.GetSceneDefForCurrentScene(); if ((Object)(object)sceneDefForCurrentScene == (Object)(object)bazaarSceneDef && !allowSpawnInBazaar) { return; } cardSpawnCount++; if (NetworkServer.active) { nemesisMusic = Object.Instantiate(NemesisInvasionCore.NemesisMusicPrefab); NetworkServer.Spawn(nemesisMusic); if (remainingCards.Count > 0) { int index = new Xoroshiro128Plus(Run.instance.spawnRng).RangeInt(0, remainingCards.Count); NemesisCard nemesisCard = remainingCards[index]; remainingCards.Remove(nemesisCard); ((MonoBehaviour)this).StartCoroutine(SpawnNemesisServer(nemesisCard, new Xoroshiro128Plus(Run.instance.seed + (ulong)Run.instance.stageClearCount))); } } Scene activeScene = SceneManager.GetActiveScene(); bool flag = true; ApplyVoidFieldsVisuals(((Scene)(ref activeScene)).name); } else if (NetworkServer.active && !playedEventEndChatMessage) { ((MonoBehaviour)this).StartCoroutine(VoidEventEndChat()); } } [IteratorStateMachine(typeof(d__31))] private IEnumerator VoidEventEndChat() { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__31(0) { <>4__this = this }; } [IteratorStateMachine(typeof(d__32))] private IEnumerator SpawnNemesisServer(NemesisCard card, Xoroshiro128Plus rng) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__32(0) { <>4__this = this, card = card, rng = rng }; } private void StopNemesisMusic() { if (Object.op_Implicit((Object)(object)nemesisMusic)) { NemesisMusicController component = nemesisMusic.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.StopMusicServer(); } } } private static void GrantItems(Inventory inventory, List list, int types, int stackSize) { //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_0019: 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->IL002d: Incompatible stack types: O vs I4 //IL_0027->IL002d: Incompatible stack types: I4 vs O //IL_0027->IL002d: Incompatible stack types: O vs I4 for (int i = 0; i < types; i++) { PickupIndex val = list[Random.Range(0, list.Count)]; PickupDef pickupDef = PickupCatalog.GetPickupDef(val); object obj = inventory; int num; if (pickupDef == null) { num = -1; obj = num; num = (int)obj; } else { obj = pickupDef.itemIndex; num = (int)obj; } ((Inventory)num).GiveItem((ItemIndex)obj, stackSize); } } private static bool PickupIsNonBlacklistedItem(PickupIndex pickupIndex) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) PickupDef pickupDef = PickupCatalog.GetPickupDef(pickupIndex); if (pickupDef == null || itemBlacklist.Contains(pickupDef.itemIndex)) { return false; } ItemDef itemDef = ItemCatalog.GetItemDef(pickupDef.itemIndex); return !((Object)(object)itemDef == (Object)null) && (!useAIBlacklist || itemDef.DoesNotContainTag((ItemTag)4)) && (!useMithrixBlacklist || itemDef.DoesNotContainTag((ItemTag)11)) && (!useEngiTurretBlacklist || itemDef.DoesNotContainTag((ItemTag)13)) && (!useHealingBlacklist || itemDef.DoesNotContainTag((ItemTag)2)) && itemDef.DoesNotContainTag((ItemTag)7) && itemDef.DoesNotContainTag((ItemTag)17) && itemDef.DoesNotContainTag((ItemTag)19) && itemDef.DoesNotContainTag((ItemTag)10) && itemDef.DoesNotContainTag((ItemTag)14) && itemDef.DoesNotContainTag((ItemTag)20) && itemDef.DoesNotContainTag((ItemTag)2) && itemDef.DoesNotContainTag((ItemTag)13); } private void ApplyVoidFieldsVisuals(string sceneName) { PostProcessProfile profile = voidPostProcess; PostProcessVolume val = null; SceneInfo val2 = SceneInfo.instance; if (Object.op_Implicit((Object)(object)val2)) { val = ((Component)val2).GetComponent(); } if (!Object.op_Implicit((Object)(object)val)) { GameObject val3 = GameObject.Find("PP + Amb"); if (!Object.op_Implicit((Object)(object)val3)) { val3 = GameObject.Find("PP, Global"); } if (!Object.op_Implicit((Object)(object)val3)) { val3 = GameObject.Find("GlobalPostProcessVolume, Base"); } val = ((!Object.op_Implicit((Object)(object)val3)) ? null : val3.GetComponent()); } if (Object.op_Implicit((Object)(object)val)) { if (sceneName == "moon" || sceneName == "moon2") { val = ((MonoBehaviour)(object)val2).AddComponent(); ((Behaviour)val).enabled = true; val.isGlobal = true; val.priority = 9999f; } val.profile = profile; val.weight = 0.85f; } else { LogCore.LogWarning("Could not find a suitable post-process volume to modify - skipping void visuals", 435, "ApplyVoidFieldsVisuals"); } } } } namespace Starstorm2Unofficial.Cores.NemesisInvasion.Components.Body { public class NemesisDropItemOnDeath : MonoBehaviour { public delegate void NemesisKilledDelegate(CharacterBody body); private CharacterBody characterBody; private HealthComponent healthComponent; public ItemIndex itemToDrop = (ItemIndex)(-1); private bool droppedItem = false; public static NemesisKilledDelegate onNemesisKilledServer; private static PickupDropTable Tier3DropTable = Addressables.LoadAssetAsync((object)"RoR2/Base/GoldChest/dtGoldChest.asset").WaitForCompletion(); public void Awake() { healthComponent = ((Component)this).GetComponent(); characterBody = ((Component)this).GetComponent(); } public void FixedUpdate() { if (NetworkServer.active && !droppedItem && Object.op_Implicit((Object)(object)healthComponent) && !healthComponent.alive && Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.master) && healthComponent.body.master.IsDeadAndOutOfLivesServer()) { onNemesisKilledServer?.Invoke(characterBody); DropItem(); } } private void DropItem() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Invalid comparison between Unknown and I4 //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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0034: 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_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0093: 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_00a9: Unknown result type (might be due to invalid IL or missing references) if (droppedItem) { return; } droppedItem = true; PickupIndex none = PickupIndex.none; if ((int)itemToDrop != -1) { none = PickupCatalog.FindPickupIndex(itemToDrop); if (none != PickupIndex.none) { PickupDropletController.CreatePickupDroplet(none, ((Component)this).transform.position, Vector3.up * 20f); } Object.Destroy((Object)(object)this); } else { UniquePickup val = Tier3DropTable.GeneratePickup(Run.instance.treasureRng); bool flag = true; PickupDropletController.CreatePickupDroplet(val, ((Component)this).transform.position, Vector3.up * 20f); Object.Destroy((Object)(object)this); } } } } namespace Starstorm2Unofficial.Components { public class NemesisMusicController : NetworkBehaviour { public string soundName = "Play_SS2U_NemesisTheme"; private bool isPlaying = false; private uint playID; private static int kRpcRpcStartMusic; private static int kRpcRpcStopMusic; public void StartMusicServer() { if (NetworkServer.active) { CallRpcStartMusic(); } } public void StopMusicServer() { if (NetworkServer.active) { CallRpcStopMusic(); } } [ClientRpc] private void RpcStartMusic() { StartMusic(); } [ClientRpc] private void RpcStopMusic() { StopMusic(); } private void StartMusic() { StopMusic(); isPlaying = true; Music.musicSources++; if (ModCompat.SS2OCompat.pluginLoaded && soundName == "Play_SS2U_NemesisTheme") { soundName = "Play_SS2_Music_System"; } playID = Util.PlaySound(soundName, ((Component)this).gameObject); } private void StopMusic() { if (isPlaying) { isPlaying = false; Music.musicSources--; AkSoundEngine.StopPlayingID(playID); } } private void OnDestroy() { StopMusic(); } private void UNetVersion() { } protected static void InvokeRpcRpcStartMusic(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcStartMusic called on server."); } else { ((NemesisMusicController)(object)obj).RpcStartMusic(); } } protected static void InvokeRpcRpcStopMusic(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcStopMusic called on server."); } else { ((NemesisMusicController)(object)obj).RpcStopMusic(); } } public void CallRpcStartMusic() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcStartMusic called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcStartMusic); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcStartMusic"); } public void CallRpcStopMusic() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcStopMusic called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcStopMusic); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcStopMusic"); } static NemesisMusicController() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown kRpcRpcStartMusic = 255992524; NetworkBehaviour.RegisterRpcDelegate(typeof(NemesisMusicController), kRpcRpcStartMusic, new CmdDelegate(InvokeRpcRpcStartMusic)); kRpcRpcStopMusic = -1790604742; NetworkBehaviour.RegisterRpcDelegate(typeof(NemesisMusicController), kRpcRpcStopMusic, new CmdDelegate(InvokeRpcRpcStopMusic)); NetworkCRC.RegisterBehaviour("NemesisMusicController", 0); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class MenuSound : MonoBehaviour { public string soundString; private uint playID; private void OnEnable() { if (soundString != "") { PlaySound(); } } private void PlaySound() { playID = Util.PlaySound(soundString, ((Component)this).gameObject); } private void OnDestroy() { if (playID != 0) { AkSoundEngine.StopPlayingID(playID); } } } internal class StormSoundComponent : MonoBehaviour { private uint playID; private void Awake() { //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) string text = "SS2U_RainAmbience"; Scene activeScene = SceneManager.GetActiveScene(); string name = ((Scene)(ref activeScene)).name; if (name == "frozenwall" || name == "goolake" || name == "dampcavesimple") { text = "SS2U_WindAmbience"; } playID = Util.PlaySound(text, ((Component)this).gameObject); } private void OnDisable() { AkSoundEngine.StopPlayingID(playID); } private void OnDestroy() { AkSoundEngine.StopPlayingID(playID); } } } namespace Starstorm2Unofficial.Components.Projectiles { public class ShootableProjectileComponent : MonoBehaviour { [CompilerGenerated] private static class <>O { public static hook_TakeDamageProcess <0>__ShootableProjectileHook; } public ModdedDamageType targetDamageType; private bool hasFired = false; private void OnShootActionsInternal(DamageInfo damageInfo) { if (!hasFired) { hasFired = true; OnShootActions(damageInfo); } } public virtual void OnShootActions(DamageInfo damageInfo) { } private void Start() { if (NetworkServer.active) { TeamComponent component = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.teamIndex = (TeamIndex)(-1); } } } internal static void AddHooks() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown object obj = <>O.<0>__ShootableProjectileHook; if (obj == null) { hook_TakeDamageProcess val = ShootableProjectileHook; <>O.<0>__ShootableProjectileHook = val; obj = (object)val; } HealthComponent.TakeDamageProcess += (hook_TakeDamageProcess)obj; } private static void ShootableProjectileHook(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_002a: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { ShootableProjectileComponent component = ((Component)self).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { damageInfo.procCoefficient = 0f; if (DamageAPI.HasModdedDamageType(damageInfo, component.targetDamageType)) { component.OnShootActionsInternal(damageInfo); } else { damageInfo.rejected = true; } } } orig.Invoke(self, damageInfo); } } }