Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of RidleyBeta v1.13.3
Ridley.dll
Decompiled 2 years 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