Decompiled source of RidleyBeta v1.13.3
Ridley.dll
Decompiled a year 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.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using EmotesAPI; using EntityStates; using EntityStates.Commando; using EntityStates.LemurianMonster; using EntityStates.Merc; using HG.BlendableTypes; using KinematicCharacterController; using MonoMod.RuntimeDetour; using On.RoR2; using R2API; using R2API.Utils; using Ridley.Modules; using Ridley.Modules.Components; using Ridley.Modules.Survivors; using Ridley.SkillStates; using Ridley.SkillStates.Emotes; using RoR2; using RoR2.Audio; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; 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.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Ridley")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Ridley")] [assembly: AssemblyTitle("Ridley")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] public class RidleyComponent : MonoBehaviour { private float leftFootPositionWeight; private float leftFootRotationWeight; private Transform leftFootObj; private Animator animator; private ModelLocator modelLocator; private Transform modelTransform; public Transform weaponBase; private Transform weaponExtender; public Transform[] tailBones; private bool overrideRotation; private Vector3 weaponPointOverride; public Vector3 vector = new Vector3(90f, 0f, 0f); private void Start() { tailBones = (Transform[])(object)new Transform[6]; modelLocator = ((Component)this).GetComponent<ModelLocator>(); modelTransform = modelLocator.modelTransform; GetTransforms(); } private void GetTransforms() { if (Object.op_Implicit((Object)(object)modelTransform)) { Transform val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3"); if (Object.op_Implicit((Object)(object)val)) { tailBones[0] = val; } val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3/Tail4"); if (Object.op_Implicit((Object)(object)val)) { tailBones[1] = val; } val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3/Tail4/Tail5"); if (Object.op_Implicit((Object)(object)val)) { tailBones[2] = val; } val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3/Tail4/Tail5/Tail6"); if (Object.op_Implicit((Object)(object)val)) { tailBones[3] = val; } val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3/Tail4/Tail5/Tail6/Tail7"); if (Object.op_Implicit((Object)(object)val)) { tailBones[4] = val; } val = modelTransform.Find("model-armature/Trans/Rot/Hip/Tail/Tail1/Tail2/Tail3/Tail4/Tail5/Tail6/Tail7/Tail8"); if (Object.op_Implicit((Object)(object)val)) { tailBones[5] = val; } } } public void RotationOverride(Vector3 pointToHit) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_00bb: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: 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_0055: 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_006f: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) Vector3 position = tailBones[0].position; Vector3 val = pointToHit - position; Vector3 normalized = ((Vector3)(ref val)).normalized; float num = ((Vector3)(ref val)).magnitude / (float)tailBones.Length; for (int i = 0; i < tailBones.Length; i++) { if (Object.op_Implicit((Object)(object)tailBones[i])) { tailBones[i].position = normalized * (num * (float)i); tailBones[i].forward = normalized; tailBones[i].localScale = new Vector3(3f, 3f, 3f); } } tailBones[5].position = pointToHit; tailBones[5].localScale = new Vector3(8f, 3f, 8f); overrideRotation = true; weaponPointOverride = pointToHit; } public void StopRotationOverride() { //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_002f: Unknown result type (might be due to invalid IL or missing references) for (int i = 0; i < tailBones.Length; i++) { if (Object.op_Implicit((Object)(object)tailBones[i])) { tailBones[i].localScale = new Vector3(1f, 1f, 1f); } } overrideRotation = false; weaponPointOverride = Vector3.zero; } private void LateUpdate() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_0084: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) if (!overrideRotation) { return; } Vector3 position = tailBones[0].position; Vector3 val = weaponPointOverride - position; Vector3 normalized = ((Vector3)(ref val)).normalized; float num = ((Vector3)(ref val)).magnitude / (float)tailBones.Length; for (int i = 0; i < tailBones.Length; i++) { if (Object.op_Implicit((Object)(object)tailBones[i])) { tailBones[i].position = normalized * (num * (float)i); tailBones[i].forward = normalized; tailBones[i].localScale = new Vector3(3f, 3f, 3f); } } tailBones[5].position = weaponPointOverride; tailBones[5].localScale = new Vector3(8f, 3f, 8f); } } 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; } 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 Ridley { [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.ndp.RidleyBeta", "RidleyBeta", "0.0.1")] [R2APISubmoduleDependency(new string[] { "PrefabAPI", "LanguageAPI", "SoundAPI" })] public class RidleyPlugin : BaseUnityPlugin { public const string MODUID = "com.ndp.RidleyBeta"; public const string MODNAME = "RidleyBeta"; public const string MODVERSION = "0.0.1"; public const string developerPrefix = "NDP"; public static RidleyPlugin instance; private void Awake() { instance = this; Assets.PopulateAssets(); Config.ReadConfig(); States.RegisterStates(); Buffs.RegisterBuffs(); Projectiles.RegisterProjectiles(); Tokens.AddTokens(); ItemDisplays.PopulateDisplays(); CameraParams.InitializeParams(); Ridley.Modules.Survivors.Ridley.CreateCharacter(); new ContentPacks().Initialize(); if (EmoteAPI.enabled) { EmoteAPI.SetupSkeleton(); } Hook(); } private void Start() { Ridley.Modules.Survivors.Ridley.SetItemDisplays(); } private void Hook() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); } public static List<HealthComponent> EnemyHealthComponentsFromRaycastHits(RaycastHit[] raycastHits, GameObject attacker) { List<Collider> list = new List<Collider>(); for (int i = 0; i < raycastHits.Length; i++) { if (Object.op_Implicit((Object)(object)((RaycastHit)(ref raycastHits[i])).collider)) { list.Add(((RaycastHit)(ref raycastHits[i])).collider); } } return EnemyHealthComponentsFromColliders(list.ToArray(), attacker); } public static List<HealthComponent> EnemyHealthComponentsFromColliders(Collider[] colliders, GameObject attacker) { //IL_0049: 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) List<HealthComponent> list = new List<HealthComponent>(); for (int i = 0; i < colliders.Length; i++) { HurtBox component = ((Component)colliders[i]).GetComponent<HurtBox>(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { TeamComponent component2 = ((Component)healthComponent).GetComponent<TeamComponent>(); TeamComponent component3 = attacker.GetComponent<TeamComponent>(); if (component2.teamIndex != component3.teamIndex && !list.Contains(healthComponent)) { list.Add(healthComponent); } } } return list; } 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Invalid comparison between Unknown and I4 //IL_00bf: 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) if (damageInfo != null && Object.op_Implicit((Object)(object)damageInfo.attacker) && Object.op_Implicit((Object)(object)damageInfo.attacker.GetComponent<CharacterBody>()) && ((Component)self).GetComponent<CharacterBody>().baseNameToken == "NDP_RIDLEY_BODY_NAME" && NetworkServer.active) { float armor = self.body.armor; if (self.combinedHealthFraction < 0.5f && (damageInfo.damageType & 0x4000000) != 67108864) { damageInfo.damage -= armor; if (damageInfo.damage < 0f) { self.Heal(Mathf.Abs(damageInfo.damage), default(ProcChainMask), true); damageInfo.damage = 0f; } } else { damageInfo.damage = Mathf.Max(1f, damageInfo.damage - armor); } } orig.Invoke(self, damageInfo); } } } namespace Ridley.SkillStates { public class BaseM1 : BaseSkillState { public Vector3 launchTarget; public bool launchVectorOverride; public bool cancelledFromSprinting; public bool earlyExitJump; public string critHitSoundString; private bool crit; private List<HealthComponent> hits; protected float anim = 1f; private bool a = false; protected Vector3 slideVector; protected Quaternion slideRotation; protected bool isDash = false; protected bool isCombo = false; protected bool isMultiHit = false; public bool isAerial = false; protected bool isSus = false; protected bool isFlinch = false; protected int stackGainAmount = 8; protected float attackResetInterval; private float attackResetStopwatch; protected AnimationCurve dashSpeedCurve; public int swingIndex; protected string animString = "Jab1"; protected string hitboxName = "Jab"; protected DamageType damageType = (DamageType)0; protected float damageCoefficient = 2.5f; protected float procCoefficient = 1f; protected float pushForce = 300f; protected Vector3 bonusForce = Vector3.zero; protected float baseDuration = 0.3f; protected float attackStartTime = 0f; protected float attackEndTime = 0.4f; protected float hitStopDuration = 0.06f; protected float attackRecoil = 2f; protected float hitHopVelocity = 2f; protected bool cancelled = false; protected string swingSoundString = ""; protected string hitSoundString = ""; protected string muzzleString = "SwingCenter"; protected GameObject swingEffectPrefab; protected GameObject hitEffectPrefab; protected NetworkSoundEventIndex impactSound; protected float earlyExitTime = 0.075f; public float duration; private bool hasFired; private float hitPauseTimer; protected OverlapAttack attack; protected bool inHitPause; private bool hasHopped; protected float stopwatch; protected Animator animator; private HitStopCachedState hitStopCachedState; private Vector3 storedVelocity; public override void OnEnter() { ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); AttackSetup(); StartAttack(); } private void AttackSetup() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_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_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0163: Unknown result type (might be due to invalid IL or missing references) hits = new List<HealthComponent>(); duration = baseDuration / ((BaseState)this).attackSpeedStat; attackResetInterval /= ((BaseState)this).attackSpeedStat; HitBoxGroup hitBoxGroup = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents<HitBoxGroup>(), (HitBoxGroup element) => element.groupName == hitboxName); } attack = new OverlapAttack(); attack.damageType = damageType; attack.attacker = ((EntityState)this).gameObject; attack.inflictor = ((EntityState)this).gameObject; attack.teamIndex = ((BaseState)this).GetTeam(); attack.damage = damageCoefficient * ((BaseState)this).damageStat; attack.procCoefficient = procCoefficient; attack.hitEffectPrefab = hitEffectPrefab; if (launchVectorOverride) { attack.forceVector = Vector3.zero; attack.pushAwayForce = 0f; } else { attack.forceVector = bonusForce; attack.pushAwayForce = pushForce; } attack.hitBoxGroup = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); attack.impactSound = impactSound; } private void StartAttack() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); animator.SetBool("attacking", true); ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; ((EntityState)this).PlayCrossfade("FullBody, Override", animString, "Slash.playbackRate", duration * anim, 0.05f); if (!isAerial) { ((EntityState)this).inputBank.moveVector = Vector3.zero; if (isDash) { ((EntityState)this).characterMotor.moveDirection = Vector3.zero; } else { ((EntityState)this).characterMotor.moveDirection = Vector3.zero; } } if (isDash && Util.HasEffectiveAuthority(((EntityState)this).gameObject)) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.2f; slideVector = ((EntityState)this).inputBank.aimDirection; slideVector.y = 0f; } } private void StartAttackServer() { //IL_0056: 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_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active) { ((EntityState)this).characterBody.SetAimTimer(duration); Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); animator.SetBool("attacking", true); ((EntityState)this).characterDirection.forward = ((EntityState)this).inputBank.aimDirection; if (!isAerial) { ((EntityState)this).PlayCrossfade("FullBody, Override", animString, "Slash.playbackRate", duration * anim, 0.05f); ((EntityState)this).inputBank.moveVector = Vector3.zero; ((EntityState)this).characterMotor.moveDirection = Vector3.zero; } if (isDash) { CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity *= 0.2f; slideVector = ((EntityState)this).inputBank.aimDirection; slideVector.y = 0f; } } } public virtual void OnHitEnemyAuthority(List<HurtBox> list) { //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_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) PlayHitSound(); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Slash.playbackRate"); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } public virtual void OnHitEnemyServer() { //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_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) PlayHitSound(); if (!hasHopped) { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded && hitHopVelocity > 0f) { ((BaseState)this).SmallHop(((EntityState)this).characterMotor, hitHopVelocity); } hasHopped = true; } if (!inHitPause && hitStopDuration > 0f) { storedVelocity = ((EntityState)this).characterMotor.velocity; hitStopCachedState = ((BaseState)this).CreateHitStopCachedState(((EntityState)this).characterMotor, animator, "Slash.playbackRate"); hitPauseTimer = hitStopDuration / ((BaseState)this).attackSpeedStat; inHitPause = true; } } private void PlaySwingEffect() { EffectManager.SimpleMuzzleFlash(swingEffectPrefab, ((EntityState)this).gameObject, muzzleString, true); } public virtual void PlayHitSound() { if (attack.isCrit && critHitSoundString != "") { Util.PlaySound(critHitSoundString, ((EntityState)this).gameObject); } else { Util.PlaySound(hitSoundString, ((EntityState)this).gameObject); } } private void FireAttackServer() { List<HurtBox> list = new List<HurtBox>(); if (!NetworkServer.active) { return; } if (!hasFired) { hasFired = true; PlaySwingEffect(); Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } if (!attack.Fire(list)) { return; } OnHitEnemyServer(); foreach (HurtBox item in list) { HealthComponent healthComponent = item.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent)) { if (isSus && Object.op_Implicit((Object)(object)healthComponent.body) && Object.op_Implicit((Object)(object)healthComponent.body.characterMotor)) { healthComponent.body.characterMotor.velocity.y = 0f; } if (isFlinch && Object.op_Implicit((Object)(object)healthComponent.body)) { ForceFlinch(healthComponent.body); } if ((launchVectorOverride && !healthComponent.body.isChampion) || (((Object)((Component)healthComponent).gameObject).name.Contains("Brother") && ((Object)((Component)healthComponent).gameObject).name.Contains("Body"))) { LaunchEnemy(healthComponent.body); } } } } private void FireAttack() { //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: 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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0172: 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) if (!hasFired) { hasFired = true; if (Util.HasEffectiveAuthority(((EntityState)this).gameObject)) { PlaySwingEffect(); Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); ((BaseState)this).AddRecoil(-1f * attackRecoil, -2f * attackRecoil, -0.5f * attackRecoil, 0.5f * attackRecoil); } } List<HurtBox> list = new List<HurtBox>(); if (Util.HasEffectiveAuthority(((EntityState)this).gameObject) && attack.Fire(list)) { OnHitEnemyAuthority(list); } if (!NetworkServer.active) { return; } if (!a) { a = true; } Transform val = ((BaseState)this).FindModelChild(hitboxName); Vector3 position = val.position; Vector3 val2 = val.localScale * 0.5f; Quaternion rotation = val.rotation; Collider[] array = Physics.OverlapBox(position, val2, rotation, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent<HurtBox>(); if (!Object.op_Implicit((Object)(object)component)) { continue; } HealthComponent healthComponent = component.healthComponent; if (!Object.op_Implicit((Object)(object)healthComponent)) { continue; } TeamComponent component2 = ((Component)healthComponent).GetComponent<TeamComponent>(); if (component2.teamIndex == ((EntityState)this).teamComponent.teamIndex || hits.Contains(healthComponent)) { continue; } hits.Add(healthComponent); HealthComponent val3 = healthComponent; if (Object.op_Implicit((Object)(object)val3)) { if (isSus && Object.op_Implicit((Object)(object)val3.body) && Object.op_Implicit((Object)(object)val3.body.characterMotor)) { val3.body.characterMotor.velocity.y = 0f; } if (isFlinch && Object.op_Implicit((Object)(object)val3.body)) { ForceFlinch(val3.body); } if ((launchVectorOverride && !val3.body.isChampion) || (((Object)((Component)val3).gameObject).name.Contains("Brother") && ((Object)((Component)val3).gameObject).name.Contains("Body"))) { LaunchEnemy(val3.body); } } } } public virtual void LaunchEnemy(CharacterBody body) { } protected virtual void ForceFlinch(CharacterBody body) { SetStateOnHurt component = ((Component)body.healthComponent).GetComponent<SetStateOnHurt>(); if (Object.op_Implicit((Object)(object)component) && component.canBeHitStunned && Util.HasEffectiveAuthority(((Component)body).gameObject)) { component.SetPain(); } } public override void FixedUpdate() { //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: 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_0234: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0281: 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) ((EntityState)this).FixedUpdate(); bool flag = true; if ((cancelledFromSprinting && (((EntityState)this).characterBody.isSprinting || ((ButtonState)(ref ((EntityState)this).inputBank.sprint)).justPressed)) || (earlyExitJump && ((ButtonState)(ref ((EntityState)this).inputBank.jump)).justPressed && stopwatch >= duration * attackEndTime)) { ((EntityState)this).outer.SetNextStateToMain(); cancelled = true; return; } hitPauseTimer -= Time.fixedDeltaTime; if (hitPauseTimer <= 0f && inHitPause) { ((BaseState)this).ConsumeHitStopCachedState(hitStopCachedState, ((EntityState)this).characterMotor, animator); inHitPause = false; ((EntityState)this).characterMotor.velocity = storedVelocity; } if (!inHitPause) { if (isMultiHit) { attackResetStopwatch += Time.fixedDeltaTime; } stopwatch += Time.fixedDeltaTime; } else { if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; } if (Object.op_Implicit((Object)(object)animator)) { animator.SetFloat("Slash.playbackRate", 0f); } } if (!isAerial) { ((EntityState)this).inputBank.moveVector = Vector3.zero; if (isDash) { ((EntityState)this).characterMotor.moveDirection = Vector3.zero; } else { ((EntityState)this).characterMotor.moveDirection = Vector3.zero; } } if (isDash && Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !inHitPause) { float num = dashSpeedCurve.Evaluate(stopwatch / duration); float num2 = ((!hasHopped) ? 1f : 0.4f); ((EntityState)this).characterDirection.forward = slideVector; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += 0.6f * num2 * (slideRotation * (num * ((BaseState)this).moveSpeedStat * slideVector * Time.fixedDeltaTime)); ((EntityState)this).characterMotor.velocity.y = 0f; } if (stopwatch >= duration * attackStartTime && stopwatch <= duration * attackEndTime) { if (isMultiHit && attackResetStopwatch >= attackResetInterval) { Util.PlayAttackSpeedSound(swingSoundString, ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); attack.ResetIgnoredHealthComponents(); attackResetStopwatch = 0f; } FireAttack(); } if (stopwatch >= duration - earlyExitTime && isCombo) { EntityStateMachine component = ((EntityState)this).GetComponent<EntityStateMachine>(); if (Object.op_Implicit((Object)(object)component) && component.state is RidleyMain && ((EntityState)this).inputBank.skill1.down && swingIndex != 2) { if (!hasFired) { FireAttack(); } SetNextState(); return; } } if (stopwatch >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } protected virtual void SetNextState() { switch (swingIndex) { case 0: { int num = 1; ((EntityState)this).outer.SetNextState((EntityState)(object)new Jab2 { swingIndex = num }); break; } case 1: { int num = 2; ((EntityState)this).outer.SetNextState((EntityState)(object)new Jab3 { swingIndex = num }); break; } } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public override void OnExit() { if (cancelled && cancelled) { ((EntityState)this).PlayAnimation("FullBody, Override", "BufferEmpty"); } animator.SetFloat("Slash.playbackRate", 1f); ((EntityState)this).OnExit(); } } public class RidleyBaseState : BaseSkillState { private bool skill2InputReceived; public override void OnEnter() { ((BaseState)this).OnEnter(); } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); GatherInputs(); PerformInputs(); } private void GatherInputs() { skill2InputReceived = ((EntityState)this).inputBank.skill2.down; } private void PerformInputs() { HandleSkill(((EntityState)this).skillLocator.secondary, ref skill2InputReceived, ((ButtonState)(ref ((EntityState)this).inputBank.skill2)).justPressed); } private void HandleSkill(GenericSkill skillSlot, ref bool inputReceived, bool justPressed) { bool flag = inputReceived; inputReceived = false; if (Object.op_Implicit((Object)(object)skillSlot) && (justPressed | inputReceived)) { skillSlot.ExecuteIfReady(); } } } public class RidleyMain : GenericCharacterMain { private GameObject sprintEffect1; private GameObject sprintEffect2; private Transform footL; private Transform footR; private EntityStateMachine weapon; private float baseAcceleration; private float sprintAcceleration = 300f; public LocalUser localUser; private bool bufferJump = true; private float landingTime = 0.2f; private uint sprintSoundID; private bool sprintSoundOn; public override void OnEnter() { localUser = LocalUserManager.readOnlyLocalUsersList[0]; footL = ((BaseState)this).FindModelChild("SprintFootL"); footR = ((BaseState)this).FindModelChild("SprintFootR"); baseAcceleration = ((EntityState)this).characterBody.acceleration; weapon = ((EntityState)this).gameObject.GetComponents<EntityStateMachine>()[1]; ((GenericCharacterMain)this).OnEnter(); } public override void FixedUpdate() { //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) ((GenericCharacterMain)this).FixedUpdate(); if (((EntityState)this).characterBody.isSprinting && !sprintSoundOn && ((BaseState)this).isGrounded) { sprintSoundOn = true; ((EntityState)this).characterBody.acceleration = sprintAcceleration; AkSoundEngine.StopPlayingID(sprintSoundID); sprintSoundID = Util.PlaySound("RidleySprintStart", ((EntityState)this).gameObject); } if ((!((EntityState)this).characterBody.isSprinting || !((BaseState)this).isGrounded) && sprintSoundOn) { ((EntityState)this).characterBody.acceleration = baseAcceleration; sprintSoundOn = false; AkSoundEngine.StopPlayingID(sprintSoundID); } if (Util.HasEffectiveAuthority(((EntityState)this).gameObject) && ((EntityState)this).characterMotor.isGrounded && !localUser.isUIFocused) { if (Input.GetKeyDown(Config.emote1Keybind.Value)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new Emote1(), (InterruptPriority)0); } else if (Input.GetKeyDown(Config.emote2Keybind.Value)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new Emote2(), (InterruptPriority)0); } else if (Input.GetKeyDown(Config.standKeybind.Value)) { ((EntityState)this).outer.SetInterruptState((EntityState)(object)new Stand(), (InterruptPriority)0); } } } public override void OnExit() { ((EntityState)this).characterBody.acceleration = baseAcceleration; AkSoundEngine.StopPlayingID(sprintSoundID); ((GenericCharacterMain)this).OnExit(); } public override void ProcessJump() { //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_022f: Unknown result type (might be due to invalid IL or missing references) //IL_0240: Expected O, but got Unknown //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_0292: Expected O, but got Unknown //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) //IL_02b3: Unknown result type (might be due to invalid IL or missing references) //IL_02be: Unknown result type (might be due to invalid IL or missing references) //IL_02c5: Unknown result type (might be due to invalid IL or missing references) //IL_02ca: Unknown result type (might be due to invalid IL or missing references) //IL_02cf: Unknown result type (might be due to invalid IL or missing references) //IL_02da: Expected O, but got Unknown if (!((BaseCharacterMain)this).hasCharacterMotor || !base.jumpInputReceived || !Object.op_Implicit((Object)(object)((EntityState)this).characterBody) || ((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.maxJumpCount) { return; } bool flag = false; bool flag2 = false; int itemCount = ((EntityState)this).characterBody.inventory.GetItemCount(Items.JumpBoost); float num = 1f; float num2 = 1f; if (((EntityState)this).characterMotor.jumpCount >= ((EntityState)this).characterBody.baseJumpCount) { flag = true; num = 1.5f; num2 = 1.5f; } else if ((float)itemCount > 0f && ((EntityState)this).characterBody.isSprinting) { float num3 = ((EntityState)this).characterBody.acceleration * ((EntityState)this).characterMotor.airControl; if (((EntityState)this).characterBody.moveSpeed > 0f && num3 > 0f) { flag2 = true; float num4 = Mathf.Sqrt(10f * (float)itemCount / num3); float num5 = ((EntityState)this).characterBody.moveSpeed / num3; num = (num4 + num5) / num5; } } GenericCharacterMain.ApplyJumpVelocity(((EntityState)this).characterMotor, ((EntityState)this).characterBody, num, num2, false); if (((BaseCharacterMain)this).hasModelAnimator) { int layerIndex = ((BaseCharacterMain)this).modelAnimator.GetLayerIndex("Body"); if (layerIndex >= 0) { if (((EntityState)this).characterMotor.jumpCount == 0 || ((EntityState)this).characterBody.baseJumpCount == 1) { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("Jump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); Util.PlaySound("RidleyJump", ((EntityState)this).gameObject); } else { ((BaseCharacterMain)this).modelAnimator.CrossFadeInFixedTime("BonusJump", ((BaseCharacterMain)this).smoothingParameters.intoJumpTransitionTime, layerIndex); Util.PlaySound("RidleyJumpAir", ((EntityState)this).gameObject); } } } if (flag) { EffectManager.SpawnEffect(Resources.Load<GameObject>("Prefabs/Effects/FeatherEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition }, true); } else if (((EntityState)this).characterMotor.jumpCount > 0) { EffectManager.SpawnEffect(Resources.Load<GameObject>("Prefabs/Effects/ImpactEffects/CharacterLandImpact"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, scale = ((EntityState)this).characterBody.radius }, true); } if (flag2) { EffectManager.SpawnEffect(Resources.Load<GameObject>("Prefabs/Effects/BoostJumpEffect"), new EffectData { origin = ((EntityState)this).characterBody.footPosition, rotation = Util.QuaternionSafeLookRotation(((EntityState)this).characterMotor.velocity) }, true); } CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.jumpCount++; } } public class ChargeFireballs : BaseSkillState { private float duration; private Animator animator; private ChildLocator childLocator; private protected GameObject chargeEffectInstance; [SerializeField] public GameObject chargeEffectPrefab; [SerializeField] public string chargeSoundString; [SerializeField] public float baseDuration = 0.67f; [SerializeField] public float minBloomRadius; [SerializeField] public float maxBloomRadius; [SerializeField] public GameObject crosshairOverridePrefab; [SerializeField] public float minChargeDuration = 0.67f; private GameObject defaultCrosshairPrefab; private uint loopSoundInstanceId; public override void OnEnter() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; animator = ((EntityState)this).GetModelAnimator(); childLocator = ((EntityState)this).GetModelChildLocator(); if (Object.op_Implicit((Object)(object)childLocator)) { Transform val = childLocator.FindChild("Mouth") ?? ((EntityState)this).characterBody.coreTransform; if (Object.op_Implicit((Object)(object)val)) { chargeEffectInstance = Object.Instantiate<GameObject>(ChargeFireball.chargeVfxPrefab, val.position, val.rotation); chargeEffectInstance.transform.parent = val; ScaleParticleSystemDuration component = chargeEffectInstance.GetComponent<ScaleParticleSystemDuration>(); ObjectScaleCurve component2 = chargeEffectInstance.GetComponent<ObjectScaleCurve>(); if (Object.op_Implicit((Object)(object)component)) { component.newDuration = duration; } if (Object.op_Implicit((Object)(object)component2)) { component2.timeMax = duration; } } } PlayChargeAnimation(); loopSoundInstanceId = Util.PlayAttackSpeedSound("FireballCharge", ((EntityState)this).gameObject, ((BaseState)this).attackSpeedStat); } public override void OnExit() { AkSoundEngine.StopPlayingID(loopSoundInstanceId); ((EntityState)this).PlayAnimation("Head, Overide", "BufferEmpty", "Slash.playbackRate", 1f); EntityState.Destroy((Object)(object)chargeEffectInstance); ((EntityState)this).OnExit(); } protected float CalcCharge() { return Mathf.Clamp01(((EntityState)this).fixedAge / duration); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); float charge = CalcCharge(); if (Util.HasEffectiveAuthority(((EntityState)this).gameObject) && ((!((BaseSkillState)this).IsKeyDownAuthority() && ((EntityState)this).fixedAge >= minChargeDuration) || ((EntityState)this).fixedAge >= duration)) { FireFireballs fireFireballs = new FireFireballs(); fireFireballs.charge = charge; ((EntityState)this).outer.SetNextState((EntityState)(object)fireFireballs); } } public override void Update() { ((EntityState)this).Update(); ((EntityState)this).characterBody.SetSpreadBloom(Util.Remap(CalcCharge(), 0f, 1f, minBloomRadius, maxBloomRadius), true); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } protected virtual void PlayChargeAnimation() { ((EntityState)this).PlayAnimation("Head, Override", "NSpecStart", "Slash.playbackRate", 0.225f); } } public class DragLaunch : RidleyBaseState { public float exitSpeed; public Vector3 lastSafeFootPosition; public List<GrabController> grabController; private float stopwatch; private float duration = 0.5f; public Vector3 direction; public override void OnEnter() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); RaycastHit val = default(RaycastHit); if (!Physics.Raycast(new Ray(((EntityState)this).characterBody.footPosition, Vector3.down), ref val, 100f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)2)) { ((EntityState)this).transform.position = lastSafeFootPosition + Vector3.up * 5f; } Util.PlaySound("DragLaunch", ((EntityState)this).gameObject); Util.PlaySound("DragLaunchVoice", ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("FullBody, Override", "DragEnd", "Slash.playbackRate", 0.4f); direction = ((EntityState)this).characterMotor.moveDirection; } public override void FixedUpdate() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) base.FixedUpdate(); ((EntityState)this).characterDirection.forward = direction; ((EntityState)this).characterMotor.velocity = Vector3.zero; ((EntityState)this).characterMotor.moveDirection = Vector3.zero; if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } } public class FireFireballs : BaseSkillState { public float charge; public static float damageCoefficient = 2f; public static float force = 200f; private float duration = 0.5f; private float fireInterval = 0.125f; private float fireStopwatch = 0.1f; private int numFireballs; private int ballsFired; private Ray aimRay; public override void OnEnter() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration /= ((BaseState)this).attackSpeedStat; numFireballs = (int)(charge / 0.5f) + 1; fireInterval /= ((BaseState)this).attackSpeedStat; ((EntityState)this).GetModelAnimator(); aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("Head, Override", "NSpecShoot", "Slash.playbackRate", 1f); } private void Fire() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) ballsFired++; Util.PlaySound("FireFireball", ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)FireFireball.effectPrefab)) { EffectManager.SimpleMuzzleFlash(FireFireball.effectPrefab, ((EntityState)this).gameObject, "Mouth", false); } Projectiles.ridleyFireballPrefab.GetComponent<ProjectileExplosion>().explosionEffect = CommonAssets.igniteOnKillExplosionEffectPrefab; if (Util.HasEffectiveAuthority(((EntityState)this).gameObject)) { ProjectileManager.instance.FireProjectile(Projectiles.ridleyFireballPrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, ((BaseState)this).damageStat * damageCoefficient, force, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, -1f); } } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); fireStopwatch += Time.fixedDeltaTime; if (fireStopwatch >= fireInterval && ballsFired < numFireballs) { fireStopwatch = 0f; 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)1; } } public class GrabController : MonoBehaviour { private GameObject extraCollider; private GameObject extraCollider2; private int extraLayer; private int extraLayer2; private bool modelLocatorStartedDisabled; public Transform pivotTransform; public CharacterBody body; public CharacterMotor motor; private CharacterDirection direction; private ModelLocator modelLocator; private Transform modelTransform; private Quaternion originalRotation; private Vector3 lastGroundPosition; private void Awake() { //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) body = ((Component)this).GetComponent<CharacterBody>(); motor = ((Component)this).GetComponent<CharacterMotor>(); direction = ((Component)this).GetComponent<CharacterDirection>(); modelLocator = ((Component)this).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)modelLocator)) { Transform val = ((Component)this).transform.Find("Model Base/mdlGreaterWisp/GreaterWispArmature/HurtBox"); if (Object.op_Implicit((Object)(object)val)) { extraLayer = ((Component)val).gameObject.layer; ((Component)val).gameObject.layer = LayerIndex.noCollision.intVal; } val = ((Component)this).transform.Find("Model Base/mdlGreaterWisp/GreaterWispArmature/ROOT/Mask/StandableSurfacePosition/StandableSurface"); if (Object.op_Implicit((Object)(object)val)) { extraLayer2 = ((Component)val).gameObject.layer; ((Component)val).gameObject.layer = LayerIndex.noCollision.intVal; } } ((Component)this).gameObject.layer = LayerIndex.noCollision.intVal; if (Object.op_Implicit((Object)(object)direction)) { ((Behaviour)direction).enabled = false; } if (Object.op_Implicit((Object)(object)modelLocator)) { if (!((Behaviour)modelLocator).enabled) { modelLocatorStartedDisabled = true; } if (Object.op_Implicit((Object)(object)modelLocator.modelTransform)) { modelTransform = modelLocator.modelTransform; originalRotation = modelTransform.rotation; ((Behaviour)modelLocator).enabled = false; } } } private void FixedUpdate() { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_004e: 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_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: 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_00b6: 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_0116: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)motor)) { motor.disableAirControlUntilCollision = true; motor.velocity = Vector3.zero; motor.rootMotion = Vector3.zero; ((BaseCharacterController)motor).Motor.SetPosition(pivotTransform.position, true); } if (Object.op_Implicit((Object)(object)pivotTransform)) { ((Component)this).transform.position = pivotTransform.position; } if (Object.op_Implicit((Object)(object)modelTransform)) { modelTransform.position = pivotTransform.position; modelTransform.rotation = pivotTransform.rotation; } RaycastHit val = default(RaycastHit); if (Physics.Raycast(new Ray(((Component)this).transform.position + Vector3.up * 2f, Vector3.down), ref val, 6f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)2)) { lastGroundPosition = ((RaycastHit)(ref val)).point; } } public void Launch(Vector3 launchVector) { //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0135: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Unknown result type (might be due to invalid IL or missing references) //IL_0171: 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_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Unknown result type (might be due to invalid IL or missing references) //IL_021c: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_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_0248: 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_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_0263: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0270: Unknown result type (might be due to invalid IL or missing references) //IL_0271: Unknown result type (might be due to invalid IL or missing references) //IL_0276: 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_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Expected O, but got Unknown if (Object.op_Implicit((Object)(object)modelLocator) && !modelLocatorStartedDisabled) { ((Behaviour)modelLocator).enabled = true; } if (Object.op_Implicit((Object)(object)modelTransform)) { modelTransform.rotation = originalRotation; } if (Object.op_Implicit((Object)(object)direction)) { ((Behaviour)direction).enabled = true; } if (Object.op_Implicit((Object)(object)body.healthComponent) && body.healthComponent.alive) { if (Object.op_Implicit((Object)(object)modelLocator)) { Transform val = ((Component)this).transform.Find("Model Base/mdlGreaterWisp/GreaterWispArmature/HurtBox"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = extraLayer; } val = ((Component)this).transform.Find("Model Base/mdlGreaterWisp/GreaterWispArmature/ROOT/Mask/StandableSurfacePosition/StandableSurface"); if (Object.op_Implicit((Object)(object)val)) { ((Component)val).gameObject.layer = extraLayer2; } } ((Component)this).gameObject.layer = LayerIndex.defaultLayer.intVal; } RaycastHit val2 = default(RaycastHit); if (!Physics.Raycast(new Ray(body.footPosition, Vector3.down), ref val2, 15f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)2)) { ((Component)this).transform.position = lastGroundPosition; } if (Object.op_Implicit((Object)(object)motor)) { float num = 0.25f; float num2 = Mathf.Max(140f, motor.mass); num = num2 / 140f; launchVector *= num; motor.ApplyForce(launchVector, false, false); } else { float num3 = 0.25f; if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num4 = Mathf.Max(200f, body.rigidbody.mass); num3 = num4 / 200f; } launchVector *= num3; DamageInfo val3 = new DamageInfo { position = body.transform.position, attacker = null, inflictor = null, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, crit = false, force = launchVector, procChainMask = default(ProcChainMask), procCoefficient = 0f }; body.healthComponent.TakeDamageForce(val3, false, false); } Object.Destroy((Object)(object)this); } public void Release() { //IL_0044: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)modelLocator) && !modelLocatorStartedDisabled) { ((Behaviour)modelLocator).enabled = true; } if (Object.op_Implicit((Object)(object)modelTransform)) { modelTransform.rotation = originalRotation; } if (Object.op_Implicit((Object)(object)direction)) { ((Behaviour)direction).enabled = true; } if (Object.op_Implicit((Object)(object)extraCollider)) { extraCollider.layer = extraLayer; } if (Object.op_Implicit((Object)(object)extraCollider2)) { extraCollider2.layer = extraLayer2; } ((Component)this).gameObject.layer = LayerIndex.defaultLayer.intVal; Object.Destroy((Object)(object)this); } } public class DashAttack : BaseM1 { private bool hasGrantedBuff = false; public override void OnEnter() { //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_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_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Expected O, but got Unknown baseDuration = 0.875f; attackStartTime = 0.16f; attackEndTime = 0.6f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; damageCoefficient = 3.75f; damageType = (DamageType)524288; hitStopDuration = 0.25f; pushForce = 2300f; launchVectorOverride = true; earlyExitJump = true; stackGainAmount = 12; swingSoundString = "DashAttack"; hitSoundString = "Jab3Hit"; critHitSoundString = "SwordHit3"; muzzleString = "Mouth"; swingEffectPrefab = Assets.biteEffect; hitEffectPrefab = Assets.biteEffect; impactSound = Assets.jab3HitSoundEvent.index; dashSpeedCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 10f), new Keyframe(0.5f, 0f), new Keyframe(1f, 0f) }); isDash = true; isFlinch = true; animString = "DashAttack"; hitboxName = "Jab"; base.OnEnter(); } public override void OnHitEnemyAuthority(List<HurtBox> list) { //IL_0082: Unknown result type (might be due to invalid IL or missing references) foreach (HurtBox item in list) { HealthComponent healthComponent = item.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && healthComponent.combinedHealthFraction < 0.45f) { hitSoundString = "SwordHit3"; break; } } if (!hasGrantedBuff) { hasGrantedBuff = true; ((EntityState)this).characterBody.AddTimedBuffAuthority(Buffs.CrocoRegen.buffIndex, 0.5f); } base.OnHitEnemyAuthority(list); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 15f + Vector3.up * 7.5f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } val2 *= pushForce; CharacterMotor characterMotor = body.characterMotor; float num = 0.3f; if (Object.op_Implicit((Object)(object)characterMotor)) { float num2 = Mathf.Max(150f, characterMotor.mass); num = num2 / 150f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 200f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } } } public class DownTilt : BaseM1 { public override void OnEnter() { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) anim = 1.65f; baseDuration = 0.4f; attackStartTime = 0f; attackEndTime = 0.4f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; stackGainAmount = 7; hitStopDuration = 0.025f; bonusForce = Vector3.up * 1800f; pushForce = 1800f; launchVectorOverride = true; isFlinch = true; earlyExitJump = true; swingSoundString = "DownTilt"; hitSoundString = "SwordHit"; critHitSoundString = "SwordHit2"; muzzleString = "DTilt"; swingEffectPrefab = Assets.ridleySwingEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; impactSound = Assets.sword1HitSoundEvent.index; animString = "DownTilt"; hitboxName = "DownTilt"; hitHopVelocity = 11f; base.OnEnter(); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Expected O, but got Unknown //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 4f + Vector3.up * 10f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; val2 *= pushForce; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } CharacterMotor characterMotor = body.characterMotor; float num = 0.25f; if (Object.op_Implicit((Object)(object)characterMotor)) { float num2 = Mathf.Max(150f, characterMotor.mass); num = num2 / 150f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 200f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } DamageInfo val3 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, crit = false, dotIndex = (DotIndex)(-1), force = val2, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; } } public class FAir : BaseM1 { public override void OnEnter() { //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) anim = 1.45f; baseDuration = 0.7f; attackStartTime = 0.225f; attackEndTime = 0.65f; hitStopDuration = 0.03f; attackRecoil = 2f; hitHopVelocity = 5f; damageCoefficient = 2.4f; attackResetInterval = 0.11f; hitStopDuration = 0.08f; stackGainAmount = 3; pushForce = 1800f; isMultiHit = true; isAerial = true; isSus = true; launchVectorOverride = true; swingSoundString = "FAir"; hitSoundString = "SwordHit"; critHitSoundString = "SwordHit2"; swingEffectPrefab = Assets.ridleySwingEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; impactSound = Assets.sword1HitSoundEvent.index; animString = "FAir"; hitboxName = "Jab"; base.OnEnter(); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: 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_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 15f + Vector3.up * 10f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; val2 *= pushForce; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } CharacterMotor characterMotor = body.characterMotor; float num = 0.25f; if (Object.op_Implicit((Object)(object)characterMotor)) { characterMotor.velocity = Vector3.zero; float num2 = Mathf.Max(150f, characterMotor.mass); num = num2 / 150f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { body.rigidbody.velocity = Vector3.zero; float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 200f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } } } public class Flurry : BaseM1 { public override void OnEnter() { baseDuration = 0.3f; attackStartTime = 0f; attackEndTime = 0.4f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; swingSoundString = "Jab2"; hitSoundString = "JabHit2"; swingEffectPrefab = Assets.ridleySwingEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; isCombo = true; isDash = true; animString = "Jab1"; hitboxName = "Jab"; base.OnEnter(); } } public class Jab1 : BaseM1 { public override void OnEnter() { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown anim = 1.2f; baseDuration = 0.4f; attackStartTime = 0f; attackEndTime = 0.4f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; stackGainAmount = 6; hitStopDuration = 0.06f; pushForce = 1300f; launchVectorOverride = true; swingSoundString = "Jab1"; hitSoundString = "JabHit1"; critHitSoundString = "JabHit2"; muzzleString = "Jab1"; cancelledFromSprinting = true; earlyExitJump = true; swingEffectPrefab = Assets.ridleySwingEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; impactSound = Assets.jab1HitSoundEvent.index; dashSpeedCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, 0f), new Keyframe(0.15f, 9f), new Keyframe(0.75f, 0f), new Keyframe(1f, 0f) }); isCombo = true; isDash = true; animString = "Jab1"; hitboxName = "Jab"; base.OnEnter(); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 10f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; val2 *= pushForce; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } CharacterMotor characterMotor = body.characterMotor; float num = 0.25f; if (Object.op_Implicit((Object)(object)characterMotor)) { float num2 = Mathf.Max(100f, characterMotor.mass); num = num2 / 100f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 200f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } DamageInfo val3 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, crit = false, dotIndex = (DotIndex)(-1), force = val2, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; } } public class Jab2 : BaseM1 { public override void OnEnter() { //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_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_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Expected O, but got Unknown anim = 1.2f; baseDuration = 0.4f; attackStartTime = 0f; attackEndTime = 0.4f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; stackGainAmount = 7; hitStopDuration = 0.06f; pushForce = 1300f; launchVectorOverride = true; swingSoundString = "Jab2"; hitSoundString = "JabHit2"; critHitSoundString = "JabHit3"; muzzleString = "Jab2"; cancelledFromSprinting = true; earlyExitJump = true; swingEffectPrefab = Assets.ridleySwingEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; impactSound = Assets.jab2HitSoundEvent.index; dashSpeedCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, 0f), new Keyframe(0.15f, 9f), new Keyframe(0.75f, 0f), new Keyframe(1f, 0f) }); isCombo = true; isDash = true; animString = "Jab2"; hitboxName = "Jab"; base.OnEnter(); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //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) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0144: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_015c: Unknown result type (might be due to invalid IL or missing references) //IL_0162: Unknown result type (might be due to invalid IL or missing references) //IL_0168: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Expected O, but got Unknown //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 10f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; val2 *= pushForce; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } CharacterMotor characterMotor = body.characterMotor; float num = 0.25f; if (Object.op_Implicit((Object)(object)characterMotor)) { float num2 = Mathf.Max(100f, characterMotor.mass); num = num2 / 100f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 200f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } DamageInfo val3 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, crit = false, dotIndex = (DotIndex)(-1), force = val2, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; } } public class Jab3 : BaseM1 { private bool hasGrantedBuff = false; public override void OnEnter() { //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_011d: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Expected O, but got Unknown anim = 1.2f; baseDuration = 0.6f; attackStartTime = 0f; attackEndTime = 0.4f; hitStopDuration = 0.025f; attackRecoil = 2f; hitHopVelocity = 2f; damageCoefficient = 3.8f; stackGainAmount = 9; hitStopDuration = 0.15f; pushForce = 1900f; launchVectorOverride = true; swingSoundString = "Jab3"; hitSoundString = "JabHit3"; critHitSoundString = "JabHit22"; muzzleString = "Mouth"; cancelledFromSprinting = true; earlyExitJump = true; swingEffectPrefab = Assets.biteEffect; hitEffectPrefab = GroundLight.finisherHitEffectPrefab; impactSound = Assets.jab3HitSoundEvent.index; dashSpeedCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[4] { new Keyframe(0f, 0f), new Keyframe(0.15f, 10f), new Keyframe(0.5f, 0f), new Keyframe(1f, 0f) }); isCombo = true; isDash = true; isFlinch = true; animString = "Jab3"; hitboxName = "Jab"; base.OnEnter(); } public override void LaunchEnemy(CharacterBody body) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_015f: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Expected O, but got Unknown //IL_00fd: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0104: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) Vector3 val = ((EntityState)this).characterDirection.forward * 10f + Vector3.up * 3f; Vector3 val2 = val + ((EntityState)this).transform.position - body.transform.position; val2 = ((Vector3)(ref val2)).normalized; val2 *= pushForce; if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<KinematicCharacterMotor>())) { ((Component)body).GetComponent<KinematicCharacterMotor>().ForceUnground(); } CharacterMotor characterMotor = body.characterMotor; float num = 0.25f; if (Object.op_Implicit((Object)(object)characterMotor)) { float num2 = Mathf.Max(150f, characterMotor.mass); num = num2 / 150f; val2 *= num; characterMotor.ApplyForce(val2, false, false); } else if (Object.op_Implicit((Object)(object)body.rigidbody)) { float num3 = Mathf.Max(50f, body.rigidbody.mass); num = num3 / 150f; val2 *= num; body.rigidbody.AddForce(val2, (ForceMode)1); } DamageInfo val3 = new DamageInfo { attacker = ((EntityState)this).gameObject, inflictor = ((EntityState)this).gameObject, damage = 0f, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, crit = false, dotIndex = (DotIndex)(-1), force = val2, position = ((EntityState)this).transform.position, procChainMask = default(ProcChainMask), procCoefficient = 0f }; } public override void OnHitEnemyAuthority(List<HurtBox> list) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) base.OnHitEnemyAuthority(list); if (!hasGrantedBuff) { hasGrantedBuff = true; ((EntityState)this).characterBody.AddTimedBuffAuthority(Buffs.CrocoRegen.buffIndex, 0.5f); } } } public class M1Entry : BaseSkillState { public override void OnEnter() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); float y = ((EntityState)this).inputBank.aimDirection.y; if (((EntityState)this).characterBody.isSprinting && ((BaseState)this).isGrounded) { ((EntityState)this).outer.SetNextState((EntityState)(object)new DashAttack()); } else if (y > 0.5f) { ((EntityState)this).outer.SetNextState((EntityState)(object)new UpAir()); } else if (!((EntityState)this).characterMotor.isGrounded) { ((EntityState)this).outer.SetNextState((EntityState)(object)new FAir()); } else { ((EntityState)this).outer.SetNextState((EntityState)(object)new Jab1()); } } public override InterruptPriority GetMinimumInterruptPriorit