using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using AncientScepter; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BepInEx.Logging; using EmotesAPI; using EntityStates; using EntityStates.AI.Walker; using Grumpy; using HG; using HG.BlendableTypes; using JetBrains.Annotations; using KinematicCharacterController; using On.RoR2; using On.RoR2.Items; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CameraModes; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using SeamstressMod.Modules; using SeamstressMod.Modules.Achievements; using SeamstressMod.Modules.BaseStates; using SeamstressMod.Modules.Characters; using SeamstressMod.Seamstress; using SeamstressMod.Seamstress.Components; using SeamstressMod.Seamstress.Content; using SeamstressMod.Seamstress.SkillStates; using ThreeEyedGames; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; [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: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: CompilationRelaxations(8)] [assembly: AssemblyCompany("SeamstressMod")] [assembly: AssemblyProduct("SeamstressMod")] [assembly: AssemblyTitle("SeamstressMod")] [assembly: AssemblyInformationalVersion("1.0.0+eb6fd44c0ff813574856818056bfa8463fec9701")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace SeamstressMod { internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void ErrorAssetBundle(string assetName, string bundleName) { Error("failed to load asset, " + assetName + ", because it does not exist in asset bundle, " + bundleName); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [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.kenko.Seamstress", "Seamstress", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class SeamstressPlugin : BaseUnityPlugin { public const string MODUID = "com.kenko.Seamstress"; public const string MODNAME = "Seamstress"; public const string MODVERSION = "1.0.0"; public const string DEVELOPER_PREFIX = "KENKO"; public static SeamstressPlugin instance; public static bool emotesInstalled => Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI"); public static bool scepterInstalled => Chainloader.PluginInfos.ContainsKey("com.DestroyedClone.AncientScepter"); public static bool importanceInstalled => Chainloader.PluginInfos.ContainsKey("pseudopulse.EnemyImportance"); private void Awake() { instance = this; Log.Init(((BaseUnityPlugin)this).Logger); Language.Init(); new SeamstressSurvivor().Initialize(); new ContentPacks().Initialize(); } } } namespace SeamstressMod.Seamstress { public class SeamstressSurvivor : SurvivorBase { public static class ScepterCompat { public static void Initialize(AssetBundle assetBundle) { if (SeamstressPlugin.scepterInstalled) { InitializeScepter(assetBundle); } } private static void InitializeScepter(AssetBundle assetBundle) { //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_0077: Unknown result type (might be due to invalid IL or missing references) SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "FireScepterSeamstress"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_SPECIAL_SCEPTER_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_SPECIAL_SCEPTER_DESCRIPTION"; skillDefInfo.keywordTokens = new string[2] { Tokens.symbioticKeyword, Tokens.details2Keyword }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texSkewerScepterIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(FireScissorScepter)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = 14f; skillDefInfo.baseMaxStock = 2; skillDefInfo.rechargeStock = 2; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = true; skillDefInfo.mustKeyPress = true; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); ItemBase.instance.RegisterScepterSkill(val, "SeamstressBody", (SkillSlot)3, 0); } } public static class ImportanceCompat { [CompilerGenerated] private sealed class d__1 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public orig_Init orig; private IEnumerator <>s__1; private GameObject 5__2; private KinematicCharacterMotor 5__3; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__1(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>s__1 = null; 5__2 = null; 5__3 = null; <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = orig.Invoke(); <>1__state = 1; return true; case 1: <>1__state = -1; <>s__1 = BodyCatalog.allBodyPrefabs.GetEnumerator(); try { while (<>s__1.MoveNext()) { 5__2 = <>s__1.Current; 5__3 = 5__2.GetComponent(); if (Object.op_Implicit((Object)(object)5__3)) { 5__3.playerCharacter = true; } 5__3 = null; 5__2 = null; } } finally { if (<>s__1 != null) { <>s__1.Dispose(); } } <>s__1 = null; return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static void Importance() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Expected O, but got Unknown if (!SeamstressPlugin.importanceInstalled) { BodyCatalog.Init += new hook_Init(BodyCatalog_Init); } } [IteratorStateMachine(typeof(d__1))] private static IEnumerator BodyCatalog_Init(orig_Init orig) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__1(0) { orig = orig }; } } public static class EmotesAPICompat { public static void Emotes() { GameObject val = SeamstressAssets.mainAssetBundle.LoadAsset("seamstress_emoteskeleton"); CustomEmotesAPI.ImportArmature(characterPrefab, val, 0, true); } } public const string SEAMSTRESS_PREFIX = "KENKO_SEAMSTRESS_"; internal static GameObject characterPrefab; public static SkillDef explodeSkillDef; public override string assetBundleName => "seamstressassets"; public override string bodyName => "SeamstressBody"; public override string masterName => "SeamstressMonsterMaster"; public override string modelPrefabName => "mdlSeamstress"; public override string displayPrefabName => "SeamstressDisplay"; public override string survivorTokenPrefix => "KENKO_SEAMSTRESS_"; public override BodyInfo bodyInfo { get { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) BodyInfo bodyInfo = new BodyInfo(); bodyInfo.bodyName = bodyName; bodyInfo.bodyNameToken = "KENKO_SEAMSTRESS_NAME"; bodyInfo.subtitleNameToken = "KENKO_SEAMSTRESS_SUBTITLE"; bodyInfo.characterPortrait = assetBundle.LoadAsset("texSeamstressIcon"); bodyInfo.bodyColor = new Color(31f / 51f, 11f / 51f, 11f / 51f); bodyInfo.sortPosition = 7f; bodyInfo.crosshair = CharacterAssets.LoadCrosshair("SimpleDot"); bodyInfo.podPrefab = null; bodyInfo.initialStateType = new SerializableEntityStateType(typeof(SeamstressSpawnState)); bodyInfo.damage = SeamstressConfig.damage.Value; bodyInfo.damageGrowth = SeamstressConfig.damageGrowth.Value * SeamstressConfig.damage.Value; bodyInfo.attackSpeed = SeamstressConfig.attackSpeed.Value; bodyInfo.attackSpeedGrowth = SeamstressConfig.attackSpeedGrowth.Value; bodyInfo.crit = SeamstressConfig.crit.Value; bodyInfo.critGrowth = SeamstressConfig.critGrowth.Value; bodyInfo.maxHealth = SeamstressConfig.maxHealth.Value; bodyInfo.healthGrowth = SeamstressConfig.healthGrowth.Value * SeamstressConfig.maxHealth.Value; bodyInfo.healthRegen = SeamstressConfig.healthRegen.Value; bodyInfo.regenGrowth = SeamstressConfig.regenGrowth.Value * SeamstressConfig.healthRegen.Value; bodyInfo.shield = SeamstressConfig.shield.Value; bodyInfo.shieldGrowth = SeamstressConfig.shieldGrowth.Value * SeamstressConfig.shield.Value; bodyInfo.armor = SeamstressConfig.armor.Value; bodyInfo.armorGrowth = SeamstressConfig.armorGrowth.Value * SeamstressConfig.armor.Value; bodyInfo.moveSpeed = SeamstressConfig.moveSpeed.Value; bodyInfo.moveSpeedGrowth = SeamstressConfig.moveSpeedGrowth.Value * SeamstressConfig.moveSpeed.Value; bodyInfo.jumpPower = SeamstressConfig.jumpPower.Value; bodyInfo.jumpPowerGrowth = SeamstressConfig.jumpPowerGrowth.Value * SeamstressConfig.jumpPower.Value; bodyInfo.acceleration = SeamstressConfig.acceleration.Value; bodyInfo.jumpCount = SeamstressConfig.jumpCount.Value; bodyInfo.autoCalculateLevelStats = SeamstressConfig.autoCalculateLevelStats.Value; return bodyInfo; } } public override CustomRendererInfo[] customRendererInfos => new CustomRendererInfo[5] { new CustomRendererInfo { childName = "Model" }, new CustomRendererInfo { childName = "ScissorLModel" }, new CustomRendererInfo { childName = "ScissorRModel" }, new CustomRendererInfo { childName = "CrownModel" }, new CustomRendererInfo { childName = "HeartModel" } }; public override UnlockableDef characterUnlockableDef => SeamstressUnlockables.characterUnlockableDef; public override ItemDisplaysBase itemDisplays => new SeamstressItemDisplays(); public override AssetBundle assetBundle { get; protected set; } public override GameObject bodyPrefab { get; protected set; } public override CharacterBody prefabCharacterBody { get; protected set; } public override GameObject characterModelObject { get; protected set; } public override CharacterModel prefabCharacterModel { get; protected set; } public override GameObject displayPrefab { get; protected set; } public override void Initialize() { base.Initialize(); } public override void InitializeCharacter() { SeamstressConfig.Init(); SeamstressUnlockables.Init(); base.InitializeCharacter(); SeamstressCrosshair.Init(assetBundle); DamageTypes.Init(); SeamstressStates.Init(); SeamstressTokens.Init(); SeamstressAssets.Init(assetBundle); SeamstressBuffs.Init(assetBundle); SeamstressDots.Init(); InitializeEntityStateMachines(); InitializeSkills(); InitializeSkins(); InitializeCharacterMaster(); AdditionalBodySetup(); characterPrefab = bodyPrefab; AddHooks(); } private void AdditionalBodySetup() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Expected O, but got Unknown //IL_0032: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_005a: Expected O, but got Unknown AddHitboxes(); TempVisualEffectAPI.AddTemporaryVisualEffect(SeamstressAssets.sewnCdEffect, new EffectRadius(pee), new EffectCondition(tempAdd), ""); TempVisualEffectAPI.AddTemporaryVisualEffect(SeamstressAssets.sewnEffect, new EffectRadius(pee), new EffectCondition(tempAdd2), ""); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); bodyPrefab.AddComponent(); static float pee(CharacterBody body) { return 2f * body.radius; } static bool tempAdd(CharacterBody body) { return body.HasBuff(SeamstressBuffs.ManipulatedCd); } static bool tempAdd2(CharacterBody body) { return body.HasBuff(SeamstressBuffs.Manipulated); } } public void AddHitboxes() { Prefabs.SetupHitBoxGroup(characterModelObject, "Sword", "SwordHitbox"); Prefabs.SetupHitBoxGroup(characterModelObject, "SwordBig", "SwordHitboxBig"); Prefabs.SetupHitBoxGroup(characterModelObject, "Weave", "WeaveHitbox"); Prefabs.SetupHitBoxGroup(characterModelObject, "WeaveBig", "WeaveHitboxBig"); Prefabs.SetupHitBoxGroup(characterModelObject, "Right", "RightScissorHitbox"); Prefabs.SetupHitBoxGroup(characterModelObject, "Left", "LeftScissorHitbox"); } public override void InitializeEntityStateMachines() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) bodyPrefab.GetComponent().preferredInitialStateType = new SerializableEntityStateType(typeof(SeamstressSpawnState)); EntityStateMachine[] components = bodyPrefab.GetComponents(); foreach (EntityStateMachine val in components) { if (val.customName == "Body") { val.mainStateType = new SerializableEntityStateType(typeof(MainState)); } } EntityStateMachine val2 = bodyPrefab.AddComponent(); val2.initialStateType = new SerializableEntityStateType(typeof(SeamstressJump)); val2.mainStateType = new SerializableEntityStateType(typeof(SeamstressJump)); val2.customName = "Passive"; Prefabs.AddEntityStateMachine(bodyPrefab, "Weapon"); Prefabs.AddEntityStateMachine(bodyPrefab, "Weapon2"); } public override void InitializeSkills() { bodyPrefab.AddComponent(); Skills.CreateSkillFamilies(bodyPrefab); AddPassiveSkills(); AddPrimarySkills(); AddSecondarySkills(); AddUtilitySkills(); AddSpecialSkills(); ScepterCompat.Initialize(assetBundle); } private void AddPassiveSkills() { //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_0185: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_01ca: Unknown result type (might be due to invalid IL or missing references) SeamstressPassive component = bodyPrefab.GetComponent(); SkillLocator component2 = bodyPrefab.GetComponent(); component2.passiveSkill.enabled = false; component.blinkPassive = Skills.CreateSkillDef(new SkillDefInfo { skillName = "KENKO_SEAMSTRESS_PASSIVE_NAME", skillNameToken = "KENKO_SEAMSTRESS_PASSIVE_NAME", skillDescriptionToken = "KENKO_SEAMSTRESS_PASSIVE_DESCRIPTION", skillIcon = assetBundle.LoadAsset("texItHungersIcon"), keywordTokens = new string[1] { Tokens.detailsKeyword }, activationState = new SerializableEntityStateType(typeof(Idle)), activationStateMachineName = "", baseMaxStock = 1, baseRechargeInterval = 0f, beginSkillCooldownOnSkillEnd = false, canceledFromSprinting = false, forceSprintDuringState = false, fullRestockOnAssign = true, interruptPriority = (InterruptPriority)0, resetCooldownTimerOnUse = false, isCombatSkill = false, mustKeyPress = false, cancelSprintingOnActivation = false, rechargeStock = 1, requiredStock = 2, stockToConsume = 1 }); Skills.AddPassiveSkills(component.passiveSkillSlot.skillFamily, component.blinkPassive); component.impGauge = Skills.CreateSkillDef(new SkillDefInfo { skillName = "KENKO_SEAMSTRESS_NEEDLE_NAME", skillNameToken = "KENKO_SEAMSTRESS_NEEDLE_NAME", skillDescriptionToken = "KENKO_SEAMSTRESS_NEEDLE_DESCRIPTION", skillIcon = assetBundle.LoadAsset("texImpTouchedIcon"), keywordTokens = new string[1] { Tokens.needlesKeyword }, activationState = new SerializableEntityStateType(typeof(Idle)), activationStateMachineName = "", baseMaxStock = 1, baseRechargeInterval = 0f, beginSkillCooldownOnSkillEnd = false, canceledFromSprinting = false, forceSprintDuringState = false, fullRestockOnAssign = true, interruptPriority = (InterruptPriority)0, resetCooldownTimerOnUse = false, isCombatSkill = false, mustKeyPress = false, cancelSprintingOnActivation = false, rechargeStock = 1, requiredStock = 2, stockToConsume = 1 }); Skills.AddPassiveSkills(component.impGaugeSkillSlot.skillFamily, component.impGauge); } private void AddPrimarySkills() { //IL_002a: 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) SteppedSkillDef val = Skills.CreateSkillDef(new SkillDefInfo("Trim", "KENKO_SEAMSTRESS_PRIMARY_TRIM_NAME", "KENKO_SEAMSTRESS_PRIMARY_TRIM_DESCRIPTION", assetBundle.LoadAsset("texFlurryIcon"), new SerializableEntityStateType(typeof(Trim)))); val.stepCount = 3; val.stepGraceDuration = 0.5f; Skills.AddPrimarySkills(bodyPrefab, (SkillDef)val); SteppedSkillDef val2 = Skills.CreateSkillDef(new SkillDefInfo("Flurry", "KENKO_SEAMSTRESS_PRIMARY_FLURRY_NAME", "KENKO_SEAMSTRESS_PRIMARY_FLURRY_DESCRIPTION", assetBundle.LoadAsset("texFlurryIcon"), new SerializableEntityStateType(typeof(Flurry)))); val2.stepCount = 2; val2.stepGraceDuration = 0.5f; Skills.AddPrimarySkills(bodyPrefab, (SkillDef)val2); } private void AddSecondarySkills() { //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_006c: 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_0167: Unknown result type (might be due to invalid IL or missing references) SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "Clip"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_SECONDARY_CLIP_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_SECONDARY_CLIP_DESCRIPTION"; skillDefInfo.keywordTokens = new string[0]; skillDefInfo.skillIcon = assetBundle.LoadAsset("texClipIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Clip)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 6f; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = false; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.mustKeyPress = true; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, val); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "PlanarManipulation"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_SECONDARY_PLANMAN_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_SECONDARY_PLANMAN_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { Tokens.crushKeyword }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texPlanarManipulationIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Telekinesis)); skillDefInfo.activationStateMachineName = "Weapon2"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseMaxStock = 1; skillDefInfo.baseRechargeInterval = 0.5f; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = false; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.mustKeyPress = true; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SeamstressTrackingSkillDef seamstressTrackingSkillDef = Skills.CreateSkillDef(skillDefInfo); Skills.AddSecondarySkills(bodyPrefab, seamstressTrackingSkillDef); } private void AddUtilitySkills() { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "HeartDashSeamstress"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_UTILITY_HEARTDASH_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_UTILITY_HEARTDASH_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { Tokens.insatiableKeyword }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texGlimpseOfCorruptionIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(HealthCostDash)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = false; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = true; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "ParrySeamstress"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_UTILITY_PARRY_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_UTILITY_PARRY_DESCRIPTION"; skillDefInfo.keywordTokens = new string[1] { Tokens.insatiableKeyword }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texGlimpseOfPurityIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Parry)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)2; skillDefInfo.baseRechargeInterval = 8f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 1; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = false; skillDefInfo.mustKeyPress = true; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val2 = Skills.CreateSkillDef(skillDefInfo); Skills.AddUtilitySkills(bodyPrefab, val2); skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "Expunge"; skillDefInfo.skillNameToken = "Expunge"; skillDefInfo.skillDescriptionToken = "Expunge your core."; skillDefInfo.keywordTokens = new string[0]; skillDefInfo.skillIcon = assetBundle.LoadAsset("texImpTouchedIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(Explode)); skillDefInfo.activationStateMachineName = "Weapon2"; skillDefInfo.interruptPriority = (InterruptPriority)3; skillDefInfo.baseRechargeInterval = 0f; skillDefInfo.baseMaxStock = 1; skillDefInfo.rechargeStock = 0; skillDefInfo.requiredStock = 0; skillDefInfo.stockToConsume = 0; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = true; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.mustKeyPress = true; skillDefInfo.isCombatSkill = false; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = false; skillDefInfo.forceSprintDuringState = false; explodeSkillDef = Skills.CreateSkillDef(skillDefInfo); } private void AddSpecialSkills() { //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) SkillDefInfo skillDefInfo = new SkillDefInfo(); skillDefInfo.skillName = "FireSeamstress"; skillDefInfo.skillNameToken = "KENKO_SEAMSTRESS_SPECIAL_FIRE_NAME"; skillDefInfo.skillDescriptionToken = "KENKO_SEAMSTRESS_SPECIAL_FIRE_DESCRIPTION"; skillDefInfo.keywordTokens = new string[2] { Tokens.symbioticKeyword, Tokens.details2Keyword }; skillDefInfo.skillIcon = assetBundle.LoadAsset("texSkewerIcon"); skillDefInfo.activationState = new SerializableEntityStateType(typeof(FireScissor)); skillDefInfo.activationStateMachineName = "Weapon"; skillDefInfo.interruptPriority = (InterruptPriority)1; skillDefInfo.baseRechargeInterval = 14f; skillDefInfo.baseMaxStock = 2; skillDefInfo.rechargeStock = 2; skillDefInfo.requiredStock = 1; skillDefInfo.stockToConsume = 1; skillDefInfo.resetCooldownTimerOnUse = false; skillDefInfo.fullRestockOnAssign = true; skillDefInfo.dontAllowPastMaxStocks = true; skillDefInfo.mustKeyPress = true; skillDefInfo.beginSkillCooldownOnSkillEnd = false; skillDefInfo.isCombatSkill = true; skillDefInfo.canceledFromSprinting = false; skillDefInfo.cancelSprintingOnActivation = true; skillDefInfo.forceSprintDuringState = false; SkillDef val = Skills.CreateSkillDef(skillDefInfo); Skills.AddSpecialSkills(bodyPrefab, val); } public static Material CreateMaterial(AssetBundle assetBundle, string materialName, float emission, Color emissionColor, float normalStrength) { //IL_0074: 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) if (!Object.op_Implicit((Object)(object)SeamstressAssets.commandoMat)) { SeamstressAssets.commandoMat = Resources.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().baseRendererInfos[0].defaultMaterial; } Material val = Object.Instantiate(SeamstressAssets.commandoMat); Material val2 = assetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val2)) { return SeamstressAssets.commandoMat; } ((Object)val).name = materialName; val.SetColor("_Color", val2.GetColor("_Color")); val.SetTexture("_MainTex", val2.GetTexture("_MainTex")); val.SetColor("_EmColor", emissionColor); val.SetFloat("_EmPower", emission); val.SetTexture("_EmTex", val2.GetTexture("_EmissionMap")); val.SetFloat("_NormalStrength", normalStrength); return val; } public static Material CreateMaterial(AssetBundle assetBundle, string materialName) { return CreateMaterial(assetBundle, materialName, 0f); } public static Material CreateMaterial(AssetBundle assetBundle, string materialName, float emission) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(assetBundle, materialName, emission, Color.black); } public static Material CreateMaterial(AssetBundle assetBundle, string materialName, float emission, Color emissionColor) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(assetBundle, materialName, emission, emissionColor, 0f); } public override void InitializeSkins() { //IL_0247: 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_0269: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04b5: Unknown result type (might be due to invalid IL or missing references) //IL_05b9: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_05db: Unknown result type (might be due to invalid IL or missing references) ModelSkinController val = ((Component)prefabCharacterModel).gameObject.AddComponent(); ChildLocator component = ((Component)prefabCharacterModel).GetComponent(); RendererInfo[] baseRendererInfos = prefabCharacterModel.baseRendererInfos; List list = new List(); SkinDef val2 = SeamstressSkins.CreateSkinDef("DEFAULT_SKIN", assetBundle.LoadAsset("texMainSkin"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject); val2.meshReplacements = SeamstressSkins.getMeshReplacements(assetBundle, baseRendererInfos, "meshSeamstress", "meshScissorL", "meshScissorR", "meshSeamstressCrown", "meshHeart"); val2.rendererInfos[0].defaultMaterial = assetBundle.LoadAsset("matSeamstress"); val2.rendererInfos[1].defaultMaterial = assetBundle.LoadAsset("matScissors"); val2.rendererInfos[2].defaultMaterial = assetBundle.LoadAsset("matScissors"); val2.rendererInfos[3].defaultMaterial = assetBundle.LoadAsset("matSeamstress"); val2.rendererInfos[4].defaultMaterial = assetBundle.LoadAsset("matSeamstress"); list.Add(val2); SkinDef val3 = SeamstressSkins.CreateSkinDef("KENKO_SEAMSTRESS_MASTERY_SKIN_NAME", assetBundle.LoadAsset("texMonsoonBlue"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, SeamstressUnlockables.masterySkinUnlockableDef); val3.meshReplacements = SeamstressSkins.getMeshReplacements(assetBundle, baseRendererInfos, "meshPrincess", "meshPrincessSwordL", "meshPrincessSwordR", "meshPrincessCrown", null); val3.rendererInfos[0].defaultMaterial = assetBundle.LoadAsset("matPrincessBlue"); val3.rendererInfos[1].defaultMaterial = assetBundle.LoadAsset("matPrincessSword"); val3.rendererInfos[2].defaultMaterial = assetBundle.LoadAsset("matPrincessSword"); val3.rendererInfos[3].defaultMaterial = assetBundle.LoadAsset("matPrincessBlueEmissions"); val3.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component.FindChildGameObject("HeartModel"), shouldActivate = false } }; SkinDef val4 = SeamstressSkins.CreateSkinDef("KENKO_SEAMSTRESS_MASTERY_SKIN_NAME2", assetBundle.LoadAsset("texMonsoonRed"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, SeamstressUnlockables.masterySkinUnlockableDef); val4.meshReplacements = SeamstressSkins.getMeshReplacements(assetBundle, baseRendererInfos, "meshPrincess", "meshPrincessSwordL", "meshPrincessSwordR", "meshPrincessCrown", null); val4.rendererInfos[0].defaultMaterial = assetBundle.LoadAsset("matPrincessRed"); val4.rendererInfos[1].defaultMaterial = assetBundle.LoadAsset("matPrincessSwordAlt"); val4.rendererInfos[2].defaultMaterial = assetBundle.LoadAsset("matPrincessSwordAlt"); val4.rendererInfos[3].defaultMaterial = assetBundle.LoadAsset("matPrincessRedEmissions"); val4.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component.FindChildGameObject("HeartModel"), shouldActivate = false } }; SkinDef val5 = SeamstressSkins.CreateSkinDef("KENKO_SEAMSTRESS_MASTERY_SKIN_NAME3", assetBundle.LoadAsset("ravenIcon"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, SeamstressUnlockables.masteryTyphoonSkinUnlockableDef); val5.meshReplacements = SeamstressSkins.getMeshReplacements(assetBundle, baseRendererInfos, "meshRaven", "meshShadowClawsL", "meshShadowClawsR", "meshRavenCrown", null); val5.rendererInfos[0].defaultMaterial = assetBundle.LoadAsset("matRaven"); val5.rendererInfos[1].defaultMaterial = assetBundle.LoadAsset("matRavenShadowClaws"); val5.rendererInfos[2].defaultMaterial = assetBundle.LoadAsset("matRavenShadowClaws"); val5.rendererInfos[3].defaultMaterial = assetBundle.LoadAsset("matRaven"); val5.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component.FindChildGameObject("HeartModel"), shouldActivate = false } }; SkinDef val6 = SeamstressSkins.CreateSkinDef("KENKO_SEAMSTRESS_MASTERY_SKIN_NAME4", assetBundle.LoadAsset("ravenIcon"), baseRendererInfos, ((Component)prefabCharacterModel).gameObject, SeamstressUnlockables.masteryTyphoonSkinUnlockableDef); val6.meshReplacements = SeamstressSkins.getMeshReplacements(assetBundle, baseRendererInfos, "meshRavenAlt", "meshShadowClawsL", "meshShadowClawsR", "meshRavenCrownAlt", null); val6.rendererInfos[0].defaultMaterial = assetBundle.LoadAsset("matRavenAlt"); val6.rendererInfos[1].defaultMaterial = assetBundle.LoadAsset("matRavenShadowClaws"); val6.rendererInfos[2].defaultMaterial = assetBundle.LoadAsset("matRavenShadowClaws"); val6.rendererInfos[3].defaultMaterial = assetBundle.LoadAsset("matRavenAltEmission"); val6.gameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[1] { new GameObjectActivation { gameObject = component.FindChildGameObject("HeartModel"), shouldActivate = false } }; list.Add(val3); list.Add(val4); list.Add(val5); list.Add(val6); val.skins = list.ToArray(); } public override void InitializeCharacterMaster() { SeamstressAI.Init(bodyPrefab, masterName); } private void AddHooks() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown HUD.onHudTargetChangedGlobal += HUDSetup; HealthComponent.Heal += new hook_Heal(HealthComponent_Heal); CharacterModel.UpdateOverlays += new hook_UpdateOverlays(CharacterModel_UpdateOverlays); CharacterModel.UpdateOverlayStates += new hook_UpdateOverlayStates(CharacterModel_UpdateOverlayStates); HealthComponent.TakeDamageProcess += new hook_TakeDamageProcess(HealthComponent_TakeDamageProcess); GenericSkill.SetBonusStockFromBody += new hook_SetBonusStockFromBody(GenericSkill_SetBonusStockFromBody); ImmuneToDebuffBehavior.OverrideDot += new hook_OverrideDot(ImmuneToDebuffBehavior_OverrideDot); DotController.AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1 += new hook_AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1(DotController_AddDot); ImportanceCompat.Importance(); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init); } private void DotController_AddDot(orig_AddDot_GameObject_float_HurtBox_DotIndex_float_Nullable1_Nullable1_Nullable1 orig, DotController self, GameObject attackerObject, float duration, HurtBox hitHurtBox, DotIndex dotIndex, float damageMultiplier, uint? maxStacksFromAttacker, float? totalDamage, DotIndex? preUpgradeDotIndex) { //IL_003d: 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_0337: 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_007a: 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_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_02f7: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_02cc: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void RoR2.DotController::AddDot(UnityEngine.GameObject,System.Single,RoR2.HurtBox,RoR2.DotController/DotIndex,System.Single,System.Nullable`1,System.Nullable`1,System.Nullable`1)' called on client"); return; } CharacterBody component = attackerObject.GetComponent(); TeamComponent component2 = attackerObject.GetComponent(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component2) && component.bodyIndex == BodyCatalog.FindBodyIndex("SeamstressBody") && dotIndex == SeamstressDots.SeamstressSelfBleed) { DotDef val = DotController.dotDefs[dotIndex]; DotStack val2 = ((BasePool)(object)DotController.dotStackPool).Request(); val2.dotIndex = dotIndex; val2.dotDef = val; val2.attackerObject = attackerObject; val2.attackerTeam = (TeamIndex)0; val2.timer = duration; val2.totalDuration = duration; val2.damage = (self.victimBody.healthComponent.fullCombinedHealth - (self.victimBody.healthComponent.fullCombinedHealth - (self.victimBody.healthComponent.health + self.victimBody.healthComponent.shield))) * 0.05f; val2.damageType = DamageTypeCombo.op_Implicit((DamageType)67108931); val2.hitHurtBox = hitHurtBox; int num = 0; int i = 0; for (int count = self.dotStackList.Count; i < count; i++) { if (self.dotStackList[i].dotIndex == dotIndex) { num++; } } if (!Mathf.Approximately(damageMultiplier, 0f)) { val2.damage = Mathf.Max(1f, val2.damage); } if (totalDamage.HasValue && val2.damage != 0f) { duration = totalDamage.Value * val.interval / val2.damage; val2.timer = duration; val2.totalDuration = duration; } if (maxStacksFromAttacker.HasValue) { DotStack val3 = null; int num2 = 0; int j = 0; for (int count2 = self.dotStackList.Count; j < count2; j++) { DotStack val4 = self.dotStackList[j]; if (val4.dotIndex == dotIndex && (Object)(object)val4.attackerObject == (Object)(object)attackerObject) { num2++; if (val3 == null || val4.timer < val3.timer) { val3 = val4; } } } if (num2 >= maxStacksFromAttacker.Value && val3 != null) { if (val3.timer < duration) { val3.timer = duration; val3.totalDuration = duration; val3.damage = val2.damage; val3.damageType = val2.damageType; } return; } } if (num == 0 || val.resetTimerOnAdd) { self.NetworkactiveDotFlags = self.activeDotFlags | (uint)(1 << (int)dotIndex); self.dotTimers[dotIndex] = val.interval; } self.dotStackList.Add(val2); self.OnDotStackAddedServer(val2); } else { orig.Invoke(self, attackerObject, duration, hitHurtBox, dotIndex, damageMultiplier, maxStacksFromAttacker, totalDamage, preUpgradeDotIndex); } } private void SurvivorCatalog_Init(orig_Init orig) { orig.Invoke(); if (SeamstressPlugin.emotesInstalled) { EmotesAPICompat.Emotes(); } } private void CharacterModel_UpdateOverlays(orig_UpdateOverlays orig, CharacterModel self) { //IL_0040: 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) orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && Object.op_Implicit((Object)(object)self.body) && self.body.bodyIndex == BodyCatalog.FindBodyIndex("SeamstressBody")) { SeamstressController component = ((Component)self.body).GetComponent(); SeamstressInsatiableController component2 = ((Component)self.body).GetComponent(); AddOverlay(component.blue ? SeamstressAssets.insatiableOverlayMat2 : SeamstressAssets.insatiableOverlayMat, self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && Object.op_Implicit((Object)(object)component2) && !component2.hasStartedInsatiable); if (self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && Object.op_Implicit((Object)(object)component2) && !component2.hasStartedInsatiable) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)self).gameObject); val.duration = 0.6f; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0.4f); val.animateShaderAlpha = true; val.destroyComponentOnEnd = true; val.originalMaterial = (component.blue ? SeamstressAssets.insatiableOverlayMat2 : SeamstressAssets.insatiableOverlayMat); } if (self.body.HasBuff(SeamstressBuffs.ParryStart)) { TemporaryOverlayInstance val2 = TemporaryOverlayManager.AddOverlay(((Component)self).gameObject); val2.duration = 0.4f; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.animateShaderAlpha = true; val2.destroyComponentOnEnd = true; val2.originalMaterial = SeamstressAssets.parryMat; } } void AddOverlay(Material overlayMaterial, bool condition) { if (self.activeOverlayCount < CharacterModel.maxOverlays && condition) { Material[] currentOverlays = self.currentOverlays; CharacterModel obj = self; int activeOverlayCount = obj.activeOverlayCount; obj.activeOverlayCount = activeOverlayCount + 1; currentOverlays[activeOverlayCount] = overlayMaterial; } } } private bool CharacterModel_UpdateOverlayStates(orig_UpdateOverlayStates orig, CharacterModel self) { //IL_0040: 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) bool flag = orig.Invoke(self); if (!Object.op_Implicit((Object)(object)self) || !Object.op_Implicit((Object)(object)self.body) || self.body.bodyIndex != BodyCatalog.FindBodyIndex("SeamstressBody")) { return flag; } SeamstressController component = ((Component)self.body).GetComponent(); SeamstressInsatiableController component2 = ((Component)self.body).GetComponent(); SetOverlayFlag(self.baseRendererInfos.Length, self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && Object.op_Implicit((Object)(object)component2) && !component2.hasStartedInsatiable); return self.oldOverlays != self.activeOverlays || flag; void SetOverlayFlag(int index, bool condition) { if (condition) { CharacterModel obj = self; obj.activeOverlays |= 1 << index; } } } private bool ImmuneToDebuffBehavior_OverrideDot(orig_OverrideDot orig, InflictDotInfo inflictDotInfo) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) GameObject victimObject = inflictDotInfo.victimObject; CharacterBody val = ((victimObject != null) ? victimObject.GetComponent() : null); if (Object.op_Implicit((Object)(object)val) && val.bodyIndex != BodyCatalog.FindBodyIndex("SeamstressBody") && inflictDotInfo.dotIndex == SeamstressDots.SeamstressSelfBleed) { return false; } return orig.Invoke(inflictDotInfo); } private void HealthComponent_TakeDamageProcess(orig_TakeDamageProcess orig, HealthComponent self, DamageInfo damageInfo) { //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) float num = 0f; if ((NetworkServer.active && self.alive) || !self.godMode || self.ospTimer <= 0f) { if (self.body.HasBuff(SeamstressBuffs.ParryStart) && damageInfo.damage > 0f) { self.body.RemoveBuff(SeamstressBuffs.ParryStart); if (!self.body.HasBuff(SeamstressBuffs.ParrySuccess)) { self.body.AddBuff(SeamstressBuffs.ParrySuccess); } self.body.AddTimedBuff(Buffs.Immune, SeamstressConfig.parryWindow.Value + 0.5f); damageInfo.rejected = true; } else if (self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && damageInfo.dotIndex != SeamstressDots.SeamstressSelfBleed) { SeamstressController component = ((Component)self.body).gameObject.GetComponent(); if (Object.op_Implicit((Object)(object)component) && !self.body.HasBuff(Buffs.HiddenInvincibility)) { if (damageInfo.damage >= self.combinedHealth && self.body.skillLocator.utility.skillDef.skillIndex == explodeSkillDef.skillIndex) { self.body.skillLocator.utility.ExecuteIfReady(); } damageInfo.rejected = true; } } else if (self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { num = self.barrier; if (num > 0f) { self.AddBarrier(0f - num); } } } orig.Invoke(self, damageInfo); if (NetworkServer.active && Object.op_Implicit((Object)(object)self.body) && self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { if (num > 0f) { self.body.healthComponent.AddBarrier(num); } self.body.RecalculateStats(); } } private float HealthComponent_Heal(orig_Heal orig, HealthComponent self, float amount, ProcChainMask procChainMask, bool nonRegen = true) { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)self.body)) { bool flag = false; if (Object.op_Implicit((Object)(object)self) && self.body.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { flag = true; amount *= SeamstressConfig.healConversion.Value; } float num = orig.Invoke(self, amount, procChainMask, nonRegen); if (flag) { self.AddBarrier(num / SeamstressConfig.healConversion.Value * (1f - SeamstressConfig.healConversion.Value)); } return num; } return orig.Invoke(self, amount, procChainMask, nonRegen); } public void GenericSkill_SetBonusStockFromBody(orig_SetBonusStockFromBody orig, GenericSkill self, int newBonusStockFromBody) { if (!Object.op_Implicit((Object)(object)self) || ((!self.skillDef.dontAllowPastMaxStocks || self.skillDef.skillIndex != SkillCatalog.FindSkillIndexByName("FireScepterSeamstress")) && self.skillDef.skillIndex != SkillCatalog.FindSkillIndexByName("FireSeamstress"))) { orig.Invoke(self, newBonusStockFromBody); } } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { SeamstressController component = ((Component)sender).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { if (sender.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { args.attackSpeedMultAdd += 0.2f; args.baseMoveSpeedAdd += 2f; } if (!sender.HasBuff(SeamstressBuffs.ScissorLeftBuff)) { args.attackSpeedMultAdd += 0.1f; } if (!sender.HasBuff(SeamstressBuffs.ScissorRightBuff)) { args.attackSpeedMultAdd += 0.1f; } if (Object.op_Implicit((Object)(object)sender.inventory) && sender.inventory.GetItemCountEffective(Items.EquipmentMagazineVoid) != 0) { args.attackSpeedMultAdd += 0.1f * (float)sender.inventory.GetItemCountEffective(Items.EquipmentMagazineVoid); } } } internal static void HUDSetup(HUD hud) { if (Object.op_Implicit((Object)(object)hud.targetBodyObject) && (Object)(object)hud.targetMaster.bodyPrefab == (Object)(object)characterPrefab && ((NetworkBehaviour)hud.targetMaster).hasAuthority && !Object.op_Implicit((Object)(object)((Component)hud).transform.Find("MainContainer").Find("MainUIArea").Find("CrosshairCanvas") .Find("SeamstressCrosshair"))) { GameObject val = Object.Instantiate(SeamstressCrosshair.seamstressCrosshair, ((Component)hud).transform.Find("MainContainer").Find("MainUIArea").Find("CrosshairCanvas")); ((Object)val).name = "SeamstressCrosshair"; val.gameObject.GetComponent().targetBodyObject = hud.targetBodyObject; val.gameObject.GetComponent().targetCharacterBody = hud.targetBodyObject.GetComponent(); } } } } namespace SeamstressMod.Seamstress.SkillStates { public class Clip : BaseSeamstressSkillState { public GameObject clawSlash = SeamstressAssets.clawSlashEffect; public GameObject hitEffectPrefab = SeamstressAssets.scissorsHitImpactEffect; public GameObject swingEffectPrefab = SeamstressAssets.scissorsSlashComboEffect; public GameObject wideEffectPrefab = SeamstressAssets.wideSlashEffect; private GameObject swingEffectInstance; protected EffectManagerHelper _emh_swingEffectInstance; private GameObject swingEffectInstance2; protected EffectManagerHelper _emh_swingEffectInstance2; protected Animator animator; private OverlapAttack overlapAttack; private DamageType damageType = (DamageType)0; private ModdedDamageType moddedDamageType = DamageTypes.CutDamage; private ModdedDamageType moddedDamageType2 = DamageTypes.SeamstressLifesteal; private float damageCoefficient = SeamstressConfig.clipDamageCoefficient.Value; private float procCoefficient = 0.6f; private float pushForce = 0f; private Vector3 bonusForce = Vector3.zero; protected float stopwatch; private HitStopCachedState hitStopCachedState; private float hitPauseTimer; protected float hitStopDuration = 0.01f; protected bool inHitPause; protected string playbackRateParam = "Slash.playbackRate"; protected string hitBoxString = "SwordBig"; private int snips; private int alternateSwings = 0; private float baseDuration = 0.75f; private float duration; private float firstSnip; private float secondSnip; private float snipInterval; private float lastSnip; private bool hasFired; private bool hasFired2; private bool noScissors; private bool inAir; private Vector3 storedVelocity; public override void OnEnter() { RefreshState(); if (seamstressController.blue) { clawSlash = SeamstressAssets.clawSlashEffect2; hitEffectPrefab = SeamstressAssets.scissorsHitImpactEffect2; swingEffectPrefab = SeamstressAssets.scissorsSlashComboEffect2; wideEffectPrefab = SeamstressAssets.wideSlashEffect2; } base.OnEnter(); baseDuration = 0.75f; snips = needleCount; if (!scissorRight || !scissorLeft) { noScissors = true; } if (noScissors) { hitBoxString = "Sword"; } animator = ((EntityState)this).GetModelAnimator(); duration = baseDuration / ((BaseState)this).attackSpeedStat; firstSnip = duration * 0.2f; secondSnip = duration * 0.4f; snipInterval = 0f; lastSnip = duration - firstSnip; if (!((EntityState)this).characterMotor.isGrounded) { inAir = true; } ((BaseState)this).StartAimMode(duration, false); PlayAttackAnimation(); if (inAir) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 6f); } } public override void FixedUpdate() { //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_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_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) base.FixedUpdate(); hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer <= 0f && inHitPause) { RemoveHitstop(); } if (!inHitPause) { stopwatch += Time.fixedDeltaTime; if (inAir && ((EntityState)this).isAuthority) { Vector3 velocity = ((EntityState)this).characterDirection.forward * ((BaseState)this).moveSpeedStat * Mathf.Lerp(3f, 1f, ((EntityState)this).age / duration); velocity.y = ((EntityState)this).characterMotor.velocity.y; ((EntityState)this).characterMotor.velocity = velocity; } } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat(playbackRateParam, 0f); } } if (stopwatch >= firstSnip && !hasFired) { hasFired = true; EnterAttack(); FireAttack(); } if (stopwatch >= secondSnip + snipInterval && snipInterval <= secondSnip && snips > 0) { EnterAttack(); FireAttack(); snips--; snipInterval += secondSnip / 5f; Util.PlaySound("Play_bandit2_m2_alt_throw", ((EntityState)this).gameObject); } if (stopwatch >= lastSnip && !hasFired2) { hasFired2 = true; EnterAttack(); FireAttack(); } if (stopwatch >= duration && snips == 0 && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } protected void ApplyHitstop() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, playbackRateParam); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void RemoveHitstop() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } protected virtual void OnHitEnemyAuthority() { ApplyHitstop(); } private void EnterAttack() { if (noScissors) { Util.PlayAttackSpeedSound("Play_imp_attack", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); } else { Util.PlayAttackSpeedSound("Play_bandit2_m2_impact", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); } } protected virtual void DetermineSwing() { Transform attachedTransform = ((BaseState)this).FindModelChild("SwingCenter"); GameObject effect = clawSlash; PlaySwingEffect(attachedTransform, effect); if (noScissors) { effect = clawSlash; if (hasFired && !hasFired2) { if (alternateSwings == 0) { attachedTransform = ((BaseState)this).FindModelChild("SwingLeftSmall"); alternateSwings = 1; } else if (alternateSwings == 1) { attachedTransform = ((BaseState)this).FindModelChild("SwingRightSmall"); alternateSwings = 0; } } else if (hasFired2) { attachedTransform = ((BaseState)this).FindModelChild("SwingRightSmall"); } } else if (inAir) { effect = wideEffectPrefab; if (hasFired && !hasFired2) { if (alternateSwings == 0) { attachedTransform = ((BaseState)this).FindModelChild("SwingCharAirCenter2"); alternateSwings = 1; } else if (alternateSwings == 1) { attachedTransform = ((BaseState)this).FindModelChild("SwingCharAirCenter"); alternateSwings = 0; } } else if (hasFired2) { attachedTransform = ((BaseState)this).FindModelChild("SwingCharAirCenter"); } } else { if (hasFired && !hasFired2) { if (alternateSwings == 0) { attachedTransform = ((BaseState)this).FindModelChild("SwingLeftSmall"); alternateSwings = 1; } else if (alternateSwings == 1) { attachedTransform = ((BaseState)this).FindModelChild("SwingRightSmall"); alternateSwings = 0; } } else if (hasFired2) { attachedTransform = ((BaseState)this).FindModelChild("SwingRightSmall"); } PlaySwingEffect(((BaseState)this).FindModelChild("SwingCenter"), swingEffectPrefab); } PlaySwingEffect(attachedTransform, effect); } protected virtual void PlaySwingEffect(Transform attachedTransform, GameObject Effect) { if (!EffectManager.ShouldUsePooledEffect(Effect)) { swingEffectInstance = Object.Instantiate(Effect, attachedTransform); } else { _emh_swingEffectInstance = EffectManager.GetAndActivatePooledEffect(Effect, attachedTransform, true); swingEffectInstance = ((Component)_emh_swingEffectInstance).gameObject; } ScaleParticleSystemDuration component = swingEffectInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = component.initialDuration; } } protected virtual void PlaySwingEffect2(Transform attachedTransform, GameObject Effect) { if (Object.op_Implicit((Object)(object)attachedTransform)) { if (!EffectManager.ShouldUsePooledEffect(Effect)) { swingEffectInstance2 = Object.Instantiate(Effect, attachedTransform); } else { _emh_swingEffectInstance2 = EffectManager.GetAndActivatePooledEffect(Effect, attachedTransform, true); swingEffectInstance2 = ((Component)_emh_swingEffectInstance2).gameObject; } ScaleParticleSystemDuration component = swingEffectInstance2.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = component.initialDuration; } } } protected virtual void FireAttack() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0149: 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) overlapAttack = new OverlapAttack(); overlapAttack.damageType = DamageTypeCombo.op_Implicit(damageType); if (isInsatiable) { DamageAPI.AddModdedDamageType(ref overlapAttack.damageType, moddedDamageType); } DamageAPI.AddModdedDamageType(ref overlapAttack.damageType, moddedDamageType2); overlapAttack.attacker = ((EntityState)this).gameObject; overlapAttack.inflictor = ((EntityState)this).gameObject; overlapAttack.teamIndex = ((BaseState)this).GetTeam(); overlapAttack.damage = damageCoefficient * ((BaseState)this).damageStat; overlapAttack.procCoefficient = procCoefficient; overlapAttack.hitEffectPrefab = hitEffectPrefab; overlapAttack.forceVector = bonusForce; overlapAttack.pushAwayForce = pushForce; overlapAttack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitBoxString); overlapAttack.isCrit = ((BaseState)this).RollCrit(); overlapAttack.damageType.damageSource = (DamageSource)2; if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; ((BaseState)this).FindModelChild("SwingPivot").rotation = Util.QuaternionSafeLookRotation(direction); if (overlapAttack.Fire((List)null)) { OnHitEnemyAuthority(); } } DetermineSwing(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) if (stopwatch >= duration) { return (InterruptPriority)0; } return (InterruptPriority)2; } private void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", "Clip", "Slash.playbackRate", duration * 1.7f, 0.1f * duration); } public override void OnExit() { if (((EntityState)this).isAuthority) { if ((Object)(object)_emh_swingEffectInstance != (Object)null && _emh_swingEffectInstance.OwningPool != null) { ((GenericPool)(object)_emh_swingEffectInstance.OwningPool).ReturnObject(_emh_swingEffectInstance); } else if (Object.op_Implicit((Object)(object)swingEffectInstance)) { EntityState.Destroy((Object)(object)swingEffectInstance); } swingEffectInstance = null; _emh_swingEffectInstance = null; if ((Object)(object)_emh_swingEffectInstance2 != (Object)null && _emh_swingEffectInstance2.OwningPool != null) { ((GenericPool)(object)_emh_swingEffectInstance2.OwningPool).ReturnObject(_emh_swingEffectInstance2); } else if (Object.op_Implicit((Object)(object)swingEffectInstance2)) { EntityState.Destroy((Object)(object)swingEffectInstance2); } swingEffectInstance2 = null; _emh_swingEffectInstance2 = null; } ((EntityState)this).OnExit(); } } public class Explode : BaseSeamstressSkillState { public float baseDuration = 0.5f; public BlastAttack BlastAttack; public override void OnEnter() { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Expected O, but got Unknown //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); BlastAttack = new BlastAttack(); BlastAttack.position = ((EntityState)this).transform.position; BlastAttack.baseDamage = ((BaseState)this).damageStat * Mathf.Lerp(SeamstressConfig.explodeMinDamageCoefficient.Value, SeamstressConfig.explodeMaxDamageCoefficient.Value, ((EntityState)this).healthComponent.barrier / ((EntityState)this).characterBody.maxBarrier); BlastAttack.baseForce = 800f; BlastAttack.bonusForce = Vector3.zero; BlastAttack.radius = Mathf.Lerp(10f, 30f, ((EntityState)this).healthComponent.barrier / ((EntityState)this).characterBody.maxBarrier); BlastAttack.attacker = ((EntityState)this).gameObject; BlastAttack.inflictor = ((EntityState)this).gameObject; BlastAttack.teamIndex = ((EntityState)this).teamComponent.teamIndex; BlastAttack.crit = ((BaseState)this).RollCrit(); BlastAttack.procChainMask = default(ProcChainMask); BlastAttack.procCoefficient = 1f; BlastAttack.falloffModel = (FalloffModel)1; BlastAttack.damageColorIndex = (DamageColorIndex)0; ((EntityState)this).skillLocator.utility.UnsetSkillOverride((object)((EntityState)this).gameObject, SeamstressSurvivor.explodeSkillDef, (SkillOverridePriority)4); ((EntityState)this).PlayCrossfade("FullBody, Override", "RipHeart", "Dash.playbackRate", baseDuration / ((BaseState)this).attackSpeedStat * 1.8f, baseDuration / ((BaseState)this).attackSpeedStat * 0.05f); Util.PlayAttackSpeedSound("Play_imp_overlord_attack2_tell", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.Slow50); ((EntityState)this).characterBody.AddBuff(Buffs.SmallArmorBoost); } } public override void FixedUpdate() { base.FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= baseDuration / ((BaseState)this).attackSpeedStat) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_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_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Expected O, but got Unknown //IL_0073: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveOldestTimedBuff(SeamstressBuffs.SeamstressInsatiableBuff); ((EntityState)this).characterBody.RemoveBuff(Buffs.Slow50); ((EntityState)this).characterBody.RemoveBuff(Buffs.SmallArmorBoost); CleanseSystem.CleanseBodyServer(((EntityState)this).characterBody, false, false, false, true, false, false); } Util.PlaySound("Play_imp_overlord_teleport_end", ((EntityState)this).gameObject); if (((EntityState)this).isAuthority) { BlastAttack.Fire(); } float barrier = ((EntityState)this).characterBody.healthComponent.barrier; ((EntityState)this).characterBody.healthComponent.SetBarrier(0f); ((EntityState)this).characterBody.healthComponent.Heal(barrier, default(ProcChainMask), true); EffectManager.SpawnEffect(SeamstressAssets.genericImpactExplosionEffect, new EffectData { origin = ((EntityState)this).characterBody.corePosition, rotation = Quaternion.identity, color = Color32.op_Implicit(SeamstressAssets.coolRed) }, true); EffectManager.SpawnEffect(SeamstressAssets.slamEffect, new EffectData { origin = ((EntityState)this).characterBody.corePosition, rotation = Quaternion.identity }, true); ((EntityState)this).OnExit(); } } public class FireScissor : BaseSeamstressSkillState { public GameObject scissorFiringPrefab = SeamstressAssets.impDashEffect; private GameObject projectilePrefab; public static float baseDuration = 0.5f; public static float damageCoefficient = 1f; public static float procCoefficient = 1f; public static string attackSoundString = "Play_imp_overlord_attack1_throw"; private Animator modelAnimator; private float duration; private string chosenAnim = "FireScissorL"; private bool hasFired; private Ray aimRay; private string fireString; protected virtual bool sceptered => false; public override void OnEnter() { //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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: 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_016e: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0190: 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) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Expected O, but got Unknown RefreshState(); if (seamstressController.blue) { scissorFiringPrefab = SeamstressAssets.impDashEffect2; } base.OnEnter(); Util.PlaySound("Play_item_lunar_specialReplace_explode", ((EntityState)this).gameObject); ((Component)((EntityState)this).characterBody).GetComponent().isRight = true; duration = baseDuration / ((BaseState)this).attackSpeedStat; aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); modelAnimator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)modelAnimator)) { if (scissorRight && scissorLeft) { chosenAnim = "FireScissorL"; } else if (scissorRight && !scissorLeft) { chosenAnim = "FireScissorR"; } else if (scissorLeft && !scissorRight) { chosenAnim = "FireScissorL"; } else { chosenAnim = "FireScissorL"; } ((EntityState)this).PlayCrossfade("Gesture, Override", chosenAnim, "Slash.playbackRate", duration, 0.05f); } if (NetworkServer.active) { DamageInfo val = new DamageInfo { damage = ((EntityState)this).characterBody.healthComponent.fullCombinedHealth * 0.15f, damageType = DamageTypeCombo.op_Implicit((DamageType)3), position = ((EntityState)this).characterBody.corePosition, attacker = null, procCoefficient = 0f, crit = false, damageColorIndex = (DamageColorIndex)2 }; ((EntityState)this).characterBody.healthComponent.TakeDamage(val); } } public override void OnExit() { RefreshState(); ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (Object.op_Implicit((Object)(object)modelAnimator) && !hasFired) { if (chosenAnim == "FireScissorL") { projectilePrefab = seamstressController.scissorLPrefab; fireString = "SwingRightSmall"; } else { projectilePrefab = seamstressController.scissorRPrefab; fireString = "SwingLeftSmall"; } float num = (sceptered ? 0.75f : SeamstressConfig.basePickupCooldown.Value); ((Component)projectilePrefab.transform.GetChild(0).GetChild(5)).gameObject.GetComponent().pickupTimer = Mathf.Max(0.5f, num * ((EntityState)this).skillLocator.special.cooldownScale - ((EntityState)this).skillLocator.special.flatCooldownReduction); if (isInsatiable) { DamageAPI.AddModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage); } else if (DamageAPI.HasModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage)) { DamageAPI.RemoveModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage); } Fire(aimRay, fireString); hasFired = true; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } private void Fire(Ray aimRay, string muzzleName) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Expected O, but got Unknown //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) Util.PlaySound(attackSoundString, ((EntityState)this).gameObject); Transform val = ((BaseState)this).FindModelChild(muzzleName); if (Object.op_Implicit((Object)(object)val)) { EffectData val2 = new EffectData(); val2.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); val2.origin = val.position; val2.scale = 0.5f; EffectManager.SpawnEffect(scissorFiringPrefab, val2, true); } if (((EntityState)this).isAuthority) { ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat, 0f, Util.CheckRoll(((BaseState)this).critStat, ((EntityState)this).characterBody.master), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class FireScissorScepter : FireScissor { protected override bool sceptered => true; } public class Flurry : BaseMeleeAttack { public override void OnEnter() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_017b: 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_0169: Unknown result type (might be due to invalid IL or missing references) //IL_01e9: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) RefreshState(); hitboxGroupName = "Sword"; damageType = (DamageType)0; damageSource = (DamageSource)1; damageTotal = SeamstressConfig.flurryDamageCoefficient.Value; procCoefficient = 1f; pushForce = 300f; bonusForce = Vector3.zero; baseDuration = 1.1f; baseScissorDuration = 2f; attackStartPercentTime = 0.2f; attackEndPercentTime = 0.4f; earlyExitPercentTime = 0.5f; hitStopDuration = 0.05f; attackRecoil = 2f / ((BaseState)this).attackSpeedStat; hitHopVelocity = 8f; swingSoundString = "sfx_seamstress_swing"; hitSoundString = ""; hitEffectPrefab = (seamstressController.blue ? SeamstressAssets.scissorsHitImpactEffect2 : SeamstressAssets.scissorsHitImpactEffect); swingEffectPrefab = (seamstressController.blue ? SeamstressAssets.clawSlashEffect2 : SeamstressAssets.clawSlashEffect); bonusSwingEffectPrefab = (seamstressController.blue ? SeamstressAssets.scissorsSlashEffect2 : SeamstressAssets.scissorsSlashEffect); muzzleString = ((swingIndex % 2 == 0) ? "SwingLeftSmall" : "SwingRightSmall"); buffer = false; if (isInsatiable) { moddedDamageTypeHolder.Add(DamageTypes.CutDamage); moddedDamageTypeHolder.Add(DamageTypes.GainNeedles); } moddedDamageTypeHolder.Add(DamageTypes.SeamstressLifesteal); scissorHit = true; if (muzzleString == "SwingLeftSmall" && !scissorRight) { scissorHit = false; } if (muzzleString == "SwingRightSmall" && !scissorLeft) { scissorHit = false; } impactSound = SeamstressAssets.scissorsHitSoundEvent.index; base.OnEnter(); } public override void FixedUpdate() { base.FixedUpdate(); } protected override void FireAttack() { //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_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_001d: 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_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) if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; direction.y = Mathf.Max(direction.y, direction.y * 0.5f); ((BaseState)this).FindModelChild("SwingPivot").rotation = Util.QuaternionSafeLookRotation(direction); if (attack.Fire((List)null)) { OnHitEnemyAuthority(); } } } protected override void PlayAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", (swingIndex % 2 == 0) ? "Slash1" : "Slash2", "Slash.playbackRate", duration, 0.1f * duration); } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); } public override void OnExit() { base.OnExit(); } } public class HealthCostDash : BaseSeamstressSkillState { public float baseDuration = 0.8f; public float dashPower = 6f; public float damageCoefficient = SeamstressConfig.blinkDamageCoefficient.Value; public GameObject uppercutEffect = SeamstressAssets.uppercutEffect; public GameObject projectilePrefab = SeamstressAssets.heartPrefab; public GameObject scissorHitImpactEffect = SeamstressAssets.scissorsHitImpactEffect; public GameObject bloodExplosionEffect = SeamstressAssets.bloodExplosionEffect; public GameObject impDashEffect = SeamstressAssets.impDashEffect; public GameObject bloodSplatterEffect = SeamstressAssets.bloodSplatterEffect; public GameObject smallBlinkEffect = SeamstressAssets.smallBlinkEffect; public Color mainColor = SeamstressAssets.coolRed; public Material destealthMaterial = SeamstressAssets.destealthMaterial; private Vector3 dashVector; private OverlapAttack attack; private List victimsStruck = new List(); protected string hitBoxString = "Sword"; private bool hasHit; private bool hasDelayed; public override void OnEnter() { //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_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) RefreshState(); if (seamstressController.blue) { uppercutEffect = SeamstressAssets.uppercutEffect2; projectilePrefab = SeamstressAssets.heartPrefab2; scissorHitImpactEffect = SeamstressAssets.scissorsHitImpactEffect2; bloodExplosionEffect = SeamstressAssets.bloodExplosionEffect2; impDashEffect = SeamstressAssets.impDashEffect2; bloodSplatterEffect = SeamstressAssets.bloodSplatterEffect2; smallBlinkEffect = SeamstressAssets.smallBlinkEffect2; mainColor = Color.cyan; destealthMaterial = SeamstressAssets.destealthMaterial2; } base.OnEnter(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; Transform modelTransform = ((EntityState)this).GetModelTransform(); Animator component = ((Component)modelTransform).GetComponent(); if (Object.op_Implicit((Object)(object)modelTransform) && Object.op_Implicit((Object)(object)destealthMaterial)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((EntityState)this).gameObject); val.duration = 1.2f; val.destroyComponentOnEnd = true; val.originalMaterial = destealthMaterial; val.inspectorCharacterModel = ((Component)component).gameObject.GetComponent(); val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.animateShaderAlpha = true; } ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).PlayCrossfade("FullBody, Override", "RipHeart", "Dash.playbackRate", baseDuration / ((BaseState)this).attackSpeedStat * 1.8f, baseDuration / ((BaseState)this).attackSpeedStat * 0.05f); Util.PlayAttackSpeedSound("Play_imp_overlord_attack2_tell", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); } public override void FixedUpdate() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Expected O, but got Unknown //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01ff: Unknown result type (might be due to invalid IL or missing references) //IL_0221: 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_0242: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_029c: 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_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Expected O, but got Unknown //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Expected O, but got Unknown //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_02f5: Unknown result type (might be due to invalid IL or missing references) //IL_0300: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_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_0323: Unknown result type (might be due to invalid IL or missing references) //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_0335: Expected O, but got Unknown //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0375: Unknown result type (might be due to invalid IL or missing references) //IL_038d: Unknown result type (might be due to invalid IL or missing references) //IL_0392: Unknown result type (might be due to invalid IL or missing references) //IL_0397: Unknown result type (might be due to invalid IL or missing references) //IL_03a2: 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_03a9: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03bc: 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_03e2: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0407: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Expected O, but got Unknown //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03d9: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (((EntityState)this).isAuthority && hasDelayed) { ((EntityState)this).characterDirection.forward = dashVector; ((EntityState)this).characterBody.isSprinting = true; if (attack.Fire(victimsStruck)) { hasHit = true; Transform val = ((BaseState)this).FindModelChild("UpperCut"); if (Object.op_Implicit((Object)(object)val)) { Object.Instantiate(uppercutEffect, val); } ((EntityState)this).characterMotor.velocity = Vector3.zero; ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 4f); ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).fixedAge >= baseDuration / ((BaseState)this).attackSpeedStat) { EffectData val2 = new EffectData { origin = ((EntityState)this).characterBody.corePosition, rotation = Util.QuaternionSafeLookRotation(dashVector), scale = 3f }; EffectManager.SpawnEffect(impDashEffect, val2, false); ((EntityState)this).outer.SetNextStateToMain(); } } if (hasDelayed) { return; } ((EntityState)this).characterMotor.velocity.y = 0f; if (((EntityState)this).fixedAge > baseDuration / 2f / ((BaseState)this).attackSpeedStat) { dashVector = ((EntityState)this).inputBank.aimDirection; Util.PlaySound("sfx_seamstress_dash", ((EntityState)this).gameObject); Util.PlaySound("sfx_seamstress_chains", ((EntityState)this).gameObject); attack = new OverlapAttack(); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); attack.damageType.damageSource = (DamageSource)4; DamageAPI.AddModdedDamageType(ref attack.damageType, DamageTypes.GainNeedles); attack.procCoefficient = 1f; attack.teamIndex = ((BaseState)this).GetTeam(); attack.isCrit = ((BaseState)this).RollCrit(); attack.forceVector = Vector3.up * 2000f; attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitBoxString); attack.hitEffectPrefab = scissorHitImpactEffect; EffectManager.SpawnEffect(bloodExplosionEffect, new EffectData { origin = ((EntityState)this).transform.position, rotation = Quaternion.identity, scale = 0.5f }, false); if (isInsatiable) { DamageAPI.AddModdedDamageType(attack, DamageTypes.CutDamage); } DamageAPI.AddModdedDamageType(attack, DamageTypes.SeamstressLifesteal); EffectData val3 = new EffectData { origin = ((EntityState)this).characterBody.corePosition, rotation = Util.QuaternionSafeLookRotation(dashVector), scale = 3f }; EffectManager.SpawnEffect(impDashEffect, val3, false); EffectManager.SpawnEffect(smallBlinkEffect, val3, false); ((EntityState)this).characterMotor.velocity.y = 0f; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity += dashVector * (dashPower * (((BaseState)this).moveSpeedStat + 1f)); Vector3 val4 = ((EntityState)this).transform.localPosition; RaycastHit val5 = default(RaycastHit); if (Physics.Raycast(val4, Vector3.one, ref val5, 10f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask))) { val4 = ((RaycastHit)(ref val5)).point; } EffectManager.SpawnEffect(bloodSplatterEffect, new EffectData { origin = val4, rotation = Quaternion.identity, color = Color32.op_Implicit(mainColor) }, false); Vector3 corePosition = ((EntityState)this).characterBody.corePosition; hasDelayed = true; if (NetworkServer.active) { DotController.InflictDot(((EntityState)this).gameObject, ((EntityState)this).gameObject, ((EntityState)this).characterBody.mainHurtBox, SeamstressDots.SeamstressSelfBleed, SeamstressConfig.insatiableDuration.Value, 1f, (uint?)null); } } } public override void OnExit() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) if (!hasHit) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.2f; } ((EntityState)this).OnExit(); ((EntityState)this).skillLocator.utility.SetSkillOverride((object)((EntityState)this).gameObject, SeamstressSurvivor.explodeSkillDef, (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; } } public class HeartSpawnState : BaseState { public static float duration = 0.01f; public static string enterSoundString = "Play_bleedOnCritAndExplode_impact"; public float fixedAgeFixed; public override void OnEnter() { ((BaseState)this).OnEnter(); Util.PlaySound(enterSoundString, ((EntityState)this).gameObject); ((Component)((BaseState)this).FindModelChild("ChargeUpFX")).gameObject.SetActive(true); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); fixedAgeFixed += Time.fixedDeltaTime; if (fixedAgeFixed >= duration) { ((EntityState)this).outer.SetNextState((EntityState)(object)new HeartStandBy()); } } } public class HeartStandBy : BaseState { public GameObject chain = SeamstressAssets.chainToHeart; public static AnimationCurve yankSuitabilityCurve; private CharacterBody ownerBody; private SeamstressController seamstressController; private GameObject owner; private float snapBackDelay; private bool hasFired; private bool splat; private static float bleedInterval = 0.2f; private float bleedTimer; public override void OnEnter() { ((BaseState)this).OnEnter(); splat = false; ProjectileController component = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { owner = component.owner; } ((EntityState)this).PlayAnimation("Base", "SpawnToIdle"); Util.PlaySound("Play_treeBot_R_yank", owner); seamstressController = owner.GetComponent(); ownerBody = owner.GetComponent(); ((Behaviour)chain.GetComponent()).enabled = true; chain.GetComponent().ownerBody = ownerBody; } public override void FixedUpdate() { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)ownerBody) && ownerBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { HandleBleed(); if (!hasFired) { hasFired = true; ChainUpdate(SeamstressConfig.insatiableDuration.Value); } } else if (Object.op_Implicit((Object)(object)ownerBody) && !ownerBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && hasFired) { if (!splat) { splat = true; Vector3 val = ownerBody.corePosition - ((EntityState)this).transform.position; snapBackDelay = ((Vector3)(ref val)).magnitude / 10f; snapBackDelay = Mathf.Clamp(snapBackDelay, 0.2f, 1f); ((Behaviour)chain.GetComponent()).enabled = false; ChainUpdate(snapBackDelay); } snapBackDelay -= Time.fixedDeltaTime; if (snapBackDelay <= 0.2f) { ((EntityState)this).outer.SetNextStateToMain(); } } } private void HandleBleed() { //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Expected O, but got Unknown bleedTimer += Time.fixedDeltaTime; if (bleedTimer >= bleedInterval) { bleedTimer = 0f; if (NetworkServer.active) { DamageInfo val = new DamageInfo { damage = (ownerBody.healthComponent.fullCombinedHealth - (ownerBody.healthComponent.fullCombinedHealth - (ownerBody.healthComponent.health + ownerBody.healthComponent.shield))) * 0.02f, damageType = DamageTypeCombo.op_Implicit((DamageType)3), dotIndex = (DotIndex)0, position = ownerBody.corePosition, attacker = ((EntityState)this).gameObject, procCoefficient = 0f, crit = false, damageColorIndex = (DamageColorIndex)2 }; ownerBody.healthComponent.TakeDamage(val); } } } private void ChainUpdate(float num) { //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_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_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown Vector3 position = ((EntityState)this).transform.position; EffectData val = new EffectData { scale = 1f, origin = position, genericFloat = num }; val.SetHurtBoxReference(owner); EffectManager.SpawnEffect(chain, val, true); } public override void OnExit() { if ((Object)(object)ownerBody != (Object)null) { ownerBody = null; } EntityState.Destroy((Object)(object)((EntityState)this).gameObject); ((EntityState)this).OnExit(); } } public class MainState : GenericCharacterMain { private Animator animator; private SeamstressController seamCom; private SeamstressBlinkController blinkController; private SeamstressPassive seamstressPassive; public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); animator = ((BaseCharacterMain)this).modelAnimator; seamCom = ((EntityState)this).GetComponent(); blinkController = ((EntityState)this).GetComponent(); seamstressPassive = ((EntityState)this).GetComponent(); } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); if (((BaseState)this).isGrounded) { animator.SetFloat("airBlend", 0f); } else { animator.SetFloat("airBlend", 1f); } } public override void ProcessJump() { if (Object.op_Implicit((Object)(object)blinkController) && ((Behaviour)blinkController).enabled) { ProcessBlinkJump(); } else { ProcessDefaultJump(); } } private void ProcessBlinkJump() { //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_02d5: Unknown result type (might be due to invalid IL or missing references) //IL_02e6: Expected O, but got Unknown //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_0320: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Expected O, but got Unknown //IL_0246: 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_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0357: Unknown result type (might be due to invalid IL or missing references) //IL_0362: Unknown result type (might be due to invalid IL or missing references) //IL_0369: Unknown result type (might be due to invalid IL or missing references) //IL_036e: 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_037e: Expected O, but got Unknown //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0252: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_025b: 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_0266: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody.inventory) || !((BaseCharacterMain)this).hasCharacterMotor || !blinkController.blinkReady || ((EntityState)this).healthComponent.isInFrozenState) { return; } bool flag = false; bool flag2 = false; if (((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.JumpDamageStrike) > 0) { ((EntityState)this).characterBody.GetBuffCount(Buffs.JumpDamageStrikeCharge); } if (!base.jumpInputReceived || ((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { return; } int itemCountEffective = ((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.JumpBoost); float num = 1f; float num2 = 1f; if (((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.baseJumpCount) { flag = true; num = 1.5f; num2 = 1.5f; } else if (itemCountEffective > 0 && ((EntityState)this).characterBody.isSprinting) { float num3 = ((EntityState)this).characterBody.acceleration * ((EntityState)this).characterMotor.airControl; if (((EntityState)this).characterBody.moveSpeed > 0f && num3 > 0f) { flag2 = true; float num4 = Mathf.Sqrt(10f * (float)itemCountEffective / num3); float num5 = ((EntityState)this).characterBody.moveSpeed / num3; num = (num4 + num5) / num5; } } if (((BaseCharacterMain)this).hasModelAnimator) { int layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("Body"); if (((EntityState)this).inputBank.moveVector == Vector3.zero) { if (layerIndex >= 0) { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("Jump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); } } else { layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("FullBody, Override"); Vector3 normalized = ((Vector3)(ref ((EntityState)this).inputBank.moveVector)).normalized; Vector3 val = (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) ? ((EntityState)this).characterDirection.forward : normalized); Vector3 val2 = Vector3.Cross(Vector3.up, val); float num6 = Vector3.Dot(normalized, val); float num7 = Vector3.Dot(normalized, val2); ((BaseCharacterMain)this).modelAnimator.SetFloat("dashF", num6); ((BaseCharacterMain)this).modelAnimator.SetFloat("dashR", num7); ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("Dash", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); } } if (flag) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/FeatherEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition }, false); } else if (((EntityState)this).characterMotor.jumpCount > 0) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/CharacterLandImpact"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, scale = ((EntityState)this).characterBody.radius }, false); } if (flag2) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/BoostJumpEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, rotation = Util.QuaternionSafeLookRotation(((EntityState)this).characterMotor.velocity) }, false); } ((EntityState)this).characterBody.TriggerJumpEventGlobally(); } private void ProcessDefaultJump() { //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0285: Expected O, but got Unknown //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02d6: Expected O, but got Unknown //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02ef: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: 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_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Unknown result type (might be due to invalid IL or missing references) //IL_031d: Expected O, but got Unknown if (!Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody.inventory) || !((BaseCharacterMain)this).hasCharacterMotor || ((EntityState)this).healthComponent.isInFrozenState) { return; } bool flag = false; bool flag2 = false; if (((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.JumpDamageStrike) > 0) { ((EntityState)this).characterBody.GetBuffCount(Buffs.JumpDamageStrikeCharge); } if (!base.jumpInputReceived || ((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { return; } int itemCountEffective = ((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.JumpBoost); float num = 1f; float num2 = 1f; if (((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.baseJumpCount) { flag = true; num = 1.5f; num2 = 1.5f; } else if (itemCountEffective > 0 && ((EntityState)this).characterBody.isSprinting) { float num3 = ((EntityState)this).characterBody.acceleration * ((EntityState)this).characterMotor.airControl; if (((EntityState)this).characterBody.moveSpeed > 0f && num3 > 0f) { flag2 = true; float num4 = Mathf.Sqrt(10f * (float)itemCountEffective / num3); float num5 = ((EntityState)this).characterBody.moveSpeed / num3; num = (num4 + num5) / num5; } } GenericCharacterMain.ApplyJumpVelocity(((EntityState)this).characterMotor, ((EntityState)this).characterBody, num, num2, false); if (((BaseCharacterMain)this).hasModelAnimator) { int layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("Body"); if (layerIndex >= 0) { if (((EntityState)this).characterBody.isSprinting) { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("SprintJump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); } else if (flag) { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("BonusJump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); } else { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("Jump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); } } } if (flag) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/FeatherEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition }, true); } else if (((EntityState)this).characterMotor.jumpCount > 0) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/ImpactEffects/CharacterLandImpact"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, scale = ((EntityState)this).characterBody.radius }, true); } if (flag2) { EffectManager.SpawnEffect(LegacyResourcesAPI.Load("Prefabs/Effects/BoostJumpEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, rotation = Util.QuaternionSafeLookRotation(((EntityState)this).characterMotor.velocity) }, true); } CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.jumpCount++; ((EntityState)this).characterBody.TriggerJumpEventGlobally(); } } public class Parry : BaseSeamstressSkillState { public static NetworkSoundEventDef parrySoundDef = SeamstressAssets.parrySuccessSoundEvent; public static string enterSoundString = "Play_bandit2_m2_impact"; public static float duration = SeamstressConfig.parryWindow.Value; public static float attackDelay = SeamstressConfig.parryWindow.Value; public static float invulnDuration = SeamstressConfig.parryWindow.Value * 1.25f; public override void OnEnter() { RefreshState(); base.OnEnter(); Util.PlaySound(enterSoundString, ((EntityState)this).gameObject); if (NetworkServer.active) { CleanBuffsServer(); ((EntityState)this).characterBody.AddBuff(SeamstressBuffs.ParryStart); } ((EntityState)this).PlayCrossfade("FullBody, Override", "Parry", "Slash.playbackRate", duration * 1.5f, duration * 0.05f); } public override void FixedUpdate() { base.FixedUpdate(); bool flag = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ParrySuccess); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration && flag) { DoAttackServer(); ((EntityState)this).outer.SetNextState((EntityState)(object)new ParryDash()); } else if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration && !flag) { GenericSkill utility = ((EntityState)this).skillLocator.utility; utility.rechargeStopwatch += 0.5f * ((EntityState)this).skillLocator.utility.cooldownRemaining; ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { CleanBuffsServer(); ((EntityState)this).OnExit(); } private void CleanBuffsServer() { if (NetworkServer.active) { if (((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ParryStart)) { ((EntityState)this).characterBody.RemoveBuff(SeamstressBuffs.ParryStart); } if (((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ParrySuccess)) { ((EntityState)this).characterBody.RemoveBuff(SeamstressBuffs.ParrySuccess); } } } private void DoAttackServer() { //IL_004d: 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) if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(SeamstressBuffs.SeamstressInsatiableBuff, SeamstressConfig.insatiableDuration.Value / 1.5f, 1); CleanBuffsServer(); if (Object.op_Implicit((Object)(object)parrySoundDef)) { EffectManager.SimpleSoundEffect(parrySoundDef.index, ((EntityState)this).characterBody.corePosition, true); } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class ParryDash : BaseSeamstressSkillState { public GameObject hitEffectPrefab = SeamstressAssets.scissorsHitImpactEffect; public static float speedCoefficient = 100f; public static float damageCoefficient = SeamstressConfig.parryDamageCoefficient.Value; public static float hitPauseDuration = 0.075f; private Vector3 dashVector; private OverlapAttack overlapAttack; private Transform modelTransform; private AimRequest aimRequest; private float stopwatch; private float dashDuration; private bool isDashing; private bool inHitPause; private float hitPauseTimer; private bool noScissors; private string hitSound; private string hitBox; public bool hasHit { get; private set; } 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) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) RefreshState(); if (seamstressController.blue) { hitEffectPrefab = SeamstressAssets.scissorsHitImpactEffect2; } inDash = true; dashDuration = 0.3f; base.OnEnter(); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { aimRequest = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2); } dashVector = ((EntityState)this).inputBank.aimDirection; if (!scissorRight && !scissorLeft) { noScissors = true; } if (noScissors) { hitBox = "Weave"; } else { hitBox = "WeaveBig"; } overlapAttack = ((BaseState)this).InitMeleeOverlap(0f, hitEffectPrefab, modelTransform, hitBox); DamageAPI.AddModdedDamageType(ref overlapAttack.damageType, DamageTypes.PullDamage); overlapAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); overlapAttack.damageType.damageSource = (DamageSource)4; Util.PlaySound("Play_imp_overlord_attack2_tell", ((EntityState)this).gameObject); hitSound = "Play_imp_overlord_impact"; ((EntityState)this).PlayCrossfade("FullBody, Override", "ParrySlash", "Dash.playbackRate", dashDuration * 1.5f, dashDuration * 0.05f); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.HiddenInvincibility); } } public override void FixedUpdate() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016b: 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_017a: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((EntityState)this).characterDirection.forward = dashVector; if (!isDashing) { isDashing = true; dashVector = ((EntityState)this).inputBank.aimDirection; seamstressController.heldDashVector = dashVector; seamstressController.heldOrigin = Util.GetCorePosition(((EntityState)this).gameObject); ((EntityState)this).gameObject.layer = LayerIndex.fakeActor.intVal; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); } if (!isDashing) { stopwatch += Time.fixedDeltaTime; } else if (((EntityState)this).isAuthority) { if (!inHitPause) { bool flag = overlapAttack.Fire((List)null); stopwatch += Time.fixedDeltaTime; if (flag) { if (!hasHit) { Util.PlaySound(hitSound, ((EntityState)this).gameObject); hasHit = true; dashDuration *= 0.75f; } inHitPause = true; hitPauseTimer = hitPauseDuration / ((BaseState)this).attackSpeedStat; } CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += dashVector * speedCoefficient * Time.fixedDeltaTime; } else { hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer < 0f) { inHitPause = false; } } } if (stopwatch >= dashDuration / ((BaseState)this).attackSpeedStat && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_00c2: 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) if (NetworkServer.active && Object.op_Implicit((Object)(object)((EntityState)this).healthComponent)) { ((EntityState)this).characterBody.RemoveBuff(Buffs.HiddenInvincibility); ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 0.5f); } seamstressController.StartDashEffectTimer(); ((EntityState)this).gameObject.layer = LayerIndex.defaultLayer.intVal; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); if (!isInsatiable) { Util.PlaySound("Play_item_proc_whip", ((EntityState)this).gameObject); } if (((EntityState)this).isAuthority) { ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; ((EntityState)this).characterMotor.airControl = 0.25f; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.3f; ((BaseState)this).SmallHop(((EntityState)this).characterMotor, 3f); } AimRequest obj = aimRequest; if (obj != null) { obj.Dispose(); } inDash = false; RefreshState(); ((EntityState)this).OnExit(); } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(dashVector); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); dashVector = reader.ReadVector3(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class SeamstressBlink : BaseSeamstressSkillState { protected Transform modelTransform; public GameObject dashPrefab = SeamstressAssets.impDashEffect; public GameObject blinkPrefab = SeamstressAssets.smallBlinkEffect; public Material destealthMaterial = SeamstressAssets.destealthMaterial; protected AimRequest request; protected Vector3 blinkVector; protected Vector3 slipVector = Vector3.zero; public float duration = 0.1f; protected float speedCoefficient; public static string beginSoundString = "Play_imp_attack_blink"; public string animationLayer = "FullBody, Override"; public string animString = "Dash"; protected CharacterModel characterModel; protected HurtBoxGroup hurtboxGroup; public bool split; protected Animator animator; public override void OnEnter() { //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) RefreshState(); if (seamstressController.blue) { dashPrefab = SeamstressAssets.impDashEffect2; blinkPrefab = SeamstressAssets.smallBlinkEffect2; destealthMaterial = SeamstressAssets.destealthMaterial2; } base.OnEnter(); Util.PlaySound(beginSoundString, ((EntityState)this).gameObject); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent(); hurtboxGroup = ((Component)modelTransform).GetComponent(); animator = ((Component)modelTransform).GetComponent(); } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount + 1; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val = hurtboxGroup; int hurtBoxesDeactivatorCounter = val.hurtBoxesDeactivatorCounter + 1; val.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2); } blinkVector = GetBlinkVector(); ((EntityState)this).characterDirection.moveVector = blinkVector; CreateBlinkEffect(((EntityState)this).characterBody.corePosition, first: true); int itemCount = ((EntityState)this).characterBody.inventory.GetItemCount(Items.JumpBoost); float num = 1f; if (itemCount > 0 && ((EntityState)this).characterBody.isSprinting) { float num2 = ((EntityState)this).characterBody.acceleration * ((EntityState)this).characterMotor.airControl; if (((EntityState)this).characterBody.moveSpeed > 0f && num2 > 0f) { float num3 = Mathf.Sqrt(10f * (float)itemCount / num2); float num4 = ((EntityState)this).characterBody.moveSpeed / num2; num = (num3 + num4) / num4; } } speedCoefficient = 0.3f * ((EntityState)this).characterBody.jumpPower * Mathf.Clamp(((EntityState)this).characterBody.moveSpeed * num / 4f, 5f, 20f); ((EntityState)this).gameObject.layer = LayerIndex.fakeActor.intVal; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); } 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_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) Vector3 aimDirection = ((EntityState)this).inputBank.aimDirection; aimDirection.y = 0f; Vector3 val = -Vector3.Cross(Vector3.up, aimDirection); float num = Vector3.Angle(((EntityState)this).inputBank.aimDirection, aimDirection); if (((EntityState)this).inputBank.aimDirection.y < 0f) { num = 0f - num; } return Vector3.Normalize(Quaternion.AngleAxis(num, val) * ((EntityState)this).inputBank.moveVector); } protected void CreateBlinkEffect(Vector3 origin, bool first) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)blinkPrefab)) { EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(blinkVector); val.origin = origin; val.scale = 0.15f; EffectManager.SpawnEffect(blinkPrefab, val, true); val.scale = 3f; if (!first) { EffectManager.SpawnEffect(dashPrefab, val, true); } } } public override void FixedUpdate() { //IL_004d: 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) base.FixedUpdate(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); ((EntityState)this).characterMotor.velocity = blinkVector * speedCoefficient; } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0045: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).gameObject.layer = LayerIndex.defaultLayer.intVal; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.RebuildCollidableLayers(); if (!((EntityState)this).outer.destroying) { CreateBlinkEffect(((EntityState)this).characterBody.corePosition, first: false); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform) && Object.op_Implicit((Object)(object)destealthMaterial)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((EntityState)this).gameObject); val.duration = 1f; val.destroyComponentOnEnd = true; val.originalMaterial = destealthMaterial; val.inspectorCharacterModel = ((Component)animator).gameObject.GetComponent(); val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.animateShaderAlpha = true; } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount - 1; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val2 = hurtboxGroup; int hurtBoxesDeactivatorCounter = val2.hurtBoxesDeactivatorCounter - 1; val2.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { request.Dispose(); } } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)3; } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(blinkVector); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); blinkVector = reader.ReadVector3(); } } public class SeamstressBlinkUp : SeamstressBlink { public override void OnEnter() { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); speedCoefficient = 0.3f * ((EntityState)this).characterBody.jumpPower * 3f; blinkVector = Vector3.up; } public override void FixedUpdate() { base.FixedUpdate(); } public override void OnExit() { base.OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)3; } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) base.OnSerialize(writer); writer.Write(blinkVector); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) base.OnDeserialize(reader); blinkVector = reader.ReadVector3(); } } public class SeamstressJump : BaseSeamstressState { public float minSpread; public float maxSpread; public float projectilePitchBonus; private Ray aimRay; private GameObject projectilePrefab; public override void OnEnter() { base.OnEnter(); } public override void FixedUpdate() { //IL_00a2: 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_00c1: 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_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_056e: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0436: Unknown result type (might be due to invalid IL or missing references) //IL_043b: Unknown result type (might be due to invalid IL or missing references) //IL_0443: Unknown result type (might be due to invalid IL or missing references) //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04a3: Unknown result type (might be due to invalid IL or missing references) //IL_04a8: Unknown result type (might be due to invalid IL or missing references) //IL_04ad: Unknown result type (might be due to invalid IL or missing references) //IL_04b1: Unknown result type (might be due to invalid IL or missing references) //IL_04b3: Unknown result type (might be due to invalid IL or missing references) //IL_04b8: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_05c3: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e8: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_0530: Unknown result type (might be due to invalid IL or missing references) //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) RefreshState(); base.FixedUpdate(); if (!Object.op_Implicit((Object)(object)blinkController) || !((Behaviour)blinkController).enabled) { return; } if (!Object.op_Implicit((Object)(object)projectilePrefab)) { projectilePrefab = (seamstressController.blue ? SeamstressAssets.needlePrefab2 : SeamstressAssets.needlePrefab); } if (isInsatiable) { DamageAPI.AddModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage); } else if (DamageAPI.HasModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage)) { DamageAPI.RemoveModdedDamageType(ref projectilePrefab.GetComponent().damageType, DamageTypes.CutDamage); } if ((((EntityState)this).characterBody.HasBuff(SeamstressBuffs.Needles) || ((EntityState)this).characterBody.characterMotor.jumpCount < ((EntityState)this).characterBody.maxJumpCount) && blinkController.blinkCd >= SeamstressConfig.blinkCooldown.Value && !blinkController.blinkReady) { blinkController.blinkCd = 0f; blinkController.blinkReady = true; } if (!((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed) { return; } if (((BaseState)this).isGrounded) { blinkController.blinkReady = false; int itemCountEffective = ((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.JumpBoost); float num = 1f; float num2 = 1f; if (((EntityState)this).characterMotor.jumpCount > ((EntityState)this).characterBody.baseJumpCount) { num = 1.5f; num2 = 1.5f; } else if (itemCountEffective > 0 && ((EntityState)this).characterBody.isSprinting) { float num3 = ((EntityState)this).characterBody.acceleration * ((EntityState)this).characterMotor.airControl; if (((EntityState)this).characterBody.moveSpeed > 0f && num3 > 0f) { float num4 = Mathf.Sqrt(10f * (float)itemCountEffective / num3); float num5 = ((EntityState)this).characterBody.moveSpeed / num3; num = (num4 + num5) / num5; } } GenericCharacterMain.ApplyJumpVelocity(((EntityState)this).characterMotor, ((EntityState)this).characterBody, num, num2, false); CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.jumpCount++; } else { if (((BaseState)this).isGrounded || !blinkController.blinkReady) { return; } blinkController.blinkReady = false; if (((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount && ((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.Feather) > 0 && !blinkController.hopooHasHopped) { if (!blinkController.hopooHasHopped) { blinkController.hopooHasHopped = true; } Util.PlaySound("Play_bandit2_m2_alt_throw", ((EntityState)this).gameObject); } else if (((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { needleCon.consumeNeedle = true; Util.PlaySound("Play_bandit2_m2_alt_throw", ((EntityState)this).gameObject); } else { Util.PlaySound("Play_bandit2_m2_alt_throw", ((EntityState)this).gameObject); } if (!((EntityState)this).isAuthority) { return; } aimRay = ((BaseState)this).GetAimRay(); ((Ray)(ref aimRay)).direction = Util.ApplySpread(((Ray)(ref aimRay)).direction, minSpread, maxSpread, 1f, 1f, 0f, projectilePitchBonus); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody.inventory) && ((EntityState)this).characterBody.inventory.GetItemCountEffective(Items.MoreMissile) > 0) { float iCBMDamageMult = GetICBMDamageMult(((EntityState)this).characterBody); Vector3 val = Vector3.Cross(Vector3.up, ((Ray)(ref aimRay)).direction); Vector3 val2 = Vector3.Cross(((Ray)(ref aimRay)).direction, val); float num6 = 20f; float num7 = 0f; float num8 = 0f; num8 = Random.Range(1f + num6, 1f + num6) * 3f; num7 = num8 / 2f; Vector3 val3 = Quaternion.AngleAxis((0f - num8) * 0.5f, val2) * ((Ray)(ref aimRay)).direction; Quaternion val4 = Quaternion.AngleAxis(num7, val2); Ray val5 = default(Ray); ((Ray)(ref val5))..ctor(((Ray)(ref aimRay)).origin, val3); for (int i = 0; i < 3; i++) { ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref val5)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref val5)).direction), ((EntityState)this).gameObject, iCBMDamageMult * ((BaseState)this).damageStat * SeamstressConfig.needleDamageCoefficient.Value, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); ((Ray)(ref val5)).direction = val4 * ((Ray)(ref val5)).direction; } } else { ProjectileManager.instance.FireProjectile(projectilePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * SeamstressConfig.needleDamageCoefficient.Value, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)null); } if (((EntityState)this).inputBank.moveVector != Vector3.zero) { BlinkForward(); } else { BlinkUp(); } CharacterMotor characterMotor2 = ((EntityState)this).characterMotor; characterMotor2.jumpCount++; } } public static float GetICBMDamageMult(CharacterBody body) { float num = 1f; if (Object.op_Implicit((Object)(object)body) && Object.op_Implicit((Object)(object)body.inventory)) { int itemCount = body.inventory.GetItemCount(Items.MoreMissile); int num2 = itemCount - 1; if (num2 > 0) { num += (float)num2 * 0.5f; } } return num; } private void BlinkForward() { EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Passive").SetInterruptState((EntityState)(object)new SeamstressBlink(), (InterruptPriority)0); } private void BlinkUp() { EntityStateMachine.FindByCustomName(((EntityState)this).gameObject, "Passive").SetInterruptState((EntityState)(object)new SeamstressBlinkUp(), (InterruptPriority)0); } } public class SeamstressSpawnState : BaseSeamstressState { private CameraRigController cameraController; public GameObject spawnPrefab = SeamstressAssets.spawnPrefab; public static float duration = 3f; private bool initCamera; private bool check = false; public override void OnEnter() { //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) base.OnEnter(); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.HiddenInvincibility); } ((EntityState)this).PlayAnimation("Body", "Spawn"); Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((EntityState)this).gameObject); val.duration = 1.5f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpDissolve.mat").WaitForCompletion(); } } public override void FixedUpdate() { //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown //IL_005b: 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_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (((EntityState)this).fixedAge > 1f && !check) { RefreshState(); if (seamstressController.blue) { spawnPrefab = SeamstressAssets.spawnPrefab2; } check = true; EffectData val = new EffectData(); val.origin = ((EntityState)this).transform.position; EffectManager.SpawnEffect(spawnPrefab, val, false); Util.PlaySound("sfx_seamstress_spawn", ((EntityState)this).gameObject); } if (!Object.op_Implicit((Object)(object)cameraController)) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master.playerCharacterMasterController) && Object.op_Implicit((Object)(object)((EntityState)this).characterBody.master.playerCharacterMasterController.networkUser)) { cameraController = ((EntityState)this).characterBody.master.playerCharacterMasterController.networkUser.cameraRigController; } } else if (!initCamera) { initCamera = true; ((InstanceData)cameraController.cameraMode.camToRawInstanceData[UnityObjectWrapperKey.op_Implicit(cameraController)]).SetPitchYawFromLookVector(-((EntityState)this).characterDirection.forward); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.HiddenInvincibility); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0006: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)9; } } public class Snapback : BaseSeamstressSkillState { public static string exitSoundString = "Play_item_proc_bounceChain"; private AimRequest aimRequest; private Vector3 snapPosition; private Vector3 currentPosition; private Animator animator; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; private Transform modelTransform; private float duration; private bool hasSnapped; public override void OnEnter() { RefreshState(); base.OnEnter(); Util.PlaySound(exitSoundString, ((EntityState)this).gameObject); if (NetworkServer.active) { if (((EntityState)this).characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { ((EntityState)this).characterBody.ClearTimedBuffs(SeamstressBuffs.SeamstressInsatiableBuff); } CleanseSystem.CleanseBodyServer(((EntityState)this).characterBody, false, false, false, true, false, false); } CalculateSnapDestination(); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { animator = ((Component)modelTransform).GetComponent(); characterModel = ((Component)modelTransform).GetComponent(); hurtboxGroup = ((Component)modelTransform).GetComponent(); } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val = hurtboxGroup; int hurtBoxesDeactivatorCounter = val.hurtBoxesDeactivatorCounter + 1; val.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { aimRequest = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2); } ((EntityState)this).skillLocator.utility.UnsetSkillOverride((object)((EntityState)this).gameObject, SeamstressSurvivor.explodeSkillDef, (SkillOverridePriority)4); ((EntityState)this).PlayAnimation("Fullbody, Override", "BufferEmpty"); } private void SetPosition(Vector3 newPosition) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.SetPositionAndRotation(newPosition, Quaternion.identity, true); } } private void CalculateSnapDestination() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_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_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).isAuthority) { snapPosition = seamstressController.snapBackPosition; currentPosition = ((EntityState)this).characterBody.corePosition; Vector3 val = currentPosition - snapPosition; duration = ((Vector3)(ref val)).magnitude; duration = Util.Remap(duration, 0f, 100f, 0.2f, 1f); ((EntityState)this).characterDirection.forward = snapPosition; } } public override void FixedUpdate() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0039: 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_0051: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (!hasSnapped) { SetPosition(Vector3.Lerp(currentPosition, snapPosition, ((EntityState)this).fixedAge / duration)); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { hasSnapped = true; ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val = hurtboxGroup; int hurtBoxesDeactivatorCounter = val.hurtBoxesDeactivatorCounter - 1; val.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { aimRequest.Dispose(); } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0019: 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_001c: Unknown result type (might be due to invalid IL or missing references) if (((EntityState)this).fixedAge < duration) { return (InterruptPriority)9; } return (InterruptPriority)0; } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(snapPosition); writer.Write(currentPosition); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); snapPosition = reader.ReadVector3(); currentPosition = reader.ReadVector3(); } } public class Telekinesis : BaseSeamstressSkillState { public class DetonateOnImpact : MonoBehaviour { public Telekinesis telekinesis; private void OnCollisionEnter(Collision collision) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) float num = telekinesis.victimRigid.mass / 10f; float num2 = 60f / num; Vector3 relativeVelocity = collision.relativeVelocity; float magnitude = ((Vector3)(ref relativeVelocity)).magnitude; if (collision.gameObject.layer == LayerIndex.world.intVal || collision.gameObject.layer == LayerIndex.entityPrecise.intVal || (collision.gameObject.layer == LayerIndex.defaultLayer.intVal && magnitude >= num2)) { telekinesis.detonateNextFrame = true; } } } public GameObject genericImpactExplosionEffect = SeamstressAssets.genericImpactExplosionEffect; public GameObject slamEffect = SeamstressAssets.slamEffect; public Color mainColor = SeamstressAssets.coolRed; private Transform _barrelPoint; private Vector3 _pickTargetPosition; private Vector3 _pickOffset; private HurtBox victim; private Tracker tracker; private CharacterMotor victimMotor; private RigidbodyMotor victimRigidMotor; private Rigidbody victimRigid; private CharacterBody victimBody; private AnimationCurve pullSuitabilityCurve = new AnimationCurve(); private CollisionDetectionMode collisionDetectionMode; private float _maxGrabDistance = 30f; private float _minGrabDistance = 20f; private float _pickDistance; private float radius = 30f; private float damping = 0.1f; private float forceMagnitude = -1500f; private float forceCoefficientAtEdge = 0.25f; private float bonusDamage; private float hitStopwatch; private float previousMass; public bool detonateNextFrame; private bool bodyCouldTakeImpactDamage; private bool theyDidNotHaveRigid; private uint playId; public override void OnEnter() { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) RefreshState(); if (seamstressController.blue) { genericImpactExplosionEffect = SeamstressAssets.genericImpactExplosionEffect2; slamEffect = SeamstressAssets.slamEffect2; mainColor = Color.cyan; } base.OnEnter(); pullSuitabilityCurve.AddKey(0f, 1f); pullSuitabilityCurve.AddKey(2000f, 0f); tracker = ((EntityState)this).GetComponent(); if (Object.op_Implicit((Object)(object)tracker)) { victim = tracker.GetTrackingTarget(); if (Object.op_Implicit((Object)(object)victim)) { DefaultVictim(); if (NetworkServer.active && !victimBody.HasBuff(SeamstressBuffs.Manipulated)) { victimBody.AddBuff(SeamstressBuffs.Manipulated); } ((EntityState)this).PlayCrossfade("Gesture, Override", "Manipulate", "Manipulate.playbackRate", 6f / ((BaseState)this).attackSpeedStat * 0.15f, 0.05f); playId = Util.PlaySound("sfx_ravager_charge_beam_loop", ((EntityState)this).gameObject); } } else if (((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } if (!Object.op_Implicit((Object)(object)_barrelPoint)) { _barrelPoint = ((EntityState)this).transform; } } private void DefaultVictim() { //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: 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_00d0: 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_00fd: Expected O, but got Unknown //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) victimBody = victim.healthComponent.body; victimMotor = victimBody.characterMotor; victimRigid = victimBody.rigidbody; victimRigidMotor = ((Component)victimBody).gameObject.GetComponent(); Vector3 val = ((Component)victim).transform.position - ((EntityState)this).inputBank.aimOrigin; _pickDistance = ((Vector3)(ref val)).magnitude; _pickOffset = victimBody.coreTransform.position - ((Component)victim).transform.position; if (NetworkServer.active && Object.op_Implicit((Object)(object)victimBody)) { CharacterBody obj = victimBody; obj.bodyFlags = (BodyFlags)(obj.bodyFlags | 1); } if (Object.op_Implicit((Object)(object)victimMotor)) { victimMotor.onMovementHit += new MovementHitDelegate(DoSplashDamage); victimMotor.disableAirControlUntilCollision = true; } else { if (!Object.op_Implicit((Object)(object)victimRigid)) { victimRigid = ((Component)victimBody).gameObject.AddComponent(); victimRigid.mass = 100f; ((Component)victimBody).gameObject.AddComponent(); theyDidNotHaveRigid = true; } if (Object.op_Implicit((Object)(object)((Component)victimBody).gameObject.GetComponent())) { EntityState.Destroy((Object)(object)((Component)victimBody).gameObject.GetComponent()); } ((Component)victimBody).gameObject.AddComponent(); ((Component)victimBody).gameObject.GetComponent().telekinesis = this; if (Object.op_Implicit((Object)(object)victimRigidMotor)) { bodyCouldTakeImpactDamage = victimRigidMotor.canTakeImpactDamage; victimRigidMotor.canTakeImpactDamage = false; ((Behaviour)victimRigidMotor).enabled = false; } } if (Object.op_Implicit((Object)(object)victimRigid)) { collisionDetectionMode = victimRigid.collisionDetectionMode; victimRigid.collisionDetectionMode = (CollisionDetectionMode)3; } if (SeamstressConfig.heavyEnemy.Value) { if (Object.op_Implicit((Object)(object)victimMotor)) { previousMass = victimMotor.mass; victimMotor.mass = Mathf.Clamp(victimMotor.mass, 60f, 120f); } else if (Object.op_Implicit((Object)(object)victimRigid)) { previousMass = victimRigid.mass; victimRigid.mass = Mathf.Clamp(victimRigid.mass, 60f, 120f); } } } public override void OnExit() { //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Expected O, but got Unknown //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) AkSoundEngine.StopPlayingID(playId); ((EntityState)this).PlayCrossfade("Gesture, Override", "BufferEmpty", 0.05f); if (Object.op_Implicit((Object)(object)victimBody)) { if (NetworkServer.active && victimBody.HasBuff(SeamstressBuffs.Manipulated)) { victimBody.RemoveBuff(SeamstressBuffs.Manipulated); victimBody.AddTimedBuff(SeamstressBuffs.ManipulatedCd, Mathf.Min(SeamstressConfig.telekinesisCooldown.Value, Mathf.Max(0.5f, SeamstressConfig.telekinesisCooldown.Value * ((EntityState)this).characterBody.skillLocator.secondary.cooldownScale - ((EntityState)this).characterBody.skillLocator.secondary.flatCooldownReduction))); } if (Object.op_Implicit((Object)(object)((Component)victimBody).gameObject.GetComponent())) { EntityState.Destroy((Object)(object)((Component)victimBody).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)victimMotor)) { victimMotor.disableAirControlUntilCollision = true; victimMotor.onMovementHit -= new MovementHitDelegate(DoSplashDamage); } if (Object.op_Implicit((Object)(object)((Component)victimBody).gameObject.GetComponent())) { EntityState.Destroy((Object)(object)((Component)victimBody).gameObject.GetComponent()); } DetonateOnImpactThrownTelekinesis detonateOnImpactThrownTelekinesis = ((Component)victimBody).gameObject.AddComponent(); detonateOnImpactThrownTelekinesis.attacker = ((EntityState)this).gameObject; detonateOnImpactThrownTelekinesis.theyDidNotHaveRigid = theyDidNotHaveRigid; detonateOnImpactThrownTelekinesis.bodyCouldTakeImpactDamage = bodyCouldTakeImpactDamage; detonateOnImpactThrownTelekinesis.coll = collisionDetectionMode; detonateOnImpactThrownTelekinesis.previousMass = previousMass; ((EntityState)this).skillLocator.secondary.DeductStock(1); } ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Unknown result type (might be due to invalid IL or missing references) //IL_02e1: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_020e: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_022c: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0360: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0377: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0389: Unknown result type (might be due to invalid IL or missing references) //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Expected O, but got Unknown //IL_03a0: Unknown result type (might be due to invalid IL or missing references) //IL_03a5: 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_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03bd: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Expected O, but got Unknown //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03d0: Expected O, but got Unknown //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_043a: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_045d: 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_047a: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_048b: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_04ba: Unknown result type (might be due to invalid IL or missing references) //IL_04c8: 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_04ac: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((BaseState)this).StartAimMode(2f, false); hitStopwatch += Time.fixedDeltaTime; if ((Object)(object)victimRigid != (Object)null || (Object)(object)victimMotor != (Object)null) { if (Object.op_Implicit((Object)(object)victimMotor)) { victimMotor.disableAirControlUntilCollision = true; if (victimMotor.isGrounded) { ((BaseCharacterController)victimMotor).Motor.ForceUnground(0.1f); } } if (NetworkServer.active) { Ray aimRay = ((EntityState)this).inputBank.GetAimRay(); _pickTargetPosition = ((Ray)(ref aimRay)).origin + ((Ray)(ref aimRay)).direction * _pickDistance + _pickOffset; Vector3 val = ((Component)victim).transform.position - _pickTargetPosition; float num = 1f - Mathf.Clamp(((Vector3)(ref val)).magnitude / radius, 0f, 1f - forceCoefficientAtEdge); val = ((Vector3)(ref val)).normalized * forceMagnitude * (1f - num); Vector3 val2 = Vector3.zero; float num2 = 0f; if (Object.op_Implicit((Object)(object)victimMotor)) { val2 = victimMotor.velocity; num2 = victimMotor.mass; } else if (Object.op_Implicit((Object)(object)victimRigid)) { val2 = victimRigid.velocity; num2 = victimRigid.mass; } else { val2.y += Physics.gravity.y * Time.fixedDeltaTime; } if (num2 < 1000f) { num2 = Util.Remap(num2, 60f, 1500f, 60f, 125f); } float num3 = pullSuitabilityCurve.Evaluate(num2); victim.healthComponent.TakeDamageForce(val - val2 * damping * (num3 * Mathf.Max(num2, 100f)) * num, true, false); } if ((Object)(object)victimMotor != (Object)null) { bonusDamage = Mathf.Clamp(((Vector3)(ref victimMotor.velocity)).magnitude * (SeamstressConfig.telekinesisDamageCoefficient.Value * ((BaseState)this).damageStat * (float)needleCount) + victim.healthComponent.fullCombinedHealth * 0.2f, SeamstressConfig.telekinesisDamageCoefficient.Value * ((BaseState)this).damageStat * (float)needleCount, victim.healthComponent.fullCombinedHealth * 0.7f); } else { Vector3 velocity = victimRigid.velocity; bonusDamage = Mathf.Clamp(((Vector3)(ref velocity)).magnitude * (SeamstressConfig.telekinesisDamageCoefficient.Value * ((BaseState)this).damageStat * (float)needleCount), SeamstressConfig.telekinesisDamageCoefficient.Value * ((BaseState)this).damageStat, victim.healthComponent.fullHealth * 0.5f); } if (Util.HasEffectiveAuthority(((Component)victimBody).gameObject) && detonateNextFrame) { EffectManager.SpawnEffect(genericImpactExplosionEffect, new EffectData { origin = victimBody.footPosition, rotation = Quaternion.identity, color = Color32.op_Implicit(mainColor) }, true); EffectManager.SpawnEffect(slamEffect, new EffectData { origin = victimBody.footPosition, rotation = Quaternion.identity }, true); BlastAttack val3 = new BlastAttack(); val3.position = victimBody.footPosition; val3.baseDamage = bonusDamage; val3.baseForce = 0f; val3.bonusForce = Vector3.zero; val3.radius = 10f; val3.attacker = ((EntityState)this).gameObject; val3.inflictor = ((EntityState)this).gameObject; val3.teamIndex = ((EntityState)this).characterBody.teamComponent.teamIndex; val3.crit = ((EntityState)this).characterBody.RollCrit(); val3.procChainMask = default(ProcChainMask); val3.procCoefficient = 1f; val3.falloffModel = (FalloffModel)1; val3.damageColorIndex = (DamageColorIndex)0; val3.damageType = DamageTypeCombo.op_Implicit((DamageType)131104); val3.damageType.damageSource = (DamageSource)2; if (isInsatiable) { DamageAPI.AddModdedDamageType(val3, DamageTypes.CutDamage); } DamageAPI.AddModdedDamageType(val3, DamageTypes.SeamstressLifesteal); val3.attackerFiltering = (AttackerFiltering)0; val3.Fire(); detonateNextFrame = false; hitStopwatch = 0f; } } if ((((EntityState)this).isAuthority && ((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justReleased) || !victim.healthComponent.alive || ((EntityState)this).fixedAge >= 7f) { ((EntityState)this).outer.SetNextStateToMain(); } _pickDistance = Mathf.Clamp(_pickDistance, _minGrabDistance, _maxGrabDistance); } private void DoSplashDamage(ref MovementHitInfo movementHitInfo) { float num = Mathf.Abs(((Vector3)(ref movementHitInfo.velocity)).magnitude); float num2 = Mathf.Max(num - (victimBody.baseMoveSpeed + 70f), 0f); if (num2 > 0f && (double)hitStopwatch > 0.75) { detonateNextFrame = 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; } } public class Trim : BaseMeleeAttack { public override void OnEnter() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_027d: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) RefreshState(); hitboxGroupName = "Sword"; damageType = (DamageType)0; damageSource = (DamageSource)1; damageTotal = SeamstressConfig.trimDamageCoefficient.Value; procCoefficient = 1f; pushForce = 300f; bonusForce = Vector3.zero; baseDuration = 1.1f; baseScissorDuration = 1.8f; attackStartPercentTime = 0.2f; attackEndPercentTime = 0.4f; earlyExitPercentTime = 0.5f; hitStopDuration = 0.05f; attackRecoil = 2f / ((BaseState)this).attackSpeedStat; hitHopVelocity = 8f; swingSoundString = "sfx_seamstress_swing"; hitSoundString = ""; hitEffectPrefab = (seamstressController.blue ? SeamstressAssets.scissorsHitImpactEffect2 : SeamstressAssets.scissorsHitImpactEffect); swingEffectPrefab = (seamstressController.blue ? SeamstressAssets.clawSlashEffect2 : SeamstressAssets.clawSlashEffect); bonusSwingEffectPrefab = (seamstressController.blue ? SeamstressAssets.scissorsSlashEffect2 : SeamstressAssets.scissorsSlashEffect); scissorHit = true; switch (swingIndex) { case 0: muzzleString = "SwingLeftSmall"; if (!scissorRight) { scissorHit = false; } break; case 1: muzzleString = "SwingRightSmall"; if (!scissorLeft) { scissorHit = false; } break; case 2: swingSoundString = "Play_acrid_m1_bigSlash"; damageTotal = SeamstressConfig.trimThirdDamageCoefficient.Value; swingEffectPrefab = (seamstressController.blue ? SeamstressAssets.clawSlashComboEffect2 : SeamstressAssets.clawSlashComboEffect); bonusSwingEffectPrefab = (seamstressController.blue ? SeamstressAssets.scissorsSlashComboEffect2 : SeamstressAssets.scissorsSlashComboEffect); muzzleString = "SwingCenterSmall"; earlyExitPercentTime = 0.75f; attackEndPercentTime = 0.65f; if (!scissorRight || !scissorLeft) { scissorHit = false; } break; } if (isInsatiable) { moddedDamageTypeHolder.Add(DamageTypes.CutDamage); moddedDamageTypeHolder.Add(DamageTypes.GainNeedles); } moddedDamageTypeHolder.Add(DamageTypes.SeamstressLifesteal); impactSound = SeamstressAssets.scissorsHitSoundEvent.index; base.OnEnter(); } protected override void FireAttack() { //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_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_001d: 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_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) if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; direction.y = Mathf.Max(direction.y, direction.y * 0.5f); ((BaseState)this).FindModelChild("SwingPivot").rotation = Util.QuaternionSafeLookRotation(direction); if (attack.Fire((List)null)) { OnHitEnemyAuthority(); } } } protected override void PlayAttackAnimation() { switch (swingIndex) { case 0: ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash1", "Slash.playbackRate", duration, 0.1f * duration); break; case 1: ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash2", "Slash.playbackRate", duration, 0.1f * duration); break; case 2: ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash3", "Slash.playbackRate", duration * 1.5f, 0.1f * duration); break; } } protected override void OnHitEnemyAuthority() { base.OnHitEnemyAuthority(); } public override void OnExit() { base.OnExit(); } } } namespace SeamstressMod.Seamstress.Content { public static class DamageTypes { public static ModdedDamageType Empty; public static ModdedDamageType CutDamage; public static ModdedDamageType GainNeedles; public static ModdedDamageType SeamstressLifesteal; public static ModdedDamageType PullDamage; internal static void Init() { //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_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) Empty = DamageAPI.ReserveDamageType(); CutDamage = DamageAPI.ReserveDamageType(); GainNeedles = DamageAPI.ReserveDamageType(); SeamstressLifesteal = DamageAPI.ReserveDamageType(); PullDamage = DamageAPI.ReserveDamageType(); Hook(); } private static void Hook() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown GlobalEventManager.onServerDamageDealt += GlobalEventManager_onServerDamageDealt; GlobalEventManager.OnHitEnemy += new hook_OnHitEnemy(GlobalEventManager_OnHitEnemy); } private static void GlobalEventManager_OnHitEnemy(orig_OnHitEnemy orig, GlobalEventManager self, DamageInfo damageInfo, GameObject victim) { //IL_000c: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo, victim); if (DamageAPI.HasModdedDamageType(damageInfo, PullDamage)) { PullComponent pullComponent = victim.AddComponent(); pullComponent.attackerBody = damageInfo.attacker.GetComponent(); } } private static void GlobalEventManager_onServerDamageDealt(DamageReport damageReport) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_008d: 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_00a0: 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_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) DamageInfo damageInfo = damageReport.damageInfo; if (!Object.op_Implicit((Object)(object)damageReport.attackerBody) || !Object.op_Implicit((Object)(object)damageReport.victimBody)) { return; } HealthComponent victim = damageReport.victim; GameObject inflictor = damageInfo.inflictor; CharacterBody victimBody = damageReport.victimBody; CharacterBody attackerBody = damageReport.attackerBody; GameObject gameObject = damageReport.attacker.gameObject; if (!NetworkServer.active || !Object.op_Implicit((Object)(object)attackerBody) || attackerBody.bodyIndex != BodyCatalog.FindBodyIndex("SeamstressBody")) { return; } if (DamageAPI.HasModdedDamageType(damageInfo, CutDamage)) { InflictDotInfo val = default(InflictDotInfo); val.victimObject = ((Component)victimBody).gameObject; val.attackerObject = ((Component)attackerBody).gameObject; val.dotIndex = (DotIndex)0; val.duration = SeamstressConfig.bleedDuration.Value; val.damageMultiplier = damageInfo.procCoefficient * 0.2f; InflictDotInfo val2 = val; DotController.InflictDot(ref val2); } if (DamageAPI.HasModdedDamageType(damageInfo, GainNeedles)) { Util.PlaySound("Play_bandit2_m2_alt_throw", gameObject); if (attackerBody.GetBuffCount(SeamstressBuffs.Needles) < SeamstressConfig.maxNeedleAmount.Value) { attackerBody.AddBuff(SeamstressBuffs.Needles); } } if (DamageAPI.HasModdedDamageType(damageInfo, SeamstressLifesteal)) { SeamstressBaseDamageController component = ((Component)attackerBody).GetComponent(); if (Object.op_Implicit((Object)(object)component) && ((Behaviour)component).enabled) { component.ApplyLifesteal(attackerBody, damageInfo); } } } } public static class SeamstressAI { public static void Init(GameObject bodyPrefab, string masterName) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0230: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_024c: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_0330: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_0364: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) GameObject val = Prefabs.CreateBlankMasterPrefab(bodyPrefab, masterName); BaseAI component = val.GetComponent(); component.aimVectorDampTime = 0.1f; component.aimVectorMaxSpeed = 360f; AISkillDriver val2 = val.AddComponent(); val2.customName = "Use Primary Swing"; val2.skillSlot = (SkillSlot)0; val2.requiredSkill = null; val2.requireSkillReady = false; val2.requireEquipmentReady = false; val2.minUserHealthFraction = float.NegativeInfinity; val2.maxUserHealthFraction = float.PositiveInfinity; val2.minTargetHealthFraction = float.NegativeInfinity; val2.maxTargetHealthFraction = float.PositiveInfinity; val2.minDistance = 0f; val2.maxDistance = 8f; val2.selectionRequiresTargetLoS = false; val2.selectionRequiresOnGround = false; val2.selectionRequiresAimTarget = false; val2.maxTimesSelected = -1; val2.moveTargetType = (TargetType)0; val2.activationRequiresTargetLoS = false; val2.activationRequiresAimTargetLoS = false; val2.activationRequiresAimConfirmation = false; val2.movementType = (MovementType)1; val2.moveInputScale = 1f; val2.aimType = (AimType)1; val2.ignoreNodeGraph = false; val2.shouldSprint = false; val2.shouldFireEquipment = false; val2.buttonPressType = (ButtonPressType)0; val2.driverUpdateTimerOverride = -1f; val2.resetCurrentEnemyOnNextDriverSelection = false; val2.noRepeat = false; val2.nextHighPriorityOverride = null; AISkillDriver val3 = val.AddComponent(); val3.customName = "Use Secondary Shoot"; val3.skillSlot = (SkillSlot)1; val3.requireSkillReady = true; val3.minDistance = 0f; val3.maxDistance = 25f; val3.selectionRequiresTargetLoS = false; val3.selectionRequiresOnGround = false; val3.selectionRequiresAimTarget = false; val3.maxTimesSelected = -1; val3.moveTargetType = (TargetType)0; val3.activationRequiresTargetLoS = false; val3.activationRequiresAimTargetLoS = false; val3.activationRequiresAimConfirmation = true; val3.movementType = (MovementType)1; val3.moveInputScale = 1f; val3.aimType = (AimType)1; val3.buttonPressType = (ButtonPressType)0; AISkillDriver val4 = val.AddComponent(); val4.customName = "Use Utility Roll"; val4.skillSlot = (SkillSlot)2; val4.requireSkillReady = true; val4.minDistance = 8f; val4.maxDistance = 20f; val4.selectionRequiresTargetLoS = true; val4.selectionRequiresOnGround = false; val4.selectionRequiresAimTarget = false; val4.maxTimesSelected = -1; val4.moveTargetType = (TargetType)0; val4.activationRequiresTargetLoS = false; val4.activationRequiresAimTargetLoS = false; val4.activationRequiresAimConfirmation = false; val4.movementType = (MovementType)2; val4.moveInputScale = 1f; val4.aimType = (AimType)1; val4.buttonPressType = (ButtonPressType)0; AISkillDriver val5 = val.AddComponent(); val5.customName = "Use Special bomb"; val5.skillSlot = (SkillSlot)3; val5.requireSkillReady = true; val5.minDistance = 0f; val5.maxDistance = 20f; val5.selectionRequiresTargetLoS = false; val5.selectionRequiresOnGround = false; val5.selectionRequiresAimTarget = false; val5.maxTimesSelected = -1; val5.moveTargetType = (TargetType)0; val5.activationRequiresTargetLoS = false; val5.activationRequiresAimTargetLoS = false; val5.activationRequiresAimConfirmation = false; val5.movementType = (MovementType)1; val5.moveInputScale = 1f; val5.aimType = (AimType)1; val5.buttonPressType = (ButtonPressType)0; AISkillDriver val6 = val.AddComponent(); val6.customName = "Chase"; val6.skillSlot = (SkillSlot)(-1); val6.requireSkillReady = false; val6.minDistance = 0f; val6.maxDistance = float.PositiveInfinity; val6.moveTargetType = (TargetType)0; val6.activationRequiresTargetLoS = false; val6.activationRequiresAimTargetLoS = false; val6.activationRequiresAimConfirmation = false; val6.movementType = (MovementType)1; val6.moveInputScale = 1f; val6.aimType = (AimType)1; val6.buttonPressType = (ButtonPressType)0; } } public static class SeamstressAssets { public static AssetBundle mainAssetBundle { get; internal set; } public static Shader hotpoo { get; internal set; } = Resources.Load("Shaders/Deferred/HGStandard"); public static GameObject spawnPrefab { get; internal set; } public static GameObject spawnPrefab2 { get; internal set; } public static GameObject parrySlashEffect { get; internal set; } public static GameObject parrySlashEffect2 { get; internal set; } public static GameObject wideSlashEffect { get; internal set; } public static GameObject wideSlashEffect2 { get; internal set; } public static GameObject uppercutEffect { get; internal set; } public static GameObject uppercutEffect2 { get; internal set; } public static GameObject clipSlashEffect { get; internal set; } public static GameObject clipSlashEffect2 { get; internal set; } public static GameObject pickupScissorEffect { get; internal set; } public static GameObject pickupScissorEffect2 { get; internal set; } public static GameObject scissorsSlashEffect { get; internal set; } public static GameObject scissorsSlashEffect2 { get; internal set; } public static GameObject scissorsSlashComboEffect { get; internal set; } public static GameObject scissorsSlashComboEffect2 { get; internal set; } public static GameObject clawSlashEffect { get; internal set; } public static GameObject clawSlashEffect2 { get; internal set; } public static GameObject clawSlashComboEffect { get; internal set; } public static GameObject clawSlashComboEffect2 { get; internal set; } public static GameObject blinkEffect { get; internal set; } public static GameObject blinkEffect2 { get; internal set; } public static GameObject impDashEffect { get; internal set; } public static GameObject impDashEffect2 { get; internal set; } public static GameObject smallBlinkEffect { get; internal set; } public static GameObject smallBlinkEffect2 { get; internal set; } public static GameObject insatiableEndEffect { get; internal set; } public static GameObject insatiableEndEffect2 { get; internal set; } public static GameObject scissorsHitImpactEffect { get; internal set; } public static GameObject scissorsHitImpactEffect2 { get; internal set; } public static GameObject slamEffect { get; internal set; } public static GameObject slamEffect2 { get; internal set; } public static GameObject genericImpactExplosionEffect { get; internal set; } public static GameObject genericImpactExplosionEffect2 { get; internal set; } public static GameObject bloodSplatterEffect { get; internal set; } public static GameObject bloodSplatterEffect2 { get; internal set; } public static GameObject sewnCdEffect { get; internal set; } public static GameObject sewnEffect { get; internal set; } public static GameObject sewnEffect2 { get; internal set; } public static GameObject trailEffect { get; internal set; } public static GameObject trailEffectHands { get; internal set; } public static GameObject trailEffect2 { get; internal set; } public static GameObject trailEffectHands2 { get; internal set; } public static GameObject bloodExplosionEffect { get; internal set; } public static GameObject bloodExplosionEffect2 { get; internal set; } public static GameObject bloodSpurtEffect { get; internal set; } public static GameObject bloodSpurtEffect2 { get; internal set; } public static TeamAreaIndicator seamstressTeamAreaIndicator { get; internal set; } public static TeamAreaIndicator seamstressTeamAreaIndicator2 { get; internal set; } public static GameObject telekinesisTracker { get; internal set; } public static GameObject telekinesisCdTracker { get; internal set; } public static GameObject chainToHeart { get; internal set; } public static GameObject heartPrefab { get; internal set; } public static GameObject chainToHeart2 { get; internal set; } public static GameObject heartPrefab2 { get; internal set; } public static GameObject bleedEffect { get; internal set; } public static Material destealthMaterial { get; internal set; } public static Material destealthMaterial2 { get; internal set; } public static Material insatiableOverlayMat { get; internal set; } public static Material insatiableOverlayMat2 { get; internal set; } public static Material parryMat { get; internal set; } public static Material commandoMat { get; internal set; } public static Material mercMat { get; internal set; } public static NetworkSoundEventDef scissorsHitSoundEvent { get; internal set; } public static NetworkSoundEventDef parrySuccessSoundEvent { get; internal set; } public static GameObject needlePrefab { get; internal set; } public static GameObject needlePrefab2 { get; internal set; } public static GameObject scissorRPrefab { get; internal set; } public static GameObject scissorLPrefab { get; internal set; } public static GameObject scissorRPrefab2 { get; internal set; } public static GameObject scissorLPrefab2 { get; internal set; } public static Color coolRed { get; internal set; } = new Color(28f / 85f, 0f, 0.043137256f); public static Color theRed { get; internal set; } = new Color(31f / 51f, 11f / 51f, 11f / 51f); public static void Init(AssetBundle assetBundle) { mainAssetBundle = assetBundle; CreateMaterials(); CreateEffects(); CreateProjectiles(); CreateHeart(); CreateHeartBlue(); CreateSounds(); } private static void CreateHeart() { //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_003d: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0132: 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_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027c: 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_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_0351: Unknown result type (might be due to invalid IL or missing references) //IL_0356: Unknown result type (might be due to invalid IL or missing references) //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_037a: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_041e: Unknown result type (might be due to invalid IL or missing references) //IL_0454: Unknown result type (might be due to invalid IL or missing references) //IL_045e: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04e1: Unknown result type (might be due to invalid IL or missing references) //IL_04e6: Unknown result type (might be due to invalid IL or missing references) //IL_0531: Unknown result type (might be due to invalid IL or missing references) //IL_0536: Unknown result type (might be due to invalid IL or missing references) //IL_0559: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_05a3: Unknown result type (might be due to invalid IL or missing references) //IL_05b8: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync((object)"RoR2/DLC1/EliteEarth/AffixEarthHealerBody.prefab").WaitForCompletion().transform.GetChild(0).GetChild(0)).gameObject, "HeartMdl", false); Transform transform = val.transform; transform.localScale /= 3f; Material val2 = Addressables.LoadAssetAsync((object)"RoR2/DLC1/EliteEarth/AffixEarthCore.mat").WaitForCompletion(); Material[] materials = (Material[])(object)new Material[1] { val2 }; ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials = materials; ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_Color", coolRed); ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_EmColor", coolRed); Object.Destroy((Object)(object)val.GetComponent()); Object.Destroy((Object)(object)val.GetComponent()); Object.DestroyImmediate((Object)(object)((Component)val.transform.GetChild(2)).gameObject); val.transform.GetChild(2).localScale = new Vector3(1.5f, 1.5f, 1.5f); ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().color = theRed; ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().range = 2f; ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().timeMax = SeamstressConfig.insatiableDuration.Value; ((Renderer)((Component)val.transform.GetChild(2).GetChild(1)).gameObject.GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Junk/Common/VFX/matBloodParticle.mat").WaitForCompletion(); MainModule main = ((Component)val.transform.GetChild(2).GetChild(1)).gameObject.GetComponent().main; ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; ((Component)val.transform.GetChild(2).GetChild(2)).gameObject.SetActive(false); ((Component)val.transform.GetChild(2).GetChild(3)).gameObject.SetActive(false); main = ((Component)val.transform.GetChild(2).GetChild(4)).gameObject.GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(theRed); ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; main = ((Component)val.transform.GetChild(2).GetChild(5)).gameObject.GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(coolRed); ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; ((Renderer)((Component)val.transform.GetChild(2).GetChild(6)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.red); main = ((Component)val.transform.GetChild(2).GetChild(6)).gameObject.GetComponent().main; ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; Material val3 = Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpPortalEffectEdge.mat").WaitForCompletion(); val3.SetColor("_EmColor", Color.red); val3.SetColor("_TintColor", Color.red); Material[] materials2 = (Material[])(object)new Material[1] { val3 }; chainToHeart = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/EntangleOrbEffect.prefab").WaitForCompletion(), "HeartChains"); chainToHeart.AddComponent(); chainToHeart.AddComponent(); ((Renderer)((Component)chainToHeart.transform.GetChild(0)).GetComponent()).materials = materials2; ((Component)chainToHeart.transform.GetChild(0)).GetComponent().startColor = Color.red; ((Component)chainToHeart.transform.GetChild(0)).GetComponent().startColor = coolRed; ((Component)chainToHeart.transform.GetChild(0)).GetComponent().shadowBias = 0.5f; Transform transform2 = chainToHeart.transform; transform2.localScale *= 0.5f; ((Component)chainToHeart.transform.GetChild(0).GetChild(0)).gameObject.GetComponent().mesh = ((Component)Addressables.LoadAssetAsync((object)"RoR2/Base/ElementalRings/PickupFireRing.prefab").WaitForCompletion().transform.GetChild(0)).gameObject.GetComponent().mesh; ((Renderer)((Component)chainToHeart.transform.GetChild(0).GetChild(0)).gameObject.GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpPortalEffectEdge.mat").WaitForCompletion(); ((Behaviour)chainToHeart.gameObject.GetComponent()).enabled = false; ((Behaviour)chainToHeart.gameObject.GetComponent()).enabled = false; SeamstressMod.Modules.Content.CreateAndAddEffectDef(chainToHeart); heartPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/TreebotFlower2.prefab").WaitForCompletion(), "HeartPrefab"); heartPrefab.transform.localRotation = Quaternion.identity; CleanChildren(heartPrefab.transform.GetChild(0)); heartPrefab.transform.GetChild(0).localRotation = new Quaternion(6.643471E-24f, 4.689353E-39f, 2.91E-43f, Quaternion.identity.w); heartPrefab.transform.localPosition = Vector3.zero; val.transform.SetParent(heartPrefab.transform.GetChild(0)); heartPrefab.gameObject.GetComponent().modelTransform = heartPrefab.transform.GetChild(0).GetChild(0); ((Behaviour)heartPrefab.gameObject.GetComponent()).enabled = false; EntityStateMachine[] components = heartPrefab.GetComponents(); for (int num = components.Length - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)components[num]); } Prefabs.AddMainEntityStateMachine(heartPrefab, "Body", typeof(HeartStandBy), typeof(HeartSpawnState)); } private static void CreateHeartBlue() { //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_003d: 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_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0132: 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_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: 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_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_02fb: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_03ab: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_042f: Unknown result type (might be due to invalid IL or missing references) //IL_044f: Unknown result type (might be due to invalid IL or missing references) //IL_0485: Unknown result type (might be due to invalid IL or missing references) //IL_048f: Unknown result type (might be due to invalid IL or missing references) //IL_04bf: Unknown result type (might be due to invalid IL or missing references) //IL_04c4: Unknown result type (might be due to invalid IL or missing references) //IL_0512: Unknown result type (might be due to invalid IL or missing references) //IL_0517: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_058a: Unknown result type (might be due to invalid IL or missing references) //IL_05ca: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05e9: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(((Component)Addressables.LoadAssetAsync((object)"RoR2/DLC1/EliteEarth/AffixEarthHealerBody.prefab").WaitForCompletion().transform.GetChild(0).GetChild(0)).gameObject, "HeartMdl", false); Transform transform = val.transform; transform.localScale /= 3f; Material val2 = Addressables.LoadAssetAsync((object)"RoR2/DLC1/EliteEarth/AffixEarthCore.mat").WaitForCompletion(); Material[] materials = (Material[])(object)new Material[1] { val2 }; ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials = materials; ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_Color", Color.cyan); ((Renderer)((Component)val.transform.GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_EmColor", Color.cyan); Object.Destroy((Object)(object)val.GetComponent()); Object.Destroy((Object)(object)val.GetComponent()); Object.DestroyImmediate((Object)(object)((Component)val.transform.GetChild(2)).gameObject); val.transform.GetChild(2).localScale = new Vector3(1.5f, 1.5f, 1.5f); ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().color = Color.cyan; ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().range = 2f; ((Component)val.transform.GetChild(2).GetChild(0)).gameObject.GetComponent().timeMax = SeamstressConfig.insatiableDuration.Value; ((Renderer)((Component)val.transform.GetChild(2).GetChild(1)).gameObject.GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Junk/Common/VFX/matBloodParticle.mat").WaitForCompletion(); ((Renderer)((Component)val.transform.GetChild(2).GetChild(1)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); MainModule main = ((Component)val.transform.GetChild(2).GetChild(1)).gameObject.GetComponent().main; ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; ((Component)val.transform.GetChild(2).GetChild(2)).gameObject.SetActive(false); ((Component)val.transform.GetChild(2).GetChild(3)).gameObject.SetActive(false); main = ((Component)val.transform.GetChild(2).GetChild(4)).gameObject.GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; main = ((Component)val.transform.GetChild(2).GetChild(5)).gameObject.GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; ((Renderer)((Component)val.transform.GetChild(2).GetChild(6)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); main = ((Component)val.transform.GetChild(2).GetChild(6)).gameObject.GetComponent().main; ((MainModule)(ref main)).duration = SeamstressConfig.insatiableDuration.Value; Material val3 = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/matSeerPortalEffectEdge.mat").WaitForCompletion(); val3.SetColor("_EmColor", Color.cyan); val3.SetColor("_TintColor", Color.cyan); Material[] materials2 = (Material[])(object)new Material[1] { val3 }; chainToHeart2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/EntangleOrbEffect.prefab").WaitForCompletion(), "HeartChainsBlue"); chainToHeart2.AddComponent(); chainToHeart2.AddComponent(); ((Renderer)((Component)chainToHeart2.transform.GetChild(0)).GetComponent()).materials = materials2; ((Component)chainToHeart2.transform.GetChild(0)).GetComponent().startColor = Color.red; ((Component)chainToHeart2.transform.GetChild(0)).GetComponent().startColor = coolRed; ((Component)chainToHeart2.transform.GetChild(0)).GetComponent().shadowBias = 0.5f; Transform transform2 = chainToHeart2.transform; transform2.localScale *= 0.5f; ((Component)chainToHeart2.transform.GetChild(0).GetChild(0)).gameObject.GetComponent().mesh = ((Component)Addressables.LoadAssetAsync((object)"RoR2/Base/ElementalRings/PickupFireRing.prefab").WaitForCompletion().transform.GetChild(0)).gameObject.GetComponent().mesh; ((Renderer)((Component)chainToHeart2.transform.GetChild(0).GetChild(0)).gameObject.GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/matSeerPortalEffectEdge.mat").WaitForCompletion(); ((Behaviour)chainToHeart2.gameObject.GetComponent()).enabled = false; ((Behaviour)chainToHeart2.gameObject.GetComponent()).enabled = false; SeamstressMod.Modules.Content.CreateAndAddEffectDef(chainToHeart2); heartPrefab2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Treebot/TreebotFlower2.prefab").WaitForCompletion(), "HeartPrefabBlue"); heartPrefab2.transform.localRotation = Quaternion.identity; CleanChildren(heartPrefab2.transform.GetChild(0)); heartPrefab2.transform.GetChild(0).localRotation = new Quaternion(6.643471E-24f, 4.689353E-39f, 2.91E-43f, Quaternion.identity.w); heartPrefab2.transform.localPosition = Vector3.zero; val.transform.SetParent(heartPrefab2.transform.GetChild(0)); heartPrefab2.gameObject.GetComponent().modelTransform = heartPrefab2.transform.GetChild(0).GetChild(0); ((Behaviour)heartPrefab2.gameObject.GetComponent()).enabled = false; EntityStateMachine[] components = heartPrefab2.GetComponents(); for (int num = components.Length - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)components[num]); } Prefabs.AddMainEntityStateMachine(heartPrefab2, "Main", typeof(HeartStandBy), typeof(HeartSpawnState)); } private static void CleanChildren(Transform startingTrans) { for (int num = startingTrans.childCount - 1; num >= 0; num--) { if (startingTrans.GetChild(num).childCount > 0) { CleanChildren(startingTrans.GetChild(num)); } Object.DestroyImmediate((Object)(object)((Component)startingTrans.GetChild(num)).gameObject); } } private static void CreateMaterials() { //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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) insatiableOverlayMat = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/matVoidSurvivorCorruptOverlay.mat").WaitForCompletion()); insatiableOverlayMat2 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/matVoidSurvivorCorruptOverlay.mat").WaitForCompletion()); insatiableOverlayMat2.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampBombOrb.png").WaitForCompletion()); destealthMaterial = Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpBossDissolve.mat").WaitForCompletion(); destealthMaterial2 = Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/matMercEvisTarget.mat").WaitForCompletion(); parryMat = Addressables.LoadAssetAsync((object)"RoR2/Base/CritOnUse/matFullCrit.mat").WaitForCompletion(); mercMat = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/matMercSwipe1.mat").WaitForCompletion()); } private static void CreateEffects() { //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_0054: 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_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: 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_01e6: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //IL_03d2: Unknown result type (might be due to invalid IL or missing references) //IL_03f1: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) //IL_040a: Unknown result type (might be due to invalid IL or missing references) //IL_040f: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_04c2: Unknown result type (might be due to invalid IL or missing references) //IL_04c7: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_057a: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_05d1: Unknown result type (might be due to invalid IL or missing references) //IL_0601: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_0677: Unknown result type (might be due to invalid IL or missing references) //IL_06c5: Unknown result type (might be due to invalid IL or missing references) //IL_06d5: Unknown result type (might be due to invalid IL or missing references) //IL_06da: Unknown result type (might be due to invalid IL or missing references) //IL_0722: Unknown result type (might be due to invalid IL or missing references) //IL_0732: 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_0788: Unknown result type (might be due to invalid IL or missing references) //IL_07bf: 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_0806: Unknown result type (might be due to invalid IL or missing references) //IL_080b: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0892: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08de: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_0965: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_09ac: Unknown result type (might be due to invalid IL or missing references) //IL_09b1: Unknown result type (might be due to invalid IL or missing references) //IL_0a1d: Unknown result type (might be due to invalid IL or missing references) //IL_0a4c: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0a6c: Unknown result type (might be due to invalid IL or missing references) //IL_0ad8: Unknown result type (might be due to invalid IL or missing references) //IL_0b07: Unknown result type (might be due to invalid IL or missing references) //IL_0b22: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0bb5: Unknown result type (might be due to invalid IL or missing references) //IL_0bba: Unknown result type (might be due to invalid IL or missing references) //IL_0c38: Unknown result type (might be due to invalid IL or missing references) //IL_0c48: Unknown result type (might be due to invalid IL or missing references) //IL_0c4d: Unknown result type (might be due to invalid IL or missing references) //IL_0cdb: Unknown result type (might be due to invalid IL or missing references) //IL_0ce0: Unknown result type (might be due to invalid IL or missing references) //IL_0d5e: Unknown result type (might be due to invalid IL or missing references) //IL_0d6e: Unknown result type (might be due to invalid IL or missing references) //IL_0d73: Unknown result type (might be due to invalid IL or missing references) //IL_0db7: Unknown result type (might be due to invalid IL or missing references) //IL_0dc1: Unknown result type (might be due to invalid IL or missing references) //IL_0ddc: Unknown result type (might be due to invalid IL or missing references) //IL_0de6: Unknown result type (might be due to invalid IL or missing references) //IL_0f68: Unknown result type (might be due to invalid IL or missing references) //IL_0f6d: Unknown result type (might be due to invalid IL or missing references) //IL_0fb1: Unknown result type (might be due to invalid IL or missing references) //IL_0fbb: Unknown result type (might be due to invalid IL or missing references) //IL_0fd6: Unknown result type (might be due to invalid IL or missing references) //IL_0fe0: Unknown result type (might be due to invalid IL or missing references) //IL_1055: Unknown result type (might be due to invalid IL or missing references) //IL_105a: Unknown result type (might be due to invalid IL or missing references) //IL_11e0: Unknown result type (might be due to invalid IL or missing references) //IL_11e5: Unknown result type (might be due to invalid IL or missing references) //IL_1219: Unknown result type (might be due to invalid IL or missing references) //IL_121e: Unknown result type (might be due to invalid IL or missing references) //IL_126f: 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_12b5: Unknown result type (might be due to invalid IL or missing references) //IL_12ba: Unknown result type (might be due to invalid IL or missing references) //IL_12f6: Unknown result type (might be due to invalid IL or missing references) //IL_1344: Unknown result type (might be due to invalid IL or missing references) //IL_1349: Unknown result type (might be due to invalid IL or missing references) //IL_138c: Unknown result type (might be due to invalid IL or missing references) //IL_13ce: Unknown result type (might be due to invalid IL or missing references) //IL_13d3: Unknown result type (might be due to invalid IL or missing references) //IL_1429: Unknown result type (might be due to invalid IL or missing references) //IL_142e: Unknown result type (might be due to invalid IL or missing references) //IL_1471: Unknown result type (might be due to invalid IL or missing references) //IL_14b3: Unknown result type (might be due to invalid IL or missing references) //IL_14b8: Unknown result type (might be due to invalid IL or missing references) //IL_14f9: Unknown result type (might be due to invalid IL or missing references) //IL_14fe: Unknown result type (might be due to invalid IL or missing references) //IL_1512: Unknown result type (might be due to invalid IL or missing references) //IL_1517: Unknown result type (might be due to invalid IL or missing references) //IL_155a: Unknown result type (might be due to invalid IL or missing references) //IL_1593: Unknown result type (might be due to invalid IL or missing references) //IL_1598: Unknown result type (might be due to invalid IL or missing references) //IL_160a: Unknown result type (might be due to invalid IL or missing references) //IL_160f: Unknown result type (might be due to invalid IL or missing references) //IL_1652: Unknown result type (might be due to invalid IL or missing references) //IL_168b: Unknown result type (might be due to invalid IL or missing references) //IL_1690: Unknown result type (might be due to invalid IL or missing references) //IL_16d1: Unknown result type (might be due to invalid IL or missing references) //IL_16d6: Unknown result type (might be due to invalid IL or missing references) //IL_1706: Unknown result type (might be due to invalid IL or missing references) //IL_170b: 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_176f: Unknown result type (might be due to invalid IL or missing references) //IL_179d: Unknown result type (might be due to invalid IL or missing references) //IL_17a2: Unknown result type (might be due to invalid IL or missing references) //IL_17b6: Unknown result type (might be due to invalid IL or missing references) //IL_17bb: Unknown result type (might be due to invalid IL or missing references) //IL_1815: Unknown result type (might be due to invalid IL or missing references) //IL_181a: Unknown result type (might be due to invalid IL or missing references) //IL_182e: Unknown result type (might be due to invalid IL or missing references) //IL_1833: Unknown result type (might be due to invalid IL or missing references) //IL_1892: Unknown result type (might be due to invalid IL or missing references) //IL_1897: Unknown result type (might be due to invalid IL or missing references) //IL_18ca: Unknown result type (might be due to invalid IL or missing references) //IL_18da: Unknown result type (might be due to invalid IL or missing references) //IL_18df: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_194e: Unknown result type (might be due to invalid IL or missing references) //IL_1953: Unknown result type (might be due to invalid IL or missing references) //IL_1996: Unknown result type (might be due to invalid IL or missing references) //IL_199b: Unknown result type (might be due to invalid IL or missing references) //IL_19ce: Unknown result type (might be due to invalid IL or missing references) //IL_19f3: Unknown result type (might be due to invalid IL or missing references) //IL_19f8: Unknown result type (might be due to invalid IL or missing references) //IL_1a0c: Unknown result type (might be due to invalid IL or missing references) //IL_1a11: Unknown result type (might be due to invalid IL or missing references) //IL_1a54: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1a7e: Unknown result type (might be due to invalid IL or missing references) //IL_1a92: Unknown result type (might be due to invalid IL or missing references) //IL_1a97: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ad6: Unknown result type (might be due to invalid IL or missing references) //IL_1af6: Unknown result type (might be due to invalid IL or missing references) //IL_1afb: Unknown result type (might be due to invalid IL or missing references) //IL_1b1b: Unknown result type (might be due to invalid IL or missing references) //IL_1b20: Unknown result type (might be due to invalid IL or missing references) //IL_1b4a: Unknown result type (might be due to invalid IL or missing references) //IL_1b4f: Unknown result type (might be due to invalid IL or missing references) //IL_1b7d: Unknown result type (might be due to invalid IL or missing references) //IL_1b82: Unknown result type (might be due to invalid IL or missing references) //IL_1ba1: Unknown result type (might be due to invalid IL or missing references) //IL_1ba6: Unknown result type (might be due to invalid IL or missing references) //IL_1bdb: Unknown result type (might be due to invalid IL or missing references) //IL_1be5: Unknown result type (might be due to invalid IL or missing references) //IL_1c05: Unknown result type (might be due to invalid IL or missing references) //IL_1c0a: Unknown result type (might be due to invalid IL or missing references) //IL_1c2a: Unknown result type (might be due to invalid IL or missing references) //IL_1c2f: Unknown result type (might be due to invalid IL or missing references) //IL_1c54: Unknown result type (might be due to invalid IL or missing references) //IL_1c59: Unknown result type (might be due to invalid IL or missing references) //IL_1c78: Unknown result type (might be due to invalid IL or missing references) //IL_1c7d: Unknown result type (might be due to invalid IL or missing references) //IL_1cb2: Unknown result type (might be due to invalid IL or missing references) //IL_1cbc: Unknown result type (might be due to invalid IL or missing references) //IL_1ce6: Unknown result type (might be due to invalid IL or missing references) //IL_1ceb: Unknown result type (might be due to invalid IL or missing references) //IL_1d19: Unknown result type (might be due to invalid IL or missing references) //IL_1d1e: Unknown result type (might be due to invalid IL or missing references) //IL_1d56: Unknown result type (might be due to invalid IL or missing references) //IL_1d5b: Unknown result type (might be due to invalid IL or missing references) //IL_1d90: Unknown result type (might be due to invalid IL or missing references) //IL_1d9a: Unknown result type (might be due to invalid IL or missing references) //IL_1dbf: Unknown result type (might be due to invalid IL or missing references) //IL_1dc4: Unknown result type (might be due to invalid IL or missing references) //IL_1dfc: Unknown result type (might be due to invalid IL or missing references) //IL_1e01: Unknown result type (might be due to invalid IL or missing references) //IL_1e44: Unknown result type (might be due to invalid IL or missing references) //IL_1e49: Unknown result type (might be due to invalid IL or missing references) //IL_1e77: Unknown result type (might be due to invalid IL or missing references) //IL_1e7c: Unknown result type (might be due to invalid IL or missing references) //IL_1ea4: Unknown result type (might be due to invalid IL or missing references) //IL_1ea9: Unknown result type (might be due to invalid IL or missing references) //IL_1ee7: Unknown result type (might be due to invalid IL or missing references) //IL_1eec: Unknown result type (might be due to invalid IL or missing references) //IL_1f14: Unknown result type (might be due to invalid IL or missing references) //IL_1f19: Unknown result type (might be due to invalid IL or missing references) //IL_1f54: Unknown result type (might be due to invalid IL or missing references) //IL_1f59: Unknown result type (might be due to invalid IL or missing references) //IL_1f70: Unknown result type (might be due to invalid IL or missing references) //IL_1fad: Unknown result type (might be due to invalid IL or missing references) //IL_1fb7: Unknown result type (might be due to invalid IL or missing references) //IL_1fe1: Unknown result type (might be due to invalid IL or missing references) //IL_1fe6: Unknown result type (might be due to invalid IL or missing references) //IL_1fff: Unknown result type (might be due to invalid IL or missing references) //IL_2004: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_2050: Unknown result type (might be due to invalid IL or missing references) //IL_207a: Unknown result type (might be due to invalid IL or missing references) //IL_207f: Unknown result type (might be due to invalid IL or missing references) //IL_20b8: 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_20f0: Unknown result type (might be due to invalid IL or missing references) //IL_20f5: Unknown result type (might be due to invalid IL or missing references) //IL_2119: Unknown result type (might be due to invalid IL or missing references) //IL_2123: Unknown result type (might be due to invalid IL or missing references) //IL_221c: Unknown result type (might be due to invalid IL or missing references) //IL_2231: Unknown result type (might be due to invalid IL or missing references) //IL_223b: Unknown result type (might be due to invalid IL or missing references) //IL_2256: Unknown result type (might be due to invalid IL or missing references) //IL_225b: Unknown result type (might be due to invalid IL or missing references) //IL_22b0: Unknown result type (might be due to invalid IL or missing references) //IL_22b5: Unknown result type (might be due to invalid IL or missing references) //IL_22d9: Unknown result type (might be due to invalid IL or missing references) //IL_22e3: Unknown result type (might be due to invalid IL or missing references) //IL_22fe: Unknown result type (might be due to invalid IL or missing references) //IL_2308: Unknown result type (might be due to invalid IL or missing references) //IL_2323: Unknown result type (might be due to invalid IL or missing references) //IL_232d: Unknown result type (might be due to invalid IL or missing references) //IL_2426: Unknown result type (might be due to invalid IL or missing references) //IL_243b: Unknown result type (might be due to invalid IL or missing references) //IL_2445: Unknown result type (might be due to invalid IL or missing references) //IL_2460: Unknown result type (might be due to invalid IL or missing references) //IL_2465: Unknown result type (might be due to invalid IL or missing references) //IL_248e: Unknown result type (might be due to invalid IL or missing references) //IL_2493: Unknown result type (might be due to invalid IL or missing references) //IL_258b: Unknown result type (might be due to invalid IL or missing references) //IL_2590: Unknown result type (might be due to invalid IL or missing references) //IL_264c: Unknown result type (might be due to invalid IL or missing references) //IL_2651: Unknown result type (might be due to invalid IL or missing references) //IL_268f: Unknown result type (might be due to invalid IL or missing references) //IL_2694: Unknown result type (might be due to invalid IL or missing references) //IL_2698: Unknown result type (might be due to invalid IL or missing references) //IL_269d: Unknown result type (might be due to invalid IL or missing references) //IL_26c2: Unknown result type (might be due to invalid IL or missing references) //IL_26c7: Unknown result type (might be due to invalid IL or missing references) //IL_26cb: Unknown result type (might be due to invalid IL or missing references) //IL_26d0: Unknown result type (might be due to invalid IL or missing references) //IL_26ff: Unknown result type (might be due to invalid IL or missing references) //IL_274a: Unknown result type (might be due to invalid IL or missing references) //IL_275a: Unknown result type (might be due to invalid IL or missing references) //IL_275f: Unknown result type (might be due to invalid IL or missing references) //IL_2776: Unknown result type (might be due to invalid IL or missing references) //IL_27cf: Unknown result type (might be due to invalid IL or missing references) //IL_27d4: Unknown result type (might be due to invalid IL or missing references) //IL_2812: Unknown result type (might be due to invalid IL or missing references) //IL_2817: Unknown result type (might be due to invalid IL or missing references) //IL_281b: Unknown result type (might be due to invalid IL or missing references) //IL_2820: Unknown result type (might be due to invalid IL or missing references) //IL_2845: Unknown result type (might be due to invalid IL or missing references) //IL_284a: Unknown result type (might be due to invalid IL or missing references) //IL_284e: Unknown result type (might be due to invalid IL or missing references) //IL_2853: Unknown result type (might be due to invalid IL or missing references) //IL_2882: Unknown result type (might be due to invalid IL or missing references) //IL_28cd: Unknown result type (might be due to invalid IL or missing references) //IL_28dd: Unknown result type (might be due to invalid IL or missing references) //IL_28e2: Unknown result type (might be due to invalid IL or missing references) //IL_28f9: Unknown result type (might be due to invalid IL or missing references) //IL_2957: Unknown result type (might be due to invalid IL or missing references) //IL_295c: Unknown result type (might be due to invalid IL or missing references) //IL_296a: Unknown result type (might be due to invalid IL or missing references) //IL_296f: Unknown result type (might be due to invalid IL or missing references) //IL_298e: Unknown result type (might be due to invalid IL or missing references) //IL_2993: Unknown result type (might be due to invalid IL or missing references) //IL_29af: Unknown result type (might be due to invalid IL or missing references) //IL_29b4: Unknown result type (might be due to invalid IL or missing references) //IL_29cd: Unknown result type (might be due to invalid IL or missing references) //IL_29d2: Unknown result type (might be due to invalid IL or missing references) //IL_29f3: Unknown result type (might be due to invalid IL or missing references) //IL_29f8: Unknown result type (might be due to invalid IL or missing references) //IL_2b71: Unknown result type (might be due to invalid IL or missing references) //IL_2b76: Unknown result type (might be due to invalid IL or missing references) //IL_2c2a: Unknown result type (might be due to invalid IL or missing references) //IL_2c45: Unknown result type (might be due to invalid IL or missing references) //IL_2c4a: Unknown result type (might be due to invalid IL or missing references) //IL_2dc3: Unknown result type (might be due to invalid IL or missing references) //IL_2dc8: Unknown result type (might be due to invalid IL or missing references) //IL_2e7c: Unknown result type (might be due to invalid IL or missing references) //IL_2e97: Unknown result type (might be due to invalid IL or missing references) //IL_2e9c: Unknown result type (might be due to invalid IL or missing references) //IL_2ed0: Unknown result type (might be due to invalid IL or missing references) //IL_2ed5: Unknown result type (might be due to invalid IL or missing references) //IL_2f30: 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_2f6c: Unknown result type (might be due to invalid IL or missing references) //IL_2f71: Unknown result type (might be due to invalid IL or missing references) //IL_2f75: Unknown result type (might be due to invalid IL or missing references) //IL_2f7a: Unknown result type (might be due to invalid IL or missing references) //IL_2fad: Unknown result type (might be due to invalid IL or missing references) //IL_2fb2: Unknown result type (might be due to invalid IL or missing references) //IL_2fb6: Unknown result type (might be due to invalid IL or missing references) //IL_2fbb: Unknown result type (might be due to invalid IL or missing references) //IL_3063: Unknown result type (might be due to invalid IL or missing references) //IL_3068: Unknown result type (might be due to invalid IL or missing references) //IL_3198: Unknown result type (might be due to invalid IL or missing references) //IL_31a2: Expected O, but got Unknown //IL_31b9: Unknown result type (might be due to invalid IL or missing references) //IL_321f: Unknown result type (might be due to invalid IL or missing references) //IL_3229: Expected O, but got Unknown //IL_3240: Unknown result type (might be due to invalid IL or missing references) //IL_3253: Unknown result type (might be due to invalid IL or missing references) //IL_325a: Expected O, but got Unknown //IL_32c2: Unknown result type (might be due to invalid IL or missing references) //IL_32c7: Unknown result type (might be due to invalid IL or missing references) //IL_3305: Unknown result type (might be due to invalid IL or missing references) //IL_330c: Expected O, but got Unknown //IL_3374: Unknown result type (might be due to invalid IL or missing references) //IL_3379: Unknown result type (might be due to invalid IL or missing references) //IL_33ae: Unknown result type (might be due to invalid IL or missing references) //IL_33b5: Expected O, but got Unknown //IL_341d: Unknown result type (might be due to invalid IL or missing references) //IL_3422: Unknown result type (might be due to invalid IL or missing references) //IL_3447: Unknown result type (might be due to invalid IL or missing references) //IL_344c: Unknown result type (might be due to invalid IL or missing references) //IL_3464: Unknown result type (might be due to invalid IL or missing references) //IL_346b: Expected O, but got Unknown //IL_34d3: Unknown result type (might be due to invalid IL or missing references) //IL_34d8: Unknown result type (might be due to invalid IL or missing references) //IL_34fd: Unknown result type (might be due to invalid IL or missing references) //IL_3502: Unknown result type (might be due to invalid IL or missing references) spawnPrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossDeathEffect.prefab").WaitForCompletion(), "SpawnEffect"); spawnPrefab.AddComponent(); spawnPrefab.GetComponent().applyScale = true; Transform obj = spawnPrefab.transform.Find("DashRings"); obj.localScale *= 0.75f; SeamstressMod.Modules.Content.CreateAndAddEffectDef(spawnPrefab); spawnPrefab2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossDeathEffect.prefab").WaitForCompletion(), "SpawnEffect2"); spawnPrefab2.AddComponent(); spawnPrefab2.GetComponent().applyScale = true; Transform obj2 = spawnPrefab2.transform.Find("DashRings"); obj2.localScale *= 0.75f; ((Renderer)((Component)spawnPrefab2.transform.Find("NoiseTrails")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); ((Renderer)((Component)spawnPrefab2.transform.Find("Dash")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); ((Renderer)((Component)spawnPrefab2.transform.Find("DashRings")).gameObject.GetComponent()).material = mercMat; ((Renderer)((Component)spawnPrefab2.transform.Find("Ring")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); ((Component)spawnPrefab2.transform.Find("Point Light")).gameObject.GetComponent().color = Color.cyan; Object.Destroy((Object)(object)((Component)spawnPrefab2.transform.Find("Flash, Red")).gameObject); Object.Destroy((Object)(object)((Component)spawnPrefab2.transform.Find("PP")).gameObject); SeamstressMod.Modules.Content.CreateAndAddEffectDef(spawnPrefab2); bloodExplosionEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion(), "SeamstressBloodExplosion", false); Material material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matBloodHumanLarge.mat").WaitForCompletion()); Material val = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/moon2/matBloodSiphon.mat").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect.transform.Find("Particles/LongLifeNoiseTrails")).GetComponent()).material = material; ((Renderer)((Component)bloodExplosionEffect.transform.Find("Particles/LongLifeNoiseTrails, Bright")).GetComponent()).material = material; ((Renderer)((Component)bloodExplosionEffect.transform.Find("Particles/Dash")).GetComponent()).material = material; ((Renderer)((Component)bloodExplosionEffect.transform.Find("Particles/Dash, Bright")).GetComponent()).material = material; ((Renderer)((Component)bloodExplosionEffect.transform.Find("Particles/DashRings")).GetComponent()).material = val; ((Component)bloodExplosionEffect.GetComponentInChildren()).gameObject.SetActive(false); bloodExplosionEffect.GetComponentInChildren().sharedProfile = Addressables.LoadAssetAsync((object)"RoR2/Base/title/ppLocalGold.asset").WaitForCompletion(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(bloodExplosionEffect); bloodSpurtEffect = mainAssetBundle.LoadAsset("BloodSpurtEffect"); ((Renderer)((Component)bloodSpurtEffect.transform.Find("Blood")).GetComponent()).material = val; ((Component)bloodSpurtEffect.transform.Find("Trails")).GetComponent().trailMaterial = val; bloodExplosionEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion(), "SeamstressBloodExplosion2", false); Material material2 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matBloodHumanLarge.mat").WaitForCompletion()); Material val2 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/moon2/matBloodSiphon.mat").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/LongLifeNoiseTrails")).GetComponent()).material = material2; ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/LongLifeNoiseTrails")).GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft.png").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/LongLifeNoiseTrails, Bright")).GetComponent()).material = material2; ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/LongLifeNoiseTrails, Bright")).GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft.png").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/Dash")).GetComponent()).material = material2; ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/Dash")).GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft.png").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/Dash, Bright")).GetComponent()).material = material2; ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/Dash, Bright")).GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft.png").WaitForCompletion()); ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/DashRings")).GetComponent()).material = val2; ((Renderer)((Component)bloodExplosionEffect2.transform.Find("Particles/DashRings")).GetComponent()).material.SetColor("_TintColor", Color.cyan); ((Component)bloodExplosionEffect2.GetComponentInChildren()).gameObject.SetActive(false); bloodExplosionEffect2.GetComponentInChildren().sharedProfile = Addressables.LoadAssetAsync((object)"RoR2/Base/title/ppLocalGold.asset").WaitForCompletion(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(bloodExplosionEffect2); bloodSpurtEffect2 = mainAssetBundle.LoadAsset("BloodSpurtEffect"); ((Renderer)((Component)bloodSpurtEffect2.transform.Find("Blood")).GetComponent()).material = val2; ((Renderer)((Component)bloodSpurtEffect2.transform.Find("Blood")).GetComponent()).material.SetColor("_TintColor", Color.cyan); ((Component)bloodSpurtEffect2.transform.Find("Trails")).GetComponent().trailMaterial = val2; ((Component)bloodSpurtEffect2.transform.Find("Trails")).GetComponent().trailMaterial.SetColor("_TintColor", Color.cyan); bleedEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/BleedEffect.prefab").WaitForCompletion(), "StitchEffect"); bleedEffect.AddComponent(); ((Renderer)((Component)bleedEffect.transform.GetChild(1)).gameObject.GetComponent()).material.SetColor("_EmissionColor", coolRed); sewnCdEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Nullifier/NullifyStack3Effect.prefab").WaitForCompletion(), "SewnNo", false); sewnCdEffect.AddComponent(); ((Renderer)((Component)sewnCdEffect.transform.GetChild(0).GetChild(0)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.clear); ((Renderer)((Component)sewnCdEffect.transform.GetChild(0).GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.clear); ((Renderer)((Component)sewnCdEffect.transform.GetChild(0).GetChild(2)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.clear); sewnEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Nullifier/NullifyStack3Effect.prefab").WaitForCompletion(), "SewnYes"); sewnEffect.AddComponent(); ((Renderer)((Component)sewnEffect.transform.GetChild(0).GetChild(0)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", coolRed); ((Renderer)((Component)sewnEffect.transform.GetChild(0).GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", coolRed); ((Renderer)((Component)sewnEffect.transform.GetChild(0).GetChild(2)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", coolRed); sewnEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Nullifier/NullifyStack3Effect.prefab").WaitForCompletion(), "SewnYes2"); sewnEffect2.AddComponent(); ((Renderer)((Component)sewnEffect2.transform.GetChild(0).GetChild(0)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.cyan); ((Renderer)((Component)sewnEffect2.transform.GetChild(0).GetChild(1)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.cyan); ((Renderer)((Component)sewnEffect2.transform.GetChild(0).GetChild(2)).gameObject.GetComponent()).materials[0].SetColor("_TintColor", Color.cyan); parrySlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidJailer/VoidJailerCaptureTracer.prefab").WaitForCompletion(), "ParrySlashEffect"); parrySlashEffect.AddComponent(); ((Component)parrySlashEffect.transform).gameObject.GetComponent().soundName = "Play_huntress_R_snipe_shoot"; ((Renderer)((Component)parrySlashEffect.transform.GetChild(2).GetChild(0)).gameObject.GetComponent()).material.SetColor("_TintColor", coolRed); ((Renderer)((Component)parrySlashEffect.transform.GetChild(3)).gameObject.GetComponent()).material.SetColor("_TintColor", coolRed); SeamstressMod.Modules.Content.CreateAndAddEffectDef(parrySlashEffect); parrySlashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidJailer/VoidJailerCaptureTracer.prefab").WaitForCompletion(), "ParrySlashEffect2"); parrySlashEffect2.AddComponent(); ((Component)parrySlashEffect2.transform).gameObject.GetComponent().soundName = "Play_huntress_R_snipe_shoot"; ((Renderer)((Component)parrySlashEffect2.transform.GetChild(2).GetChild(0)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); ((Renderer)((Component)parrySlashEffect2.transform.GetChild(3)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); SeamstressMod.Modules.Content.CreateAndAddEffectDef(parrySlashEffect2); telekinesisTracker = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressTrackingIndicator.prefab").WaitForCompletion(), "SeamstressTracker", false); Object.DestroyImmediate((Object)(object)((Component)telekinesisTracker.transform.GetChild(0)).gameObject.GetComponent()); SpriteRenderer val3 = ((Component)telekinesisTracker.transform.GetChild(0)).gameObject.AddComponent(); val3.sprite = mainAssetBundle.LoadAsset("Grab"); ((Component)telekinesisTracker.transform.GetChild(1)).gameObject.SetActive(false); Sprite sprite = Addressables.LoadAssetAsync((object)"RoR2/Base/UI/texCrosshair2.png").WaitForCompletion(); Material material3 = ((Renderer)((Component)telekinesisTracker.transform.GetChild(2)).gameObject.GetComponent()).material; Object.DestroyImmediate((Object)(object)((Component)telekinesisTracker.transform.GetChild(2)).gameObject.GetComponent()); SpriteRenderer val4 = ((Component)telekinesisTracker.transform.GetChild(2)).gameObject.AddComponent(); ((Renderer)val4).material = material3; val4.sprite = sprite; val4.color = coolRed; telekinesisCdTracker = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressTrackingIndicator.prefab").WaitForCompletion(), "NotSeamstressTracker", false); Object.DestroyImmediate((Object)(object)((Component)telekinesisCdTracker.transform.GetChild(0)).gameObject.GetComponent()); val3 = ((Component)telekinesisCdTracker.transform.GetChild(0)).gameObject.AddComponent(); val3.sprite = mainAssetBundle.LoadAsset("NoGrab"); ((Component)telekinesisCdTracker.transform.GetChild(1)).gameObject.SetActive(false); sprite = Addressables.LoadAssetAsync((object)"RoR2/Base/UI/texCrosshair2.png").WaitForCompletion(); material3 = ((Renderer)((Component)telekinesisCdTracker.transform.GetChild(2)).gameObject.GetComponent()).material; Object.DestroyImmediate((Object)(object)((Component)telekinesisCdTracker.transform.GetChild(2)).gameObject.GetComponent()); val4 = ((Component)telekinesisCdTracker.transform.GetChild(2)).gameObject.AddComponent(); ((Renderer)val4).material = material3; val4.sprite = sprite; val4.color = coolRed; blinkEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion(), "BlinkStart"); blinkEffect.AddComponent(); blinkEffect.GetComponent().applyScale = true; blinkEffect.transform.GetChild(0).localScale = Vector3.one * 0.5f; blinkEffect.transform.GetChild(1).localScale = Vector3.one * 0.5f; Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Point light")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Flash, Red")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Flash, White")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Distortion")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Dash")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("Dash, Bright")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("LongLifeNoiseTrails")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("Particles").Find("LongLifeNoiseTrails, Bright")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect.transform.Find("PP")).gameObject); SeamstressMod.Modules.Content.CreateAndAddEffectDef(blinkEffect); blinkEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossBlink.prefab").WaitForCompletion(), "BlinkStart2"); blinkEffect2.AddComponent(); blinkEffect2.GetComponent().applyScale = true; blinkEffect2.transform.GetChild(0).localScale = Vector3.one * 0.5f; blinkEffect2.transform.GetChild(1).localScale = Vector3.one * 0.5f; ((Renderer)((Component)blinkEffect2.transform.Find("Particles").Find("DashRings")).gameObject.GetComponent()).material = mercMat; ((Renderer)((Component)blinkEffect2.transform.Find("Particles").Find("Sphere")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLunarElectric.png").WaitForCompletion()); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Point light")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Flash, Red")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Flash, White")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Distortion")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Dash")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("Dash, Bright")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("LongLifeNoiseTrails")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("Particles").Find("LongLifeNoiseTrails, Bright")).gameObject); Object.DestroyImmediate((Object)(object)((Component)blinkEffect2.transform.Find("PP")).gameObject); SeamstressMod.Modules.Content.CreateAndAddEffectDef(blinkEffect2); smallBlinkEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/ImpBlinkEffect.prefab").WaitForCompletion(), "BlinkSmall"); smallBlinkEffect.AddComponent(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(smallBlinkEffect); smallBlinkEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/ImpBlinkEffect.prefab").WaitForCompletion(), "BlinkSmall2"); smallBlinkEffect2.AddComponent(); ((Renderer)((Component)smallBlinkEffect2.transform.Find("Particles").Find("NoiseTrails")).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarGolem/matLunarGolemBlastDustLG.mat").WaitForCompletion()); ((Renderer)((Component)smallBlinkEffect2.transform.Find("Particles").Find("Flash, White")).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/bazaar/matSeerPortalEffectEdge.mat").WaitForCompletion()); ((Component)smallBlinkEffect2.transform.Find("Particles").Find("Point light")).gameObject.GetComponent().color = Color.cyan; ((Renderer)((Component)smallBlinkEffect2.transform.Find("Particles").Find("Dash")).gameObject.GetComponent()).material = mercMat; SeamstressMod.Modules.Content.CreateAndAddEffectDef(smallBlinkEffect2); clawSlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoSlash.prefab").WaitForCompletion(), "SeamstressSlash"); clawSlashEffect.AddComponent(); clawSlashEffect.transform.GetChild(0).localScale = new Vector3(1f, 1f, 1f); clawSlashEffect.GetComponent().initialDuration = 0.5f; ((Renderer)((Component)clawSlashEffect.transform.Find("SwingTrail")).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/matCrocoSlash.mat").WaitForCompletion()); ((Renderer)((Component)clawSlashEffect.transform.Find("SwingTrail")).gameObject.GetComponent()).material.SetTexture("_RemapTex", mainAssetBundle.LoadAsset("texRampSeamstress")); clawSlashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoSlash.prefab").WaitForCompletion(), "SeamstressSlash2"); clawSlashEffect2.AddComponent(); clawSlashEffect2.transform.GetChild(0).localScale = new Vector3(1f, 1f, 1f); clawSlashEffect2.GetComponent().initialDuration = 0.5f; ((Renderer)((Component)clawSlashEffect2.transform.Find("SwingTrail")).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/matCrocoSlash.mat").WaitForCompletion()); ((Renderer)((Component)clawSlashEffect2.transform.Find("SwingTrail")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft2.png").WaitForCompletion()); clawSlashComboEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoComboFinisherSlash.prefab").WaitForCompletion(), "SeamstressComboSlash"); clawSlashComboEffect.AddComponent(); clawSlashComboEffect.transform.GetChild(0).localScale = new Vector3(1.25f, 1.25f, 1.25f); clawSlashComboEffect.GetComponent().initialDuration = 0.5f; ((Renderer)((Component)clawSlashComboEffect.transform.GetChild(0)).GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/matCrocoSlash.mat").WaitForCompletion()); ((Renderer)((Component)clawSlashComboEffect.transform.Find("SwingTrail")).gameObject.GetComponent()).material.SetTexture("_RemapTex", mainAssetBundle.LoadAsset("texRampSeamstress")); ((Component)clawSlashComboEffect.transform.GetChild(1)).gameObject.SetActive(false); clawSlashComboEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/CrocoComboFinisherSlash.prefab").WaitForCompletion(), "SeamstressComboSlash2"); clawSlashComboEffect2.AddComponent(); clawSlashComboEffect2.transform.GetChild(0).localScale = new Vector3(1.25f, 1.25f, 1.25f); clawSlashComboEffect2.GetComponent().initialDuration = 0.5f; ((Renderer)((Component)clawSlashComboEffect2.transform.GetChild(0)).GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Croco/matCrocoSlash.mat").WaitForCompletion()); ((Renderer)((Component)clawSlashComboEffect2.transform.Find("SwingTrail")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampHuntressSoft2.png").WaitForCompletion()); ((Component)clawSlashComboEffect2.transform.GetChild(1)).gameObject.SetActive(false); scissorsSlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ScissorSwing"); scissorsSlashEffect.AddComponent(); ((Component)scissorsSlashEffect.transform.GetChild(0)).gameObject.SetActive(false); ((Renderer)((Component)scissorsSlashEffect.transform.GetChild(1)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); MainModule main = ((Component)scissorsSlashEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 2f; scissorsSlashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ScissorSwingBlue"); scissorsSlashEffect2.AddComponent(); ((Component)scissorsSlashEffect2.transform.GetChild(0)).gameObject.SetActive(false); main = ((Component)scissorsSlashEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 2f; scissorsSlashComboEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ScissorSwing3"); scissorsSlashComboEffect.AddComponent(); ((Component)scissorsSlashComboEffect.transform.GetChild(0)).gameObject.SetActive(false); ((Renderer)((Component)scissorsSlashComboEffect.transform.GetChild(1)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); scissorsSlashComboEffect.transform.GetChild(1).localScale = new Vector3(1f, 1.5f, 1.5f); scissorsSlashComboEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ScissorSwing3Blue"); scissorsSlashComboEffect2.AddComponent(); ((Component)scissorsSlashComboEffect2.transform.GetChild(0)).gameObject.SetActive(false); scissorsSlashComboEffect2.transform.GetChild(1).localScale = new Vector3(1f, 1.5f, 1.5f); clipSlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ClipSwing"); clipSlashEffect.AddComponent(); ((Renderer)((Component)clipSlashEffect.transform.GetChild(1)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); clipSlashEffect.transform.GetChild(1).localScale = new Vector3(0.5f, 0.75f, 0.5f); main = ((Component)clipSlashEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 0.6f; clipSlashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordFinisherSlash.prefab").WaitForCompletion(), "ClipSwing2"); clipSlashEffect2.AddComponent(); clipSlashEffect2.transform.GetChild(1).localScale = new Vector3(0.5f, 0.75f, 0.5f); main = ((Component)clipSlashEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 0.6f; pickupScissorEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "ScissorPickupSwing"); pickupScissorEffect.AddComponent(); Transform child = pickupScissorEffect.transform.GetChild(0); child.localScale *= 1.5f; pickupScissorEffect.transform.GetChild(0).rotation = Quaternion.AngleAxis(90f, Vector3.left); pickupScissorEffect.transform.GetChild(1).rotation = Quaternion.AngleAxis(90f, Vector3.left); ((Renderer)((Component)pickupScissorEffect.transform.GetChild(0)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); main = ((Component)pickupScissorEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 2f; SeamstressMod.Modules.Content.CreateAndAddEffectDef(pickupScissorEffect); pickupScissorEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "ScissorPickupSwing2"); pickupScissorEffect2.AddComponent(); Transform child2 = pickupScissorEffect2.transform.GetChild(0); child2.localScale *= 1.5f; pickupScissorEffect2.transform.GetChild(0).rotation = Quaternion.AngleAxis(90f, Vector3.left); pickupScissorEffect2.transform.GetChild(1).rotation = Quaternion.AngleAxis(90f, Vector3.left); main = ((Component)pickupScissorEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 2f; SeamstressMod.Modules.Content.CreateAndAddEffectDef(pickupScissorEffect2); wideSlashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "SeamstressWideSwordSwing"); wideSlashEffect.AddComponent(); Transform child3 = wideSlashEffect.transform.GetChild(0); child3.localScale *= 1.5f; ((Renderer)((Component)wideSlashEffect.transform.GetChild(0)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); MainModule main2 = ((Component)wideSlashEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main2)).startLifetimeMultiplier = 0.6f; ((MainModule)(ref main2)).startRotation3D = false; wideSlashEffect.GetComponent().AttemptToUpgradeSfxSetup(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(wideSlashEffect); wideSlashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "SeamstressWideSwordSwing"); wideSlashEffect2.AddComponent(); Transform child4 = wideSlashEffect2.transform.GetChild(0); child4.localScale *= 1.5f; main2 = ((Component)wideSlashEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main2)).startLifetimeMultiplier = 0.6f; ((MainModule)(ref main2)).startRotation3D = false; wideSlashEffect2.GetComponent().AttemptToUpgradeSfxSetup(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(wideSlashEffect2); uppercutEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "SeamstressUppercut"); uppercutEffect.AddComponent(); ((Renderer)((Component)uppercutEffect.transform.GetChild(0)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); main2 = ((Component)uppercutEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main2)).startLifetimeMultiplier = 0.6f; ((MainModule)(ref main2)).startRotation3D = false; SeamstressMod.Modules.Content.CreateAndAddEffectDef(uppercutEffect); uppercutEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/MercSwordSlashWhirlwind.prefab").WaitForCompletion(), "SeamstressUppercut2"); uppercutEffect2.AddComponent(); main2 = ((Component)uppercutEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main2)).startLifetimeMultiplier = 0.6f; ((MainModule)(ref main2)).startRotation3D = false; SeamstressMod.Modules.Content.CreateAndAddEffectDef(uppercutEffect2); scissorsHitImpactEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/OmniImpactVFXSlashMerc.prefab").WaitForCompletion(), "ScissorImpact", false); scissorsHitImpactEffect.AddComponent(); ((Behaviour)scissorsHitImpactEffect.GetComponent()).enabled = false; Material val5 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/matOmniHitspark3Merc.mat").WaitForCompletion()); val5.SetColor("_TintColor", Color.red); ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(1)).gameObject.GetComponent()).material = val5; scissorsHitImpactEffect.transform.GetChild(2).localScale = Vector3.one * 1.5f; ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(2)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/matVoidSurvivorBlasterFireCorrupted.mat").WaitForCompletion()); val5 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSlashImpact.mat").WaitForCompletion()); ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(5)).gameObject.GetComponent()).material = val5; scissorsHitImpactEffect.transform.GetChild(4).localScale = Vector3.one * 3f; ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(4)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpDust.mat").WaitForCompletion()); ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(6).GetChild(0)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/DLC1/Common/Void/matOmniHitspark1Void.mat").WaitForCompletion()); ((Renderer)((Component)scissorsHitImpactEffect.transform.GetChild(6)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/DLC1/Common/Void/matOmniHitspark2Void.mat").WaitForCompletion()); scissorsHitImpactEffect.transform.GetChild(1).localScale = Vector3.one * 1.5f; ((Component)scissorsHitImpactEffect.transform.GetChild(1)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(2)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(3)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(4)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(5)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(6)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(6).GetChild(0)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect.transform.GetChild(6)).transform.localScale = new Vector3(1f, 1f, 3f); scissorsHitImpactEffect.transform.localScale = Vector3.one * 1.5f; SeamstressMod.Modules.Content.CreateAndAddEffectDef(scissorsHitImpactEffect); scissorsHitImpactEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/OmniImpactVFXSlashMerc.prefab").WaitForCompletion(), "ScissorImpact2", false); scissorsHitImpactEffect2.AddComponent(); ((Behaviour)scissorsHitImpactEffect2.GetComponent()).enabled = false; ((Renderer)((Component)scissorsHitImpactEffect2.transform.GetChild(1)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Merc/matOmniHitspark3Merc.mat").WaitForCompletion()); scissorsHitImpactEffect2.transform.GetChild(2).localScale = Vector3.one * 1.5f; scissorsHitImpactEffect2.transform.GetChild(4).localScale = Vector3.one * 3f; scissorsHitImpactEffect2.transform.GetChild(1).localScale = Vector3.one * 1.5f; ((Component)scissorsHitImpactEffect2.transform.GetChild(1)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(2)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(3)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(4)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(5)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(6)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(6).GetChild(0)).gameObject.SetActive(true); ((Component)scissorsHitImpactEffect2.transform.GetChild(6)).transform.localScale = new Vector3(1f, 1f, 3f); scissorsHitImpactEffect2.transform.localScale = Vector3.one * 1.5f; SeamstressMod.Modules.Content.CreateAndAddEffectDef(scissorsHitImpactEffect2); impDashEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressBlinkEffect.prefab").WaitForCompletion(), "ImpDash"); impDashEffect.AddComponent(); val5 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpSwipe.mat").WaitForCompletion()); ((Component)impDashEffect.transform.GetChild(0).GetChild(0)).gameObject.SetActive(false); ((Component)impDashEffect.transform.GetChild(0).GetChild(1)).gameObject.SetActive(false); ((Component)impDashEffect.transform.GetChild(0).GetChild(2)).gameObject.SetActive(false); ((Component)impDashEffect.transform.GetChild(0).GetChild(3)).gameObject.SetActive(false); ((Renderer)((Component)impDashEffect.transform.GetChild(0).GetChild(4)).gameObject.GetComponent()).material = val5; ((Renderer)((Component)impDashEffect.transform.GetChild(0).GetChild(5)).gameObject.GetComponent()).material = val5; SeamstressMod.Modules.Content.CreateAndAddEffectDef(impDashEffect); impDashEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Huntress/HuntressBlinkEffect.prefab").WaitForCompletion(), "ImpDash2"); impDashEffect2.AddComponent(); ((Component)impDashEffect2.transform.GetChild(0).GetChild(0)).gameObject.SetActive(false); ((Component)impDashEffect2.transform.GetChild(0).GetChild(1)).gameObject.SetActive(false); ((Component)impDashEffect2.transform.GetChild(0).GetChild(2)).gameObject.SetActive(false); ((Component)impDashEffect2.transform.GetChild(0).GetChild(3)).gameObject.SetActive(false); SeamstressMod.Modules.Content.CreateAndAddEffectDef(impDashEffect2); insatiableEndEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarSkillReplacements/LunarDetonatorConsume.prefab").WaitForCompletion(), "InsatiableEndEffect"); insatiableEndEffect.AddComponent(); MainModule main3 = ((Component)insatiableEndEffect.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main3)).startColor = MinMaxGradient.op_Implicit(Color.black); main3 = ((Component)insatiableEndEffect.transform.GetChild(1)).gameObject.GetComponent().main; ((MainModule)(ref main3)).startColor = MinMaxGradient.op_Implicit(Color.red); ((Renderer)((Component)insatiableEndEffect.transform.GetChild(2)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.red); ((Component)insatiableEndEffect.transform.GetChild(3)).gameObject.SetActive(false); ((Renderer)((Component)insatiableEndEffect.transform.GetChild(4)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.red); val5 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarSkillReplacements/matLunarNeedleImpactEffect.mat").WaitForCompletion()); val5.SetColor("_TintColor", Color.red); ((Renderer)((Component)insatiableEndEffect.transform.GetChild(5)).gameObject.GetComponent()).material = val5; ((Component)insatiableEndEffect.transform.GetChild(6)).gameObject.SetActive(false); SeamstressMod.Modules.Content.CreateAndAddEffectDef(insatiableEndEffect); insatiableEndEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarSkillReplacements/LunarDetonatorConsume.prefab").WaitForCompletion(), "InsatiableEndEffect2"); insatiableEndEffect2.AddComponent(); main3 = ((Component)insatiableEndEffect2.transform.GetChild(0)).gameObject.GetComponent().main; ((MainModule)(ref main3)).startColor = MinMaxGradient.op_Implicit(Color.black); main3 = ((Component)insatiableEndEffect2.transform.GetChild(1)).gameObject.GetComponent().main; ((MainModule)(ref main3)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((Renderer)((Component)insatiableEndEffect2.transform.GetChild(2)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); ((Component)insatiableEndEffect2.transform.GetChild(3)).gameObject.SetActive(false); ((Renderer)((Component)insatiableEndEffect2.transform.GetChild(4)).gameObject.GetComponent()).material.SetColor("_TintColor", Color.cyan); val5 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/LunarSkillReplacements/matLunarNeedleImpactEffect.mat").WaitForCompletion()); val5.SetColor("_TintColor", Color.cyan); ((Renderer)((Component)insatiableEndEffect2.transform.GetChild(5)).gameObject.GetComponent()).material = val5; ((Component)insatiableEndEffect2.transform.GetChild(6)).gameObject.SetActive(false); SeamstressMod.Modules.Content.CreateAndAddEffectDef(insatiableEndEffect2); genericImpactExplosionEffect = CreateImpactExplosionEffect("SeamstressScissorImpact", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matBloodGeneric.mat").WaitForCompletion(), Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpDecal.mat").WaitForCompletion(), blue: false, 2f); Material val6 = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpDecal.mat").WaitForCompletion()); val6.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); genericImpactExplosionEffect2 = CreateImpactExplosionEffect("SeamstressScissorImpact2", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matBloodGeneric.mat").WaitForCompletion(), val6, blue: true, 2f); bloodSplatterEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherSlamImpact.prefab").WaitForCompletion(), "Splat", true); bloodSplatterEffect.AddComponent(); ((Component)bloodSplatterEffect.transform.GetChild(0)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(1)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(2)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(3)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(4)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(5)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(6)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(7)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(8)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(9)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(10)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.Find("Decal")).GetComponent().Material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpDecal.mat").WaitForCompletion()); ((Component)bloodSplatterEffect.transform.Find("Decal")).GetComponent().timeMax = 10f; ((Component)bloodSplatterEffect.transform.GetChild(12)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(13)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(14)).gameObject.SetActive(false); ((Component)bloodSplatterEffect.transform.GetChild(15)).gameObject.SetActive(false); bloodSplatterEffect.transform.localScale = Vector3.one; SeamstressMod.Modules.Content.CreateAndAddEffectDef(bloodSplatterEffect); bloodSplatterEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherSlamImpact.prefab").WaitForCompletion(), "Splat", true); bloodSplatterEffect2.AddComponent(); ((Component)bloodSplatterEffect2.transform.GetChild(0)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(1)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(2)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(3)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(4)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(5)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(6)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(7)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(8)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(9)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(10)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.Find("Decal")).GetComponent().Material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/CrippleWard/matLunarWardDecal.mat").WaitForCompletion()); ((Component)bloodSplatterEffect2.transform.Find("Decal")).GetComponent().timeMax = 10f; ((Component)bloodSplatterEffect2.transform.GetChild(12)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(13)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(14)).gameObject.SetActive(false); ((Component)bloodSplatterEffect2.transform.GetChild(15)).gameObject.SetActive(false); bloodSplatterEffect2.transform.localScale = Vector3.one; SeamstressMod.Modules.Content.CreateAndAddEffectDef(bloodSplatterEffect2); slamEffect = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossGroundSlam.prefab").WaitForCompletion(), "SeamstressSlamEffect"); slamEffect.AddComponent(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(slamEffect); slamEffect2 = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpBossGroundSlam.prefab").WaitForCompletion(), "SeamstressSlamEffect2"); slamEffect2.AddComponent(); ((Renderer)((Component)slamEffect2.transform.Find("Particles").Find("ClawMesh")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); MainModule main4 = ((Component)slamEffect2.transform.Find("Particles").Find("Dust, Directional")).gameObject.GetComponent().main; ((MainModule)(ref main4)).startColor = MinMaxGradient.op_Implicit(Color.cyan); main4 = ((Component)slamEffect2.transform.Find("Particles").Find("Dust, Billboard")).gameObject.GetComponent().main; ((MainModule)(ref main4)).startColor = MinMaxGradient.op_Implicit(Color.cyan); ((Renderer)((Component)slamEffect2.transform.Find("Particles").Find("Dash")).gameObject.GetComponent()).material = mercMat; ((Renderer)((Component)slamEffect2.transform.Find("Particles").Find("DashRings")).gameObject.GetComponent()).material = mercMat; ((Renderer)((Component)slamEffect2.transform.Find("Particles").Find("Sphere")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLunarElectric.png").WaitForCompletion()); Object.DestroyImmediate((Object)(object)((Component)slamEffect2.transform.Find("PP")).gameObject); Object.DestroyImmediate((Object)(object)((Component)slamEffect2.transform.Find("Particles").Find("Dash, Bright")).gameObject); Object.DestroyImmediate((Object)(object)((Component)slamEffect2.transform.Find("Particles").Find("Point light")).gameObject); Object.DestroyImmediate((Object)(object)((Component)slamEffect2.transform.Find("Particles").Find("Flash, White")).gameObject); Object.DestroyImmediate((Object)(object)((Component)slamEffect2.transform.Find("Particles").Find("Flash, Red")).gameObject); SeamstressMod.Modules.Content.CreateAndAddEffectDef(slamEffect2); GameObject val7 = LegacyResourcesAPI.Load("Prefabs/Projectiles/ImpVoidspikeProjectile"); TeamAreaIndicator component = PrefabAPI.InstantiateClone(((Component)val7.transform.Find("ImpactEffect/TeamAreaIndicator, FullSphere")).gameObject, "SeamstressTeamIndicator", false).GetComponent(); component.teamMaterialPairs[1].sharedMaterial = new Material(component.teamMaterialPairs[1].sharedMaterial); component.teamMaterialPairs[1].sharedMaterial.SetColor("_TintColor", Color.red); seamstressTeamAreaIndicator = component; GameObject val8 = LegacyResourcesAPI.Load("Prefabs/Projectiles/ImpVoidspikeProjectile"); TeamAreaIndicator component2 = PrefabAPI.InstantiateClone(((Component)val8.transform.Find("ImpactEffect/TeamAreaIndicator, FullSphere")).gameObject, "SeamstressTeamIndicator", false).GetComponent(); component2.teamMaterialPairs[1].sharedMaterial = new Material(component2.teamMaterialPairs[1].sharedMaterial); component2.teamMaterialPairs[1].sharedMaterial.SetColor("_TintColor", Color.cyan); seamstressTeamAreaIndicator2 = component2; GameObject val9 = new GameObject(); trailEffect = PrefabAPI.InstantiateClone(val9, "ScissorTrail", false); TrailRenderer val10 = trailEffect.AddComponent(); val10.startWidth = 1f; val10.endWidth = 0f; val10.time = 0.5f; val10.emitting = true; val10.numCornerVertices = 0; val10.numCapVertices = 0; ((Renderer)val10).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matSmokeTrail.mat").WaitForCompletion()); ((Renderer)val10).material.SetTexture("_RemapTex", mainAssetBundle.LoadAsset("texRampSeamstressTrail")); val10.alignment = (LineAlignment)1; GameObject val11 = new GameObject(); trailEffectHands = PrefabAPI.InstantiateClone(val11, "SeamstressTrail", false); TrailRenderer val12 = trailEffectHands.AddComponent(); val12.startWidth = 0.3f; val12.endWidth = 0f; val12.time = 0.5f; val12.emitting = true; val12.numCornerVertices = 0; val12.numCapVertices = 0; ((Renderer)val12).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matSmokeTrail.mat").WaitForCompletion()); ((Renderer)val12).material.SetTexture("_RemapTex", mainAssetBundle.LoadAsset("texRampSeamstressTrail")); GameObject val13 = new GameObject(); trailEffect2 = PrefabAPI.InstantiateClone(val13, "ScissorTrail2", false); TrailRenderer val14 = trailEffect2.AddComponent(); val14.startWidth = 1f; val14.endWidth = 0f; val14.time = 0.5f; val14.emitting = true; val14.numCornerVertices = 0; val14.numCapVertices = 0; ((Renderer)val14).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matSmokeTrail.mat").WaitForCompletion()); ((Renderer)val14).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); val14.alignment = (LineAlignment)1; GameObject val15 = new GameObject(); trailEffectHands2 = PrefabAPI.InstantiateClone(val15, "SeamstressTrail2", false); TrailRenderer val16 = trailEffectHands2.AddComponent(); val16.startWidth = 0.3f; val16.endWidth = 0f; val16.time = 0.5f; val16.emitting = true; val16.numCornerVertices = 0; val16.numCapVertices = 0; ((Renderer)val16).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matSmokeTrail.mat").WaitForCompletion()); ((Renderer)val16).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); } private static void CreateProjectiles() { CreateNeedle(); CreateNeedle2(); scissorRPrefab = CreateScissor("ScissorRightGhost", "ScissorR"); scissorLPrefab = CreateScissor("ScissorLeftGhost", "ScissorL"); scissorRPrefab2 = CreateScissorBlue("ScissorRightGhost", "ScissorR"); scissorLPrefab2 = CreateScissorBlue("ScissorLeftGhost", "ScissorL"); } private static void CreateNeedle() { //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_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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: 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_0221: Unknown result type (might be due to invalid IL or missing references) //IL_026a: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: 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) needlePrefab = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Commando/FMJRamping.prefab").WaitForCompletion(), "Needle"); ProjectileSimple component = needlePrefab.GetComponent(); component.desiredForwardSpeed = 125f; component.lifetime = 3f; component.updateAfterFiring = true; ProjectileDamage component2 = needlePrefab.GetComponent(); component2.damageType = DamageTypeCombo.op_Implicit((DamageType)0); DamageAPI.AddModdedDamageType(ref component2.damageType, DamageTypes.SeamstressLifesteal); needlePrefab.AddComponent(); ProjectileSteerTowardTarget val = needlePrefab.AddComponent(); val.yAxisOnly = false; val.rotationSpeed = 700f; ProjectileOverlapAttack component3 = needlePrefab.GetComponent(); component3.impactEffect = scissorsHitImpactEffect; component3.resetInterval = 0.5f; component3.overlapProcCoefficient = SeamstressConfig.needleProcCoefficient.Value; ProjectileDirectionalTargetFinder val2 = needlePrefab.AddComponent(); val2.lookRange = 35f; val2.lookCone = 110f; val2.targetSearchInterval = 0.2f; val2.onlySearchIfNoTarget = false; val2.allowTargetLoss = true; val2.testLoS = true; val2.ignoreAir = false; val2.flierAltitudeTolerance = float.PositiveInfinity; ProjectileController component4 = needlePrefab.GetComponent(); component4.procCoefficient = 1f; GameObject val3 = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/MageIceBombProjectile").GetComponent().ghostPrefab, "NeedleGhost", false); ((Component)val3.transform.GetChild(0)).gameObject.SetActive(false); ((Component)val3.transform.GetChild(1)).gameObject.SetActive(false); val3.transform.GetChild(2).localScale = new Vector3(0.2f, 0.2f, 1.66f); ((Component)val3.transform.GetChild(2)).gameObject.GetComponent().mesh = ((Component)Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpVoidspikeProjectileGhost.prefab").WaitForCompletion().transform.GetChild(0)).GetComponent().mesh; ((Renderer)((Component)val3.transform.GetChild(2)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpClaw.mat").WaitForCompletion()); ((Component)val3.transform.GetChild(3)).gameObject.SetActive(false); val3.transform.GetChild(4).localScale = new Vector3(0.2f, 0.2f, 0.2f); ((Renderer)((Component)val3.transform.GetChild(4).GetChild(0)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpPortalEffectEdge.mat").WaitForCompletion()); ((Renderer)((Component)val3.transform.GetChild(4).GetChild(1)).gameObject.GetComponent()).material = Object.Instantiate(Addressables.LoadAssetAsync((object)"RoR2/Base/Imp/matImpPortalEffectEdge.mat").WaitForCompletion()); ((Component)val3.transform.GetChild(4).GetChild(3)).gameObject.SetActive(false); val3 = PrefabAPI.InstantiateClone(val3, "NeedleGhost"); Object.Destroy((Object)(object)val3.GetComponent()); if (Object.op_Implicit((Object)(object)val3)) { component4.ghostPrefab = val3; } if (!Object.op_Implicit((Object)(object)component4.ghostPrefab.GetComponent())) { component4.ghostPrefab.AddComponent(); } if (!Object.op_Implicit((Object)(object)component4.ghostPrefab.GetComponent())) { component4.ghostPrefab.AddComponent(); } component4.startSound = ""; component4.ghostPrefab.GetComponent().DoNotPool = true; SeamstressMod.Modules.Content.AddProjectilePrefab(needlePrefab); } private static void CreateNeedle2() { //IL_008c: 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) needlePrefab2 = PrefabAPI.InstantiateClone(needlePrefab, "Needle2"); ProjectileController component = needlePrefab2.GetComponent(); GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/MageIceBombProjectile").GetComponent().ghostPrefab, "NeedleGhost2", false); ((Component)val.transform.GetChild(0)).gameObject.SetActive(false); ((Component)val.transform.GetChild(1)).gameObject.SetActive(false); val.transform.GetChild(2).localScale = new Vector3(0.2f, 0.2f, 1.66f); ((Component)val.transform.GetChild(3)).gameObject.SetActive(false); val.transform.GetChild(4).localScale = new Vector3(0.2f, 0.2f, 0.2f); ((Component)val.transform.GetChild(4).GetChild(3)).gameObject.SetActive(false); val = PrefabAPI.InstantiateClone(val, "NeedleGhost2"); Object.Destroy((Object)(object)val.GetComponent()); if (Object.op_Implicit((Object)(object)val)) { component.ghostPrefab = val; } if (!Object.op_Implicit((Object)(object)component.ghostPrefab.GetComponent())) { component.ghostPrefab.AddComponent(); } if (!Object.op_Implicit((Object)(object)component.ghostPrefab.GetComponent())) { component.ghostPrefab.AddComponent(); } component.startSound = ""; component.ghostPrefab.GetComponent().DoNotPool = true; SeamstressMod.Modules.Content.AddProjectilePrefab(needlePrefab2); } private static GameObject CreateScissor(string modelName, string name) { //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_00b9: 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_0128: 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_0185: 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_0369: Unknown result type (might be due to invalid IL or missing references) //IL_0370: Expected O, but got Unknown //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_03b2: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04b4: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpVoidspikeProjectile.prefab").WaitForCompletion(), name, true); Rigidbody component = val.GetComponent(); component.useGravity = true; component.freezeRotation = true; SphereCollider component2 = val.GetComponent(); ((Collider)component2).material.bounciness = 0f; ((Collider)component2).material.staticFriction = 10000f; ((Collider)component2).material.dynamicFriction = 10000f; component2.radius = 1f; ((Collider)component2).enabled = false; ((Component)val.transform.Find("ImpactEffect/TeamAreaIndicator, FullSphere")).gameObject.SetActive(false); TeamAreaIndicator val2 = Object.Instantiate(seamstressTeamAreaIndicator, val.transform); ((Component)val2).gameObject.transform.localScale = Vector3.one * 6f; val2.teamFilter = val.GetComponent(); ((Component)val2).gameObject.SetActive(false); Object.Instantiate(trailEffect, val.transform); ProjectileImpactExplosion component3 = val.GetComponent(); ((ProjectileExplosion)component3).blastDamageCoefficient = SeamstressConfig.scissorPickupDamageCoefficient.Value; ((ProjectileExplosion)component3).blastProcCoefficient = 0.7f; component3.destroyOnEnemy = false; ((ProjectileExplosion)component3).blastAttackerFiltering = (AttackerFiltering)2; component3.lifetime = 14f; component3.lifetimeAfterImpact = 14f; component3.impactEffect = pickupScissorEffect; ((ProjectileExplosion)component3).blastRadius = ((ProjectileExplosion)component3).blastRadius * 2f; ProjectileDamage component4 = val.GetComponent(); component4.damageType = DamageTypeCombo.op_Implicit((DamageType)131104); component4.damageType.damageSource = (DamageSource)8; DamageAPI.AddModdedDamageType(ref component4.damageType, DamageTypes.SeamstressLifesteal); ProjectileSimple component5 = val.GetComponent(); component5.desiredForwardSpeed = 120f; component5.updateAfterFiring = true; PickupFilterComponent pickupFilterComponent = ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.AddComponent(); pickupFilterComponent.myTeamFilter = val.GetComponent(); pickupFilterComponent.triggerEvents = ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent().triggerEvents; Object.Destroy((Object)(object)((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent()); ScissorImpact scissorImpact = val.AddComponent(); scissorImpact.stickSoundString = "sfx_seamstress_scissor_land"; scissorImpact.stickParticleSystem = val.GetComponent().stickParticleSystem; scissorImpact.ignoreCharacters = false; scissorImpact.ignoreWorld = false; scissorImpact.stickEvent = val.GetComponent().stickEvent; scissorImpact.alignNormals = true; scissorImpact.impactEffect = blinkEffect; scissorImpact.explosionEffect = genericImpactExplosionEffect; Object.Destroy((Object)(object)val.GetComponent()); ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent().radius = 6f; ProjectileSteerTowardTarget val3 = val.AddComponent(); val3.yAxisOnly = false; val3.rotationSpeed = 700f; ((Behaviour)val3).enabled = true; ProjectileDirectionalTargetFinder val4 = val.AddComponent(); val4.lookRange = 0f; val4.lookCone = 0f; val4.targetSearchInterval = 0.2f; val4.onlySearchIfNoTarget = true; val4.allowTargetLoss = false; val4.testLoS = true; val4.ignoreAir = false; val4.flierAltitudeTolerance = float.PositiveInfinity; ((Behaviour)val4).enabled = true; float num = ((modelName == "ScissorRightGhost") ? 3.1f : (-3.1f)); GameObject val5 = new GameObject(); ((Object)val5).name = modelName + "Transform"; val5.transform.localScale = Vector3.one * 2f; val5.transform.localPosition = new Vector3(0f, num, -1f); val5.transform.rotation = Quaternion.AngleAxis(270f, Vector3.forward); val5.transform.SetParent(val.transform, false); ProjectileController component6 = val.GetComponent(); component6.procCoefficient = 1f; if ((Object)(object)mainAssetBundle.LoadAsset(modelName) != (Object)null) { component6.ghostPrefab = mainAssetBundle.CreateProjectileGhostPrefab(modelName); } component6.ghostTransformAnchor = val.transform.Find(modelName + "Transform"); if (!Object.op_Implicit((Object)(object)component6.ghostPrefab.GetComponent())) { component6.ghostPrefab.AddComponent(); } if (!Object.op_Implicit((Object)(object)component6.ghostPrefab.GetComponent())) { component6.ghostPrefab.AddComponent(); } component6.ghostPrefab.GetComponent().vfxPriority = (VFXPriority)2; component6.ghostPrefab.GetComponent().vfxIntensity = (VFXIntensity)0; component6.ghostPrefab.GetComponent().DoNotPool = true; SeamstressMod.Modules.Content.AddProjectilePrefab(val); return val; } private static GameObject CreateScissorBlue(string modelName, string name) { //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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_016d: 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_01de: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0426: Expected O, but got Unknown //IL_0440: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_0468: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0558: Unknown result type (might be due to invalid IL or missing references) //IL_056a: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/ImpBoss/ImpVoidspikeProjectile.prefab").WaitForCompletion(), name, true); ((Renderer)((Component)val.transform.Find("ImpactEffect").Find("LongLifeNoiseTrails")).gameObject.GetComponent()).material.SetTexture("_RemapTex", Addressables.LoadAssetAsync((object)"RoR2/Base/Common/ColorRamps/texRampLightning.png").WaitForCompletion()); ((Renderer)((Component)val.transform.Find("ImpactEffect").Find("Dash")).gameObject.GetComponent()).material = mercMat; MainModule main = ((Component)val.transform.Find("ImpactEffect").Find("Flash, Red")).gameObject.GetComponent().main; ((MainModule)(ref main)).startColor = MinMaxGradient.op_Implicit(Color.cyan); Rigidbody component = val.GetComponent(); component.useGravity = true; component.freezeRotation = true; SphereCollider component2 = val.GetComponent(); ((Collider)component2).material.bounciness = 0f; ((Collider)component2).material.staticFriction = 10000f; ((Collider)component2).material.dynamicFriction = 10000f; component2.radius = 1f; ((Collider)component2).enabled = false; ((Component)val.transform.Find("ImpactEffect/TeamAreaIndicator, FullSphere")).gameObject.SetActive(false); TeamAreaIndicator val2 = Object.Instantiate(seamstressTeamAreaIndicator2, val.transform); ((Component)val2).gameObject.transform.localScale = Vector3.one * 6f; val2.teamFilter = val.GetComponent(); ((Component)val2).gameObject.SetActive(false); Object.Instantiate(trailEffect2, val.transform); ProjectileImpactExplosion component3 = val.GetComponent(); ((ProjectileExplosion)component3).blastDamageCoefficient = SeamstressConfig.scissorPickupDamageCoefficient.Value; ((ProjectileExplosion)component3).blastProcCoefficient = 0.7f; component3.destroyOnEnemy = false; ((ProjectileExplosion)component3).blastAttackerFiltering = (AttackerFiltering)2; component3.lifetime = 14f; component3.lifetimeAfterImpact = 14f; component3.impactEffect = pickupScissorEffect2; ((ProjectileExplosion)component3).blastRadius = ((ProjectileExplosion)component3).blastRadius * 2f; ProjectileDamage component4 = val.GetComponent(); component4.damageType = DamageTypeCombo.op_Implicit((DamageType)131104); component4.damageType.damageSource = (DamageSource)8; DamageAPI.AddModdedDamageType(ref component4.damageType, DamageTypes.SeamstressLifesteal); ProjectileSimple component5 = val.GetComponent(); component5.desiredForwardSpeed = 120f; component5.updateAfterFiring = true; PickupFilterComponent pickupFilterComponent = ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.AddComponent(); pickupFilterComponent.myTeamFilter = val.GetComponent(); pickupFilterComponent.triggerEvents = ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent().triggerEvents; Object.Destroy((Object)(object)((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent()); ScissorImpact scissorImpact = val.AddComponent(); scissorImpact.stickSoundString = "sfx_seamstress_scissor_land"; scissorImpact.stickParticleSystem = val.GetComponent().stickParticleSystem; scissorImpact.ignoreCharacters = false; scissorImpact.ignoreWorld = false; scissorImpact.stickEvent = val.GetComponent().stickEvent; scissorImpact.alignNormals = true; scissorImpact.impactEffect = blinkEffect2; scissorImpact.explosionEffect = genericImpactExplosionEffect2; Object.Destroy((Object)(object)val.GetComponent()); ((Component)val.transform.GetChild(0).GetChild(5)).gameObject.GetComponent().radius = 6f; ProjectileSteerTowardTarget val3 = val.AddComponent(); val3.yAxisOnly = false; val3.rotationSpeed = 2000f; ((Behaviour)val3).enabled = true; ProjectileDirectionalTargetFinder val4 = val.AddComponent(); val4.lookRange = 0f; val4.lookCone = 0f; val4.targetSearchInterval = 0.2f; val4.onlySearchIfNoTarget = true; val4.allowTargetLoss = false; val4.testLoS = true; val4.ignoreAir = false; val4.flierAltitudeTolerance = float.PositiveInfinity; ((Behaviour)val4).enabled = true; float num = ((modelName == "ScissorRightGhost") ? 3.1f : (-3.1f)); GameObject val5 = new GameObject(); ((Object)val5).name = modelName + "Transform"; val5.transform.localScale = Vector3.one * 2f; val5.transform.localPosition = new Vector3(0f, num, -1f); val5.transform.rotation = Quaternion.AngleAxis(270f, Vector3.forward); val5.transform.SetParent(val.transform, false); ProjectileController component6 = val.GetComponent(); component6.procCoefficient = 1f; if ((Object)(object)mainAssetBundle.LoadAsset(modelName) != (Object)null) { component6.ghostPrefab = mainAssetBundle.CreateProjectileGhostPrefab(modelName); } component6.ghostTransformAnchor = val.transform.Find(modelName + "Transform"); if (!Object.op_Implicit((Object)(object)component6.ghostPrefab.GetComponent())) { component6.ghostPrefab.AddComponent(); } if (!Object.op_Implicit((Object)(object)component6.ghostPrefab.GetComponent())) { component6.ghostPrefab.AddComponent(); } component6.ghostPrefab.GetComponent().vfxPriority = (VFXPriority)2; component6.ghostPrefab.GetComponent().vfxIntensity = (VFXIntensity)0; component6.ghostPrefab.GetComponent().DoNotPool = true; SeamstressMod.Modules.Content.AddProjectilePrefab(val); return val; } private static void CreateSounds() { LoadSoundbank(); scissorsHitSoundEvent = SeamstressMod.Modules.Content.CreateAndAddNetworkSoundEventDef("Play_merc_sword_impact"); parrySuccessSoundEvent = SeamstressMod.Modules.Content.CreateAndAddNetworkSoundEventDef("Play_voidman_m2_explode"); } internal static void LoadSoundbank() { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SeamstressMod.seam_bank.bnk"); byte[] array = new byte[stream.Length]; stream.Read(array, 0, array.Length); SoundBanks.Add(array); } private static GameObject CreateImpactExplosionEffect(string effectName, Material bloodMat, Material colorMat, bool blue, float scale = 1f) { //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_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_014b: 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_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_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_0288: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) GameObject val = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Brother/BrotherSlamImpact.prefab").WaitForCompletion(), effectName, true); ((Component)val.transform.Find("Spikes, Small")).gameObject.SetActive(false); ((Component)val.transform.Find("PP")).gameObject.SetActive(false); ((Component)val.transform.Find("Point light")).gameObject.SetActive(false); ((Renderer)((Component)val.transform.Find("Flash Lines")).GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/VFX/matOpaqueDustLargeDirectional.mat").WaitForCompletion(); if (blue) { ((Renderer)((Component)val.transform.Find("Flash Lines")).GetComponent()).material.SetColor("_TintColor", Color.cyan); } ((Renderer)((Component)val.transform.GetChild(3)).GetComponent()).material = bloodMat; ((Renderer)((Component)val.transform.Find("Flash Lines, Fire")).GetComponent()).material = bloodMat; ((Renderer)((Component)val.transform.GetChild(6)).GetComponent()).material = bloodMat; ((Renderer)((Component)val.transform.Find("Fire")).GetComponent()).material = bloodMat; MainModule main = ((Component)val.transform.Find("Fire")).GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 0.5f; main = ((Component)val.transform.Find("Flash Lines, Fire")).GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 0.3f; main = ((Component)val.transform.GetChild(6)).GetComponent().main; ((MainModule)(ref main)).startLifetimeMultiplier = 0.4f; ((Renderer)((Component)val.transform.Find("Physics")).GetComponent()).material = Addressables.LoadAssetAsync((object)"RoR2/Base/MagmaWorm/matFracturedGround.mat").WaitForCompletion(); ((Component)val.transform.Find("Decal")).GetComponent().Material = colorMat; ((Component)val.transform.Find("Decal")).GetComponent().timeMax = 10f; ((Component)val.transform.Find("FoamSplash")).gameObject.SetActive(false); ((Component)val.transform.Find("FoamBilllboard")).gameObject.SetActive(false); ((Component)val.transform.Find("Dust")).gameObject.SetActive(false); ((Component)val.transform.Find("Dust, Directional")).gameObject.SetActive(false); val.transform.localScale = Vector3.one * scale; val.AddComponent(); ParticleSystemColorFromEffectData val2 = val.AddComponent(); val2.particleSystems = (ParticleSystem[])(object)new ParticleSystem[4] { ((Component)val.transform.Find("Fire")).GetComponent(), ((Component)val.transform.Find("Flash Lines, Fire")).GetComponent(), ((Component)val.transform.GetChild(6)).GetComponent(), ((Component)val.transform.GetChild(3)).GetComponent() }; if (blue) { ((Component)val.transform.Find("Fire")).gameObject.SetActive(false); ((Component)val.transform.Find("Flash Lines, Fire")).gameObject.SetActive(false); ((Component)val.transform.GetChild(6)).gameObject.SetActive(false); ((Component)val.transform.GetChild(3)).gameObject.SetActive(false); } val2.effectComponent = val.GetComponent(); SeamstressMod.Modules.Content.CreateAndAddEffectDef(val); return val; } public static Material CreateMaterial(string materialName, float emission, Color emissionColor, float normalStrength) { //IL_0078: 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) if (!Object.op_Implicit((Object)(object)commandoMat)) { commandoMat = Resources.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().baseRendererInfos[0].defaultMaterial; } Material val = Object.Instantiate(commandoMat); Material val2 = mainAssetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val2)) { return commandoMat; } ((Object)val).name = materialName; val.SetColor("_Color", val2.GetColor("_Color")); val.SetTexture("_MainTex", val2.GetTexture("_MainTex")); val.SetColor("_EmColor", emissionColor); val.SetFloat("_EmPower", emission); val.SetTexture("_EmTex", val2.GetTexture("_EmissionMap")); val.SetFloat("_NormalStrength", normalStrength); return val; } public static Material CreateMaterial(string materialName) { return CreateMaterial(materialName, 0f); } public static Material CreateMaterial(string materialName, float emission) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(materialName, emission, Color.black); } public static Material CreateMaterial(string materialName, float emission, Color emissionColor) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) return CreateMaterial(materialName, emission, emissionColor, 0f); } } public static class SeamstressBuffs { public static BuffDef SeamstressInsatiableBuff; public static BuffDef SeamstressBleedBuff; public static BuffDef ScissorRightBuff; public static BuffDef ScissorLeftBuff; public static BuffDef Needles; public static BuffDef ParryStart; public static BuffDef ParrySuccess; public static BuffDef Manipulated; public static BuffDef ManipulatedCd; public static void Init(AssetBundle assetBundle) { //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_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_016e: 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_018f: 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) SeamstressInsatiableBuff = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressInsatiableBuff", Addressables.LoadAssetAsync((object)"RoR2/Base/Bandit2/texBuffSuperBleedingIcon.tif").WaitForCompletion(), Color.red, canStack: false, isDebuff: false, isCooldown: false); SeamstressBleedBuff = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressCutBleed", assetBundle.LoadAsset("texBuffSuperBleedIcon"), new Color(31f / 51f, 11f / 51f, 11f / 51f), canStack: true, isDebuff: false, isCooldown: false); ScissorRightBuff = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressScissorRightBuff", Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/texBuffVoidSurvivorCorruptionIcon.tif").WaitForCompletion(), new Color(31f / 51f, 11f / 51f, 11f / 51f), canStack: true, isDebuff: false, isCooldown: false); ScissorLeftBuff = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressScissorLeftBuff", Addressables.LoadAssetAsync((object)"RoR2/DLC1/VoidSurvivor/texBuffVoidSurvivorCorruptionIcon.tif").WaitForCompletion(), new Color(31f / 51f, 11f / 51f, 11f / 51f), canStack: true, isDebuff: false, isCooldown: false); Needles = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressNeedlesBuff", assetBundle.LoadAsset("texNeedleBuffIcon"), Color.white, canStack: true, isDebuff: false, isCooldown: false); ParryStart = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressParryBuff", LegacyResourcesAPI.Load("BuffDefs/HiddenInvincibility").iconSprite, new Color(31f / 51f, 11f / 51f, 11f / 51f), canStack: false, isDebuff: false, isCooldown: false); ParrySuccess = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressParryEndBuff", LegacyResourcesAPI.Load("BuffDefs/HiddenInvincibility").iconSprite, Color.red, canStack: false, isDebuff: false, isCooldown: false); Manipulated = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressManipulated", Addressables.LoadAssetAsync((object)"RoR2/Base/EliteLunar/texBuffAffixLunar.tif").WaitForCompletion(), new Color(31f / 51f, 11f / 51f, 11f / 51f), canStack: false, isDebuff: false, isCooldown: false); ManipulatedCd = SeamstressMod.Modules.Content.CreateAndAddBuff("SeamstressManipulatedCd", Addressables.LoadAssetAsync((object)"RoR2/Base/EliteLunar/texBuffAffixLunar.tif").WaitForCompletion(), Color.gray, canStack: false, isDebuff: false, isCooldown: true); } } public static class SeamstressConfig { public static ConfigEntry heavyEnemy; public static ConfigEntry forceUnlockCharacter; public static ConfigEntry forceUnlockRaven; public static ConfigEntry maxHealth; public static ConfigEntry healthRegen; public static ConfigEntry armor; public static ConfigEntry shield; public static ConfigEntry jumpCount; public static ConfigEntry damage; public static ConfigEntry attackSpeed; public static ConfigEntry crit; public static ConfigEntry moveSpeed; public static ConfigEntry acceleration; public static ConfigEntry jumpPower; public static ConfigEntry autoCalculateLevelStats; public static ConfigEntry healthGrowth; public static ConfigEntry regenGrowth; public static ConfigEntry armorGrowth; public static ConfigEntry shieldGrowth; public static ConfigEntry damageGrowth; public static ConfigEntry attackSpeedGrowth; public static ConfigEntry critGrowth; public static ConfigEntry moveSpeedGrowth; public static ConfigEntry jumpPowerGrowth; public static ConfigEntry basePickupCooldown; public static ConfigEntry trimDamageCoefficient; public static ConfigEntry trimThirdDamageCoefficient; public static ConfigEntry flurryDamageCoefficient; public static ConfigEntry scissorSlashDamageCoefficient; public static ConfigEntry scissorPickupDamageCoefficient; public static ConfigEntry blinkDamageCoefficient; public static ConfigEntry bleedDuration; public static ConfigEntry blinkCooldown; public static ConfigEntry healConversion; public static ConfigEntry maxNeedleAmount; public static ConfigEntry insatiableDuration; public static ConfigEntry passiveScaling; public static ConfigEntry passiveLifeSteal; public static ConfigEntry parryDamageCoefficient; public static ConfigEntry needleDamageCoefficient; public static ConfigEntry clipDamageCoefficient; public static ConfigEntry needleProcCoefficient; public static ConfigEntry parryWindow; public static ConfigEntry scissorDamageCoefficient; public static ConfigEntry telekinesisDamageCoefficient; public static ConfigEntry telekinesisCooldown; public static ConfigEntry explodeMinDamageCoefficient; public static ConfigEntry explodeMaxDamageCoefficient; public static void Init() { string section = "Stats - 01"; string section2 = "QOL - 02"; damage = Config.BindAndOptions(section, "Change Base Damage Value", 10f); maxHealth = Config.BindAndOptions(section, "Change Max Health Value", 160f); healthRegen = Config.BindAndOptions(section, "Change Health Regen Value", 1f); armor = Config.BindAndOptions(section, "Change Armor Value", 0f); shield = Config.BindAndOptions(section, "Change Shield Value", 0f); jumpCount = Config.BindAndOptions(section, "Change Jump Count", 1); attackSpeed = Config.BindAndOptions(section, "Change Attack Speed Value", 1f); crit = Config.BindAndOptions(section, "Change Crit Value", 1f); moveSpeed = Config.BindAndOptions(section, "Change Move Speed Value", 7f); acceleration = Config.BindAndOptions(section, "Change Acceleration Value", 80f); jumpPower = Config.BindAndOptions(section, "Change Jump Power Value", 15f); autoCalculateLevelStats = Config.BindAndOptions(section, "Auto Calculate Level Stats", defaultValue: false); healthGrowth = Config.BindAndOptions(section, "Change Health Growth Value", 0.3f); regenGrowth = Config.BindAndOptions(section, "Change Regen Growth Value", 0.2f); armorGrowth = Config.BindAndOptions(section, "Change Armor Growth Value", 0f); shieldGrowth = Config.BindAndOptions(section, "Change Shield Growth Value", 0f); damageGrowth = Config.BindAndOptions(section, "Change Damage Growth Value", 0f); attackSpeedGrowth = Config.BindAndOptions(section, "Change Attack Speed Growth Value", 0f); critGrowth = Config.BindAndOptions(section, "Change Crit Growth Value", 0f); moveSpeedGrowth = Config.BindAndOptions(section, "Change Move Speed Growth Value", 0f); jumpPowerGrowth = Config.BindAndOptions(section, "Change Jump Power Growth Value", 0f); basePickupCooldown = Config.BindAndOptions(section, "Change Base Scissor Pickup Cooldown Value", 1.75f); trimDamageCoefficient = Config.BindAndOptions(section, "Change Trim Damage Coefficient", 1.2f); trimThirdDamageCoefficient = Config.BindAndOptions(section, "Change Trim Third Damage Coefficient", 1.5f); flurryDamageCoefficient = Config.BindAndOptions(section, "Change Flurry Damage Coefficient", 1.4f); scissorSlashDamageCoefficient = Config.BindAndOptions(section, "Change Scissor Slash Damage Coefficient", 2f); scissorPickupDamageCoefficient = Config.BindAndOptions(section, "Change Scissor Pickup Damage Coefficient", 2f); blinkDamageCoefficient = Config.BindAndOptions(section, "Change Blink Damage Coefficient", 2.5f); bleedDuration = Config.BindAndOptions(section, "Change Bleed Duration", 2f); blinkCooldown = Config.BindAndOptions(section, "Change Blink Cooldown", 0.4f); healConversion = Config.BindAndOptionsSlider(section, "Change Heal Conversion", 0.001f, "Changes the amount of healing converted to barrier during Insatiable. (0.001 == 99.999% of healing is converted)", 0.001f); maxNeedleAmount = Config.BindAndOptions(section, "Change Max Needle Amount", 5); insatiableDuration = Config.BindAndOptions(section, "Change Insatiable Duration", 7f); passiveScaling = Config.BindAndOptions(section, "Change Passive Scaling", 0.05f, "0.05 extra base damage per 1 missing health. EX: 0.05 * 200 missing health = 8 extra base damage."); passiveLifeSteal = Config.BindAndOptions(section, "Change Passive Lifesteal Scaling", 0.1f, "0.10 == gain 0 - 10% of your missing health back on hit."); parryDamageCoefficient = Config.BindAndOptions(section, "Change Parry Damage Coefficient", 4f); needleDamageCoefficient = Config.BindAndOptions(section, "Change Needle Damage Coefficient", 0.4f); clipDamageCoefficient = Config.BindAndOptions(section, "Change Clip Damage Coefficient", 0.7f); needleProcCoefficient = Config.BindAndOptions(section, "Change Needle Proc Coefficient", 0.7f); parryWindow = Config.BindAndOptions(section, "Change Parry Window Duration", 1f); scissorDamageCoefficient = Config.BindAndOptions(section, "Change Scissor Damage Coefficient", 4f); telekinesisDamageCoefficient = Config.BindAndOptions(section, "Change Telekinesis Damage Coefficient", 2f); telekinesisCooldown = Config.BindAndOptions(section, "Change Telekinesis Cooldown", 6f); explodeMinDamageCoefficient = Config.BindAndOptions(section, "Change Explode Min Damage Coefficient", 3f); explodeMaxDamageCoefficient = Config.BindAndOptions(section, "Change Explode Max Damage Coefficient", 12f); heavyEnemy = Config.BindAndOptions(section2, "Pickup Big Enemies", defaultValue: false, "Allows you to pickup bigger enemies for fun."); forceUnlockCharacter = Config.BindAndOptions(section2, "Force Unlock Seamstress", defaultValue: false, "Cheater..."); forceUnlockRaven = Config.BindAndOptions(section2, "Force Unlock Raven", defaultValue: false, "If you're not Feilong, you're a cheater."); } } public static class SeamstressCrosshair { internal static GameObject seamstressCrosshair; public static void Init(AssetBundle assetBundle) { CreateCrosshair(); } private static void CreateCrosshair() { //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_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f8: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_015e: 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_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d8: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) seamstressCrosshair = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync((object)"RoR2/Base/Mage/MageCrosshair.prefab").WaitForCompletion(), "SeamCrosshair", false); ((Transform)((Component)seamstressCrosshair.transform.GetChild(5).GetChild(0)).gameObject.GetComponent()).position = Vector2.op_Implicit(new Vector2(-24f, -20f)); RectTransform component = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(0)).gameObject.GetComponent(); ((Transform)component).localScale = ((Transform)component).localScale * 0.5f; ((Transform)((Component)seamstressCrosshair.transform.GetChild(5).GetChild(1)).gameObject.GetComponent()).position = Vector2.op_Implicit(new Vector2(-12f, -20f)); RectTransform component2 = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(1)).gameObject.GetComponent(); ((Transform)component2).localScale = ((Transform)component2).localScale * 0.5f; ((Transform)((Component)seamstressCrosshair.transform.GetChild(5).GetChild(2)).gameObject.GetComponent()).position = Vector2.op_Implicit(new Vector2(0f, -20f)); RectTransform component3 = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(2)).gameObject.GetComponent(); ((Transform)component3).localScale = ((Transform)component3).localScale * 0.5f; ((Transform)((Component)seamstressCrosshair.transform.GetChild(5).GetChild(3)).gameObject.GetComponent()).position = Vector2.op_Implicit(new Vector2(12f, -20f)); RectTransform component4 = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(3)).gameObject.GetComponent(); ((Transform)component4).localScale = ((Transform)component4).localScale * 0.5f; GameObject val = PrefabAPI.InstantiateClone(((Component)seamstressCrosshair.transform.GetChild(5).GetChild(3)).gameObject, "Stock, 5", false); val.transform.SetParent(seamstressCrosshair.transform.GetChild(5)); ((Transform)((Component)seamstressCrosshair.transform.GetChild(5).GetChild(4)).gameObject.GetComponent()).position = Vector2.op_Implicit(new Vector2(24f, -20f)); NeedleCrosshairController needleCrosshairController = seamstressCrosshair.gameObject.AddComponent(); NeedleCrosshairController.NeedleSpriteDisplay needleSpriteDisplay = default(NeedleCrosshairController.NeedleSpriteDisplay); needleCrosshairController.needleSpriteDisplays = new NeedleCrosshairController.NeedleSpriteDisplay[5]; needleSpriteDisplay.target = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(0)).gameObject; needleSpriteDisplay.minimumStockCountToBeValid = 1; needleSpriteDisplay.maximumStockCountToBeValid = 5; needleCrosshairController.needleSpriteDisplays[0] = needleSpriteDisplay; needleSpriteDisplay.target = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(1)).gameObject; needleSpriteDisplay.minimumStockCountToBeValid = 2; needleSpriteDisplay.maximumStockCountToBeValid = 5; needleCrosshairController.needleSpriteDisplays[1] = needleSpriteDisplay; needleSpriteDisplay.target = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(2)).gameObject; needleSpriteDisplay.minimumStockCountToBeValid = 3; needleSpriteDisplay.maximumStockCountToBeValid = 5; needleCrosshairController.needleSpriteDisplays[2] = needleSpriteDisplay; needleSpriteDisplay.target = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(3)).gameObject; needleSpriteDisplay.minimumStockCountToBeValid = 4; needleSpriteDisplay.maximumStockCountToBeValid = 5; needleCrosshairController.needleSpriteDisplays[3] = needleSpriteDisplay; needleSpriteDisplay.target = ((Component)seamstressCrosshair.transform.GetChild(5).GetChild(4)).gameObject; needleSpriteDisplay.minimumStockCountToBeValid = 5; needleSpriteDisplay.maximumStockCountToBeValid = 5; needleCrosshairController.needleSpriteDisplays[4] = needleSpriteDisplay; Object.Destroy((Object)(object)seamstressCrosshair.gameObject.GetComponent()); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(0)).gameObject); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(1)).gameObject); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(2)).gameObject); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(3)).gameObject); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(4)).gameObject); Object.Destroy((Object)(object)((Component)seamstressCrosshair.transform.GetChild(6)).gameObject); } } internal static class SeamstressDots { public class BleedController : MonoBehaviour { private Transform bleedPosition; private GameObject stitchDot; private CharacterBody characterBody; private void Awake() { bleedPosition = ((Component)this).transform; characterBody = ((Component)this).GetComponent(); } private void FixedUpdate() { if (!NetworkServer.active) { return; } if (characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) || characterBody.HasBuff(SeamstressBuffs.SeamstressBleedBuff)) { if (!Object.op_Implicit((Object)(object)stitchDot)) { stitchDot = Object.Instantiate(SeamstressAssets.bleedEffect, bleedPosition); } } else if (!characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) || !characterBody.HasBuff(SeamstressBuffs.SeamstressBleedBuff)) { Object.Destroy((Object)(object)stitchDot); stitchDot = null; Object.Destroy((Object)(object)this); } } } public static DotIndex SeamstressSelfBleed; public static CustomDotVisual visual; internal static void Init() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown visual = new CustomDotVisual(StitchVisual); RegisterDots(); } public static void StitchVisual(DotController self) { if (Object.op_Implicit((Object)(object)self.victimBody)) { BleedController component = ((Component)self.victimBody).gameObject.GetComponent(); if ((Object)(object)component == (Object)null) { ((Component)self.victimBody).gameObject.AddComponent(); } } } public static void RegisterDots() { //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_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: 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_0039: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) SeamstressSelfBleed = DotAPI.RegisterDotDef(new DotDef { interval = 0.2f, damageCoefficient = 0f, damageColorIndex = (DamageColorIndex)2, associatedBuff = SeamstressBuffs.SeamstressInsatiableBuff, terminalTimedBuff = SeamstressBuffs.SeamstressInsatiableBuff, resetTimerOnAdd = true }, (CustomDotBehaviour)null, visual); } } public class SeamstressItemDisplays : ItemDisplaysBase { protected override void SetItemDisplayRules(List itemDisplayRules) { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01b3: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) //IL_0217: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0249: Unknown result type (might be due to invalid IL or missing references) //IL_024e: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_02a3: Unknown result type (might be due to invalid IL or missing references) //IL_02b7: Unknown result type (might be due to invalid IL or missing references) //IL_02bc: Unknown result type (might be due to invalid IL or missing references) //IL_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_0307: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Unknown result type (might be due to invalid IL or missing references) //IL_032f: Unknown result type (might be due to invalid IL or missing references) //IL_0334: Unknown result type (might be due to invalid IL or missing references) //IL_0339: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_03a7: Unknown result type (might be due to invalid IL or missing references) //IL_03ac: Unknown result type (might be due to invalid IL or missing references) //IL_03b1: Unknown result type (might be due to invalid IL or missing references) //IL_03b6: Unknown result type (might be due to invalid IL or missing references) //IL_03f7: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_041f: Unknown result type (might be due to invalid IL or missing references) //IL_0424: Unknown result type (might be due to invalid IL or missing references) //IL_0429: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0483: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_049c: Unknown result type (might be due to invalid IL or missing references) //IL_04a1: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04e7: Unknown result type (might be due to invalid IL or missing references) //IL_04fb: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_0519: Unknown result type (might be due to invalid IL or missing references) //IL_051e: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_0587: Unknown result type (might be due to invalid IL or missing references) //IL_058c: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0596: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05eb: Unknown result type (might be due to invalid IL or missing references) //IL_05ff: Unknown result type (might be due to invalid IL or missing references) //IL_0604: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Unknown result type (might be due to invalid IL or missing references) //IL_060e: Unknown result type (might be due to invalid IL or missing references) //IL_064f: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0677: Unknown result type (might be due to invalid IL or missing references) //IL_067c: Unknown result type (might be due to invalid IL or missing references) //IL_0681: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_06c7: Unknown result type (might be due to invalid IL or missing references) //IL_06db: Unknown result type (might be due to invalid IL or missing references) //IL_06ef: Unknown result type (might be due to invalid IL or missing references) //IL_06f4: Unknown result type (might be due to invalid IL or missing references) //IL_06f9: Unknown result type (might be due to invalid IL or missing references) //IL_06fe: Unknown result type (might be due to invalid IL or missing references) //IL_073f: Unknown result type (might be due to invalid IL or missing references) //IL_0753: Unknown result type (might be due to invalid IL or missing references) //IL_0767: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0771: Unknown result type (might be due to invalid IL or missing references) //IL_0776: Unknown result type (might be due to invalid IL or missing references) //IL_07b7: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07df: Unknown result type (might be due to invalid IL or missing references) //IL_07e4: Unknown result type (might be due to invalid IL or missing references) //IL_07e9: Unknown result type (might be due to invalid IL or missing references) //IL_07ee: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0843: Unknown result type (might be due to invalid IL or missing references) //IL_0857: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0861: Unknown result type (might be due to invalid IL or missing references) //IL_0866: Unknown result type (might be due to invalid IL or missing references) //IL_08a7: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08cf: Unknown result type (might be due to invalid IL or missing references) //IL_08d4: Unknown result type (might be due to invalid IL or missing references) //IL_08d9: Unknown result type (might be due to invalid IL or missing references) //IL_08de: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_094c: Unknown result type (might be due to invalid IL or missing references) //IL_0951: Unknown result type (might be due to invalid IL or missing references) //IL_0956: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_09ab: Unknown result type (might be due to invalid IL or missing references) //IL_09bf: Unknown result type (might be due to invalid IL or missing references) //IL_09c4: Unknown result type (might be due to invalid IL or missing references) //IL_09c9: Unknown result type (might be due to invalid IL or missing references) //IL_09ce: Unknown result type (might be due to invalid IL or missing references) //IL_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a23: Unknown result type (might be due to invalid IL or missing references) //IL_0a37: Unknown result type (might be due to invalid IL or missing references) //IL_0a3c: Unknown result type (might be due to invalid IL or missing references) //IL_0a41: Unknown result type (might be due to invalid IL or missing references) //IL_0a46: Unknown result type (might be due to invalid IL or missing references) //IL_0a87: Unknown result type (might be due to invalid IL or missing references) //IL_0a9b: Unknown result type (might be due to invalid IL or missing references) //IL_0aaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0ab9: Unknown result type (might be due to invalid IL or missing references) //IL_0abe: Unknown result type (might be due to invalid IL or missing references) //IL_0aff: Unknown result type (might be due to invalid IL or missing references) //IL_0b13: Unknown result type (might be due to invalid IL or missing references) //IL_0b27: Unknown result type (might be due to invalid IL or missing references) //IL_0b2c: Unknown result type (might be due to invalid IL or missing references) //IL_0b31: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b77: Unknown result type (might be due to invalid IL or missing references) //IL_0b8b: Unknown result type (might be due to invalid IL or missing references) //IL_0b9f: Unknown result type (might be due to invalid IL or missing references) //IL_0ba4: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bae: Unknown result type (might be due to invalid IL or missing references) //IL_0bef: Unknown result type (might be due to invalid IL or missing references) //IL_0c03: Unknown result type (might be due to invalid IL or missing references) //IL_0c17: Unknown result type (might be due to invalid IL or missing references) //IL_0c1c: Unknown result type (might be due to invalid IL or missing references) //IL_0c21: Unknown result type (might be due to invalid IL or missing references) //IL_0c26: Unknown result type (might be due to invalid IL or missing references) //IL_0c67: Unknown result type (might be due to invalid IL or missing references) //IL_0c7b: Unknown result type (might be due to invalid IL or missing references) //IL_0c8f: Unknown result type (might be due to invalid IL or missing references) //IL_0c94: Unknown result type (might be due to invalid IL or missing references) //IL_0c99: Unknown result type (might be due to invalid IL or missing references) //IL_0c9e: Unknown result type (might be due to invalid IL or missing references) //IL_0cdf: Unknown result type (might be due to invalid IL or missing references) //IL_0cf3: Unknown result type (might be due to invalid IL or missing references) //IL_0d07: Unknown result type (might be due to invalid IL or missing references) //IL_0d0c: Unknown result type (might be due to invalid IL or missing references) //IL_0d11: Unknown result type (might be due to invalid IL or missing references) //IL_0d16: Unknown result type (might be due to invalid IL or missing references) //IL_0d57: Unknown result type (might be due to invalid IL or missing references) //IL_0d6b: Unknown result type (might be due to invalid IL or missing references) //IL_0d7f: Unknown result type (might be due to invalid IL or missing references) //IL_0d84: Unknown result type (might be due to invalid IL or missing references) //IL_0d89: Unknown result type (might be due to invalid IL or missing references) //IL_0d8e: Unknown result type (might be due to invalid IL or missing references) //IL_0dcf: Unknown result type (might be due to invalid IL or missing references) //IL_0de3: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Unknown result type (might be due to invalid IL or missing references) //IL_0dfc: Unknown result type (might be due to invalid IL or missing references) //IL_0e01: Unknown result type (might be due to invalid IL or missing references) //IL_0e06: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e6f: Unknown result type (might be due to invalid IL or missing references) //IL_0e74: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e7e: Unknown result type (might be due to invalid IL or missing references) //IL_0ea2: Unknown result type (might be due to invalid IL or missing references) //IL_0ea7: Unknown result type (might be due to invalid IL or missing references) //IL_0ecc: Unknown result type (might be due to invalid IL or missing references) //IL_0ee0: Unknown result type (might be due to invalid IL or missing references) //IL_0ef4: Unknown result type (might be due to invalid IL or missing references) //IL_0ef9: Unknown result type (might be due to invalid IL or missing references) //IL_0efe: Unknown result type (might be due to invalid IL or missing references) //IL_0f23: Unknown result type (might be due to invalid IL or missing references) //IL_0f37: Unknown result type (might be due to invalid IL or missing references) //IL_0f4b: Unknown result type (might be due to invalid IL or missing references) //IL_0f50: Unknown result type (might be due to invalid IL or missing references) //IL_0f55: Unknown result type (might be due to invalid IL or missing references) //IL_0f5a: Unknown result type (might be due to invalid IL or missing references) //IL_0f9b: Unknown result type (might be due to invalid IL or missing references) //IL_0faf: Unknown result type (might be due to invalid IL or missing references) //IL_0fc3: Unknown result type (might be due to invalid IL or missing references) //IL_0fc8: Unknown result type (might be due to invalid IL or missing references) //IL_0fcd: Unknown result type (might be due to invalid IL or missing references) //IL_0fd2: Unknown result type (might be due to invalid IL or missing references) //IL_1013: Unknown result type (might be due to invalid IL or missing references) //IL_1027: Unknown result type (might be due to invalid IL or missing references) //IL_103b: Unknown result type (might be due to invalid IL or missing references) //IL_1040: Unknown result type (might be due to invalid IL or missing references) //IL_1045: Unknown result type (might be due to invalid IL or missing references) //IL_104a: Unknown result type (might be due to invalid IL or missing references) //IL_108b: Unknown result type (might be due to invalid IL or missing references) //IL_109f: Unknown result type (might be due to invalid IL or missing references) //IL_10b3: Unknown result type (might be due to invalid IL or missing references) //IL_10b8: Unknown result type (might be due to invalid IL or missing references) //IL_10bd: Unknown result type (might be due to invalid IL or missing references) //IL_10c2: Unknown result type (might be due to invalid IL or missing references) //IL_1103: Unknown result type (might be due to invalid IL or missing references) //IL_1117: Unknown result type (might be due to invalid IL or missing references) //IL_112b: Unknown result type (might be due to invalid IL or missing references) //IL_1130: Unknown result type (might be due to invalid IL or missing references) //IL_1135: Unknown result type (might be due to invalid IL or missing references) //IL_113a: Unknown result type (might be due to invalid IL or missing references) //IL_117b: Unknown result type (might be due to invalid IL or missing references) //IL_118f: Unknown result type (might be due to invalid IL or missing references) //IL_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11a8: Unknown result type (might be due to invalid IL or missing references) //IL_11ad: Unknown result type (might be due to invalid IL or missing references) //IL_11b2: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Unknown result type (might be due to invalid IL or missing references) //IL_1207: Unknown result type (might be due to invalid IL or missing references) //IL_121b: Unknown result type (might be due to invalid IL or missing references) //IL_1220: Unknown result type (might be due to invalid IL or missing references) //IL_1225: Unknown result type (might be due to invalid IL or missing references) //IL_122a: Unknown result type (might be due to invalid IL or missing references) //IL_126b: Unknown result type (might be due to invalid IL or missing references) //IL_127f: Unknown result type (might be due to invalid IL or missing references) //IL_1293: Unknown result type (might be due to invalid IL or missing references) //IL_1298: Unknown result type (might be due to invalid IL or missing references) //IL_129d: Unknown result type (might be due to invalid IL or missing references) //IL_12a2: Unknown result type (might be due to invalid IL or missing references) //IL_12e3: Unknown result type (might be due to invalid IL or missing references) //IL_12f7: Unknown result type (might be due to invalid IL or missing references) //IL_130b: Unknown result type (might be due to invalid IL or missing references) //IL_1310: Unknown result type (might be due to invalid IL or missing references) //IL_1315: Unknown result type (might be due to invalid IL or missing references) //IL_131a: Unknown result type (might be due to invalid IL or missing references) //IL_135b: Unknown result type (might be due to invalid IL or missing references) //IL_136f: Unknown result type (might be due to invalid IL or missing references) //IL_1383: Unknown result type (might be due to invalid IL or missing references) //IL_1388: Unknown result type (might be due to invalid IL or missing references) //IL_138d: Unknown result type (might be due to invalid IL or missing references) //IL_13b2: Unknown result type (might be due to invalid IL or missing references) //IL_13c6: Unknown result type (might be due to invalid IL or missing references) //IL_13da: Unknown result type (might be due to invalid IL or missing references) //IL_13df: Unknown result type (might be due to invalid IL or missing references) //IL_13e4: Unknown result type (might be due to invalid IL or missing references) //IL_13e9: Unknown result type (might be due to invalid IL or missing references) //IL_142a: Unknown result type (might be due to invalid IL or missing references) //IL_143e: Unknown result type (might be due to invalid IL or missing references) //IL_1452: Unknown result type (might be due to invalid IL or missing references) //IL_1457: Unknown result type (might be due to invalid IL or missing references) //IL_145c: Unknown result type (might be due to invalid IL or missing references) //IL_1461: Unknown result type (might be due to invalid IL or missing references) //IL_14a2: Unknown result type (might be due to invalid IL or missing references) //IL_14b6: Unknown result type (might be due to invalid IL or missing references) //IL_14ca: Unknown result type (might be due to invalid IL or missing references) //IL_14cf: Unknown result type (might be due to invalid IL or missing references) //IL_14d4: Unknown result type (might be due to invalid IL or missing references) //IL_14d9: Unknown result type (might be due to invalid IL or missing references) //IL_151a: Unknown result type (might be due to invalid IL or missing references) //IL_152e: Unknown result type (might be due to invalid IL or missing references) //IL_1542: Unknown result type (might be due to invalid IL or missing references) //IL_1547: Unknown result type (might be due to invalid IL or missing references) //IL_154c: Unknown result type (might be due to invalid IL or missing references) //IL_1551: Unknown result type (might be due to invalid IL or missing references) //IL_1592: Unknown result type (might be due to invalid IL or missing references) //IL_15a6: Unknown result type (might be due to invalid IL or missing references) //IL_15ba: Unknown result type (might be due to invalid IL or missing references) //IL_15bf: Unknown result type (might be due to invalid IL or missing references) //IL_15c4: Unknown result type (might be due to invalid IL or missing references) //IL_15c9: Unknown result type (might be due to invalid IL or missing references) //IL_160a: Unknown result type (might be due to invalid IL or missing references) //IL_161e: Unknown result type (might be due to invalid IL or missing references) //IL_1632: Unknown result type (might be due to invalid IL or missing references) //IL_1637: Unknown result type (might be due to invalid IL or missing references) //IL_163c: Unknown result type (might be due to invalid IL or missing references) //IL_1641: Unknown result type (might be due to invalid IL or missing references) //IL_1682: Unknown result type (might be due to invalid IL or missing references) //IL_1696: Unknown result type (might be due to invalid IL or missing references) //IL_16aa: Unknown result type (might be due to invalid IL or missing references) //IL_16af: Unknown result type (might be due to invalid IL or missing references) //IL_16b4: Unknown result type (might be due to invalid IL or missing references) //IL_16b9: Unknown result type (might be due to invalid IL or missing references) //IL_16fa: Unknown result type (might be due to invalid IL or missing references) //IL_170e: Unknown result type (might be due to invalid IL or missing references) //IL_1722: Unknown result type (might be due to invalid IL or missing references) //IL_1727: Unknown result type (might be due to invalid IL or missing references) //IL_172c: Unknown result type (might be due to invalid IL or missing references) //IL_1731: Unknown result type (might be due to invalid IL or missing references) //IL_1772: Unknown result type (might be due to invalid IL or missing references) //IL_1786: Unknown result type (might be due to invalid IL or missing references) //IL_179a: Unknown result type (might be due to invalid IL or missing references) //IL_179f: Unknown result type (might be due to invalid IL or missing references) //IL_17a4: Unknown result type (might be due to invalid IL or missing references) //IL_17a9: Unknown result type (might be due to invalid IL or missing references) //IL_17ea: Unknown result type (might be due to invalid IL or missing references) //IL_17fe: Unknown result type (might be due to invalid IL or missing references) //IL_1812: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_181c: Unknown result type (might be due to invalid IL or missing references) //IL_1821: Unknown result type (might be due to invalid IL or missing references) //IL_1862: Unknown result type (might be due to invalid IL or missing references) //IL_1876: Unknown result type (might be due to invalid IL or missing references) //IL_188a: Unknown result type (might be due to invalid IL or missing references) //IL_188f: Unknown result type (might be due to invalid IL or missing references) //IL_1894: Unknown result type (might be due to invalid IL or missing references) //IL_1899: Unknown result type (might be due to invalid IL or missing references) //IL_18da: Unknown result type (might be due to invalid IL or missing references) //IL_18ee: Unknown result type (might be due to invalid IL or missing references) //IL_1902: Unknown result type (might be due to invalid IL or missing references) //IL_1907: Unknown result type (might be due to invalid IL or missing references) //IL_190c: Unknown result type (might be due to invalid IL or missing references) //IL_1911: Unknown result type (might be due to invalid IL or missing references) //IL_1952: Unknown result type (might be due to invalid IL or missing references) //IL_1966: Unknown result type (might be due to invalid IL or missing references) //IL_197a: Unknown result type (might be due to invalid IL or missing references) //IL_197f: Unknown result type (might be due to invalid IL or missing references) //IL_1984: Unknown result type (might be due to invalid IL or missing references) //IL_1989: Unknown result type (might be due to invalid IL or missing references) //IL_19ca: Unknown result type (might be due to invalid IL or missing references) //IL_19de: Unknown result type (might be due to invalid IL or missing references) //IL_19f2: Unknown result type (might be due to invalid IL or missing references) //IL_19f7: Unknown result type (might be due to invalid IL or missing references) //IL_19fc: Unknown result type (might be due to invalid IL or missing references) //IL_1a01: Unknown result type (might be due to invalid IL or missing references) //IL_1a42: Unknown result type (might be due to invalid IL or missing references) //IL_1a56: Unknown result type (might be due to invalid IL or missing references) //IL_1a6a: Unknown result type (might be due to invalid IL or missing references) //IL_1a6f: Unknown result type (might be due to invalid IL or missing references) //IL_1a74: Unknown result type (might be due to invalid IL or missing references) //IL_1a79: Unknown result type (might be due to invalid IL or missing references) //IL_1aba: Unknown result type (might be due to invalid IL or missing references) //IL_1ace: Unknown result type (might be due to invalid IL or missing references) //IL_1ae2: Unknown result type (might be due to invalid IL or missing references) //IL_1ae7: Unknown result type (might be due to invalid IL or missing references) //IL_1aec: Unknown result type (might be due to invalid IL or missing references) //IL_1af1: Unknown result type (might be due to invalid IL or missing references) //IL_1b32: Unknown result type (might be due to invalid IL or missing references) //IL_1b46: Unknown result type (might be due to invalid IL or missing references) //IL_1b5a: Unknown result type (might be due to invalid IL or missing references) //IL_1b5f: Unknown result type (might be due to invalid IL or missing references) //IL_1b64: Unknown result type (might be due to invalid IL or missing references) //IL_1b69: Unknown result type (might be due to invalid IL or missing references) //IL_1baa: Unknown result type (might be due to invalid IL or missing references) //IL_1bbe: Unknown result type (might be due to invalid IL or missing references) //IL_1bd2: Unknown result type (might be due to invalid IL or missing references) //IL_1bd7: Unknown result type (might be due to invalid IL or missing references) //IL_1bdc: Unknown result type (might be due to invalid IL or missing references) //IL_1be1: Unknown result type (might be due to invalid IL or missing references) //IL_1c22: Unknown result type (might be due to invalid IL or missing references) //IL_1c36: Unknown result type (might be due to invalid IL or missing references) //IL_1c4a: Unknown result type (might be due to invalid IL or missing references) //IL_1c4f: Unknown result type (might be due to invalid IL or missing references) //IL_1c54: Unknown result type (might be due to invalid IL or missing references) //IL_1c5c: Unknown result type (might be due to invalid IL or missing references) //IL_1c61: Unknown result type (might be due to invalid IL or missing references) //IL_1c66: Unknown result type (might be due to invalid IL or missing references) //IL_1ca7: Unknown result type (might be due to invalid IL or missing references) //IL_1cbb: Unknown result type (might be due to invalid IL or missing references) //IL_1ccf: Unknown result type (might be due to invalid IL or missing references) //IL_1cd4: Unknown result type (might be due to invalid IL or missing references) //IL_1cd9: Unknown result type (might be due to invalid IL or missing references) //IL_1cde: Unknown result type (might be due to invalid IL or missing references) //IL_1d1f: Unknown result type (might be due to invalid IL or missing references) //IL_1d33: Unknown result type (might be due to invalid IL or missing references) //IL_1d47: Unknown result type (might be due to invalid IL or missing references) //IL_1d4c: Unknown result type (might be due to invalid IL or missing references) //IL_1d51: Unknown result type (might be due to invalid IL or missing references) //IL_1d56: Unknown result type (might be due to invalid IL or missing references) //IL_1d97: Unknown result type (might be due to invalid IL or missing references) //IL_1dab: Unknown result type (might be due to invalid IL or missing references) //IL_1dbf: Unknown result type (might be due to invalid IL or missing references) //IL_1dc4: Unknown result type (might be due to invalid IL or missing references) //IL_1dc9: Unknown result type (might be due to invalid IL or missing references) //IL_1dce: Unknown result type (might be due to invalid IL or missing references) //IL_1e0f: Unknown result type (might be due to invalid IL or missing references) //IL_1e23: Unknown result type (might be due to invalid IL or missing references) //IL_1e37: Unknown result type (might be due to invalid IL or missing references) //IL_1e3c: Unknown result type (might be due to invalid IL or missing references) //IL_1e41: Unknown result type (might be due to invalid IL or missing references) //IL_1e46: Unknown result type (might be due to invalid IL or missing references) //IL_1e87: Unknown result type (might be due to invalid IL or missing references) //IL_1e9b: Unknown result type (might be due to invalid IL or missing references) //IL_1eaf: Unknown result type (might be due to invalid IL or missing references) //IL_1eb4: Unknown result type (might be due to invalid IL or missing references) //IL_1eb9: Unknown result type (might be due to invalid IL or missing references) //IL_1ede: Unknown result type (might be due to invalid IL or missing references) //IL_1ef2: Unknown result type (might be due to invalid IL or missing references) //IL_1f06: Unknown result type (might be due to invalid IL or missing references) //IL_1f0b: Unknown result type (might be due to invalid IL or missing references) //IL_1f10: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f56: Unknown result type (might be due to invalid IL or missing references) //IL_1f6a: Unknown result type (might be due to invalid IL or missing references) //IL_1f7e: Unknown result type (might be due to invalid IL or missing references) //IL_1f83: Unknown result type (might be due to invalid IL or missing references) //IL_1f88: Unknown result type (might be due to invalid IL or missing references) //IL_1f8d: Unknown result type (might be due to invalid IL or missing references) //IL_1fce: Unknown result type (might be due to invalid IL or missing references) //IL_1fe2: Unknown result type (might be due to invalid IL or missing references) //IL_1ff6: Unknown result type (might be due to invalid IL or missing references) //IL_1ffb: Unknown result type (might be due to invalid IL or missing references) //IL_2000: Unknown result type (might be due to invalid IL or missing references) //IL_2005: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_205a: Unknown result type (might be due to invalid IL or missing references) //IL_206e: Unknown result type (might be due to invalid IL or missing references) //IL_2073: Unknown result type (might be due to invalid IL or missing references) //IL_2078: Unknown result type (might be due to invalid IL or missing references) //IL_207d: Unknown result type (might be due to invalid IL or missing references) //IL_20be: Unknown result type (might be due to invalid IL or missing references) //IL_20d2: Unknown result type (might be due to invalid IL or missing references) //IL_20e6: Unknown result type (might be due to invalid IL or missing references) //IL_20eb: Unknown result type (might be due to invalid IL or missing references) //IL_20f0: Unknown result type (might be due to invalid IL or missing references) //IL_20f5: Unknown result type (might be due to invalid IL or missing references) //IL_2136: Unknown result type (might be due to invalid IL or missing references) //IL_214a: Unknown result type (might be due to invalid IL or missing references) //IL_215e: Unknown result type (might be due to invalid IL or missing references) //IL_2163: Unknown result type (might be due to invalid IL or missing references) //IL_2168: Unknown result type (might be due to invalid IL or missing references) //IL_216d: Unknown result type (might be due to invalid IL or missing references) //IL_21ae: Unknown result type (might be due to invalid IL or missing references) //IL_21c2: Unknown result type (might be due to invalid IL or missing references) //IL_21d6: Unknown result type (might be due to invalid IL or missing references) //IL_21db: Unknown result type (might be due to invalid IL or missing references) //IL_21e0: Unknown result type (might be due to invalid IL or missing references) //IL_21e5: Unknown result type (might be due to invalid IL or missing references) //IL_2226: Unknown result type (might be due to invalid IL or missing references) //IL_223a: Unknown result type (might be due to invalid IL or missing references) //IL_224e: Unknown result type (might be due to invalid IL or missing references) //IL_2253: Unknown result type (might be due to invalid IL or missing references) //IL_2258: Unknown result type (might be due to invalid IL or missing references) //IL_225d: Unknown result type (might be due to invalid IL or missing references) //IL_229e: Unknown result type (might be due to invalid IL or missing references) //IL_22b2: Unknown result type (might be due to invalid IL or missing references) //IL_22c6: Unknown result type (might be due to invalid IL or missing references) //IL_22cb: Unknown result type (might be due to invalid IL or missing references) //IL_22d0: Unknown result type (might be due to invalid IL or missing references) //IL_22d5: Unknown result type (might be due to invalid IL or missing references) //IL_2316: Unknown result type (might be due to invalid IL or missing references) //IL_232a: Unknown result type (might be due to invalid IL or missing references) //IL_233e: Unknown result type (might be due to invalid IL or missing references) //IL_2343: Unknown result type (might be due to invalid IL or missing references) //IL_2348: Unknown result type (might be due to invalid IL or missing references) //IL_234d: Unknown result type (might be due to invalid IL or missing references) //IL_238e: Unknown result type (might be due to invalid IL or missing references) //IL_23a2: Unknown result type (might be due to invalid IL or missing references) //IL_23b6: Unknown result type (might be due to invalid IL or missing references) //IL_23bb: Unknown result type (might be due to invalid IL or missing references) //IL_23c0: Unknown result type (might be due to invalid IL or missing references) //IL_23c5: Unknown result type (might be due to invalid IL or missing references) //IL_2406: Unknown result type (might be due to invalid IL or missing references) //IL_241a: Unknown result type (might be due to invalid IL or missing references) //IL_242e: Unknown result type (might be due to invalid IL or missing references) //IL_2433: Unknown result type (might be due to invalid IL or missing references) //IL_2438: Unknown result type (might be due to invalid IL or missing references) //IL_243d: Unknown result type (might be due to invalid IL or missing references) //IL_247e: Unknown result type (might be due to invalid IL or missing references) //IL_2492: Unknown result type (might be due to invalid IL or missing references) //IL_24a6: Unknown result type (might be due to invalid IL or missing references) //IL_24ab: Unknown result type (might be due to invalid IL or missing references) //IL_24b0: Unknown result type (might be due to invalid IL or missing references) //IL_24b5: Unknown result type (might be due to invalid IL or missing references) //IL_24f6: Unknown result type (might be due to invalid IL or missing references) //IL_250a: Unknown result type (might be due to invalid IL or missing references) //IL_251e: Unknown result type (might be due to invalid IL or missing references) //IL_2523: Unknown result type (might be due to invalid IL or missing references) //IL_2528: Unknown result type (might be due to invalid IL or missing references) //IL_252d: Unknown result type (might be due to invalid IL or missing references) //IL_256e: Unknown result type (might be due to invalid IL or missing references) //IL_2582: Unknown result type (might be due to invalid IL or missing references) //IL_2596: Unknown result type (might be due to invalid IL or missing references) //IL_259b: Unknown result type (might be due to invalid IL or missing references) //IL_25a0: Unknown result type (might be due to invalid IL or missing references) //IL_25a5: Unknown result type (might be due to invalid IL or missing references) //IL_25e6: Unknown result type (might be due to invalid IL or missing references) //IL_25fa: Unknown result type (might be due to invalid IL or missing references) //IL_260e: Unknown result type (might be due to invalid IL or missing references) //IL_2613: Unknown result type (might be due to invalid IL or missing references) //IL_2618: Unknown result type (might be due to invalid IL or missing references) //IL_261d: Unknown result type (might be due to invalid IL or missing references) //IL_265e: Unknown result type (might be due to invalid IL or missing references) //IL_2672: Unknown result type (might be due to invalid IL or missing references) //IL_2686: Unknown result type (might be due to invalid IL or missing references) //IL_268b: Unknown result type (might be due to invalid IL or missing references) //IL_2690: Unknown result type (might be due to invalid IL or missing references) //IL_2695: Unknown result type (might be due to invalid IL or missing references) //IL_26d6: Unknown result type (might be due to invalid IL or missing references) //IL_26ea: Unknown result type (might be due to invalid IL or missing references) //IL_26fe: Unknown result type (might be due to invalid IL or missing references) //IL_2703: Unknown result type (might be due to invalid IL or missing references) //IL_2708: Unknown result type (might be due to invalid IL or missing references) //IL_270d: Unknown result type (might be due to invalid IL or missing references) //IL_274e: Unknown result type (might be due to invalid IL or missing references) //IL_2762: Unknown result type (might be due to invalid IL or missing references) //IL_2776: Unknown result type (might be due to invalid IL or missing references) //IL_277b: Unknown result type (might be due to invalid IL or missing references) //IL_2780: Unknown result type (might be due to invalid IL or missing references) //IL_2785: Unknown result type (might be due to invalid IL or missing references) //IL_27c6: Unknown result type (might be due to invalid IL or missing references) //IL_27da: Unknown result type (might be due to invalid IL or missing references) //IL_27ee: Unknown result type (might be due to invalid IL or missing references) //IL_27f3: Unknown result type (might be due to invalid IL or missing references) //IL_27f8: Unknown result type (might be due to invalid IL or missing references) //IL_27fd: Unknown result type (might be due to invalid IL or missing references) //IL_283e: Unknown result type (might be due to invalid IL or missing references) //IL_2852: Unknown result type (might be due to invalid IL or missing references) //IL_2866: Unknown result type (might be due to invalid IL or missing references) //IL_286b: Unknown result type (might be due to invalid IL or missing references) //IL_2870: Unknown result type (might be due to invalid IL or missing references) //IL_2875: Unknown result type (might be due to invalid IL or missing references) //IL_28b6: Unknown result type (might be due to invalid IL or missing references) //IL_28ca: Unknown result type (might be due to invalid IL or missing references) //IL_28de: Unknown result type (might be due to invalid IL or missing references) //IL_28e3: Unknown result type (might be due to invalid IL or missing references) //IL_28e8: Unknown result type (might be due to invalid IL or missing references) //IL_28ed: Unknown result type (might be due to invalid IL or missing references) //IL_292e: Unknown result type (might be due to invalid IL or missing references) //IL_2942: Unknown result type (might be due to invalid IL or missing references) //IL_2956: Unknown result type (might be due to invalid IL or missing references) //IL_295b: Unknown result type (might be due to invalid IL or missing references) //IL_2960: Unknown result type (might be due to invalid IL or missing references) //IL_2965: Unknown result type (might be due to invalid IL or missing references) //IL_29a6: Unknown result type (might be due to invalid IL or missing references) //IL_29ba: Unknown result type (might be due to invalid IL or missing references) //IL_29ce: Unknown result type (might be due to invalid IL or missing references) //IL_29d3: Unknown result type (might be due to invalid IL or missing references) //IL_29d8: Unknown result type (might be due to invalid IL or missing references) //IL_29dd: Unknown result type (might be due to invalid IL or missing references) //IL_2a1e: Unknown result type (might be due to invalid IL or missing references) //IL_2a32: Unknown result type (might be due to invalid IL or missing references) //IL_2a46: Unknown result type (might be due to invalid IL or missing references) //IL_2a4b: Unknown result type (might be due to invalid IL or missing references) //IL_2a50: Unknown result type (might be due to invalid IL or missing references) //IL_2a75: Unknown result type (might be due to invalid IL or missing references) //IL_2a89: Unknown result type (might be due to invalid IL or missing references) //IL_2a9d: Unknown result type (might be due to invalid IL or missing references) //IL_2aa2: Unknown result type (might be due to invalid IL or missing references) //IL_2aa7: Unknown result type (might be due to invalid IL or missing references) //IL_2aac: Unknown result type (might be due to invalid IL or missing references) //IL_2aed: Unknown result type (might be due to invalid IL or missing references) //IL_2b01: Unknown result type (might be due to invalid IL or missing references) //IL_2b15: Unknown result type (might be due to invalid IL or missing references) //IL_2b1a: Unknown result type (might be due to invalid IL or missing references) //IL_2b1f: Unknown result type (might be due to invalid IL or missing references) //IL_2b24: Unknown result type (might be due to invalid IL or missing references) //IL_2b65: Unknown result type (might be due to invalid IL or missing references) //IL_2b79: Unknown result type (might be due to invalid IL or missing references) //IL_2b8d: Unknown result type (might be due to invalid IL or missing references) //IL_2b92: Unknown result type (might be due to invalid IL or missing references) //IL_2b97: Unknown result type (might be due to invalid IL or missing references) //IL_2b9c: Unknown result type (might be due to invalid IL or missing references) //IL_2bdd: Unknown result type (might be due to invalid IL or missing references) //IL_2bf1: Unknown result type (might be due to invalid IL or missing references) //IL_2c05: Unknown result type (might be due to invalid IL or missing references) //IL_2c0a: Unknown result type (might be due to invalid IL or missing references) //IL_2c0f: Unknown result type (might be due to invalid IL or missing references) //IL_2c14: Unknown result type (might be due to invalid IL or missing references) //IL_2c55: Unknown result type (might be due to invalid IL or missing references) //IL_2c69: Unknown result type (might be due to invalid IL or missing references) //IL_2c7d: Unknown result type (might be due to invalid IL or missing references) //IL_2c82: Unknown result type (might be due to invalid IL or missing references) //IL_2c87: Unknown result type (might be due to invalid IL or missing references) //IL_2c8c: Unknown result type (might be due to invalid IL or missing references) //IL_2ccd: Unknown result type (might be due to invalid IL or missing references) //IL_2ce1: Unknown result type (might be due to invalid IL or missing references) //IL_2cf5: Unknown result type (might be due to invalid IL or missing references) //IL_2cfa: Unknown result type (might be due to invalid IL or missing references) //IL_2cff: Unknown result type (might be due to invalid IL or missing references) //IL_2d04: Unknown result type (might be due to invalid IL or missing references) //IL_2d45: Unknown result type (might be due to invalid IL or missing references) //IL_2d59: Unknown result type (might be due to invalid IL or missing references) //IL_2d6d: Unknown result type (might be due to invalid IL or missing references) //IL_2d72: Unknown result type (might be due to invalid IL or missing references) //IL_2d77: Unknown result type (might be due to invalid IL or missing references) //IL_2d7c: Unknown result type (might be due to invalid IL or missing references) //IL_2dbd: Unknown result type (might be due to invalid IL or missing references) //IL_2dd1: Unknown result type (might be due to invalid IL or missing references) //IL_2de5: Unknown result type (might be due to invalid IL or missing references) //IL_2dea: Unknown result type (might be due to invalid IL or missing references) //IL_2def: Unknown result type (might be due to invalid IL or missing references) //IL_2df4: Unknown result type (might be due to invalid IL or missing references) //IL_2e35: Unknown result type (might be due to invalid IL or missing references) //IL_2e49: Unknown result type (might be due to invalid IL or missing references) //IL_2e5d: Unknown result type (might be due to invalid IL or missing references) //IL_2e62: Unknown result type (might be due to invalid IL or missing references) //IL_2e67: Unknown result type (might be due to invalid IL or missing references) //IL_2e6c: Unknown result type (might be due to invalid IL or missing references) //IL_2ead: Unknown result type (might be due to invalid IL or missing references) //IL_2ec1: Unknown result type (might be due to invalid IL or missing references) //IL_2ed5: Unknown result type (might be due to invalid IL or missing references) //IL_2eda: Unknown result type (might be due to invalid IL or missing references) //IL_2edf: Unknown result type (might be due to invalid IL or missing references) //IL_2ee4: Unknown result type (might be due to invalid IL or missing references) //IL_2f25: Unknown result type (might be due to invalid IL or missing references) //IL_2f39: Unknown result type (might be due to invalid IL or missing references) //IL_2f4d: Unknown result type (might be due to invalid IL or missing references) //IL_2f52: Unknown result type (might be due to invalid IL or missing references) //IL_2f57: Unknown result type (might be due to invalid IL or missing references) //IL_2f5c: Unknown result type (might be due to invalid IL or missing references) //IL_2f9d: Unknown result type (might be due to invalid IL or missing references) //IL_2fb1: Unknown result type (might be due to invalid IL or missing references) //IL_2fc5: Unknown result type (might be due to invalid IL or missing references) //IL_2fca: Unknown result type (might be due to invalid IL or missing references) //IL_2fcf: Unknown result type (might be due to invalid IL or missing references) //IL_2fd4: Unknown result type (might be due to invalid IL or missing references) //IL_3015: Unknown result type (might be due to invalid IL or missing references) //IL_3029: Unknown result type (might be due to invalid IL or missing references) //IL_303d: Unknown result type (might be due to invalid IL or missing references) //IL_3042: Unknown result type (might be due to invalid IL or missing references) //IL_3047: Unknown result type (might be due to invalid IL or missing references) //IL_304c: Unknown result type (might be due to invalid IL or missing references) //IL_308d: Unknown result type (might be due to invalid IL or missing references) //IL_30a1: Unknown result type (might be due to invalid IL or missing references) //IL_30b5: Unknown result type (might be due to invalid IL or missing references) //IL_30ba: Unknown result type (might be due to invalid IL or missing references) //IL_30bf: Unknown result type (might be due to invalid IL or missing references) //IL_30c4: Unknown result type (might be due to invalid IL or missing references) //IL_3105: Unknown result type (might be due to invalid IL or missing references) //IL_3119: Unknown result type (might be due to invalid IL or missing references) //IL_312d: Unknown result type (might be due to invalid IL or missing references) //IL_3132: Unknown result type (might be due to invalid IL or missing references) //IL_3137: Unknown result type (might be due to invalid IL or missing references) //IL_313c: Unknown result type (might be due to invalid IL or missing references) //IL_317d: Unknown result type (might be due to invalid IL or missing references) //IL_3191: Unknown result type (might be due to invalid IL or missing references) //IL_31a5: Unknown result type (might be due to invalid IL or missing references) //IL_31aa: Unknown result type (might be due to invalid IL or missing references) //IL_31af: Unknown result type (might be due to invalid IL or missing references) //IL_31b4: Unknown result type (might be due to invalid IL or missing references) //IL_31f5: Unknown result type (might be due to invalid IL or missing references) //IL_3209: Unknown result type (might be due to invalid IL or missing references) //IL_321d: Unknown result type (might be due to invalid IL or missing references) //IL_3222: Unknown result type (might be due to invalid IL or missing references) //IL_3227: Unknown result type (might be due to invalid IL or missing references) //IL_322c: Unknown result type (might be due to invalid IL or missing references) //IL_326d: Unknown result type (might be due to invalid IL or missing references) //IL_3281: Unknown result type (might be due to invalid IL or missing references) //IL_3295: Unknown result type (might be due to invalid IL or missing references) //IL_329a: Unknown result type (might be due to invalid IL or missing references) //IL_329f: Unknown result type (might be due to invalid IL or missing references) //IL_32c4: Unknown result type (might be due to invalid IL or missing references) //IL_32d8: Unknown result type (might be due to invalid IL or missing references) //IL_32ec: Unknown result type (might be due to invalid IL or missing references) //IL_32f1: Unknown result type (might be due to invalid IL or missing references) //IL_32f6: Unknown result type (might be due to invalid IL or missing references) //IL_32fb: Unknown result type (might be due to invalid IL or missing references) //IL_333c: Unknown result type (might be due to invalid IL or missing references) //IL_3350: Unknown result type (might be due to invalid IL or missing references) //IL_3364: Unknown result type (might be due to invalid IL or missing references) //IL_3369: Unknown result type (might be due to invalid IL or missing references) //IL_336e: Unknown result type (might be due to invalid IL or missing references) //IL_3373: Unknown result type (might be due to invalid IL or missing references) //IL_33b4: Unknown result type (might be due to invalid IL or missing references) //IL_33c8: Unknown result type (might be due to invalid IL or missing references) //IL_33dc: Unknown result type (might be due to invalid IL or missing references) //IL_33e1: Unknown result type (might be due to invalid IL or missing references) //IL_33e6: Unknown result type (might be due to invalid IL or missing references) //IL_33eb: Unknown result type (might be due to invalid IL or missing references) //IL_342c: Unknown result type (might be due to invalid IL or missing references) //IL_3440: Unknown result type (might be due to invalid IL or missing references) //IL_3454: Unknown result type (might be due to invalid IL or missing references) //IL_3459: Unknown result type (might be due to invalid IL or missing references) //IL_345e: Unknown result type (might be due to invalid IL or missing references) //IL_3463: Unknown result type (might be due to invalid IL or missing references) //IL_34a4: Unknown result type (might be due to invalid IL or missing references) //IL_34b8: Unknown result type (might be due to invalid IL or missing references) //IL_34cc: Unknown result type (might be due to invalid IL or missing references) //IL_34d1: Unknown result type (might be due to invalid IL or missing references) //IL_34d6: Unknown result type (might be due to invalid IL or missing references) //IL_34db: Unknown result type (might be due to invalid IL or missing references) //IL_351c: Unknown result type (might be due to invalid IL or missing references) //IL_3530: Unknown result type (might be due to invalid IL or missing references) //IL_3544: Unknown result type (might be due to invalid IL or missing references) //IL_3549: Unknown result type (might be due to invalid IL or missing references) //IL_354e: Unknown result type (might be due to invalid IL or missing references) //IL_3553: Unknown result type (might be due to invalid IL or missing references) //IL_3594: Unknown result type (might be due to invalid IL or missing references) //IL_35a8: Unknown result type (might be due to invalid IL or missing references) //IL_35bc: Unknown result type (might be due to invalid IL or missing references) //IL_35c1: Unknown result type (might be due to invalid IL or missing references) //IL_35c6: Unknown result type (might be due to invalid IL or missing references) //IL_35cb: Unknown result type (might be due to invalid IL or missing references) //IL_360c: Unknown result type (might be due to invalid IL or missing references) //IL_3620: Unknown result type (might be due to invalid IL or missing references) //IL_3634: Unknown result type (might be due to invalid IL or missing references) //IL_3639: Unknown result type (might be due to invalid IL or missing references) //IL_363e: Unknown result type (might be due to invalid IL or missing references) //IL_3643: Unknown result type (might be due to invalid IL or missing references) //IL_3684: Unknown result type (might be due to invalid IL or missing references) //IL_3698: Unknown result type (might be due to invalid IL or missing references) //IL_36ac: Unknown result type (might be due to invalid IL or missing references) //IL_36b1: Unknown result type (might be due to invalid IL or missing references) //IL_36b6: Unknown result type (might be due to invalid IL or missing references) //IL_36bb: Unknown result type (might be due to invalid IL or missing references) //IL_36fc: Unknown result type (might be due to invalid IL or missing references) //IL_3710: Unknown result type (might be due to invalid IL or missing references) //IL_3724: Unknown result type (might be due to invalid IL or missing references) //IL_3729: Unknown result type (might be due to invalid IL or missing references) //IL_372e: Unknown result type (might be due to invalid IL or missing references) //IL_3733: Unknown result type (might be due to invalid IL or missing references) //IL_3774: Unknown result type (might be due to invalid IL or missing references) //IL_3788: Unknown result type (might be due to invalid IL or missing references) //IL_379c: Unknown result type (might be due to invalid IL or missing references) //IL_37a1: Unknown result type (might be due to invalid IL or missing references) //IL_37a6: Unknown result type (might be due to invalid IL or missing references) //IL_37ab: Unknown result type (might be due to invalid IL or missing references) //IL_37ec: Unknown result type (might be due to invalid IL or missing references) //IL_3800: Unknown result type (might be due to invalid IL or missing references) //IL_3814: Unknown result type (might be due to invalid IL or missing references) //IL_3819: Unknown result type (might be due to invalid IL or missing references) //IL_381e: Unknown result type (might be due to invalid IL or missing references) //IL_3823: Unknown result type (might be due to invalid IL or missing references) //IL_3864: Unknown result type (might be due to invalid IL or missing references) //IL_3878: Unknown result type (might be due to invalid IL or missing references) //IL_388c: Unknown result type (might be due to invalid IL or missing references) //IL_3891: Unknown result type (might be due to invalid IL or missing references) //IL_3896: Unknown result type (might be due to invalid IL or missing references) //IL_389b: Unknown result type (might be due to invalid IL or missing references) //IL_38dc: Unknown result type (might be due to invalid IL or missing references) //IL_38f0: Unknown result type (might be due to invalid IL or missing references) //IL_3904: Unknown result type (might be due to invalid IL or missing references) //IL_3909: Unknown result type (might be due to invalid IL or missing references) //IL_390e: Unknown result type (might be due to invalid IL or missing references) //IL_3913: Unknown result type (might be due to invalid IL or missing references) //IL_3954: Unknown result type (might be due to invalid IL or missing references) //IL_3968: Unknown result type (might be due to invalid IL or missing references) //IL_397c: Unknown result type (might be due to invalid IL or missing references) //IL_3981: Unknown result type (might be due to invalid IL or missing references) //IL_3986: Unknown result type (might be due to invalid IL or missing references) //IL_398b: Unknown result type (might be due to invalid IL or missing references) //IL_39cc: Unknown result type (might be due to invalid IL or missing references) //IL_39e0: Unknown result type (might be due to invalid IL or missing references) //IL_39f4: Unknown result type (might be due to invalid IL or missing references) //IL_39f9: Unknown result type (might be due to invalid IL or missing references) //IL_39fe: Unknown result type (might be due to invalid IL or missing references) //IL_3a03: Unknown result type (might be due to invalid IL or missing references) //IL_3a44: Unknown result type (might be due to invalid IL or missing references) //IL_3a58: Unknown result type (might be due to invalid IL or missing references) //IL_3a6c: Unknown result type (might be due to invalid IL or missing references) //IL_3a71: Unknown result type (might be due to invalid IL or missing references) //IL_3a76: Unknown result type (might be due to invalid IL or missing references) //IL_3a7b: Unknown result type (might be due to invalid IL or missing references) //IL_3abc: Unknown result type (might be due to invalid IL or missing references) //IL_3ad0: Unknown result type (might be due to invalid IL or missing references) //IL_3ae4: Unknown result type (might be due to invalid IL or missing references) //IL_3ae9: Unknown result type (might be due to invalid IL or missing references) //IL_3aee: Unknown result type (might be due to invalid IL or missing references) //IL_3af3: Unknown result type (might be due to invalid IL or missing references) //IL_3b34: Unknown result type (might be due to invalid IL or missing references) //IL_3b48: Unknown result type (might be due to invalid IL or missing references) //IL_3b5c: Unknown result type (might be due to invalid IL or missing references) //IL_3b61: Unknown result type (might be due to invalid IL or missing references) //IL_3b66: Unknown result type (might be due to invalid IL or missing references) //IL_3b6b: Unknown result type (might be due to invalid IL or missing references) //IL_3bac: Unknown result type (might be due to invalid IL or missing references) //IL_3bc0: Unknown result type (might be due to invalid IL or missing references) //IL_3bd4: Unknown result type (might be due to invalid IL or missing references) //IL_3bd9: Unknown result type (might be due to invalid IL or missing references) //IL_3bde: Unknown result type (might be due to invalid IL or missing references) //IL_3c03: Unknown result type (might be due to invalid IL or missing references) //IL_3c17: Unknown result type (might be due to invalid IL or missing references) //IL_3c2b: Unknown result type (might be due to invalid IL or missing references) //IL_3c30: Unknown result type (might be due to invalid IL or missing references) //IL_3c35: Unknown result type (might be due to invalid IL or missing references) //IL_3c5a: Unknown result type (might be due to invalid IL or missing references) //IL_3c6e: Unknown result type (might be due to invalid IL or missing references) //IL_3c82: Unknown result type (might be due to invalid IL or missing references) //IL_3c87: Unknown result type (might be due to invalid IL or missing references) //IL_3c8c: Unknown result type (might be due to invalid IL or missing references) //IL_3cb1: Unknown result type (might be due to invalid IL or missing references) //IL_3cc5: Unknown result type (might be due to invalid IL or missing references) //IL_3cd9: Unknown result type (might be due to invalid IL or missing references) //IL_3cde: Unknown result type (might be due to invalid IL or missing references) //IL_3ce3: Unknown result type (might be due to invalid IL or missing references) //IL_3d08: Unknown result type (might be due to invalid IL or missing references) //IL_3d1c: Unknown result type (might be due to invalid IL or missing references) //IL_3d30: Unknown result type (might be due to invalid IL or missing references) //IL_3d35: Unknown result type (might be due to invalid IL or missing references) //IL_3d3a: Unknown result type (might be due to invalid IL or missing references) //IL_3d5f: Unknown result type (might be due to invalid IL or missing references) //IL_3d73: Unknown result type (might be due to invalid IL or missing references) //IL_3d87: Unknown result type (might be due to invalid IL or missing references) //IL_3d8c: Unknown result type (might be due to invalid IL or missing references) //IL_3d91: Unknown result type (might be due to invalid IL or missing references) //IL_3d96: Unknown result type (might be due to invalid IL or missing references) //IL_3dd7: Unknown result type (might be due to invalid IL or missing references) //IL_3deb: Unknown result type (might be due to invalid IL or missing references) //IL_3dff: Unknown result type (might be due to invalid IL or missing references) //IL_3e04: Unknown result type (might be due to invalid IL or missing references) //IL_3e09: Unknown result type (might be due to invalid IL or missing references) //IL_3e0e: Unknown result type (might be due to invalid IL or missing references) //IL_3e4f: Unknown result type (might be due to invalid IL or missing references) //IL_3e63: Unknown result type (might be due to invalid IL or missing references) //IL_3e77: Unknown result type (might be due to invalid IL or missing references) //IL_3e7c: Unknown result type (might be due to invalid IL or missing references) //IL_3e81: Unknown result type (might be due to invalid IL or missing references) //IL_3e86: Unknown result type (might be due to invalid IL or missing references) //IL_3ec7: Unknown result type (might be due to invalid IL or missing references) //IL_3edb: Unknown result type (might be due to invalid IL or missing references) //IL_3eef: Unknown result type (might be due to invalid IL or missing references) //IL_3ef4: Unknown result type (might be due to invalid IL or missing references) //IL_3ef9: Unknown result type (might be due to invalid IL or missing references) //IL_3f1e: Unknown result type (might be due to invalid IL or missing references) //IL_3f32: Unknown result type (might be due to invalid IL or missing references) //IL_3f46: Unknown result type (might be due to invalid IL or missing references) //IL_3f4b: Unknown result type (might be due to invalid IL or missing references) //IL_3f50: Unknown result type (might be due to invalid IL or missing references) //IL_3f55: Unknown result type (might be due to invalid IL or missing references) //IL_3f96: Unknown result type (might be due to invalid IL or missing references) //IL_3faa: Unknown result type (might be due to invalid IL or missing references) //IL_3fbe: Unknown result type (might be due to invalid IL or missing references) //IL_3fc3: Unknown result type (might be due to invalid IL or missing references) //IL_3fc8: Unknown result type (might be due to invalid IL or missing references) //IL_3fcd: Unknown result type (might be due to invalid IL or missing references) //IL_400e: Unknown result type (might be due to invalid IL or missing references) //IL_4022: Unknown result type (might be due to invalid IL or missing references) //IL_4036: Unknown result type (might be due to invalid IL or missing references) //IL_403b: Unknown result type (might be due to invalid IL or missing references) //IL_4040: Unknown result type (might be due to invalid IL or missing references) //IL_4045: Unknown result type (might be due to invalid IL or missing references) //IL_4086: Unknown result type (might be due to invalid IL or missing references) //IL_409a: Unknown result type (might be due to invalid IL or missing references) //IL_40ae: Unknown result type (might be due to invalid IL or missing references) //IL_40b3: Unknown result type (might be due to invalid IL or missing references) //IL_40b8: Unknown result type (might be due to invalid IL or missing references) //IL_40bd: Unknown result type (might be due to invalid IL or missing references) //IL_40fe: Unknown result type (might be due to invalid IL or missing references) //IL_4112: Unknown result type (might be due to invalid IL or missing references) //IL_4126: Unknown result type (might be due to invalid IL or missing references) //IL_412b: Unknown result type (might be due to invalid IL or missing references) //IL_4130: Unknown result type (might be due to invalid IL or missing references) //IL_4135: Unknown result type (might be due to invalid IL or missing references) //IL_4176: Unknown result type (might be due to invalid IL or missing references) //IL_418a: Unknown result type (might be due to invalid IL or missing references) //IL_419e: Unknown result type (might be due to invalid IL or missing references) //IL_41a3: Unknown result type (might be due to invalid IL or missing references) //IL_41a8: Unknown result type (might be due to invalid IL or missing references) //IL_41ad: Unknown result type (might be due to invalid IL or missing references) //IL_41ee: Unknown result type (might be due to invalid IL or missing references) //IL_4202: Unknown result type (might be due to invalid IL or missing references) //IL_4216: Unknown result type (might be due to invalid IL or missing references) //IL_421b: Unknown result type (might be due to invalid IL or missing references) //IL_4220: Unknown result type (might be due to invalid IL or missing references) //IL_4245: Unknown result type (might be due to invalid IL or missing references) //IL_4259: Unknown result type (might be due to invalid IL or missing references) //IL_426d: Unknown result type (might be due to invalid IL or missing references) //IL_4272: Unknown result type (might be due to invalid IL or missing references) //IL_4277: Unknown result type (might be due to invalid IL or missing references) //IL_427c: Unknown result type (might be due to invalid IL or missing references) //IL_42bd: Unknown result type (might be due to invalid IL or missing references) //IL_42d1: Unknown result type (might be due to invalid IL or missing references) //IL_42e5: Unknown result type (might be due to invalid IL or missing references) //IL_42ea: Unknown result type (might be due to invalid IL or missing references) //IL_42ef: Unknown result type (might be due to invalid IL or missing references) //IL_42f4: Unknown result type (might be due to invalid IL or missing references) //IL_4335: Unknown result type (might be due to invalid IL or missing references) //IL_4349: Unknown result type (might be due to invalid IL or missing references) //IL_435d: Unknown result type (might be due to invalid IL or missing references) //IL_4362: Unknown result type (might be due to invalid IL or missing references) //IL_4367: Unknown result type (might be due to invalid IL or missing references) //IL_436c: Unknown result type (might be due to invalid IL or missing references) //IL_43ad: Unknown result type (might be due to invalid IL or missing references) //IL_43c1: Unknown result type (might be due to invalid IL or missing references) //IL_43d5: Unknown result type (might be due to invalid IL or missing references) //IL_43da: Unknown result type (might be due to invalid IL or missing references) //IL_43df: Unknown result type (might be due to invalid IL or missing references) //IL_43e4: Unknown result type (might be due to invalid IL or missing references) //IL_4425: Unknown result type (might be due to invalid IL or missing references) //IL_4439: Unknown result type (might be due to invalid IL or missing references) //IL_444d: Unknown result type (might be due to invalid IL or missing references) //IL_4452: Unknown result type (might be due to invalid IL or missing references) //IL_4457: Unknown result type (might be due to invalid IL or missing references) //IL_445c: Unknown result type (might be due to invalid IL or missing references) //IL_449d: Unknown result type (might be due to invalid IL or missing references) //IL_44b1: Unknown result type (might be due to invalid IL or missing references) //IL_44c5: Unknown result type (might be due to invalid IL or missing references) //IL_44ca: Unknown result type (might be due to invalid IL or missing references) //IL_44cf: Unknown result type (might be due to invalid IL or missing references) //IL_44d4: Unknown result type (might be due to invalid IL or missing references) //IL_4515: Unknown result type (might be due to invalid IL or missing references) //IL_4529: Unknown result type (might be due to invalid IL or missing references) //IL_453d: Unknown result type (might be due to invalid IL or missing references) //IL_4542: Unknown result type (might be due to invalid IL or missing references) //IL_4547: Unknown result type (might be due to invalid IL or missing references) //IL_454c: Unknown result type (might be due to invalid IL or missing references) //IL_458d: Unknown result type (might be due to invalid IL or missing references) //IL_45a1: Unknown result type (might be due to invalid IL or missing references) //IL_45b5: Unknown result type (might be due to invalid IL or missing references) //IL_45ba: Unknown result type (might be due to invalid IL or missing references) //IL_45bf: Unknown result type (might be due to invalid IL or missing references) //IL_45c4: Unknown result type (might be due to invalid IL or missing references) //IL_4605: Unknown result type (might be due to invalid IL or missing references) //IL_4619: Unknown result type (might be due to invalid IL or missing references) //IL_462d: Unknown result type (might be due to invalid IL or missing references) //IL_4632: Unknown result type (might be due to invalid IL or missing references) //IL_4637: Unknown result type (might be due to invalid IL or missing references) //IL_463c: Unknown result type (might be due to invalid IL or missing references) //IL_467d: Unknown result type (might be due to invalid IL or missing references) //IL_4691: Unknown result type (might be due to invalid IL or missing references) //IL_46a5: Unknown result type (might be due to invalid IL or missing references) //IL_46aa: Unknown result type (might be due to invalid IL or missing references) //IL_46af: Unknown result type (might be due to invalid IL or missing references) //IL_46b4: Unknown result type (might be due to invalid IL or missing references) //IL_46f5: Unknown result type (might be due to invalid IL or missing references) //IL_4709: Unknown result type (might be due to invalid IL or missing references) //IL_471d: Unknown result type (might be due to invalid IL or missing references) //IL_4722: Unknown result type (might be due to invalid IL or missing references) //IL_4727: Unknown result type (might be due to invalid IL or missing references) //IL_474c: Unknown result type (might be due to invalid IL or missing references) //IL_4760: Unknown result type (might be due to invalid IL or missing references) //IL_4774: Unknown result type (might be due to invalid IL or missing references) //IL_4779: Unknown result type (might be due to invalid IL or missing references) //IL_477e: Unknown result type (might be due to invalid IL or missing references) //IL_4783: Unknown result type (might be due to invalid IL or missing references) //IL_47c4: Unknown result type (might be due to invalid IL or missing references) //IL_47d8: Unknown result type (might be due to invalid IL or missing references) //IL_47ec: Unknown result type (might be due to invalid IL or missing references) //IL_47f1: Unknown result type (might be due to invalid IL or missing references) //IL_47f6: Unknown result type (might be due to invalid IL or missing references) //IL_47fb: Unknown result type (might be due to invalid IL or missing references) //IL_483c: Unknown result type (might be due to invalid IL or missing references) //IL_4850: Unknown result type (might be due to invalid IL or missing references) //IL_4864: Unknown result type (might be due to invalid IL or missing references) //IL_4869: Unknown result type (might be due to invalid IL or missing references) //IL_486e: Unknown result type (might be due to invalid IL or missing references) //IL_4873: Unknown result type (might be due to invalid IL or missing references) //IL_48b4: Unknown result type (might be due to invalid IL or missing references) //IL_48c8: Unknown result type (might be due to invalid IL or missing references) //IL_48dc: Unknown result type (might be due to invalid IL or missing references) //IL_48e1: Unknown result type (might be due to invalid IL or missing references) //IL_48e6: Unknown result type (might be due to invalid IL or missing references) //IL_490b: Unknown result type (might be due to invalid IL or missing references) //IL_491f: Unknown result type (might be due to invalid IL or missing references) //IL_4933: Unknown result type (might be due to invalid IL or missing references) //IL_4938: Unknown result type (might be due to invalid IL or missing references) //IL_493d: Unknown result type (might be due to invalid IL or missing references) //IL_4942: Unknown result type (might be due to invalid IL or missing references) //IL_4983: Unknown result type (might be due to invalid IL or missing references) //IL_4997: Unknown result type (might be due to invalid IL or missing references) //IL_49ab: Unknown result type (might be due to invalid IL or missing references) //IL_49b0: Unknown result type (might be due to invalid IL or missing references) //IL_49b5: Unknown result type (might be due to invalid IL or missing references) //IL_49ba: Unknown result type (might be due to invalid IL or missing references) //IL_49fb: Unknown result type (might be due to invalid IL or missing references) //IL_4a0f: Unknown result type (might be due to invalid IL or missing references) //IL_4a23: Unknown result type (might be due to invalid IL or missing references) //IL_4a28: Unknown result type (might be due to invalid IL or missing references) //IL_4a2d: Unknown result type (might be due to invalid IL or missing references) //IL_4a32: Unknown result type (might be due to invalid IL or missing references) //IL_4a73: Unknown result type (might be due to invalid IL or missing references) //IL_4a87: Unknown result type (might be due to invalid IL or missing references) //IL_4a9b: Unknown result type (might be due to invalid IL or missing references) //IL_4aa0: Unknown result type (might be due to invalid IL or missing references) //IL_4aa5: Unknown result type (might be due to invalid IL or missing references) //IL_4aaa: Unknown result type (might be due to invalid IL or missing references) //IL_4aeb: Unknown result type (might be due to invalid IL or missing references) //IL_4aff: Unknown result type (might be due to invalid IL or missing references) //IL_4b13: Unknown result type (might be due to invalid IL or missing references) //IL_4b18: Unknown result type (might be due to invalid IL or missing references) //IL_4b1d: Unknown result type (might be due to invalid IL or missing references) //IL_4b22: Unknown result type (might be due to invalid IL or missing references) //IL_4b63: Unknown result type (might be due to invalid IL or missing references) //IL_4b77: Unknown result type (might be due to invalid IL or missing references) //IL_4b8b: Unknown result type (might be due to invalid IL or missing references) //IL_4b90: Unknown result type (might be due to invalid IL or missing references) //IL_4b95: Unknown result type (might be due to invalid IL or missing references) //IL_4b9a: Unknown result type (might be due to invalid IL or missing references) //IL_4bdb: Unknown result type (might be due to invalid IL or missing references) //IL_4bef: Unknown result type (might be due to invalid IL or missing references) //IL_4c03: Unknown result type (might be due to invalid IL or missing references) //IL_4c08: Unknown result type (might be due to invalid IL or missing references) //IL_4c0d: Unknown result type (might be due to invalid IL or missing references) //IL_4c12: Unknown result type (might be due to invalid IL or missing references) //IL_4c53: Unknown result type (might be due to invalid IL or missing references) //IL_4c67: Unknown result type (might be due to invalid IL or missing references) //IL_4c7b: Unknown result type (might be due to invalid IL or missing references) //IL_4c80: Unknown result type (might be due to invalid IL or missing references) //IL_4c85: Unknown result type (might be due to invalid IL or missing references) //IL_4c8a: Unknown result type (might be due to invalid IL or missing references) //IL_4ccb: Unknown result type (might be due to invalid IL or missing references) //IL_4cdf: Unknown result type (might be due to invalid IL or missing references) //IL_4cf3: Unknown result type (might be due to invalid IL or missing references) //IL_4cf8: Unknown result type (might be due to invalid IL or missing references) //IL_4cfd: Unknown result type (might be due to invalid IL or missing references) //IL_4d02: Unknown result type (might be due to invalid IL or missing references) //IL_4d43: Unknown result type (might be due to invalid IL or missing references) //IL_4d57: Unknown result type (might be due to invalid IL or missing references) //IL_4d6b: Unknown result type (might be due to invalid IL or missing references) //IL_4d70: Unknown result type (might be due to invalid IL or missing references) //IL_4d75: Unknown result type (might be due to invalid IL or missing references) //IL_4d7a: Unknown result type (might be due to invalid IL or missing references) //IL_4dbb: Unknown result type (might be due to invalid IL or missing references) //IL_4dcf: Unknown result type (might be due to invalid IL or missing references) //IL_4de3: Unknown result type (might be due to invalid IL or missing references) //IL_4de8: Unknown result type (might be due to invalid IL or missing references) //IL_4ded: Unknown result type (might be due to invalid IL or missing references) //IL_4df2: Unknown result type (might be due to invalid IL or missing references) //IL_4e33: Unknown result type (might be due to invalid IL or missing references) //IL_4e47: Unknown result type (might be due to invalid IL or missing references) //IL_4e5b: Unknown result type (might be due to invalid IL or missing references) //IL_4e60: Unknown result type (might be due to invalid IL or missing references) //IL_4e65: Unknown result type (might be due to invalid IL or missing references) //IL_4e6a: Unknown result type (might be due to invalid IL or missing references) //IL_4eab: Unknown result type (might be due to invalid IL or missing references) //IL_4ebf: Unknown result type (might be due to invalid IL or missing references) //IL_4ed3: Unknown result type (might be due to invalid IL or missing references) //IL_4ed8: Unknown result type (might be due to invalid IL or missing references) //IL_4edd: Unknown result type (might be due to invalid IL or missing references) //IL_4ee2: Unknown result type (might be due to invalid IL or missing references) //IL_4f23: Unknown result type (might be due to invalid IL or missing references) //IL_4f37: Unknown result type (might be due to invalid IL or missing references) //IL_4f4b: Unknown result type (might be due to invalid IL or missing references) //IL_4f50: Unknown result type (might be due to invalid IL or missing references) //IL_4f55: Unknown result type (might be due to invalid IL or missing references) //IL_4f5d: Unknown result type (might be due to invalid IL or missing references) //IL_4f62: Unknown result type (might be due to invalid IL or missing references) //IL_4f67: Unknown result type (might be due to invalid IL or missing references) //IL_4fa8: Unknown result type (might be due to invalid IL or missing references) //IL_4fbc: Unknown result type (might be due to invalid IL or missing references) //IL_4fd0: Unknown result type (might be due to invalid IL or missing references) //IL_4fd5: Unknown result type (might be due to invalid IL or missing references) //IL_4fda: Unknown result type (might be due to invalid IL or missing references) //IL_4fdf: Unknown result type (might be due to invalid IL or missing references) //IL_5020: Unknown result type (might be due to invalid IL or missing references) //IL_5034: Unknown result type (might be due to invalid IL or missing references) //IL_5048: Unknown result type (might be due to invalid IL or missing references) //IL_504d: Unknown result type (might be due to invalid IL or missing references) //IL_5052: Unknown result type (might be due to invalid IL or missing references) //IL_5057: Unknown result type (might be due to invalid IL or missing references) //IL_5098: Unknown result type (might be due to invalid IL or missing references) //IL_50ac: Unknown result type (might be due to invalid IL or missing references) //IL_50c0: Unknown result type (might be due to invalid IL or missing references) //IL_50c5: Unknown result type (might be due to invalid IL or missing references) //IL_50ca: Unknown result type (might be due to invalid IL or missing references) //IL_50cf: Unknown result type (might be due to invalid IL or missing references) //IL_5110: Unknown result type (might be due to invalid IL or missing references) //IL_5124: Unknown result type (might be due to invalid IL or missing references) //IL_5138: Unknown result type (might be due to invalid IL or missing references) //IL_513d: Unknown result type (might be due to invalid IL or missing references) //IL_5142: Unknown result type (might be due to invalid IL or missing references) //IL_5147: Unknown result type (might be due to invalid IL or missing references) //IL_5188: Unknown result type (might be due to invalid IL or missing references) //IL_519c: Unknown result type (might be due to invalid IL or missing references) //IL_51b0: Unknown result type (might be due to invalid IL or missing references) //IL_51b5: Unknown result type (might be due to invalid IL or missing references) //IL_51ba: Unknown result type (might be due to invalid IL or missing references) //IL_51bf: Unknown result type (might be due to invalid IL or missing references) //IL_5200: Unknown result type (might be due to invalid IL or missing references) //IL_5214: Unknown result type (might be due to invalid IL or missing references) //IL_5228: Unknown result type (might be due to invalid IL or missing references) //IL_522d: Unknown result type (might be due to invalid IL or missing references) //IL_5232: Unknown result type (might be due to invalid IL or missing references) //IL_5237: Unknown result type (might be due to invalid IL or missing references) //IL_5278: Unknown result type (might be due to invalid IL or missing references) //IL_528c: Unknown result type (might be due to invalid IL or missing references) //IL_52a0: Unknown result type (might be due to invalid IL or missing references) //IL_52a5: Unknown result type (might be due to invalid IL or missing references) //IL_52aa: Unknown result type (might be due to invalid IL or missing references) //IL_52af: Unknown result type (might be due to invalid IL or missing references) //IL_52f0: Unknown result type (might be due to invalid IL or missing references) //IL_5304: Unknown result type (might be due to invalid IL or missing references) //IL_5318: Unknown result type (might be due to invalid IL or missing references) //IL_531d: Unknown result type (might be due to invalid IL or missing references) //IL_5322: Unknown result type (might be due to invalid IL or missing references) //IL_5327: Unknown result type (might be due to invalid IL or missing references) //IL_5368: Unknown result type (might be due to invalid IL or missing references) //IL_537c: Unknown result type (might be due to invalid IL or missing references) //IL_5390: Unknown result type (might be due to invalid IL or missing references) //IL_5395: Unknown result type (might be due to invalid IL or missing references) //IL_539a: Unknown result type (might be due to invalid IL or missing references) //IL_539f: Unknown result type (might be due to invalid IL or missing references) //IL_53e0: Unknown result type (might be due to invalid IL or missing references) //IL_53f4: Unknown result type (might be due to invalid IL or missing references) //IL_5408: Unknown result type (might be due to invalid IL or missing references) //IL_540d: Unknown result type (might be due to invalid IL or missing references) //IL_5412: Unknown result type (might be due to invalid IL or missing references) //IL_5417: Unknown result type (might be due to invalid IL or missing references) //IL_5458: Unknown result type (might be due to invalid IL or missing references) //IL_546c: Unknown result type (might be due to invalid IL or missing references) //IL_5480: Unknown result type (might be due to invalid IL or missing references) //IL_5485: Unknown result type (might be due to invalid IL or missing references) //IL_548a: Unknown result type (might be due to invalid IL or missing references) //IL_548f: Unknown result type (might be due to invalid IL or missing references) itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AlienHead"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAlienHead"), "Chest", new Vector3(-0.22836f, -0.0607f, 0.02364f), new Vector3(275.4761f, 39.75848f, 230.3732f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorPlate"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRepulsionArmorPlate"), "Chest", new Vector3(0.04097f, 0.23346f, -0.18211f), new Vector3(270f, 180f, 0f), new Vector3(0.32704f, 0.32704f, 0.32704f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ArmorReductionOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarhammer"), "Chest", new Vector3(0.21537f, 0.50305f, -0.28929f), new Vector3(307.5285f, 92.8965f, 267.7022f), new Vector3(0.38161f, 0.38161f, 0.38161f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedAndMoveSpeed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCoffee"), "Chest", new Vector3(-0.24289f, 0.01405f, 0.02006f), new Vector3(347.9057f, 8.53998f, 352.3178f), new Vector3(0.15865f, 0.15865f, 0.15865f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AttackSpeedOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWolfPelt"), "Head", new Vector3(0f, 0.27047f, 0.06131f), new Vector3(0f, 0f, 0f), new Vector3(0.49893f, 0.49893f, 0.49893f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["AutoCastEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFossil"), "Chest", new Vector3(-0.28162f, 0.35172f, -0.11873f), new Vector3(0.16693f, 1.06436f, 342.1766f), new Vector3(0.61133f, 0.61133f, 0.61133f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bandolier"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBandolier"), "Chest", new Vector3(0.00239f, -0.12299f, -0.00737f), new Vector3(270f, 0f, 0f), new Vector3(0.46002f, 0.46002f, 0.46002f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrooch"), "Chest", new Vector3(-0.28731f, 0.33665f, -0.12407f), new Vector3(70.78168f, 255.7213f, 346.0124f), new Vector3(0.72337f, 0.72337f, 0.72337f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BarrierOnOverHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAegis"), "Base", new Vector3(0.01287f, 0.30071f, 0.27752f), new Vector3(0f, 0f, 180f), new Vector3(0.32972f, 0.32972f, 0.32972f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Bear"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBear"), "Chest", new Vector3(-0.15314f, 0.5001f, -0.04922f), new Vector3(0.09832f, 359.1789f, 13.65848f), new Vector3(0.15402f, 0.15402f, 0.15402f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BearVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBearVoid"), "Chest", new Vector3(-0.15314f, 0.5001f, -0.04922f), new Vector3(0.09832f, 359.1789f, 13.65848f), new Vector3(0.15402f, 0.15402f, 0.15402f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BeetleGland"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeetleGland"), "Chest", new Vector3(0.26902f, -0.16111f, 0.00791f), new Vector3(356.2571f, 152.9436f, 311.4961f), new Vector3(0.10258f, 0.10578f, 0.10578f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Behemoth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBehemoth"), "Gun", new Vector3(-0.00416f, 0.04763f, 0.07932f), new Vector3(0f, 351.7302f, 180f), new Vector3(0.06758f, 0.06758f, 0.06758f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTip"), "Gun", new Vector3(-0.01933f, 0.22514f, 0.00288f), new Vector3(270.6881f, 0f, 0f), new Vector3(0.41163f, 0.41163f, 0.41163f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitAndExplode"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBleedOnHitAndExplode"), "Chest", new Vector3(-0.16044f, -0.2267f, -0.10126f), new Vector3(334.84f, 1.71427f, 340.8119f), new Vector3(0.10397f, 0.10397f, 0.10397f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BleedOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTriTipVoid"), "Gun", new Vector3(-0.00155f, -0.01315f, -0.00019f), new Vector3(272.7347f, 292.3364f, 55.18313f), new Vector3(0.38047f, 0.38047f, 0.62126f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BonusGoldPackOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTome"), "ThighL", new Vector3(0.14704f, 0.17491f, 0.02078f), new Vector3(5.77171f, 73.43825f, 186.8631f), new Vector3(0.0973f, 0.0973f, 0.0973f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAPRound"), "Chest", new Vector3(-0.01351f, -0.14645f, 0.16207f), new Vector3(90f, 351.3999f, 0f), new Vector3(0.37249f, 0.37249f, 0.37249f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BounceNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHook"), "Chest", new Vector3(0.19872f, 0.39747f, -0.05928f), new Vector3(0f, 0f, 340.2585f), new Vector3(0.24562f, 0.24562f, 0.24562f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkulele"), "Chest", new Vector3(-0.0715f, 0.22055f, -0.34052f), new Vector3(0.02289f, 186.5719f, 35.4724f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ChainLightningVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayUkuleleVoid"), "Chest", new Vector3(-0.0715f, 0.22055f, -0.34052f), new Vector3(0.02289f, 186.5719f, 35.4724f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Clover"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayClover"), "Chest", new Vector3(0.01866f, 0.82636f, 0.04321f), new Vector3(0f, 0f, 0f), new Vector3(0.78719f, 0.78719f, 0.78719f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CloverVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCloverVoid"), "Chest", new Vector3(0f, 0.81989f, 0.04976f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CooldownOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkull"), "Finger42R", new Vector3(0.02337f, -0.01204f, 0.00126f), new Vector3(52.80724f, 88.56924f, 2.5003f), new Vector3(0.04065f, 0.04065f, 0.04065f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritDamage"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserSight"), "Gun", new Vector3(-0.00402f, 0.13794f, 0.10269f), new Vector3(2.13648f, 267.8749f, 270.4373f), new Vector3(0.08767f, 0.08767f, 0.08767f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlasses"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlasses"), "Head", new Vector3(0f, 0.23573f, 0.17499f), new Vector3(0f, 0f, 0f), new Vector3(0.23784f, 0.23784f, 0.23784f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritGlassesVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlassesVoid"), "Head", new Vector3(0f, 0.23573f, 0.17499f), new Vector3(0f, 0f, 0f), new Vector3(0.23784f, 0.23784f, 0.23784f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Crowbar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCrowbar"), "Chest", new Vector3(-0.03712f, -5E-05f, -0.23938f), new Vector3(0f, 0f, 326.3258f), new Vector3(0.50935f, 0.50935f, 0.50935f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Dagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDagger"), "UpperArmR", new Vector3(0.06125f, -0.10136f, 0.01567f), new Vector3(354.5378f, 303.1844f, 145.2471f), new Vector3(0.91742f, 0.91742f, 0.91742f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathMark"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathMark"), "Head", new Vector3(0f, 0.27984f, 0.05198f), new Vector3(275.0362f, 0.00022f, -0.00022f), new Vector3(0.0837f, 0.0837f, 0.08f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElementalRingVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVoidRing"), "HandR", new Vector3(0.0082f, 0.00239f, 0.00011f), new Vector3(282.1854f, 270.6395f, 170.7254f), new Vector3(0.54468f, 0.54468f, 0.54468f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EmpowerAlways"], ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)1), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHeadNeck"), "Chest", new Vector3(0f, 0.40649f, 0.02492f), new Vector3(23.3864f, 22.63947f, 12.33223f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySunHead"), "Chest", new Vector3(-0.28531f, -0.16089f, 0.01824f), new Vector3(0f, 0f, 0f), new Vector3(0.788f, 0.788f, 0.788f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EnergizedOnEquipmentUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarHorn"), "Head", new Vector3(0.10626f, 0.09779f, 0.27158f), new Vector3(2.48558f, 315.6647f, 1.04667f), new Vector3(0.25889f, 0.25889f, 0.25889f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBattery"), "Chest", new Vector3(0.06608f, -0.11833f, 0.13534f), new Vector3(78.29298f, 19.26927f, 54.05775f), new Vector3(0.07648f, 0.07648f, 0.07648f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EquipmentMagazineVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFuelCellVoid"), "Chest", new Vector3(0.06608f, -0.11833f, 0.13534f), new Vector3(78.29298f, 19.26927f, 54.05775f), new Vector3(0.07648f, 0.07648f, 0.07648f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExecuteLowHealthElite"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGuillotine"), "ThighL", new Vector3(0.14302f, 0.11044f, 0.01145f), new Vector3(78.28942f, 217.458f, 324.143f), new Vector3(0.23425f, 0.23425f, 0.23425f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeath"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWilloWisp"), "Chest", new Vector3(0.27888f, -0.1854f, 0.00737f), new Vector3(2.85769f, 359.4591f, 11.87494f), new Vector3(0.10542f, 0.10542f, 0.10542f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExplodeOnDeathVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWillowWispVoid"), "Chest", new Vector3(0.2714f, -0.14995f, 0.00907f), new Vector3(2.85769f, 359.459f, 11.87494f), new Vector3(0.11938f, 0.11938f, 0.11938f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLife"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippo"), "Chest", new Vector3(-0.22058f, 0.45386f, -0.05491f), new Vector3(349.3331f, 337.7769f, 10.13284f), new Vector3(0.1464f, 0.1464f, 0.1464f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ExtraLifeVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHippoVoid"), "Chest", new Vector3(-0.18824f, 0.45137f, -0.11074f), new Vector3(346.1329f, 270.6207f, 7.90792f), new Vector3(0.15503f, 0.15503f, 0.15503f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FallBoots"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "FootL", new Vector3(0.00169f, -0.01231f, 0.03811f), new Vector3(60.92217f, 179.3294f, 357.576f), new Vector3(0.19788f, 0.19788f, 0.19788f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravBoots"), "FootR", new Vector3(0.00169f, -0.01231f, 0.03811f), new Vector3(60.92215f, 179.3294f, 357.576f), new Vector3(0.19788f, 0.19788f, 0.19788f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Feather"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFeather"), "Chest", new Vector3(0f, -0.20114f, 0.00407f), new Vector3(294.8356f, 203.3323f, 180.8631f), new Vector3(0.06371f, 0.06371f, 0.06371f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireRing"), "HandR", new Vector3(0.0082f, 0.00239f, 0.00011f), new Vector3(282.1854f, 270.6395f, 170.7254f), new Vector3(0.54468f, 0.54468f, 0.54468f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireballsOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFireballsOnHit"), "Gun", new Vector3(-6E-05f, 0.34057f, 0.11171f), new Vector3(270f, 180f, 0f), new Vector3(0.07659f, 0.07659f, 0.07659f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Firework"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFirework"), "Chest", new Vector3(0.11208f, -0.13512f, 0.10882f), new Vector3(283.2318f, 212.4988f, 118.4696f), new Vector3(0.18998f, 0.18998f, 0.18998f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FlatHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySteakCurved"), "Chest", new Vector3(-0.19051f, -0.0172f, 0.11292f), new Vector3(346.0077f, 297.5741f, 84.91856f), new Vector3(0.08683f, 0.08683f, 0.08683f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FocusConvergence"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFocusedConvergence"), "Chest", new Vector3(-0.43774f, 0.42938f, -0.10831f), new Vector3(0f, 0f, 0f), new Vector3(0.06349f, 0.06349f, 0.06349f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FragileDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDelicateWatch"), "HandR", new Vector3(0f, 1E-05f, -0.00383f), new Vector3(90f, 270f, 0f), new Vector3(0.34198f, 0.5758f, 0.32066f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FreeChest"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShippingRequestForm"), "ThighL", new Vector3(0.18999f, 0.1918f, 0.03936f), new Vector3(279.9932f, 19.45694f, 232.4752f), new Vector3(0.62927f, 0.62927f, 0.62927f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GhostOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMask"), "Head", new Vector3(0.00161f, 0.22703f, 0.11234f), new Vector3(0f, 0f, 0f), new Vector3(0.78024f, 0.78024f, 0.78024f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBoneCrown"), "Head", new Vector3(0.0017f, 0.24946f, 0.07578f), new Vector3(8.59304f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldOnHurt"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRollOfPennies"), "Chest", new Vector3(-0.11694f, -0.13282f, 0.13604f), new Vector3(0f, 0f, 0f), new Vector3(0.34955f, 0.34955f, 0.34955f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfAttackSpeedHalfCooldowns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderNature"), "UpperArmR", new Vector3(0.00676f, 0.03388f, 0.01492f), new Vector3(354.5445f, 103.0057f, 221.2348f), new Vector3(0.69622f, 0.69622f, 0.69622f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HalfSpeedDoubleHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarShoulderStone"), "UpperArmL", new Vector3(-0.029f, 0.01144f, -0.01382f), new Vector3(6.77242f, 62.84494f, 203.6213f), new Vector3(0.69622f, 0.69622f, 0.69622f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HeadHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySkullcrown"), "Head", new Vector3(0f, 0.29472f, 0.05169f), new Vector3(0f, 0f, 0f), new Vector3(0.45493f, 0.2365f, 0.09086f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealOnCrit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScythe"), "Gun", new Vector3(-0.01428f, 0.18089f, 0.0242f), new Vector3(85.7634f, 0f, 270f), new Vector3(0.38442f, 0.38442f, 0.38442f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealWhileSafe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySnail"), "Chest", new Vector3(-0.20324f, -0.14697f, 0.1256f), new Vector3(7.24479f, 129.7015f, 6.88009f), new Vector3(0.05975f, 0.05975f, 0.05975f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["HealingPotion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHealingPotion"), "Chest", new Vector3(0.23457f, -0.03661f, -0.11816f), new Vector3(16.88081f, 0f, 7.98853f), new Vector3(0.05569f, 0.05569f, 0.05569f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Hoof"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayHoof"), "CalfR", new Vector3(-0.01794f, 0.34936f, -0.05554f), new Vector3(78.87335f, 9.84849f, 340.4441f), new Vector3(0.07894f, 0.07894f, 0.07894f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)8))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IceRing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIceRing"), "HandL", new Vector3(0.0082f, 0.00239f, 0.00011f), new Vector3(282.1852f, 270.6395f, 170.725f), new Vector3(0.54468f, 0.54468f, 0.54468f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Icicle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFrostRelic"), "Chest", new Vector3(0.32419f, 0.45696f, -0.0838f), new Vector3(62.26155f, 80.99998f, 180f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IgniteOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasoline"), "Chest", new Vector3(-0.03808f, 0.15311f, -0.24884f), new Vector3(270.3f, 270f, 180f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ImmuneToDebuff"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRainCoatBelt"), "Chest", new Vector3(-0.03061f, -0.2341f, -1E-05f), new Vector3(0f, 0f, 0f), new Vector3(1.32459f, 1.32459f, 1.32459f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IncreaseHealing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Head", new Vector3(-0.07838f, 0.31546f, 0.068f), new Vector3(0f, 90f, 180f), new Vector3(-0.33047f, -0.33047f, -0.33047f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAntler"), "Head", new Vector3(0.07838f, 0.31552f, 0.068f), new Vector3(0f, 90f, 0f), new Vector3(0.33047f, 0.33047f, 0.33047f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Incubator"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAncestralIncubator"), "Chest", new Vector3(0.31286f, -0.28976f, 0f), new Vector3(0f, 0f, 13.79489f), new Vector3(0.03338f, 0.03338f, 0.03338f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Infusion"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInfusion"), "Chest", new Vector3(-0.05905f, 0.23041f, 0.1367f), new Vector3(0f, 353.612f, 0f), new Vector3(0.27402f, 0.27402f, 0.27402f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["JumpBoost"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaxBird"), "Head", new Vector3(0f, -0.21772f, 0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["KillEliteFrenzy"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrainstalk"), "Head", new Vector3(0f, 0.19609f, 1E-05f), new Vector3(0f, 0f, 0f), new Vector3(0.3178f, 0.42325f, 0.3178f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Knurl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKnurl"), "Chest", new Vector3(0.25657f, -0.14036f, 0.00563f), new Vector3(274.7333f, -2E-05f, 349.4195f), new Vector3(0.08402f, 0.08402f, 0.08402f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LaserTurbine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLaserTurbine"), "UpperArmL", new Vector3(-0.0155f, 0.02429f, -0.05585f), new Vector3(351.0468f, 348.7645f, 354.0932f), new Vector3(0.28394f, 0.28394f, 0.28394f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LightningStrikeOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayChargedPerforator"), "Gun", new Vector3(0f, 0.277f, 0.09152f), new Vector3(-1E-05f, 1E-05f, 180f), new Vector3(1.39348f, 1.39348f, 1.39348f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarDagger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarDagger"), "HandR", new Vector3(0.03414f, 0.08954f, -0.04024f), new Vector3(48.57396f, 179.2072f, 284.3542f), new Vector3(0.58518f, 0.58518f, 0.58518f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPrimaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdEye"), "Head", new Vector3(-0.06836f, 0.2429f, 0.15176f), new Vector3(276.1996f, 353.8826f, 6.7643f), new Vector3(0.13369f, 0.13369f, 0.13369f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSecondaryReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdClaw"), "Chest", new Vector3(-0.19486f, 0.44745f, -0.16692f), new Vector3(3.02249f, 300.4318f, 14.50103f), new Vector3(0.59643f, 0.59643f, 0.59643f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarSpecialReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdHeart"), "Chest", new Vector3(0.28593f, -0.15073f, 0.03255f), new Vector3(329.3064f, 0f, -1E-05f), new Vector3(0.2171f, 0.2171f, 0.2171f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarTrinket"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBeads"), "HandL", new Vector3(-0.01284f, 0.02157f, 0.00697f), new Vector3(345.1651f, 346.1463f, 257.587f), new Vector3(0.75225f, 0.75225f, 0.75225f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarUtilityReplacement"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBirdFoot"), "CalfL", new Vector3(0.03068f, -0.10339f, -0.14674f), new Vector3(355.1452f, 81.06728f, 178.9519f), new Vector3(0.5531f, 0.5531f, 0.5531f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Medkit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMedkit"), "Chest", new Vector3(-0.01602f, -0.10701f, -0.23254f), new Vector3(271.952f, 99.71703f, 80.27746f), new Vector3(0.85179f, 0.85179f, 0.85179f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MinorConstructOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDefenseNucleus"), "Chest", new Vector3(-0.5381f, -0.17721f, 0.01895f), new Vector3(0f, 270f, 0f), new Vector3(0.38849f, 0.38849f, 0.38849f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Missile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncher"), "Chest", new Vector3(0.31562f, 0.65102f, -0.07466f), new Vector3(0f, 0f, 329.4084f), new Vector3(0.0861f, 0.0861f, 0.0861f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MissileVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileLauncherVoid"), "Chest", new Vector3(0.31562f, 0.65102f, -0.07466f), new Vector3(0f, 0f, 329.4084f), new Vector3(0.0861f, 0.0861f, 0.0861f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MonstersOnShrineUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMonstersOnShrineUse"), "Chest", new Vector3(0.0814f, 0.22734f, 0.12036f), new Vector3(51.67438f, 112.4063f, 359.5639f), new Vector3(0.05146f, 0.05146f, 0.05146f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoreMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayICBM"), "Chest", new Vector3(0.28669f, 0.60376f, 0.16045f), new Vector3(0f, 90f, 90f), new Vector3(0.09915f, 0.09915f, 0.09915f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MoveSpeedOnKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGrappleHook"), "Base", new Vector3(0.25968f, 0.00197f, -0.13753f), new Vector3(289.068f, 58.73866f, 98.66002f), new Vector3(0.23818f, 0.23818f, 0.23818f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Mushroom"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroom"), "Chest", new Vector3(-0.14549f, -0.00755f, 0.12128f), new Vector3(359.4753f, 45.76885f, 34.50196f), new Vector3(0.03679f, 0.03679f, 0.03679f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MushroomVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMushroomVoid"), "Chest", new Vector3(-0.14549f, -0.00755f, 0.12128f), new Vector3(359.4753f, 45.76885f, 34.50196f), new Vector3(0.03679f, 0.03679f, 0.03679f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NearbyDamageBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDiamond"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Head", new Vector3(0f, 0.25221f, 0f), new Vector3(90f, 180f, 0f), new Vector3(-1f, -1f, -1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDevilHorns"), "Head", new Vector3(0f, 0.25221f, 0f), new Vector3(270f, 180f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["NovaOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayJellyGuts"), "UpperArmL", new Vector3(-0.03174f, 0.01256f, -0.01002f), new Vector3(7.43732f, 26.7055f, 7.51749f), new Vector3(0.12972f, 0.12972f, 0.12972f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["OutOfCombatArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayOddlyShapedOpal"), "Base", new Vector3(0.3029f, 0.0034f, -0.28644f), new Vector3(3.40159f, 245.6042f, 270.0852f), new Vector3(0.44379f, 0.44379f, 0.44379f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ParentEgg"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayParentEgg"), "Chest", new Vector3(0.32548f, -0.21432f, 0.03154f), new Vector3(0f, 0f, 10.80585f), new Vector3(0.06853f, 0.06853f, 0.06853f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Pearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPearl"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.30283f, 0.30283f, 0.30283f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PermanentDebuffOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScorpion"), "UpperArmR", new Vector3(0f, 0f, 0f), new Vector3(316.3237f, 39.42264f, 94.26131f), new Vector3(0.7299f, 0.7299f, 0.7299f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PersonalShield"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldGenerator"), "ThighR", new Vector3(0.02663f, 0.26137f, 0.04122f), new Vector3(273.0673f, 227.1822f, 161.4063f), new Vector3(0.19646f, 0.19646f, 0.19646f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Phasing"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStealthkit"), "HandR", new Vector3(-0.02613f, -0.05109f, 4E-05f), new Vector3(283.0133f, 270.1691f, -8E-05f), new Vector3(0.14103f, 0.16558f, 0.13319f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Plant"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayInterstellarDeskPlant"), "Head", new Vector3(0f, 0.38934f, 0.09732f), new Vector3(270f, 0f, 0f), new Vector3(0.07318f, 0.07318f, 0.07318f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["PrimarySkillShuriken"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShuriken"), "Chest", new Vector3(0f, 0.24774f, -0.29413f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomDamageZone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRandomDamageZone"), "Chest", new Vector3(0f, 0.23193f, -0.23779f), new Vector3(0f, 0f, 0f), new Vector3(0.14503f, 0.14503f, 0.14503f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomEquipmentTrigger"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBottledChaos"), "Base", new Vector3(0.25024f, 0.11146f, -0.14331f), new Vector3(349.7761f, 81.03706f, 91.60354f), new Vector3(0.22944f, 0.22944f, 0.22944f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RandomlyLunar"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDomino"), "Chest", new Vector3(-0.81269f, 0.52026f, -0.13413f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RegeneratingScrap"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRegeneratingScrap"), "Base", new Vector3(-0.39015f, 0.21397f, 0.00993f), new Vector3(356.7812f, 276.3944f, 265.1483f), new Vector3(0.21911f, 0.21911f, 0.21911f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["RepeatHeal"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayCorpseflower"), "Chest", new Vector3(-0.27556f, -0.13433f, -0.01425f), new Vector3(54.54063f, 5.57165f, 64.82538f), new Vector3(0.44177f, 0.44177f, 0.44177f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SecondarySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDoubleMag"), "Gun", new Vector3(0f, 0.21663f, 0.01896f), new Vector3(270f, 180f, 0f), new Vector3(0.03565f, 0.03565f, 0.03565f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Seed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySeed"), "Chest", new Vector3(-0.15906f, -0.0129f, 0.1785f), new Vector3(335.8303f, 287.7627f, 12.86907f), new Vector3(0.04447f, 0.04447f, 0.04447f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShieldOnly"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Head", new Vector3(-0.07012f, 0.3751f, 0.07925f), new Vector3(-1E-05f, 270f, 180f), new Vector3(-0.2f, -0.2f, -0.2f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShieldBug"), "Head", new Vector3(0.07012f, 0.37511f, 0.07911f), new Vector3(0f, 270f, 0f), new Vector3(0.2f, 0.2f, 0.2f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShinyPearl"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayShinyPearl"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(90f, 0f, 0f), new Vector3(0.30283f, 0.30283f, 0.30283f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ShockNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeslaCoil"), "Chest", new Vector3(0f, 0.28457f, -0.19648f), new Vector3(270f, 0f, 0f), new Vector3(0.53835f, 0.53835f, 0.53835f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SiphonOnLowHealth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySiphonOnLowHealth"), "Base", new Vector3(0.29801f, 0.15162f, -0.32532f), new Vector3(334.8931f, 90.00002f, 89.99997f), new Vector3(0.09927f, 0.09927f, 0.09927f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBauble"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SlowOnHitVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBaubleVoid"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBuckler"), "LowerArmL", new Vector3(-0.00246f, 0.06145f, 0.00224f), new Vector3(0f, 272.9158f, 0f), new Vector3(0.17913f, 0.17913f, 0.22066f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintBonus"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySoda"), "Base", new Vector3(-0.23992f, 0.00851f, 0.13479f), new Vector3(0f, 19.63885f, 0f), new Vector3(0.28406f, 0.28406f, 0.28406f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintOutOfCombat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWhip"), "ThighL", new Vector3(0.10968f, 0.16505f, 0.01777f), new Vector3(0f, 155.2993f, 182.6342f), new Vector3(0.49425f, 0.49425f, 0.49425f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["SprintWisp"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBrokenMask"), "UpperArmL", new Vector3(-0.00752f, -0.02743f, -0.00199f), new Vector3(3.7307f, 151.9851f, 195.2243f), new Vector3(0.18229f, 0.18229f, 0.18229f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Squid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySquidTurret"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StickyBomb"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStickyBomb"), "Chest", new Vector3(0.04208f, -0.22255f, 0.14066f), new Vector3(6.83458f, 6.25651f, 181.4485f), new Vector3(0.21205f, 0.21205f, 0.21205f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StrengthenBurn"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGasTank"), "Chest", new Vector3(-0.16429f, 0.28743f, -0.23413f), new Vector3(0f, 0f, 0f), new Vector3(0.25374f, 0.25374f, 0.25374f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["StunChanceOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayStunGrenade"), "Base", new Vector3(-0.01112f, -0.14963f, 0.02578f), new Vector3(0f, 0f, 0f), new Vector3(0.4014f, 0.4014f, 0.4014f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Syringe"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySyringeCluster"), "UpperArmR", new Vector3(0.0175f, -0.01663f, 0.03199f), new Vector3(332.2023f, 180f, 180f), new Vector3(0.21584f, 0.21584f, 0.21584f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TPHealingNova"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGlowFlower"), "Chest", new Vector3(0.0752f, 0.30443f, 0.11042f), new Vector3(340.2215f, 0f, 0f), new Vector3(0.15092f, 0.15092f, 0.15092f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Talisman"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTalisman"), "Chest", new Vector3(0.93072f, 0.16602f, 0.0963f), new Vector3(0f, 0f, 0f), new Vector3(0.97727f, 0.97727f, 0.97727f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Thorns"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRazorwireLeft"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TitanGoldDuringTP"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldHeart"), "Base", new Vector3(0.31111f, -0.02173f, -4E-05f), new Vector3(0f, 90f, 0f), new Vector3(0.18704f, 0.18704f, 0.18704f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tooth"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothNecklaceDecal"), "Chest", new Vector3(0f, 0.45338f, 0f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshLarge"), "Chest", new Vector3(0f, 0.29659f, 0.16196f), new Vector3(0f, 0f, 0f), new Vector3(2f, 2f, 2f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(0.04753f, 0.32086f, 0.13925f), new Vector3(0f, 0f, 47.25098f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(-0.04753f, 0.32086f, 0.13925f), new Vector3(0f, 0f, 312.749f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall2"), "Chest", new Vector3(-0.08835f, 0.35908f, 0.11049f), new Vector3(355.488f, 336.5051f, 311.2128f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayToothMeshSmall1"), "Chest", new Vector3(0.08835f, 0.35908f, 0.11049f), new Vector3(333.3396f, 25.68828f, 43.92077f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCache"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKey"), "Base", new Vector3(7f / 160f, -0.14263f, 0.019f), new Vector3(14.68406f, 268.1919f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TreasureCacheVoid"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayKeyVoid"), "Base", new Vector3(7f / 160f, -0.14263f, 0.019f), new Vector3(14.68406f, 268.1919f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["UtilitySkillMagazine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "UpperArmL", new Vector3(0f, 0f, 0f), new Vector3(41.31011f, 125.3208f, 81.3366f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAfterburnerShoulderRing"), "UpperArmR", new Vector3(0f, 0f, 0f), new Vector3(41.31012f, 234.6792f, 278.6634f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VoidMegaCrabItem"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMegaCrabItem"), "ThighL", new Vector3(0.06351f, 0.14294f, 0.01091f), new Vector3(0f, 90f, 90f), new Vector3(0.14306f, 0.14306f, 0.14306f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WarCryOnMultiKill"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPauldron"), "UpperArmL", new Vector3(-0.029f, 0.011f, -0.01382f), new Vector3(79.56982f, 276.2222f, 124.705f), new Vector3(0.69f, 0.69f, 0.69f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["WardOnLevel"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWarbanner"), "Chest", new Vector3(0f, 0.4059f, -0.17063f), new Vector3(270f, 270f, 0f), new Vector3(0.45863f, 0.45863f, 0.45863f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BFG"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBFG"), "Chest", new Vector3(0.25664f, 0.43825f, -0.07175f), new Vector3(4.42367f, 0.98583f, 293.2273f), new Vector3(0.29733f, 0.29733f, 0.29733f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Blackhole"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGravCube"), "Base", new Vector3(1.09716f, 0.35362f, 1.10406f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunter"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornGhost"), "Head", new Vector3(0f, 0.47715f, 1E-05f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBlunderbuss"), "Base", new Vector3(0.82867f, 0.46427f, 0.7149f), new Vector3(-1E-05f, 180f, 180f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BossHunterConsumed"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTricornUsed"), "Head", new Vector3(0f, 0.47715f, 1E-05f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["BurnNearby"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayPotion"), "Base", new Vector3(0.1436f, 0.21409f, -0.01811f), new Vector3(330.4779f, 83.02779f, 75.05534f), new Vector3(0.05f, 0.05f, 0.05f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Cleanse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayWaterPack"), "Chest", new Vector3(0f, -0.46747f, 0.10289f), new Vector3(0f, 0f, 0f), new Vector3(0.14409f, 0.14409f, 0.14409f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CommandMissile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMissileRack"), "Chest", new Vector3(-0.00286f, 0.36246f, -0.20178f), new Vector3(90f, 174.2094f, 0f), new Vector3(0.5f, 0.5f, 0.5f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CrippleWard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEffigy"), "Head", new Vector3(0.00488f, 0.38396f, 0.01933f), new Vector3(0f, 180f, 0f), new Vector3(0.55447f, 0.55447f, 0.55447f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["CritOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayNeuralImplant"), "Head", new Vector3(0f, 0.20967f, 0.37532f), new Vector3(0f, 0f, 0f), new Vector3(0.43383f, 0.43383f, 0.43383f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DeathProjectile"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayDeathProjectile"), "Chest", new Vector3(-0.18455f, 0.3f, 0.13112f), new Vector3(337.85f, 322.8569f, 0f), new Vector3(0.08076f, 0.08076f, 0.08076f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["DroneBackup"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRadio"), "Chest", new Vector3(0.0489f, 0.24141f, 0.15258f), new Vector3(0f, 180f, 180f), new Vector3(-0.28899f, -0.28899f, -0.28899f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteEarthEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteMendingAntlers"), "Head", new Vector3(0f, 0.33928f, 0.09633f), new Vector3(0f, 0f, 0f), new Vector3(0.6377f, 0.6377f, 0.6377f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteFireEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Head", new Vector3(-0.07218f, 0.31161f, 0.10695f), new Vector3(0f, 180f, 180f), new Vector3(-0.06753f, -0.06753f, -0.06753f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteHorn"), "Head", new Vector3(0.07218f, 0.31161f, 0.10695f), new Vector3(0f, 0f, 0f), new Vector3(0.06753f, 0.06753f, 0.06753f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteHauntedEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteStealthCrown"), "Head", new Vector3(0f, 0.30512f, -0.00019f), new Vector3(90f, 180f, 0f), new Vector3(0.04245f, 0.04245f, 0.04245f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteIceEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteIceCrown"), "Head", new Vector3(0f, 0.43621f, -8E-05f), new Vector3(270f, 0f, 0f), new Vector3(0.02854f, 0.02854f, 0.02854f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLightningEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Head", new Vector3(-0.07f, 0.29271f, 0.12919f), new Vector3(39.97074f, 129.2507f, 141.8243f), new Vector3(-0.1288f, -0.1288f, -0.1288f)), ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteRhinoHorn"), "Head", new Vector3(0.07f, 0.29271f, 0.12919f), new Vector3(39.00001f, 230.7493f, 218.1757f), new Vector3(-0.1288f, -0.1288f, -0.1288f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteLunarEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteLunar,Eye"), "Head", new Vector3(0f, 0.20738f, 0.34874f), new Vector3(0f, 0f, 0f), new Vector3(0.16167f, 0.16167f, 0.16167f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["ElitePoisonEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEliteUrchinCrown"), "Head", new Vector3(0f, 0.21301f, -0.00014f), new Vector3(0f, 0f, 0f), new Vector3(0.04485f, 0.04485f, 0.04485f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["EliteVoidEquipment"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayAffixVoid"), "Head", new Vector3(0f, 0.27148f, 0.00026f), new Vector3(0f, 180f, 0f), new Vector3(0.2234f, 0.2234f, 0.2234f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["FireBallDash"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayEgg"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Fruit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayFruit"), "Base", new Vector3(-0.10174f, 0.13266f, 0.09001f), new Vector3(82.19051f, 0f, 0f), new Vector3(0.3509f, 0.3509f, 0.3509f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GainArmor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayElephantFigure"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Gateway"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVase"), "HandL", new Vector3(-0.04156f, 7E-05f, -0.11241f), new Vector3(90f, 180f, 0f), new Vector3(0.22015f, 0.22015f, 0.22015f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GoldGat"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGoldGat"), "Chest", new Vector3(0.16136f, 0.45423f, -0.07928f), new Vector3(8.46069f, 115.0343f, 326.7957f), new Vector3(0.06569f, 0.06569f, 0.06569f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["GummyClone"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayGummyClone"), "LowerArmL", new Vector3(-0.00062f, 0.20584f, 0.02179f), new Vector3(13.64345f, 125.9495f, 0f), new Vector3(0.20012f, 0.20012f, 0.20012f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["IrradiatingLaser"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayIrradiatingLaser"), "Chest", new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 0f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Jetpack"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBugWings"), "Chest", new Vector3(0f, 0.20217f, -0.18699f), new Vector3(0f, 0f, 0f), new Vector3(0.14742f, 0.14742f, 0.14742f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LifestealOnHit"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLifestealOnHit"), "UpperArmL", new Vector3(-0.03001f, 0.20213f, -0.12175f), new Vector3(0f, 0f, 0f), new Vector3(0.07137f, 0.07137f, 0.07137f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Lightning"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLightningArmRight"), "Chest", new Vector3(2f, 2f, 2f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)), ItemDisplays.CreateLimbMaskDisplayRule((LimbFlags)2))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["LunarPortalOnUse"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayLunarPortalOnUse"), "Chest", new Vector3(0.65876f, 0.40515f, -0.22782f), new Vector3(0f, 0f, 0f), new Vector3(1f, 1f, 1f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Meteor"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMeteor"), "Base", new Vector3(-0.74222f, 0.26422f, 0.45832f), new Vector3(0f, 0f, 0f), new Vector3(0.68939f, 0.68939f, 0.68939f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Molotov"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayMolotov"), "Chest", new Vector3(-0.09988f, -0.22047f, 0.13965f), new Vector3(348.619f, 347.4249f, 2.52046f), new Vector3(0.20169f, 0.20169f, 0.20169f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["MultiShopCard"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayExecutiveCard"), "Chest", new Vector3(-0.06847f, -0.08431f, 0.12512f), new Vector3(357.4704f, 73.80464f, 104.9206f), new Vector3(0.50539f, 0.50539f, 0.50539f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["QuestVolatileBattery"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayBatteryArray"), "Base", new Vector3(0f, 0.2767f, 0.39491f), new Vector3(270f, 1E-05f, 0f), new Vector3(0.23905f, 0.23905f, 0.23905f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Recycle"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayRecycler"), "Base", new Vector3(0.002f, 0.19563f, 0.05182f), new Vector3(0.57862f, 90.02995f, 92.96487f), new Vector3(0.06948f, 0.06948f, 0.06948f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Saw"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplaySawmerangFollower"), "Base", new Vector3(0.65491f, 0.40074f, 0.48852f), new Vector3(0f, 0f, 0f), new Vector3(0.09081f, 0.09081f, 0.09081f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Scanner"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayScanner"), "UpperArmL", new Vector3(0.00981f, 0.17733f, -0.02008f), new Vector3(30.14785f, 154.6489f, 270f), new Vector3(0.22813f, 0.22813f, 0.22813f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["TeamWarCry"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTeamWarCry"), "Base", new Vector3(0.00149f, 0.24417f, 0.11363f), new Vector3(270f, 180.7489f, 0f), new Vector3(0.06962f, 0.06962f, 0.06962f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["Tonic"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayTonic"), "Base", new Vector3(0.0809f, -0.11534f, -0.04564f), new Vector3(63.87238f, 62.57079f, 59.96919f), new Vector3(0.31909f, 0.31909f, 0.31909f)))); itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets["VendingMachine"], ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay("DisplayVendingMachine"), "Gun", new Vector3(0f, 0.43159f, 1E-05f), new Vector3(0f, 0f, 0f), new Vector3(0.42555f, 0.42555f, 0.42555f)))); } } public static class SeamstressStates { public static void Init() { SeamstressMod.Modules.Content.AddEntityState(typeof(SeamstressSpawnState)); SeamstressMod.Modules.Content.AddEntityState(typeof(MainState)); SeamstressMod.Modules.Content.AddEntityState(typeof(BaseSeamstressSkillState)); SeamstressMod.Modules.Content.AddEntityState(typeof(BaseSeamstressState)); SeamstressMod.Modules.Content.AddEntityState(typeof(SeamstressJump)); SeamstressMod.Modules.Content.AddEntityState(typeof(SeamstressBlink)); SeamstressMod.Modules.Content.AddEntityState(typeof(SeamstressBlinkUp)); SeamstressMod.Modules.Content.AddEntityState(typeof(Trim)); SeamstressMod.Modules.Content.AddEntityState(typeof(Flurry)); SeamstressMod.Modules.Content.AddEntityState(typeof(Clip)); SeamstressMod.Modules.Content.AddEntityState(typeof(Telekinesis)); SeamstressMod.Modules.Content.AddEntityState(typeof(HealthCostDash)); SeamstressMod.Modules.Content.AddEntityState(typeof(Explode)); SeamstressMod.Modules.Content.AddEntityState(typeof(Parry)); SeamstressMod.Modules.Content.AddEntityState(typeof(ParryDash)); SeamstressMod.Modules.Content.AddEntityState(typeof(FireScissor)); SeamstressMod.Modules.Content.AddEntityState(typeof(FireScissorScepter)); SeamstressMod.Modules.Content.AddEntityState(typeof(HeartSpawnState)); SeamstressMod.Modules.Content.AddEntityState(typeof(HeartStandBy)); } } public static class SeamstressTokens { public static void Init() { AddSeamstressTokens(); Language.PrintOutput("Seamstress.txt"); } public static void AddSeamstressTokens() { string text = "KENKO_SEAMSTRESS_"; string text2 = "The Seamstress is a mobile survivor that uses her health for damage. She gains less base damage per level so stack health items to take advantage her health to damage conversion." + Environment.NewLine + Environment.NewLine + "< ! > Needles are a great source of extra damage. Use them wisely for damage and mobility." + Environment.NewLine + Environment.NewLine + "< ! > Make sure to use Clip with as many needles as you can. It can rapidly apply bleed during Insatiable." + Environment.NewLine + Environment.NewLine + "< ! > Heal as much as you can during Insatiable. The barrier it provides could be life or death." + Environment.NewLine + Environment.NewLine + "< ! > Brutalize is a great way to boost your damage but be wary of your health." + Environment.NewLine + Environment.NewLine + "< ! > Use and retrieve your Symbiotic scissors to gain needles outside of Insatiable." + Environment.NewLine + Environment.NewLine; string text3 = "Pale skin and fatigue. Signs of a disease spreading within children of the high court. How unfortunate they are." + Environment.NewLine + Environment.NewLine + "A sickly infant, frail and weak, cries as her parents do too. A tragic fate for these aging nobles as she is their only heir. With a shaky future, her heart still beats." + Environment.NewLine + Environment.NewLine + "The disease is curable with an artificial heart but the operation cannot be done on those who haven't reached adulthood. Only few are lucky enough to fall within that timeframe." + Environment.NewLine + Environment.NewLine + "A bedridden teen, her health quickly fading. She holds on for dear life. She needs to survive one more week. Hanging on by a thread, her heart still beats." + Environment.NewLine + Environment.NewLine + "Although an artificial heart cures the disease, one's day-to-day remains the same. With frequent maintenance and risks of malfunctioning, venturing far from home could spell death. Many take up slower hobbies like baking and sewing but not everyone is content with their lives." + Environment.NewLine + Environment.NewLine + "A restless seamstress, with synthetic vitality, despises the walls she resides in. She wants nothing to do with her nobility. It ties her down to a monotonous life. As darkness settles, she stows away in a civilian ship. Filled with adrenaline her heart still beats. " + Environment.NewLine + Environment.NewLine + "Many who run away are given a reality check. The galaxy outside of the high court isn't the wonderland depicted in books. It's more akin to a tragic fairytale. " + Environment.NewLine + Environment.NewLine + "A corrupted creature, on borrowed time. How did it go so wrong? The ship she chose -swallowed by a rift made by imps who desired the same escape as her. Suddenly, a wave of blood blended with the crimson sky, every human and imp alike was cut clean. As her vision began to fade, a figure lept away as another one quietly approached. A whisper, a target, a new life. Her heart still beats."; string text4 = "..and so she left, yearning to stitch more than just fabric."; string text5 = "..and so she vanished, with seams unsewn."; Language.Add(text + "NAME", "Seamstress"); Language.Add(text + "DESCRIPTION", text2); Language.Add(text + "SUBTITLE", "The Tattered Maiden"); Language.Add(text + "LORE", text3); Language.Add(text + "OUTRO_FLAVOR", text4); Language.Add(text + "OUTRO_FAILURE", text5); Language.Add(text + "MASTERY_SKIN_NAME", "Alternate"); Language.Add(text + "MASTERY_SKIN_NAME2", "Alternate2"); Language.Add(text + "MASTERY_SKIN_NAME3", "Raven"); Language.Add(text + "MASTERY_SKIN_NAME4", "Raven Alternate"); Language.Add(text + "PASSIVE_NAME", "It Hungers"); Language.Add(text + "PASSIVE_DESCRIPTION", "Gain base damage and healing based on missing health."); Language.Add(text + "NEEDLE_NAME", "Imp Touched Heart"); Language.Add(text + "NEEDLE_DESCRIPTION", "Consume Needles by jumping in mid-air letting you Blink and fire out a projectile dealing " + $"{100f * SeamstressConfig.needleDamageCoefficient.Value}% damage."); Language.Add(text + "PRIMARY_TRIM_NAME", "Trim"); Language.Add(text + "PRIMARY_TRIM_DESCRIPTION", "Ruthless. Slash in front for " + $"{100f * SeamstressConfig.trimDamageCoefficient.Value}% + {100f * SeamstressConfig.scissorSlashDamageCoefficient.Value}% damage." + $" Every 3rd hit deals {100f * SeamstressConfig.trimThirdDamageCoefficient.Value}% + " + $"{100f * SeamstressConfig.scissorSlashDamageCoefficient.Value}% damage."); Language.Add(text + "PRIMARY_FLURRY_NAME", "Flurry"); Language.Add(text + "PRIMARY_FLURRY_DESCRIPTION", "Ruthless. Slash in front for " + $"{100f * SeamstressConfig.flurryDamageCoefficient.Value}% + {100f * SeamstressConfig.scissorSlashDamageCoefficient.Value}% damage."); Language.Add(text + "SECONDARY_CLIP_NAME", "Clip"); Language.Add(text + "SECONDARY_CLIP_DESCRIPTION", $"Snip for 2x{100f * SeamstressConfig.clipDamageCoefficient.Value}% damage. " + "Snip an additional time per Needle."); Language.Add(text + "SECONDARY_PLANMAN_NAME", "Planar Manipulation"); Language.Add(text + "SECONDARY_PLANMAN_DESCRIPTION", "Crush. Hold to grab enemies. Slamming the enemy deals " + $"{100f * SeamstressConfig.telekinesisDamageCoefficient.Value} - {100f * SeamstressConfig.telekinesisDamageCoefficient.Value * 5f}% damage " + "in an area based on Needle count. " + $"{SeamstressConfig.telekinesisCooldown.Value} second cooldown on the same target."); Language.Add(text + "UTILITY_HEARTDASH_NAME", "Brutalize"); Language.Add(text + "UTILITY_HEARTDASH_DESCRIPTION", "Dash forward dealing " + string.Format("{0}% damage and become {1}. Recast to explode, converting barrier to ", 100f * SeamstressConfig.blinkDamageCoefficient.Value, "Insatiable") + $"health dealing {100f * SeamstressConfig.explodeMinDamageCoefficient.Value}% - {100f * SeamstressConfig.explodeMaxDamageCoefficient.Value}% damage around you based on amount converted."); Language.Add(text + "UTILITY_PARRY_NAME", "Retaliate"); Language.Add(text + "UTILITY_PARRY_DESCRIPTION", $"Prepare a parry. If successful, dash forward dealing {100f * SeamstressConfig.parryDamageCoefficient.Value}% damage and gain " + "Insatiable."); Language.Add(text + "SPECIAL_FIRE_NAME", "Skewer"); Language.Add(text + "SPECIAL_FIRE_DESCRIPTION", "15% HP. Fire a Symbiotic" + $" scissor dealing {100f * SeamstressConfig.scissorDamageCoefficient.Value}% damage. " + "Pick up Symbiotic" + $" scissors to slash for {100f * SeamstressConfig.scissorPickupDamageCoefficient.Value}% damage."); Language.Add(text + "SPECIAL_SCEPTER_NAME", "Rampage"); Language.Add(text + "SPECIAL_SCEPTER_DESCRIPTION", "15% HP. Fire a Symbiotic" + $" scissor dealing {100f * SeamstressConfig.scissorDamageCoefficient.Value}% damage. " + "Pick up Symbiotic" + $" scissors to slash for {100f * SeamstressConfig.scissorPickupDamageCoefficient.Value}% damage." + Tokens.ScepterDescription("Your Symbiotic weapon only has a 1.5 second pickup time.")); Language.Add(Tokens.GetAchievementNameToken("KENKO_SEAMSTRESS_masteryAchievement"), "Seamstress: Mastery"); Language.Add(Tokens.GetAchievementDescriptionToken("KENKO_SEAMSTRESS_masteryAchievement"), "As Seamstress, beat the game or obliterate on Monsoon."); Language.Add(Tokens.GetAchievementNameToken("KENKO_SEAMSTRESS_typhoonMasteryAchievement"), "Raven: Unlocked"); Language.Add(Tokens.GetAchievementDescriptionToken("KENKO_SEAMSTRESS_typhoonMasteryAchievement"), "As Seamstress, beat the game or obliterate on Eclipse or higher."); } } public static class SeamstressUnlockables { public static UnlockableDef characterUnlockableDef; public static UnlockableDef masterySkinUnlockableDef; public static UnlockableDef masteryTyphoonSkinUnlockableDef; public static void Init() { masterySkinUnlockableDef = SeamstressMod.Modules.Content.CreateAndAddUnlockableDef("KENKO_SEAMSTRESS_masteryUnlockable", Tokens.GetAchievementNameToken("KENKO_SEAMSTRESS_masteryAchievement"), CharacterBase.instance.assetBundle.LoadAsset("texMonsoonBlue")); if (!SeamstressConfig.forceUnlockRaven.Value) { masteryTyphoonSkinUnlockableDef = SeamstressMod.Modules.Content.CreateAndAddUnlockableDef("KENKO_SEAMSTRESS_typhoonMasteryUnlockable", Tokens.GetAchievementNameToken("KENKO_SEAMSTRESS_typhoonMasteryAchievement"), CharacterBase.instance.assetBundle.LoadAsset("ravenIcon")); } } } } namespace SeamstressMod.Seamstress.Components { public class DestroyOnCondition : MonoBehaviour { public CharacterBody ownerBody; private bool hasHadBuff; private void Awake() { } private void OnEnable() { } private void FixedUpdate() { if (ownerBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { hasHadBuff = true; } else if (!ownerBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && hasHadBuff) { Object.Destroy((Object)(object)((Component)this).gameObject); } } } public class DetonateOnImpactThrownTelekinesis : MonoBehaviour { public class DetonateOnImpact : MonoBehaviour { public DetonateOnImpactThrownTelekinesis endBlast; private void OnCollisionEnter(Collision collision) { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) float num = endBlast.victimRigid.mass / 10f; float num2 = 60f / num; Vector3 relativeVelocity = collision.relativeVelocity; float magnitude = ((Vector3)(ref relativeVelocity)).magnitude; if (collision.gameObject.layer == LayerIndex.world.intVal || collision.gameObject.layer == LayerIndex.entityPrecise.intVal || (collision.gameObject.layer == LayerIndex.defaultLayer.intVal && magnitude >= num2)) { endBlast.detonate = true; } } } public GameObject attacker; private GameObject explosionEffect = SeamstressAssets.genericImpactExplosionEffect; private GameObject slamEffect = SeamstressAssets.slamEffect; public SphereCollider tempSphereCollider; private CharacterBody victimBody; private CharacterMotor victimMotor; private Rigidbody victimRigid; private RigidbodyMotor victimRigidMotor; public CollisionDetectionMode coll; public bool bodyCouldTakeImpactDamage; private float stopwatch; public float previousMass; public bool theyDidNotHaveRigid; public bool detonate; private bool hasFired; private void Awake() { victimBody = ((Component)this).GetComponent(); victimMotor = victimBody.characterMotor; victimRigid = victimBody.rigidbody; victimRigidMotor = ((Component)victimBody).gameObject.GetComponent(); detonate = false; } private void Start() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)victimMotor)) { victimMotor.disableAirControlUntilCollision = true; victimMotor.onMovementHit += new MovementHitDelegate(DoSplashDamage); } else { if (theyDidNotHaveRigid) { victimRigid = ((Component)victimBody).gameObject.GetComponent(); tempSphereCollider = ((Component)victimBody).gameObject.GetComponent(); } if (Object.op_Implicit((Object)(object)((Component)victimBody).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)victimBody).gameObject.GetComponent()); } ((Component)victimBody).gameObject.AddComponent(); ((Component)victimBody).gameObject.GetComponent().endBlast = this; } stopwatch = 0f; } private void FixedUpdate() { //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_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_012c: Expected O, but got Unknown //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Expected O, but got Unknown //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Expected O, but got Unknown //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0265: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0244: Unknown result type (might be due to invalid IL or missing references) stopwatch += Time.fixedDeltaTime; if (Util.HasEffectiveAuthority(((Component)victimBody).gameObject) && detonate && !hasFired) { CharacterBody component = attacker.GetComponent(); SeamstressController component2 = attacker.GetComponent(); if (component2.blue) { explosionEffect = SeamstressAssets.genericImpactExplosionEffect2; slamEffect = SeamstressAssets.slamEffect2; } Vector3 velocity = victimRigid.velocity; float baseDamage = Mathf.Clamp(((Vector3)(ref velocity)).magnitude * (SeamstressConfig.telekinesisDamageCoefficient.Value * attacker.GetComponent().damage * (float)component.GetBuffCount(SeamstressBuffs.Needles)), SeamstressConfig.telekinesisDamageCoefficient.Value * attacker.GetComponent().damage * (float)component.GetBuffCount(SeamstressBuffs.Needles), victimBody.healthComponent.fullHealth * 0.75f); EffectManager.SpawnEffect(explosionEffect, new EffectData { origin = victimBody.footPosition, rotation = Quaternion.identity }, true); EffectManager.SpawnEffect(slamEffect, new EffectData { origin = victimBody.footPosition, rotation = Quaternion.identity }, true); BlastAttack val = new BlastAttack(); val.position = victimBody.footPosition; val.baseDamage = baseDamage; val.baseForce = 800f; val.bonusForce = Vector3.zero; val.radius = 10f; val.attacker = attacker; val.inflictor = attacker; val.teamIndex = component.teamComponent.teamIndex; val.crit = component.RollCrit(); val.procChainMask = default(ProcChainMask); val.procCoefficient = 1f; val.falloffModel = (FalloffModel)1; val.damageColorIndex = (DamageColorIndex)0; val.damageType = DamageTypeCombo.op_Implicit((DamageType)131104); val.damageType.damageSource = (DamageSource)2; if (attacker.GetComponent().HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { DamageAPI.AddModdedDamageType(ref val.damageType, DamageTypes.CutDamage); } DamageAPI.AddModdedDamageType(ref val.damageType, DamageTypes.SeamstressLifesteal); val.attackerFiltering = (AttackerFiltering)0; val.Fire(); stopwatch = 5f; detonate = false; hasFired = true; } if (stopwatch >= 5f) { EndGrab(); } } private void DoSplashDamage(ref MovementHitInfo movementHitInfo) { float num = Mathf.Abs(((Vector3)(ref movementHitInfo.velocity)).magnitude); float num2 = Mathf.Max(num - (victimBody.baseMoveSpeed + 70f), 0f); if (num2 > 0f) { detonate = true; } } private void EndGrab() { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)((Component)victimBody).gameObject.GetComponent())) { Object.Destroy((Object)(object)((Component)victimBody).gameObject.GetComponent()); } if (Object.op_Implicit((Object)(object)victimRigidMotor)) { victimRigidMotor.canTakeImpactDamage = bodyCouldTakeImpactDamage; ((Behaviour)victimRigidMotor).enabled = true; } if (Object.op_Implicit((Object)(object)victimMotor)) { victimMotor.disableAirControlUntilCollision = false; victimMotor.onMovementHit -= new MovementHitDelegate(DoSplashDamage); } if (NetworkServer.active && Object.op_Implicit((Object)(object)victimBody)) { CharacterBody obj = victimBody; obj.bodyFlags = (BodyFlags)(obj.bodyFlags & -2); } if (coll != victimRigid.collisionDetectionMode) { victimRigid.collisionDetectionMode = coll; } if (theyDidNotHaveRigid) { Object.Destroy((Object)(object)victimRigid); Object.Destroy((Object)(object)tempSphereCollider); } if (SeamstressConfig.heavyEnemy.Value) { if (Object.op_Implicit((Object)(object)victimMotor) && victimMotor.mass != previousMass) { victimMotor.mass = previousMass; victimMotor.mass = Mathf.Clamp(victimMotor.mass, 60f, 120f); } else if (Object.op_Implicit((Object)(object)victimRigid) && victimRigid.mass != previousMass) { victimRigid.mass = previousMass; victimRigid.mass = Mathf.Clamp(victimRigid.mass, 60f, 120f); } } Object.Destroy((Object)(object)this); } } public class NeedleController : NetworkBehaviour { private CharacterBody characterBody; private CharacterMotor characterMotor; public bool consumeNeedle; private static int kCmdCmdUpdateNeedles; public void Awake() { characterBody = ((Component)this).GetComponent(); characterMotor = ((Component)this).GetComponent(); } public void Start() { } public void FixedUpdate() { if (((NetworkBehaviour)this).hasAuthority && characterMotor.jumpCount >= characterBody.maxJumpCount && consumeNeedle && characterBody.HasBuff(SeamstressBuffs.Needles)) { CallCmdUpdateNeedles(); consumeNeedle = false; } } [Command] public void CmdUpdateNeedles() { if (!NetworkServer.active) { Log.Error("Network Server Not Active"); } else { characterBody.RemoveBuff(SeamstressBuffs.Needles); } } private void UNetVersion() { } protected static void InvokeCmdCmdUpdateNeedles(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdUpdateNeedles called on client."); } else { ((NeedleController)(object)obj).CmdUpdateNeedles(); } } public void CallCmdUpdateNeedles() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdUpdateNeedles called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdUpdateNeedles(); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdUpdateNeedles); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdUpdateNeedles"); } static NeedleController() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown kCmdCmdUpdateNeedles = 1025229456; NetworkBehaviour.RegisterCommandDelegate(typeof(NeedleController), kCmdCmdUpdateNeedles, new CmdDelegate(InvokeCmdCmdUpdateNeedles)); NetworkCRC.RegisterBehaviour("NeedleController", 0); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class NeedleCrosshairController : MonoBehaviour { [Serializable] public struct NeedleSpriteDisplay { public GameObject target; public int minimumStockCountToBeValid; public int maximumStockCountToBeValid; } public NeedleSpriteDisplay[] needleSpriteDisplays; public RectTransform rectTransform { get; private set; } public HudElement hudElement { get; private set; } private void Awake() { rectTransform = ((Component)this).GetComponent(); hudElement = ((Component)this).GetComponent(); SetSkillStockDisplays(); } private void SetSkillStockDisplays() { if (!Object.op_Implicit((Object)(object)hudElement.targetCharacterBody)) { return; } for (int i = 0; i < needleSpriteDisplays.Length; i++) { bool active = false; NeedleSpriteDisplay needleSpriteDisplay = needleSpriteDisplays[i]; int buffCount = hudElement.targetCharacterBody.GetBuffCount(SeamstressBuffs.Needles); if (buffCount > 0 && buffCount >= needleSpriteDisplay.minimumStockCountToBeValid && (buffCount <= needleSpriteDisplay.maximumStockCountToBeValid || needleSpriteDisplay.maximumStockCountToBeValid < 0)) { active = true; } needleSpriteDisplay.target.SetActive(active); } } private void LateUpdate() { SetSkillStockDisplays(); } } public class PickupFilterComponent : NetworkBehaviour { public TeamFilter myTeamFilter; public static GameObject pickupEffect = SeamstressAssets.blinkEffect; public UnityEvent triggerEvents; private bool hasFired; private bool hasActivated = false; public float pickupTimer; public void FixedUpdate() { pickupTimer -= Time.fixedDeltaTime; if (pickupTimer <= 0f && !hasActivated) { ((Component)((Component)this).transform.root.Find("SeamstressTeamIndicator(Clone)")).gameObject.SetActive(true); hasActivated = true; } } public void OnTriggerStay(Collider collider) { //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)collider)) { return; } HurtBox component = ((Component)collider).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } HealthComponent healthComponent = component.healthComponent; if (!Object.op_Implicit((Object)(object)healthComponent)) { return; } TeamComponent component2 = ((Component)healthComponent).GetComponent(); if ((Object.op_Implicit((Object)(object)component2) && component2.teamIndex != myTeamFilter.teamIndex) || hasFired || !(pickupTimer <= 0f) || healthComponent.body.bodyIndex != BodyCatalog.FindBodyIndex("SeamstressBody")) { return; } string name = ((Object)((Component)this).gameObject.transform.root).name; if (name == "ScissorR(Clone)") { ((Component)healthComponent.body).GetComponent().isRight = true; SeamstressController seamstressController = default(SeamstressController); if (((Component)healthComponent.body).TryGetComponent(ref seamstressController)) { seamstressController.PlayScissorRSwing(); } } else if (name == "ScissorL(Clone)") { ((Component)healthComponent.body).GetComponent().isRight = false; SeamstressController seamstressController2 = default(SeamstressController); if (((Component)healthComponent.body).TryGetComponent(ref seamstressController2)) { seamstressController2.PlayScissorLSwing(); } } UnityEvent obj = triggerEvents; if (obj != null) { obj.Invoke(); } Util.PlaySound("sfx_seamstress_swing_scissor", ((Component)healthComponent.body).gameObject); if (healthComponent.body.GetBuffCount(SeamstressBuffs.Needles) < SeamstressConfig.maxNeedleAmount.Value) { healthComponent.body.AddBuff(SeamstressBuffs.Needles); } ((Component)healthComponent.body).GetComponent().CallRpcAddSpecialStock(); hasFired = true; } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class PullComponent : MonoBehaviour { private static GameObject pullTracerPrefab = SeamstressAssets.parrySlashEffect; public CharacterBody attackerBody; private Rigidbody victimRigidBody; private CharacterBody victimBody; private bool hasFired; private float stopwatch; private float dashStopwatch; private float delay = 0.75f; private float duration = 0.4f; private Vector3 pullStart; private Vector3 pullEnd; private HurtBox hurtBox; private HurtBox attackerHurtBox; private void Awake() { victimBody = ((Component)this).gameObject.GetComponent(); victimRigidBody = ((Component)this).gameObject.GetComponent(); } private void Pull() { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: 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_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Expected O, but got Unknown //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Expected O, but got Unknown if (!NetworkServer.active) { return; } hurtBox = victimBody.mainHurtBox; attackerHurtBox = attackerBody.mainHurtBox; if (Object.op_Implicit((Object)(object)hurtBox)) { CalculateSnapDestination(); DamageInfo val = new DamageInfo { damage = attackerBody.damage * SeamstressConfig.parryDamageCoefficient.Value, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageType)32), attacker = ((Component)attackerBody).gameObject, crit = attackerBody.RollCrit(), position = ((Component)hurtBox).transform.position, procCoefficient = 1f }; DamageAPI.AddModdedDamageType(val, DamageTypes.CutDamage); DamageAPI.AddModdedDamageType(val, DamageTypes.SeamstressLifesteal); hurtBox.healthComponent.TakeDamage(val); GlobalEventManager.instance.OnHitEnemy(val, ((Component)hurtBox.healthComponent).gameObject); if (Object.op_Implicit((Object)(object)pullTracerPrefab)) { Vector3 corePosition = attackerBody.corePosition; Vector3 position = ((Component)hurtBox).transform.position; EffectData val2 = new EffectData { origin = corePosition, start = position }; EffectManager.SpawnEffect(pullTracerPrefab, val2, true); } } } private void SetPosition(Vector3 newPosition) { //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)victimBody.characterMotor)) { ((BaseCharacterController)victimBody.characterMotor).Motor.SetPositionAndRotation(newPosition, Quaternion.identity, true); } else if (Object.op_Implicit((Object)(object)victimRigidBody)) { victimRigidBody.MovePosition(newPosition); } } private void CalculateSnapDestination() { //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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002f: 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_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) pullStart = ((Component)hurtBox).transform.position; pullEnd = ((Component)attackerHurtBox).transform.position; pullEnd = Vector3.Lerp(pullStart, pullEnd, 0.8f); } private void FixedUpdate() { //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_00ac: 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_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) stopwatch += Time.fixedDeltaTime; if (!(stopwatch > delay)) { return; } dashStopwatch += Time.fixedDeltaTime; if (!hasFired) { Pull(); hasFired = true; } else { if (Object.op_Implicit((Object)(object)victimBody.characterMotor)) { victimBody.characterMotor.velocity = Vector3.zero; } else if (Object.op_Implicit((Object)(object)victimRigidBody)) { victimRigidBody.velocity = Vector3.zero; } SetPosition(Vector3.Lerp(pullStart, pullEnd, dashStopwatch / duration)); } if (dashStopwatch >= duration) { Util.PlaySound("Play_imp_overlord_teleport_end", ((Component)this).gameObject); Object.DestroyImmediate((Object)(object)this); } } } public class ScissorController : NetworkBehaviour { private CharacterBody characterBody; private int oldScissorCount = 0; private int scissorCount = 0; public bool isRight; private static int kRpcRpcAddSpecialStock; private static int kCmdCmdUpdateScissors; public void Awake() { characterBody = ((Component)this).GetComponent(); } public void Start() { } public void FixedUpdate() { if (!((NetworkBehaviour)this).hasAuthority) { return; } if (characterBody.skillLocator.special.stock != scissorCount) { Util.PlaySound("Play_item_proc_novaonheal_spawn", ((Component)this).gameObject); scissorCount = characterBody.skillLocator.special.stock; } if (scissorCount != oldScissorCount) { CallCmdUpdateScissors(scissorCount); if (scissorCount > oldScissorCount && !isRight && !isRight) { ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: true); } } oldScissorCount = scissorCount; } [ClientRpc] public void RpcAddSpecialStock() { if (((NetworkBehaviour)this).hasAuthority && characterBody.skillLocator.special.stock < characterBody.skillLocator.special.maxStock) { GenericSkill special = characterBody.skillLocator.special; int stock = special.stock; special.stock = stock + 1; if (characterBody.skillLocator.special.stock == characterBody.skillLocator.special.maxStock) { characterBody.skillLocator.special.rechargeStopwatch = 0f; } } } [Command] public void CmdUpdateScissors(int newCount) { if (!NetworkServer.active) { return; } int buffCount = characterBody.GetBuffCount(SeamstressBuffs.ScissorLeftBuff); int buffCount2 = characterBody.GetBuffCount(SeamstressBuffs.ScissorRightBuff); switch (newCount) { case 0: if (buffCount == 1) { characterBody.RemoveBuff(SeamstressBuffs.ScissorLeftBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: false); } if (buffCount2 == 1) { characterBody.RemoveBuff(SeamstressBuffs.ScissorRightBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorRModel", activate: false); } break; case 1: if (isRight) { if (buffCount2 == 0) { characterBody.AddBuff(SeamstressBuffs.ScissorRightBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorRModel", activate: true); } if (buffCount == 1) { characterBody.RemoveBuff(SeamstressBuffs.ScissorLeftBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: false); } } if (!isRight) { if (buffCount2 == 1) { characterBody.RemoveBuff(SeamstressBuffs.ScissorRightBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: false); } if (buffCount == 0) { characterBody.AddBuff(SeamstressBuffs.ScissorLeftBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: true); } } break; case 2: if (buffCount == 0) { characterBody.AddBuff(SeamstressBuffs.ScissorLeftBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorLModel", activate: true); } if (buffCount2 == 0) { characterBody.AddBuff(SeamstressBuffs.ScissorRightBuff); ((Component)characterBody).GetComponent().ReactivateScissor("ScissorRModel", activate: true); } break; } } private void UNetVersion() { } protected static void InvokeCmdCmdUpdateScissors(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkServer.active) { Debug.LogError((object)"Command CmdUpdateScissors called on client."); } else { ((ScissorController)(object)obj).CmdUpdateScissors((int)reader.ReadPackedUInt32()); } } public void CallCmdUpdateScissors(int newCount) { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Expected O, but got Unknown //IL_0058: Unknown result type (might be due to invalid IL or missing references) if (!NetworkClient.active) { Debug.LogError((object)"Command function CmdUpdateScissors called on server."); return; } if (((NetworkBehaviour)this).isServer) { CmdUpdateScissors(newCount); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)5); val.WritePackedUInt32((uint)kCmdCmdUpdateScissors); val.Write(((Component)this).GetComponent().netId); val.WritePackedUInt32((uint)newCount); ((NetworkBehaviour)this).SendCommandInternal(val, 0, "CmdUpdateScissors"); } protected static void InvokeRpcRpcAddSpecialStock(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcAddSpecialStock called on server."); } else { ((ScissorController)(object)obj).RpcAddSpecialStock(); } } public void CallRpcAddSpecialStock() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcAddSpecialStock called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcAddSpecialStock); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcAddSpecialStock"); } static ScissorController() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Expected O, but got Unknown kCmdCmdUpdateScissors = -19756072; NetworkBehaviour.RegisterCommandDelegate(typeof(ScissorController), kCmdCmdUpdateScissors, new CmdDelegate(InvokeCmdCmdUpdateScissors)); kRpcRpcAddSpecialStock = 877383088; NetworkBehaviour.RegisterRpcDelegate(typeof(ScissorController), kRpcRpcAddSpecialStock, new CmdDelegate(InvokeRpcRpcAddSpecialStock)); NetworkCRC.RegisterBehaviour("ScissorController", 0); } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class ScissorImpact : NetworkBehaviour, IProjectileImpactBehavior { public string stickSoundString; public ParticleSystem[] stickParticleSystem; public GameObject impactEffect; public GameObject explosionEffect; public bool ignoreCharacters; public bool ignoreWorld; public bool alignNormals = true; private bool hasFired = true; public UnityEvent stickEvent; private Rigidbody rigidbody; private bool wasEverEnabled; private GameObject _victim; [SyncVar] private GameObject syncVictim; [SyncVar] private sbyte hitHurtboxIndex = -1; [SyncVar] private Vector3 localPosition; [SyncVar] private Quaternion localRotation; private NetworkInstanceId ___syncVictimNetId; private NetworkInstanceId ___syncVictimNetId; private static int kRpcRpcActivateTeamIndicator; public Transform stuckTransform { get; private set; } public CharacterBody stuckBody { get; private set; } public GameObject victim { get { return _victim; } private set { _victim = value; this.NetworksyncVictim = value; } } public bool stuck => hitHurtboxIndex != -1; public GameObject NetworksyncVictim { get { return syncVictim; } [param: In] set { ((NetworkBehaviour)this).SetSyncVarGameObject(value, ref syncVictim, 1u, ref this.___syncVictimNetId); } } public sbyte NetworkhitHurtboxIndex { get { return hitHurtboxIndex; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref hitHurtboxIndex, 2u); } } public Vector3 NetworklocalPosition { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return localPosition; } [param: In] set { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).SetSyncVar(value, ref localPosition, 4u); } } public Quaternion NetworklocalRotation { get { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) return localRotation; } [param: In] set { //IL_0002: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).SetSyncVar(value, ref localRotation, 8u); } } public GameObject NetworksyncVictim { get { return syncVictim; } [param: In] set { ((NetworkBehaviour)this).SetSyncVarGameObject(value, ref syncVictim, 1u, ref ___syncVictimNetId); } } public sbyte NetworkhitHurtboxIndex { get { return hitHurtboxIndex; } [param: In] set { ((NetworkBehaviour)this).SetSyncVar(value, ref hitHurtboxIndex, 2u); } } public Vector3 NetworklocalPosition { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return localPosition; } [param: In] set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).SetSyncVar(value, ref localPosition, 4u); } } public Quaternion NetworklocalRotation { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return localRotation; } [param: In] set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) ((NetworkBehaviour)this).SetSyncVar(value, ref localRotation, 8u); } } private void Awake() { rigidbody = ((Component)this).GetComponent(); } public void FixedUpdate() { UpdateSticking(); } private void OnEnable() { if (wasEverEnabled) { Collider component = ((Component)this).GetComponent(); component.enabled = false; component.enabled = true; } wasEverEnabled = true; } private void OnDisable() { if (NetworkServer.active) { Detach(); } Collider component = ((Component)this).GetComponent(); component.enabled = false; } [Server] public void Detach() { if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void SeamstressMod.Seamstress.Components.ScissorImpact::Detach()' called on client"); return; } if (!NetworkServer.active) { Debug.LogWarning((object)"[Server] function 'System.Void RoR2.Projectile.ProjectileStickOnImpact::Detach()' called on client"); return; } victim = null; stuckTransform = null; this.NetworkhitHurtboxIndex = -1; UpdateSticking(); } public void OnProjectileImpact(ProjectileImpactInfo impactInfo) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Expected O, but got Unknown //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Expected O, but got Unknown //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) if (!((Behaviour)this).enabled) { return; } TrySticking(impactInfo.collider, impactInfo.estimatedImpactNormal); if (!hasFired) { Vector3 point = ((Component)this).transform.localPosition; RaycastHit val = default(RaycastHit); if (Physics.Raycast(point, Vector3.one, ref val, 10f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask))) { point = ((RaycastHit)(ref val)).point; } EffectManager.SpawnEffect(impactEffect, new EffectData { origin = point, rotation = Quaternion.identity, scale = 1.5f }, true); EffectManager.SpawnEffect(explosionEffect, new EffectData { origin = point, rotation = Quaternion.identity, color = Color32.op_Implicit(SeamstressAssets.coolRed) }, true); BlastAttack val2 = new BlastAttack(); GameObject val3 = (val2.inflictor = (val2.attacker = ((Component)this).gameObject.GetComponent().owner)); val2.teamIndex = TeamComponent.GetObjectTeam(val3); val2.baseDamage = SeamstressConfig.scissorDamageCoefficient.Value * val3.GetComponent().damage; val2.baseForce = 600f; val2.position = ((Component)this).transform.position; val2.procCoefficient = 0.7f; val2.radius = 4f; val2.damageType = DamageTypeCombo.op_Implicit((DamageType)131104); if (val3.GetComponent().HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { DamageAPI.AddModdedDamageType(val2, DamageTypes.CutDamage); } DamageAPI.AddModdedDamageType(val2, DamageTypes.SeamstressLifesteal); val2.falloffModel = (FalloffModel)0; val2.attackerFiltering = (AttackerFiltering)2; val2.Fire(); hasFired = true; } } private bool TrySticking(Collider hitCollider, Vector3 impactNormal) { //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)victim)) { return false; } GameObject val = null; sbyte networkhitHurtboxIndex = -1; HurtBox component = ((Component)hitCollider).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { val = ((Component)healthComponent).gameObject; } networkhitHurtboxIndex = (sbyte)component.indexInGroup; } if (!Object.op_Implicit((Object)(object)component) && !ignoreWorld) { val = ((Component)hitCollider).gameObject; networkhitHurtboxIndex = -2; } if (Object.op_Implicit((Object)(object)val)) { stickEvent.Invoke(); CallRpcActivateTeamIndicator(); ParticleSystem[] array = stickParticleSystem; for (int i = 0; i < array.Length; i++) { array[i].Play(); } if (stickSoundString.Length > 0) { Util.PlaySound(stickSoundString, ((Component)this).gameObject); } if (alignNormals && impactNormal != Vector3.zero) { ((Component)this).transform.rotation = Util.QuaternionSafeLookRotation(impactNormal, ((Component)this).transform.up); } Transform transform = ((Component)hitCollider).transform; this.NetworklocalPosition = transform.InverseTransformPoint(((Component)this).transform.position); this.NetworklocalRotation = Quaternion.Inverse(transform.rotation) * ((Component)this).transform.rotation; victim = val; this.NetworkhitHurtboxIndex = networkhitHurtboxIndex; hasFired = false; ((Component)this).gameObject.GetComponent().lookCone = 360f; ((Component)this).gameObject.GetComponent().lookRange = 35f; return true; } return false; } [ClientRpc] public void RpcActivateTeamIndicator() { stickEvent.Invoke(); } private void UpdateSticking() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) bool flag = Object.op_Implicit((Object)(object)stuckTransform); if (flag) { ((Component)this).transform.SetPositionAndRotation(stuckTransform.TransformPoint(localPosition), alignNormals ? (stuckTransform.rotation * localRotation) : ((Component)this).transform.rotation); } else { GameObject val = (NetworkServer.active ? victim : syncVictim); if (Object.op_Implicit((Object)(object)val)) { stuckTransform = val.transform; flag = true; if (hitHurtboxIndex >= 0) { stuckBody = ((Component)stuckTransform).GetComponent(); if (Object.op_Implicit((Object)(object)stuckBody) && Object.op_Implicit((Object)(object)stuckBody.hurtBoxGroup)) { HurtBox val2 = stuckBody.hurtBoxGroup.hurtBoxes[hitHurtboxIndex]; stuckTransform = (Object.op_Implicit((Object)(object)val2) ? ((Component)val2).transform : null); } } } else if (hitHurtboxIndex == -2 && !NetworkServer.active) { flag = true; } } if (!NetworkServer.active) { return; } if (rigidbody.isKinematic != flag) { if (flag) { rigidbody.collisionDetectionMode = (CollisionDetectionMode)0; rigidbody.isKinematic = true; } else { rigidbody.isKinematic = false; rigidbody.collisionDetectionMode = (CollisionDetectionMode)1; } } if (!flag) { this.NetworkhitHurtboxIndex = -1; } } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) if (forceAll) { writer.Write(syncVictim); writer.WritePackedUInt32((uint)hitHurtboxIndex); writer.Write(localPosition); writer.Write(localRotation); return true; } bool flag = false; if ((((NetworkBehaviour)this).syncVarDirtyBits & (true ? 1u : 0u)) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(syncVictim); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 2u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.WritePackedUInt32((uint)hitHurtboxIndex); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 4u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(localPosition); } if ((((NetworkBehaviour)this).syncVarDirtyBits & 8u) != 0) { if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); flag = true; } writer.Write(localRotation); } if (!flag) { writer.WritePackedUInt32(((NetworkBehaviour)this).syncVarDirtyBits); } return flag; } public override void OnDeserialize(NetworkReader reader, bool initialState) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_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) if (initialState) { this.___syncVictimNetId = reader.ReadNetworkId(); hitHurtboxIndex = (sbyte)reader.ReadPackedUInt32(); localPosition = reader.ReadVector3(); localRotation = reader.ReadQuaternion(); return; } int num = (int)reader.ReadPackedUInt32(); if (((uint)num & (true ? 1u : 0u)) != 0) { syncVictim = reader.ReadGameObject(); } if (((uint)num & 2u) != 0) { hitHurtboxIndex = (sbyte)reader.ReadPackedUInt32(); } if (((uint)num & 4u) != 0) { localPosition = reader.ReadVector3(); } if (((uint)num & 8u) != 0) { localRotation = reader.ReadQuaternion(); } } public override void PreStartClient() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) if (!((NetworkInstanceId)(ref this.___syncVictimNetId)).IsEmpty()) { this.NetworksyncVictim = ClientScene.FindLocalObject(this.___syncVictimNetId); } } protected static void InvokeRpcRpcActivateTeamIndicator(NetworkBehaviour obj, NetworkReader reader) { if (!NetworkClient.active) { Debug.LogError((object)"RPC RpcActivateTeamIndicator called on server."); } else { ((ScissorImpact)(object)obj).RpcActivateTeamIndicator(); } } public void CallRpcActivateTeamIndicator() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Expected O, but got Unknown //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (!NetworkServer.active) { Debug.LogError((object)"RPC Function RpcActivateTeamIndicator called on client."); return; } NetworkWriter val = new NetworkWriter(); val.Write((short)0); val.Write((short)2); val.WritePackedUInt32((uint)kRpcRpcActivateTeamIndicator); val.Write(((Component)this).GetComponent().netId); ((NetworkBehaviour)this).SendRPCInternal(val, 0, "RpcActivateTeamIndicator"); } static ScissorImpact() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Expected O, but got Unknown kRpcRpcActivateTeamIndicator = -1054456409; NetworkBehaviour.RegisterRpcDelegate(typeof(ScissorImpact), kRpcRpcActivateTeamIndicator, new CmdDelegate(InvokeRpcRpcActivateTeamIndicator)); NetworkCRC.RegisterBehaviour("ScissorImpact", 0); } } public class SeamstressBaseDamageController : MonoBehaviour { private CharacterBody characterBody; private HealthComponent healthComponent; private SkillLocator skillLocator; private void Awake() { characterBody = ((Component)this).GetComponent(); healthComponent = ((Component)this).GetComponent(); skillLocator = ((Component)this).GetComponent(); } private void OnEnable() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void OnDisable() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients -= new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); } private void RecalculateStatsAPI_GetStatCoefficients(CharacterBody sender, StatHookEventArgs args) { if (!((Object)(object)sender != (Object)(object)characterBody) && Object.op_Implicit((Object)(object)healthComponent) && Object.op_Implicit((Object)(object)skillLocator)) { float num = healthComponent.fullCombinedHealth * sender.cursePenalty - (healthComponent.health + healthComponent.shield / 2f); float num2 = healthComponent.fullHealth * 0.66f; if (sender.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && skillLocator.utility.skillDef.skillIndex == SkillCatalog.FindSkillIndexByName("ParrySeamstress")) { args.baseDamageAdd += num2 * SeamstressConfig.passiveScaling.Value + num * SeamstressConfig.passiveScaling.Value; } else { args.baseDamageAdd += num * SeamstressConfig.passiveScaling.Value; } } } public void ApplyLifesteal(CharacterBody attackerBody, DamageInfo damageInfo) { //IL_005a: 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) if (Object.op_Implicit((Object)(object)healthComponent)) { float num = 1f - healthComponent.combinedHealth / healthComponent.fullCombinedHealth; healthComponent.Heal(num * SeamstressConfig.passiveLifeSteal.Value * healthComponent.fullCombinedHealth * damageInfo.procCoefficient, default(ProcChainMask), true); } } } public class SeamstressBlinkController : MonoBehaviour { private CharacterMotor characterMotor; public float blinkCd = 0f; public bool blinkReady; public bool hopooHasHopped; public void Awake() { characterMotor = ((Component)this).GetComponent(); } public void FixedUpdate() { if (characterMotor.isGrounded) { hopooHasHopped = false; } blinkCd += Time.fixedDeltaTime; } } public class SeamstressPassive : MonoBehaviour { public SkillDef blinkPassive; public SkillDef impGauge; public GenericSkill passiveSkillSlot; public GenericSkill impGaugeSkillSlot; public bool isBlink { get { if (Object.op_Implicit((Object)(object)blinkPassive) && Object.op_Implicit((Object)(object)passiveSkillSlot)) { return (Object)(object)passiveSkillSlot.skillDef == (Object)(object)blinkPassive; } return false; } } public bool isImpTouchedHeart { get { if (Object.op_Implicit((Object)(object)impGauge) && Object.op_Implicit((Object)(object)impGaugeSkillSlot)) { return (Object)(object)impGaugeSkillSlot.skillDef == (Object)(object)impGauge; } return false; } } private void Start() { SeamstressBlinkController component = ((Component)this).GetComponent(); SeamstressBaseDamageController component2 = ((Component)this).GetComponent(); if (Object.op_Implicit((Object)(object)component)) { ((Behaviour)component).enabled = isImpTouchedHeart; } if (Object.op_Implicit((Object)(object)component2)) { ((Behaviour)component2).enabled = isBlink; } } } public class SeamstressController : NetworkBehaviour { private CharacterBody characterBody; private ChildLocator childLocator; private CharacterMotor characterMotor; private SkillLocator skillLocator; private Animator animator; private ModelSkinController skinController; public GameObject insatiableEndPrefab = SeamstressAssets.insatiableEndEffect; public GameObject blinkEffect = SeamstressAssets.blinkEffect; public GameObject scissorLPrefab = SeamstressAssets.scissorLPrefab; public GameObject scissorRPrefab = SeamstressAssets.scissorRPrefab; public Material destealthMaterial = SeamstressAssets.destealthMaterial; public bool blue; private float dashStopwatch; private float checkStatsStopwatch; private bool hasPlayedEffect = true; private float animOverrideTimer = 0f; public bool isDashing; public Vector3 heldDashVector; public Vector3 heldOrigin; public Vector3 snapBackPosition; public void Awake() { characterBody = ((Component)this).GetComponent(); characterMotor = ((Component)this).GetComponent(); skillLocator = ((Component)this).GetComponent(); ModelLocator component = ((Component)this).GetComponent(); childLocator = ((Component)component.modelBaseTransform).GetComponentInChildren(); animator = ((Component)component.modelTransform).GetComponent(); skinController = ((Component)this).GetComponentInChildren(); ((MonoBehaviour)this).Invoke("SetupSkin", 0.5f); } public void Start() { } private void SetupSkin() { if (Object.op_Implicit((Object)(object)((Component)childLocator.FindChild("ScissorLModel")).gameObject.GetComponent().sharedMesh) && (Object)(object)((Component)childLocator.FindChild("ScissorRModel")).gameObject.GetComponent().sharedMesh != (Object)null) { if (skinController.skins[skinController.currentSkinIndex].nameToken == "KENKO_SEAMSTRESS_MASTERY_SKIN_NAME") { blue = true; insatiableEndPrefab = SeamstressAssets.insatiableEndEffect2; blinkEffect = SeamstressAssets.blinkEffect2; scissorLPrefab = SeamstressAssets.scissorLPrefab2; scissorRPrefab = SeamstressAssets.scissorRPrefab2; destealthMaterial = SeamstressAssets.destealthMaterial2; } scissorLPrefab.GetComponent().ghostPrefab.GetComponent().mesh = ((Component)childLocator.FindChild("ScissorLModel")).gameObject.GetComponent().sharedMesh; ((Renderer)scissorLPrefab.GetComponent().ghostPrefab.GetComponent()).material = ((Renderer)((Component)childLocator.FindChild("ScissorRModel")).gameObject.GetComponent()).material; scissorRPrefab.GetComponent().ghostPrefab.GetComponent().mesh = ((Component)childLocator.FindChild("ScissorRModel")).gameObject.GetComponent().sharedMesh; ((Renderer)scissorRPrefab.GetComponent().ghostPrefab.GetComponent()).material = ((Renderer)((Component)childLocator.FindChild("ScissorRModel")).gameObject.GetComponent()).material; } } public void FixedUpdate() { //IL_00df: Unknown result type (might be due to invalid IL or missing references) if (dashStopwatch > 0f && !hasPlayedEffect) { dashStopwatch -= Time.fixedDeltaTime; } if ((double)checkStatsStopwatch >= 0.5) { characterBody.MarkAllStatsDirty(); checkStatsStopwatch = 0f; } else { checkStatsStopwatch += Time.fixedDeltaTime; } if (animOverrideTimer > 0f) { animOverrideTimer -= Time.fixedDeltaTime; animator.SetLayerWeight(animator.GetLayerIndex("Scissor, Override"), animOverrideTimer); } else if (animOverrideTimer < 0f) { animOverrideTimer = 0f; } CreateBlinkEffect(heldOrigin); } public void ReactivateScissor(string scissorName, bool activate) { if (activate) { ((Component)childLocator.FindChild(scissorName)).gameObject.SetActive(true); } else if (!activate) { ((Component)childLocator.FindChild(scissorName)).gameObject.SetActive(false); } } private void CreateBlinkEffect(Vector3 origin) { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)blinkEffect) && !hasPlayedEffect && dashStopwatch < 0f) { EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(heldDashVector); val.origin = origin; val.scale = 1f; EffectManager.SpawnEffect(blinkEffect, val, true); hasPlayedEffect = true; } } public void StartDashEffectTimer() { dashStopwatch = 0.75f; hasPlayedEffect = false; } public void PlayScissorRSwing() { animator.SetLayerWeight(animator.GetLayerIndex("Scissor, Override"), 1f); animOverrideTimer = 1.5f; PlayCrossfade("Scissor, Override", "ScissorRPickup", "Slash.playbackRate", 1.5f, 0.05f); } public void PlayScissorLSwing() { animator.SetLayerWeight(animator.GetLayerIndex("Scissor, Override"), 1f); animOverrideTimer = 1.5f; PlayCrossfade("Scissor, Override", "ScissorLPickup", "Slash.playbackRate", 1.5f, 0.05f); } protected void PlayCrossfade(string layerName, string animationStateName, string playbackRateParam, float duration, float crossfadeDuration) { //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) if (duration <= 0f) { Debug.LogWarningFormat("EntityState.PlayCrossfade: Zero duration is not allowed. type={0}", new object[1] { ((object)this).GetType().Name }); return; } Animator val = animator; if (Object.op_Implicit((Object)(object)val)) { val.speed = 1f; val.Update(0f); int layerIndex = val.GetLayerIndex(layerName); val.SetFloat(playbackRateParam, 1f); val.CrossFadeInFixedTime(animationStateName, crossfadeDuration, layerIndex); val.Update(0f); AnimatorStateInfo nextAnimatorStateInfo = val.GetNextAnimatorStateInfo(layerIndex); float length = ((AnimatorStateInfo)(ref nextAnimatorStateInfo)).length; val.SetFloat(playbackRateParam, length / duration); } } public void EnableInstatiableLayer() { if (Object.op_Implicit((Object)(object)animator) && Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("HeartModel")).gameObject.SetActive(false); animator.SetLayerWeight(animator.GetLayerIndex("Body, Butchered"), 1f); } } public void DisableInstatiableLayer() { if (Object.op_Implicit((Object)(object)animator) && Object.op_Implicit((Object)(object)childLocator)) { ((Component)childLocator.FindChild("HeartModel")).gameObject.SetActive(true); animator.SetLayerWeight(animator.GetLayerIndex("Body, Butchered"), 0f); } } private void UNetVersion() { } public override bool OnSerialize(NetworkWriter writer, bool forceAll) { bool result = default(bool); return result; } public override void OnDeserialize(NetworkReader reader, bool initialState) { } } public class SeamstressCSS : MonoBehaviour { private bool hasPlayed = false; private bool hasPlayed2 = false; private float timer = 0f; private void Awake() { } private void FixedUpdate() { timer += Time.fixedDeltaTime; if (!hasPlayed && timer >= 0.1f) { hasPlayed = true; Util.PlaySound("sfx_seamstress_snap", ((Component)this).gameObject); } if (!hasPlayed2 && timer >= 0.6f) { hasPlayed2 = true; Util.PlaySound("sfx_seamstress_cloth", ((Component)this).gameObject); } } } public class SeamstressInsatiableController : MonoBehaviour { private CharacterBody characterBody; private SkillLocator skillLocator; private ChildLocator childLocator; private SeamstressController seamstressController; private float insatiableStopwatch = 0f; public bool hasStartedInsatiable = false; private bool hasPlayed = false; public GameObject trailEffectPrefab; public GameObject trailEffectPrefab2; public void Awake() { characterBody = ((Component)this).GetComponent(); skillLocator = ((Component)this).GetComponent(); seamstressController = ((Component)this).GetComponent(); ModelLocator component = ((Component)this).GetComponent(); childLocator = ((Component)component.modelBaseTransform).GetComponentInChildren(); } public void FixedUpdate() { if (insatiableStopwatch > 0f) { insatiableStopwatch -= Time.fixedDeltaTime; } InsatiableSound(); IsInsatiable(); } private void IsInsatiable() { //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) if (characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && !hasStartedInsatiable) { seamstressController.EnableInstatiableLayer(); if (Object.op_Implicit((Object)(object)trailEffectPrefab)) { Object.Destroy((Object)(object)trailEffectPrefab.gameObject); } if (Object.op_Implicit((Object)(object)trailEffectPrefab2)) { Object.Destroy((Object)(object)trailEffectPrefab2.gameObject); } Transform val = childLocator.FindChild("HandR"); Transform val2 = childLocator.FindChild("HandL"); trailEffectPrefab = Object.Instantiate(seamstressController.blue ? SeamstressAssets.trailEffectHands2 : SeamstressAssets.trailEffectHands, val); trailEffectPrefab2 = Object.Instantiate(seamstressController.blue ? SeamstressAssets.trailEffectHands2 : SeamstressAssets.trailEffectHands, val2); insatiableStopwatch = SeamstressConfig.insatiableDuration.Value; Transform modelTransform = characterBody.modelLocator.modelTransform; if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlayInstance val3 = TemporaryOverlayManager.AddOverlay(((Component)this).gameObject); val3.duration = 1f; val3.destroyComponentOnEnd = true; val3.originalMaterial = Addressables.LoadAssetAsync((object)"RoR2/Base/Common/matOnFire.mat").WaitForCompletion(); val3.inspectorCharacterModel = ((Component)modelTransform).GetComponent(); val3.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val3.animateShaderAlpha = true; } hasStartedInsatiable = true; } else if (!characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff) && hasStartedInsatiable) { if (skillLocator.utility.skillDef.skillIndex == SeamstressSurvivor.explodeSkillDef.skillIndex && insatiableStopwatch <= SeamstressConfig.insatiableDuration.Value - 1f) { EndInsatiableManually(); skillLocator.utility.ExecuteIfReady(); hasStartedInsatiable = false; } else { EndInsatiableManually(); hasStartedInsatiable = false; } } } public void EndInsatiableManually() { //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Expected O, but got Unknown seamstressController.DisableInstatiableLayer(); if (Object.op_Implicit((Object)(object)trailEffectPrefab)) { Object.Destroy((Object)(object)trailEffectPrefab.gameObject); } if (Object.op_Implicit((Object)(object)trailEffectPrefab2)) { Object.Destroy((Object)(object)trailEffectPrefab2.gameObject); } Transform modelTransform = characterBody.modelLocator.modelTransform; if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlayInstance val = TemporaryOverlayManager.AddOverlay(((Component)this).gameObject); val.duration = 1f; val.destroyComponentOnEnd = true; val.originalMaterial = seamstressController.destealthMaterial; val.inspectorCharacterModel = ((Component)modelTransform).GetComponent(); val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.animateShaderAlpha = true; } EffectData val2 = new EffectData { origin = ((Component)characterBody.modelLocator).transform.position, rootObject = ((Component)characterBody).gameObject }; EffectManager.SpawnEffect(seamstressController.insatiableEndPrefab, val2, true); Util.PlaySound("Play_voidman_transform_return", ((Component)characterBody).gameObject); } private void InsatiableSound() { if (characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff)) { if (insatiableStopwatch < 2f && !hasPlayed) { Util.PlaySound("Play_nullifier_impact", ((Component)characterBody).gameObject); hasPlayed = true; } else if (insatiableStopwatch > 2f || insatiableStopwatch < 0f) { hasPlayed = false; } } } } [CreateAssetMenu(menuName = "RoR2/SkillDef/HuntressTrackingSkillDef")] public class SeamstressTrackingSkillDef : SkillDef { protected class InstanceData : BaseSkillInstanceData { public Tracker tracker; public SeamstressController seamstressController; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { tracker = ((Component)skillSlot).GetComponent(), seamstressController = ((Component)skillSlot).GetComponent() }; } private static bool HasTarget([NotNull] GenericSkill skillSlot) { if (!Object.op_Implicit((Object)(object)((InstanceData)(object)skillSlot.skillInstanceData).tracker?.GetTrackingTarget())) { return false; } return true; } public override bool CanExecute([NotNull] GenericSkill skillSlot) { if (!HasTarget(skillSlot)) { return false; } return ((SkillDef)this).CanExecute(skillSlot); } public override bool IsReady([NotNull] GenericSkill skillSlot) { if (((SkillDef)this).IsReady(skillSlot)) { return HasTarget(skillSlot); } return false; } } [RequireComponent(typeof(InputBankTest))] [RequireComponent(typeof(CharacterBody))] [RequireComponent(typeof(TeamComponent))] public class Tracker : MonoBehaviour { public float maxTrackingDistance = 40f; public float maxTrackingAngle = 20f; public float trackerUpdateFrequency = 10f; private HurtBox trackingTarget; private CharacterBody characterBody; private TeamComponent teamComponent; private InputBankTest inputBank; private float trackerUpdateStopwatch; private Indicator indicator; private Indicator indicator2; private bool onCooldown; private readonly BullseyeSearch search = new BullseyeSearch(); 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Expected O, but got Unknown indicator = new Indicator(((Component)this).gameObject, SeamstressAssets.telekinesisTracker); indicator2 = new Indicator(((Component)this).gameObject, SeamstressAssets.telekinesisCdTracker); } private void Start() { characterBody = ((Component)this).GetComponent(); inputBank = ((Component)this).GetComponent(); teamComponent = ((Component)this).GetComponent(); } public HurtBox GetTrackingTarget() { if ((Object)(object)trackingTarget != (Object)null) { if (!onCooldown) { return trackingTarget; } return null; } return trackingTarget; } private void OnEnable() { indicator.active = true; indicator2.active = true; } private void OnDisable() { indicator.active = false; indicator2.active = false; } private void FixedUpdate() { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) if (characterBody.skillLocator.secondary.skillNameToken != "KENKO_SEAMSTRESS_SECONDARY_PLANMAN_NAME") { ((Behaviour)this).enabled = false; } trackerUpdateStopwatch += Time.fixedDeltaTime; if (trackerUpdateStopwatch >= 1f / trackerUpdateFrequency) { trackerUpdateStopwatch -= 1f / trackerUpdateFrequency; _ = trackingTarget; Ray aimRay = default(Ray); ((Ray)(ref aimRay))..ctor(inputBank.aimOrigin, inputBank.aimDirection); SearchForTarget(aimRay); if ((Object)(object)trackingTarget != (Object)null) { onCooldown = trackingTarget.healthComponent.body.HasBuff(SeamstressBuffs.ManipulatedCd); } if (onCooldown) { indicator2.targetTransform = (Object.op_Implicit((Object)(object)trackingTarget) ? ((Component)trackingTarget).transform : null); indicator.targetTransform = null; } else { indicator.targetTransform = (Object.op_Implicit((Object)(object)trackingTarget) ? ((Component)trackingTarget).transform : null); indicator2.targetTransform = null; } } } private void SearchForTarget(Ray aimRay) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) search.teamMaskFilter = TeamMask.GetUnprotectedTeams(teamComponent.teamIndex); search.filterByLoS = true; search.searchOrigin = ((Ray)(ref aimRay)).origin; search.searchDirection = ((Ray)(ref aimRay)).direction; search.sortMode = (SortMode)1; search.maxDistanceFilter = maxTrackingDistance; search.maxAngleFilter = maxTrackingAngle; search.RefreshCandidates(); search.FilterOutGameObject(((Component)this).gameObject); trackingTarget = search.GetResults().FirstOrDefault(); } } } namespace SeamstressMod.Seamstress.Achievements { [RegisterAchievement("KENKO_SEAMSTRESS_masteryAchievement", "KENKO_SEAMSTRESS_masteryUnlockable", null, 0u, null)] public class SeamstressMasteryAchievement : BaseMasteryAchievement { public const string identifier = "KENKO_SEAMSTRESS_masteryAchievement"; public const string unlockableIdentifier = "KENKO_SEAMSTRESS_masteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3f; } [RegisterAchievement("KENKO_SEAMSTRESS_typhoonMasteryAchievement", "KENKO_SEAMSTRESS_typhoonMasteryUnlockable", null, 0u, null)] public class SeamstressRavenUnlockAchievement : BaseMasteryAchievement { public const string identifier = "KENKO_SEAMSTRESS_typhoonMasteryAchievement"; public const string unlockableIdentifier = "KENKO_SEAMSTRESS_typhoonMasteryUnlockable"; public override string RequiredCharacterBody => CharacterBase.instance.bodyName; public override float RequiredDifficultyCoefficient => 3.5f; } } namespace SeamstressMod.Modules { internal static class CharacterAssets { internal static Dictionary loadedBundles = new Dictionary(); internal static AssetBundle LoadAssetBundle(string bundleName) { if (bundleName == "myassetbundle") { Log.Error("AssetBundle name hasn't been changed. not loading any assets to avoid conflicts.\nMake sure to rename your assetbundle filename and rename the AssetBundleName field in your character setup code "); return null; } if (loadedBundles.ContainsKey(bundleName)) { return loadedBundles[bundleName]; } AssetBundle val = null; try { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SeamstressMod." + bundleName); val = AssetBundle.LoadFromStream(stream); } catch (Exception arg) { Log.Error($"Error loading asset bundle, {bundleName}. Your asset bundle must be in a folder next to your mod dll called 'AssetBundles'. Follow the guide to build and install your mod correctly!\n{arg}"); } loadedBundles[bundleName] = val; return val; } internal static GameObject CloneTracer(string originalTracerName, string newTracerName) { if ((Object)(object)LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName) == (Object)null) { return null; } GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Effects/Tracers/" + originalTracerName), newTracerName, true); if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } val.GetComponent().speed = 250f; val.GetComponent().length = 50f; Content.CreateAndAddEffectDef(val); return val; } internal static void ConvertAllRenderersToHopooShader(GameObject objectToConvert) { if (!Object.op_Implicit((Object)(object)objectToConvert)) { return; } MeshRenderer[] componentsInChildren = objectToConvert.GetComponentsInChildren(); foreach (MeshRenderer val in componentsInChildren) { if (Object.op_Implicit((Object)(object)val) && Object.op_Implicit((Object)(object)((Renderer)val).sharedMaterial)) { ((Renderer)val).sharedMaterial.ConvertDefaultShaderToHopoo(); } } SkinnedMeshRenderer[] componentsInChildren2 = objectToConvert.GetComponentsInChildren(); foreach (SkinnedMeshRenderer val2 in componentsInChildren2) { if (Object.op_Implicit((Object)(object)val2) && Object.op_Implicit((Object)(object)((Renderer)val2).sharedMaterial)) { ((Renderer)val2).sharedMaterial.ConvertDefaultShaderToHopoo(); } } } internal static GameObject LoadCrosshair(string crosshairName) { GameObject val = LegacyResourcesAPI.Load("Prefabs/Crosshair/" + crosshairName + "Crosshair"); if ((Object)(object)val == (Object)null) { Log.Error("could not load crosshair with the name " + crosshairName + ". defaulting to Standard"); return LegacyResourcesAPI.Load("Prefabs/Crosshair/StandardCrosshair"); } return val; } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, bool parentToTransform) { return assetBundle.LoadEffect(resourceName, "", parentToTransform); } internal static GameObject LoadEffect(this AssetBundle assetBundle, string resourceName, string soundName = "", bool parentToTransform = false) { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(resourceName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(resourceName, ((Object)assetBundle).name); return null; } val.AddComponent().duration = 12f; val.AddComponent(); val.AddComponent().vfxPriority = (VFXPriority)2; EffectComponent val2 = val.AddComponent(); val2.applyScale = false; val2.effectIndex = (EffectIndex)(-1); val2.parentToReferencedTransform = parentToTransform; val2.positionAtReferencedTransform = true; val2.soundName = soundName; Content.CreateAndAddEffectDef(val); return val; } internal static GameObject CreateProjectileGhostPrefab(this AssetBundle assetBundle, string ghostName) { GameObject val = assetBundle.LoadAsset(ghostName); if ((Object)(object)val == (Object)null) { Log.Error("Failed to load ghost prefab " + ghostName); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } if (!Object.op_Implicit((Object)(object)val.GetComponent())) { val.AddComponent(); } ConvertAllRenderersToHopooShader(val); return val; } internal static GameObject CloneProjectilePrefab(string prefabName, string newPrefabName) { return PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/Projectiles/" + prefabName), newPrefabName); } internal static GameObject LoadAndAddProjectilePrefab(this AssetBundle assetBundle, string newPrefabName) { GameObject val = assetBundle.LoadAsset(newPrefabName); if ((Object)(object)val == (Object)null) { Log.ErrorAssetBundle(newPrefabName, ((Object)assetBundle).name); return null; } Content.AddProjectilePrefab(val); return val; } } public static class Config { public static ConfigFile MyConfig = ((BaseUnityPlugin)SeamstressPlugin.instance).Config; public static ConfigEntry CharacterEnableConfig(string section, string characterName, string description = "", bool enabledByDefault = true) { if (string.IsNullOrEmpty(description)) { description = "Set to false to disable this character and as much of its code and content as possible"; } return BindAndOptions(section, "Enable " + characterName, enabledByDefault, description, restartRequired: true); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, string description = "", bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, 0f, 20f, description, restartRequired); } public static ConfigEntry BindAndOptions(string section, string name, T defaultValue, float min, float max, string description = "", bool restartRequired = false) { if (string.IsNullOrEmpty(description)) { description = name; } if (restartRequired) { description += " (restart required)"; } ConfigEntry result = MyConfig.Bind(section, name, defaultValue, description); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { } return result; } public static ConfigEntry BindAndOptionsSlider(string section, string name, float defaultValue, string description, float min = 0f, float max = 20f, bool restartRequired = false) { return BindAndOptions(section, name, defaultValue, min, max, description, restartRequired); } [MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)] private static void TryRegisterOption(ConfigEntry entry, float min, float max, bool restartRequired) { } public static bool GetKeyPressed(KeyboardShortcut entry) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) foreach (KeyCode modifier in ((KeyboardShortcut)(ref entry)).Modifiers) { if (!Input.GetKey(modifier)) { return false; } } return Input.GetKeyDown(((KeyboardShortcut)(ref entry)).MainKey); } } internal class Content { internal static void AddCharacterBodyPrefab(GameObject bprefab) { ContentPacks.bodyPrefabs.Add(bprefab); } internal static void AddMasterPrefab(GameObject prefab) { ContentPacks.masterPrefabs.Add(prefab); } internal static void AddProjectilePrefab(GameObject prefab) { ContentPacks.projectilePrefabs.Add(prefab); } internal static void AddSurvivorDef(SurvivorDef survivorDef) { ContentPacks.survivorDefs.Add(survivorDef); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, null, sortPosition); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, 100f); } internal static void CreateSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) SurvivorDef val = ScriptableObject.CreateInstance(); val.bodyPrefab = bodyPrefab; val.displayPrefab = displayPrefab; val.primaryColor = charColor; val.cachedName = ((Object)bodyPrefab).name.Replace("Body", ""); val.displayNameToken = tokenPrefix + "NAME"; val.descriptionToken = tokenPrefix + "DESCRIPTION"; val.outroFlavorToken = tokenPrefix + "OUTRO_FLAVOR"; val.mainEndingEscapeFailureFlavorToken = tokenPrefix + "OUTRO_FAILURE"; val.desiredSortPosition = sortPosition; val.unlockableDef = unlockableDef; AddSurvivorDef(val); } internal static void AddUnlockableDef(UnlockableDef unlockableDef) { ContentPacks.unlockableDefs.Add(unlockableDef); } internal static UnlockableDef CreateAndAddUnlockableDef(string identifier, string nameToken, Sprite achievementIcon) { UnlockableDef val = ScriptableObject.CreateInstance(); val.cachedName = identifier; val.nameToken = nameToken; val.achievementIcon = achievementIcon; AddUnlockableDef(val); return val; } internal static void AddSkillDef(SkillDef skillDef) { ContentPacks.skillDefs.Add(skillDef); } internal static void AddSkillFamily(SkillFamily skillFamily) { ContentPacks.skillFamilies.Add(skillFamily); } internal static void AddEntityState(Type entityState) { ContentPacks.entityStates.Add(entityState); } internal static void AddBuffDef(BuffDef buffDef) { ContentPacks.buffDefs.Add(buffDef); } internal static BuffDef CreateAndAddBuff(string buffName, Sprite buffIcon, Color buffColor, bool canStack, bool isDebuff, bool isCooldown) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) BuffDef val = ScriptableObject.CreateInstance(); ((Object)val).name = buffName; val.buffColor = buffColor; val.canStack = canStack; val.isDebuff = isDebuff; val.eliteDef = null; val.iconSprite = buffIcon; val.isCooldown = isCooldown; AddBuffDef(val); return val; } internal static void AddEffectDef(EffectDef effectDef) { ContentPacks.effectDefs.Add(effectDef); } internal static EffectDef CreateAndAddEffectDef(GameObject effectPrefab) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown EffectDef val = new EffectDef(effectPrefab); AddEffectDef(val); return val; } internal static void AddNetworkSoundEventDef(NetworkSoundEventDef networkSoundEventDef) { ContentPacks.networkSoundEventDefs.Add(networkSoundEventDef); } internal static NetworkSoundEventDef CreateAndAddNetworkSoundEventDef(string eventName) { NetworkSoundEventDef val = ScriptableObject.CreateInstance(); val.akId = AkSoundEngine.GetIDFromString(eventName); val.eventName = eventName; AddNetworkSoundEventDef(val); return val; } } internal class ContentPacks : IContentPackProvider { [CompilerGenerated] private sealed class d__18 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public FinalizeAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__18(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__17 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GetContentPackAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__17(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; ContentPack.Copy(<>4__this.contentPack, args.output); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class d__16 : IEnumerator, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LoadStaticContentAsyncArgs args; public ContentPacks <>4__this; object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public d__16(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.contentPack.identifier = <>4__this.identifier; <>4__this.contentPack.bodyPrefabs.Add(bodyPrefabs.ToArray()); <>4__this.contentPack.masterPrefabs.Add(masterPrefabs.ToArray()); <>4__this.contentPack.projectilePrefabs.Add(projectilePrefabs.ToArray()); <>4__this.contentPack.survivorDefs.Add(survivorDefs.ToArray()); <>4__this.contentPack.unlockableDefs.Add(unlockableDefs.ToArray()); <>4__this.contentPack.skillDefs.Add(skillDefs.ToArray()); <>4__this.contentPack.skillFamilies.Add(skillFamilies.ToArray()); <>4__this.contentPack.entityStateTypes.Add(entityStates.ToArray()); <>4__this.contentPack.buffDefs.Add(buffDefs.ToArray()); <>4__this.contentPack.effectDefs.Add(effectDefs.ToArray()); <>4__this.contentPack.networkSoundEventDefs.Add(networkSoundEventDefs.ToArray()); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } internal ContentPack contentPack = new ContentPack(); public static List bodyPrefabs = new List(); public static List masterPrefabs = new List(); public static List projectilePrefabs = new List(); public static List survivorDefs = new List(); public static List unlockableDefs = new List(); public static List skillFamilies = new List(); public static List skillDefs = new List(); public static List entityStates = new List(); public static List buffDefs = new List(); public static List effectDefs = new List(); public static List networkSoundEventDefs = new List(); public string identifier => "com.kenko.Seamstress"; public void Initialize() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } [IteratorStateMachine(typeof(d__16))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__16(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__17))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__17(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(d__18))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new d__18(0) { <>4__this = this, args = args }; } } internal static class ItemDisplayCheck { public static List allDisplayedItems; public static void PrintUnused(ItemDisplayRuleSet itemDisplayRuleSet, string bodyName = "") { PrintUnused((IEnumerable)itemDisplayRuleSet.keyAssetRuleGroups.ToList(), bodyName); } public static void PrintUnused(IEnumerable ruleSet = null, string bodyName = "") { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) string text = "generating item displays for " + bodyName; if (allDisplayedItems == null) { LazyGatherAllItems(); } List list = new List(allDisplayedItems); string text2 = ""; if (ruleSet != null) { foreach (KeyAssetRuleGroup item in ruleSet) { if (item.displayRuleGroup.rules.Length != 0) { list.Remove(item.keyAsset); if (string.IsNullOrEmpty(text2)) { text2 = item.displayRuleGroup.rules[0].childName; } } } } if (string.IsNullOrEmpty(text2)) { text2 = "Chest"; } foreach (Object item2 in list) { string text3 = ""; if (ItemDisplays.KeyAssetDisplayPrefabs.ContainsKey(item2)) { text3 += SpitOutNewRule(item2, text2, ItemDisplays.KeyAssetDisplayPrefabs[item2]); } else { Log.Error($"COULD NOT FIND DISPLAY PREFABS FOR KEYASSET {item2}"); } text += text3; } Log.Message(text); } private static void LazyGatherAllItems() { allDisplayedItems = new List(ItemDisplays.KeyAssetDisplayPrefabs.Keys); allDisplayedItems.Sort(delegate(Object item1, Object item2) { if (item1 is ItemDef && item2 is ItemDef) { return item1.name.CompareTo(item2.name); } if (item1 is EquipmentDef && item2 is EquipmentDef) { return item1.name.CompareTo(item2.name); } if (item1 is ItemDef && item2 is EquipmentDef) { return -1; } return (item1 is EquipmentDef && item2 is ItemDef) ? 1 : 0; }); } private static string SpitOutNewRule(Object asset, string firstCompatibleChild, ItemDisplayRule[] displayRules) { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Invalid comparison between Unknown and I4 //IL_00a5: Unknown result type (might be due to invalid IL or missing references) if (displayRules.Length == 0) { return $"\n[NO DISPLAY RULES FOUND FOR THE KEYASSET {asset}"; } string text = "\n itemDisplayRules.Add(ItemDisplays.CreateDisplayRuleGroupWithRules(ItemDisplays.KeyAssets[\"" + asset.name + "\"]"; for (int i = 0; i < displayRules.Length; i++) { text = (((int)displayRules[i].limbMask != 0) ? (text + ",\n" + $" ItemDisplays.CreateLimbMaskDisplayRule(LimbFlags.{displayRules[i].limbMask})") : (text + ",\n ItemDisplays.CreateDisplayRule(ItemDisplays.LoadDisplay(\"" + ((Object)displayRules[i].followerPrefab).name + "\"),\n \"" + firstCompatibleChild + "\",\n new Vector3(2, 2, 2),\n new Vector3(0, 0, 0),\n new Vector3(1, 1, 1)\n )")); } return text + "\n ));"; } } internal static class ItemDisplays { private static Dictionary itemDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssetDisplayPrefabs = new Dictionary(); public static Dictionary KeyAssets = new Dictionary(); public static int queuedDisplays; public static bool initialized = false; public static void LazyInit() { if (!initialized) { initialized = true; PopulateDisplays(); } } internal static void DisposeWhenDone() { queuedDisplays--; if (queuedDisplays <= 0 && initialized) { initialized = false; itemDisplayPrefabs = null; KeyAssetDisplayPrefabs = null; KeyAssets = null; } } internal static void PopulateDisplays() { PopulateFromBody("LoaderBody"); } private static void PopulateFromBody(string bodyName) { ItemDisplayRuleSet itemDisplayRuleSet = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyName).GetComponent().modelTransform).GetComponent().itemDisplayRuleSet; KeyAssetRuleGroup[] keyAssetRuleGroups = itemDisplayRuleSet.keyAssetRuleGroups; for (int i = 0; i < keyAssetRuleGroups.Length; i++) { ItemDisplayRule[] rules = keyAssetRuleGroups[i].displayRuleGroup.rules; KeyAssetDisplayPrefabs[keyAssetRuleGroups[i].keyAsset] = rules; KeyAssets[keyAssetRuleGroups[i].keyAsset.name] = keyAssetRuleGroups[i].keyAsset; for (int j = 0; j < rules.Length; j++) { GameObject followerPrefab = rules[j].followerPrefab; if (Object.op_Implicit((Object)(object)followerPrefab)) { string key = ((Object)followerPrefab).name?.ToLowerInvariant(); if (!itemDisplayPrefabs.ContainsKey(key)) { itemDisplayPrefabs[key] = followerPrefab; } } } } } public static GameObject LoadDisplay(string name) { if (itemDisplayPrefabs.ContainsKey(name.ToLowerInvariant()) && Object.op_Implicit((Object)(object)itemDisplayPrefabs[name.ToLowerInvariant()])) { return itemDisplayPrefabs[name.ToLowerInvariant()]; } Log.Error("item display " + name + " returned null"); return null; } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(string itemName, params ItemDisplayRule[] rules) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRuleGroupWithRules(GetKeyAssetFromString(itemName), rules); } public static KeyAssetRuleGroup CreateDisplayRuleGroupWithRules(Object keyAsset_, params ItemDisplayRule[] rules) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) if (keyAsset_ == (Object)null) { Log.Error("could not find keyasset"); } KeyAssetRuleGroup result = default(KeyAssetRuleGroup); result.keyAsset = keyAsset_; result.displayRuleGroup = new DisplayRuleGroup { rules = rules }; return result; } public static ItemDisplayRule CreateDisplayRule(string prefabName, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) return CreateDisplayRule(LoadDisplay(prefabName), childName, position, rotation, scale); } public static ItemDisplayRule CreateDisplayRule(GameObject itemPrefab, string childName, Vector3 position, Vector3 rotation, Vector3 scale) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRule result = default(ItemDisplayRule); result.ruleType = (ItemDisplayRuleType)0; result.childName = childName; result.followerPrefab = itemPrefab; result.limbMask = (LimbFlags)0; result.localPos = position; result.localAngles = rotation; result.localScale = scale; return result; } public static ItemDisplayRule CreateLimbMaskDisplayRule(LimbFlags limb) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) ItemDisplayRule result = default(ItemDisplayRule); result.ruleType = (ItemDisplayRuleType)1; result.limbMask = limb; result.childName = ""; result.followerPrefab = null; return result; } private static Object GetKeyAssetFromString(string itemName) { Object val = (Object)(object)LegacyResourcesAPI.Load("ItemDefs/" + itemName); if (val == (Object)null) { val = (Object)(object)LegacyResourcesAPI.Load("EquipmentDefs/" + itemName); } if (val == (Object)null) { Log.Error("Could not load keyasset for " + itemName); } return val; } } internal static class Language { public static string TokensOutput = ""; public static bool usingLanguageFolder = false; public static bool printingEnabled = false; public static void Init() { if (usingLanguageFolder) { Language.collectLanguageRootFolders += Language_collectLanguageRootFolders; } } private static void Language_collectLanguageRootFolders(List obj) { string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)SeamstressPlugin.instance).Info.Location), "Language"); if (Directory.Exists(text)) { obj.Add(text); } } public static void Add(string token, string text) { if (!usingLanguageFolder) { LanguageAPI.Add(token, text); } if (printingEnabled) { TokensOutput = TokensOutput + "\n \"" + token + "\" : \"" + text.Replace(Environment.NewLine, "\\n").Replace("\n", "\\n") + "\","; } } public static void PrintOutput(string fileName = "") { if (printingEnabled) { string text = "{\n strings:\n {" + TokensOutput + "\n }\n}"; Log.Message(fileName + ": \n" + text); if (!string.IsNullOrEmpty(fileName)) { string path = Path.Combine(Directory.GetParent(((BaseUnityPlugin)SeamstressPlugin.instance).Info.Location).FullName, "Language", "en", fileName); File.WriteAllText(path, text); } TokensOutput = ""; } } } internal static class Materials { private static List cachedMaterials = new List(); internal static Shader hotpoo = LegacyResourcesAPI.Load("Shaders/Deferred/HGStandard"); public static Material LoadMaterial(this AssetBundle assetBundle, string materialName) { return assetBundle.CreateHopooMaterialFromBundle(materialName); } public static Material CreateHopooMaterialFromBundle(this AssetBundle assetBundle, string materialName) { //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Expected O, but got Unknown Material val = cachedMaterials.Find(delegate(Material mat) { materialName.Replace(" (Instance)", ""); return ((Object)mat).name.Contains(materialName); }); if (Object.op_Implicit((Object)(object)val)) { Log.Debug(((Object)val).name + " has already been loaded. returning cached"); return val; } val = assetBundle.LoadAsset(materialName); if (!Object.op_Implicit((Object)(object)val)) { Log.ErrorAssetBundle(materialName, ((Object)assetBundle).name); return new Material(hotpoo); } return val.ConvertDefaultShaderToHopoo(); } public static Material SetHopooMaterial(this Material tempMat) { return tempMat.ConvertDefaultShaderToHopoo(); } public static Material ConvertDefaultShaderToHopoo(this Material tempMat) { //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) if (cachedMaterials.Contains(tempMat)) { Log.Debug(((Object)tempMat).name + " has already been converted. returning cached"); return tempMat; } string text = ((Object)tempMat.shader).name.ToLowerInvariant(); if (!text.StartsWith("standard") && !text.StartsWith("autodesk")) { Log.Debug(((Object)tempMat).name + " is not unity standard shader. aborting material conversion"); return tempMat; } float? num = null; Color? val = null; if (tempMat.IsKeywordEnabled("_NORMALMAP")) { num = tempMat.GetFloat("_BumpScale"); } if (tempMat.IsKeywordEnabled("_EMISSION")) { val = tempMat.GetColor("_EmissionColor"); } tempMat.shader = hotpoo; tempMat.SetTexture("_EmTex", tempMat.GetTexture("_EmissionMap")); tempMat.EnableKeyword("DITHER"); if (num.HasValue) { tempMat.SetFloat("_NormalStrength", num.Value); tempMat.SetTexture("_NormalTex", tempMat.GetTexture("_BumpMap")); } if (val.HasValue) { tempMat.SetColor("_EmColor", val.Value); tempMat.SetFloat("_EmPower", 1f); } if (tempMat.IsKeywordEnabled("NOCULL")) { tempMat.SetInt("_Cull", 0); } if (tempMat.IsKeywordEnabled("LIMBREMOVAL")) { tempMat.SetInt("_LimbRemovalOn", 1); } cachedMaterials.Add(tempMat); return tempMat; } public static Material MakeUnique(this Material material) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown if (cachedMaterials.Contains(material)) { return new Material(material); } return material; } public static Material SetColor(this Material material, Color color) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) material.SetColor("_Color", color); return material; } public static Material SetNormal(this Material material, float normalStrength = 1f) { material.SetFloat("_NormalStrength", normalStrength); return material; } public static Material SetEmission(this Material material) { return material.SetEmission(1f); } public static Material SetEmission(this Material material, float emission) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) return material.SetEmission(emission, Color.white); } public static Material SetEmission(this Material material, float emission, Color emissionColor) { //IL_0014: Unknown result type (might be due to invalid IL or missing references) material.SetFloat("_EmPower", emission); material.SetColor("_EmColor", emissionColor); return material; } public static Material SetCull(this Material material, bool cull = false) { material.SetInt("_Cull", cull ? 1 : 0); return material; } public static Material SetSpecular(this Material material, float strength) { material.SetFloat("_SpecularStrength", strength); return material; } public static Material SetSpecular(this Material material, float strength, float exponent) { material.SetFloat("_SpecularStrength", strength); material.SetFloat("SpecularExponent", exponent); return material; } } internal static class Prefabs { private static PhysicMaterial ragdollMaterial; public static GameObject CreateDisplayPrefab(AssetBundle assetBundle, string displayPrefabName, GameObject prefab) { GameObject val = assetBundle.LoadAsset(displayPrefabName); if ((Object)(object)val == (Object)null) { Log.Error("could not load display prefab " + displayPrefabName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } CharacterModel val2 = val.GetComponent(); if (!Object.op_Implicit((Object)(object)val2)) { val2 = val.AddComponent(); } val2.baseRendererInfos = prefab.GetComponentInChildren().baseRendererInfos; CharacterAssets.ConvertAllRenderersToHopooShader(val); return val; } public static GameObject LoadCharacterModel(AssetBundle assetBundle, string modelName) { GameObject val = assetBundle.LoadAsset(modelName); if ((Object)(object)val == (Object)null) { Log.Error("could not load model prefab " + modelName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject LoadCharacterBody(AssetBundle assetBundle, string bodyName) { GameObject val = assetBundle.LoadAsset(bodyName); if ((Object)(object)val == (Object)null) { Log.Error("could not load body prefab " + bodyName + ". Make sure this prefab exists in assetbundle " + ((Object)assetBundle).name); return null; } return val; } public static GameObject CloneCharacterBody(BodyInfo bodyInfo) { GameObject val = LegacyResourcesAPI.Load("Prefabs/CharacterBodies/" + bodyInfo.bodyNameToClone + "Body"); if (!Object.op_Implicit((Object)(object)val)) { Log.Error(bodyInfo.bodyNameToClone + " Body to clone is not a valid body, character creation failed"); return null; } GameObject val2 = PrefabAPI.InstantiateClone(val, bodyInfo.bodyName); for (int num = val2.transform.childCount - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)((Component)val2.transform.GetChild(num)).gameObject); } return val2; } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject model, BodyInfo bodyInfo) { return CreateBodyPrefab(CloneCharacterBody(bodyInfo), model, bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, AssetBundle assetBundle, string modelName, BodyInfo bodyInfo) { return CreateBodyPrefab(newBodyPrefab, LoadCharacterModel(assetBundle, modelName), bodyInfo); } public static GameObject CreateBodyPrefab(AssetBundle assetBundle, string bodyPrefabName, string modelPrefabName, BodyInfo bodyInfo) { return CreateBodyPrefab(LoadCharacterBody(assetBundle, bodyPrefabName), LoadCharacterModel(assetBundle, modelPrefabName), bodyInfo); } public static GameObject CreateBodyPrefab(GameObject newBodyPrefab, GameObject model, BodyInfo bodyInfo) { if ((Object)(object)model == (Object)null || (Object)(object)newBodyPrefab == (Object)null) { Log.Error($"Character creation failed. Model: {model}, Body: {newBodyPrefab}"); return null; } SetupCharacterBody(newBodyPrefab, bodyInfo); Transform modelBaseTransform = AddCharacterModelToSurvivorBody(newBodyPrefab, model.transform, bodyInfo); SetupModelLocator(newBodyPrefab, modelBaseTransform, model.transform); SetupCharacterDirection(newBodyPrefab, modelBaseTransform, model.transform); SetupCameraTargetParams(newBodyPrefab, bodyInfo); SetupCapsuleCollider(newBodyPrefab); Content.AddCharacterBodyPrefab(newBodyPrefab); return newBodyPrefab; } private static void SetupCharacterBody(GameObject newBodyPrefab, BodyInfo bodyInfo) { //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_020b: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = newBodyPrefab.GetComponent(); component.baseNameToken = bodyInfo.bodyNameToken; component.subtitleNameToken = bodyInfo.subtitleNameToken; component.portraitIcon = bodyInfo.characterPortrait; component.bodyColor = bodyInfo.bodyColor; component._defaultCrosshairPrefab = bodyInfo.crosshair; component.hideCrosshair = false; component.preferredPodPrefab = bodyInfo.podPrefab; component.baseMaxHealth = bodyInfo.maxHealth; component.baseRegen = bodyInfo.healthRegen; component.baseArmor = bodyInfo.armor; component.baseMaxShield = bodyInfo.shield; component.baseDamage = bodyInfo.damage; component.baseAttackSpeed = bodyInfo.attackSpeed; component.baseCrit = bodyInfo.crit; component.baseMoveSpeed = bodyInfo.moveSpeed; component.baseJumpPower = bodyInfo.jumpPower; component.autoCalculateLevelStats = bodyInfo.autoCalculateLevelStats; if (bodyInfo.autoCalculateLevelStats) { component.levelMaxHealth = Mathf.Round(component.baseMaxHealth * 0.3f); component.levelMaxShield = Mathf.Round(component.baseMaxShield * 0.3f); component.levelRegen = component.baseRegen * 0.2f; component.levelMoveSpeed = 0f; component.levelJumpPower = 0f; component.levelDamage = component.baseDamage * 0.2f; component.levelAttackSpeed = 0f; component.levelCrit = 0f; component.levelArmor = 0f; } else { component.levelMaxHealth = bodyInfo.healthGrowth; component.levelMaxShield = bodyInfo.shieldGrowth; component.levelRegen = bodyInfo.regenGrowth; component.levelMoveSpeed = bodyInfo.moveSpeedGrowth; component.levelJumpPower = bodyInfo.jumpPowerGrowth; component.levelDamage = bodyInfo.damageGrowth; component.levelAttackSpeed = bodyInfo.attackSpeedGrowth; component.levelCrit = bodyInfo.critGrowth; component.levelArmor = bodyInfo.armorGrowth; } component.baseAcceleration = bodyInfo.acceleration; component.baseJumpCount = bodyInfo.jumpCount; component.sprintingSpeedMultiplier = 1.45f; component.bodyFlags = (BodyFlags)16; component.rootMotionInMainState = false; component.hullClassification = (HullClassification)0; component.isChampion = false; } private static Transform AddCharacterModelToSurvivorBody(GameObject bodyPrefab, Transform modelTransform, BodyInfo bodyInfo) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_010e: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) Transform val = bodyPrefab.transform.Find("ModelBase"); if ((Object)(object)val == (Object)null) { val = new GameObject("ModelBase").transform; val.parent = bodyPrefab.transform; val.localPosition = bodyInfo.modelBasePosition; val.localRotation = Quaternion.identity; } modelTransform.parent = ((Component)val).transform; modelTransform.localPosition = Vector3.zero; modelTransform.localRotation = Quaternion.identity; Transform val2 = bodyPrefab.transform.Find("CameraPivot"); if ((Object)(object)val2 == (Object)null) { val2 = new GameObject("CameraPivot").transform; val2.parent = bodyPrefab.transform; val2.localPosition = bodyInfo.cameraPivotPosition; val2.localRotation = Quaternion.identity; } Transform val3 = bodyPrefab.transform.Find("AimOrigin"); if ((Object)(object)val3 == (Object)null) { val3 = new GameObject("AimOrigin").transform; val3.parent = bodyPrefab.transform; val3.localPosition = bodyInfo.aimOriginPosition; val3.localRotation = Quaternion.identity; } bodyPrefab.GetComponent().aimOriginTransform = val3; return ((Component)val).transform; } private static void SetupCharacterDirection(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { if (Object.op_Implicit((Object)(object)prefab.GetComponent())) { CharacterDirection component = prefab.GetComponent(); component.targetTransform = modelBaseTransform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = ((Component)modelTransform).GetComponent(); component.driveFromRootRotation = false; component.turnSpeed = 720f; } } private static void SetupCameraTargetParams(GameObject prefab, BodyInfo bodyInfo) { CameraTargetParams component = prefab.GetComponent(); component.cameraParams = bodyInfo.cameraParams; component.cameraPivotTransform = prefab.transform.Find("CameraPivot"); } private static void SetupModelLocator(GameObject prefab, Transform modelBaseTransform, Transform modelTransform) { ModelLocator component = prefab.GetComponent(); component.modelTransform = modelTransform; component.modelBaseTransform = modelBaseTransform; } private static void SetupCapsuleCollider(GameObject prefab) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) CapsuleCollider component = prefab.GetComponent(); component.center = new Vector3(0f, 0f, 0f); component.radius = 0.5f; component.height = 1.82f; component.direction = 1; } public static CharacterModel SetupCharacterModel(GameObject bodyPrefab, CustomRendererInfo[] customInfos = null) { CharacterModel val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.GetComponent(); bool flag = (Object)(object)val != (Object)null; if (!flag) { val = ((Component)bodyPrefab.GetComponent().modelTransform).gameObject.AddComponent(); } val.body = bodyPrefab.GetComponent(); val.autoPopulateLightInfos = true; val.invisibilityCount = 0; val.temporaryOverlays = new List(); if (!flag) { SetupCustomRendererInfos(val, customInfos); } else { SetupPreAttachedRendererInfos(val); } SetupHurtboxGroup(bodyPrefab, ((Component)val).gameObject); SetupAimAnimator(bodyPrefab, ((Component)val).gameObject); SetupFootstepController(((Component)val).gameObject); SetupRagdoll(((Component)val).gameObject); return val; } public static void SetupPreAttachedRendererInfos(CharacterModel characterModel) { for (int i = 0; i < characterModel.baseRendererInfos.Length; i++) { if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { characterModel.baseRendererInfos[i].defaultMaterial = characterModel.baseRendererInfos[i].renderer.sharedMaterial; } if ((Object)(object)characterModel.baseRendererInfos[i].defaultMaterial == (Object)null) { Log.Error($"no material for rendererinfo of this renderer: {characterModel.baseRendererInfos[i].renderer}"); } characterModel.baseRendererInfos[i].defaultMaterial.ConvertDefaultShaderToHopoo(); } } public static void SetupCustomRendererInfos(CharacterModel characterModel, CustomRendererInfo[] customInfos) { //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) ChildLocator component = ((Component)characterModel).GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("Failed CharacterModel setup: ChildLocator component does not exist on the model"); return; } List list = new List(); for (int i = 0; i < customInfos.Length; i++) { if (!Object.op_Implicit((Object)(object)component.FindChild(customInfos[i].childName))) { Log.Error("Trying to add a RendererInfo for a renderer that does not exist: " + customInfos[i].childName); continue; } Renderer component2 = ((Component)component.FindChild(customInfos[i].childName)).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { Material val = customInfos[i].material; if ((Object)(object)val == (Object)null) { val = ((!customInfos[i].dontHotpoo) ? component2.sharedMaterial.ConvertDefaultShaderToHopoo() : component2.sharedMaterial); } list.Add(new RendererInfo { renderer = component2, defaultMaterial = val, ignoreOverlays = customInfos[i].ignoreOverlays, defaultShadowCastingMode = (ShadowCastingMode)1 }); } } characterModel.baseRendererInfos = list.ToArray(); } private static void SetupHurtboxGroup(GameObject bodyPrefab, GameObject model) { SetupMainHurtboxesFromChildLocator(bodyPrefab, model); SetHurtboxesHealthComponents(bodyPrefab); } private static void SetupMainHurtboxesFromChildLocator(GameObject bodyPrefab, GameObject model) { //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)bodyPrefab.GetComponent() != (Object)null) { Log.Debug("Hitboxgroup already exists on model prefab. aborting code setup"); return; } ChildLocator component = model.GetComponent(); if (string.IsNullOrEmpty(component.FindChildNameInsensitive("MainHurtbox"))) { Log.Error("Could not set up main hurtbox: make sure you have a transform pair in your prefab's ChildLocator called 'MainHurtbox'"); return; } HurtBoxGroup val = model.AddComponent(); HurtBox val2 = null; GameObject val3 = component.FindChildGameObjectInsensitive("HeadHurtbox"); if (Object.op_Implicit((Object)(object)val3)) { Log.Debug("HeadHurtboxFound. Setting up"); val2 = val3.AddComponent(); ((Component)val2).gameObject.layer = LayerIndex.entityPrecise.intVal; val2.healthComponent = bodyPrefab.GetComponent(); val2.isBullseye = false; val2.isSniperTarget = true; val2.damageModifier = (DamageModifier)0; val2.hurtBoxGroup = val; val2.indexInGroup = 1; } HurtBox val4 = component.FindChildGameObjectInsensitive("MainHurtbox").AddComponent(); ((Component)val4).gameObject.layer = LayerIndex.entityPrecise.intVal; val4.healthComponent = bodyPrefab.GetComponent(); val4.isBullseye = true; val4.isSniperTarget = (Object)(object)val2 == (Object)null; val4.damageModifier = (DamageModifier)0; val4.hurtBoxGroup = val; val4.indexInGroup = 0; if (Object.op_Implicit((Object)(object)val2)) { val.hurtBoxes = (HurtBox[])(object)new HurtBox[2] { val4, val2 }; } else { val.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val4 }; } val.mainHurtBox = val4; val.bullseyeCount = 1; } private static string FindChildNameInsensitive(this ChildLocator childLocator, string child) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) return childLocator.transformPairs.Where((NameTransformPair pair) => pair.name.ToLowerInvariant() == child.ToLowerInvariant()).FirstOrDefault().name; } private static Transform FindChildInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChild(childLocator.FindChildNameInsensitive(child)); } private static GameObject FindChildGameObjectInsensitive(this ChildLocator childLocator, string child) { return childLocator.FindChildGameObject(childLocator.FindChildNameInsensitive(child)); } public static void SetHurtboxesHealthComponents(GameObject bodyPrefab) { HealthComponent component = bodyPrefab.GetComponent(); HurtBoxGroup[] componentsInChildren = bodyPrefab.GetComponentsInChildren(); foreach (HurtBoxGroup val in componentsInChildren) { val.mainHurtBox.healthComponent = component; for (int j = 0; j < val.hurtBoxes.Length; j++) { val.hurtBoxes[j].healthComponent = component; } } } private static void SetupFootstepController(GameObject model) { FootstepHandler val = model.AddComponent(); val.baseFootstepString = "Play_player_footstep"; val.sprintFootstepOverrideString = ""; val.enableFootstepDust = true; val.footstepDustPrefab = LegacyResourcesAPI.Load("Prefabs/GenericFootstepDust"); } private static void SetupRagdoll(GameObject model) { RagdollController component = model.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } if ((Object)(object)ragdollMaterial == (Object)null) { ragdollMaterial = ((Component)LegacyResourcesAPI.Load("Prefabs/CharacterBodies/CommandoBody").GetComponentInChildren().bones[1]).GetComponent().material; } Transform[] bones = component.bones; foreach (Transform val in bones) { if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = LayerIndex.ragdoll.intVal; Collider component2 = ((Component)val).GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.sharedMaterial = ragdollMaterial; } else { Log.Error($"Ragdoll bone {((Component)val).gameObject} doesn't have a collider. Ragdoll will break."); } } } } private static void SetupAimAnimator(GameObject prefab, GameObject model) { AimAnimator val = model.AddComponent(); val.directionComponent = prefab.GetComponent(); val.pitchRangeMax = 60f; val.pitchRangeMin = -60f; val.yawRangeMin = -80f; val.yawRangeMax = 80f; val.pitchGiveupRange = 30f; val.yawGiveupRange = 10f; val.giveupDuration = 3f; val.inputBank = prefab.GetComponent(); } public static void CreateGenericDoppelganger(GameObject bodyPrefab, string masterName, string masterToCopy) { CloneDopplegangerMaster(bodyPrefab, masterName, masterToCopy); } public static GameObject CloneDopplegangerMaster(GameObject bodyPrefab, string masterName, string masterToCopy) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/" + masterToCopy + "MonsterMaster"), masterName, true); val.GetComponent().bodyPrefab = bodyPrefab; Content.AddMasterPrefab(val); return val; } public static GameObject CreateBlankMasterPrefab(GameObject bodyPrefab, string masterName) { GameObject val = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load("Prefabs/CharacterMasters/CommandoMonsterMaster"), masterName, true); ContentPacks.masterPrefabs.Add(val); CharacterMaster component = val.GetComponent(); component.bodyPrefab = bodyPrefab; AISkillDriver[] components = val.GetComponents(); for (int i = 0; i < components.Length; i++) { Object.Destroy((Object)(object)components[i]); } return val; } public static GameObject LoadMaster(this AssetBundle assetBundle, GameObject bodyPrefab, string assetName) { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) GameObject val = assetBundle.LoadAsset(assetName); BaseAI val2 = val.GetComponent(); if ((Object)(object)val2 == (Object)null) { val2 = val.AddComponent(); val2.aimVectorDampTime = 0.1f; val2.aimVectorMaxSpeed = 360f; } val2.scanState = new SerializableEntityStateType(typeof(Wander)); EntityStateMachine component = val.GetComponent(); if ((Object)(object)component == (Object)null) { AddEntityStateMachine(val, "AI", typeof(Wander), typeof(Wander)); } val2.stateMachine = component; CharacterMaster val3 = val.GetComponent(); if ((Object)(object)val3 == (Object)null) { val3 = val.AddComponent(); } val3.bodyPrefab = bodyPrefab; val3.teamIndex = (TeamIndex)2; Content.AddMasterPrefab(val); return val; } public static void ClearEntityStateMachines(GameObject bodyPrefab) { EntityStateMachine[] components = bodyPrefab.GetComponents(); for (int num = components.Length - 1; num >= 0; num--) { Object.DestroyImmediate((Object)(object)components[num]); } NetworkStateMachine component = bodyPrefab.GetComponent(); component.stateMachines = Array.Empty(); CharacterDeathBehavior component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.idleStateMachine = Array.Empty(); } SetStateOnHurt component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.idleStateMachine = Array.Empty(); } CharacterBody component4 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.vehicleIdleStateMachine = Array.Empty(); } } public static void AddMainEntityStateMachine(GameObject bodyPrefab, string machineName = "Body", Type mainStateType = null, Type initalStateType = null) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(bodyPrefab, machineName); if ((Object)(object)val == (Object)null) { val = bodyPrefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(GenericCharacterMain); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(SpawnTeleporterState); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.deathStateMachine = val; } SetStateOnHurt component3 = bodyPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.targetStateMachine = val; } } public static void AddEntityStateMachine(GameObject prefab, string machineName, Type mainStateType = null, Type initalStateType = null) { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) EntityStateMachine val = EntityStateMachine.FindByCustomName(prefab, machineName); if ((Object)(object)val == (Object)null) { val = prefab.AddComponent(); } else { Log.Message("An Entity State Machine already exists with the name " + machineName + ". replacing."); } val.customName = machineName; if (mainStateType == null) { mainStateType = typeof(Idle); } val.mainStateType = new SerializableEntityStateType(mainStateType); if (initalStateType == null) { initalStateType = typeof(Idle); } val.initialStateType = new SerializableEntityStateType(initalStateType); NetworkStateMachine component = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.stateMachines = component.stateMachines.Append(val).ToArray(); } CharacterDeathBehavior component2 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.idleStateMachine = component2.idleStateMachine.Append(val).ToArray(); } SetStateOnHurt component3 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component3)) { component3.idleStateMachine = component3.idleStateMachine.Append(val).ToArray(); } CharacterBody component4 = prefab.GetComponent(); if (Object.op_Implicit((Object)(object)component4)) { component4.vehicleIdleStateMachine = component4.vehicleIdleStateMachine.Append(val).ToArray(); } } public static void SetupHitBoxGroup(GameObject modelPrefab, string hitBoxGroupName, params string[] hitboxChildNames) { ChildLocator component = modelPrefab.GetComponent(); Transform[] array = (Transform[])(object)new Transform[hitboxChildNames.Length]; for (int i = 0; i < hitboxChildNames.Length; i++) { array[i] = component.FindChild(hitboxChildNames[i]); if ((Object)(object)array[i] == (Object)null) { Log.Error("missing hitbox for " + hitboxChildNames[i]); } } SetupHitBoxGroup(modelPrefab, hitBoxGroupName, array); } public static void SetupHitBoxGroup(GameObject prefab, string hitBoxGroupName, params Transform[] hitBoxTransforms) { List list = new List(); foreach (Transform val in hitBoxTransforms) { if ((Object)(object)val == (Object)null) { Log.Error("Error setting up hitboxGroup for " + hitBoxGroupName + ": hitbox transform was null"); continue; } HitBox item = ((Component)val).gameObject.AddComponent(); ((Component)val).gameObject.layer = LayerIndex.projectile.intVal; list.Add(item); } if (list.Count == 0) { Log.Error("No hitboxes were set up. aborting setting up hitboxGroup for " + hitBoxGroupName); return; } HitBoxGroup val2 = prefab.AddComponent(); val2.hitBoxes = list.ToArray(); val2.groupName = hitBoxGroupName; } } public class CustomRendererInfo { public string childName; public Material material = null; public bool dontHotpoo = false; public bool ignoreOverlays = false; } internal static class SeamstressSkins { internal struct SkinDefInfo { internal SkinDef[] BaseSkins; internal Sprite Icon; internal string NameToken; internal UnlockableDef UnlockableDef; internal GameObject RootObject; internal RendererInfo[] RendererInfos; internal MeshReplacement[] MeshReplacements; internal GameObjectActivation[] GameObjectActivations; internal ProjectileGhostReplacement[] ProjectileGhostReplacements; internal MinionSkinReplacement[] MinionSkinReplacements; internal string Name; } internal static SkinDef CreateSkinDef(string skinName, Sprite skinIcon, RendererInfo[] defaultRendererInfos, GameObject root, UnlockableDef unlockableDef = null) { //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Expected O, but got Unknown //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Expected O, but got Unknown SkinDefInfo skinDefInfo = default(SkinDefInfo); skinDefInfo.BaseSkins = Array.Empty(); skinDefInfo.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[0]; skinDefInfo.Icon = skinIcon; skinDefInfo.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; skinDefInfo.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; skinDefInfo.Name = skinName; skinDefInfo.NameToken = skinName; skinDefInfo.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; skinDefInfo.RendererInfos = (RendererInfo[])(object)new RendererInfo[defaultRendererInfos.Length]; skinDefInfo.RootObject = root; skinDefInfo.UnlockableDef = unlockableDef; SkinDefInfo skinDefInfo2 = skinDefInfo; SkinDef.Awake += new hook_Awake(DoNothing); SkinDef val = ScriptableObject.CreateInstance(); val.baseSkins = skinDefInfo2.BaseSkins; val.icon = skinDefInfo2.Icon; val.unlockableDef = skinDefInfo2.UnlockableDef; val.rootObject = skinDefInfo2.RootObject; defaultRendererInfos.CopyTo(skinDefInfo2.RendererInfos, 0); val.rendererInfos = skinDefInfo2.RendererInfos; val.gameObjectActivations = skinDefInfo2.GameObjectActivations; val.meshReplacements = skinDefInfo2.MeshReplacements; val.projectileGhostReplacements = skinDefInfo2.ProjectileGhostReplacements; val.minionSkinReplacements = skinDefInfo2.MinionSkinReplacements; val.nameToken = skinDefInfo2.NameToken; ((Object)val).name = skinDefInfo2.Name; SkinDef.Awake -= new hook_Awake(DoNothing); return val; } private static void DoNothing(orig_Awake orig, SkinDef self) { } private static RendererInfo[] getRendererMaterials(RendererInfo[] defaultRenderers, params Material[] materials) { RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[defaultRenderers.Length]; defaultRenderers.CopyTo(array, 0); for (int i = 0; i < array.Length; i++) { try { array[i].defaultMaterial = materials[i]; } catch { Log.Error("error adding skin rendererinfo material. make sure you're not passing in too many"); } } return array; } internal static MeshReplacement[] getMeshReplacements(AssetBundle assetBundle, RendererInfo[] defaultRendererInfos, params string[] meshes) { //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) List list = new List(); for (int i = 0; i < defaultRendererInfos.Length; i++) { if (!string.IsNullOrEmpty(meshes[i])) { list.Add(new MeshReplacement { renderer = defaultRendererInfos[i].renderer, mesh = assetBundle.LoadAsset(meshes[i]) }); } } return list.ToArray(); } } internal static class Skills { public static void CreateSkillFamilies(GameObject targetPrefab, bool destroyExisting = true) { SkillSlot[] array = new SkillSlot[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); CreateSkillFamilies(targetPrefab, destroyExisting, (SkillSlot[])(object)array); } public static void CreateSkillFamilies(GameObject targetPrefab, bool destroyExisting, params SkillSlot[] slots) { //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_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Expected I4, but got Unknown if (destroyExisting) { GenericSkill[] componentsInChildren = targetPrefab.GetComponentsInChildren(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } } SkillLocator component = targetPrefab.GetComponent(); SeamstressPassive component2 = targetPrefab.GetComponent(); if (Object.op_Implicit((Object)(object)component2)) { component2.passiveSkillSlot = CreateGenericSkillWithSkillFamily(targetPrefab, "Passive"); component2.impGaugeSkillSlot = CreateGenericSkillWithSkillFamily(targetPrefab, "Passive2"); } foreach (SkillSlot val2 in slots) { SkillSlot val3 = val2; switch ((int)val3) { case 0: component.primary = CreateGenericSkillWithSkillFamily(targetPrefab, "Primary"); break; case 1: component.secondary = CreateGenericSkillWithSkillFamily(targetPrefab, "Secondary"); break; case 2: component.utility = CreateGenericSkillWithSkillFamily(targetPrefab, "Utility"); break; case 3: component.special = CreateGenericSkillWithSkillFamily(targetPrefab, "Special"); break; } } } public static GenericSkill CreateGenericSkillWithSkillFamily(GameObject targetPrefab, string familyName, bool hidden = false) { GenericSkill val = targetPrefab.AddComponent(); val.skillName = familyName; val.hideInCharacterSelect = hidden; SkillFamily val2 = ScriptableObject.CreateInstance(); ((Object)val2).name = ((Object)targetPrefab).name + familyName + "Family"; val2.variants = (Variant[])(object)new Variant[0]; val._skillFamily = val2; Content.AddSkillFamily(val2); return val; } public static void AddSkillToFamily(SkillFamily skillFamily, SkillDef skillDef, UnlockableDef unlockableDef = null) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val = new Variant { skillDef = skillDef, unlockableDef = unlockableDef }; ((Variant)(ref val)).viewableNode = new Node(skillDef.skillNameToken, false, (Node)null); variants[num] = val; } public static void AddSkillsToFamily(SkillFamily skillFamily, params SkillDef[] skillDefs) { foreach (SkillDef skillDef in skillDefs) { AddSkillToFamily(skillFamily, skillDef); } } public static void AddPrimarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().primary.skillFamily, skillDefs); } public static void AddSecondarySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().secondary.skillFamily, skillDefs); } public static void AddUtilitySkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().utility.skillFamily, skillDefs); } public static void AddSpecialSkills(GameObject targetPrefab, params SkillDef[] skillDefs) { AddSkillsToFamily(targetPrefab.GetComponent().special.skillFamily, skillDefs); } public static void AddPassiveSkills(SkillFamily passiveSkillFamily, params SkillDef[] skillDefs) { AddSkillsToFamily(passiveSkillFamily, skillDefs); } public static void AddUnlockablesToFamily(SkillFamily skillFamily, params UnlockableDef[] unlockableDefs) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < unlockableDefs.Length; i++) { Variant val = skillFamily.variants[i]; val.unlockableDef = unlockableDefs[i]; skillFamily.variants[i] = val; } } public static SkillDef CreateSkillDef(SkillDefInfo skillDefInfo) { return Skills.CreateSkillDef(skillDefInfo); } public static T CreateSkillDef(SkillDefInfo skillDefInfo) where T : SkillDef { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) T val = ScriptableObject.CreateInstance(); ((SkillDef)val).skillName = skillDefInfo.skillName; ((Object)(object)val).name = skillDefInfo.skillName; ((SkillDef)val).skillNameToken = skillDefInfo.skillNameToken; ((SkillDef)val).skillDescriptionToken = skillDefInfo.skillDescriptionToken; ((SkillDef)val).icon = skillDefInfo.skillIcon; ((SkillDef)val).activationState = skillDefInfo.activationState; ((SkillDef)val).activationStateMachineName = skillDefInfo.activationStateMachineName; ((SkillDef)val).interruptPriority = skillDefInfo.interruptPriority; ((SkillDef)val).baseMaxStock = skillDefInfo.baseMaxStock; ((SkillDef)val).baseRechargeInterval = skillDefInfo.baseRechargeInterval; ((SkillDef)val).rechargeStock = skillDefInfo.rechargeStock; ((SkillDef)val).requiredStock = skillDefInfo.requiredStock; ((SkillDef)val).stockToConsume = skillDefInfo.stockToConsume; ((SkillDef)val).dontAllowPastMaxStocks = skillDefInfo.dontAllowPastMaxStocks; ((SkillDef)val).beginSkillCooldownOnSkillEnd = skillDefInfo.beginSkillCooldownOnSkillEnd; ((SkillDef)val).canceledFromSprinting = skillDefInfo.canceledFromSprinting; ((SkillDef)val).forceSprintDuringState = skillDefInfo.forceSprintDuringState; ((SkillDef)val).fullRestockOnAssign = skillDefInfo.fullRestockOnAssign; ((SkillDef)val).resetCooldownTimerOnUse = skillDefInfo.resetCooldownTimerOnUse; ((SkillDef)val).isCombatSkill = skillDefInfo.isCombatSkill; ((SkillDef)val).mustKeyPress = skillDefInfo.mustKeyPress; ((SkillDef)val).cancelSprintingOnActivation = skillDefInfo.cancelSprintingOnActivation; ((SkillDef)val).keywordTokens = skillDefInfo.keywordTokens; Content.AddSkillDef((SkillDef)(object)val); return val; } } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public string[] keywordTokens = new string[0]; public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public InterruptPriority interruptPriority; public int baseMaxStock = 1; public float baseRechargeInterval; public int rechargeStock = 1; public int requiredStock = 1; public int stockToConsume = 1; public bool resetCooldownTimerOnUse = false; public bool fullRestockOnAssign = true; public bool dontAllowPastMaxStocks = true; public bool beginSkillCooldownOnSkillEnd = false; public bool mustKeyPress = false; public bool isCombatSkill = true; public bool canceledFromSprinting = false; public bool cancelSprintingOnActivation = true; public bool forceSprintDuringState = false; public SkillDefInfo() { } public SkillDefInfo(string skillName, string skillNameToken, string skillDescriptionToken, Sprite skillIcon, SerializableEntityStateType activationState, string activationStateMachineName = "Weapon") { //IL_008d: 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_00c1: Unknown result type (might be due to invalid IL or missing references) this.skillName = skillName; this.skillNameToken = skillNameToken; this.skillDescriptionToken = skillDescriptionToken; this.skillIcon = skillIcon; this.activationState = activationState; this.activationStateMachineName = activationStateMachineName; cancelSprintingOnActivation = false; keywordTokens = new string[2] { Tokens.agileKeyword, Tokens.symbioticSlashKeyword }; interruptPriority = (InterruptPriority)0; isCombatSkill = true; baseRechargeInterval = 0f; requiredStock = 0; stockToConsume = 0; } } internal static class Tokens { public const string agilePrefix = "Agile"; public const string symbioticPrefix = "Symbiotic"; public const string bonusStrike = "Ruthless"; public const string needlePrefix = "Needle"; public const string insatiablePrefix = "Insatiable"; public const string crushPrefix = "Crush"; public static string agileKeyword = KeywordText("Agile", "The skill can be used while sprinting."); public static string crushKeyword = KeywordText("Crush", "Deal bonus damage to an enemy based on their velocity and max health."); public static string symbioticKeyword = KeywordText("Symbiotic", "Gain attack speed and move speed for each stock missing. Additional stocks are converted into missing stock."); public static string symbioticSlashKeyword = KeywordText("Ruthless", "Stunning. When your Symbiotic scissor is available hit for an additional strike."); public static string insatiableKeyword = KeywordText("Insatiable", "Attacks bleed and grant Needles. Healing is converted into Barrier."); public static string detailsKeyword = KeywordText("Plane Bound", $"Gain {SeamstressConfig.passiveScaling.Value} base damage per 1 missing health. " + $"Heal up to {100f * SeamstressConfig.passiveLifeSteal.Value}% of your missing health on hit."); public static string details2Keyword = KeywordText("Lost and Found", "Gain a Needle when picking up a scissor."); public static string needlesKeyword = KeywordText("Needles", "Gain Needles by picking up your Symbiotic weapons or hitting enemies during Insatiable."); public static string DamageText(string text) { return "" + text + ""; } public static string DamageValueText(float value) { return $"{value * 100f}% damage"; } public static string UtilityText(string text) { return "" + text + ""; } public static string RedText(string text) { return HealthText(text); } public static string HealthText(string text) { return "" + text + ""; } public static string KeywordText(string keyword, string sub) { return "" + keyword + "" + sub + ""; } public static string ScepterDescription(string desc) { return "\nSCEPTER: " + desc + ""; } public static string GetAchievementNameToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_NAME"; } public static string GetAchievementDescriptionToken(string identifier) { return "ACHIEVEMENT_" + identifier.ToUpperInvariant() + "_DESCRIPTION"; } } } namespace SeamstressMod.Modules.Characters { public abstract class CharacterBase where T : CharacterBase, new() { public abstract string assetBundleName { get; } public abstract string bodyName { get; } public abstract string modelPrefabName { get; } public abstract BodyInfo bodyInfo { get; } public virtual CustomRendererInfo[] customRendererInfos { get; } public virtual ItemDisplaysBase itemDisplays { get; } public static T instance { get; private set; } public abstract AssetBundle assetBundle { get; protected set; } public abstract GameObject bodyPrefab { get; protected set; } public abstract CharacterBody prefabCharacterBody { get; protected set; } public abstract GameObject characterModelObject { get; protected set; } public abstract CharacterModel prefabCharacterModel { get; protected set; } public virtual void Initialize() { instance = this as T; assetBundle = CharacterAssets.LoadAssetBundle(assetBundleName); InitializeCharacter(); } public virtual void InitializeCharacter() { InitializeCharacterBodyPrefab(); InitializeItemDisplays(); } protected virtual void InitializeCharacterBodyPrefab() { characterModelObject = Prefabs.LoadCharacterModel(assetBundle, modelPrefabName); bodyPrefab = Prefabs.CreateBodyPrefab(characterModelObject, bodyInfo); prefabCharacterBody = bodyPrefab.GetComponent(); prefabCharacterModel = Prefabs.SetupCharacterModel(bodyPrefab, customRendererInfos); } public virtual void InitializeItemDisplays() { ItemDisplayRuleSet val = ScriptableObject.CreateInstance(); ((Object)val).name = "idrs" + bodyName; prefabCharacterModel.itemDisplayRuleSet = val; if (itemDisplays != null) { ItemDisplays.queuedDisplays++; ContentManager.onContentPacksAssigned += SetItemDisplays; } } public void SetItemDisplays(ReadOnlyArray obj) { itemDisplays.SetItemDisplays(prefabCharacterModel.itemDisplayRuleSet); } public abstract void InitializeEntityStateMachines(); public abstract void InitializeSkills(); public abstract void InitializeSkins(); public abstract void InitializeCharacterMaster(); } public class BodyInfo { public string bodyName = ""; public string bodyNameToken = ""; public string subtitleNameToken = ""; public string bodyNameToClone = "Commando"; public Color bodyColor = Color.white; public Texture characterPortrait = null; public float sortPosition = 100f; public GameObject crosshair = null; public GameObject podPrefab = null; public SerializableEntityStateType initialStateType; public float maxHealth = 100f; public float healthRegen = 1f; public float armor = 0f; public float shield = 0f; public int jumpCount = 1; public float damage = 12f; public float attackSpeed = 1f; public float crit = 1f; public float moveSpeed = 7f; public float acceleration = 80f; public float jumpPower = 15f; public bool autoCalculateLevelStats = true; public float healthGrowth = 30.000002f; public float regenGrowth = 0.2f; public float armorGrowth = 0f; public float shieldGrowth = 0f; public float damageGrowth = 2.4f; public float attackSpeedGrowth = 0f; public float critGrowth = 0f; public float moveSpeedGrowth = 0f; public float jumpPowerGrowth = 0f; public Vector3 aimOriginPosition = new Vector3(0f, 1.6f, 0f); public Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); public Vector3 cameraPivotPosition = new Vector3(0f, 0.5f, 0f); public float cameraParamsVerticalOffset = 1.37f; public float cameraParamsDepth = -8f; private CharacterCameraParams _cameraParams; public CharacterCameraParams cameraParams { get { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)_cameraParams == (Object)null) { _cameraParams = ScriptableObject.CreateInstance(); _cameraParams.data.minPitch = BlendableFloat.op_Implicit(-70f); _cameraParams.data.maxPitch = BlendableFloat.op_Implicit(70f); _cameraParams.data.wallCushion = BlendableFloat.op_Implicit(0.1f); _cameraParams.data.pivotVerticalOffset = BlendableFloat.op_Implicit(cameraParamsVerticalOffset); _cameraParams.data.idealLocalCameraPos = BlendableVector3.op_Implicit(new Vector3(0f, 0f, cameraParamsDepth)); } return _cameraParams; } set { _cameraParams = value; } } } public abstract class ItemDisplaysBase { public void SetItemDisplays(ItemDisplayRuleSet itemDisplayRuleSet) { List list = new List(); ItemDisplays.LazyInit(); SetItemDisplayRules(list); itemDisplayRuleSet.keyAssetRuleGroups = list.ToArray(); ItemDisplays.DisposeWhenDone(); } protected abstract void SetItemDisplayRules(List itemDisplayRules); } public abstract class SurvivorBase : CharacterBase where T : SurvivorBase, new() { public abstract string masterName { get; } public abstract string displayPrefabName { get; } public abstract string survivorTokenPrefix { get; } public abstract UnlockableDef characterUnlockableDef { get; } public abstract GameObject displayPrefab { get; protected set; } public override void InitializeCharacter() { base.InitializeCharacter(); InitializeDisplayPrefab(); InitializeSurvivor(); } protected virtual void InitializeDisplayPrefab() { displayPrefab = Prefabs.CreateDisplayPrefab(assetBundle, displayPrefabName, bodyPrefab); displayPrefab.AddComponent(); } protected virtual void InitializeSurvivor() { //IL_0013: Unknown result type (might be due to invalid IL or missing references) RegisterNewSurvivor(bodyPrefab, displayPrefab, bodyInfo.bodyColor, survivorTokenPrefix, characterUnlockableDef, bodyInfo.sortPosition); } public static void RegisterNewSurvivor(GameObject bodyPrefab, GameObject displayPrefab, Color charColor, string tokenPrefix, UnlockableDef unlockableDef, float sortPosition) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) Content.CreateSurvivor(bodyPrefab, displayPrefab, charColor, tokenPrefix, unlockableDef, sortPosition); } protected virtual void AddCssPreviewSkill(int indexFromEditor, SkillFamily skillFamily, SkillDef skillDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skillChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); return; } component.skillChangeResponses[indexFromEditor].triggerSkillFamily = skillFamily; component.skillChangeResponses[indexFromEditor].triggerSkill = skillDef; } protected virtual void AddCssPreviewSkin(int indexFromEditor, SkinDef skinDef) { CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { Log.Error("trying to add skinChangeResponse to null CharacterSelectSurvivorPreviewDisplayController.\nMake sure you created one on your Display prefab in editor"); } else { component.skinChangeResponses[indexFromEditor].triggerSkin = skinDef; } } protected virtual void FinalizeCSSPreviewDisplayController() { //IL_0073: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)displayPrefab)) { return; } CharacterSelectSurvivorPreviewDisplayController component = displayPrefab.GetComponent(); if (!Object.op_Implicit((Object)(object)component)) { return; } component.bodyPrefab = bodyPrefab; List list = new List(); for (int i = 0; i < component.skillChangeResponses.Length; i++) { if ((Object)(object)component.skillChangeResponses[i].triggerSkillFamily != (Object)null) { list.Add(component.skillChangeResponses[i]); } } component.skillChangeResponses = list.ToArray(); } } } namespace SeamstressMod.Modules.BaseStates { public abstract class BaseMeleeAttack : BaseSeamstressSkillState, IStepSetter { public int swingIndex; public bool scissorHit; protected string hitboxGroupName = "Sword"; protected DamageType damageType = (DamageType)0; protected DamageSource damageSource = (DamageSource)1; protected List moddedDamageTypeHolder = new List(); protected bool isFlatDamage = false; protected float damageTotal = 3.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 1f; protected float baseScissorDuration = 1.5f; protected float attackStartPercentTime = 0.2f; protected float attackEndPercentTime = 0.4f; protected float earlyExitPercentTime = 0.4f; protected float hitStopDuration = 0.05f; protected float attackRecoil = 0.75f; protected float hitHopVelocity = 8f; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected string playbackRateParam = "Slash.playbackRate"; private GameObject swingEffectInstance; protected GameObject swingEffectPrefab; protected GameObject bonusSwingEffectPrefab; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound; protected bool buffer = false; protected bool setDiffState = false; protected EntityState setState; public float duration; public float scissorDuration; protected bool hasFired; protected bool hasFired2; protected bool hasPlayed; private float hitPauseTimer; protected OverlapAttack attack; protected OverlapAttack scissorAttack; protected bool inHitPause; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; protected EffectManagerHelper _emh_swingEffectInstance; public override void OnEnter() { //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Expected O, but got Unknown //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; scissorDuration = baseScissorDuration / ((BaseState)this).attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f + duration, false); hitStopDuration = ((swingIndex == 2) ? (hitStopDuration * 2f) : hitStopDuration); animator.SetLayerWeight(animator.GetLayerIndex("Scissor, Override"), 0f); PlayAttackAnimation(); attack = new OverlapAttack(); attack.damageType = DamageTypeCombo.op_Implicit(damageType); foreach (ModdedDamageType item in moddedDamageTypeHolder) { DamageAPI.AddModdedDamageType(ref attack.damageType, item); } attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); if (!isFlatDamage) { attack.damage = damageTotal * ((BaseState)this).damageStat; } else { attack.damage = damageTotal; } attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxGroupName); attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; attack.damageType.damageSource = damageSource; } protected virtual void PlayAttackAnimation() { if (!hasPlayed) { ((EntityState)this).PlayCrossfade("Gesture, Override", "Slash" + (1 + swingIndex), playbackRateParam, duration, 0.05f); hasPlayed = true; } } protected virtual void PlayTrueAttackAnimation() { ((EntityState)this).PlayCrossfade("Gesture, Override", (swingIndex % 2 == 0) ? "Slash1" : "Slash2", "Slash.playbackRate", duration * (attackEndPercentTime - attackStartPercentTime), 0.1f * duration); } public override void OnExit() { if (inHitPause) { RemoveHitstop(); } moddedDamageTypeHolder.Clear(); if (((EntityState)this).isAuthority) { if ((Object)(object)_emh_swingEffectInstance != (Object)null && _emh_swingEffectInstance.OwningPool != null) { ((GenericPool)(object)_emh_swingEffectInstance.OwningPool).ReturnObject(_emh_swingEffectInstance); } else if (Object.op_Implicit((Object)(object)swingEffectInstance)) { EntityState.Destroy((Object)(object)swingEffectInstance); } swingEffectInstance = null; _emh_swingEffectInstance = null; } ((EntityState)this).OnExit(); } protected virtual void PlaySwingEffect() { if (!Object.op_Implicit((Object)(object)swingEffectPrefab)) { return; } Transform val = ((BaseState)this).FindModelChild(muzzleString); if (Object.op_Implicit((Object)(object)val)) { if (!EffectManager.ShouldUsePooledEffect(swingEffectPrefab)) { swingEffectInstance = Object.Instantiate(swingEffectPrefab, val); } else { _emh_swingEffectInstance = EffectManager.GetAndActivatePooledEffect(swingEffectPrefab, val, true); swingEffectInstance = ((Component)_emh_swingEffectInstance).gameObject; } ScaleParticleSystemDuration component = swingEffectInstance.GetComponent(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = component.initialDuration; } } } protected virtual void OnHitEnemyAuthority() { Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); ApplyHitstop(); } protected void ApplyHitstop() { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, playbackRateParam); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } protected virtual void FireAttack() { if (((EntityState)this).isAuthority && attack.Fire((List)null)) { OnHitEnemyAuthority(); } } private void EnterAttack() { Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); PlaySwingEffect(); if (buffer) { PlayTrueAttackAnimation(); } if (((EntityState)this).isAuthority) { ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } public override void FixedUpdate() { //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Expected O, but got Unknown //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0321: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_037d: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0387: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_039a: Unknown result type (might be due to invalid IL or missing references) //IL_039f: Unknown result type (might be due to invalid IL or missing references) //IL_03a4: Unknown result type (might be due to invalid IL or missing references) //IL_03bb: Unknown result type (might be due to invalid IL or missing references) //IL_03c0: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_0408: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer <= 0f && inHitPause) { RemoveHitstop(); } if (!inHitPause) { stopwatch += Time.fixedDeltaTime; } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat(playbackRateParam, 0f); } } bool flag = stopwatch >= duration * attackStartPercentTime; bool flag2 = stopwatch >= duration * attackEndPercentTime; bool flag3 = stopwatch >= scissorDuration * attackStartPercentTime; bool flag4 = stopwatch >= scissorDuration * attackEndPercentTime; if (!scissorHit) { if ((flag && !flag2) || (flag && flag2 && !hasFired)) { if (!hasFired) { EnterAttack(); hasFired = true; } FireAttack(); } if (stopwatch >= duration && ((EntityState)this).isAuthority && !setDiffState) { ((EntityState)this).outer.SetNextStateToMain(); } else if (stopwatch >= duration && ((EntityState)this).isAuthority && setDiffState) { ((EntityState)this).outer.SetNextState(setState); } return; } if ((flag && !flag2) || (flag && flag2 && !hasFired)) { if (!hasFired) { EnterAttack(); swingEffectPrefab = bonusSwingEffectPrefab; hasFired = true; } FireAttack(); } if ((flag3 && !flag4) || (flag3 && flag4 && !hasFired2)) { if (!hasFired2) { attack = new OverlapAttack(); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); if (!isFlatDamage) { attack.damage = SeamstressConfig.scissorSlashDamageCoefficient.Value * ((BaseState)this).damageStat; } else { attack.damage = damageTotal; } attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; attack.forceVector = bonusForce; attack.pushAwayForce = pushForce * 2f; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup(hitboxGroupName); attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; attack.damageType = DamageTypeCombo.op_Implicit(damageType); OverlapAttack obj = attack; obj.damageType |= DamageTypeCombo.op_Implicit((DamageType)32); foreach (ModdedDamageType item in moddedDamageTypeHolder) { DamageAPI.AddModdedDamageType(attack, item); } if (DamageAPI.HasModdedDamageType(attack, DamageTypes.GainNeedles)) { DamageAPI.RemoveModdedDamageType(attack, DamageTypes.GainNeedles); } attackRecoil = 0.2f; swingSoundString = "sfx_seamstress_swing_scissor"; if (muzzleString == "SwingLeftSmall") { attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("Right"); muzzleString = "SwingLeft"; } else if (muzzleString == "SwingRightSmall") { attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("Left"); muzzleString = "SwingRight"; } else if (muzzleString == "SwingCenterSmall") { swingSoundString = "Play_bandit2_m2_slash"; muzzleString = "SwingCenter"; attack.hitBoxGroup = ((BaseState)this).FindHitBoxGroup("SwordBig"); } EnterAttack(); hasFired2 = true; } FireAttack(); } if (stopwatch >= scissorDuration && ((EntityState)this).isAuthority && !setDiffState) { ((EntityState)this).outer.SetNextStateToMain(); } else if (stopwatch >= scissorDuration && ((EntityState)this).isAuthority && setDiffState) { ((EntityState)this).outer.SetNextState(setState); } } private void RemoveHitstop() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; if (!((EntityState)this).characterMotor.isGrounded) { storedVelocity.y = Mathf.Max(storedVelocity.y, hitHopVelocity / Mathf.Sqrt(((BaseState)this).attackSpeedStat)); } ((EntityState)this).characterMotor.velocity = storedVelocity; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_002a: 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_005a: 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) if (!scissorHit && stopwatch >= duration * earlyExitPercentTime) { return (InterruptPriority)0; } if (scissorHit && stopwatch >= scissorDuration * earlyExitPercentTime) { return (InterruptPriority)0; } return (InterruptPriority)1; } public override void OnSerialize(NetworkWriter writer) { ((BaseSkillState)this).OnSerialize(writer); writer.Write(swingIndex); } public override void OnDeserialize(NetworkReader reader) { ((BaseSkillState)this).OnDeserialize(reader); swingIndex = reader.ReadInt32(); } public void SetStep(int i) { swingIndex = i; } } public abstract class BaseSeamstressSkillState : BaseSkillState { protected SeamstressController seamstressController; protected bool scissorRight; protected bool scissorLeft; protected NeedleController needleCon; protected SeamstressBlinkController blinkController; protected int needleCount; protected bool isInsatiable; protected bool inDash; public override void OnEnter() { RefreshState(); ((EntityState)this).GetModelAnimator().SetLayerWeight(((EntityState)this).GetModelAnimator().GetLayerIndex("Scissor, Override"), 0f); ((BaseState)this).OnEnter(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); RefreshState(); } protected void RefreshState() { needleCount = ((EntityState)this).characterBody.GetBuffCount(SeamstressBuffs.Needles); scissorRight = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ScissorRightBuff); scissorLeft = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ScissorLeftBuff); if (!Object.op_Implicit((Object)(object)seamstressController)) { seamstressController = ((EntityState)this).GetComponent(); } if (!Object.op_Implicit((Object)(object)needleCon)) { needleCon = ((EntityState)this).GetComponent(); } if (!Object.op_Implicit((Object)(object)blinkController)) { blinkController = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)seamstressController)) { isInsatiable = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff); } } } public abstract class BaseSeamstressState : BaseState { protected SeamstressController seamstressController; protected NeedleController needleCon; protected SeamstressBlinkController blinkController; protected bool scissorRight; protected bool scissorLeft; protected bool isInsatiable; public override void OnEnter() { ((BaseState)this).OnEnter(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); RefreshState(); } protected void RefreshState() { scissorRight = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ScissorRightBuff); scissorLeft = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.ScissorLeftBuff); if (!Object.op_Implicit((Object)(object)seamstressController)) { seamstressController = ((EntityState)this).GetComponent(); } if (!Object.op_Implicit((Object)(object)needleCon)) { needleCon = ((EntityState)this).GetComponent(); } if (!Object.op_Implicit((Object)(object)blinkController)) { blinkController = ((EntityState)this).GetComponent(); } if (Object.op_Implicit((Object)(object)seamstressController)) { isInsatiable = ((EntityState)this).characterBody.HasBuff(SeamstressBuffs.SeamstressInsatiableBuff); } } } } namespace SeamstressMod.Modules.Achievements { public abstract class BaseMasteryAchievement : BaseAchievement { public abstract string RequiredCharacterBody { get; } public abstract float RequiredDifficultyCoefficient { get; } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex(RequiredCharacterBody); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Invalid comparison between Unknown and I4 //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Invalid comparison between Unknown and I4 if (!Object.op_Implicit((Object)(object)runReport.gameEnding) || !runReport.gameEnding.isWin) { return; } DifficultyIndex val = runReport.ruleBook.FindDifficulty(); DifficultyDef difficultyDef = DifficultyCatalog.GetDifficultyDef(val); if (difficultyDef != null) { bool flag = difficultyDef.countsAsHardMode && difficultyDef.scalingValue >= RequiredDifficultyCoefficient; bool flag2 = difficultyDef.nameToken == "INFERNO_NAME"; bool flag3 = (int)val >= 3 && (int)val <= 10; if (flag || flag2 || flag3) { ((BaseAchievement)this).Grant(); } } } } }