Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Dancer v0.10.1
Dancer.dll
Decompiled 4 months ago
The result has been truncated due to the large size, download it to view full contents!
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 BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using Dancer.Modules; using Dancer.Modules.Components; using Dancer.Modules.Survivors; using Dancer.SkillStates; using Dancer.SkillStates.DirectionalM1; using Dancer.SkillStates.InterruptStates; using Dancer.SkillStates.M1; using Dancer.SoftDependencies; using EmotesAPI; using EntityStates; using EntityStates.LockedMage; using EntityStates.Merc; using HG; using HG.BlendableTypes; using KinematicCharacterController; using MonoMod.RuntimeDetour; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Audio; using RoR2.CharacterAI; using RoR2.ContentManagement; using RoR2.Orbs; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = "")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.0.0.0")] [module: UnverifiableCode] internal class BodyInfo { internal string bodyName = ""; internal string bodyNameToken = ""; internal string subtitleNameToken = ""; internal Texture characterPortrait = null; internal GameObject crosshair = null; internal GameObject podPrefab = null; internal float maxHealth = 100f; internal float healthGrowth = 2f; internal float healthRegen = 0f; internal float shield = 0f; internal float shieldGrowth = 0f; internal float moveSpeed = 7f; internal float moveSpeedGrowth = 0f; internal float acceleration = 80f; internal float jumpPower = 15f; internal float jumpPowerGrowth = 0f; internal float damage = 12f; internal float attackSpeed = 1f; internal float attackSpeedGrowth = 0f; internal float armor = 0f; internal float armorGrowth = 0f; internal float crit = 1f; internal float critGrowth = 0f; internal int jumpCount = 1; internal Color bodyColor = Color.grey; } internal class CustomRendererInfo { internal string childName; internal Material material; internal bool ignoreOverlays; } public class DancerComponent : MonoBehaviour { private Animator animator; private ModelLocator modelLocator; private Transform modelTransform; public Transform weaponBase; public Transform root; private Vector3 weaponPointOverride; private Vector3 bodyDirectionOverride; public Vector3 vector = new Vector3(90f, 0f, 0f); private void Start() { modelLocator = ((Component)this).GetComponent<ModelLocator>(); modelTransform = modelLocator.modelTransform; GetTransforms(); } private void GetTransforms() { if (Object.op_Implicit((Object)(object)modelTransform)) { weaponBase = modelTransform.Find("DancerArmature/ROOT/HipsControl/Hips/Spine/Chest/Shoulder.L/UpperArm.L/LowerArm.L/Hand.L/Lance"); root = modelTransform.Find("DancerArmature/ROOT"); } } public void BodyRotationOverride(Vector3 direction) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) bodyDirectionOverride = direction; } public void StopBodyOverride() { //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) bodyDirectionOverride = Vector3.zero; } public void WeaponRotationOverride(Vector3 pointToHit) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0003: Unknown result type (might be due to invalid IL or missing references) weaponPointOverride = pointToHit; } public void StopWeaponOverride() { //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) weaponPointOverride = Vector3.zero; } private void LateUpdate() { //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_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0017: 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_002c: 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_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: 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_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_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_0082: 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) if (weaponPointOverride != Vector3.zero) { Vector3 val = weaponPointOverride - weaponBase.position; Quaternion rotation = Util.QuaternionSafeLookRotation(val) * Quaternion.Euler(vector); weaponBase.rotation = rotation; } if (bodyDirectionOverride != Vector3.zero) { Quaternion rotation2 = Util.QuaternionSafeLookRotation(bodyDirectionOverride) * Quaternion.Euler(vector); root.rotation = rotation2; } } } internal class SkillDefInfo { public string skillName; public string skillNameToken; public string skillDescriptionToken; public Sprite skillIcon; public SerializableEntityStateType activationState; public string activationStateMachineName; public int baseMaxStock; public float baseRechargeInterval; public bool beginSkillCooldownOnSkillEnd; public bool canceledFromSprinting; public bool forceSprintDuringState; public bool fullRestockOnAssign; public InterruptPriority interruptPriority; public bool resetCooldownTimerOnUse; public bool isCombatSkill; public bool mustKeyPress; public bool cancelSprintingOnActivation; public int rechargeStock; public int requiredStock; public int stockToConsume; public string[] keywordTokens; } namespace Dancer { [BepInPlugin("com.nayDPz.Dancer", "Dancer", "0.10.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class DancerPlugin : BaseUnityPlugin { public const string MODUID = "com.nayDPz.Dancer"; public const string MODNAME = "Dancer"; public const string MODVERSION = "0.10.0"; public const string developerPrefix = "nayDPz"; public static bool emotesInstalled; public static DancerPlugin instance; private void Awake() { instance = this; Assets.PopulateAssets(); Config.ReadConfig(); SoundBanks.Init(); States.RegisterStates(); Buffs.RegisterBuffs(); Projectiles.RegisterProjectiles(); Tokens.AddTokens(); ItemDisplays.PopulateDisplays(); CameraParams.InitializeParams(); Dancer.Modules.Survivors.Dancer.CreateCharacter(); if (Config.artiBuddy.Value) { new LockedMageTracker(); } new ContentPacks().Initialize(); if (CustomEmotesAPICompat.enabled) { CustomEmotesAPICompat.SetupSkeleton(); } ContentManager.onContentPacksAssigned += LateSetup; Hook(); } private void LateSetup(ReadOnlyArray<ReadOnlyContentPack> obj) { //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) Dancer.Modules.Survivors.Dancer.SetItemDisplays(); if (Config.artiBuddy.Value) { ((Behaviour)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/LockedMage.prefab").WaitForCompletion().GetComponent<GameObjectUnlockableFilter>()).enabled = false; } } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (self.HasBuff(Buffs.ribbonDebuff)) { self.moveSpeed *= 0.75f; } } private void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Invalid comparison between Unknown and I4 //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Invalid comparison between Unknown and I4 //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_0091: Invalid comparison between Unknown and I4 //IL_02e5: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02f4: Invalid comparison between Unknown and I4 //IL_025b: Unknown result type (might be due to invalid IL or missing references) //IL_0260: Unknown result type (might be due to invalid IL or missing references) //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_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: 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_01d9: Unknown result type (might be due to invalid IL or missing references) RibbonController ribbonController = RibbonController.FindRibbonController(((Component)self).gameObject); if (damageInfo != null && Object.op_Implicit((Object)(object)damageInfo.attacker) && Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent<CharacterBody>())) { if (damageInfo.attacker.GetComponent<CharacterBody>().baseNameToken == "NDP_DANCER_BODY_NAME") { if (Object.op_Implicit((Object)(object)ribbonController) && damageInfo.procChainMask.mask == 0 && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) != 67108864 && (int)DamageTypeCombo.op_Implicit(damageInfo.damageType) != 8388608) { HealthComponent component = damageInfo.attacker.GetComponent<HealthComponent>(); if (Object.op_Implicit((Object)(object)component) && damageInfo.damage > 0f) { float num = component.fullHealth * 0.045f * damageInfo.procCoefficient; component.AddBarrier(num); } bool crit = damageInfo.crit; float damageValue = 0f * damageInfo.attacker.GetComponent<CharacterBody>().baseDamage; TeamIndex teamIndex = damageInfo.attacker.GetComponent<CharacterBody>().teamComponent.teamIndex; if (Object.op_Implicit((Object)(object)ribbonController.NetworknextRoot)) { CharacterBody component2 = ribbonController.nextRoot.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component2)) { DancerOrb dancerOrb = new DancerOrb(); dancerOrb.attacker = damageInfo.attacker; dancerOrb.bouncedObjects = null; dancerOrb.bouncesRemaining = 0; dancerOrb.damageCoefficientPerBounce = 1f; dancerOrb.damageColorIndex = (DamageColorIndex)3; dancerOrb.damageValue = damageValue; dancerOrb.isCrit = crit; ((Orb)dancerOrb).origin = damageInfo.position; dancerOrb.procChainMask = default(ProcChainMask); dancerOrb.procCoefficient = 0f; dancerOrb.range = 0f; dancerOrb.teamIndex = teamIndex; ((Orb)dancerOrb).target = component2.mainHurtBox; ((Orb)dancerOrb).duration = 0.25f; OrbManager.instance.AddOrb((Orb)(object)dancerOrb); } } else { if (RibbonController.naturalSpread) { ribbonController.SpeedUpRibbon(0.25f); } else { ribbonController.SearchNewTarget(); } ribbonController.inflictorRoot = damageInfo.attacker; } } if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 536870912) { damageInfo.damageType = DamageTypeCombo.op_Implicit((DamageType)0); float ribbonDebuffDuration = Buffs.ribbonDebuffDuration; if (Object.op_Implicit((Object)(object)ribbonController)) { ribbonController.SyncRibbonTimersToNewTime(ribbonDebuffDuration); } else { GameObject val = Object.Instantiate<GameObject>(Assets.ribbonController, ((Component)self).gameObject.transform); RibbonController component3 = val.GetComponent<RibbonController>(); component3.timer = ribbonDebuffDuration; component3.NetworkownerRoot = ((Component)self).gameObject; component3.inflictorRoot = damageInfo.attacker; component3.spreadsRemaining = 2; NetworkServer.Spawn(val); component3.StartRibbon(); } } if ((int)DamageTypeCombo.op_Implicit(damageInfo.damageType) == 8388608) { damageInfo.damageType = DamageTypeCombo.op_Implicit((DamageType)32); } } if (self.body.baseNameToken == "NDP_DANCER_BODY_NAME" && self.body.HasBuff(Buffs.parryBuff)) { damageInfo.rejected = true; self.body.RemoveBuff(Buffs.parryBuff); self.body.AddTimedBuff(Buffs.HiddenInvincibility, 1.5f); } } orig.Invoke(self, damageInfo); if (Object.op_Implicit((Object)(object)ribbonController) && !self.alive && !ribbonController.ribbonAttached) { ribbonController.DetachFromOwner(); } } } public static class SoundBanks { public static string soundBankDirectory => Path.GetDirectoryName(((BaseUnityPlugin)DancerPlugin.instance).Info.Location); public static void Init() { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Expected O, but got Unknown Hook val = new Hook((MethodBase)Reflection.GetMethodCached(typeof(AkSoundEngineInitialization), "InitializeSoundEngine"), Reflection.GetMethodCached(typeof(SoundBanks), "AddBanks")); } private static bool AddBanks(Func<AkSoundEngineInitialization, bool> orig, AkSoundEngineInitialization self) { bool result = orig(self); LoadBanks(); return result; } private static void LoadBanks() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) AkSoundEngine.AddBasePath(soundBankDirectory); uint num = default(uint); AkSoundEngine.LoadBank("DancerBank", ref num); uint num2 = default(uint); AkSoundEngine.LoadBank("RidleyBank", ref num2); } } } namespace Dancer.SoftDependencies { public static class CustomEmotesAPICompat { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static AnimationChanged <>9__3_0; internal void <SetupSkeleton>b__3_0(string newAnimation, BoneMapper mapper) { if (!Object.op_Implicit((Object)(object)mapper) || !((Object)((Component)mapper).transform.parent).name.Contains("Dancer")) { return; } Transform val = ((Component)((Component)mapper).transform.parent).GetComponent<ChildLocator>().FindChild("Lance"); if (Object.op_Implicit((Object)(object)val)) { if (newAnimation != "none") { ((Component)val).gameObject.SetActive(false); } else { ((Component)val).gameObject.SetActive(true); } } } } private static bool? _enabled; public static bool enabled { get { if (!_enabled.HasValue) { _enabled = Chainloader.PluginInfos.ContainsKey("com.weliveinasociety.CustomEmotesAPI"); } return _enabled.Value; } } public static void SetupSkeleton() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Expected O, but got Unknown object obj = <>c.<>9__3_0; if (obj == null) { AnimationChanged val = delegate(string newAnimation, BoneMapper mapper) { if (Object.op_Implicit((Object)(object)mapper) && ((Object)((Component)mapper).transform.parent).name.Contains("Dancer")) { Transform val2 = ((Component)((Component)mapper).transform.parent).GetComponent<ChildLocator>().FindChild("Lance"); if (Object.op_Implicit((Object)(object)val2)) { if (newAnimation != "none") { ((Component)val2).gameObject.SetActive(false); } else { ((Component)val2).gameObject.SetActive(true); } } } }; <>c.<>9__3_0 = val; obj = (object)val; } CustomEmotesAPI.animChanged += (AnimationChanged)obj; SurvivorCatalog.Init += new hook_Init(SurvivorCatalog_Init); } private static void SurvivorCatalog_Init(orig_Init orig) { orig.Invoke(); foreach (SurvivorDef allSurvivorDef in SurvivorCatalog.allSurvivorDefs) { if (((Object)allSurvivorDef.bodyPrefab).name == "DancerBody") { GameObject val = Assets.mainAssetBundle.LoadAsset<GameObject>("DancerHumanoid"); CustomEmotesAPI.ImportArmature(allSurvivorDef.bodyPrefab, val, 0, true); } } } } } namespace Dancer.SkillStates { public class ChargeParry : BaseSkillState { private float duration; private Animator animator; private ChildLocator childLocator; private protected GameObject chargeEffectInstance; public GameObject chargeEffectPrefab; public string chargeSoundString; public float baseDuration = 1f; public GameObject crosshairOverridePrefab; public float minChargeDuration = 1f; private GameObject defaultCrosshairPrefab; private float timer; private float perfectTime = 0.25f; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; timer = duration; animator = ((EntityState)this).GetModelAnimator(); childLocator = ((EntityState)this).GetModelChildLocator(); PlayChargeAnimation(); Util.PlayAttackSpeedSound("FireballCharge", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); if (NetworkServer.active) { ((EntityState)this).characterBody.AddBuff(Buffs.parryBuff); } if (Object.op_Implicit((Object)(object)crosshairOverridePrefab)) { } ((BaseState)this).StartAimMode(duration + 2f, false); } public override void OnExit() { if (NetworkServer.active) { ((EntityState)this).characterBody.RemoveBuff(Buffs.parryBuff); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody)) { } ((EntityState)this).OnExit(); } protected float CalcCharge() { if (((EntityState)this).fixedAge <= perfectTime) { return 1f; } return Mathf.Clamp01(timer / duration); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); timer -= Time.fixedDeltaTime; float charge = CalcCharge(); if (Util.HasEffectiveAuthority(((EntityState)this).gameObject) && ((!((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= minChargeDuration) || !((EntityState)this).characterBody.HasBuff(Buffs.parryBuff))) { Riposte riposte = new Riposte(); riposte.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)riposte); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } protected virtual void PlayChargeAnimation() { ((EntityState)this).PlayAnimation("Head, Override", "NSpecStart", "Slash.playbackRate", 0.225f, 0f); } } public class DragonLunge : BaseSkillState { public static float popRadius = 4f; public static float cooldownOnMiss = 1f; public static float smallHopStrength = 12f; public static float antiGravityStrength = 30f; public static float pullForce = 3f; public static float radius = 1.75f; public static float damageCoefficient = 5.5f; public static float procCoefficient = 1f; public static float baseDuration = 0.85f; public static float force = 0f; public static float recoil = 1f; public static float range = 70f; private DancerComponent weaponAnimator; private float earlyExitTime = 0.35f; private bool hitWorld; private float stopwatch; private Vector3 hitPoint; private float duration; private float fireTime; private bool hasFired; private Animator animator; private string muzzleString; private static float antigravityStrength; public override void OnEnter() { //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); weaponAnimator = ((EntityState)this).GetComponent<DancerComponent>(); ((BaseState)this).StartAimMode(2f, false); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = 0.45f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "LanceBase"; Util.PlaySound("LungeStart", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("FullBody, Override", "DragonLunge", "DragonLunge.playbackRate", duration * 0.975f, 0f); earlyExitTime /= ((BaseState)this).attackSpeedStat; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && smallHopStrength != 0f) { Vector3 moveVector = ((EntityState)this).inputBank.moveVector; ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); ((EntityState)this).characterMotor.velocity = new Vector3(smallHopStrength * moveVector.x, Mathf.Max(((EntityState)this).characterMotor.velocity.y, smallHopStrength), smallHopStrength * moveVector.z); } ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; } public override void OnExit() { weaponAnimator.StopWeaponOverride(); animator.SetFloat("DragonLunge.playbackRate", 1f); ((EntityState)this).OnExit(); } private void Fire() { //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: 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_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_0144: 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_0152: 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_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_017b: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_0187: Unknown result type (might be due to invalid IL or missing references) //IL_018c: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01c0: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01e3: 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_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_020d: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0225: Unknown result type (might be due to invalid IL or missing references) //IL_022a: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0253: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_0267: Expected O, but got Unknown //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Expected O, but got Unknown //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_02c3: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038f: 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_0397: Unknown result type (might be due to invalid IL or missing references) //IL_039c: Unknown result type (might be due to invalid IL or missing references) //IL_03f9: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03cd: Unknown result type (might be due to invalid IL or missing references) //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) if (hasFired) { return; } hasFired = true; bool flag = ((BaseSkillState)this).IsKeyDownAuthority(); Transform val = ((EntityState)this).characterBody.coreTransform; ChildLocator modelChildLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)modelChildLocator)) { val = modelChildLocator.FindChild(muzzleString); } ((EntityState)this).characterBody.AddSpreadBloom(1.5f); Util.PlaySound("LungeFire", ((EntityState)this).gameObject); if (!((EntityState)this).isAuthority) { return; } EffectManager.SimpleEffect(Assets.dragonLungeEffect, val.position, val.rotation, true); Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); bool hitEnemy = false; List<GameObject> hitBodies = new List<GameObject>(); RaycastHit val2 = default(RaycastHit); if (Util.CharacterSpherecast(((EntityState)this).gameObject, aimRay, 1.5f, ref val2, range, ((LayerIndex)(ref LayerIndex.world)).mask, (QueryTriggerInteraction)0)) { hitWorld = true; hitPoint = ((RaycastHit)(ref val2)).point; } BulletAttack val3 = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)32), (DamageTypeExtended)0, (DamageSource)4), falloffModel = (FalloffModel)0, maxDistance = range, force = force, hitMask = CommonMasks.bullet, minSpread = 0f, maxSpread = 0f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = radius, sniper = false, stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask, weapon = null, tracerEffectPrefab = null, spreadPitchScale = 0f, spreadYawScale = 0f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = Assets.stabHitEffect }; val3.hitCallback = (HitCallback)delegate(BulletAttack bullet, ref BulletHit hitInfo) { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) bool result = BulletAttack.defaultHitCallback.Invoke(bullet, ref hitInfo); if (!hitWorld) { hitPoint = hitInfo.point; } Vector3 val5 = ((EntityState)this).transform.position - hitPoint; float magnitude = ((Vector3)(ref val5)).magnitude; val5 = hitPoint - ((EntityState)this).transform.position; Vector3 normalized = ((Vector3)(ref val5)).normalized; float num = Mathf.Lerp(Pull.minDuration, Pull.maxDuration, magnitude / Pull.maxDistance); if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox)) { HurtBox hitHurtBox = hitInfo.hitHurtBox; if (Object.op_Implicit((Object)(object)hitHurtBox)) { HealthComponent healthComponent = hitHurtBox.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && Object.op_Implicit((Object)(object)healthComponent.body)) { hitEnemy = true; hitBodies.Add(((Component)healthComponent.body).gameObject); } } } return result; }; val3.Fire(); if (hitWorld || hitEnemy) { if (((BaseSkillState)this).IsKeyDownAuthority()) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Pull { waitTime = duration - fireTime, point = hitPoint, hitWorld = hitWorld, hitBodies = hitBodies }); } OnHitAnyAuthority(); } if (hitWorld && !hitEnemy && !((BaseSkillState)this).IsKeyDownAuthority()) { GenericSkill activatorSkillSlot = ((BaseSkillState)this).activatorSkillSlot; activatorSkillSlot.rechargeStopwatch += ((BaseSkillState)this).activatorSkillSlot.CalculateFinalRechargeInterval() - cooldownOnMiss; } else if (!hitWorld && !hitEnemy) { GenericSkill activatorSkillSlot2 = ((BaseSkillState)this).activatorSkillSlot; activatorSkillSlot2.rechargeStopwatch += ((BaseSkillState)this).activatorSkillSlot.CalculateFinalRechargeInterval() - cooldownOnMiss; } Vector3 val4 = hitPoint - ((EntityState)this).transform.position; if (hitPoint != Vector3.zero && ((Vector3)(ref val4)).magnitude > 5f) { weaponAnimator.WeaponRotationOverride(val4 * 500f + ((EntityState)this).transform.position); } else { weaponAnimator.WeaponRotationOverride(((Ray)(ref aimRay)).GetPoint(range)); } } private void FireLollipop(Vector3 position) { //IL_0009: 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_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) bool flag = false; List<HealthComponent> list = new List<HealthComponent>(); Collider[] array = Physics.OverlapSphere(position, popRadius, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)0); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent<HurtBox>(); if (!Object.op_Implicit((Object)(object)component)) { flag = true; ((EntityState)this).outer.SetNextState((EntityState)(object)new Pull2 { waitTime = duration - fireTime, point = ((Component)array[i]).transform.position, hitWorld = true, hitBodies = new List<GameObject>() }); Debug.Log((object)"popped dlunge"); OnHitAnyAuthority(); break; } } } private void OnHitAnyAuthority() { Util.PlaySound("LungeHit", ((EntityState)this).gameObject); } public override void FixedUpdate() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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_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_011c: 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) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (((EntityState)this).fixedAge < fireTime) { ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity.y = characterMotor.velocity.y + antigravityStrength * Time.fixedDeltaTime * (1f - stopwatch / fireTime); } if (((EntityState)this).fixedAge >= fireTime * 0.85f && !hasFired) { DancerComponent dancerComponent = weaponAnimator; Ray aimRay = ((BaseState)this).GetAimRay(); dancerComponent.WeaponRotationOverride(((Ray)(ref aimRay)).GetPoint(range)); } if (((EntityState)this).fixedAge >= fireTime) { Fire(); ((EntityState)this).characterDirection.forward = ((hitPoint != Vector3.zero) ? (hitPoint - ((EntityState)this).transform.position) : ((EntityState)this).characterDirection.forward); } if (((EntityState)this).fixedAge >= duration - earlyExitTime && hasFired && ((EntityState)this).isAuthority) { weaponAnimator.StopWeaponOverride(); ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class DragonLungeButEpic : BaseSkillState { public static float smallHopStrength = 12f; public static float antiGravityStrength = 30f; public static float pullForce = 3f; public static float damageCoefficient = 3.75f; public static float procCoefficient = 1f; public static float baseDuration = 0.8f; public static float force = 0f; public static float recoil = 1f; public static float range = 62f; private DancerComponent weaponAnimator; private CharacterBody hitTarget; private bool hitEnemy; private bool hitWorld; private float stopwatch; private Vector3 hitPoint; private float duration; private float fireTime; private bool hasFired; private bool hasHit; private float hitTime; private Animator animator; private string muzzleString; private static float antigravityStrength; private GameObject netTargetObject; public override void OnEnter() { //IL_00da: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); weaponAnimator = ((EntityState)this).GetComponent<DancerComponent>(); ((BaseState)this).StartAimMode(2f, false); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = 0.4f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "LanceBase"; ((EntityState)this).PlayAnimation("FullBody, Override", "DragonLunge", "DragonLunge.playbackRate", duration * 0.975f, 0f); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && smallHopStrength != 0f) { ((EntityState)this).characterMotor.velocity.y = smallHopStrength; } ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; } public override void OnExit() { weaponAnimator.StopWeaponOverride(); animator.SetFloat("DragonLunge.playbackRate", 1f); ((EntityState)this).OnExit(); } private void Fire() { //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_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_013b: 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_014e: 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_015a: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_0170: 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_0178: Unknown result type (might be due to invalid IL or missing references) //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_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_01a6: Unknown result type (might be due to invalid IL or missing references) //IL_01a8: Unknown result type (might be due to invalid IL or missing references) //IL_01ad: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Expected O, but got Unknown //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Expected O, but got Unknown //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_0219: 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_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_0297: 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_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_0273: Unknown result type (might be due to invalid IL or missing references) //IL_027e: Unknown result type (might be due to invalid IL or missing references) //IL_0283: 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_02c1: Unknown result type (might be due to invalid IL or missing references) //IL_02c7: 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) if (hasFired) { return; } hasFired = true; ((EntityState)this).characterBody.AddSpreadBloom(1.5f); EffectManager.SimpleMuzzleFlash(Assets.dragonLungeEffect, ((EntityState)this).gameObject, muzzleString, false); if (!((EntityState)this).isAuthority) { return; } Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).AddRecoil(-1f * recoil, -2f * recoil, -0.5f * recoil, 0.5f * recoil); BulletAttack val = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = damageCoefficient * ((BaseState)this).damageStat, damageColorIndex = (DamageColorIndex)0, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)32), (DamageTypeExtended)0, (DamageSource)4), falloffModel = (FalloffModel)1, maxDistance = range, force = force, hitMask = CommonMasks.bullet, minSpread = 0f, maxSpread = 0f, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = muzzleString, smartCollision = false, procChainMask = default(ProcChainMask), procCoefficient = procCoefficient, radius = 2f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = null, spreadPitchScale = 0f, spreadYawScale = 0f, queryTriggerInteraction = (QueryTriggerInteraction)0, hitEffectPrefab = null }; val.hitCallback = (HitCallback)delegate(BulletAttack bullet, ref BulletHit hitInfo) { bool result = BulletAttack.defaultHitCallback.Invoke(bullet, ref hitInfo); if (Object.op_Implicit((Object)(object)hitInfo.hitHurtBox)) { HurtBox hitHurtBox = hitInfo.hitHurtBox; if (Object.op_Implicit((Object)(object)hitHurtBox)) { HealthComponent healthComponent = hitHurtBox.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && Object.op_Implicit((Object)(object)healthComponent.body)) { hitTarget = healthComponent.body; hitEnemy = true; netTargetObject = ((Component)hitTarget).gameObject; } } } return result; }; val.Fire(); if (hitWorld || hitEnemy) { OnHitAnyAuthority(); } else { Util.PlaySound("DSpecialSwing", ((EntityState)this).gameObject); } Vector3 val2 = hitPoint - ((EntityState)this).transform.position; if (hitEnemy && hitTarget.coreTransform.position != Vector3.zero) { val2 = hitTarget.coreTransform.position - ((EntityState)this).transform.position; weaponAnimator.WeaponRotationOverride(val2 * 500f + ((EntityState)this).transform.position); } else if (hitPoint != Vector3.zero && ((Vector3)(ref val2)).magnitude > 0f) { weaponAnimator.WeaponRotationOverride(val2 * 500f + ((EntityState)this).transform.position); } else { weaponAnimator.WeaponRotationOverride(((Ray)(ref aimRay)).GetPoint(range)); } } private void OnHitAnyAuthority() { //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) Util.PlaySound("DSpecialHit", ((EntityState)this).gameObject); ((EntityState)this).characterMotor.velocity = Vector3.zero; hasHit = true; } public override void FixedUpdate() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: 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_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_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_011c: 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_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_0208: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0218: Unknown result type (might be due to invalid IL or missing references) //IL_021d: 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_022a: 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_0237: Unknown result type (might be due to invalid IL or missing references) //IL_023c: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_024f: 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) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (((EntityState)this).fixedAge < fireTime) { ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity.y = characterMotor.velocity.y + antigravityStrength * Time.fixedDeltaTime * (1f - stopwatch / fireTime); } if (((EntityState)this).fixedAge >= fireTime * 0.85f && !hasFired) { DancerComponent dancerComponent = weaponAnimator; Ray aimRay = ((BaseState)this).GetAimRay(); dancerComponent.WeaponRotationOverride(((Ray)(ref aimRay)).GetPoint(range)); } if (((EntityState)this).fixedAge >= fireTime) { Fire(); ((EntityState)this).characterDirection.forward = ((hitPoint != Vector3.zero) ? (hitPoint - ((EntityState)this).transform.position) : ((EntityState)this).characterDirection.forward); } if (hasHit) { ((EntityState)this).characterMotor.velocity = Vector3.zero; animator.SetFloat("DragonLunge.playbackRate", 0f); } if (!(((EntityState)this).fixedAge >= duration) || !((EntityState)this).isAuthority) { return; } if (hasHit) { Util.PlaySound("DSpecialPull", ((EntityState)this).gameObject); if (!hitEnemy || !Object.op_Implicit((Object)(object)hitTarget)) { if (hitWorld) { Vector3 val = hitPoint - ((EntityState)this).transform.position; float num = Mathf.Max(((Vector3)(ref val)).magnitude - 2f, 0f); val = hitPoint - ((EntityState)this).transform.position; Vector3 normalized = ((Vector3)(ref val)).normalized; Vector3 point = num * normalized + ((EntityState)this).transform.position; ((EntityState)this).outer.SetNextState((EntityState)(object)new Pull { point = point, hitWorld = hitWorld }); } else { ((EntityState)this).outer.SetNextStateToMain(); } } } else { weaponAnimator.StopWeaponOverride(); ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class FireChainRibbons : BaseSkillState { public static float damageCoefficient = 0.75f; public static float procCoefficient = 0.5f; public static float baseDuration = 0.35f; public static float force = 0f; public static float recoil = 1f; public static float range = 62f; private float duration; private float fireTime; private bool hasFired; private Animator animator; private string muzzleString; public override void OnEnter() { ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(2f, false); duration = DragonLunge.baseDuration / ((BaseState)this).attackSpeedStat; fireTime = 0.25f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); muzzleString = "LanceBase"; Util.PlaySound("Play_item_proc_whip", ((EntityState)this).gameObject); } public override void OnExit() { if (!hasFired) { Fire(); } ((EntityState)this).OnExit(); } private void Fire() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_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_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; ((EntityState)this).characterBody.AddSpreadBloom(1.5f); if (((EntityState)this).isAuthority) { GameObject dancerRibbonProjectile = Projectiles.dancerRibbonProjectile; Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 origin = ((Ray)(ref aimRay)).origin; Vector3 direction = ((Ray)(ref aimRay)).direction; ProjectileManager.instance.FireProjectile(dancerRibbonProjectile, origin, Util.QuaternionSafeLookRotation(direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f, (DamageTypeCombo?)DamageTypeCombo.op_Implicit((DamageSource)8)); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime) { Fire(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class Pull : BaseSkillState { public List<GameObject> hitBodies; public float waitTime; public Vector3 point; private Vector3 direction; private bool pullStarted; private float distance; private float duration; private float speed; private float startSpeed; private float endSpeed; public bool hitWorld; private float exitHopVelocity = 15f; public static float minDuration = 0.2f; public static float maxDuration = 0.8f; public static float maxDistance = 80f; public static float minVelocity = 0.7f; public static float velocityMultiplier = 1.3f; private float maxAngle = 60f; private Animator animator; private float stopwatch; private DancerComponent weaponAnimator; public float a = 0.15f; private bool jump = false; public override void OnEnter() { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_009f: 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_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_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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0296: Unknown result type (might be due to invalid IL or missing references) //IL_0219: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); } animator = ((EntityState)this).GetModelAnimator(); weaponAnimator = ((EntityState)this).GetComponent<DancerComponent>(); Vector3 val = point - ((EntityState)this).transform.position; float num = Mathf.Max(((Vector3)(ref val)).magnitude - 3f, 0f); val = point - ((EntityState)this).transform.position; Vector3 normalized = ((Vector3)(ref val)).normalized; Vector3 val2 = num * normalized + ((EntityState)this).transform.position; val = ((EntityState)this).transform.position - val2; distance = ((Vector3)(ref val)).magnitude; val = val2 - ((EntityState)this).transform.position; direction = ((Vector3)(ref val)).normalized; duration = Mathf.Lerp(minDuration, maxDuration, distance / maxDistance); speed = distance / duration; startSpeed = speed * 2f; endSpeed = speed * 0f; foreach (GameObject hitBody in hitBodies) { if (!Object.op_Implicit((Object)(object)hitBody) || !Object.op_Implicit((Object)(object)hitBody.GetComponent<NetworkIdentity>())) { continue; } EntityStateMachine component = hitBody.GetComponent<EntityStateMachine>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)hitBody.GetComponent<SetStateOnHurt>()) && hitBody.GetComponent<SetStateOnHurt>().canBeFrozen) { if (!hitWorld) { SuspendedState suspendedState = new SuspendedState { duration = duration }; component.SetInterruptState((EntityState)(object)suspendedState, (InterruptPriority)6); } else { SkeweredState skeweredState = new SkeweredState { skewerDuration = waitTime, pullDuration = duration, destination = point }; component.SetInterruptState((EntityState)(object)skeweredState, (InterruptPriority)6); } } } if (Object.op_Implicit((Object)(object)((EntityState)this).GetComponent<KinematicCharacterMotor>())) { ((EntityState)this).GetComponent<KinematicCharacterMotor>().ForceUnground(0.1f); } weaponAnimator.WeaponRotationOverride(((Vector3)(ref normalized)).normalized * 500f + ((EntityState)this).transform.position); ((EntityState)this).PlayAnimation("FullBody, Override", "DragonLungePull", "DragonLunge.playbackRate", duration * a, 0f); } public override void OnExit() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0050: Unknown result type (might be due to invalid IL or missing references) if (!jump) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } animator.SetFloat("DragonLunge.playbackRate", 1f); if (NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } weaponAnimator.StopWeaponOverride(); ((EntityState)this).OnExit(); } public override void FixedUpdate() { //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_01b8: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Unknown result type (might be due to invalid IL or missing references) //IL_0113: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed) { jump = true; ((EntityState)this).PlayAnimation("FullBody, Override", "Jump"); ((EntityState)this).characterMotor.velocity = Vector3.zero; ((BaseState)this).SmallHop(((EntityState)this).characterMotor, ((EntityState)this).characterBody.jumpPower); ((EntityState)this).outer.SetNextStateToMain(); return; } if (((EntityState)this).fixedAge >= waitTime) { if (!pullStarted) { animator.SetFloat("DragonLunge.playbackRate", 1f); pullStarted = true; Util.PlaySound("LungeDash", ((EntityState)this).gameObject); } stopwatch += Time.fixedDeltaTime; speed = Mathf.Lerp(startSpeed, endSpeed, stopwatch / duration); ((EntityState)this).characterDirection.forward = direction; ((EntityState)this).characterMotor.velocity = direction * speed; if (stopwatch >= duration) { animator.SetFloat("DragonLunge.playbackRate", 0f); ((EntityState)this).characterMotor.velocity = Vector3.zero; if (!hitWorld) { ((EntityState)this).outer.SetNextStateToMain(); } else if (!((EntityState)this).inputBank.skill3.down) { ((EntityState)this).outer.SetNextStateToMain(); } return; } } else { ((EntityState)this).characterMotor.velocity = Vector3.zero; animator.SetFloat("DragonLunge.playbackRate", 0f); } bool flag = false; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } public override void OnSerialize(NetworkWriter writer) { //IL_0083: 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) ((BaseSkillState)this).OnSerialize(writer); int num = 0; foreach (GameObject hitBody in hitBodies) { if (Object.op_Implicit((Object)(object)hitBody) && Object.op_Implicit((Object)(object)hitBody.GetComponent<NetworkIdentity>())) { num++; } } writer.Write(num); writer.Write((double)waitTime); writer.Write(hitWorld); writer.Write(point); foreach (GameObject hitBody2 in hitBodies) { if (Object.op_Implicit((Object)(object)hitBody2) && Object.op_Implicit((Object)(object)hitBody2.GetComponent<NetworkIdentity>())) { writer.Write(hitBody2.GetComponent<NetworkIdentity>().netId); } } } public override void OnDeserialize(NetworkReader reader) { //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_004c: Unknown result type (might be due to invalid IL or missing references) hitBodies = new List<GameObject>(); ((BaseSkillState)this).OnDeserialize(reader); int num = reader.ReadInt32(); waitTime = (float)reader.ReadDouble(); hitWorld = reader.ReadBoolean(); point = reader.ReadVector3(); for (int i = 0; i < num; i++) { hitBodies.Add(NetworkServer.FindLocalObject(reader.ReadNetworkId())); } } } public class Pull2 : BaseSkillState { public List<GameObject> hitBodies; public float waitTime; public Vector3 point; private Vector3 direction; private bool pullStarted; private float distance; private float duration; private float speed; private float startSpeed; private float endSpeed; public bool hitWorld; private float exitHopVelocity = 15f; public static float minDuration = 0.2f; public static float maxDuration = 0.8f; public static float maxDistance = 80f; public static float minVelocity = 0.7f; public static float velocityMultiplier = 1.3f; private float maxAngle = 60f; private Animator animator; private float stopwatch; private DancerComponent weaponAnimator; public override void OnEnter() { //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) //IL_0094: 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_009f: 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_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_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_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_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_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024f: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); } animator = ((EntityState)this).GetModelAnimator(); weaponAnimator = ((EntityState)this).GetComponent<DancerComponent>(); Vector3 val = point - ((EntityState)this).transform.position; float num = Mathf.Max(((Vector3)(ref val)).magnitude - 3f, 0f); val = point - ((EntityState)this).transform.position; Vector3 normalized = ((Vector3)(ref val)).normalized; Vector3 val2 = num * normalized + ((EntityState)this).transform.position; val = ((EntityState)this).transform.position - val2; distance = ((Vector3)(ref val)).magnitude; val = val2 - ((EntityState)this).transform.position; direction = ((Vector3)(ref val)).normalized; duration = Mathf.Lerp(minDuration, maxDuration, distance / maxDistance); speed = distance / duration; startSpeed = speed * 1.5f; endSpeed = speed * 0.5f; foreach (GameObject hitBody in hitBodies) { if (Object.op_Implicit((Object)(object)hitBody) && Object.op_Implicit((Object)(object)hitBody.GetComponent<NetworkIdentity>())) { EntityStateMachine component = hitBody.GetComponent<EntityStateMachine>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)hitBody.GetComponent<SetStateOnHurt>()) && hitBody.GetComponent<SetStateOnHurt>().canBeFrozen) { bool flag = false; SkeweredState skeweredState = new SkeweredState { skewerDuration = waitTime, pullDuration = duration, destination = point }; component.SetInterruptState((EntityState)(object)skeweredState, (InterruptPriority)6); } } } if (Object.op_Implicit((Object)(object)((EntityState)this).GetComponent<KinematicCharacterMotor>())) { ((EntityState)this).GetComponent<KinematicCharacterMotor>().ForceUnground(0.1f); } weaponAnimator.WeaponRotationOverride(((Vector3)(ref normalized)).normalized * 500f + ((EntityState)this).transform.position); ((EntityState)this).PlayAnimation("FullBody, Override", "DragonLungePull", "Slash.playbackRate", duration * 0.8f, 0f); animator.SetFloat("DragonLunge.playbackRate", 1f); } public override void OnExit() { //IL_0039: 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_0041: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).PlayAnimation("Body", "Jump"); animator.SetFloat("DragonLunge.playbackRate", 1f); if (NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } weaponAnimator.StopWeaponOverride(); ((EntityState)this).OnExit(); } public override void FixedUpdate() { //IL_01ca: Unknown result type (might be due to invalid IL or missing references) //IL_01cf: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= waitTime) { if (!pullStarted) { animator.SetFloat("DragonLunge.playbackRate", 1f); pullStarted = true; Util.PlaySound("LungeDash", ((EntityState)this).gameObject); } stopwatch += Time.fixedDeltaTime; if (stopwatch < duration) { speed = Mathf.Lerp(startSpeed, endSpeed, stopwatch / duration); ((EntityState)this).characterDirection.forward = direction; ((EntityState)this).characterMotor.velocity = direction * speed; } if (!(stopwatch >= duration)) { return; } animator.SetFloat("DragonLunge.playbackRate", 0f); if (((EntityState)this).inputBank.skill3.down) { ((EntityState)this).characterMotor.velocity = Vector3.zero; if (((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); ((BaseState)this).SmallHop(((EntityState)this).characterMotor, ((EntityState)this).characterBody.jumpPower); ((EntityState)this).outer.SetNextStateToMain(); return; } } if (!hitWorld) { ((EntityState)this).outer.SetNextStateToMain(); } else if (!((EntityState)this).inputBank.skill3.down) { ((EntityState)this).outer.SetNextStateToMain(); } } else { ((EntityState)this).characterMotor.velocity = Vector3.zero; animator.SetFloat("DragonLunge.playbackRate", 0f); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } public override void OnSerialize(NetworkWriter writer) { //IL_0083: 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) ((BaseSkillState)this).OnSerialize(writer); int num = 0; foreach (GameObject hitBody in hitBodies) { if (Object.op_Implicit((Object)(object)hitBody) && Object.op_Implicit((Object)(object)hitBody.GetComponent<NetworkIdentity>())) { num++; } } writer.Write(num); writer.Write((double)waitTime); writer.Write(hitWorld); writer.Write(point); foreach (GameObject hitBody2 in hitBodies) { if (Object.op_Implicit((Object)(object)hitBody2) && Object.op_Implicit((Object)(object)hitBody2.GetComponent<NetworkIdentity>())) { writer.Write(hitBody2.GetComponent<NetworkIdentity>().netId); } } } public override void OnDeserialize(NetworkReader reader) { //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_004c: Unknown result type (might be due to invalid IL or missing references) hitBodies = new List<GameObject>(); ((BaseSkillState)this).OnDeserialize(reader); waitTime = (float)reader.ReadDouble(); hitWorld = reader.ReadBoolean(); point = reader.ReadVector3(); int num = reader.ReadInt32(); for (int i = 0; i < num; i++) { hitBodies.Add(NetworkServer.FindLocalObject(reader.ReadNetworkId())); } } } public class PullDamage : BaseSkillState { public bool isFirst = true; private OverlapAttack attack; public CharacterBody target; private GameObject nextTarget; private Vector3 lastKnownPosition; private CharacterModel characterModel; private Transform modelTransform; private HurtBoxGroup hurtboxGroup; public Vector3 point; private Vector3 direction; private float distance; private float duration; private float speed; private float startSpeed; private float endSpeed; private float fireTime; private float exitHopVelocity = 15f; public int swingIndex; private bool hasFired; private float attackRadius = 3.5f; private float procCoefficient = 0.75f; private float damageCoefficient = 3f; public static float minDuration = 0.2f; public static float maxDuration = 0.6f; public static float maxDistance = 80f; public static float minVelocity = 0.7f; public static float velocityMultiplier = 1.3f; private float maxAngle = 60f; private Animator animator; private float stopwatch; private DancerComponent weaponAnimator; public override void OnEnter() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Expected O, but got Unknown //IL_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01b5: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Unknown result type (might be due to invalid IL or missing references) //IL_0274: 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_0289: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_02a7: Unknown result type (might be due to invalid IL or missing references) //IL_02ac: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags | 1); } animator = ((EntityState)this).GetModelAnimator(); weaponAnimator = ((EntityState)this).GetComponent<DancerComponent>(); Vector3 val = ((EntityState)this).transform.position - target.coreTransform.position; distance = ((Vector3)(ref val)).magnitude; val = target.coreTransform.position - ((EntityState)this).transform.position; direction = ((Vector3)(ref val)).normalized; duration = Mathf.Lerp(minDuration, maxDuration, distance / maxDistance); duration /= ((BaseState)this).attackSpeedStat; speed = distance / duration; startSpeed = speed * 2f; endSpeed = speed * 0.5f; fireTime = 0.4f * duration; HitBoxGroup hitBoxGroup = null; Transform val2 = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)val2)) { hitBoxGroup = Array.Find(((Component)val2).GetComponents<HitBoxGroup>(), (HitBoxGroup element) => element.groupName == "NAir"); } attack = new OverlapAttack(); attack.damageType = DamageTypeCombo.op_Implicit((DamageType)0); attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = GroundLight.finisherHitEffectPrefab; attack.forceVector = Vector3.zero; attack.pushAwayForce = 0f; attack.hitBoxGroup = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = Assets.sword2HitSoundEvent.index; if (Object.op_Implicit((Object)(object)((EntityState)this).GetComponent<KinematicCharacterMotor>())) { ((EntityState)this).GetComponent<KinematicCharacterMotor>().ForceUnground(0.1f); } Vector3 val3 = target.coreTransform.position - ((EntityState)this).transform.position; weaponAnimator.WeaponRotationOverride(((Vector3)(ref val3)).normalized * 500f + ((EntityState)this).transform.position); if (isFirst) { ((EntityState)this).PlayAnimation("FullBody, Override", "DragonLungePull", "Slash.playbackRate", duration * 3f, 0f); } modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent<CharacterModel>(); hurtboxGroup = ((Component)modelTransform).GetComponent<HurtBoxGroup>(); } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount++; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup obj2 = hurtboxGroup; int hurtBoxesDeactivatorCounter = obj2.hurtBoxesDeactivatorCounter; obj2.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter + 1; } } public override void OnExit() { //IL_005d: 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_0065: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount--; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup obj2 = hurtboxGroup; int hurtBoxesDeactivatorCounter = obj2.hurtBoxesDeactivatorCounter; obj2.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter - 1; } if (NetworkServer.active) { CharacterBody characterBody = ((EntityState)this).characterBody; characterBody.bodyFlags = (BodyFlags)(characterBody.bodyFlags & -2); } weaponAnimator.StopWeaponOverride(); ((EntityState)this).OnExit(); } private void Fire() { if (!hasFired) { hasFired = true; ((EntityState)this).PlayAnimation("FullBody, Override", "Jab" + (swingIndex + 1), "Slash.playbackRate", duration * 1f, 0f); if (Util.HasEffectiveAuthority(((EntityState)this).gameObject)) { PlaySwingEffect(); } } if (((EntityState)this).isAuthority && attack.Fire((List<HurtBox>)null)) { Util.PlayAttackSpeedSound("Jab" + (swingIndex + 1), ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); } } private void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(Assets.swingEffect, ((EntityState)this).gameObject, "eJab" + (swingIndex + 1), false); } public override void FixedUpdate() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: 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_0093: 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_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) ((EntityState)this).FixedUpdate(); Vector3 val; Vector3 val2; if (Object.op_Implicit((Object)(object)target)) { val = (lastKnownPosition = target.coreTransform.position); val2 = val; } else { val2 = lastKnownPosition; } Vector3 val3 = val2; val = val3 - ((EntityState)this).transform.position; direction = ((Vector3)(ref val)).normalized; ((EntityState)this).characterDirection.forward = direction; speed = Mathf.Lerp(startSpeed, endSpeed, ((EntityState)this).fixedAge / duration); ((EntityState)this).characterMotor.velocity = direction * speed; if (((EntityState)this).fixedAge >= duration * fireTime) { Fire(); } if (!(((EntityState)this).fixedAge >= duration)) { return; } if (Object.op_Implicit((Object)(object)nextTarget) && ((EntityState)this).inputBank.skill3.down) { if (swingIndex == 0) { swingIndex = 1; } else { swingIndex = 0; } ((EntityState)this).outer.SetNextState((EntityState)(object)new PullDamage { target = nextTarget.GetComponent<CharacterBody>(), swingIndex = swingIndex, isFirst = false }); } else { ((EntityState)this).outer.SetNextStateToMain(); ((EntityState)this).characterMotor.velocity = Vector3.zero; } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } public class Riposte : BaseSkillState { public float charge; public static float radius = 5f; public static float perfectDamageCoefficient = 24f; public static float maxDamageCoefficient = 18f; public static float minDamageCoefficient = 12f; private float damageCoefficient; public static Vector3 force = Vector3.up * 2000f; public static float procCoefficient = 1f; private float duration = 0.67f; private bool hasFired; private Ray aimRay; private float fireTime; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); duration /= ((BaseState)this).attackSpeedStat; if (charge >= 1f) { damageCoefficient = perfectDamageCoefficient; } else { damageCoefficient = Mathf.Lerp(maxDamageCoefficient, minDamageCoefficient, charge); } fireTime = 0.74626863f * duration; ((BaseState)this).StartAimMode(duration, false); ((EntityState)this).GetModelAnimator(); aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("FullBody, Override", "FAir", "Slash.playbackRate", 1f, 0f); } private void Fire() { //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_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_007e: 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_008f: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; Util.PlaySound("FireFireball", ((EntityState)this).gameObject); Ray val = ((BaseState)this).GetAimRay(); Vector3 point = ((Ray)(ref val)).GetPoint(3f); point.y = 0f; if (new BlastAttack { attacker = ((EntityState)this).gameObject, procChainMask = default(ProcChainMask), impactEffect = (EffectIndex)(-1), losType = (LoSType)1, damageColorIndex = (DamageColorIndex)0, damageType = new DamageTypeCombo(DamageTypeCombo.op_Implicit((DamageType)0), (DamageTypeExtended)0, (DamageSource)2), procCoefficient = procCoefficient, bonusForce = force, baseForce = 0f, baseDamage = damageCoefficient * ((BaseState)this).damageStat, falloffModel = (FalloffModel)0, radius = radius, position = point, attackerFiltering = (AttackerFiltering)2, teamIndex = ((BaseState)this).GetTeam(), inflictor = ((EntityState)this).gameObject, crit = ((BaseState)this).RollCrit() }.Fire().hitCount > 0) { OnHitEnemyAuthority(); Util.PlaySound("SwordHit2", ((EntityState)this).gameObject); } } } private void OnHitEnemyAuthority() { } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((EntityState)this).fixedAge = ((EntityState)this).fixedAge + Time.fixedDeltaTime; if (((EntityState)this).fixedAge >= fireTime) { Fire(); } if (((EntityState)this).fixedAge >= duration && Util.HasEffectiveAuthority(((EntityState)this).gameObject)) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class SpinDash : BaseSkillState { public Vector3 launchTarget; public bool launchVectorOverride; public bool cancelledFromSprinting; public bool earlyExitJump; public string critHitSoundString; private List<HealthComponent> hits; private int numResets = 2; private int timesReset = 0; protected float attackResetInterval; private float attackResetStopwatch; public int swingIndex; protected string hitboxName = "SpinLunge"; protected float damageCoefficient = 5.4f; protected float procCoefficient = 0.75f; protected float pushForce = 3000f; protected float baseDuration = 0.55f; protected float attackStartTime = 0.15f; protected float attackEndTime = 0.9f; protected float hitStopDuration = 0.05f; protected float attackRecoil = 2f; protected float hitHopVelocity = 0f; protected bool cancelled = false; protected string swingSoundString = ""; protected string hitSoundString = ""; private float speedCoefficient = 35f; private bool hitGround; protected string muzzleString = "eDashAttack"; private Transform muzzleTransform; protected GameObject swingEffectPrefab; private GameObject swingEffect; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound; public float duration; private bool hasFired; private float hitPauseTimer; protected OverlapAttack attack; protected bool inHitPause; protected float stopwatch; protected Animator animator; private Vector3 moveVector; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; private DancerComponent dancerComponent; private bool reset = true; protected float anim = 1f; protected Vector3 slideVector; protected Quaternion slideRotation; public override void OnEnter() { //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_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) ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); if (Object.op_Implicit((Object)(object)((EntityState)this).modelLocator)) { ChildLocator component = ((Component)((EntityState)this).modelLocator.modelTransform).GetComponent<ChildLocator>(); if (Object.op_Implicit((Object)(object)component)) { muzzleTransform = component.FindChild("eDashAttack"); } } dancerComponent = ((Component)((Entity