using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using EntityStates; using EntityStates.BeetleGuardMonster; using EntityStates.BrotherMonster; using EntityStates.Commando; using EntityStates.Huntress; using EntityStates.ImpBossMonster; using EntityStates.Merc; using HG; using JetBrains.Annotations; using KinematicCharacterController; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.ContentManagement; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Dragonyck")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+03e3a59cc62d2beb46a5eb264ba62ba6a6e0ba9d")] [assembly: AssemblyProduct("Spearman")] [assembly: AssemblyTitle("Spearman")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Spearman; public static class Achievements { [RegisterAchievement("SPEARMAN_SURVIVORUNLOCKABLE", "ACHIEVEMENT_SPEARMAN_SURVIVORUNLOCKABLE_UNLOCKABLE_ID", null, 5u, typeof(SurvivorChallengeServerAchievement))] internal class SurvivorChallenge : BaseAchievement { private class SurvivorChallengeServerAchievement : BaseServerAchievement { public override void OnInstall() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown ((BaseServerAchievement)this).OnInstall(); BarrelInteraction.OnInteractionBegin += new hook_OnInteractionBegin(BarrelInteraction_OnInteractionBegin); } private void BarrelInteraction_OnInteractionBegin(orig_OnInteractionBegin orig, BarrelInteraction self, Interactor activator) { orig.Invoke(self, activator); if (self.displayNameToken == "SPEARMAN_INTERACTABLE_NAME") { ((BaseServerAchievement)this).Grant(); } } public override void OnUninstall() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown ((BaseServerAchievement)this).OnUninstall(); BarrelInteraction.OnInteractionBegin -= new hook_OnInteractionBegin(BarrelInteraction_OnInteractionBegin); } } public override void OnInstall() { ((BaseAchievement)this).OnInstall(); ((BaseAchievement)this).SetServerTracked(true); } public override void OnUninstall() { ((BaseAchievement)this).OnUninstall(); } } [RegisterAchievement("SPEARMAN_MASTERYUNLOCKABLE", "ACHIEVEMENT_SPEARMAN_MASTERYUNLOCKABLE_UNLOCKABLE_ID", null, 5u, null)] public class MasteryUnlockable : BasePerSurvivorClearGameMonsoonAchievement { 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("SpearmanBody"); } } [RegisterAchievement("SPEARMAN_SECONDARYALTUNLOCKABLE", "ACHIEVEMENT_SPEARMAN_SECONDARYALTUNLOCKABLE_UNLOCKABLE_ID", null, 5u, null, serverTrackerType = typeof(SecondaryAltChallengeServerAchievement))] internal class SecondaryAltChallenge : BaseAchievement { private class SecondaryAltChallengeServerAchievement : BaseServerAchievement { public override void OnInstall() { ((BaseServerAchievement)this).OnInstall(); ProjectileKillTracker.onKill += ProjectileKillTracker_onKill; } private void ProjectileKillTracker_onKill(int killCount, CharacterMaster master) { if (killCount >= 10 && (Object)(object)master == (Object)(object)((BaseServerAchievement)this).networkUser.master) { ((BaseServerAchievement)this).Grant(); } } public override void OnUninstall() { ((BaseServerAchievement)this).OnUninstall(); ProjectileKillTracker.onKill -= ProjectileKillTracker_onKill; } } 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("SpearmanBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); ((BaseAchievement)this).SetServerTracked(true); } public override void OnBodyRequirementBroken() { ((BaseAchievement)this).SetServerTracked(false); ((BaseAchievement)this).OnBodyRequirementBroken(); } } internal static UnlockableDef survivorUnlock; internal static UnlockableDef masteryUnlock; internal static UnlockableDef secondaryAltUnlock; public static void RegisterUnlockables() { survivorUnlock = NewUnlockable("SURVIVORUNLOCKABLE", Assets.MainAssetBundle.LoadAsset("portrait"), "A Planet of Agony", "Retrieve the weapon embedded in the skull."); masteryUnlock = NewUnlockable("MASTERYUNLOCKABLE", Assets.masterySkinIcon, "Spearman: Mastery", "As Spearman, beat the game or obliterate on Monsoon."); secondaryAltUnlock = NewUnlockable("SECONDARYALTUNLOCKABLE", Assets.MainAssetBundle.LoadAsset("M2 ability icon"), "Spearman: To Know Strength", "As Spearman, kill 10 enemies in one cast of Warriors Spear."); } private static UnlockableDef NewUnlockable(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement { string text = "ACHIEVEMENT_SPEARMAN_"; UnlockableDef val = ScriptableObject.CreateInstance(); string langName = text + AchievementIdentifier + "_NAME"; string langDesc = text + AchievementIdentifier + "_DESCRIPTION"; LanguageAPI.Add(langName, Title); LanguageAPI.Add(langDesc, Description); Func func = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString(langName), Language.GetString(langDesc) }); Type typeFromHandle = typeof(T); val.cachedName = text + AchievementIdentifier + "_UNLOCKABLE_ID"; val.getHowToUnlockString = func; val.getUnlockedString = func; val.achievementIcon = Icon; val.sortScore = 200; val.hidden = false; ContentAddition.AddUnlockableDef(val); return val; } } internal class Assets { public static AssetBundle MainAssetBundle; public static Sprite masterySkinIcon; public static void PopulateAssets() { //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Spearman.spearmanassets"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } masterySkinIcon = LoadoutAPI.CreateSkinIcon(new Color(0.52549f, 0.01569f, 0.01569f), new Color(0.4549f, 0.4549f, 0.43137f), Color.white, new Color(0.21569f, 0.21569f, 0.21569f)); using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Spearman.Spearman.bnk"); byte[] array = new byte[stream2.Length]; stream2.Read(array, 0, array.Length); SoundBanks.Add(array); } } internal class ProjectileKillTracker : MonoBehaviour { private int killCount; internal static event Action onKill; private void OnEnable() { GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal; } private void OnDisable() { GlobalEventManager.onCharacterDeathGlobal -= GlobalEventManager_onCharacterDeathGlobal; } private void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport) { if (Object.op_Implicit((Object)(object)damageReport.damageInfo.inflictor) && (Object)(object)damageReport.damageInfo.inflictor == (Object)(object)((Component)this).gameObject && Object.op_Implicit((Object)(object)damageReport.attackerMaster)) { killCount++; ProjectileKillTracker.onKill?.Invoke(killCount, damageReport.attackerMaster); } } } internal class SpearmanTracker : HuntressTracker { private SphereSearch sphereSearch = new SphereSearch(); internal NetworkedBodyAttachment attachment; private GameObject indicatorObj; private TeamMask mask; private float stopwatch; private bool nearbyEntity; internal bool canExecute = true; private void Awake() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: 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_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) base.indicator = new Indicator(((Component)this).gameObject, Prefabs.spearmanIndicator); base.search.minDistanceFilter = 8f; base.search.maxDistanceFilter = 25f; base.search.maxAngleFilter = 35f; base.maxTrackingDistance = 60f; base.maxTrackingAngle = 15f; base.trackerUpdateFrequency = 10f; sphereSearch = new SphereSearch(); sphereSearch.origin = ((Component)this).transform.position; sphereSearch.radius = 7f; sphereSearch.mask = ((LayerIndex)(ref LayerIndex.entityPrecise)).mask; } internal bool NearbyEntity() { return nearbyEntity; } private void FixedUpdate() { //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_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_0119: Unknown result type (might be due to invalid IL or missing references) sphereSearch.origin = ((Component)this).transform.position; stopwatch += Time.fixedDeltaTime; if (!Object.op_Implicit((Object)(object)base.characterBody) || !Object.op_Implicit((Object)(object)indicatorObj)) { } if (stopwatch >= 0.1f) { stopwatch = 0f; if (Object.op_Implicit((Object)(object)base.teamComponent)) { if (sphereSearch.RefreshCandidates().FilterCandidatesByHurtBoxTeam(TeamMask.GetEnemyTeams(base.teamComponent.teamIndex)).OrderCandidatesByDistance() .FilterCandidatesByDistinctHurtBoxEntities() .GetHurtBoxes() .Length != 0) { if (!Object.op_Implicit((Object)(object)indicatorObj)) { indicatorObj = Object.Instantiate(Prefabs.meleeIndicator); base.characterBody.AddBuff(Prefabs.stiffAndOrSturdy); indicatorObj.transform.SetParent(((Component)this).gameObject.transform, false); indicatorObj.transform.localPosition = Vector3.zero; } nearbyEntity = true; } else { if (Object.op_Implicit((Object)(object)indicatorObj)) { Object.Destroy((Object)(object)indicatorObj); } nearbyEntity = false; } } } if (Object.op_Implicit((Object)(object)base.trackingTarget) && Object.op_Implicit((Object)(object)base.trackingTarget.healthComponent) && !base.trackingTarget.healthComponent.alive) { base.trackingTarget = null; } ((HuntressTracker)this).FixedUpdate(); } } internal class SpearmanCrosshairController : MonoBehaviour { internal static int State; private Color Disabled = Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)10)); private Color Frozen = new Color(0.58431f, 0.80392f, 0.89804f); private Color Fire = Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)9)); private Color Electric = Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)13)); private Color Bleed = DamageColor.FindColor((DamageColorIndex)2); private Color Poison = DamageColor.FindColor((DamageColorIndex)4); internal static Image crosshairStack1; internal static Image crosshairStack2; internal static Image crosshairStack3; internal static Image crosshairStack4; internal static Image crosshairStack5; private SpearmanBehaviour behaviour; private bool isDisabled = false; public HudElement hudElement { get; private set; } private void Awake() { hudElement = ((Component)this).GetComponent(); crosshairStack1 = ((Component)((Component)this).gameObject.transform.Find("CrosshairStack1")).GetComponent(); crosshairStack2 = ((Component)((Component)this).gameObject.transform.Find("CrosshairStack2")).GetComponent(); crosshairStack3 = ((Component)((Component)this).gameObject.transform.Find("CrosshairStack3")).GetComponent(); crosshairStack4 = ((Component)((Component)this).gameObject.transform.Find("CrosshairStack4")).GetComponent(); crosshairStack5 = ((Component)((Component)this).gameObject.transform.Find("CrosshairStack5")).GetComponent(); } private void RectOffset(int index) { //IL_00b0: 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_00d2: 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_00f4: 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_012c: 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_014e: 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_0186: 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_01a8: 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_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_01f1: 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_0215: 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_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) Vector2 anchorMax = default(Vector2); ((Vector2)(ref anchorMax))..ctor(0.5f, 0.5f); Vector2 anchorMax2 = default(Vector2); ((Vector2)(ref anchorMax2))..ctor(0.5f, 0.6f); if (Object.op_Implicit((Object)(object)((Graphic)crosshairStack1).rectTransform) && Object.op_Implicit((Object)(object)((Graphic)crosshairStack2).rectTransform) && Object.op_Implicit((Object)(object)((Graphic)crosshairStack3).rectTransform) && Object.op_Implicit((Object)(object)((Graphic)crosshairStack4).rectTransform) && Object.op_Implicit((Object)(object)((Graphic)crosshairStack5).rectTransform)) { switch (index) { case 0: ((Graphic)crosshairStack1).rectTransform.anchorMax = anchorMax2; ((Graphic)crosshairStack2).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack3).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack4).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack5).rectTransform.anchorMax = anchorMax; break; case 1: ((Graphic)crosshairStack1).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack2).rectTransform.anchorMax = anchorMax2; ((Graphic)crosshairStack3).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack4).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack5).rectTransform.anchorMax = anchorMax; break; case 2: ((Graphic)crosshairStack1).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack2).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack3).rectTransform.anchorMax = anchorMax2; ((Graphic)crosshairStack4).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack5).rectTransform.anchorMax = anchorMax; break; case 3: ((Graphic)crosshairStack1).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack2).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack3).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack4).rectTransform.anchorMax = anchorMax2; ((Graphic)crosshairStack5).rectTransform.anchorMax = anchorMax; break; case 4: ((Graphic)crosshairStack1).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack2).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack3).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack4).rectTransform.anchorMax = anchorMax; ((Graphic)crosshairStack5).rectTransform.anchorMax = anchorMax2; break; } } } private void UpdateDots() { //IL_007f: 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_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_00d9: 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_00fb: 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_011d: 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_0144: 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_0166: 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_018d: 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_01af: 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_01d1: 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_01f5: 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_0217: 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) if (Object.op_Implicit((Object)(object)crosshairStack1) && Object.op_Implicit((Object)(object)crosshairStack2) && Object.op_Implicit((Object)(object)crosshairStack3) && Object.op_Implicit((Object)(object)crosshairStack4) && Object.op_Implicit((Object)(object)crosshairStack5)) { RectOffset(State); switch (State) { case 0: ((Graphic)crosshairStack1).color = Frozen; ((Graphic)crosshairStack2).color = Fire; ((Graphic)crosshairStack3).color = Electric; ((Graphic)crosshairStack4).color = Bleed; ((Graphic)crosshairStack5).color = Poison; break; case 1: ((Graphic)crosshairStack1).color = Disabled; ((Graphic)crosshairStack2).color = Fire; ((Graphic)crosshairStack3).color = Electric; ((Graphic)crosshairStack4).color = Bleed; ((Graphic)crosshairStack5).color = Poison; break; case 2: ((Graphic)crosshairStack1).color = Disabled; ((Graphic)crosshairStack2).color = Disabled; ((Graphic)crosshairStack3).color = Electric; ((Graphic)crosshairStack4).color = Bleed; ((Graphic)crosshairStack5).color = Poison; break; case 3: ((Graphic)crosshairStack1).color = Disabled; ((Graphic)crosshairStack2).color = Disabled; ((Graphic)crosshairStack3).color = Disabled; ((Graphic)crosshairStack4).color = Bleed; ((Graphic)crosshairStack5).color = Poison; break; case 4: ((Graphic)crosshairStack1).color = Disabled; ((Graphic)crosshairStack2).color = Disabled; ((Graphic)crosshairStack3).color = Disabled; ((Graphic)crosshairStack4).color = Disabled; ((Graphic)crosshairStack5).color = Poison; break; } } } private void Update() { if (Object.op_Implicit((Object)(object)((Component)crosshairStack1).gameObject) && Object.op_Implicit((Object)(object)((Component)crosshairStack2).gameObject) && Object.op_Implicit((Object)(object)((Component)crosshairStack3).gameObject) && Object.op_Implicit((Object)(object)((Component)crosshairStack4).gameObject) && Object.op_Implicit((Object)(object)((Component)crosshairStack5).gameObject) && Object.op_Implicit((Object)(object)hudElement) && Object.op_Implicit((Object)(object)hudElement.targetCharacterBody) && Object.op_Implicit((Object)(object)hudElement.targetCharacterBody.skillLocator) && Object.op_Implicit((Object)(object)hudElement.targetCharacterBody.skillLocator.secondary) && Object.op_Implicit((Object)(object)hudElement.targetCharacterBody.skillLocator.secondary.skillDef)) { if (hudElement.targetCharacterBody.skillLocator.secondary.skillDef.skillName == "SPEARMAN_ALTM2") { ((Component)crosshairStack1).gameObject.SetActive(false); ((Component)crosshairStack2).gameObject.SetActive(false); ((Component)crosshairStack3).gameObject.SetActive(false); ((Component)crosshairStack4).gameObject.SetActive(false); ((Component)crosshairStack5).gameObject.SetActive(false); } else { ((Component)crosshairStack1).gameObject.SetActive(true); ((Component)crosshairStack2).gameObject.SetActive(true); ((Component)crosshairStack3).gameObject.SetActive(true); ((Component)crosshairStack4).gameObject.SetActive(true); ((Component)crosshairStack5).gameObject.SetActive(true); } } if (Object.op_Implicit((Object)(object)hudElement) && Object.op_Implicit((Object)(object)hudElement.targetBodyObject) && !Object.op_Implicit((Object)(object)behaviour)) { behaviour = ((Component)hudElement.targetCharacterBody).GetComponent(); UpdateDots(); } if (Object.op_Implicit((Object)(object)behaviour)) { State = behaviour.currentDebuff; UpdateDots(); } } } internal class SpearmanBehaviour : MonoBehaviour { private enum DebuffState { Frozen, Fire, Electric, Bleed, Poison } public float charge = 0f; private static DebuffState state; internal int currentDebuff => (int)state; internal DamageType GetDebuff() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_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_0042: 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_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_0051: Unknown result type (might be due to invalid IL or missing references) DamageType result = (DamageType)0; switch (currentDebuff) { case 0: result = (DamageType)288; break; case 1: result = (DamageType)160; break; case 2: result = (DamageType)64; break; case 3: result = (DamageType)1056; break; case 4: result = (DamageType)4128; break; } return result; } internal void SetNextState() { if (state != DebuffState.Poison) { state++; } else { state = DebuffState.Frozen; } } private void Awake() { } } internal class Hook { internal static void Hooks() { //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 ContentManager.onContentPacksAssigned += LateSetup; RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); Stage.onStageStartGlobal += Stage_onStageStartGlobal; } private static void Stage_onStageStartGlobal(Stage stage) { //IL_0054: 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_0070: Unknown result type (might be due to invalid IL or missing references) SceneDef sceneDef = stage.sceneDef; if (Object.op_Implicit((Object)(object)sceneDef) && sceneDef.baseSceneName == "goolake" && NetworkServer.active) { GameObject val = Object.Instantiate(Prefabs.spearmanInteractable); val.transform.localPosition = new Vector3(-31.6055f, -12.8f, 59f); val.transform.localScale = Vector3.one * 2f; NetworkServer.Spawn(val); } } private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Invalid comparison between Unknown and I4 //IL_01fa: 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_0111: Invalid comparison between Unknown and I4 //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Invalid comparison between Unknown and I4 //IL_00a6: 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_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Expected O, but got Unknown //IL_0285: 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_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02e3: 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_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_032e: 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_0194: 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_0178: 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_039b: 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) orig.Invoke(self, damageInfo); if (!Object.op_Implicit((Object)(object)damageInfo.attacker)) { return; } CharacterBody component = damageInfo.attacker.GetComponent(); if (((Object)damageInfo.attacker).name.Contains("Spearman") && NetworkServer.active) { if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 64) { if (Object.op_Implicit((Object)(object)self.body)) { int buffCount = self.body.GetBuffCount(Prefabs.scarsDebuff); if (buffCount < 4) { self.body.AddTimedBuffAuthority(Prefabs.scarsDebuff.buffIndex, 12f); } } if (Object.op_Implicit((Object)(object)component) && NetworkServer.active) { int buffCount2 = component.GetBuffCount(Prefabs.scars); if (buffCount2 < 4) { component.AddTimedBuffAuthority(Prefabs.scars.buffIndex, 12f); } } } if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 262144 && Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body) && Object.op_Implicit((Object)(object)self.body.characterMotor)) { if (self.body.characterMotor.mass >= 300f) { self.TakeDamageForce(Vector3.up * 6000f, true, false); } else { self.TakeDamageForce(Vector3.up * 2000f, true, false); } } } if (DamageAPI.HasModdedDamageType(damageInfo, Prefabs.altSpearHit) && self.health <= self.fullHealth * 0.2f && NetworkServer.active) { self.Suicide(damageInfo.attacker, damageInfo.attacker, default(DamageTypeCombo)); } if (!DamageAPI.HasModdedDamageType(damageInfo, Prefabs.spearHit)) { return; } if (Object.op_Implicit((Object)(object)component) && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 64) { SetStateOnHurt component2 = ((Component)self).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { SetStateOnHurt.SetStunOnObject(((Component)self.body).gameObject, 1f); } float num = 0.8f; float damageValue = Util.OnHitProcDamage(damageInfo.damage, component.damage, num); LightningOrb val = new LightningOrb(); ((Orb)val).origin = damageInfo.position; val.damageValue = damageValue; val.isCrit = damageInfo.crit; val.bouncesRemaining = 3; val.teamIndex = component.teamComponent.teamIndex; val.attacker = damageInfo.attacker; val.bouncedObjects = new List { self }; val.procChainMask = damageInfo.procChainMask; ((ProcChainMask)(ref val.procChainMask)).AddProc((ProcType)3); val.procCoefficient = 0.2f; val.lightningType = (LightningType)8; val.damageColorIndex = (DamageColorIndex)10; val.range += 5f; HurtBox val2 = val.PickNextTarget(damageInfo.position); if (Object.op_Implicit((Object)(object)val2)) { ((Orb)val).target = val2; OrbManager.instance.AddOrb((Orb)(object)val); } } if (Object.op_Implicit((Object)(object)self.body)) { int buffCount3 = self.body.GetBuffCount(Prefabs.scarsDebuff); if (buffCount3 < 4) { self.body.AddTimedBuffAuthority(Prefabs.scarsDebuff.buffIndex, 12f); } } if (Object.op_Implicit((Object)(object)component) && NetworkServer.active) { int buffCount4 = component.GetBuffCount(Prefabs.scars); if (buffCount4 < 4) { component.AddTimedBuffAuthority(Prefabs.scars.buffIndex, 12f); } } } internal static void LateSetup(ReadOnlyArray obj) { ItemDisplays.SetIDRS(); } internal static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (sender.HasBuff(Prefabs.stiffAndOrSturdy)) { args.armorAdd += 30f; } if (sender.HasBuff(Prefabs.scarsDebuff)) { int buffCount = sender.GetBuffCount(Prefabs.scarsDebuff); args.moveSpeedReductionMultAdd += 0.2f * (float)buffCount; } if (sender.HasBuff(Prefabs.scars)) { int buffCount2 = sender.GetBuffCount(Prefabs.scars); args.damageMultAdd += 0.1f * (float)buffCount2; } } } internal class ItemDisplays { internal static ItemDisplayRuleSet itemDisplayRuleSet; internal static List itemDisplayRules; private static Dictionary itemDisplayPrefabs = new Dictionary(); internal static void PopulateDisplays() { PopulateFromBody("Commando"); PopulateFromBody("Croco"); PopulateFromBody("Mage"); } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet val = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName + "Body").GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = val.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)) { Object keyAsset = keyAssetRuleGroups[i].keyAsset; ItemDef val2 = (ItemDef)(object)((keyAsset is ItemDef) ? keyAsset : null); Object keyAsset2 = keyAssetRuleGroups[i].keyAsset; EquipmentDef val3 = (EquipmentDef)(object)((keyAsset2 is EquipmentDef) ? keyAsset2 : null); if ((Object)(object)val2 != (Object)null && !itemDisplayPrefabs.ContainsKey((Object)(object)val2)) { itemDisplayPrefabs.Add((Object)(object)val2, followerPrefab); } if ((Object)(object)val3 != (Object)null && !itemDisplayPrefabs.ContainsKey((Object)(object)val3)) { itemDisplayPrefabs.Add((Object)(object)val3, followerPrefab); } } } } } public static void RegisterDisplays() { itemDisplayRuleSet = ScriptableObject.CreateInstance(); ((Object)itemDisplayRuleSet).name = "RahkshiIDRS"; GameObject characterPrefab = MainPlugin.characterPrefab; GameObject gameObject = ((Component)characterPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component = gameObject.GetComponent(); component.itemDisplayRuleSet = itemDisplayRuleSet; } public static void SetIDRS() { //IL_0024: 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_004c: 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_0085: 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_00be: 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_00e6: 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_011f: 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_0158: 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_0180: 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_01b9: 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_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_023f: 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_0267: 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_02b4: 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_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_0301: 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_033a: 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_0373: 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_039b: 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_03d4: 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_040d: 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_0435: Unknown result type (might be due to invalid IL or missing references) //IL_045a: Unknown result type (might be due to invalid IL or missing references) //IL_046e: 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_04a7: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: 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_04f4: Unknown result type (might be due to invalid IL or missing references) //IL_0508: 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_0541: 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_0569: Unknown result type (might be due to invalid IL or missing references) //IL_058e: 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_05b6: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Unknown result type (might be due to invalid IL or missing references) //IL_0628: Unknown result type (might be due to invalid IL or missing references) //IL_063c: 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_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_069d: Unknown result type (might be due to invalid IL or missing references) //IL_06c2: Unknown result type (might be due to invalid IL or missing references) //IL_06d6: Unknown result type (might be due to invalid IL or missing references) //IL_06ea: Unknown result type (might be due to invalid IL or missing references) //IL_070f: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0770: Unknown result type (might be due to invalid IL or missing references) //IL_0784: 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_07bd: Unknown result type (might be due to invalid IL or missing references) //IL_07d1: 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_080a: Unknown result type (might be due to invalid IL or missing references) //IL_081e: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_086b: Unknown result type (might be due to invalid IL or missing references) //IL_0884: Unknown result type (might be due to invalid IL or missing references) //IL_0898: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08f9: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0932: Unknown result type (might be due to invalid IL or missing references) //IL_0946: 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_097f: 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_09b8: Unknown result type (might be due to invalid IL or missing references) //IL_09cc: Unknown result type (might be due to invalid IL or missing references) //IL_09e0: Unknown result type (might be due to invalid IL or missing references) //IL_0a05: Unknown result type (might be due to invalid IL or missing references) //IL_0a19: Unknown result type (might be due to invalid IL or missing references) //IL_0a2d: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_0a66: Unknown result type (might be due to invalid IL or missing references) //IL_0a7a: Unknown result type (might be due to invalid IL or missing references) //IL_0a9f: 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_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0aec: 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_0b39: Unknown result type (might be due to invalid IL or missing references) //IL_0b4d: Unknown result type (might be due to invalid IL or missing references) //IL_0b61: Unknown result type (might be due to invalid IL or missing references) //IL_0b86: Unknown result type (might be due to invalid IL or missing references) //IL_0b9a: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bd3: Unknown result type (might be due to invalid IL or missing references) //IL_0be7: Unknown result type (might be due to invalid IL or missing references) //IL_0bfb: Unknown result type (might be due to invalid IL or missing references) //IL_0c20: Unknown result type (might be due to invalid IL or missing references) //IL_0c34: 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_0c6d: Unknown result type (might be due to invalid IL or missing references) //IL_0c81: Unknown result type (might be due to invalid IL or missing references) //IL_0c95: 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_0cce: Unknown result type (might be due to invalid IL or missing references) //IL_0ce2: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) //IL_0d1b: Unknown result type (might be due to invalid IL or missing references) //IL_0d2f: 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_0d5c: Unknown result type (might be due to invalid IL or missing references) //IL_0d70: Unknown result type (might be due to invalid IL or missing references) //IL_0d95: 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_0dbd: 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_0e2f: Unknown result type (might be due to invalid IL or missing references) //IL_0e43: 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_0e7c: Unknown result type (might be due to invalid IL or missing references) //IL_0e90: Unknown result type (might be due to invalid IL or missing references) //IL_0ea4: Unknown result type (might be due to invalid IL or missing references) //IL_0ec9: Unknown result type (might be due to invalid IL or missing references) //IL_0edd: Unknown result type (might be due to invalid IL or missing references) //IL_0ef1: 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_0f2a: Unknown result type (might be due to invalid IL or missing references) //IL_0f3e: 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_0f77: Unknown result type (might be due to invalid IL or missing references) //IL_0f8b: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fc4: Unknown result type (might be due to invalid IL or missing references) //IL_0fd8: Unknown result type (might be due to invalid IL or missing references) //IL_0ffd: Unknown result type (might be due to invalid IL or missing references) //IL_1011: Unknown result type (might be due to invalid IL or missing references) //IL_1025: Unknown result type (might be due to invalid IL or missing references) //IL_104a: Unknown result type (might be due to invalid IL or missing references) //IL_105e: Unknown result type (might be due to invalid IL or missing references) //IL_1072: Unknown result type (might be due to invalid IL or missing references) //IL_1097: Unknown result type (might be due to invalid IL or missing references) //IL_10ab: Unknown result type (might be due to invalid IL or missing references) //IL_10bf: 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_10f8: Unknown result type (might be due to invalid IL or missing references) //IL_110c: Unknown result type (might be due to invalid IL or missing references) //IL_1131: Unknown result type (might be due to invalid IL or missing references) //IL_1145: Unknown result type (might be due to invalid IL or missing references) //IL_1159: Unknown result type (might be due to invalid IL or missing references) //IL_117e: Unknown result type (might be due to invalid IL or missing references) //IL_1192: Unknown result type (might be due to invalid IL or missing references) //IL_11a6: 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_1218: Unknown result type (might be due to invalid IL or missing references) //IL_122c: 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_1265: Unknown result type (might be due to invalid IL or missing references) //IL_1279: Unknown result type (might be due to invalid IL or missing references) //IL_128d: Unknown result type (might be due to invalid IL or missing references) //IL_12b2: Unknown result type (might be due to invalid IL or missing references) //IL_12c6: Unknown result type (might be due to invalid IL or missing references) //IL_12da: Unknown result type (might be due to invalid IL or missing references) //IL_12f3: Unknown result type (might be due to invalid IL or missing references) //IL_1307: 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_1340: Unknown result type (might be due to invalid IL or missing references) //IL_1354: Unknown result type (might be due to invalid IL or missing references) //IL_1368: Unknown result type (might be due to invalid IL or missing references) //IL_138d: Unknown result type (might be due to invalid IL or missing references) //IL_13a1: 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_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13ee: 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_1427: Unknown result type (might be due to invalid IL or missing references) //IL_143b: Unknown result type (might be due to invalid IL or missing references) //IL_144f: Unknown result type (might be due to invalid IL or missing references) //IL_1474: Unknown result type (might be due to invalid IL or missing references) //IL_1488: Unknown result type (might be due to invalid IL or missing references) //IL_149c: 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_14d5: Unknown result type (might be due to invalid IL or missing references) //IL_14e9: 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_1522: Unknown result type (might be due to invalid IL or missing references) //IL_1536: Unknown result type (might be due to invalid IL or missing references) //IL_155b: Unknown result type (might be due to invalid IL or missing references) //IL_156f: Unknown result type (might be due to invalid IL or missing references) //IL_1583: Unknown result type (might be due to invalid IL or missing references) //IL_15a8: Unknown result type (might be due to invalid IL or missing references) //IL_15bc: Unknown result type (might be due to invalid IL or missing references) //IL_15d0: Unknown result type (might be due to invalid IL or missing references) //IL_15f5: Unknown result type (might be due to invalid IL or missing references) //IL_1609: Unknown result type (might be due to invalid IL or missing references) //IL_161d: Unknown result type (might be due to invalid IL or missing references) //IL_1642: Unknown result type (might be due to invalid IL or missing references) //IL_1656: 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_1683: 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_16ab: Unknown result type (might be due to invalid IL or missing references) //IL_16d0: Unknown result type (might be due to invalid IL or missing references) //IL_16e4: Unknown result type (might be due to invalid IL or missing references) //IL_16f8: Unknown result type (might be due to invalid IL or missing references) //IL_171d: Unknown result type (might be due to invalid IL or missing references) //IL_1731: Unknown result type (might be due to invalid IL or missing references) //IL_1745: Unknown result type (might be due to invalid IL or missing references) //IL_176a: Unknown result type (might be due to invalid IL or missing references) //IL_177e: Unknown result type (might be due to invalid IL or missing references) //IL_1792: Unknown result type (might be due to invalid IL or missing references) //IL_17b7: Unknown result type (might be due to invalid IL or missing references) //IL_17cb: Unknown result type (might be due to invalid IL or missing references) //IL_17df: Unknown result type (might be due to invalid IL or missing references) //IL_1804: Unknown result type (might be due to invalid IL or missing references) //IL_1818: Unknown result type (might be due to invalid IL or missing references) //IL_182c: 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_1865: Unknown result type (might be due to invalid IL or missing references) //IL_1879: Unknown result type (might be due to invalid IL or missing references) //IL_189e: Unknown result type (might be due to invalid IL or missing references) //IL_18b2: Unknown result type (might be due to invalid IL or missing references) //IL_18c6: Unknown result type (might be due to invalid IL or missing references) //IL_18eb: Unknown result type (might be due to invalid IL or missing references) //IL_18ff: Unknown result type (might be due to invalid IL or missing references) //IL_1913: 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_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_19d2: Unknown result type (might be due to invalid IL or missing references) //IL_19e6: Unknown result type (might be due to invalid IL or missing references) //IL_19fa: Unknown result type (might be due to invalid IL or missing references) //IL_1a1f: Unknown result type (might be due to invalid IL or missing references) //IL_1a33: Unknown result type (might be due to invalid IL or missing references) //IL_1a47: Unknown result type (might be due to invalid IL or missing references) //IL_1a6c: 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_1a94: Unknown result type (might be due to invalid IL or missing references) //IL_1ab9: Unknown result type (might be due to invalid IL or missing references) //IL_1acd: Unknown result type (might be due to invalid IL or missing references) //IL_1ae1: Unknown result type (might be due to invalid IL or missing references) //IL_1b06: Unknown result type (might be due to invalid IL or missing references) //IL_1b1a: Unknown result type (might be due to invalid IL or missing references) //IL_1b2e: Unknown result type (might be due to invalid IL or missing references) //IL_1b53: Unknown result type (might be due to invalid IL or missing references) //IL_1b67: Unknown result type (might be due to invalid IL or missing references) //IL_1b7b: Unknown result type (might be due to invalid IL or missing references) //IL_1ba0: Unknown result type (might be due to invalid IL or missing references) //IL_1bb4: Unknown result type (might be due to invalid IL or missing references) //IL_1bc8: Unknown result type (might be due to invalid IL or missing references) //IL_1bed: Unknown result type (might be due to invalid IL or missing references) //IL_1c01: Unknown result type (might be due to invalid IL or missing references) //IL_1c15: Unknown result type (might be due to invalid IL or missing references) //IL_1c3a: Unknown result type (might be due to invalid IL or missing references) //IL_1c4e: Unknown result type (might be due to invalid IL or missing references) //IL_1c62: Unknown result type (might be due to invalid IL or missing references) //IL_1c87: Unknown result type (might be due to invalid IL or missing references) //IL_1c9b: Unknown result type (might be due to invalid IL or missing references) //IL_1caf: Unknown result type (might be due to invalid IL or missing references) //IL_1cd4: Unknown result type (might be due to invalid IL or missing references) //IL_1ce8: Unknown result type (might be due to invalid IL or missing references) //IL_1cfc: 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_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_1dbb: Unknown result type (might be due to invalid IL or missing references) //IL_1dcf: Unknown result type (might be due to invalid IL or missing references) //IL_1de3: 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_1e1c: Unknown result type (might be due to invalid IL or missing references) //IL_1e30: Unknown result type (might be due to invalid IL or missing references) //IL_1e55: 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_1e7d: Unknown result type (might be due to invalid IL or missing references) //IL_1ea2: Unknown result type (might be due to invalid IL or missing references) //IL_1eb6: Unknown result type (might be due to invalid IL or missing references) //IL_1eca: Unknown result type (might be due to invalid IL or missing references) //IL_1eef: 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_1f17: 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_1f50: Unknown result type (might be due to invalid IL or missing references) //IL_1f64: Unknown result type (might be due to invalid IL or missing references) //IL_1f89: 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_1fb1: Unknown result type (might be due to invalid IL or missing references) //IL_1fd6: Unknown result type (might be due to invalid IL or missing references) //IL_1fea: Unknown result type (might be due to invalid IL or missing references) //IL_1ffe: Unknown result type (might be due to invalid IL or missing references) //IL_2023: Unknown result type (might be due to invalid IL or missing references) //IL_2037: Unknown result type (might be due to invalid IL or missing references) //IL_204b: Unknown result type (might be due to invalid IL or missing references) //IL_2070: Unknown result type (might be due to invalid IL or missing references) //IL_2084: Unknown result type (might be due to invalid IL or missing references) //IL_2098: Unknown result type (might be due to invalid IL or missing references) //IL_20bd: Unknown result type (might be due to invalid IL or missing references) //IL_20d1: Unknown result type (might be due to invalid IL or missing references) //IL_20e5: 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_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_21a4: 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_21cc: Unknown result type (might be due to invalid IL or missing references) //IL_21f1: Unknown result type (might be due to invalid IL or missing references) //IL_2205: 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_223e: 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_2266: 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_229f: Unknown result type (might be due to invalid IL or missing references) //IL_22b3: Unknown result type (might be due to invalid IL or missing references) //IL_22d8: Unknown result type (might be due to invalid IL or missing references) //IL_22ec: Unknown result type (might be due to invalid IL or missing references) //IL_2300: Unknown result type (might be due to invalid IL or missing references) //IL_2325: Unknown result type (might be due to invalid IL or missing references) //IL_2339: Unknown result type (might be due to invalid IL or missing references) //IL_234d: Unknown result type (might be due to invalid IL or missing references) //IL_2372: Unknown result type (might be due to invalid IL or missing references) //IL_2386: Unknown result type (might be due to invalid IL or missing references) //IL_239a: Unknown result type (might be due to invalid IL or missing references) //IL_23bf: Unknown result type (might be due to invalid IL or missing references) //IL_23d3: Unknown result type (might be due to invalid IL or missing references) //IL_23e7: Unknown result type (might be due to invalid IL or missing references) //IL_240c: Unknown result type (might be due to invalid IL or missing references) //IL_2420: Unknown result type (might be due to invalid IL or missing references) //IL_2434: Unknown result type (might be due to invalid IL or missing references) //IL_2459: Unknown result type (might be due to invalid IL or missing references) //IL_246d: Unknown result type (might be due to invalid IL or missing references) //IL_2481: 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_24ba: Unknown result type (might be due to invalid IL or missing references) //IL_24ce: 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_2540: Unknown result type (might be due to invalid IL or missing references) //IL_2554: 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_258d: Unknown result type (might be due to invalid IL or missing references) //IL_25a1: Unknown result type (might be due to invalid IL or missing references) //IL_25b5: Unknown result type (might be due to invalid IL or missing references) //IL_25da: Unknown result type (might be due to invalid IL or missing references) //IL_25ee: 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_2627: 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_264f: 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_26c1: Unknown result type (might be due to invalid IL or missing references) //IL_26d5: Unknown result type (might be due to invalid IL or missing references) //IL_26e9: Unknown result type (might be due to invalid IL or missing references) //IL_2702: 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_272a: Unknown result type (might be due to invalid IL or missing references) //IL_274f: Unknown result type (might be due to invalid IL or missing references) //IL_2763: Unknown result type (might be due to invalid IL or missing references) //IL_2777: Unknown result type (might be due to invalid IL or missing references) //IL_279c: Unknown result type (might be due to invalid IL or missing references) //IL_27b0: Unknown result type (might be due to invalid IL or missing references) //IL_27c4: 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_27fd: Unknown result type (might be due to invalid IL or missing references) //IL_2811: Unknown result type (might be due to invalid IL or missing references) //IL_282a: Unknown result type (might be due to invalid IL or missing references) //IL_283e: Unknown result type (might be due to invalid IL or missing references) //IL_2852: Unknown result type (might be due to invalid IL or missing references) //IL_2868: Unknown result type (might be due to invalid IL or missing references) //IL_286d: 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_2897: Unknown result type (might be due to invalid IL or missing references) //IL_28ab: 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_28e4: Unknown result type (might be due to invalid IL or missing references) //IL_28f8: Unknown result type (might be due to invalid IL or missing references) //IL_290c: Unknown result type (might be due to invalid IL or missing references) //IL_2931: Unknown result type (might be due to invalid IL or missing references) //IL_2945: 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_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_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_2a18: Unknown result type (might be due to invalid IL or missing references) //IL_2a2c: Unknown result type (might be due to invalid IL or missing references) //IL_2a40: Unknown result type (might be due to invalid IL or missing references) //IL_2a65: 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_2a8d: Unknown result type (might be due to invalid IL or missing references) //IL_2ab2: Unknown result type (might be due to invalid IL or missing references) //IL_2ac6: Unknown result type (might be due to invalid IL or missing references) //IL_2ada: Unknown result type (might be due to invalid IL or missing references) //IL_2aff: Unknown result type (might be due to invalid IL or missing references) //IL_2b13: Unknown result type (might be due to invalid IL or missing references) //IL_2b27: Unknown result type (might be due to invalid IL or missing references) //IL_2b4c: Unknown result type (might be due to invalid IL or missing references) //IL_2b60: Unknown result type (might be due to invalid IL or missing references) //IL_2b74: Unknown result type (might be due to invalid IL or missing references) //IL_2b99: Unknown result type (might be due to invalid IL or missing references) //IL_2bad: Unknown result type (might be due to invalid IL or missing references) //IL_2bc1: Unknown result type (might be due to invalid IL or missing references) //IL_2be6: Unknown result type (might be due to invalid IL or missing references) //IL_2bfa: Unknown result type (might be due to invalid IL or missing references) //IL_2c0e: 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_2c80: Unknown result type (might be due to invalid IL or missing references) //IL_2c94: Unknown result type (might be due to invalid IL or missing references) //IL_2ca8: Unknown result type (might be due to invalid IL or missing references) //IL_2ccd: Unknown result type (might be due to invalid IL or missing references) //IL_2ce1: Unknown result type (might be due to invalid IL or missing references) //IL_2cf5: Unknown result type (might be due to invalid IL or missing references) //IL_2d1a: Unknown result type (might be due to invalid IL or missing references) //IL_2d2e: Unknown result type (might be due to invalid IL or missing references) //IL_2d42: Unknown result type (might be due to invalid IL or missing references) //IL_2d67: Unknown result type (might be due to invalid IL or missing references) //IL_2d7b: Unknown result type (might be due to invalid IL or missing references) //IL_2d8f: Unknown result type (might be due to invalid IL or missing references) //IL_2db4: Unknown result type (might be due to invalid IL or missing references) //IL_2dc8: 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_2e01: Unknown result type (might be due to invalid IL or missing references) //IL_2e15: Unknown result type (might be due to invalid IL or missing references) //IL_2e29: Unknown result type (might be due to invalid IL or missing references) //IL_2e4e: Unknown result type (might be due to invalid IL or missing references) //IL_2e62: Unknown result type (might be due to invalid IL or missing references) //IL_2e76: Unknown result type (might be due to invalid IL or missing references) //IL_2e9b: Unknown result type (might be due to invalid IL or missing references) //IL_2eaf: Unknown result type (might be due to invalid IL or missing references) //IL_2ec3: Unknown result type (might be due to invalid IL or missing references) //IL_2ee8: Unknown result type (might be due to invalid IL or missing references) //IL_2efc: Unknown result type (might be due to invalid IL or missing references) //IL_2f10: Unknown result type (might be due to invalid IL or missing references) //IL_2f35: Unknown result type (might be due to invalid IL or missing references) //IL_2f49: Unknown result type (might be due to invalid IL or missing references) //IL_2f5d: Unknown result type (might be due to invalid IL or missing references) //IL_2f82: Unknown result type (might be due to invalid IL or missing references) //IL_2f96: Unknown result type (might be due to invalid IL or missing references) //IL_2faa: 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_2fe3: Unknown result type (might be due to invalid IL or missing references) //IL_2ff7: 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_3069: Unknown result type (might be due to invalid IL or missing references) //IL_307d: Unknown result type (might be due to invalid IL or missing references) //IL_3091: Unknown result type (might be due to invalid IL or missing references) //IL_30b6: Unknown result type (might be due to invalid IL or missing references) //IL_30ca: Unknown result type (might be due to invalid IL or missing references) //IL_30de: Unknown result type (might be due to invalid IL or missing references) //IL_3103: Unknown result type (might be due to invalid IL or missing references) //IL_3117: Unknown result type (might be due to invalid IL or missing references) //IL_312b: Unknown result type (might be due to invalid IL or missing references) //IL_3150: Unknown result type (might be due to invalid IL or missing references) //IL_3164: Unknown result type (might be due to invalid IL or missing references) //IL_3178: Unknown result type (might be due to invalid IL or missing references) //IL_319d: Unknown result type (might be due to invalid IL or missing references) //IL_31b1: 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_31ea: Unknown result type (might be due to invalid IL or missing references) //IL_31fe: Unknown result type (might be due to invalid IL or missing references) //IL_3212: Unknown result type (might be due to invalid IL or missing references) //IL_3237: Unknown result type (might be due to invalid IL or missing references) //IL_324b: Unknown result type (might be due to invalid IL or missing references) //IL_325f: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules = new List(); NewIDRS((Object)(object)Items.AlienHead, "head", new Vector3(-0.00038f, 0.02072f, -0.00414f), new Vector3(277.4999f, 344.3911f, 13.30272f), new Vector3(0.11938f, 0.10401f, 0.10189f), (LimbFlags)0); NewIDRS((Object)(object)Items.ArmorPlate, "calf.r", new Vector3(-0.00157f, 0.00808f, 0.00177f), new Vector3(76.507f, 345.2339f, 172.2499f), new Vector3(-0.01471f, 0.01471f, 0.01901f), (LimbFlags)0); NewIDRS((Object)(object)Items.ArmorReductionOnHit, "weapon", new Vector3(0.00308f, 0.05671f, 0.00043f), new Vector3(272.8627f, 74.98762f, 105.9527f), new Vector3(0.008f, 0.008f, 0.008f), (LimbFlags)0); NewIDRS((Object)(object)Items.AttackSpeedOnCrit, "head", new Vector3(0f, 0.00992f, 0.00479f), new Vector3(356.072f, 1.0022f, 0.91393f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Items.AutoCastEquipment, "thigh.l", new Vector3(0.00466f, -0.00153f, -0.00022f), new Vector3(75.56981f, 354.8156f, 171.4184f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.Bandolier, "stomach", new Vector3(0.0025f, 0.01558f, -0.00106f), new Vector3(317.8422f, 272.1844f, 90.92211f), new Vector3(0.03351f, 0.03351f, 0.03351f), (LimbFlags)0); NewIDRS((Object)(object)Items.BarrierOnKill, "chest", new Vector3(-0.00681f, 0.00975f, 0.0111f), new Vector3(78.33911f, 150.0374f, 148.0561f), new Vector3(0.035f, 0.035f, 0.035f), (LimbFlags)0); NewIDRS((Object)(object)Items.BarrierOnOverHeal, "shoulder.l", new Vector3(0.00529f, 0.00762f, 0.00218f), new Vector3(81.40728f, 164.7327f, 254.6992f), new Vector3(0.00906f, 0.00906f, 0.00721f), (LimbFlags)0); NewIDRS((Object)(object)Items.Bear, "weapon", new Vector3(0.00302f, 0.06839f, -0.00076f), new Vector3(281.7106f, 255.4765f, 129.1645f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.BeetleGland, "pelvis", new Vector3(0.01039f, -0.00461f, 0.00096f), new Vector3(331.3594f, 80.04544f, 252.3253f), new Vector3(0.0045f, 0.0045f, 0.0045f), (LimbFlags)0); NewIDRS((Object)(object)Items.Behemoth, "chest", new Vector3(-0.00488f, 0.01045f, -0.01006f), new Vector3(321.5607f, 83.83925f, 4.09787f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.BleedOnHit, "weapon", new Vector3(0.00362f, 0.06439f, 0.00039f), new Vector3(272.4006f, 83.33585f, 174.4805f), new Vector3(0.03908f, 0.03908f, 0.05108f), (LimbFlags)0); NewIDRS((Object)(object)Items.BleedOnHitAndExplode, "thigh.r", new Vector3(-0.00626f, 0.00159f, -0.00258f), new Vector3(22.27093f, 328.1845f, 163.4759f), new Vector3(0.002f, 0.002f, 0.002f), (LimbFlags)0); NewIDRS((Object)(object)Items.BonusGoldPackOnKill, "chest", new Vector3(0.00034f, 0.00826f, -0.01169f), new Vector3(355.3111f, 183.4619f, 358.2932f), new Vector3(0.006f, 0.006f, 0.006f), (LimbFlags)0); NewIDRS((Object)(object)Items.BossDamageBonus, "thigh.r", new Vector3(-0.00506f, 0.01275f, 0.00386f), new Vector3(82.34045f, 245.3969f, 330.6201f), new Vector3(0.04118f, 0.04118f, 0.04118f), (LimbFlags)0); NewIDRS((Object)(object)Items.BounceNearby, "weapon", new Vector3(-0.00022f, -0.04403f, 0.00029f), new Vector3(346.005f, 136.4158f, 182.3594f), new Vector3(0.0111f, 0.0111f, 0.0111f), (LimbFlags)0); NewIDRS((Object)(object)Items.ChainLightning, "chest", new Vector3(0f, 0.00581f, -0.01068f), new Vector3(7.26735f, 177.6525f, 0.52849f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.Clover, "head", new Vector3(0.00417f, 0.01677f, -0.00623f), new Vector3(6.75829f, 198.733f, 55.80063f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.CritGlasses, "head", new Vector3(8E-05f, 0.00855f, 0.00961f), new Vector3(356.8205f, 359.5484f, 0.15748f), new Vector3(0.02006f, 0.02006f, 0.02006f), (LimbFlags)0); NewIDRS((Object)(object)Items.Crowbar, "chest", new Vector3(0f, 0.00457f, -0.00988f), new Vector3(346.7821f, 1.89681f, 0.18325f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.Dagger, "weapon", new Vector3(0.00043f, 0.0478f, 0.00227f), new Vector3(356.7259f, 231.7681f, 139.817f), new Vector3(0.04069f, 0.03595f, 0.02705f), (LimbFlags)0); NewIDRS((Object)(object)Items.DeathMark, "hand.r", new Vector3(-0.00036f, 0.00167f, 0.0019f), new Vector3(328.1018f, 1.84677f, 4.80289f), new Vector3(0.0007f, 0.0007f, 0.0007f), (LimbFlags)0); NewIDRS((Object)(object)Items.EnergizedOnEquipmentUse, "thigh.r", new Vector3(-0.00594f, -0.00682f, -0.00263f), new Vector3(0.65272f, 93.15314f, 276.5008f), new Vector3(0.01974f, 0.01974f, 0.01974f), (LimbFlags)0); NewIDRS((Object)(object)Items.EquipmentMagazine, "chest", new Vector3(-0.00552f, -0.0051f, -0.00804f), new Vector3(17.23041f, 94.35687f, 352.7838f), new Vector3(0.0171f, 0.0171f, 0.0171f), (LimbFlags)0); NewIDRS((Object)(object)Items.ExecuteLowHealthElite, "chest", new Vector3(-0.00039f, 0.00806f, -0.01042f), new Vector3(275.8561f, 9.8469f, 351.186f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.ExplodeOnDeath, "pelvis", new Vector3(-0.01149f, -4E-05f, 0.00175f), new Vector3(352.7027f, 182.1202f, 165.7029f), new Vector3(0.00332f, 0.00332f, 0.00332f), (LimbFlags)0); NewIDRS((Object)(object)Items.ExtraLife, "weapon", new Vector3(0.00485f, 0.07392f, -0.00188f), new Vector3(281.4386f, 131.3622f, 197.2534f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0); NewDualIDRS((Object)(object)Items.FallBoots, "foot.r", new Vector3(0.00346f, -0.00238f, 0.00048f), new Vector3(331.7195f, 94.55103f, 178.7282f), new Vector3(0.01558f, 0.01558f, 0.01558f), "foot.l", new Vector3(0.00017f, -0.00174f, 0.00754f), new Vector3(283.7893f, 358.292f, 178.9146f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0); NewIDRS((Object)(object)Items.Feather, "shoulder.l", new Vector3(-0.0009f, -0.02662f, -0.00102f), new Vector3(321.9913f, 268.2165f, 183.467f), new Vector3(0.0015f, 0.0015f, 0.0015f), (LimbFlags)0); NewIDRS((Object)(object)Items.FireballsOnHit, "arm.r", new Vector3(-0.00381f, 0.02478f, 0.00357f), new Vector3(286.2829f, 336.4347f, 118.9972f), new Vector3(0.002f, 0.002f, 0.002f), (LimbFlags)0); NewIDRS((Object)(object)Items.FireRing, "weapon", new Vector3(0.00259f, 0.04766f, 0.0001f), new Vector3(276.7454f, 85.41326f, 64.19144f), new Vector3(0.01791f, 0.01791f, 0.01429f), (LimbFlags)0); NewIDRS((Object)(object)Items.Firework, "chest", new Vector3(0f, 0.00521f, -0.01248f), new Vector3(285.5386f, 106.806f, 233.2648f), new Vector3(0.035f, 0.035f, 0.035f), (LimbFlags)0); NewIDRS((Object)(object)Items.FlatHealth, "chest", new Vector3(0.00261f, 0.01054f, 0.01168f), new Vector3(331.2355f, 11.38004f, 0.43364f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0); NewIDRS((Object)(object)Items.GhostOnKill, "head", new Vector3(7E-05f, 0.01044f, 0.00714f), new Vector3(6.5812f, 1.00648f, 1.09787f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.GoldOnHit, "head", new Vector3(0.00021f, 0.01056f, -0.00129f), new Vector3(0.83914f, 1.67416f, 359.07f), new Vector3(0.07f, 0.07f, 0.07f), (LimbFlags)0); NewIDRS((Object)(object)Items.HeadHunter, "pelvis", new Vector3(0.00022f, -0.0035f, 0.00091f), new Vector3(357.4374f, 177.5663f, 179.0876f), new Vector3(0.028f, 0.009f, 0.009f), (LimbFlags)0); NewIDRS((Object)(object)Items.HealOnCrit, "chest", new Vector3(-0.00286f, 0.00952f, -0.01139f), new Vector3(295.7674f, 269.2632f, 90.55843f), new Vector3(0.025f, 0.025f, 0.025f), (LimbFlags)0); NewIDRS((Object)(object)Items.HealWhileSafe, "chest", new Vector3(0.00294f, 0.00966f, -0.004f), new Vector3(333.279f, 230.2808f, 65.06769f), new Vector3(0.0055f, 0.0055f, 0.0055f), (LimbFlags)0); NewIDRS((Object)(object)Items.Hoof, "weapon", new Vector3(0.00309f, 0.04108f, 0.00107f), new Vector3(85.87236f, 253.1834f, 63.50707f), new Vector3(0.00144f, 0.00203f, 0.00736f), (LimbFlags)0); NewIDRS((Object)(object)Items.IceRing, "hand.r", new Vector3(-0.0008f, 0.00499f, 0.00018f), new Vector3(88.04155f, 30.69984f, 31.66765f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.Icicle, "centerMuzzle", new Vector3(-0.85577f, 0.73691f, 0.13518f), new Vector3(90f, 0f, 0f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Items.IgniteOnKill, "thigh.l", new Vector3(0.00352f, 0.00177f, -0.0083f), new Vector3(75.10688f, 333.567f, 116.3525f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewDualIDRS((Object)(object)Items.IncreaseHealing, "head", new Vector3(-0.00545f, 0.01408f, -0.00028f), new Vector3(4.73802f, 273.951f, 355.875f), new Vector3(0.02f, 0.02f, 0.02f), "head", new Vector3(0.00549f, 0.01431f, -0.0005f), new Vector3(9.50058f, 87.58778f, 173.2317f), new Vector3(0.02f, -0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Items.Infusion, "pelvis", new Vector3(0.00573f, -0.00196f, 0.00901f), new Vector3(353.0818f, 194.7118f, 191.6878f), new Vector3(0.035f, 0.035f, 0.035f), (LimbFlags)0); NewIDRS((Object)(object)Items.JumpBoost, "head", new Vector3(0f, -0.01106f, -0.00549f), new Vector3(0.88027f, 0.79224f, 1.00054f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.KillEliteFrenzy, "head", new Vector3(-0.00097f, 0.0109f, 7E-05f), new Vector3(0.47701f, 0.99987f, 0.99091f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.Knurl, "clavicle.r", new Vector3(-0.00243f, 0.00906f, -0.00166f), new Vector3(338.9116f, 265.0623f, 80.40175f), new Vector3(0.008f, 0.008f, 0.008f), (LimbFlags)0); NewIDRS((Object)(object)Items.LaserTurbine, "shoulder.r", new Vector3(0.00145f, -0.02855f, -0.00552f), new Vector3(20.33482f, 111.6409f, 270.0428f), new Vector3(-0.0198f, -0.0198f, -0.0198f), (LimbFlags)0); NewIDRS((Object)(object)Items.LightningStrikeOnHit, "arm.l", new Vector3(0.0034f, 0.02275f, 0.00263f), new Vector3(17.01221f, 83.15295f, 195.3038f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarDagger, "chest", new Vector3(0.01134f, 0.01224f, -0.01175f), new Vector3(82.94812f, 69.86959f, 66.18201f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarPrimaryReplacement, "head", new Vector3(0f, 0.00917f, 0.00837f), new Vector3(271.1755f, 57.94729f, 302.7268f), new Vector3(0.02131f, 0.02131f, 0.02131f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarSecondaryReplacement, "chest", new Vector3(-0.00607f, 0.01009f, -0.00719f), new Vector3(352.0394f, 317.385f, 350.3442f), new Vector3(0.035f, 0.035f, 0.035f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarSpecialReplacement, "head", new Vector3(0f, 0.01816f, -0.00201f), new Vector3(0.54709f, 262.5292f, 323.7991f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarTrinket, "hand.r", new Vector3(-0.00099f, 0.00288f, 4E-05f), new Vector3(12.55176f, 231.3053f, 281.8948f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarUtilityReplacement, "head", new Vector3(-0.00028f, 0.00915f, 0.00044f), new Vector3(1f, 1f, 1f), new Vector3(0.073f, 0.073f, 0.073f), (LimbFlags)0); NewIDRS((Object)(object)Items.Medkit, "pelvis", new Vector3(0.00911f, 0.00505f, -0.00043f), new Vector3(78.03755f, 273.2252f, 358.3963f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Items.Missile, "chest", new Vector3(-0.01022f, 0.02797f, -0.01574f), new Vector3(338.5844f, 348.5499f, 15.06857f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.MonstersOnShrineUse, "thigh.l", new Vector3(-0.00098f, 0.00846f, 0.00734f), new Vector3(47.02039f, 300.9848f, 29.26483f), new Vector3(0.0035f, 0.0035f, 0.0035f), (LimbFlags)0); NewIDRS((Object)(object)Items.Mushroom, "clavicle.r", new Vector3(-0.00154f, 0.01283f, 5E-05f), new Vector3(353.3766f, 349.2445f, 80.79232f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.NearbyDamageBonus, "hand.l", new Vector3(-2E-05f, 0.00226f, 0.00261f), new Vector3(275.8623f, 205.9575f, 69.37687f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewDualIDRS((Object)(object)Items.NovaOnHeal, "head", new Vector3(0.00096f, 0.01244f, -0.00053f), new Vector3(26.54841f, 10.63069f, 19.55206f), new Vector3(0.05f, 0.05f, 0.05f), "head", new Vector3(-0.00122f, 0.01165f, -0.00245f), new Vector3(19.13741f, 344.386f, 341.1535f), new Vector3(-0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.NovaOnLowHealth, "head", new Vector3(-0.00294f, 0.00692f, -0.00637f), new Vector3(0.91952f, 6.68465f, 0.99858f), new Vector3(0.011f, 0.011f, 0.011f), (LimbFlags)0); NewIDRS((Object)(object)Items.ParentEgg, "chest", new Vector3(0.00021f, 0.00225f, 0.01523f), new Vector3(1f, 1f, 1f), new Vector3(0.006f, 0.006f, 0.006f), (LimbFlags)0); NewIDRS((Object)(object)Items.Pearl, "arm.l", new Vector3(0f, 0.02391f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Items.PersonalShield, "chest", new Vector3(0f, 0.00735f, 0.00875f), new Vector3(272.3734f, 161.594f, 205.8844f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0); NewIDRS((Object)(object)Items.Phasing, "chest", new Vector3(0.00035f, 0.00484f, 0.01451f), new Vector3(272.5576f, 336.5291f, 23.01861f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Items.Plant, "thigh.r", new Vector3(-0.00413f, 0.00975f, 0.00337f), new Vector3(69.62372f, 294.4613f, 338.5311f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Items.RandomDamageZone, "hand.r", new Vector3(-0.00084f, 0.00035f, 0.00176f), new Vector3(347.5845f, 197.9293f, 268.7993f), new Vector3(0.001f, 0.001f, 0.001f), (LimbFlags)0); NewIDRS((Object)(object)Items.RepeatHeal, "weapon", new Vector3(0.00022f, -0.04874f, 0.00175f), new Vector3(85.39164f, 189.5849f, 130.474f), new Vector3(0.0081f, 0.00942f, 0.0081f), (LimbFlags)0); NewIDRS((Object)(object)Items.SecondarySkillMagazine, "weapon", new Vector3(0.00814f, 0.06681f, -0.00452f), new Vector3(320.461f, 307.525f, 356.0107f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Items.Seed, "thigh.l", new Vector3(0.00507f, -0.00253f, 0.00097f), new Vector3(64.13003f, 47.88186f, 63.76628f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewDualIDRS((Object)(object)Items.ShieldOnly, "head", new Vector3(-0.00211f, 0.01602f, 0.00206f), new Vector3(40.10051f, 228.8713f, 330.0085f), new Vector3(0.014f, 0.014f, 0.014f), "head", new Vector3(0.00417f, 0.01775f, 0.00177f), new Vector3(344.0768f, 267.7098f, 341.7469f), new Vector3(0.014f, 0.014f, 0.014f), (LimbFlags)0); NewIDRS((Object)(object)Items.ShinyPearl, "arm.r", new Vector3(-0.00199f, 0.02066f, 0.0032f), new Vector3(90f, 0f, 0f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Items.ShockNearby, "chest", new Vector3(0f, 0.00683f, -0.0088f), new Vector3(296.195f, 2.26539f, 358.9496f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.SiphonOnLowHealth, "thigh.l", new Vector3(0.00157f, 0.00295f, 0.01038f), new Vector3(352.5497f, 29.19621f, 173.9157f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.SlowOnHit, "thigh.r", new Vector3(-0.0047f, 0.02127f, -6E-05f), new Vector3(3.71648f, 8.66855f, 139.5791f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.SprintArmor, "calf.l", new Vector3(-0.00034f, 0.00796f, 0.00334f), new Vector3(355.6577f, 356.8977f, 85.07675f), new Vector3(0.00764f, 0.00509f, 0.00678f), (LimbFlags)0); NewIDRS((Object)(object)Items.SprintBonus, "thigh.r", new Vector3(-0.00595f, -0.005f, 0.00118f), new Vector3(82.76353f, 354.7362f, 187.6148f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Items.SprintOutOfCombat, "thigh.l", new Vector3(0.00551f, 0.00193f, -0.00195f), new Vector3(17.75864f, 190.5007f, 192.1692f), new Vector3(0.025f, 0.025f, 0.025f), (LimbFlags)0); NewIDRS((Object)(object)Items.SprintWisp, "clavicle.r", new Vector3(-0.0035f, 0.01431f, 0.00108f), new Vector3(338.0271f, 267.6891f, 184.2276f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.Squid, "thigh.r", new Vector3(-0.00024f, 0.01159f, -0.0052f), new Vector3(358.6414f, 274.1122f, 82.04865f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Items.StickyBomb, "thigh.l", new Vector3(0.00764f, 0.01058f, 8E-05f), new Vector3(359.7258f, 21.86834f, 332.8726f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.StunChanceOnHit, "calf.l", new Vector3(0.00509f, 0.00642f, -0.00303f), new Vector3(60.9187f, 351.3777f, 101.5887f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Items.Syringe, "thigh.r", new Vector3(-0.00443f, 0.00194f, 0.00085f), new Vector3(83.0633f, 294.1988f, 28.65462f), new Vector3(0.008f, 0.008f, 0.008f), (LimbFlags)0); NewIDRS((Object)(object)Items.Thorns, "arm.l", new Vector3(0.00519f, -0.00019f, -0.00241f), new Vector3(284.6899f, 294.0303f, 3.21992f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Items.TitanGoldDuringTP, "chest", new Vector3(-0.00679f, 0.00397f, 0.01391f), new Vector3(4.65077f, 353.6634f, 320.0634f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.TPHealingNova, "stomach", new Vector3(0.00966f, 0.02076f, 0.00554f), new Vector3(336.1642f, 46.71406f, 347.2395f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.TreasureCache, "pelvis", new Vector3(-0.00853f, -0.00169f, -0.00222f), new Vector3(15.83248f, 342.7811f, 299.9793f), new Vector3(0.06f, 0.06f, 0.06f), (LimbFlags)0); NewIDRS((Object)(object)Items.UtilitySkillMagazine, "weapon", new Vector3(-0.0007f, -0.05318f, 1E-05f), new Vector3(2.14913f, 86.62253f, 359.8941f), new Vector3(0.01648f, 0.03229f, 0.017f), (LimbFlags)0); NewIDRS((Object)(object)Items.WarCryOnMultiKill, "clavicle.l", new Vector3(0.00505f, 0.01514f, 0f), new Vector3(30.29887f, 88.03382f, 358.895f), new Vector3(0.055f, 0.055f, 0.055f), (LimbFlags)0); NewIDRS((Object)(object)Items.WardOnLevel, "chest", new Vector3(-0.0016f, -0.00679f, -0.00706f), new Vector3(285.5458f, 171.269f, 98.61694f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Items.AttackSpeedAndMoveSpeed, "thigh.l", new Vector3(0.00675f, 0.00543f, -0.00358f), new Vector3(352.7699f, 100.184f, 151.0006f), new Vector3(0.0125f, 0.0125f, 0.0125f), (LimbFlags)0); NewIDRS((Object)(object)Items.BearVoid, "weapon", new Vector3(0.00302f, 0.06839f, -0.00076f), new Vector3(281.7106f, 255.4765f, 129.1645f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.BleedOnHitVoid, "chest", new Vector3(-0.01488f, 0.01765f, -0.01104f), new Vector3(35.4173f, 55.19624f, 352.1775f), new Vector3(0.01745f, 0.01745f, 0.01745f), (LimbFlags)0); NewIDRS((Object)(object)Items.ChainLightningVoid, "chest", new Vector3(0f, 0.00581f, -0.01068f), new Vector3(7.26735f, 177.6525f, 0.52849f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.CloverVoid, "head", new Vector3(0.00417f, 0.01677f, -0.00623f), new Vector3(6.75829f, 198.733f, 55.80063f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.CritDamage, "weapon", new Vector3(0.00325f, 0.06356f, 0.0001f), new Vector3(0.1796f, 8.04503f, 270.8752f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0); NewIDRS((Object)(object)Items.CritGlassesVoid, "head", new Vector3(8E-05f, 0.00855f, 0.00961f), new Vector3(356.8205f, 359.5484f, 0.15748f), new Vector3(0.02006f, 0.02006f, 0.02006f), (LimbFlags)0); NewIDRS((Object)(object)Items.ElementalRingVoid, "weapon", new Vector3(0.00125f, 0.00969f, 1E-05f), new Vector3(88.04166f, 30.69988f, 31.66769f), new Vector3(0.01419f, 0.01419f, 0.01419f), (LimbFlags)0); NewIDRS((Object)(object)Items.EquipmentMagazineVoid, "chest", new Vector3(-0.00552f, -0.0051f, -0.00804f), new Vector3(17.23041f, 94.35687f, 352.7838f), new Vector3(0.0171f, 0.0171f, 0.0171f), (LimbFlags)0); NewIDRS((Object)(object)Items.ExplodeOnDeathVoid, "pelvis", new Vector3(-0.01149f, -4E-05f, 0.00175f), new Vector3(352.7027f, 182.1202f, 165.7029f), new Vector3(0.00332f, 0.00332f, 0.00332f), (LimbFlags)0); NewIDRS((Object)(object)Items.ExtraLifeVoid, "weapon", new Vector3(0.00485f, 0.07392f, -0.00188f), new Vector3(281.4386f, 131.3622f, 197.2534f), new Vector3(0.007f, 0.007f, 0.007f), (LimbFlags)0); NewIDRS((Object)(object)Items.FragileDamageBonus, "hand.l", new Vector3(0.00054f, -0.0013f, 0.00085f), new Vector3(85.67247f, 8.97802f, 13.94257f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Items.FreeChest, "thigh.l", new Vector3(0.00425f, 0.00106f, -0.00633f), new Vector3(283.7225f, 169.2571f, 130.2992f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Items.GoldOnHurt, "shoulder.l", new Vector3(0.00429f, -0.03049f, -0.00937f), new Vector3(346.954f, 141.6904f, 181.395f), new Vector3(0.03024f, 0.03024f, 0.03024f), (LimbFlags)0); NewIDRS((Object)(object)Items.HalfAttackSpeedHalfCooldowns, "clavicle.r", new Vector3(-0.00236f, 0.01377f, -0.00103f), new Vector3(357.2978f, 140.0843f, 259.3743f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.HalfSpeedDoubleHealth, "clavicle.l", new Vector3(0.00272f, 0.01314f, -0.00039f), new Vector3(13.2011f, 0.65997f, 256.7133f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.HealingPotion, "pelvis", new Vector3(-0.01002f, -0.00516f, 0.00338f), new Vector3(305.8045f, 178.2617f, 169.946f), new Vector3(0.004f, 0.004f, 0.004f), (LimbFlags)0); NewIDRS((Object)(object)Items.ImmuneToDebuff, "pelvis", new Vector3(0.00054f, -0.006f, -0.00081f), new Vector3(354.7128f, 179.9351f, 181.5748f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.LunarSun, "centerMuzzle", new Vector3(-1.81119f, 0.85627f, 1.62253f), new Vector3(1f, 1f, 1f), new Vector3(1f, 1f, 1f), (LimbFlags)1); NewIDRS((Object)(object)Items.MinorConstructOnKill, "centerMuzzle", new Vector3(1.06629f, 1.56309f, -0.61343f), new Vector3(1f, 1f, 1f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Items.MissileVoid, "chest", new Vector3(-0.01022f, 0.02797f, -0.01574f), new Vector3(338.5844f, 348.5499f, 15.06857f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.MoreMissile, "chest", new Vector3(-0.0021f, 0.00388f, -0.01326f), new Vector3(350.7785f, 355.3837f, 305.3827f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.MoveSpeedOnKill, "pelvis", new Vector3(0.00225f, -0.00711f, 0.00681f), new Vector3(20.35845f, 345.8745f, 156.5531f), new Vector3(0.008f, 0.008f, 0.008f), (LimbFlags)0); NewIDRS((Object)(object)Items.MushroomVoid, "clavicle.r", new Vector3(-0.00154f, 0.01283f, 5E-05f), new Vector3(353.3766f, 349.2445f, 80.79232f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Items.OutOfCombatArmor, "chest", new Vector3(0f, 0.00665f, 0.01075f), new Vector3(1f, 1f, 1f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.PermanentDebuffOnHit, "chest", new Vector3(0f, -0.00754f, -0.0073f), new Vector3(10.42356f, 359.5367f, 359.7084f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Items.PrimarySkillShuriken, "hand.r", new Vector3(-0.00027f, 0.00247f, 0.00117f), new Vector3(9.93523f, 181.8209f, 89.08346f), new Vector3(0.01f, 0.01001f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.RandomEquipmentTrigger, "thigh.l", new Vector3(0.00542f, -0.00133f, 0.00053f), new Vector3(356.9429f, 268.144f, 199.8578f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.RandomlyLunar, "centerMuzzle", new Vector3(0.53605f, 1.00681f, 0.28325f), new Vector3(90f, 0f, 0f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Items.RegeneratingScrap, "pelvis", new Vector3(-0.00465f, -0.00165f, 0.01146f), new Vector3(39.0236f, 158.0848f, 160.9356f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.SlowOnHitVoid, "thigh.r", new Vector3(-0.0047f, 0.02127f, -6E-05f), new Vector3(3.71648f, 8.66855f, 139.5791f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Items.StrengthenBurn, "chest", new Vector3(0.00115f, -0.00261f, 0.00865f), new Vector3(28.64187f, 4.03514f, 269.0704f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Items.TreasureCacheVoid, "pelvis", new Vector3(-0.00853f, -0.00169f, -0.00222f), new Vector3(15.83248f, 342.7811f, 299.9793f), new Vector3(0.06f, 0.06f, 0.06f), (LimbFlags)0); NewIDRS((Object)(object)Items.VoidMegaCrabItem, "pelvis", new Vector3(0f, 0.00358f, -0.00823f), new Vector3(358.9785f, 181.3197f, 181.9261f), new Vector3(0.008f, 0.008f, 0.008f), (LimbFlags)0); NewDualIDRS((Object)(object)Equipment.AffixRed, "head", new Vector3(0.00119f, 0.01052f, 0.00067f), new Vector3(39.45927f, 5.45285f, 349.5809f), new Vector3(0.005f, 0.005f, 0.005f), "head", new Vector3(-0.00121f, 0.00949f, -0.00552f), new Vector3(67.54338f, 5.04426f, 10.7469f), new Vector3(-0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.AffixHaunted, "head", new Vector3(0f, 0.01716f, 0f), new Vector3(88.97836f, 232.0481f, 49.69933f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.AffixWhite, "head", new Vector3(0f, 0.02084f, -0.00067f), new Vector3(277.8477f, 172.6581f, 188.2564f), new Vector3(0.0015f, 0.0015f, 0.0015f), (LimbFlags)0); NewDualIDRS((Object)(object)Equipment.AffixBlue, "head", new Vector3(-5E-05f, 0.0178f, 0.00656f), new Vector3(290.9543f, 2.79679f, 358.3704f), new Vector3(0.017f, 0.017f, 0.017f), "head", new Vector3(-5E-05f, 0.01811f, 0.00153f), new Vector3(288.6149f, 2.92664f, 358.0781f), new Vector3(0.0115f, 0.0115f, 0.0115f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.AffixEcho, "chest", Vector3.one, Vector3.one, Vector3.one, (LimbFlags)0); NewIDRS((Object)(object)Equipment.AffixLunar, "head", new Vector3(0f, 0.0086f, 0.01437f), new Vector3(0f, 0f, 0f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.AffixPoison, "head", new Vector3(0f, 0.01787f, 0f), new Vector3(272.1767f, 27.34848f, 333.651f), new Vector3(0.0025f, 0.0025f, 0.0025f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.BFG, "chest", new Vector3(0.00649f, 0.00759f, -0.0098f), new Vector3(301.5557f, 352.5758f, 337.5128f), new Vector3(0.025f, 0.025f, 0.025f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Blackhole, "centerMuzzle", new Vector3(-0.56846f, 1.06375f, -0.22458f), new Vector3(1f, 1f, 1f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.BurnNearby, "thigh.l", new Vector3(0.00419f, -0.00197f, 0.00029f), new Vector3(358.6353f, 88.77276f, 165.129f), new Vector3(0.0025f, 0.0025f, 0.0025f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Cleanse, "chest", new Vector3(0f, -0.0075f, -0.00651f), new Vector3(5.99228f, 179.6905f, 359.7022f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.CommandMissile, "chest", new Vector3(0f, 0.01097f, -0.00971f), new Vector3(75.95058f, 182.6069f, 4.04652f), new Vector3(0.04f, 0.04f, 0.04f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.CrippleWard, "head", new Vector3(-0.00041f, 8E-05f, -0.0146f), new Vector3(345.9594f, 181.4066f, 0.43087f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.CritOnUse, "head", new Vector3(0f, 0.01042f, 0.02239f), new Vector3(0f, 0f, 0f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.DeathProjectile, "pelvis", new Vector3(0.00844f, 0.00332f, 0.01031f), new Vector3(351.6634f, 25.06341f, 183.7309f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.DroneBackup, "pelvis", new Vector3(0.009f, -0.00414f, 0.0037f), new Vector3(358.1347f, 62.23811f, 239.3628f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.FireBallDash, "thigh.l", new Vector3(0.00704f, -0.00538f, 0.00086f), new Vector3(66.99594f, 359.7113f, 89.96069f), new Vector3(0.017f, 0.017f, 0.017f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Fruit, "chest", new Vector3(-0.00312f, -0.00469f, -0.00647f), new Vector3(3.59216f, 29.49027f, 359.4167f), new Vector3(0.013f, 0.013f, 0.013f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.GainArmor, "calf.l", new Vector3(0.00743f, 0.012f, -0.00048f), new Vector3(79.80777f, 145.6345f, 47.87947f), new Vector3(0.035f, 0.035f, 0.035f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Gateway, "chest", new Vector3(0f, 0.00927f, -0.00993f), new Vector3(64.49987f, 159.5704f, 358.0334f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.GoldGat, "clavicle.r", new Vector3(-0.01927f, 0.02089f, -0.00686f), new Vector3(304.9886f, 73.13081f, 11.6603f), new Vector3(0.011f, 0.011f, 0.011f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Jetpack, "chest", new Vector3(0f, 0.00152f, -0.00677f), new Vector3(337.6279f, 1.08123f, 0.571f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.LifestealOnHit, "head", new Vector3(0.01516f, 0.01477f, -0.00351f), new Vector3(16.38067f, 254.2892f, 49.82475f), new Vector3(0.0055f, 0.0055f, 0.0055f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Lightning, "clavicle.r", new Vector3(0.00151f, 0.0098f, 0.02111f), new Vector3(2.07463f, 359.8058f, 85.58806f), new Vector3(0.05f, 0.05f, 0.05f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Meteor, "centerMuzzle", new Vector3(-0.46302f, 1.1867f, -0.46921f), new Vector3(1f, 1f, 1f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.QuestVolatileBattery, "chest", new Vector3(-0.00041f, 0.0064f, -0.01414f), new Vector3(350.2747f, 181.9979f, 180.0801f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Recycle, "chest", new Vector3(0.00021f, -1f / 160f, -0.00858f), new Vector3(1.28568f, 89.59514f, 332.8766f), new Vector3(0.005f, 0.005f, 0.005f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Scanner, "chest", new Vector3(-0.01533f, 0.01166f, -0.0044f), new Vector3(295.3954f, 215.6305f, 154.5168f), new Vector3(0.015f, 0.015f, 0.015f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.TeamWarCry, "thigh.r", new Vector3(-0.00446f, -0.00368f, 0.00293f), new Vector3(353.8848f, 285.904f, 180.7375f), new Vector3(0.003f, 0.003f, 0.003f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Tonic, "thigh.l", new Vector3(0.00464f, -0.00608f, 0.00094f), new Vector3(4.21088f, 107.2549f, 174.4282f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.BossHunter, "head", new Vector3(0f, 0.01461f, -0.00095f), new Vector3(30.63213f, 7.66642f, 2.18405f), new Vector3(0.062f, 0.062f, 0.062f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.BossHunterConsumed, "head", new Vector3(0f, 0.01461f, -0.00095f), new Vector3(30.63213f, 7.66642f, 2.18405f), new Vector3(0.062f, 0.062f, 0.062f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.EliteVoidEquipment, "head", new Vector3(0f, 0.00699f, 0.007f), new Vector3(83.02541f, 8.26197f, 9.1842f), new Vector3(0.01f, 0.01f, 0.01f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.GummyClone, "chest", new Vector3(-0.00636f, 0.0191f, -0.00635f), new Vector3(18.59436f, 42.82727f, 7.19275f), new Vector3(0.02f, 0.02f, 0.02f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.LunarPortalOnUse, "centerMuzzle", new Vector3(0.58975f, 0.80602f, -0.74813f), new Vector3(1f, 1f, 1f), new Vector3(1f, 1f, 1f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.Molotov, "pelvis", new Vector3(-0.00966f, 0.00215f, 0.00554f), new Vector3(20.09674f, 338.0693f, 163.9072f), new Vector3(0.013f, 0.013f, 0.013f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.MultiShopCard, "pelvis", new Vector3(0.00886f, -0.00156f, 0.00041f), new Vector3(273.0722f, 10.18697f, 265.0378f), new Vector3(0.03f, 0.03f, 0.03f), (LimbFlags)0); NewIDRS((Object)(object)Equipment.VendingMachine, "thigh.r", new Vector3(-0.00217f, -0.00376f, 0.00781f), new Vector3(343.6081f, 283.1312f, 242.1237f), new Vector3(0.012f, 0.012f, 0.012f), (LimbFlags)0); itemDisplayRuleSet.keyAssetRuleGroups = itemDisplayRules.ToArray(); itemDisplayRuleSet.GenerateRuntimeValues(); } private static void NewDualIDRS(Object obj, string childName, Vector3 localPos, Vector3 localAngles, Vector3 localScale, string childName2, Vector3 localPos2, Vector3 localAngles2, Vector3 localScale2, LimbFlags flags = 0) { //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00c4: 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_00d8: 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_00dc: 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_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_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_0022: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_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_0069: 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_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_007c: 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) ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null); EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null); if ((Object)(object)val != (Object)null) { itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)val, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { newDisplayRule(childName, LoadDisplay((Object)(object)val), localPos, localAngles, localScale, flags), newDisplayRule(childName2, LoadDisplay((Object)(object)val), localPos2, localAngles2, localScale2, flags) } } }); } else { itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)val2, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[2] { newDisplayRule(childName, LoadDisplay((Object)(object)val2), localPos, localAngles, localScale, flags), newDisplayRule(childName2, LoadDisplay((Object)(object)val2), localPos2, localAngles2, localScale2, flags) } } }); } } private static void NewIDRS(Object obj, string childName, Vector3 localPos, Vector3 localAngles, Vector3 localScale, LimbFlags flags = 0) { //IL_0079: 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_00a2: 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_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_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_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_0022: 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_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_004f: 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_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) ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null); EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null); if ((Object)(object)val != (Object)null) { itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)val, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { newDisplayRule(childName, LoadDisplay((Object)(object)val), localPos, localAngles, localScale, flags) } } }); } else { itemDisplayRules.Add(new KeyAssetRuleGroup { keyAsset = (Object)(object)val2, displayRuleGroup = new DisplayRuleGroup { rules = (ItemDisplayRule[])(object)new ItemDisplayRule[1] { newDisplayRule(childName, LoadDisplay((Object)(object)val2), localPos, localAngles, localScale, flags) } } }); } } internal static ItemDisplayRule newDisplayRule(string childName, GameObject equipDef, Vector3 localPos, Vector3 localAngles, Vector3 localScale, LimbFlags flags) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_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_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_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_0046: 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) ItemDisplayRule result = default(ItemDisplayRule); result.ruleType = (ItemDisplayRuleType)0; result.followerPrefab = equipDef; result.childName = childName; result.localPos = localPos; result.localAngles = localAngles; result.localScale = localScale; result.limbMask = flags; return result; } internal static GameObject LoadDisplay(Object obj) { if (obj != (Object)null) { ItemDef val = (ItemDef)(object)((obj is ItemDef) ? obj : null); EquipmentDef val2 = (EquipmentDef)(object)((obj is EquipmentDef) ? obj : null); if ((Object)(object)val != (Object)null && itemDisplayPrefabs.ContainsKey((Object)(object)val) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[(Object)(object)val])) { return itemDisplayPrefabs[(Object)(object)val]; } if ((Object)(object)val2 != (Object)null && itemDisplayPrefabs.ContainsKey((Object)(object)val2) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[(Object)(object)val2])) { return itemDisplayPrefabs[(Object)(object)val2]; } } return null; } } [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.Dragonyck.Spearman", "Spearman", "1.0.6")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class MainPlugin : BaseUnityPlugin { public const string MODUID = "com.Dragonyck.Spearman"; public const string MODNAME = "Spearman"; public const string VERSION = "1.0.6"; public const string SURVIVORNAME = "Spearman"; public const string SURVIVORNAMEKEY = "SPEARMAN"; public static GameObject characterPrefab; public GameObject characterDisplay; public GameObject doppelganger; private static readonly Color characterColor = new Color(0.1098f, 0.2f, 0.34902f); protected internal static ConfigEntry crosshairSize; internal static SkillDef utilityOverrideDef; private void Awake() { //IL_0011: 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: Expected O, but got Unknown //IL_0030: Expected O, but got Unknown crosshairSize = ((BaseUnityPlugin)this).Config.Bind(new ConfigDefinition("Crosshair Size", "Size"), 120f, new ConfigDescription("", (AcceptableValueBase)null, Array.Empty())); Assets.PopulateAssets(); Achievements.RegisterUnlockables(); Prefabs.CreatePrefabs(); CreatePrefab(); RegisterStates(); RegisterCharacter(); CreateDoppelganger(); Hook.Hooks(); ItemDisplays.RegisterDisplays(); ItemDisplays.PopulateDisplays(); } private static GameObject CreateModel(GameObject main) { Object.Destroy((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); return Assets.MainAssetBundle.LoadAsset("Spearman"); } internal static void CreatePrefab() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_0083: 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_00b4: 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_00ca: Expected O, but got Unknown //IL_00f1: 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_0113: 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_014e: 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_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_01f0: 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_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_03d0: 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_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_0494: Unknown result type (might be due to invalid IL or missing references) //IL_04bc: 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_04cb: Unknown result type (might be due to invalid IL or missing references) //IL_04d4: Unknown result type (might be due to invalid IL or missing references) //IL_0512: 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_0521: Unknown result type (might be due to invalid IL or missing references) //IL_05d2: Unknown result type (might be due to invalid IL or missing references) //IL_061c: 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_0644: 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_067c: 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_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06e0: Unknown result type (might be due to invalid IL or missing references) //IL_06e2: Unknown result type (might be due to invalid IL or missing references) //IL_0723: Unknown result type (might be due to invalid IL or missing references) //IL_07e8: Unknown result type (might be due to invalid IL or missing references) //IL_07f3: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_0869: Unknown result type (might be due to invalid IL or missing references) //IL_086b: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_08a4: Unknown result type (might be due to invalid IL or missing references) //IL_08a6: Unknown result type (might be due to invalid IL or missing references) //IL_08eb: Unknown result type (might be due to invalid IL or missing references) //IL_0763: 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_09a7: Unknown result type (might be due to invalid IL or missing references) //IL_0922: Unknown result type (might be due to invalid IL or missing references) //IL_094f: 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_0bf1: Unknown result type (might be due to invalid IL or missing references) //IL_0bf6: Unknown result type (might be due to invalid IL or missing references) //IL_0bfe: Unknown result type (might be due to invalid IL or missing references) //IL_0c4c: Unknown result type (might be due to invalid IL or missing references) //IL_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_0d79: Unknown result type (might be due to invalid IL or missing references) //IL_0da2: Unknown result type (might be due to invalid IL or missing references) //IL_0da7: Unknown result type (might be due to invalid IL or missing references) //IL_0db8: Unknown result type (might be due to invalid IL or missing references) //IL_0dbd: Unknown result type (might be due to invalid IL or missing references) //IL_0e11: Unknown result type (might be due to invalid IL or missing references) //IL_0e3c: Unknown result type (might be due to invalid IL or missing references) //IL_0e67: Unknown result type (might be due to invalid IL or missing references) characterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody"), "SpearmanBody", true); characterPrefab.GetComponent().localPlayerAuthority = true; characterPrefab.AddComponent(); characterPrefab.AddComponent(); GameObject val = CreateModel(characterPrefab); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = characterPrefab.transform; val2.transform.localPosition = new Vector3(0f, -0.94f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val3 = new GameObject("AimOrigin"); val3.transform.parent = val2.transform; val3.transform.localPosition = new Vector3(0f, 1.4f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; Transform transform = val.transform; transform.parent = val2.transform; transform.localPosition = Vector3.zero; transform.localScale = new Vector3(1f, 1f, 1f); transform.localRotation = Quaternion.identity; CharacterDirection component = characterPrefab.GetComponent(); component.moveVector = Vector3.zero; component.targetTransform = val2.transform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = val.GetComponentInChildren(); component.driveFromRootRotation = false; component.turnSpeed = 720f; CharacterBody component2 = characterPrefab.GetComponent(); ((Object)component2).name = "SpearmanBody"; component2.baseNameToken = "SPEARMAN_NAME"; component2.subtitleNameToken = "SPEARMAN_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 80f; component2.levelMaxHealth = 27f; component2.baseRegen = 1.6f; component2.levelRegen = 0.2f; component2.baseMaxShield = 0f; component2.levelMaxShield = 0f; component2.baseMoveSpeed = 7f; component2.levelMoveSpeed = 0f; component2.baseAcceleration = 110f; component2.baseJumpPower = 15f; component2.levelJumpPower = 0f; component2.baseDamage = 10f; component2.levelDamage = 2.4f; component2.baseAttackSpeed = 0.85f; component2.levelAttackSpeed = 0f; component2.baseCrit = 1f; component2.levelCrit = 0f; component2.baseArmor = 0f; component2.levelArmor = 0f; component2.baseJumpCount = 1; component2.sprintingSpeedMultiplier = 1.45f; component2.wasLucky = false; component2._defaultCrosshairPrefab = Prefabs.crosshairPrefab; component2.hideCrosshair = false; component2.aimOriginTransform = val3.transform; component2.hullClassification = (HullClassification)0; component2.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset("portrait").texture; component2.isChampion = false; component2.currentVehicle = null; component2.skinIndex = 0u; component2.bodyColor = characterColor; CharacterMotor component3 = characterPrefab.GetComponent(); component3.walkSpeedPenaltyCoefficient = 1f; component3.characterDirection = component; component3.muteWalkMotion = false; component3.mass = 90f; component3.airControl = 0.25f; component3.disableAirControlUntilCollision = false; component3.generateParametersOnAwake = true; InputBankTest component4 = characterPrefab.GetComponent(); component4.moveVector = Vector3.zero; CameraTargetParams component5 = characterPrefab.GetComponent(); component5.cameraParams = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().cameraParams; component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = characterPrefab.GetComponent(); component6.modelTransform = transform; component6.modelBaseTransform = val2.transform; component6.dontReleaseModelOnDeath = false; component6.autoUpdateModelTransform = true; component6.dontDetatchFromParent = false; component6.noCorpse = false; component6.normalizeToFloor = false; component6.preserveModel = false; ChildLocator component7 = val.GetComponent(); CharacterModel val4 = val.AddComponent(); val4.body = component2; val4.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[2] { new RendererInfo { defaultMaterial = ((Renderer)val.GetComponentInChildren()).material, renderer = (Renderer)(object)val.GetComponentInChildren(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("spear")).GetComponentInChildren(), defaultMaterial = ((Renderer)((Component)component7.FindChild("spear")).GetComponentInChildren()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false } }; val4.autoPopulateLightInfos = true; val4.invisibilityCount = 0; val4.temporaryOverlays = new List(); Reflection.SetFieldValue((object)val4, "mainSkinnedMeshRenderer", ((Component)val4.baseRendererInfos[0].renderer).gameObject.GetComponent()); GameObject gameObject = ((Component)characterPrefab.GetComponentInChildren().modelTransform).gameObject; CharacterModel component8 = gameObject.GetComponent(); ModelSkinController val5 = gameObject.AddComponent(); ChildLocator component9 = gameObject.GetComponent(); SkinnedMeshRenderer fieldValue = Reflection.GetFieldValue((object)component8, "mainSkinnedMeshRenderer"); LanguageAPI.Add("SPEARMANBODY_DEFAULT_SKIN_NAME", "Default"); LanguageAPI.Add("SPEARMANBODY_MASTERY_SKIN_NAME", "Mastery"); SkinDefInfo val6 = default(SkinDefInfo); val6.BaseSkins = Array.Empty(); val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0]; val6.Icon = LoadoutAPI.CreateSkinIcon(new Color(0.98039f, 0.90196f, 0.45882f), new Color(0.06667f, 0.06667f, 0.06667f), new Color(0.1098f, 0.2f, 0.34902f), new Color(0.23922f, 0.23922f, 0.23922f)); RendererInfo[] baseRendererInfos = val4.baseRendererInfos; val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { renderer = (Renderer)(object)fieldValue, mesh = fieldValue.sharedMesh }, new MeshReplacement { renderer = baseRendererInfos[1].renderer, mesh = ((Component)component9.FindChild("spear")).gameObject.GetComponent().sharedMesh } }; val6.Name = "SPEARMANBODY_DEFAULT_SKIN_NAME"; val6.NameToken = "SPEARMANBODY_DEFAULT_SKIN_NAME"; val6.RendererInfos = component8.baseRendererInfos; val6.RootObject = gameObject; val6.UnlockableDef = null; RendererInfo[] rendererInfos = val6.RendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); Material defaultMaterial = array[0].defaultMaterial; bool flag = Object.op_Implicit((Object)(object)defaultMaterial); if (flag) { defaultMaterial = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset("base").GetTexture("_MainTex"), new Color(0.98039f, 0.90196f, 0.45882f), 1f, Assets.MainAssetBundle.LoadAsset("base").GetTexture("_EmissionMap"), 2f, null); array[0].defaultMaterial = defaultMaterial; array[1].defaultMaterial = defaultMaterial; } val6.RendererInfos = array; SkinDef val7 = LoadoutAPI.CreateNewSkinDef(val6); SkinDefInfo val8 = default(SkinDefInfo); val8.BaseSkins = Array.Empty(); val8.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val8.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val8.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0]; val8.Icon = Assets.masterySkinIcon; val8.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[2] { new MeshReplacement { renderer = (Renderer)(object)fieldValue, mesh = Assets.MainAssetBundle.LoadAsset("masterySuit") }, new MeshReplacement { renderer = array[1].renderer, mesh = Assets.MainAssetBundle.LoadAsset("masterySpear") } }; val8.Name = "SPEARMANBODY_MASTERY_SKIN_NAME"; val8.NameToken = "SPEARMANBODY_MASTERY_SKIN_NAME"; val8.RendererInfos = component8.baseRendererInfos; val8.RootObject = gameObject; val8.UnlockableDef = Achievements.masteryUnlock; rendererInfos = val6.RendererInfos; array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); defaultMaterial = array[0].defaultMaterial; if (flag) { defaultMaterial = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset("mastery").GetTexture("_MainTex"), new Color(0.52549f, 0.01569f, 0.01569f), 1f, Assets.MainAssetBundle.LoadAsset("mastery").GetTexture("_EmissionMap"), 2f, null); array[0].defaultMaterial = defaultMaterial; array[1].defaultMaterial = defaultMaterial; } val8.RendererInfos = array; SkinDef val9 = LoadoutAPI.CreateNewSkinDef(val8); val5.skins = (SkinDef[])(object)new SkinDef[2] { val7, val9 }; TeamComponent val10 = null; val10 = ((!((Object)(object)characterPrefab.GetComponent() != (Object)null)) ? characterPrefab.GetComponent() : characterPrefab.GetComponent()); val10.hideAllyCardDisplay = false; val10.teamIndex = (TeamIndex)(-1); HealthComponent component10 = characterPrefab.GetComponent(); component10.health = 90f; component10.shield = 0f; component10.barrier = 0f; component10.magnetiCharge = 0f; component10.body = null; component10.dontShowHealthbar = false; component10.globalDeathEventChanceCoefficient = 1f; characterPrefab.GetComponent().maxInteractionDistance = 3f; characterPrefab.GetComponent().highlightInteractor = true; SfxLocator component11 = characterPrefab.GetComponent(); component11.deathSound = "Play_ui_player_death"; component11.barkSound = ""; component11.openSound = ""; component11.landingSound = "Play_char_land"; component11.fallDamageSound = "Play_char_land_fall_damage"; component11.aliveLoopStart = ""; component11.aliveLoopStop = ""; Rigidbody component12 = characterPrefab.GetComponent(); component12.mass = 100f; component12.drag = 0f; component12.angularDrag = 0f; component12.useGravity = false; component12.isKinematic = true; component12.interpolation = (RigidbodyInterpolation)0; component12.collisionDetectionMode = (CollisionDetectionMode)0; component12.constraints = (RigidbodyConstraints)0; CapsuleCollider component13 = ((Component)component9.FindChild("collider")).gameObject.GetComponent(); ((Collider)component13).isTrigger = false; ((Collider)component13).material = null; KinematicCharacterMotor component14 = characterPrefab.GetComponent(); component14.CharacterController = (ICharacterController)(object)component3; component14.Capsule = component13; component14.GroundDetectionExtraDistance = 0f; component14.MaxStepHeight = 0.2f; component14.MinRequiredStepDepth = 0.1f; component14.MaxStableSlopeAngle = 55f; component14.MaxStableDistanceFromLedge = 0.5f; component14.MaxStableDenivelationAngle = 55f; component14.RigidbodyInteractionType = (RigidbodyInteractionType)0; component14.PreserveAttachedRigidbodyMomentum = true; component14.HasPlanarConstraint = false; component14.PlanarConstraintAxis = Vector3.up; component14.StepHandling = (StepHandlingMethod)0; component14.InteractiveRigidbodyHandling = true; HurtBoxGroup val11 = val.AddComponent(); HurtBox val12 = ((Component)component13).gameObject.AddComponent(); ((Component)val12).gameObject.layer = LayerIndex.entityPrecise.intVal; val12.healthComponent = component10; val12.isBullseye = true; val12.damageModifier = (DamageModifier)0; val12.hurtBoxGroup = val11; val12.indexInGroup = 0; val11.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val12 }; val11.mainHurtBox = val12; val11.bullseyeCount = 1; AimAnimator val13 = val.AddComponent(); val13.inputBank = component4; val13.directionComponent = component; val13.pitchRangeMin = -60f; val13.pitchRangeMax = 60f; val13.yawRangeMin = 0f; val13.yawRangeMax = 0f; val13.pitchGiveupRange = 30f; val13.yawGiveupRange = 10f; val13.giveupDuration = 3f; FootstepHandler val14 = val.AddComponent(); val14.baseFootstepString = "Play_player_footstep"; val14.sprintFootstepOverrideString = ""; val14.enableFootstepDust = true; val14.footstepDustPrefab = LegacyResourcesAPI.Load("Prefabs/GenericFootstepDust"); EntityStateMachine component15 = ((Component)component2).GetComponent(); component15.mainStateType = new SerializableEntityStateType(typeof(CharacterMain)); CharacterDeathBehavior component16 = characterPrefab.GetComponent(); component16.deathStateMachine = characterPrefab.GetComponent(); component16.deathState = new SerializableEntityStateType(typeof(DeathState)); EntityStateMachine val15 = characterPrefab.AddComponent(); val15.customName = "M2"; val15.initialStateType = new SerializableEntityStateType(typeof(Idle)); val15.mainStateType = new SerializableEntityStateType(typeof(Idle)); NetworkStateMachine component17 = ((Component)component2).GetComponent(); List list = component17.stateMachines.ToList(); list.Add(val15); component17.stateMachines = list.ToArray(); Utils.CreateHitbox("Primary", component9.FindChild("hitMuzzle"), new Vector3(6f, 6f, 8f)); Utils.CreateHitbox("Slide", component9.FindChild("hitMuzzle"), new Vector3(12f, 12f, 12f)); Utils.CreateHitbox("Kick", component9.FindChild("centerMuzzle"), new Vector3(16f, 16f, 16f)); PhysicMaterial material = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().bones[1]).GetComponent().material; RagdollController val16 = val.AddComponent(); val16.bones = (Transform[])(object)new Transform[21] { component9.FindChild("pelvis"), component9.FindChild("thigh.r"), component9.FindChild("thigh.l"), component9.FindChild("calf.r"), component9.FindChild("calf.l"), component9.FindChild("foot.r"), component9.FindChild("foot.l"), component9.FindChild("stomach"), component9.FindChild("chest"), component9.FindChild("clavicle.r"), component9.FindChild("clavicle.l"), component9.FindChild("shoulder.r"), component9.FindChild("shoulder.l"), component9.FindChild("arm.r"), component9.FindChild("arm.l"), component9.FindChild("hand.r"), component9.FindChild("hand.l"), component9.FindChild("neck"), component9.FindChild("head"), component9.FindChild("weapon"), component9.FindChild("Root") }; Transform[] bones = val16.bones; foreach (Transform val17 in bones) { if (Object.op_Implicit((Object)(object)val17)) { ((Component)val17).gameObject.AddComponent(); CapsuleCollider val18 = ((Component)val17).gameObject.AddComponent(); val18.radius = 0.004f; val18.height = 0.0012f; ((Component)val17).gameObject.layer = LayerIndex.ragdoll.intVal; Collider val19 = (Collider)(object)val18; if (Object.op_Implicit((Object)(object)val19)) { val19.material = material; val19.sharedMaterial = material; } } } Utils.AddJoint(((Component)component9.FindChild("pelvis")).gameObject, ((Component)component9.FindChild("Root")).gameObject); Utils.AddJoint(((Component)component9.FindChild("stomach")).gameObject, ((Component)component9.FindChild("pelvis")).gameObject); Utils.AddJoint(((Component)component9.FindChild("chest")).gameObject, ((Component)component9.FindChild("stomach")).gameObject); Utils.AddJoint(((Component)component9.FindChild("clavicle.r")).gameObject, ((Component)component9.FindChild("chest")).gameObject); Utils.AddJoint(((Component)component9.FindChild("clavicle.l")).gameObject, ((Component)component9.FindChild("chest")).gameObject); Utils.AddJoint(((Component)component9.FindChild("neck")).gameObject, ((Component)component9.FindChild("chest")).gameObject); Utils.AddJoint(((Component)component9.FindChild("head")).gameObject, ((Component)component9.FindChild("neck")).gameObject); Utils.AddJoint(((Component)component9.FindChild("shoulder.r")).gameObject, ((Component)component9.FindChild("clavicle.r")).gameObject); Utils.AddJoint(((Component)component9.FindChild("arm.r")).gameObject, ((Component)component9.FindChild("shoulder.r")).gameObject); Utils.AddJoint(((Component)component9.FindChild("hand.r")).gameObject, ((Component)component9.FindChild("arm.r")).gameObject); Utils.AddJoint(((Component)component9.FindChild("shoulder.l")).gameObject, ((Component)component9.FindChild("clavicle.l")).gameObject); Utils.AddJoint(((Component)component9.FindChild("arm.l")).gameObject, ((Component)component9.FindChild("shoulder.l")).gameObject); Utils.AddJoint(((Component)component9.FindChild("hand.l")).gameObject, ((Component)component9.FindChild("arm.l")).gameObject); Utils.AddJoint(((Component)component9.FindChild("thigh.r")).gameObject, ((Component)component9.FindChild("pelvis")).gameObject); Utils.AddJoint(((Component)component9.FindChild("thigh.l")).gameObject, ((Component)component9.FindChild("pelvis")).gameObject); Utils.AddJoint(((Component)component9.FindChild("calf.r")).gameObject, ((Component)component9.FindChild("thigh.r")).gameObject); Utils.AddJoint(((Component)component9.FindChild("foot.r")).gameObject, ((Component)component9.FindChild("calf.r")).gameObject); Utils.AddJoint(((Component)component9.FindChild("calf.l")).gameObject, ((Component)component9.FindChild("thigh.l")).gameObject); Utils.AddJoint(((Component)component9.FindChild("foot.l")).gameObject, ((Component)component9.FindChild("calf.l")).gameObject); ContentAddition.AddBody(characterPrefab); } private void RegisterCharacter() { //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) characterDisplay = PrefabAPI.InstantiateClone(((Component)characterPrefab.GetComponent().modelBaseTransform).gameObject, "SpearmanDisplay", true); Object.Destroy((Object)(object)characterDisplay.GetComponentInChildren()); characterDisplay.GetComponentInChildren().runtimeAnimatorController = Assets.MainAssetBundle.LoadAsset("displayAnimator"); characterDisplay.AddComponent(); SkinDef[] skins = characterDisplay.GetComponentInChildren().skins; for (int i = 0; i < skins.Length; i++) { for (int j = 0; j < skins[i].rendererInfos.Length; j++) { skins[i].rendererInfos[j].defaultMaterial.shaderKeywords = null; } } string text = "The Spearman is a hybrid ranged/melee brawler that weaves in and out of the fray inflicting massive damage.\r\n\r\n< ! > Battle Stance is Powerful as both a melee and ranged option, allowing the ability to space enemies out while still dealing damage." + Environment.NewLine + "\r\n\r\n< ! > Warriors Spear is a great ability to utilize when needing to apply pressure without getting in close!" + Environment.NewLine + "\r\n\r\n< ! > Correct Application of Vault Kick is key to getting out of sticky situations." + Environment.NewLine + "\r\n\r\n< ! > Annihilation can be used as a defensive option, just as much as offensive!"; string text2 = "..and so he left, pleased, his blood-lust sated."; string text3 = "..and so he vanished, power frozen in time."; string text4 = "\"What…are you?\"\r\n\r\n said the defeated god, as he dropped his sword. His body soaked from both worm blood, and his own." + Environment.NewLine + "The warrior had heard those words many times before, but when standing above this god, he finally knew." + Environment.NewLine + "\"I am a killer. I am no ‘Protector’. No ‘Bulwark’. I've spent my entire life training to fight like since we got stranded here, and ive loved every second of it. I am a survivor. A warrior. I know nothing of this life you've had, nor do I care. What I do know is that it's about to end.\"\r\n\r\n" + Environment.NewLine + "\"You.. monster…\"\r\n\r\n" + Environment.NewLine + "\"Nothing I haven't been called before.\"\r\n\r\n" + Environment.NewLine + "He turned his back to the godly figure." + Environment.NewLine + "\"I may be a monster, but you’re nothing more than a false god. Nothing more than another notch on my spears shaft. a trophy I intend to smile at the memory of killing.\"\r\n\r\n" + Environment.NewLine + "\"How…?\"\r\n\r\n" + Environment.NewLine + "In silence, the warrior turned back to the god and entered his final stance. His spear crackled to life, energy sparking from its tip." + Environment.NewLine + "\"Begone.\"\r\n\r\n" + Environment.NewLine + "He lands the final blow, shaking the old ship's battered hull." + Environment.NewLine + "It's quiet." + Environment.NewLine + "The ship whirrs to life. He can see an old ally at the bridge, fumbling with the controls." + Environment.NewLine + "\"No…\"\r\n\r\n he growled. \"Not yet..\"\r\n\r\n" + Environment.NewLine + "He jumps off the ship, and watches as it leaves." + Environment.NewLine + "\"Now I am god. Let's see how long this planet lasts.\"\r\n\r\n as his eyes wander toward the dead worms."; LanguageAPI.Add("SPEARMAN_NAME", "Spearman"); LanguageAPI.Add("SPEARMAN_DESCRIPTION", text); LanguageAPI.Add("SPEARMAN_SUBTITLE", "God of Petrichor"); LanguageAPI.Add("SPEARMAN_OUTRO", text2); LanguageAPI.Add("SPEARMAN_FAIL", text3); LanguageAPI.Add("SPEARMAN_LORE", text4); SurvivorDef val = ScriptableObject.CreateInstance(); val.cachedName = "SPEARMAN_NAME"; val.unlockableDef = Achievements.survivorUnlock; val.descriptionToken = "SPEARMAN_DESCRIPTION"; val.primaryColor = characterColor; val.bodyPrefab = characterPrefab; val.displayPrefab = characterDisplay; val.outroFlavorToken = "SPEARMAN_OUTRO"; val.desiredSortPosition = 10f; val.mainEndingEscapeFailureFlavorToken = "SPEARMAN_FAIL"; ContentAddition.AddSurvivorDef(val); SkillSetup(); } private void RegisterStates() { //IL_0003: 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_0013: 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_0023: 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_0033: 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_0043: 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_0053: 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_0063: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); ContentAddition.AddEntityState(ref flag); } private void SkillSetup() { GenericSkill[] componentsInChildren = characterPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } PassiveSetup(); PrimarySetup(); SecondarySetup(); UtilitySetup(); SpecialSetup(); } private void PassiveSetup() { SkillLocator component = characterPrefab.GetComponent(); LanguageAPI.Add("SPEARMAN_PASSIVE_NAME", "Battle Scars"); LanguageAPI.Add("SPEARMAN_PASSIVE_DESCRIPTION", "Hitting enemies with abilities inflicts them with the Battle Scars debuff, which slows and grants a 5% damage buff per stack to Spearman. He also has warrior instincts, taking less damage when enemies are too cloce"); LanguageAPI.Add("KEYWORD_BATTLESCARS", "Battle Scars Grants 5% damage. Slows enemies. Battle Scars can stack."); component.passiveSkill.enabled = true; component.passiveSkill.skillNameToken = "SPEARMAN_PASSIVE_NAME"; component.passiveSkill.skillDescriptionToken = "SPEARMAN_PASSIVE_DESCRIPTION"; component.passiveSkill.icon = Assets.MainAssetBundle.LoadAsset("BattleScars"); } private void PrimarySetup() { //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_00a1: 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_017b: 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: Expected O, but got Unknown //IL_01a6: 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) SkillLocator component = characterPrefab.GetComponent(); LanguageAPI.Add("SPEARMAN_M1", "Battle Stance"); LanguageAPI.Add("SPEARMAN_M1_DESCRIPTION", "Ranged attack against out of range enemies and melee against enemies nearby. Ranged: Throw the spear for 175% damage. Melee: Thrust the spear forward dealing 300% damage."); LanguageAPI.Add("SPEARMAN_ALTM1", "Warrior Stance"); LanguageAPI.Add("SPEARMAN_ALTM1_DESCRIPTION", "Thrust the spear forward dealing 400% damage and throwing out a wind blade for 200% damage"); SpearmanSkillDef spearmanSkillDef = ScriptableObject.CreateInstance(); spearmanSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)spearmanSkillDef).activationState = new SerializableEntityStateType(typeof(PrimaryMelee)); ((SkillDef)spearmanSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)spearmanSkillDef).baseMaxStock = 0; ((SkillDef)spearmanSkillDef).baseRechargeInterval = 0f; ((SkillDef)spearmanSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)spearmanSkillDef).canceledFromSprinting = false; ((SkillDef)spearmanSkillDef).fullRestockOnAssign = true; ((SkillDef)spearmanSkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)spearmanSkillDef).isCombatSkill = true; ((SkillDef)spearmanSkillDef).mustKeyPress = false; ((SkillDef)spearmanSkillDef).cancelSprintingOnActivation = false; ((SkillDef)spearmanSkillDef).rechargeStock = 0; ((SkillDef)spearmanSkillDef).requiredStock = 0; ((SkillDef)spearmanSkillDef).stockToConsume = 0; ((SkillDef)spearmanSkillDef).icon = Assets.MainAssetBundle.LoadAsset("SpearAttackPrimary"); ((SkillDef)spearmanSkillDef).skillDescriptionToken = "SPEARMAN_ALTM1_DESCRIPTION"; ((SkillDef)spearmanSkillDef).skillName = "SPEARMAN_ALTM1"; ((SkillDef)spearmanSkillDef).skillNameToken = "SPEARMAN_ALTM1"; ((SkillDef)spearmanSkillDef).keywordTokens = new string[1] { "KEYWORD_AGILE" }; ContentAddition.AddSkillDef((SkillDef)(object)spearmanSkillDef); bool flag = default(bool); ContentAddition.AddEntityState(ref flag); component.primary = characterPrefab.AddComponent(); SkillFamily val = ScriptableObject.CreateInstance(); val.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue((object)component.primary, "_skillFamily", val); SkillFamily skillFamily = component.primary.skillFamily; Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val2 = new Variant { skillDef = (SkillDef)(object)spearmanSkillDef, unlockableDef = null }; ((Variant)(ref val2)).viewableNode = new Node(((SkillDef)spearmanSkillDef).skillNameToken, false, (Node)null); variants[num] = val2; } private void SecondarySetup() { //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_007b: 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_014c: 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_016e: Expected O, but got Unknown //IL_016f: 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_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_01ec: 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_029c: 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_02ca: Expected O, but got Unknown //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02cd: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent(); LanguageAPI.Add("SPEARMAN_M2", "Warriors Spear"); LanguageAPI.Add("SPEARMAN_M2_DESCRIPTION", "Charge up an empowered piercing spear, increasing damage and distance, dealing 300-1000% damage and applies cycling debuff (Freeze, Fire, Electric, Bleed or Poison)."); SpearmanSkillDef spearmanSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)spearmanSkillDef).activationState = new SerializableEntityStateType(typeof(Secondary)); ((SkillDef)spearmanSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)spearmanSkillDef).baseMaxStock = 1; ((SkillDef)spearmanSkillDef).baseRechargeInterval = 5f; ((SkillDef)spearmanSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)spearmanSkillDef).canceledFromSprinting = false; ((SkillDef)spearmanSkillDef).fullRestockOnAssign = false; ((SkillDef)spearmanSkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)spearmanSkillDef).isCombatSkill = true; ((SkillDef)spearmanSkillDef).mustKeyPress = true; ((SkillDef)spearmanSkillDef).cancelSprintingOnActivation = true; ((SkillDef)spearmanSkillDef).rechargeStock = 1; ((SkillDef)spearmanSkillDef).requiredStock = 1; ((SkillDef)spearmanSkillDef).stockToConsume = 1; ((SkillDef)spearmanSkillDef).icon = Assets.MainAssetBundle.LoadAsset("M2 ability icon"); ((SkillDef)spearmanSkillDef).skillDescriptionToken = "SPEARMAN_M2_DESCRIPTION"; ((SkillDef)spearmanSkillDef).skillName = "SPEARMAN_M2"; ((SkillDef)spearmanSkillDef).skillNameToken = "SPEARMAN_M2"; ((SkillDef)spearmanSkillDef).keywordTokens = new string[1] { "KEYWORD_BATTLESCARS" }; ContentAddition.AddSkillDef((SkillDef)(object)spearmanSkillDef); bool flag = default(bool); ContentAddition.AddEntityState(ref flag); component.secondary = characterPrefab.AddComponent(); SkillFamily val = ScriptableObject.CreateInstance(); val.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue((object)component.secondary, "_skillFamily", val); SkillFamily skillFamily = component.secondary.skillFamily; Variant[] variants = skillFamily.variants; Variant val2 = new Variant { skillDef = (SkillDef)(object)spearmanSkillDef }; ((Variant)(ref val2)).viewableNode = new Node(((SkillDef)spearmanSkillDef).skillNameToken, false, (Node)null); variants[0] = val2; ContentAddition.AddSkillFamily(skillFamily); LanguageAPI.Add("SPEARMAN_ALTM2", "Godly Strength"); LanguageAPI.Add("SPEARMAN_ALTM2_DESCRIPTION", "Charge up a deadly spear, increasing damage and distance, Dealing 400-1500% damage and executing low health enemies."); spearmanSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)spearmanSkillDef).activationState = new SerializableEntityStateType(typeof(AltSecondary)); ((SkillDef)spearmanSkillDef).activationStateMachineName = "Weapon"; ((SkillDef)spearmanSkillDef).baseMaxStock = 1; ((SkillDef)spearmanSkillDef).baseRechargeInterval = 5f; ((SkillDef)spearmanSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)spearmanSkillDef).canceledFromSprinting = false; ((SkillDef)spearmanSkillDef).fullRestockOnAssign = false; ((SkillDef)spearmanSkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)spearmanSkillDef).isCombatSkill = true; ((SkillDef)spearmanSkillDef).mustKeyPress = true; ((SkillDef)spearmanSkillDef).cancelSprintingOnActivation = true; ((SkillDef)spearmanSkillDef).rechargeStock = 1; ((SkillDef)spearmanSkillDef).requiredStock = 1; ((SkillDef)spearmanSkillDef).stockToConsume = 1; ((SkillDef)spearmanSkillDef).icon = Assets.MainAssetBundle.LoadAsset("M2 ability icon"); ((SkillDef)spearmanSkillDef).skillDescriptionToken = "SPEARMAN_ALTM2_DESCRIPTION"; ((SkillDef)spearmanSkillDef).skillName = "SPEARMAN_ALTM2"; ((SkillDef)spearmanSkillDef).skillNameToken = "SPEARMAN_ALTM2"; ((SkillDef)spearmanSkillDef).keywordTokens = new string[1] { "KEYWORD_BATTLESCARS" }; ContentAddition.AddSkillDef((SkillDef)(object)spearmanSkillDef); ContentAddition.AddEntityState(ref flag); Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants2 = skillFamily.variants; int num = skillFamily.variants.Length - 1; val2 = new Variant { skillDef = (SkillDef)(object)spearmanSkillDef, unlockableDef = Achievements.secondaryAltUnlock }; ((Variant)(ref val2)).viewableNode = new Node(((SkillDef)spearmanSkillDef).skillNameToken, false, (Node)null); variants2[num] = val2; } private void UtilitySetup() { //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_007b: 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_0154: 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_0176: Expected O, but got Unknown //IL_0177: 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_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_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent(); LanguageAPI.Add("SPEARMAN_UTIL", "Vaulting Kick"); LanguageAPI.Add("SPEARMAN_UTIL_DESCRIPTION", "Slide on the ground, knocking enemies airborne. If an enemy is hit, recast to kick upward into the air for 200% damage."); SpearmanSkillDef spearmanSkillDef = ScriptableObject.CreateInstance(); ((SkillDef)spearmanSkillDef).activationState = new SerializableEntityStateType(typeof(Utility)); ((SkillDef)spearmanSkillDef).activationStateMachineName = "Body"; ((SkillDef)spearmanSkillDef).baseMaxStock = 1; ((SkillDef)spearmanSkillDef).baseRechargeInterval = 5f; ((SkillDef)spearmanSkillDef).beginSkillCooldownOnSkillEnd = true; ((SkillDef)spearmanSkillDef).canceledFromSprinting = false; ((SkillDef)spearmanSkillDef).fullRestockOnAssign = false; ((SkillDef)spearmanSkillDef).interruptPriority = (InterruptPriority)0; ((SkillDef)spearmanSkillDef).isCombatSkill = true; ((SkillDef)spearmanSkillDef).mustKeyPress = true; ((SkillDef)spearmanSkillDef).cancelSprintingOnActivation = false; ((SkillDef)spearmanSkillDef).rechargeStock = 1; ((SkillDef)spearmanSkillDef).requiredStock = 1; ((SkillDef)spearmanSkillDef).stockToConsume = 1; ((SkillDef)spearmanSkillDef).icon = Assets.MainAssetBundle.LoadAsset("UtilityKick"); ((SkillDef)spearmanSkillDef).skillDescriptionToken = "SPEARMAN_UTIL_DESCRIPTION"; ((SkillDef)spearmanSkillDef).skillName = "SPEARMAN_UTIL"; ((SkillDef)spearmanSkillDef).skillNameToken = "SPEARMAN_UTIL"; ((SkillDef)spearmanSkillDef).keywordTokens = new string[2] { "KEYWORD_STUNNING", "KEYWORD_BATTLESCARS" }; ContentAddition.AddSkillDef((SkillDef)(object)spearmanSkillDef); bool flag = default(bool); ContentAddition.AddEntityState(ref flag); component.utility = characterPrefab.AddComponent(); SkillFamily val = ScriptableObject.CreateInstance(); val.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue((object)component.utility, "_skillFamily", val); SkillFamily skillFamily = component.utility.skillFamily; Variant[] variants = skillFamily.variants; Variant val2 = new Variant { skillDef = (SkillDef)(object)spearmanSkillDef }; ((Variant)(ref val2)).viewableNode = new Node(((SkillDef)spearmanSkillDef).skillNameToken, false, (Node)null); variants[0] = val2; ContentAddition.AddSkillFamily(skillFamily); utilityOverrideDef = (SkillDef)(object)ScriptableObject.CreateInstance(); utilityOverrideDef.activationState = new SerializableEntityStateType(typeof(UtilityKick)); utilityOverrideDef.activationStateMachineName = "Body"; utilityOverrideDef.baseMaxStock = 1; utilityOverrideDef.baseRechargeInterval = 0f; utilityOverrideDef.beginSkillCooldownOnSkillEnd = true; utilityOverrideDef.canceledFromSprinting = false; utilityOverrideDef.fullRestockOnAssign = false; utilityOverrideDef.interruptPriority = (InterruptPriority)0; utilityOverrideDef.isCombatSkill = true; utilityOverrideDef.mustKeyPress = true; utilityOverrideDef.cancelSprintingOnActivation = false; utilityOverrideDef.rechargeStock = 0; utilityOverrideDef.requiredStock = 0; utilityOverrideDef.stockToConsume = 0; utilityOverrideDef.icon = Assets.MainAssetBundle.LoadAsset("UtilityKickActive"); utilityOverrideDef.skillDescriptionToken = "SPEARMAN_UTIL_DESCRIPTION"; utilityOverrideDef.skillName = "SPEARMAN_UTIL"; utilityOverrideDef.skillNameToken = "SPEARMAN_UTIL"; utilityOverrideDef.keywordTokens = new string[2] { "KEYWORD_STUNNING", "KEYWORD_BATTLESCARS" }; ContentAddition.AddSkillDef(utilityOverrideDef); ContentAddition.AddEntityState(ref flag); } private void SpecialSetup() { //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_007b: 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_0154: 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_0176: Expected O, but got Unknown //IL_0177: 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) SkillLocator component = characterPrefab.GetComponent(); LanguageAPI.Add("SPEARMAN_SPEC", "Annihilation"); LanguageAPI.Add("SPEARMAN_SPEC_DESCRIPTION", "Jump high into the air and select a target terrain below to slam onto for 1000% damage, releasing a shockwave of energy on impact."); SkillDef val = ScriptableObject.CreateInstance(); val.activationState = new SerializableEntityStateType(typeof(Special)); val.activationStateMachineName = "Body"; val.baseMaxStock = 1; val.baseRechargeInterval = 12f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset("SpecialAnihilaition"); val.skillDescriptionToken = "SPEARMAN_SPEC_DESCRIPTION"; val.skillName = "SPEARMAN_SPEC"; val.skillNameToken = "SPEARMAN_SPEC"; val.keywordTokens = new string[2] { "KEYWORD_STUNNING", "KEYWORD_BATTLESCARS" }; ContentAddition.AddSkillDef(val); bool flag = default(bool); ContentAddition.AddEntityState(ref flag); component.special = characterPrefab.AddComponent(); SkillFamily val2 = ScriptableObject.CreateInstance(); val2.variants = (Variant[])(object)new Variant[1]; Reflection.SetFieldValue((object)component.special, "_skillFamily", val2); SkillFamily skillFamily = component.special.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = val }; ((Variant)(ref val3)).viewableNode = new Node(val.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); } private void CreateDoppelganger() { doppelganger = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), "SpearmanMaster", true); ContentAddition.AddMaster(doppelganger); CharacterMaster component = doppelganger.GetComponent(); component.bodyPrefab = characterPrefab; } } internal class Prefabs { internal static GameObject windBlade; internal static GameObject spearmanIndicator; internal static GameObject spearGhost; internal static GameObject primaryProjectile; internal static GameObject spearThrowProjectile; internal static GameObject altSpearThrowProjectile; internal static GameObject altSpearThrowProjectileGhost; internal static GameObject slamWave; internal static GameObject slamWaveGhost; internal static GameObject projectileHitGroundEffect; internal static GameObject crosshairPrefab; internal static GameObject dashEffect; internal static GameObject meleeSpearEffect; internal static GameObject kickEffect; internal static GameObject chargeEffect; internal static GameObject meleeIndicatorAttachment; internal static GameObject meleeIndicator; internal static GameObject spearmanInteractable; internal static GameObject hitEffect; internal static ModdedDamageType spearHit; internal static ModdedDamageType altSpearHit; internal static ModdedDamageType slideHit; internal static BuffDef stiffAndOrSturdy { get; set; } internal static BuffDef scars { get; set; } internal static BuffDef scarsDebuff { get; set; } internal static void CreatePrefabs() { //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_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_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_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_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_0157: 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: Expected O, but got Unknown //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_025e: Unknown result type (might be due to invalid IL or missing references) //IL_035f: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_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_0444: Unknown result type (might be due to invalid IL or missing references) //IL_044e: 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_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_0492: Unknown result type (might be due to invalid IL or missing references) //IL_0499: Expected O, but got Unknown //IL_04df: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Expected O, but got Unknown //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_052b: 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_0642: Unknown result type (might be due to invalid IL or missing references) //IL_0647: 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_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: 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_0785: Unknown result type (might be due to invalid IL or missing references) //IL_078a: Unknown result type (might be due to invalid IL or missing references) //IL_085e: Unknown result type (might be due to invalid IL or missing references) //IL_086d: Unknown result type (might be due to invalid IL or missing references) //IL_0893: Unknown result type (might be due to invalid IL or missing references) //IL_0898: Unknown result type (might be due to invalid IL or missing references) //IL_08c1: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Unknown result type (might be due to invalid IL or missing references) //IL_08db: 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_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a14: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a3e: Unknown result type (might be due to invalid IL or missing references) //IL_0a43: Unknown result type (might be due to invalid IL or missing references) //IL_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_0ab0: Unknown result type (might be due to invalid IL or missing references) //IL_0b0f: Unknown result type (might be due to invalid IL or missing references) //IL_0bc7: Unknown result type (might be due to invalid IL or missing references) //IL_0bce: Expected O, but got Unknown //IL_0be5: Unknown result type (might be due to invalid IL or missing references) //IL_0c01: Unknown result type (might be due to invalid IL or missing references) //IL_0c5c: 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_0cef: 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_0d44: Unknown result type (might be due to invalid IL or missing references) //IL_0d4b: Expected O, but got Unknown //IL_0d52: Unknown result type (might be due to invalid IL or missing references) //IL_0d57: Unknown result type (might be due to invalid IL or missing references) //IL_0d91: Unknown result type (might be due to invalid IL or missing references) //IL_0e0b: Unknown result type (might be due to invalid IL or missing references) //IL_0e10: Unknown result type (might be due to invalid IL or missing references) //IL_0e84: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0ea1: Unknown result type (might be due to invalid IL or missing references) //IL_0ebc: Unknown result type (might be due to invalid IL or missing references) //IL_0ec1: Unknown result type (might be due to invalid IL or missing references) //IL_0f09: Unknown result type (might be due to invalid IL or missing references) //IL_0f0e: Unknown result type (might be due to invalid IL or missing references) //IL_1091: 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_0f5c: Unknown result type (might be due to invalid IL or missing references) //IL_0f61: Unknown result type (might be due to invalid IL or missing references) //IL_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa0: Unknown result type (might be due to invalid IL or missing references) //IL_0fda: Unknown result type (might be due to invalid IL or missing references) //IL_0fdf: 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: Expected O, but got Unknown //IL_10f6: Unknown result type (might be due to invalid IL or missing references) //IL_1112: 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_114b: Unknown result type (might be due to invalid IL or missing references) //IL_1150: Unknown result type (might be due to invalid IL or missing references) //IL_1195: Unknown result type (might be due to invalid IL or missing references) //IL_119a: 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_1368: Unknown result type (might be due to invalid IL or missing references) //IL_136d: Unknown result type (might be due to invalid IL or missing references) //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13df: Unknown result type (might be due to invalid IL or missing references) //IL_1400: Unknown result type (might be due to invalid IL or missing references) //IL_1412: Unknown result type (might be due to invalid IL or missing references) //IL_141c: Unknown result type (might be due to invalid IL or missing references) //IL_1433: Unknown result type (might be due to invalid IL or missing references) //IL_1438: Unknown result type (might be due to invalid IL or missing references) //IL_144c: Unknown result type (might be due to invalid IL or missing references) //IL_1451: Unknown result type (might be due to invalid IL or missing references) //IL_1474: Unknown result type (might be due to invalid IL or missing references) //IL_147e: Unknown result type (might be due to invalid IL or missing references) //IL_1498: Unknown result type (might be due to invalid IL or missing references) //IL_149d: Unknown result type (might be due to invalid IL or missing references) //IL_15bc: Unknown result type (might be due to invalid IL or missing references) //IL_15da: Unknown result type (might be due to invalid IL or missing references) //IL_15fd: Unknown result type (might be due to invalid IL or missing references) //IL_1648: Unknown result type (might be due to invalid IL or missing references) //IL_164d: Unknown result type (might be due to invalid IL or missing references) //IL_1274: Unknown result type (might be due to invalid IL or missing references) //IL_130b: Unknown result type (might be due to invalid IL or missing references) //IL_1345: Unknown result type (might be due to invalid IL or missing references) spearHit = DamageAPI.ReserveDamageType(); altSpearHit = DamageAPI.ReserveDamageType(); slideHit = DamageAPI.ReserveDamageType(); scars = ScriptableObject.CreateInstance(); ((Object)scars).name = "Battle Scars"; scars.iconSprite = Assets.MainAssetBundle.LoadAsset("BattleScarsDebuff"); scars.buffColor = Color.white; scars.canStack = true; scars.isDebuff = false; scars.eliteDef = null; ContentAddition.AddBuffDef(scars); scarsDebuff = ScriptableObject.CreateInstance(); ((Object)scarsDebuff).name = "Battle Scars"; scarsDebuff.iconSprite = Assets.MainAssetBundle.LoadAsset("BattleScarsDebuff"); scarsDebuff.buffColor = Color.white; scarsDebuff.canStack = true; scarsDebuff.isDebuff = true; scarsDebuff.eliteDef = null; ContentAddition.AddBuffDef(scarsDebuff); crosshairPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponent().defaultCrosshairPrefab, "SpearmanCrosshair", false); Object.Destroy((Object)(object)crosshairPrefab.GetComponent()); foreach (object item in crosshairPrefab.transform) { Object.Destroy((Object)(object)((Component)(Transform)item).gameObject); } crosshairPrefab.GetComponent().spriteSpreadPositions = Array.Empty(); GameObject val = new GameObject("CrosshairDot", new Type[1] { typeof(RectTransform) }); Transform transform = val.transform; RectTransform val2 = (RectTransform)(object)((transform is RectTransform) ? transform : null); ((Transform)val2).localPosition = Vector2.op_Implicit(new Vector2(0f, 0f)); val2.SetSizeWithCurrentAnchors((Axis)0, MainPlugin.crosshairSize.Value); val2.SetSizeWithCurrentAnchors((Axis)1, MainPlugin.crosshairSize.Value); val.transform.SetParent(crosshairPrefab.transform); val.AddComponent().sprite = Assets.MainAssetBundle.LoadAsset("crosshair"); val.GetComponent().preserveAspect = true; ((Transform)((Graphic)val.GetComponent()).rectTransform).localPosition = new Vector3(0f, 0f, 0f); Utils.CreateRectTransform(crosshairPrefab.transform, "CrosshairStack1", Assets.MainAssetBundle.LoadAsset("crosshairStack1"), MainPlugin.crosshairSize.Value); Utils.CreateRectTransform(crosshairPrefab.transform, "CrosshairStack2", Assets.MainAssetBundle.LoadAsset("crosshairStack2"), MainPlugin.crosshairSize.Value); Utils.CreateRectTransform(crosshairPrefab.transform, "CrosshairStack3", Assets.MainAssetBundle.LoadAsset("crosshairStack3"), MainPlugin.crosshairSize.Value); Utils.CreateRectTransform(crosshairPrefab.transform, "CrosshairStack4", Assets.MainAssetBundle.LoadAsset("crosshairStack4"), MainPlugin.crosshairSize.Value); Utils.CreateRectTransform(crosshairPrefab.transform, "CrosshairStack5", Assets.MainAssetBundle.LoadAsset("crosshairStack5"), MainPlugin.crosshairSize.Value); crosshairPrefab.AddComponent(); projectileHitGroundEffect = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync((object)"RoR2/Base/Gravekeeper/GravekeeperHookProjectileSimple.prefab").WaitForCompletion().transform.GetChild(0)).gameObject, "SpearmanProjectileHitGroundEffect", false); projectileHitGroundEffect.SetActive(true); Utils.RegisterEffect(projectileHitGroundEffect, 1f, "gravekeeper_attack2_impact_01"); spearGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/MiniMushroom/SporeGrenadeGhost.prefab").WaitForCompletion(), "SpearGhost", true); Object.Destroy((Object)(object)((Component)spearGhost.transform).GetComponentInChildren(typeof(MeshRenderer)).gameObject); Object.Destroy((Object)(object)((Component)spearGhost.transform.Find("Stabs")).gameObject); spearGhost.AddComponent(); GameObject val3 = Object.Instantiate(Assets.MainAssetBundle.LoadAsset("spear"), spearGhost.transform); val3.transform.localScale = Vector3.one * 315f; ObjectScaleCurve val4 = val3.AddComponent(); AnimationCurve val5 = new AnimationCurve((Keyframe[])(object)new Keyframe[2] { new Keyframe(0f, 0f), new Keyframe(1f, 1f) }); val5.preWrapMode = (WrapMode)8; val5.postWrapMode = (WrapMode)8; val4.useOverallCurveOnly = true; val4.overallCurve = val5; val4.timeMax = 0.07f; TrailRenderer val6 = (TrailRenderer)((Component)spearGhost.transform).GetComponentInChildren(typeof(TrailRenderer), false); ((Renderer)val6).material = Addressables.LoadAssetAsync((object)"RoR2/Base/LunarGolem/matLunarGolemShieldTrails.mat").WaitForCompletion(); ((Component)val6).gameObject.transform.SetParent(val3.transform.GetChild(0)); ((Component)val6).gameObject.transform.localPosition = Vector3.zero; ShakeEmitter val7 = spearGhost.AddComponent(); val7.shakeOnStart = true; val7.shakeOnEnable = false; Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), spearGhost); Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), spearGhost); Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), spearGhost); primaryProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarSkillReplacements/LunarNeedleProjectile.prefab").WaitForCompletion(), "SpearmanPrimarySpearProjectile", true); Object.Destroy((Object)(object)primaryProjectile.GetComponent()); Object.Destroy((Object)(object)primaryProjectile.GetComponent()); Object.Destroy((Object)(object)primaryProjectile.GetComponent()); ProjectileController component = primaryProjectile.GetComponent(); component.ghostPrefab = spearGhost; component.procCoefficient = 0.7f; ProjectileSingleTargetImpact component2 = primaryProjectile.GetComponent(); component2.impactEffect = null; component2.destroyOnWorld = true; component2.destroyWhenNotAlive = true; component2.impactEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/OmniImpactVFXLightning.prefab").WaitForCompletion(); ProjectileSteerTowardTarget val8 = primaryProjectile.AddComponent(); val8.rotationSpeed = 250f; primaryProjectile.AddComponent().maxVelocity = 90f; primaryProjectile.AddComponent(); primaryProjectile.AddComponent(); primaryProjectile.AddComponent().Add(spearHit); ContentAddition.AddProjectile(primaryProjectile); windBlade = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Vulture/WindbladeProjectile.prefab").WaitForCompletion(), "SpearmanPrimaryWindBlade", true); windBlade.GetComponent().desiredForwardSpeed = 110f; windBlade.GetComponent().velocity = 110f; ContentAddition.AddProjectile(windBlade); stiffAndOrSturdy = ScriptableObject.CreateInstance(); ((Object)stiffAndOrSturdy).name = "Battle Scars"; stiffAndOrSturdy.iconSprite = Assets.MainAssetBundle.LoadAsset("BattleScarsDebuff"); stiffAndOrSturdy.buffColor = Color.white; stiffAndOrSturdy.canStack = false; stiffAndOrSturdy.isDebuff = false; stiffAndOrSturdy.eliteDef = null; ContentAddition.AddBuffDef(stiffAndOrSturdy); spearThrowProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Junk/Commando/FMJ.prefab").WaitForCompletion(), "SpearmanSecondarySpearProjectile", true); ProjectileController component3 = spearThrowProjectile.GetComponent(); component3.ghostPrefab = spearGhost; component3.procCoefficient = 0.7f; ProjectileOverlapAttack component4 = spearThrowProjectile.GetComponent(); component4.damageCoefficient = 1f; ProjectileImpactExplosion val9 = spearThrowProjectile.AddComponent(); val9.lifetime = 8f; ((ProjectileExplosion)val9).blastDamageCoefficient = 0f; ((ProjectileExplosion)val9).blastRadius = 0f; ((ProjectileExplosion)val9).childrenProjectilePrefab = null; ((ProjectileExplosion)val9).fireChildren = false; val9.destroyOnWorld = true; val9.destroyOnEnemy = false; val9.timerAfterImpact = false; val9.lifetimeAfterImpact = 0.1f; ((ProjectileExplosion)val9).explosionEffect = projectileHitGroundEffect; val9.impactEffect = projectileHitGroundEffect; ((ProjectileExplosion)val9).blastAttackerFiltering = (AttackerFiltering)2; spearThrowProjectile.AddComponent().Add(spearHit); spearThrowProjectile.AddComponent(); ContentAddition.AddProjectile(spearThrowProjectile); slamWaveGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherSunderWaveGhost.prefab").WaitForCompletion(), "SpearmanSlamWaveGhost", true); slamWaveGhost.AddComponent(); Material material = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/matMageMatrixDirectionalLightning.mat").WaitForCompletion(); Material material2 = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matJellyfishLightningLarge.mat").WaitForCompletion(); ParticleSystemRenderer[] componentsInChildren = slamWaveGhost.GetComponentsInChildren(true); for (int i = 0; i < componentsInChildren.Length; i++) { if (((Object)((Component)componentsInChildren[i]).gameObject).name == "Water") { ((Renderer)componentsInChildren[i]).material = material; } if (((Object)((Component)componentsInChildren[i]).gameObject).name == "Dust") { ((Renderer)componentsInChildren[i]).material = material2; } } slamWave = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherSunderWave.prefab").WaitForCompletion(), "SpearmanSlamWaveProjectile", true); slamWave.GetComponent().lifetime = 1.7f; ProjectileController component5 = slamWave.GetComponent(); component5.ghostPrefab = slamWaveGhost; component5.procCoefficient = 0.7f; LoopSoundDef val10 = ScriptableObject.CreateInstance(); val10.startSoundName = "Play_mage_m2_charge"; val10.stopSoundName = ""; component5.flightSoundLoop = val10; component5.shouldPlaySounds = true; slamWave.GetComponent().forceVector = new Vector3(0f, -2000f, 0f); slamWave.AddComponent().Add(spearHit); ContentAddition.AddProjectile(slamWave); spearmanIndicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressTrackingIndicator.prefab").WaitForCompletion(), "SpearmanTrackerIndicator", true); spearmanIndicator.AddComponent(); SpriteRenderer[] componentsInChildren2 = spearmanIndicator.GetComponentsInChildren(); for (int j = 0; j < componentsInChildren2.Length; j++) { if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "Nib") { componentsInChildren2[j].color = new Color(0.41176f, 0.68235f, 1f); componentsInChildren2[j].sprite = Assets.MainAssetBundle.LoadAsset("texCrosshairArrow"); } if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "Core Pip") { componentsInChildren2[j].color = new Color(0.41176f, 0.68235f, 1f, 0.1372549f); componentsInChildren2[j].sprite = Assets.MainAssetBundle.LoadAsset("texCursorController_Active"); } if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "Core, Dark") { Object.Destroy((Object)(object)((Component)componentsInChildren2[j]).gameObject); } } dashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherDashEffect.prefab").WaitForCompletion(), "SpearmanUtilityDashEffect", true); dashEffect.AddComponent(); foreach (Transform item2 in dashEffect.transform) { Transform val11 = item2; val11.localRotation = new Quaternion(90f, 0f, 0f, 0f); val11.localScale = new Vector3(0.4f, 0.4f, 0.4f); if (!(((Object)((Component)val11).gameObject).name == "Dash")) { } } ContentAddition.AddEffect(dashEffect); altSpearThrowProjectileGhost = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/MiniMushroom/SporeGrenadeGhost.prefab").WaitForCompletion(), "AltSpearGhost", true); Object.Destroy((Object)(object)((Component)altSpearThrowProjectileGhost.transform).GetComponentInChildren(typeof(MeshRenderer)).gameObject); Object.Destroy((Object)(object)((Component)altSpearThrowProjectileGhost.transform.Find("Stabs")).gameObject); altSpearThrowProjectileGhost.AddComponent(); GameObject val12 = Object.Instantiate(Assets.MainAssetBundle.LoadAsset("spear"), altSpearThrowProjectileGhost.transform); val12.transform.localScale = Vector3.one * 200f; ObjectScaleCurve val13 = val12.AddComponent(); val13.useOverallCurveOnly = true; val13.overallCurve = val5; val13.timeMax = 0.07f; TrailRenderer val14 = (TrailRenderer)((Component)altSpearThrowProjectileGhost.transform).GetComponentInChildren(typeof(TrailRenderer), false); ((Renderer)val14).material = Addressables.LoadAssetAsync((object)"RoR2/Base/LunarWisp/matLunarWispBombChargeTrail.mat").WaitForCompletion(); ((Component)val14).gameObject.transform.SetParent(val12.transform.GetChild(0)); ((Component)val14).gameObject.transform.localPosition = Vector3.zero; ShakeEmitter val15 = altSpearThrowProjectileGhost.AddComponent(); val15.shakeOnStart = true; val15.shakeOnEnable = false; Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), altSpearThrowProjectileGhost); Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), altSpearThrowProjectileGhost); Utils.CopyComponent(LegacyResourcesAPI.Load("prefabs/effects/mercswordslashwhirlwind").GetComponent(), altSpearThrowProjectileGhost); altSpearThrowProjectile = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Lemurian/Fireball.prefab").WaitForCompletion(), "SpearmanAltSecondarySpearProjectile", true); Object.Destroy((Object)(object)altSpearThrowProjectile.GetComponent()); altSpearThrowProjectile.GetComponent().desiredForwardSpeed = 120f; ProjectileController component6 = altSpearThrowProjectile.GetComponent(); component6.ghostPrefab = altSpearThrowProjectileGhost; component6.procCoefficient = 0.7f; ProjectileSingleTargetImpact component7 = altSpearThrowProjectile.GetComponent(); component7.impactEffect = Addressables.LoadAssetAsync((object)"RoR2/Base/LunarWisp/LunarWispTrackingBombExplosion.prefab").WaitForCompletion(); altSpearThrowProjectile.AddComponent().Add(altSpearHit); ContentAddition.AddProjectile(altSpearThrowProjectile); meleeSpearEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/LoaderFistLoop.prefab").WaitForCompletion(), "SpearmanAttackEffect", true); meleeSpearEffect.AddComponent(); meleeSpearEffect.AddComponent().duration = 0.3f; ((Renderer)meleeSpearEffect.GetComponentInChildren(false)).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/matHuntressFlurryArrowTrail.mat").WaitForCompletion(); ParticleSystemRenderer[] componentsInChildren3 = meleeSpearEffect.GetComponentsInChildren(); for (int k = 0; k < componentsInChildren3.Length; k++) { if (((Object)((Component)componentsInChildren3[k]).gameObject).name == "LoaderLightning") { ((Renderer)componentsInChildren3[k]).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/matMageMatrixLightning.mat").WaitForCompletion(); } if (((Object)((Component)componentsInChildren3[k]).gameObject).name == "OmniBillboard") { ((Renderer)componentsInChildren3[k]).material = Addressables.LoadAssetAsync((object)"RoR2/Base/BFG/matBeamSphereLightning.mat").WaitForCompletion(); } if (((Object)((Component)componentsInChildren3[k]).gameObject).name == "Sparks, Fast") { ((Renderer)componentsInChildren3[k]).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/matMageMatrixDirectionalLightning.mat").WaitForCompletion(); } if (((Object)((Component)componentsInChildren3[k]).gameObject).name == "Ring Billboards") { ((Renderer)componentsInChildren3[k]).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matJellyfishLightningLarge.mat").WaitForCompletion(); } if (((Object)((Component)componentsInChildren3[k]).gameObject).name == "Dust") { Object.Destroy((Object)(object)((Component)componentsInChildren3[k]).gameObject); } } Utils.RegisterEffect(meleeSpearEffect, 0.5f); kickEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherDashEffect.prefab").WaitForCompletion(), "SpearmanUtilityDashEffect", true); kickEffect.AddComponent(); foreach (Transform item3 in kickEffect.transform) { Transform val16 = item3; val16.localRotation = new Quaternion(90f, 0f, 0f, 0f); val16.localScale = new Vector3(0.1f, 0.1f, 0.1f); if (((Object)((Component)val16).gameObject).name == "Dash") { ((Renderer)((Component)val16).gameObject.GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matShieldBreakLightning.mat").WaitForCompletion(); } } ContentAddition.AddEffect(kickEffect); chargeEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarGolem/ChargeLunarGolemTwinShot.prefab").WaitForCompletion(), "SpearmanChargeEffect", true); chargeEffect.AddComponent(); chargeEffect.GetComponent().initialDuration = 0.5f; Object.Destroy((Object)(object)chargeEffect.GetComponent()); Object.Destroy((Object)(object)chargeEffect.GetComponent()); Quaternion val17 = default(Quaternion); ((Quaternion)(ref val17))..ctor(0f, 90f, 180f, 0f); Transform[] componentsInChildren4 = chargeEffect.GetComponentsInChildren(); foreach (Transform val18 in componentsInChildren4) { val18.localScale = new Vector3(0.5f, 0.5f, 0.5f); if (((Object)((Component)val18).gameObject).name == "TellRing_Ps") { val18.localScale = new Vector3(0.3f, 0.3f, 0.3f); } if (((Object)((Component)val18).gameObject).name == "Particles") { val18.rotation_Injected = ref val17; val18.localRotation_Injected = ref val17; } if (((Object)((Component)val18).gameObject).name == "LightShafts_Ps") { Object.Destroy((Object)(object)((Component)val18).gameObject); } if (((Object)((Component)val18).gameObject).name == "Sparks_Ps") { val18.localScale = new Vector3(0.3f, 0.3f, 0.3f); } if (((Object)((Component)val18).gameObject).name == "BaseGlow_Ps") { val18.localScale = new Vector3(0.2f, 0.2f, 0.2f); } } meleeIndicatorAttachment = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/DLC1/MajorAndMinorConstruct/MegaConstructBubbleShield.prefab").WaitForCompletion(), "SpearmanMeleeIndicatorAttachment", true); Object.Destroy((Object)(object)((Component)meleeIndicatorAttachment.transform.Find("Fairies")).gameObject); Object.Destroy((Object)(object)((Component)meleeIndicatorAttachment.transform.Find("Collision")).gameObject); meleeIndicatorAttachment.GetComponent().localPlayerAuthority = true; GameObject val19 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), meleeIndicatorAttachment.transform); val19.transform.localPosition = Vector3.zero; val19.transform.localScale = Vector3.one * 7f; ((Renderer)val19.GetComponentInChildren()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/WarCryOnMultiKill/matWarcrySphereIndicator.mat").WaitForCompletion(); meleeIndicator = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab").WaitForCompletion(), "SpearmanmeleeIndicator", false); meleeIndicator.transform.localScale = Vector3.one * 7f; ((Renderer)meleeIndicator.GetComponentInChildren()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/WarCryOnMultiKill/matWarcrySphereIndicator.mat").WaitForCompletion(); LanguageAPI.Add("SPEARMAN_INTERACTABLE_NAME", "Spearman's Spear"); LanguageAPI.Add("SPEARMAN_INTERACTABLE_CONTEXT", "Eradicate"); spearmanInteractable = PrefabAPI.InstantiateClone(Assets.MainAssetBundle.LoadAsset("spearInteractable"), "SpearmanInteractable", true); spearmanInteractable.AddComponent(); Highlight val20 = spearmanInteractable.AddComponent(); NetworkTransform val21 = spearmanInteractable.AddComponent(); val21.sendInterval = 0.1f; val21.syncRotationAxis = (AxisSyncMode)7; val21.movementTheshold = 0.001f; val21.velocityThreshold = 0.0001f; val21.snapThreshold = 5f; val21.interpolateMovement = 1f; val21.interpolateRotation = 1f; BarrelInteraction val22 = spearmanInteractable.AddComponent(); val22.goldReward = 0; val22.expReward = 0u; val22.displayNameToken = "SPEARMAN_INTERACTABLE_NAME"; val22.contextToken = "SPEARMAN_INTERACTABLE_CONTEXT"; GameObject gameObject = ((Component)spearmanInteractable.transform.Find("spear")).gameObject; ((Renderer)gameObject.GetComponent()).material = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset("base").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); gameObject.transform.localPosition = Vector3.zero; val20.targetRenderer = (Renderer)(object)gameObject.GetComponent(); EntityLocator val23 = gameObject.AddComponent(); val23.entity = spearmanInteractable; GenericDisplayNameProvider val24 = spearmanInteractable.AddComponent(); val24.displayToken = "SPEARMAN_INTERACTABLE_NAME"; hitEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/OmniImpactVFXLightning.prefab").WaitForCompletion(), "SpearmanHitEffect", true); hitEffect.AddComponent(); hitEffect.GetComponent().soundName = "Play_merc_sword_impact"; ContentAddition.AddEffect(hitEffect); } } internal class CharacterMain : GenericCharacterMain { internal static SkillDef skillDef = MainPlugin.utilityOverrideDef; private float stopwatch; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) || !Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.utility)) { return; } if (((EntityState)this).skillLocator.utility.HasSkillOverrideOfPriority((SkillOverridePriority)4)) { stopwatch += Time.fixedDeltaTime; if (stopwatch >= 2f && Object.op_Implicit((Object)(object)Utility.utilitySkillSlot)) { Utility.utilitySkillSlot.UnsetSkillOverride((object)((EntityState)this).gameObject, skillDef, (SkillOverridePriority)4); } } else { stopwatch = 0f; } } } public class PrimarySkill : BaseState { public enum ComboState { Attack1, Attack2, Attack3 } private float baseComboAttackDuration = 0.6f; private float baseFinisherAttackDuration = 1f; private float baseEarlyExitDuration = 0.15f; private string baseComboAttackHitBoxGroupName = "Swing1"; private string baseFinisherAttackHitBoxGroupName = "Swing2"; private uint attackSound; private string playbackRateParam = "M1"; private float hitPauseDuration = 0.05f; private float forceMagnitude = -1500f; private float selfForceMagnitude = 3000f; private float comboDamageCoefficient = 1.7f; private float finisherDamageCoefficient = 2.5f; private float stopwatch; private float attackDuration; private float earlyExitDuration; private Animator animator; private OverlapAttack overlapAttack; private float hitPauseTimer; private bool isInHitPause; private bool hasSwung; private bool hasHit; internal ComboState comboState; private string slashChildName; private HitStopCachedState hitStopCachedState; public GameObject swingEffectPrefab = null; public GameObject hitEffectPrefab; private bool hop; public override void OnEnter() { //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_0256: Unknown result type (might be due to invalid IL or missing references) //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); hop = true; ((BaseState)this).StartAimMode(3f, false); stopwatch = 0f; earlyExitDuration = baseEarlyExitDuration / base.attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); bool @bool = animator.GetBool("isMoving"); bool bool2 = animator.GetBool("isGrounded"); switch (comboState) { case ComboState.Attack1: attackDuration = baseComboAttackDuration / base.attackSpeedStat; overlapAttack = ((BaseState)this).InitMeleeOverlap(comboDamageCoefficient, hitEffectPrefab, ((EntityState)this).GetModelTransform(), baseComboAttackHitBoxGroupName); if (@bool || !bool2) { ((EntityState)this).PlayCrossfade("Gesture, Override", "Swing1", playbackRateParam, attackDuration / 2f, 0.05f); } else { ((EntityState)this).PlayCrossfade("FullBody, Override", "Swing1", playbackRateParam, attackDuration / 2f, 0.05f); } hitEffectPrefab = Prefabs.hitEffect; slashChildName = "SwingMuzzle"; attackSound = Sounds.Play_Spearman_ComboBegin; break; case ComboState.Attack2: attackDuration = baseComboAttackDuration / base.attackSpeedStat; overlapAttack = ((BaseState)this).InitMeleeOverlap(comboDamageCoefficient, hitEffectPrefab, ((EntityState)this).GetModelTransform(), baseComboAttackHitBoxGroupName); if (@bool || !bool2) { ((EntityState)this).PlayCrossfade("Gesture, Override", "Swing2", playbackRateParam, attackDuration / 2f, 0.05f); } else { ((EntityState)this).PlayCrossfade("FullBody, Override", "Swing2", playbackRateParam, attackDuration / 2f, 0.05f); } hitEffectPrefab = Prefabs.hitEffect; slashChildName = "SwingMuzzle"; attackSound = Sounds.Play_Spearman_ComboMiddleSwing; break; case ComboState.Attack3: attackDuration = baseFinisherAttackDuration / base.attackSpeedStat; overlapAttack = ((BaseState)this).InitMeleeOverlap(finisherDamageCoefficient, hitEffectPrefab, ((EntityState)this).GetModelTransform(), baseFinisherAttackHitBoxGroupName); overlapAttack.forceVector = ((EntityState)this).characterDirection.forward + Vector3.up; overlapAttack.pushAwayForce = forceMagnitude; if (@bool || !bool2) { ((EntityState)this).PlayCrossfade("Gesture, Override", "Swing3", playbackRateParam, attackDuration / 2f, 0.05f); } else { ((EntityState)this).PlayCrossfade("FullBody, Override", "Swing3", playbackRateParam, attackDuration / 2f, 0.05f); } hitEffectPrefab = Prefabs.hitEffect; slashChildName = "OverheadMuzzle"; attackSound = Sounds.Play_Spearman_ComboFinish; break; } ((EntityState)this).characterBody.SetAimTimer(attackDuration + 1f); overlapAttack.hitEffectPrefab = hitEffectPrefab; } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { //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_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_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_00e4: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = false; hitPauseTimer -= Time.fixedDeltaTime; if (((EntityState)this).isAuthority) { bool flag = overlapAttack.Fire((List)null); hasHit |= flag; if (flag) { if (hop) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 5f); hop = false; } if (!isInHitPause) { hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, playbackRateParam); hitPauseTimer = hitPauseDuration / base.attackSpeedStat; isInHitPause = true; } } if (hitPauseTimer <= 0f && isInHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); isInHitPause = false; } } if (!hasSwung) { AkSoundEngine.PostEvent(attackSound, ((EntityState)this).gameObject); if (NetworkServer.active) { ((EntityState)this).characterBody.healthComponent.TakeDamageForce(selfForceMagnitude / base.attackSpeedStat * ((EntityState)this).characterDirection.forward, true, false); } hasSwung = true; FireProjectile(); } if (!isInHitPause) { stopwatch += Time.fixedDeltaTime; } else { ((EntityState)this).characterMotor.velocity = Vector3.zero; animator.SetFloat(playbackRateParam, 0f); } if (!((EntityState)this).isAuthority || !(stopwatch >= attackDuration - earlyExitDuration)) { return; } if (((EntityState)this).inputBank.skill1.down && comboState != ComboState.Attack3) { PrimaryTransition primaryTransition = new PrimaryTransition(); primaryTransition.comboState = comboState + 1; if (comboState == ComboState.Attack1) { primaryTransition.transitionDuration = 0.25f; } ((EntityState)this).outer.SetNextState((EntityState)(object)primaryTransition); } else if (stopwatch >= attackDuration) { ((EntityState)this).outer.SetNextStateToMain(); } } private void FireProjectile() { //IL_0011: 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_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_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_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_009c: 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_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_00d2: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * 2f; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; val.owner = ((EntityState)this).gameObject; Ray aimRay = ((BaseState)this).GetAimRay(); val.position = ((Ray)(ref aimRay)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Vulture/WindbladeProjectile.prefab").WaitForCompletion(); aimRay = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(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)1; } public override void OnSerialize(NetworkWriter writer) { ((EntityState)this).OnSerialize(writer); writer.Write((byte)comboState); } public override void OnDeserialize(NetworkReader reader) { ((EntityState)this).OnDeserialize(reader); comboState = (ComboState)reader.ReadByte(); } } internal class PrimaryTransition : BaseSkillState { public PrimarySkill.ComboState comboState; public float transitionDuration = 0.5f; public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= transitionDuration / ((BaseState)this).attackSpeedStat && ((EntityState)this).isAuthority) { PrimarySkill primarySkill = new PrimarySkill(); primarySkill.comboState = comboState; ((EntityState)this).outer.SetNextState((EntityState)(object)primarySkill); } } 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 MeleeSkillState : BaseSkillState { internal float hitPauseDuration; internal float hopVelocity = Assaulter.smallHopVelocity; internal string animParameter = ""; internal float hitPauseTimer; internal bool isInHitPause; internal HitStopCachedState hitStopCachedState; internal Animator animator; internal float stopwatch; internal OverlapAttack attack; internal bool hitCallback; internal float damage; internal GameObject hitEffectPrefab; internal HitBoxGroup hitBoxGroup; internal DamageType damageType = (DamageType)0; internal DamageColorIndex damageColor = (DamageColorIndex)0; internal Vector3 forceVector = Vector3.back * 100f; internal float attackStopwatch; public override void OnEnter() { ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); isInHitPause = false; hitPauseDuration = GroundLight.hitPauseDuration / ((BaseState)this).attackSpeedStat; } internal OverlapAttack NewOverlapAttack() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_000d: 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_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_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_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) OverlapAttack val = new OverlapAttack(); val.procChainMask = default(ProcChainMask); val.procCoefficient = 1f; val.attacker = ((EntityState)this).gameObject; val.inflictor = ((EntityState)this).gameObject; val.teamIndex = ((EntityState)this).characterBody.teamComponent.teamIndex; val.damage = ((EntityState)this).characterBody.damage * damage; val.forceVector = forceVector; val.hitEffectPrefab = hitEffectPrefab; val.isCrit = ((EntityState)this).characterBody.RollCrit(); val.damageColorIndex = damageColor; val.damageType = DamageTypeCombo.op_Implicit(damageType); val.maximumOverlapTargets = 100; val.hitBoxGroup = hitBoxGroup; return val; } public override void FixedUpdate() { //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); hitPauseTimer -= Time.fixedDeltaTime; if (hitCallback && !isInHitPause) { if (!((BaseState)this).isGrounded) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hopVelocity); } if (!Utility.IsNullOrWhiteSpace(animParameter)) { hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, animParameter); } hitPauseTimer = hitPauseDuration / ((BaseState)this).attackSpeedStat; isInHitPause = true; } if (!Utility.IsNullOrWhiteSpace(animParameter) && hitPauseTimer <= 0f && isInHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); isInHitPause = false; } if (!isInHitPause) { attackStopwatch += Time.fixedDeltaTime; stopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)animator)) { animator.speed = 1f; } } else if (Object.op_Implicit((Object)(object)animator)) { animator.speed = 0f; } } } internal class Primary : MeleeSkillState { private float duration; private float baseDuration = 0.65f; private float meleeDamage = 3f; private float rangedDamage = 1.75f; private Ray aimRay; private Transform modelTransform; private ChildLocator childLocator; private bool melee; private bool hasAttacked; private SpearmanTracker tracker; private GameObject target; private float rangedDelay; private float baseRangedDelay = 0.55f; private float minFire; private float baseMinFire = 0.25f; public override void OnEnter() { //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) base.OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; rangedDelay = baseRangedDelay / ((BaseState)this).attackSpeedStat; minFire = baseMinFire / ((BaseState)this).attackSpeedStat; damage = meleeDamage; animParameter = "M1"; hitEffectPrefab = Prefabs.hitEffect; ((BaseState)this).StartAimMode(2f, false); aimRay = ((BaseState)this).GetAimRay(); childLocator = ((EntityState)this).GetModelChildLocator(); animator = ((EntityState)this).GetModelAnimator(); tracker = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("spear")).gameObject.SetActive(false); } modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)((EntityState)this).GetModelTransform()).GetComponents(), (HitBoxGroup element) => element.groupName == "Primary"); return; } melee = false; if (Object.op_Implicit((Object)(object)tracker) && Object.op_Implicit((Object)(object)target)) { hasAttacked = false; if (!((EntityState)this).characterBody.GetNotMoving()) { ((EntityState)this).PlayAnimation("Gesture, Override", "Throw", "M1", duration, 0f); } else { ((EntityState)this).PlayAnimation("FullBody, Override", "Throw", "M1", duration, 0f); } } } private void RangedAttack() { //IL_005d: 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_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_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_00c6: 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_00ea: 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_010d: 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) Util.PlaySound("Play_huntress_m2_throw", ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(LegacyResourcesAPI.Load("prefabs/effects/muzzleflashes/muzzleflashengigrenade"), ((EntityState)this).gameObject, "hand.r", false); if (Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("spear")).gameObject.SetActive(false); } FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * rangedDamage; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; val.owner = ((EntityState)this).gameObject; Ray val2 = ((BaseState)this).GetAimRay(); val.position = ((Ray)(ref val2)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Prefabs.primaryProjectile; val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = target; FireProjectileInfo val3 = val; ProjectileManager.instance.FireProjectile(val3); } public override void FixedUpdate() { base.FixedUpdate(); if (melee) { ((EntityState)this).characterBody.isSprinting = false; } if (stopwatch >= 0.25f / ((BaseState)this).attackSpeedStat && attack != null && !hasAttacked && ((EntityState)this).isAuthority) { hitCallback = attack.Fire((List)null); } if (attack != null && stopwatch >= 0.5f) { hasAttacked = true; } if (hasAttacked) { } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } else if (!melee && !Object.op_Implicit((Object)(object)target) && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_004e: 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_0070: 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) ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("forceRun", false); } if (Object.op_Implicit((Object)(object)childLocator) && !melee && hasAttacked) { EffectData val = new EffectData(); val.rotation = Quaternion.identity; val.origin = childLocator.FindChild("weapon").position; EffectManager.SpawnEffect(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressBlinkEffect.prefab").WaitForCompletion(), val, false); ((Component)childLocator.FindChild("spear")).gameObject.SetActive(true); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } internal class PrimaryMelee : MeleeSkillState { private float duration; private float baseDuration = 0.65f; private float meleeDamage = 4f; private Ray aimRay; private Transform modelTransform; private ChildLocator childLocator; private bool hasAttacked; private SpearmanTracker tracker; private GameObject target; public override void OnEnter() { //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_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) base.OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; damage = meleeDamage; animParameter = "M1"; hitEffectPrefab = Prefabs.hitEffect; ((BaseState)this).StartAimMode(2f, false); aimRay = ((BaseState)this).GetAimRay(); childLocator = ((EntityState)this).GetModelChildLocator(); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("forceRun", true); } tracker = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)((HuntressTracker)tracker).GetTrackingTarget())) { target = ((Component)((HuntressTracker)tracker).GetTrackingTarget().healthComponent).gameObject; } if (Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("spear")).gameObject.SetActive(true); } modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)((EntityState)this).GetModelTransform()).GetComponents(), (HitBoxGroup element) => element.groupName == "Primary"); } EffectManager.SimpleMuzzleFlash(Prefabs.meleeSpearEffect, ((EntityState)this).gameObject, "spearMuzzle", false); attack = NewOverlapAttack(); attack.damageType = DamageTypeCombo.op_Implicit((DamageType)64); hasAttacked = false; if (!((EntityState)this).characterBody.GetNotMoving()) { ((EntityState)this).PlayAnimation("Gesture, Override", "Swing", "M1", duration / 1.3f, 0f); } else { ((EntityState)this).PlayAnimation("FullBody, Override", "Swing", "M1", duration / 1.3f, 0f); } Util.PlaySound("Play_merc_sword_swing", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { FireProjectile(); } } public override void FixedUpdate() { base.FixedUpdate(); ((EntityState)this).characterBody.isSprinting = false; if (stopwatch >= 0.25f / ((BaseState)this).attackSpeedStat && attack != null && !hasAttacked && ((EntityState)this).isAuthority) { hitCallback = attack.Fire((List)null); } if (attack != null && stopwatch >= 0.5f) { hasAttacked = true; } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void FireProjectile() { //IL_0011: 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_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_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_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_00ca: 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_00d1: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * 2f; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; ((FireProjectileInfo)(ref val)).speedOverride = 500f; val.owner = ((EntityState)this).gameObject; Ray val2 = ((BaseState)this).GetAimRay(); val.position = ((Ray)(ref val2)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Prefabs.windBlade; val2 = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref val2)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = null; FireProjectileInfo val3 = val; ProjectileManager.instance.FireProjectile(val3); } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("forceRun", 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; } } internal class Secondary : BaseSkillState { private float duration; private float baseDuration = 0.35f; private float maxDuration = 2f; private Ray aimRay; private GameObject chargeEffectInstance; private Animator animator; private uint loopSoundInstanceId; private SpearmanBehaviour behaviour; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((BaseState)this).StartAimMode(4f, true); ((EntityState)this).PlayAnimation("Gesture, Override", "M2"); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = ((Ray)(ref aimRay)).direction; } chargeEffectInstance = Object.Instantiate(Prefabs.chargeEffect, ((EntityState)this).GetModelChildLocator().FindChild("hand.r")); loopSoundInstanceId = Util.PlaySound("Play_mage_m2_charge", ((EntityState)this).gameObject); behaviour = ((EntityState)this).GetComponent(); } public override void FixedUpdate() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_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_002f: 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_008e: 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_0047: 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_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_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) ((EntityState)this).FixedUpdate(); Vector3 moveVector = Vector3.one; if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank)) { Vector2 val = Util.Vector3XZToVector2XY(((EntityState)this).inputBank.aimDirection); if (val != Vector2.zero) { ((Vector2)(ref val)).Normalize(); Vector3 val2 = new Vector3(val.x, 0f, val.y); moveVector = ((Vector3)(ref val2)).normalized; } } ((EntityState)this).characterBody.isSprinting = false; if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = moveVector; } if (Object.op_Implicit((Object)(object)behaviour)) { behaviour.charge = Mathf.Clamp(Mathf.Clamp01(((EntityState)this).fixedAge / maxDuration), 0f, 1f); } if (!((EntityState)this).inputBank.skill2.down && ((EntityState)this).isAuthority) { SecondaryThrow nextState = new SecondaryThrow(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("M2Over", true); } AkSoundEngine.StopPlayingID(loopSoundInstanceId); if (Object.op_Implicit((Object)(object)chargeEffectInstance)) { Object.Destroy((Object)(object)chargeEffectInstance); } } 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; } } internal class SecondaryThrow : BaseSkillState { internal float charge; private float duration; private float baseDuration = 0.6f; private SpearmanBehaviour behaviour; private bool hasFired; private float damageCoefficient = 1.5f; private ChildLocator childLocator; private Animator animator; private Ray aimRay; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; behaviour = ((EntityState)this).GetComponent(); childLocator = ((EntityState)this).GetModelChildLocator(); animator = ((EntityState)this).GetModelAnimator(); aimRay = ((BaseState)this).GetAimRay(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("M2Over", true); } if (Object.op_Implicit((Object)(object)behaviour)) { charge = behaviour.charge; } } public override void FixedUpdate() { //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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = false; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = ((Ray)(ref aimRay)).direction; } if (((EntityState)this).fixedAge >= 0.1f / ((BaseState)this).attackSpeedStat && !hasFired) { RangedAttack(); hasFired = true; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void RangedAttack() { //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_0066: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_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_0159: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: 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_01ab: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound("Play_huntress_m2_throw", ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(LegacyResourcesAPI.Load("prefabs/effects/muzzleflashes/muzzleflashengigrenade"), ((EntityState)this).gameObject, "hand.r", false); if (Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("spear")).gameObject.SetActive(false); } Ray val = ((BaseState)this).GetAimRay(); Vector3 position = default(Vector3); ((Vector3)(ref position))..ctor(((Ray)(ref val)).origin.x, ((Ray)(ref val)).origin.y + 1f, ((Ray)(ref val)).origin.z); Quaternion rotation = Quaternion.LookRotation(((Ray)(ref val)).direction); if (((EntityState)this).isAuthority) { float speedOverride = 100f * Mathf.Clamp(charge + 1f, 1.5f, 2f); FireProjectileInfo val2 = default(FireProjectileInfo); val2.crit = ((BaseState)this).RollCrit(); val2.damage = ((EntityState)this).characterBody.damage * Util.Remap(charge, 0f, 1f, 3f, 10f); val2.damageColorIndex = (DamageColorIndex)0; val2.damageTypeOverride = DamageTypeCombo.op_Implicit(behaviour.GetDebuff()); val2.force = 500f; val2.owner = ((EntityState)this).gameObject; val2.position = position; val2.procChainMask = default(ProcChainMask); val2.projectilePrefab = Prefabs.spearThrowProjectile; val2.rotation = rotation; val2.useFuseOverride = false; val2.useSpeedOverride = true; ((FireProjectileInfo)(ref val2)).speedOverride = speedOverride; val2.target = null; FireProjectileInfo val3 = val2; ProjectileManager.instance.FireProjectile(val3); } behaviour.SetNextState(); } public override void OnExit() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //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_004d: 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_0062: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator) && Object.op_Implicit((Object)(object)childLocator)) { EffectData val = new EffectData(); val.rotation = Quaternion.identity; val.origin = childLocator.FindChild("weapon").position; EffectManager.SpawnEffect(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressBlinkEffect.prefab").WaitForCompletion(), val, false); Util.PlaySound("Play_huntress_shift_end", ((EntityState)this).gameObject); ((Component)childLocator.FindChild("spear")).gameObject.SetActive(true); animator.SetBool("M2Over", 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; } } internal class AltSecondary : BaseSkillState { private float duration; private float baseDuration = 0.35f; private float maxDuration = 2f; private Ray aimRay; private GameObject chargeEffectInstance; private SpearmanBehaviour behaviour; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((BaseState)this).StartAimMode(4f, true); ((EntityState)this).PlayAnimation("Gesture, Override", "M2"); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = ((Ray)(ref aimRay)).direction; } chargeEffectInstance = Object.Instantiate(Prefabs.chargeEffect, ((EntityState)this).GetModelChildLocator().FindChild("hand.r")); behaviour = ((EntityState)this).GetComponent(); } public override void FixedUpdate() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_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_002f: 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_008e: 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_0047: 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_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_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) ((EntityState)this).FixedUpdate(); Vector3 moveVector = Vector3.one; if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank)) { Vector2 val = Util.Vector3XZToVector2XY(((EntityState)this).inputBank.aimDirection); if (val != Vector2.zero) { ((Vector2)(ref val)).Normalize(); Vector3 val2 = new Vector3(val.x, 0f, val.y); moveVector = ((Vector3)(ref val2)).normalized; } } ((EntityState)this).characterBody.isSprinting = false; if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = moveVector; } if (Object.op_Implicit((Object)(object)behaviour)) { behaviour.charge = Mathf.Clamp01(((EntityState)this).fixedAge / maxDuration); } if (!((EntityState)this).inputBank.skill2.down && ((EntityState)this).isAuthority) { AltSecondaryThrow nextState = new AltSecondaryThrow(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)chargeEffectInstance)) { Object.Destroy((Object)(object)chargeEffectInstance); } } 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; } } internal class AltSecondaryThrow : BaseSkillState { internal float charge; private float duration; private float baseDuration = 0.6f; private SpearmanBehaviour behaviour; private bool hasFired; private float damageCoefficient = 2f; private ChildLocator childLocator; private Animator animator; private Ray aimRay; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; behaviour = ((EntityState)this).GetComponent(); childLocator = ((EntityState)this).GetModelChildLocator(); animator = ((EntityState)this).GetModelAnimator(); aimRay = ((BaseState)this).GetAimRay(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("M2Over", true); } if (Object.op_Implicit((Object)(object)behaviour)) { charge = behaviour.charge; } } public override void FixedUpdate() { //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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.isSprinting = false; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = ((Ray)(ref aimRay)).direction; } if (((EntityState)this).fixedAge >= 0.1f / ((BaseState)this).attackSpeedStat && !hasFired) { RangedAttack(); hasFired = true; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void RangedAttack() { //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_0066: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_0126: 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_0151: 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_0171: 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_0199: 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_01a2: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound("Play_huntress_m2_throw", ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(LegacyResourcesAPI.Load("prefabs/effects/muzzleflashes/muzzleflashengigrenade"), ((EntityState)this).gameObject, "hand.r", false); if (Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("spear")).gameObject.SetActive(false); } Ray val = ((BaseState)this).GetAimRay(); Vector3 position = default(Vector3); ((Vector3)(ref position))..ctor(((Ray)(ref val)).origin.x, ((Ray)(ref val)).origin.y + 1f, ((Ray)(ref val)).origin.z); Quaternion rotation = Quaternion.LookRotation(((Ray)(ref val)).direction); if (((EntityState)this).isAuthority) { float speedOverride = 100f * Mathf.Clamp(charge + 1f, 1f, 2f); FireProjectileInfo val2 = default(FireProjectileInfo); val2.crit = ((BaseState)this).RollCrit(); val2.damage = ((EntityState)this).characterBody.damage * Util.Remap(charge, 0f, 1f, 5f, 15f); val2.damageColorIndex = (DamageColorIndex)0; val2.damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)32); val2.force = 500f; val2.owner = ((EntityState)this).gameObject; val2.position = position; val2.procChainMask = default(ProcChainMask); val2.projectilePrefab = Prefabs.altSpearThrowProjectile; val2.rotation = rotation; val2.useFuseOverride = false; val2.useSpeedOverride = true; ((FireProjectileInfo)(ref val2)).speedOverride = speedOverride; val2.target = null; FireProjectileInfo val3 = val2; ProjectileManager.instance.FireProjectile(val3); } behaviour.SetNextState(); } public override void OnExit() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //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_004d: 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_0062: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator) && Object.op_Implicit((Object)(object)childLocator)) { EffectData val = new EffectData(); val.rotation = Quaternion.identity; val.origin = childLocator.FindChild("weapon").position; EffectManager.SpawnEffect(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressBlinkEffect.prefab").WaitForCompletion(), val, false); Util.PlaySound("Play_huntress_shift_end", ((EntityState)this).gameObject); ((Component)childLocator.FindChild("spear")).gameObject.SetActive(true); animator.SetBool("M2Over", 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; } } internal class SpearmanSkillDef : SkillDef { private class InstanceData : BaseSkillInstanceData { public SpearmanTracker spearmanTracker; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { spearmanTracker = ((Component)skillSlot).GetComponent() }; } internal static bool IsExecutable([NotNull] GenericSkill skillSlot) { SpearmanTracker spearmanTracker = ((InstanceData)(object)skillSlot.skillInstanceData).spearmanTracker; return spearmanTracker.canExecute; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return IsExecutable(skillSlot) && ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && IsExecutable(skillSlot); } } internal class Special : BaseSkillState { public float basePrepDuration = 0.65f; public float jumpDuration = 0.25f; public float jumpCoefficient = 330f; public float maxJumpDuration = 0.4f; public float minJumpDuration = 0.3f; private Transform modelTransform; [SerializeField] public Vector3 jumpVector; private float prepDuration; private bool beginJump; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; public override void OnEnter() { //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Expected O, but got Unknown //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: 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) ((BaseState)this).OnEnter(); SpearmanTracker component = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.canExecute = false; } modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent(); hurtboxGroup = ((Component)modelTransform).GetComponent(); } prepDuration = basePrepDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).PlayAnimation("FullBody, Override", "Special"); ((EntityState)this).GetModelAnimator().SetBool("SpecialOver", false); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(Vector3.up); val.origin = ((EntityState)this).characterBody.corePosition; EffectManager.SpawnEffect(Prefabs.dashEffect, val, false); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent(); val2.duration = 0.6f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = LegacyResourcesAPI.Load("Materials/matIsShocked"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent()); TemporaryOverlay val3 = ((Component)modelTransform).gameObject.AddComponent(); val3.duration = 0.7f; val3.animateShaderAlpha = true; val3.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val3.destroyComponentOnEnd = true; val3.originalMaterial = LegacyResourcesAPI.Load("Materials/matMercEvisTarget"); val3.AddToCharacerModel(((Component)modelTransform).GetComponent()); } if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.HiddenInvincibility); } Util.PlaySound("Play_moonBrother_phaseJump_jumpAway", ((EntityState)this).gameObject); } private void CreateFlightEffect(Vector3 origin) { } public override void FixedUpdate() { //IL_0047: 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_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) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= prepDuration && !beginJump) { beginJump = true; ((EntityState)this).GetModelAnimator().SetBool("isGrounded", false); CreateFlightEffect(((EntityState)this).transform.position); } if (beginJump && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.up * (((EntityState)this).characterBody.jumpPower * jumpCoefficient * Time.fixedDeltaTime); } if ((((EntityState)this).fixedAge >= minJumpDuration + prepDuration && ((EntityState)this).isAuthority && !((EntityState)this).inputBank.skill3.down) || (((EntityState)this).fixedAge >= maxJumpDuration + prepDuration && ((EntityState)this).isAuthority)) { SpecialAim nextState = new SpecialAim(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } public override void OnExit() { modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val = ((Component)modelTransform).gameObject.AddComponent(); val.duration = 0.6f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = LegacyResourcesAPI.Load("Materials/matIsShocked"); val.AddToCharacerModel(((Component)modelTransform).GetComponent()); TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent(); val2.duration = 0.7f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = LegacyResourcesAPI.Load("Materials/matHuntressFlashExpanded"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent()); } if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.HiddenInvincibility); } ((EntityState)this).OnExit(); } } internal class SpecialAim : BaseSkillState { public float maxAimTime = 999f; public static float impactRadius = 12f; private GameObject maxRangeIndicator; private GameObject areaIndicatorInstance; private float stopwatch; private AimRequest request; private Animator animator; private GameObject jetR; private GameObject jetL; private float fxstopwatch; private Transform transformR; private Transform transformL; private GameObject effect; private float maxDistance = 100f; private bool spawnfx; public override void OnEnter() { //IL_003e: 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_0092: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); areaIndicatorInstance = Object.Instantiate(ArrowRain.areaIndicatorPrefab); areaIndicatorInstance.transform.localScale = new Vector3(impactRadius, impactRadius, impactRadius); maxRangeIndicator = Object.Instantiate(ArrowRain.areaIndicatorPrefab); maxRangeIndicator.transform.position = ((EntityState)this).characterBody.corePosition; maxRangeIndicator.transform.localScale = new Vector3(maxDistance, maxDistance, maxDistance); effect = DodgeState.jetEffect; ChildLocator component = ((Component)animator).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { transformR = component.FindChild("jetMuzzleR"); transformL = component.FindChild("jetMuzzleL"); } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2); } } private void UpdateAreaIndicator() { //IL_0015: 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_0035: 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_0068: 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)areaIndicatorInstance)) { RaycastHit val = default(RaycastHit); if (Physics.Raycast(((BaseState)this).GetAimRay(), ref val, maxDistance, LayerMask.op_Implicit(CommonMasks.bullet)) && ((RaycastHit)(ref val)).point.y < ((EntityState)this).transform.position.y) { areaIndicatorInstance.transform.position = ((RaycastHit)(ref val)).point; areaIndicatorInstance.transform.up = ((RaycastHit)(ref val)).normal; areaIndicatorInstance.SetActive(true); } else { areaIndicatorInstance.SetActive(false); } } } public override void Update() { ((EntityState)this).Update(); UpdateAreaIndicator(); } public override void FixedUpdate() { //IL_025e: 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_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0319: Unknown result type (might be due to invalid IL or missing references) //IL_031e: 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) ((EntityState)this).FixedUpdate(); fxstopwatch += Time.fixedDeltaTime; if (fxstopwatch >= 0.12f && spawnfx) { spawnfx = false; if (Object.op_Implicit((Object)(object)transformR) && Object.op_Implicit((Object)(object)transformL) && Object.op_Implicit((Object)(object)effect)) { jetR = Object.Instantiate(effect, transformR); jetL = Object.Instantiate(effect, transformL); if (Object.op_Implicit((Object)(object)jetR) && Object.op_Implicit((Object)(object)jetL)) { ParticleSystem[] componentsInChildren = jetR.GetComponentsInChildren(); for (int i = 0; i < componentsInChildren.Length; i++) { if (Object.op_Implicit((Object)(object)((Component)componentsInChildren[i]).gameObject)) { if (((Object)((Component)componentsInChildren[i]).gameObject).name == "Jet") { ((Component)componentsInChildren[i]).transform.localPosition = Vector3.zero; } else { EntityState.Destroy((Object)(object)((Component)componentsInChildren[i]).gameObject); } } } ParticleSystem[] componentsInChildren2 = jetL.GetComponentsInChildren(); for (int j = 0; j < componentsInChildren2.Length; j++) { if (Object.op_Implicit((Object)(object)((Component)componentsInChildren2[j]).gameObject)) { if (((Object)((Component)componentsInChildren2[j]).gameObject).name == "Jet") { ((Component)componentsInChildren2[j]).transform.localPosition = Vector3.zero; } else { EntityState.Destroy((Object)(object)((Component)componentsInChildren2[j]).gameObject); } } } } } } if (fxstopwatch >= 0.3f) { spawnfx = true; fxstopwatch = 0f; if (Object.op_Implicit((Object)(object)jetR) && Object.op_Implicit((Object)(object)jetL)) { EntityState.Destroy((Object)(object)jetR); EntityState.Destroy((Object)(object)jetL); } } stopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && (((ButtonState)(ref ((EntityState)this).inputBank.skill1)).justPressed || ((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed || ((ButtonState)(ref ((EntityState)this).inputBank.skill3)).justPressed || ((ButtonState)(ref ((EntityState)this).inputBank.skill4)).justPressed)) { if ((!Object.op_Implicit((Object)(object)areaIndicatorInstance) || !areaIndicatorInstance.activeSelf) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { SpecialSlam specialSlam = new SpecialSlam(); specialSlam.diveVector = Vector3.down; ((EntityState)this).outer.SetNextState((EntityState)(object)specialSlam); } else { SpecialSlam nextState = new SpecialSlam(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState); } } else if (stopwatch > maxAimTime) { if ((!Object.op_Implicit((Object)(object)areaIndicatorInstance) || !areaIndicatorInstance.activeSelf) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator)) { SpecialSlam specialSlam2 = new SpecialSlam(); specialSlam2.diveVector = Vector3.down; ((EntityState)this).outer.SetNextState((EntityState)(object)specialSlam2); } else { SpecialSlam nextState2 = new SpecialSlam(); ((EntityState)this).outer.SetNextState((EntityState)(object)nextState2); } } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams) && request != null) { request.Dispose(); } if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("SpecialOver", true); } if (Object.op_Implicit((Object)(object)maxRangeIndicator)) { EntityState.Destroy((Object)(object)maxRangeIndicator); } if (Object.op_Implicit((Object)(object)areaIndicatorInstance)) { EntityState.Destroy((Object)(object)areaIndicatorInstance); } if (Object.op_Implicit((Object)(object)jetR) && Object.op_Implicit((Object)(object)jetL)) { EntityState.Destroy((Object)(object)jetR); EntityState.Destroy((Object)(object)jetL); } ((EntityState)this).OnExit(); } } internal class SpecialSlam : BaseSkillState { public static float diveVelocity = 30f; public static float cancelHopVelocity = 8f; public static float impactRadius = 12f; public static float impactProcCoefficient = 0.7f; public static float impactDamageCoefficient = 4f; public static float waveDamageCoefficient = 1.5f; public static float knockupForce = 800f; internal Vector3 diveVector; private Animator animator; private HitBoxGroup hitBoxGroup; public override void OnEnter() { //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_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_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) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("SpecialOver", true); } if (Object.op_Implicit((Object)(object)((EntityState)this).GetModelTransform())) { hitBoxGroup = Array.Find(((Component)((EntityState)this).GetModelTransform()).GetComponents(), (HitBoxGroup element) => element.groupName == "Utility"); } if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && diveVector != Vector3.down) { diveVector = ((EntityState)this).inputBank.aimDirection; } if (diveVector.y >= 0f) { diveVector = Vector3.down; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.disableAirControlUntilCollision = true; } } public override void FixedUpdate() { //IL_000f: 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_0051: 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_0062: 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_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_008c: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: 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_00ed: Expected O, but got Unknown //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_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: 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_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_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_014a: 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_0168: 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_0170: 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_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_0191: 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_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_01b7: 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_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01e0: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_022a: 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_025c: 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_0269: 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_027f: 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_02a1: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02aa: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterDirection.forward = diveVector; ((EntityState)this).characterBody.isSprinting = true; if (!Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { return; } ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += diveVector * ((BaseState)this).moveSpeedStat * diveVelocity * Time.fixedDeltaTime; ((EntityState)this).characterDirection.forward = diveVector; if (((EntityState)this).characterMotor.disableAirControlUntilCollision) { return; } Util.PlaySound("Play_moonBrother_phaseJump_land_impact", ((EntityState)this).gameObject); Vector3 footPosition = ((EntityState)this).characterBody.footPosition; EffectManager.SpawnEffect(GroundSlam.slamEffectPrefab, new EffectData { origin = footPosition, scale = impactRadius }, true); new BlastAttack { attacker = ((EntityState)this).gameObject, baseDamage = ((BaseState)this).damageStat * impactDamageCoefficient, baseForce = 0f, bonusForce = Vector3.up * knockupForce, crit = ((BaseState)this).RollCrit(), damageType = DamageTypeCombo.op_Implicit((DamageType)32), falloffModel = (FalloffModel)0, procCoefficient = impactProcCoefficient, radius = impactRadius, position = footPosition, attackerFiltering = (AttackerFiltering)2, impactEffect = EffectCatalog.FindEffectIndexFromPrefab(GroundPound.hitEffectPrefab), teamIndex = ((EntityState)this).teamComponent.teamIndex, damageColorIndex = (DamageColorIndex)10 }.Fire(); float num = 360f / (float)ExitSkyLeap.waveProjectileCount; Vector3 val = Vector3.ProjectOnPlane(((EntityState)this).inputBank.aimDirection, Vector3.up); for (int i = 0; i < ExitSkyLeap.waveProjectileCount; i++) { Vector3 val2 = Quaternion.AngleAxis(num * (float)i, Vector3.up) * val; if (((EntityState)this).isAuthority) { FireProjectileInfo val3 = default(FireProjectileInfo); val3.crit = ((BaseState)this).RollCrit(); val3.damage = ((EntityState)this).characterBody.damage * waveDamageCoefficient; val3.damageTypeOverride = DamageTypeCombo.op_Implicit((DamageType)32); val3.damageColorIndex = (DamageColorIndex)0; val3.force = 0f; val3.owner = ((EntityState)this).gameObject; val3.position = footPosition; val3.procChainMask = default(ProcChainMask); val3.projectilePrefab = Prefabs.slamWave; val3.rotation = Util.QuaternionSafeLookRotation(val2); val3.useFuseOverride = false; val3.useSpeedOverride = false; val3.target = null; FireProjectileInfo val4 = val3; ProjectileManager.instance.FireProjectile(val4); } } ((EntityState)this).characterBody.AddTimedBuffAuthority(Buffs.ArmorBoost.buffIndex, 5f); ((EntityState)this).outer.SetNextStateToMain(); } public override void OnExit() { //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) SpearmanTracker component = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.canExecute = true; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("SpecialOver", true); } ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ((EntityState)this).OnExit(); } } internal class Utility : BaseSkillState { private float duration = 0.65f; private float damage = 2f; private GameObject slideEffectInstance; private Transform modelTransform; private HitBoxGroup hitBoxGroup; private OverlapAttack attack; private GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Loader/OmniImpactVFXLoader.prefab").WaitForCompletion(); private Animator animator; private Vector3 blinkVector = Vector3.zero; public float speedCoefficient = 30f; private CharacterModel characterModel; private Vector3 direction; private AnimationCurve speedCurve = SlideState.forwardSpeedCoefficientCurve; private bool startedStateGrounded; public static GenericSkill utilitySkillSlot; public override void OnEnter() { //IL_0119: 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) ((BaseState)this).OnEnter(); modelTransform = ((EntityState)this).GetModelTransform(); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("UtilityOver", false); } ((EntityState)this).PlayAnimation("FullBody, Override", "Slide"); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { startedStateGrounded = ((EntityState)this).characterMotor.isGrounded; } if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent(); } if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)((EntityState)this).GetModelTransform()).GetComponents(), (HitBoxGroup element) => element.groupName == "Slide"); } if (Object.op_Implicit((Object)(object)SlideState.slideEffectPrefab)) { slideEffectInstance = Object.Instantiate(SlideState.slideEffectPrefab, ((EntityState)this).transform); } attack = NewOverlapAttack(); ((EntityState)this).characterDirection.forward = GetBlinkVector(); blinkVector = GetBlinkVector(); Util.PlaySound("Play_commando_shift", ((EntityState)this).gameObject); } protected virtual Vector3 GetBlinkVector() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); return ((Vector3)(ref val)).normalized; } private OverlapAttack NewOverlapAttack() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_000d: 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_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_0093: Unknown result type (might be due to invalid IL or missing references) OverlapAttack val = new OverlapAttack(); val.procChainMask = default(ProcChainMask); val.procCoefficient = 0.7f; val.attacker = ((EntityState)this).gameObject; val.inflictor = ((EntityState)this).gameObject; val.teamIndex = ((EntityState)this).characterBody.teamComponent.teamIndex; val.damage = ((EntityState)this).characterBody.damage * damage; val.hitEffectPrefab = hitEffectPrefab; val.isCrit = ((EntityState)this).characterBody.RollCrit(); val.damageColorIndex = (DamageColorIndex)0; val.damageType = DamageTypeCombo.op_Implicit((DamageType)262144); val.maximumOverlapTargets = 9999999; val.hitBoxGroup = hitBoxGroup; return val; } public override void FixedUpdate() { //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_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_0116: 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_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_013e: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (attack.Fire((List)null)) { utilitySkillSlot = (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) ? ((EntityState)this).skillLocator.utility : null); if (Object.op_Implicit((Object)(object)utilitySkillSlot)) { utilitySkillSlot.SetSkillOverride((object)((EntityState)this).gameObject, CharacterMain.skillDef, (SkillOverridePriority)4); } } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); return; } } float slideDuration = SlideState.slideDuration; if (Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.moveVector = ((EntityState)this).inputBank.moveVector; blinkVector = ((EntityState)this).characterDirection.forward; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { float num = SlideState.forwardSpeedCoefficientCurve.Evaluate(((EntityState)this).fixedAge / slideDuration); CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += num * ((BaseState)this).moveSpeedStat * blinkVector * Time.fixedDeltaTime; } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)animator)) { animator.SetBool("UtilityOver", true); } if (Object.op_Implicit((Object)(object)slideEffectInstance)) { EntityState.Destroy((Object)(object)slideEffectInstance); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } internal class UtilityKick : BaseSkillState { private float duration = 0.7f; private float damage = 1.75f; private Transform modelTransform; private HitBoxGroup hitBoxGroup; private OverlapAttack attack; private GameObject hitEffectPrefab = Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/OmniImpactVFXHuntress.prefab").WaitForCompletion(); private Animator animator; private Vector3 blinkVector = Vector3.zero; public float speedCoefficient = 17f; private CharacterModel characterModel; private Vector3 direction; private List hurtBoxList = new List(); internal bool isRecast; private float stopwatch; private bool playFXL; public override void OnEnter() { //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Expected O, but got Unknown //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_00a5: 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_010e: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); modelTransform = ((EntityState)this).GetModelTransform(); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent(); } if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)((EntityState)this).GetModelTransform()).GetComponents(), (HitBoxGroup element) => element.groupName == "Kick"); } EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(Vector3.up); val.origin = ((EntityState)this).characterBody.corePosition; EffectManager.SpawnEffect(Prefabs.dashEffect, val, false); ((EntityState)this).PlayAnimation("FullBody, Override", "Kick", "Utility", duration, 0f); attack = NewOverlapAttack(); EffectManager.SimpleMuzzleFlash(Prefabs.kickEffect, ((EntityState)this).gameObject, "foot.r", false); playFXL = true; blinkVector = Vector3.up; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); } private OverlapAttack NewOverlapAttack() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_000d: 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_0083: 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_008f: Unknown result type (might be due to invalid IL or missing references) OverlapAttack val = new OverlapAttack(); val.procChainMask = default(ProcChainMask); val.procCoefficient = 0.5f; val.attacker = ((EntityState)this).gameObject; val.inflictor = ((EntityState)this).gameObject; val.teamIndex = ((EntityState)this).characterBody.teamComponent.teamIndex; val.damage = ((EntityState)this).characterBody.damage * damage; val.hitEffectPrefab = hitEffectPrefab; val.isCrit = ((EntityState)this).characterBody.RollCrit(); val.damageColorIndex = (DamageColorIndex)0; val.damageType = DamageTypeCombo.op_Implicit((DamageType)0); val.maximumOverlapTargets = 9999999; val.hitBoxGroup = hitBoxGroup; return val; } public override void FixedUpdate() { //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_0105: 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_0126: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (((EntityState)this).isAuthority) { if (stopwatch >= 0.15f / ((BaseState)this).attackSpeedStat) { stopwatch = 0f; attack = NewOverlapAttack(); Util.PlaySound("Play_item_proc_whip", ((EntityState)this).gameObject); if (playFXL) { EffectManager.SimpleMuzzleFlash(Prefabs.kickEffect, ((EntityState)this).gameObject, "foot.l", false); playFXL = false; } else { EffectManager.SimpleMuzzleFlash(Prefabs.kickEffect, ((EntityState)this).gameObject, "foot.r", false); playFXL = true; } } if (!attack.Fire((List)null)) { } } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += blinkVector * (speedCoefficient * Time.fixedDeltaTime); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); if (Object.op_Implicit((Object)(object)Utility.utilitySkillSlot)) { Utility.utilitySkillSlot.UnsetSkillOverride((object)((EntityState)this).gameObject, CharacterMain.skillDef, (SkillOverridePriority)4); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } internal class Sounds { public static readonly uint Play_Spearman_ComboFinish = 347034733u; public static readonly uint Play_Spearman_Charge_Idle = 1761871155u; public static readonly uint Play_Spearman_FullChargeRocket = 3235071181u; public static readonly uint Play_Spearman_ComboMiddleSwing = 3534271691u; public static readonly uint Play_Spearman_Charging = 3608441587u; public static readonly uint Play_Spearman_ComboBegin = 3788789583u; public static readonly uint Play_Spearman_HalfChargedRocket = 3841239871u; } internal class Utils { internal static T CopyComponent(T original, GameObject destination) where T : Component { Type type = ((object)original).GetType(); Component val = destination.AddComponent(type); FieldInfo[] fields = type.GetFields(); FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { fieldInfo.SetValue(val, fieldInfo.GetValue(original)); } return (T)(object)((val is T) ? val : null); } public static void AddJoint(GameObject target, GameObject Connection) { Rigidbody component = Connection.GetComponent(); CharacterJoint val = target.AddComponent(); ((Joint)val).autoConfigureConnectedAnchor = true; ((Joint)val).enablePreprocessing = true; ((Joint)val).connectedBody = component; } internal static GameObject CreateRectTransform(Transform parent, string ObjName, Sprite sprite, float size) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //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_0095: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(ObjName, new Type[1] { typeof(RectTransform) }); Transform transform = val.transform; RectTransform val2 = (RectTransform)(object)((transform is RectTransform) ? transform : null); ((Transform)val2).localPosition = Vector2.op_Implicit(new Vector2(0f, 0f)); val2.SetSizeWithCurrentAnchors((Axis)0, size); val2.SetSizeWithCurrentAnchors((Axis)1, size); val.transform.SetParent(parent); val.AddComponent().sprite = sprite; val.GetComponent().preserveAspect = true; ((Transform)((Graphic)val.GetComponent()).rectTransform).localPosition = new Vector3(0f, 0f, 0f); return val; } public static HitBox CreateHitbox(string name, Transform parent, Vector3 scale) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) GameObject val = new GameObject(name); val.transform.SetParent(parent); val.transform.localPosition = Vector3.zero; val.transform.localRotation = Quaternion.identity; val.transform.localScale = scale; HitBoxGroup val2 = ((Component)parent.parent).gameObject.AddComponent(); HitBox val3 = val.AddComponent(); val.layer = LayerIndex.projectile.intVal; val2.hitBoxes = (HitBox[])(object)new HitBox[1] { val3 }; val2.groupName = name; return val3; } internal static void RegisterEffect(GameObject effect, float duration, string soundName = "") { //IL_0084: 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) EffectComponent val = effect.GetComponent(); if (!Object.op_Implicit((Object)(object)val)) { val = effect.AddComponent(); } if (!Object.op_Implicit((Object)(object)effect.GetComponent())) { effect.AddComponent().duration = duration; } if (!Object.op_Implicit((Object)(object)effect.GetComponent())) { effect.AddComponent(); } if (!Object.op_Implicit((Object)(object)effect.GetComponent())) { effect.AddComponent().vfxPriority = (VFXPriority)2; } val.applyScale = false; val.effectIndex = (EffectIndex)(-1); val.parentToReferencedTransform = true; val.positionAtReferencedTransform = true; val.soundName = soundName; ContentAddition.AddEffect(effect); } public static Material InstantiateMaterial(Color color, Texture tex, Color emColor, float emPower, Texture emTex, float normStr, Texture normTex) { //IL_0037: 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) Material val = Object.Instantiate(LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().baseRendererInfos[0].defaultMaterial); if (Object.op_Implicit((Object)(object)val)) { val.SetColor("_Color", color); val.SetTexture("_MainTex", tex); val.SetColor("_EmColor", emColor); val.SetFloat("_EmPower", emPower); val.SetTexture("_EmTex", emTex); val.SetFloat("_NormalStrength", 1f); val.SetTexture("_NormalTex", normTex); return val; } return val; } public static Material FindMaterial(string name) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Invalid comparison between Unknown and I4 Material[] array = Resources.FindObjectsOfTypeAll(); for (int i = 0; i < array.Length; i++) { if ((int)((Object)array[i]).hideFlags == 0 && ((Object)array[i]).name == name) { return array[i]; } } return null; } }