Decompiled source of Phoenix Wright Mod v1.9.0
PhoenixWright.dll
Decompiled 3 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.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 EntityStates; using EntityStates.Commando; using HG; using On.RoR2; using PhoenixWright.Modules; using PhoenixWright.Modules.Achievements; using PhoenixWright.Modules.Networking; using PhoenixWright.Modules.Survivors; using PhoenixWright.SkillStates; using PhoenixWright.SkillStates.BaseStates; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using RoR2.Achievements; using RoR2.ContentManagement; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("PhoenixWright")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("PhoenixWright")] [assembly: AssemblyTitle("PhoenixWright")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] internal class BodyInfo { internal string bodyName = ""; internal string bodyNameToken = ""; internal string subtitleNameToken = ""; internal string bodyNameToClone = "Commando"; 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 Vector3 aimOriginPosition = new Vector3(0f, 1.8f, 0f); internal Vector3 modelBasePosition = new Vector3(0f, -0.92f, 0f); internal Vector3 cameraPivotPosition = new Vector3(0f, 1.6f, 0f); } 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 PhoenixWright { [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.BokChoyWithSoy.PhoenixWright", "PhoenixWright", "1.9.0")] [R2APISubmoduleDependency(new string[] { "PrefabAPI", "LanguageAPI", "SoundAPI" })] public class PhoenixPlugin : BaseUnityPlugin { public static int currentStacks; public static bool turnaboutActive; public bool turnaboutEnabled; public const string MODUID = "com.BokChoyWithSoy.PhoenixWright"; public const string MODNAME = "PhoenixWright"; public const string MODVERSION = "1.9.0"; public static PhoenixController phoenixController; public static Vector3 characterPos; public const string developerPrefix = "BOK"; internal List<SurvivorBase> Survivors = new List<SurvivorBase>(); public static PhoenixPlugin instance; private void Awake() { phoenixController = null; instance = this; Config.ReadConfig(); Config.OnChangeHooks(); Assets.Initialize(); if (Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions")) { Config.SetupRiskOfOptions(); } States.RegisterStates(); Buffs.RegisterBuffs(); Projectiles.RegisterProjectiles(); Tokens.AddTokens(); ItemDisplays.PopulateDisplays(); new Phoenix().Initialize(); new ContentPacks().Initialize(); ContentManager.onContentPacksAssigned += LateSetup; Hook(); turnaboutActive = true; } private void LateSetup(ReadOnlyArray<ReadOnlyContentPack> obj) { SurvivorBase.instance.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 //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown CharacterModel.Awake += new hook_Awake(CharacterModel_Awake); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); CharacterBody.FixedUpdate += new hook_FixedUpdate(CharacterBody_FixedUpdate); MusicTrackDef val = new MusicTrackDef(); } private void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)self) && self.HasBuff(Buffs.armorBuff)) { self.armor += 300f; } } private void CharacterBody_FixedUpdate(orig_FixedUpdate orig, CharacterBody self) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); characterPos = self.transform.position; if (!(self.baseNameToken == "BOK_PHOENIX_BODY_NAME")) { return; } self.SetBuffCount(Buffs.turnaboutBuff.buffIndex, currentStacks); if (currentStacks >= PhoenixController.maxStacks) { if (self.skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_THROW_NAME")) { self.skillLocator.primary.UnsetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); self.skillLocator.primary.UnsetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); self.skillLocator.primary.UnsetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); self.skillLocator.primary.UnsetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); self.skillLocator.primary.SetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryArm, (SkillOverridePriority)4); } if (self.skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_PAPER_NAME")) { self.skillLocator.primary.SetSkillOverride((object)self.skillLocator.primary, Phoenix.primaryPaperStrong, (SkillOverridePriority)4); } PhoenixController.setLock(boolean: false); if (self.skillLocator.secondary.skillNameToken.Equals("BOK_PHOENIX_BODY_SECONDARY_PRESS_NAME")) { self.skillLocator.secondary.SetSkillOverride((object)self.skillLocator.secondary, Phoenix.secondaryPressStrong, (SkillOverridePriority)4); } if (self.skillLocator.secondary.skillNameToken.Equals("BOK_PHOENIX_BODY_SECONDARY_LOCK_NAME")) { self.skillLocator.secondary.SetSkillOverride((object)self.skillLocator.secondary, Phoenix.secondaryLockStrong, (SkillOverridePriority)4); } if (self.skillLocator.utility.skillNameToken.Equals("BOK_PHOENIX_BODY_UTILITY_FALL_NAME")) { self.skillLocator.utility.SetSkillOverride((object)self.skillLocator.utility, Phoenix.rollSkillDef2, (SkillOverridePriority)4); } if (self.skillLocator.utility.skillNameToken.Equals("BOK_PHOENIX_BODY_UTILITY_FALL2_NAME")) { self.skillLocator.utility.SetSkillOverride((object)self.skillLocator.utility, Phoenix.tumbleStrongSkillDef, (SkillOverridePriority)4); } self.skillLocator.special.SetSkillOverride((object)self.skillLocator.special, Phoenix.gavelStrong, (SkillOverridePriority)4); } } private void CharacterModel_Awake(orig_Awake orig, CharacterModel self) { //IL_0022: 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_004c: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (AkSoundEngine.IsInitialized()) { AkSoundEngine.SetRTPCValue("VolumePhoenixVoice", Config.phoenixVoiceVolume.Value); AkSoundEngine.SetRTPCValue("VolumePhoenixMusic", Config.phoenixMusicVolume.Value); AkSoundEngine.SetRTPCValue("VolumePhoenixSFX", Config.phoenixSFXVolume.Value); } if (((Object)((Component)self).gameObject).name.Contains("PhoenixDisplay")) { if (Config.loweredVolume.Value) { Util.PlaySound("PhoenixLobby", ((Component)this).gameObject); } else { Util.PlaySound("PhoenixLobby", ((Component)this).gameObject); } currentStacks = 0; turnaboutActive = true; } } } } namespace PhoenixWright.SkillStates { public class Fall : BaseSkillState { public static float damageCoefficient = 2f; public static float procCoefficient = 5f; public static float duration = 0.5f; public static float initialSpeedCoefficient = 5f; public static float finalSpeedCoefficient = 2.5f; private bool hasFired; public static string dodgeSoundString = "HenryRoll"; public static float dodgeFOV = DodgeState.dodgeFOV; private float stopwatch; private float rollSpeed; private Vector3 forwardDirection; private Animator animator; private Vector3 previousPosition; protected string hitboxName = "fall"; protected OverlapAttack attack; protected float attackStartTime = 0.001f * duration; protected float attackEndTime = 8f * duration; public override void OnEnter() { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: 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_0133: 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_014e: 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_0155: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected O, but got Unknown //IL_026d: 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_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); hasFired = false; animator = ((EntityState)this).GetModelAnimator(); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { Vector3 val = ((((EntityState)this).inputBank.moveVector == Vector3.zero) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).inputBank.moveVector); forwardDirection = ((Vector3)(ref val)).normalized; } Vector3 val2 = (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) ? ((EntityState)this).characterDirection.forward : forwardDirection); Vector3 val3 = Vector3.Cross(Vector3.up, val2); float num = Vector3.Dot(forwardDirection, val2); float num2 = Vector3.Dot(forwardDirection, val3); RecalculateRollSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity.y = 0f; ((EntityState)this).characterMotor.velocity = forwardDirection * rollSpeed; } Vector3 val4 = (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) ? ((EntityState)this).characterMotor.velocity : Vector3.zero); previousPosition = ((EntityState)this).transform.position - val4; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 1f); ((EntityState)this).characterBody.AddTimedBuff(Buffs.armorBuff, 2f); } ((BaseState)this).StartAimMode(duration, true); ((EntityState)this).PlayAnimation("FullBody, Override", "FallFlat", "Roll.playbackRate", duration * 2f, 0f); HitBoxGroup hitBoxGroup = null; Transform modelTransform = ((EntityState)this).GetModelTransform(); ((EntityState)this).PlayAnimation("FullBody, Override", "GetUp", "Roll.playbackRate", duration * 2f, 0f); if (Config.loweredVolume.Value) { Util.PlaySound("FallQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("Fall", ((EntityState)this).gameObject); } if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents<HitBoxGroup>(), (HitBoxGroup element) => element.groupName == hitboxName); } attack = new OverlapAttack(); attack.damageType = DamageTypeCombo.op_Implicit((DamageType)2); 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.hitBoxGroup = hitBoxGroup; attack.isCrit = ((BaseState)this).RollCrit(); } private void RecalculateRollSpeed() { rollSpeed = ((BaseState)this).moveSpeedStat * Mathf.Lerp(initialSpeedCoefficient, finalSpeedCoefficient, ((EntityState)this).fixedAge / duration); } public override void FixedUpdate() { //IL_0025: 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_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_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_009e: 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_010a: 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_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: 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_00c4: 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_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: 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) ((EntityState)this).FixedUpdate(); RecalculateRollSpeed(); if (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterDirection.forward = forwardDirection; } if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = Mathf.Lerp(dodgeFOV, 60f, ((EntityState)this).fixedAge / duration); } Vector3 val = ((EntityState)this).transform.position - previousPosition; Vector3 normalized = ((Vector3)(ref val)).normalized; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) && normalized != Vector3.zero) { Vector3 val2 = normalized * rollSpeed; float num = Mathf.Max(Vector3.Dot(val2, forwardDirection), 0f); val2 = forwardDirection * num; val2.y = 0f; ((EntityState)this).characterMotor.velocity = val2; } previousPosition = ((EntityState)this).transform.position; if (((EntityState)this).fixedAge >= attackStartTime && ((EntityState)this).fixedAge < attackEndTime) { FireAttack(); if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_THROW_NAME") && PhoenixController.GetEvidenceType()) { ((EntityState)this).skillLocator.utility.Reset(); PhoenixController.SetEvidenceType(input: false); ShufflePrimary(); } if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_PAPER_NAME") && PhoenixController.GetEvidenceType()) { ((EntityState)this).skillLocator.utility.Reset(); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPaperGreen, (SkillOverridePriority)4); PhoenixController.resetPaperAttackCount(); } } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { if (Object.op_Implicit((Object)(object)((EntityState)this).cameraTargetParams)) { ((EntityState)this).cameraTargetParams.fovOverride = -1f; } ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } public override void OnSerialize(NetworkWriter writer) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnSerialize(writer); writer.Write(forwardDirection); } public override void OnDeserialize(NetworkReader reader) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0010: Unknown result type (might be due to invalid IL or missing references) ((BaseSkillState)this).OnDeserialize(reader); forwardDirection = reader.ReadVector3(); } private void FireAttack() { //IL_004a: 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) if (!hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1975761789u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1975761789u), (NetworkDestination)1); } } attack.Fire((List<HurtBox>)null); } private void ShufflePrimary() { switch (Random.Range(0, 3)) { case 0: UnsetAll(); PhoenixController.SetEvidenceType(input: false); break; case 1: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 2: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); 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; } private void UnsetAll() { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); } } public class Gavel : BaseSkillState { public static float damageCoefficient = 7f; public static float procCoefficient = 1f; public static float duration = 0.7f; public Vector3 rayPosition; private bool hasFired; private float stopwatch; private Animator animator; protected BlastAttack blastAttack; protected BlastAttack blastAttackStrong; protected float attackStartTime = 0.01f; protected float attackEndTime = 1f; public override void OnEnter() { //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_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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_008b: Expected O, but got Unknown //IL_00e2: 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_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Expected O, but got Unknown //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_0189: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Expected O, but got Unknown //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_025e: Unknown result type (might be due to invalid IL or missing references) //IL_0274: Unknown result type (might be due to invalid IL or missing references) //IL_0279: Unknown result type (might be due to invalid IL or missing references) //IL_0289: Unknown result type (might be due to invalid IL or missing references) //IL_028e: Unknown result type (might be due to invalid IL or missing references) //IL_029a: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); hasFired = false; rayPosition = ((Ray)(ref aimRay)).origin; if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.gavelEffect, new EffectData { origin = new Vector3(((EntityState)this).transform.position.x, ((EntityState)this).transform.position.y + 10f, ((EntityState)this).transform.position.z), scale = 1f }, true); } if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 1f); } if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1688684367u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1688684367u), (NetworkDestination)1); } blastAttack = new BlastAttack(); blastAttack.radius = 25f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); blastAttack.attackerFiltering = (AttackerFiltering)0; blastAttackStrong = new BlastAttack(); blastAttackStrong.radius = 50f; blastAttackStrong.procCoefficient = procCoefficient; blastAttackStrong.position = rayPosition; blastAttackStrong.attacker = ((EntityState)this).gameObject; blastAttackStrong.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttackStrong.baseDamage = ((BaseState)this).damageStat * (damageCoefficient * 2f); blastAttackStrong.falloffModel = (FalloffModel)0; blastAttackStrong.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttackStrong.damageType = DamageTypeCombo.op_Implicit((DamageType)16416); blastAttackStrong.attackerFiltering = (AttackerFiltering)0; } public override void FixedUpdate() { //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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; stopwatch += Time.fixedDeltaTime; if (stopwatch >= duration * 0.4f) { FireAttack(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } public void FireAttack() { //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Unknown result type (might be due to invalid IL or missing references) //IL_01a2: Unknown result type (might be due to invalid IL or missing references) //IL_01a7: 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_0103: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0134: Unknown result type (might be due to invalid IL or missing references) //IL_013f: Unknown result type (might be due to invalid IL or missing references) //IL_0150: Expected O, but got Unknown if (hasFired) { return; } hasFired = true; if (PhoenixController.GetEvidenceType()) { if (((EntityState)this).isAuthority) { blastAttackStrong.Fire(); if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_THROW_NAME") && PhoenixController.GetEvidenceType()) { PhoenixController.SetEvidenceType(input: false); ShufflePrimary(); } if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_PAPER_NAME") && PhoenixController.GetEvidenceType()) { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPaperGreen, (SkillOverridePriority)4); PhoenixController.resetPaperAttackCount(); } } } else if (((EntityState)this).isAuthority) { blastAttack.Fire(); } if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.dustEffect, new EffectData { origin = new Vector3(((EntityState)this).transform.position.x, ((EntityState)this).transform.position.y, ((EntityState)this).transform.position.z), scale = 1f }, true); } ((EntityState)this).PlayAnimation("FullBody, Override", "Getup", "ShootGun.playbackRate", duration, 0f); Wave val = default(Wave); val.amplitude = 2f; val.frequency = 180f; val.cycleOffset = 0f; Wave val2 = val; ShakeEmitter.CreateSimpleShakeEmitter(rayPosition, val2, 0.5f, 20f, true); } private void ShufflePrimary() { switch (Random.Range(0, 3)) { case 0: UnsetAll(); PhoenixController.SetEvidenceType(input: false); break; case 1: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 2: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); 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)7; } private void UnsetAll() { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); } } public class GavelStrong : BaseSkillState { public static float damageCoefficient = 7f; public static float procCoefficient = 2f; public static float duration = 0.7f; public Vector3 rayPosition; private bool hasFired; private float stopwatch; private Animator animator; protected BlastAttack blastAttackStrong; protected float attackStartTime = 0.01f; protected float attackEndTime = 1f; public override void OnEnter() { //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_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_0033: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006f: 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_008b: Expected O, but got Unknown //IL_00e2: 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_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Expected O, but got Unknown //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_018f: Unknown result type (might be due to invalid IL or missing references) //IL_01a5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: 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_01cb: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); hasFired = false; rayPosition = ((Ray)(ref aimRay)).origin; if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.gavelEffect, new EffectData { origin = new Vector3(((EntityState)this).transform.position.x, ((EntityState)this).transform.position.y + 10f, ((EntityState)this).transform.position.z), scale = 1f }, true); } if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.HiddenInvincibility, 1f); } if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1688684367u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 1688684367u), (NetworkDestination)1); } blastAttackStrong = new BlastAttack(); blastAttackStrong.radius = 40f; blastAttackStrong.procCoefficient = procCoefficient; blastAttackStrong.position = rayPosition; blastAttackStrong.attacker = ((EntityState)this).gameObject; blastAttackStrong.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttackStrong.baseDamage = ((BaseState)this).damageStat * (damageCoefficient * 2f); blastAttackStrong.falloffModel = (FalloffModel)0; blastAttackStrong.teamIndex = TeamComponent.GetObjectTeam(blastAttackStrong.attacker); blastAttackStrong.damageType = DamageTypeCombo.op_Implicit((DamageType)16416); blastAttackStrong.attackerFiltering = (AttackerFiltering)0; } public override void FixedUpdate() { //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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; stopwatch += Time.fixedDeltaTime; if (stopwatch >= duration * 0.4f && ((EntityState)this).isAuthority) { FireAttack(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } private void FireAttack() { //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_006d: 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_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown if (!hasFired) { hasFired = true; if (((EntityState)this).isAuthority) { blastAttackStrong.Fire(); } if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.dustEffect, new EffectData { origin = new Vector3(((EntityState)this).transform.position.x, ((EntityState)this).transform.position.y, ((EntityState)this).transform.position.z), scale = 1f }, true); } ((EntityState)this).PlayAnimation("FullBody, Override", "Getup", "ShootGun.playbackRate", duration, 0f); Wave val = default(Wave); val.amplitude = 2f; val.frequency = 180f; val.cycleOffset = 0f; Wave val2 = val; ShakeEmitter.CreateSimpleShakeEmitter(rayPosition, val2, 0.5f, 20f, 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)7; } } public class LockSecondary : BaseSkillState { public static float damageCoefficient = 0.5f; public static float procCoefficient = 1f; public static float duration = 0.25f; public Vector3 rayPosition; public static BlastAttack blastAttack; public override void OnEnter() { //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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; PhoenixController.stopwatch = 0f; blastAttack = new BlastAttack(); blastAttack.radius = 4f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); blastAttack.attackerFiltering = (AttackerFiltering)0; PhoenixController.setLock(boolean: true); } public override void FixedUpdate() { //IL_000a: 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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; blastAttack.position = rayPosition; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } public static void FireAttack() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) blastAttack.position = PhoenixPlugin.characterPos; if (blastAttack.Fire().hitCount > 0) { PhoenixController.paperEvidenceCount += 1f; } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)7; } } public class LockSecondaryStrong : BaseSkillState { public static float damageCoefficient = 1f; public static float procCoefficient = 1f; public static float duration = 0.25f; public Vector3 rayPosition; public static BlastAttack blastAttack; public override void OnEnter() { //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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; PhoenixController.stopwatch = 0f; blastAttack = new BlastAttack(); blastAttack.radius = 8f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); blastAttack.attackerFiltering = (AttackerFiltering)0; PhoenixController.setLock(boolean: true); } public override void FixedUpdate() { //IL_000a: 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_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin; blastAttack.position = rayPosition; if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } public static void FireAttack() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) blastAttack.position = PhoenixPlugin.characterPos; blastAttack.Fire(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)7; } } public class Press : BaseSkillState { public static float damageCoefficient = 4f; public static float procCoefficient = 1f; public static float duration = 0.025f; public Vector3 rayPosition; public static bool hasDamaged; private bool hasFired; protected BlastAttack blastAttack; protected float attackStartTime = 0.01f * duration; protected float attackEndTime = 1f * duration; public override void OnEnter() { //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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Expected O, but got Unknown //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_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_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Expected O, but got Unknown ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); Ray val = default(Ray); ((Ray)(ref val))..ctor(((Ray)(ref aimRay)).origin + 1f * ((Ray)(ref aimRay)).direction, ((Ray)(ref aimRay)).direction); hasFired = false; RaycastHit val2 = default(RaycastHit); if (Physics.Raycast(val, ref val2, 20f)) { rayPosition = ((RaycastHit)(ref val2)).point; } else { rayPosition = ((Ray)(ref aimRay)).origin + 20f * ((Ray)(ref aimRay)).direction; } ((BaseState)this).StartAimMode(duration, true); ((EntityState)this).PlayAnimation("FullBody, Override", "Point", "ShootGun.playbackRate", duration / duration, 0f); if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.pressEffect, new EffectData { origin = rayPosition, scale = 1f, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) }, true); } blastAttack = new BlastAttack(); blastAttack.radius = 10f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)32); blastAttack.attackerFiltering = (AttackerFiltering)0; } public override void FixedUpdate() { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= attackStartTime && ((EntityState)this).fixedAge < attackEndTime && !hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3304771474u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3304771474u), (NetworkDestination)1); } if (((EntityState)this).isAuthority && blastAttack.Fire().hitCount > 0) { OnHitEnemyAuthority(); } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } protected virtual void OnHitEnemyAuthority() { //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_01ab: 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_016f: Unknown result type (might be due to invalid IL or missing references) if (!PhoenixController.GetEvidenceType()) { return; } ((EntityState)this).characterBody.AddBuff(Buffs.turnaboutBuff); if (Config.loweredVolume.Value) { Util.PlaySound("GainStackQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("GainStack", ((EntityState)this).gameObject); } if (!Config.gainTurnaboutOnHit.Value) { PhoenixPlugin.currentStacks += blastAttack.Fire().hitCount; } else { PhoenixPlugin.currentStacks++; } if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_THROW_NAME") && PhoenixController.GetEvidenceType()) { ShufflePrimary(); } if (((EntityState)this).skillLocator.primary.skillNameToken.Equals("BOK_PHOENIX_BODY_PRIMARY_PAPER_NAME") && PhoenixController.GetEvidenceType()) { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPaperGreen, (SkillOverridePriority)4); PhoenixController.resetPaperAttackCount(); } if (PhoenixPlugin.currentStacks >= PhoenixController.maxStacks && PhoenixPlugin.turnaboutActive) { if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3561233033u), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3345964952u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3561233033u), (NetworkDestination)1); NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 3345964952u), (NetworkDestination)1); } PhoenixPlugin.turnaboutActive = false; } } private void ShufflePrimary() { switch (Random.Range(0, 3)) { case 0: UnsetAll(); PhoenixController.SetEvidenceType(input: false); break; case 1: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 2: UnsetAll(); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); 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)3; } private void UnsetAll() { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); } } public class PressTurnabout : BaseSkillState { public static float damageCoefficient = 6f; public static float procCoefficient = 2f; public static float duration = 1f; public Vector3 rayPosition; private bool hasFired; private float stopwatch; private Animator animator; private int random; protected string hitboxName = "press"; protected BlastAttack blastAttack; protected float attackStartTime = 0.01f * duration; protected float attackEndTime = 1f * duration; public override void OnEnter() { //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_0013: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_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) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0194: Unknown result type (might be due to invalid IL or missing references) //IL_0196: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01af: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01b9: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Expected O, but got Unknown //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Expected O, but got Unknown //IL_0214: Unknown result type (might be due to invalid IL or missing references) //IL_021e: Expected O, but got Unknown //IL_0245: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02ba: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: 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_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: 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_013d: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); Ray aimRay = ((BaseState)this).GetAimRay(); Ray val = default(Ray); ((Ray)(ref val))..ctor(((Ray)(ref aimRay)).origin + 1f * ((Ray)(ref aimRay)).direction, ((Ray)(ref aimRay)).direction); hasFired = false; RaycastHit val2 = default(RaycastHit); if (Physics.Raycast(val, ref val2, 20f)) { rayPosition = ((RaycastHit)(ref val2)).point; } else { rayPosition = ((Ray)(ref aimRay)).origin + 20f * ((Ray)(ref aimRay)).direction; } ((BaseState)this).StartAimMode(duration, true); ((EntityState)this).PlayAnimation("FullBody, Override", "Point", "ShootGun.playbackRate", duration / duration, 0f); random = Random.Range(0, 2); if (random == 0) { if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.pressobjectEffect, new EffectData { origin = rayPosition, scale = 1f, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) }, true); if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 95798163u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 95798163u), (NetworkDestination)1); } } } else if (((EntityState)this).isAuthority) { EffectManager.SpawnEffect(Assets.presstTakeEffect, new EffectData { origin = rayPosition, scale = 1f, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) }, true); if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2487928752u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2487928752u), (NetworkDestination)1); } } blastAttack = new BlastAttack(); blastAttack.radius = 10f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)290); blastAttack.attackerFiltering = (AttackerFiltering)0; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (stopwatch >= attackStartTime && stopwatch <= attackEndTime) { FireAttack(); } if (((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((EntityState)this).characterMotor.disableAirControlUntilCollision = false; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)3; } private void FireAttack() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) if (!hasFired && ((EntityState)this).isAuthority) { hasFired = true; blastAttack.Fire(); } } } public class SpawnArm : BaseSkillState { public static float damageCoefficient = 4f; public static float procCoefficient = 2f; public static float baseDuration = 1f; public static float throwForce = 130f; private float duration; private float fireTime; private bool hasFired; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; fireTime = 0.4f * duration; ((EntityState)this).characterBody.SetAimTimer(2f); ((EntityState)this).PlayAnimation("FullBody, Override", "Point", "ThrowBomb.playbackRate", duration, 0f); } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ProjectileManager.instance.FireProjectile(Projectiles.armPrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, throwForce); } } } public override void FixedUpdate() { //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime && !hasFired) { Fire(); if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 4107067948u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 4107067948u), (NetworkDestination)1); } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowBottle : BaseSkillState { public static float damageCoefficient = 2f; public static float procCoefficient = 1f; public static float baseDuration = 0.75f; public static float throwForce = 80f; private float duration; private float fireTime; private bool hasFired; private bool justSwitched = true; private int nextItem; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (justSwitched) { fireTime = 0.5f * duration; } else { fireTime = 0.2f * duration; } ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //IL_004b: 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_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ac: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "Throw", "ThrowBomb.playbackRate", duration, 0f); ProjectileManager.instance.FireProjectile(Projectiles.bottlePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, throwForce); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime && !hasFired) { Fire(); nextItem = Random.Range(0, 4); switch (nextItem) { case 0: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 1: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 2: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 3: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public void PlayEvidenceSound() { if (Config.loweredVolume.Value) { Util.PlaySound("EvidenceSoundQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("EvidenceSound", ((EntityState)this).gameObject); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowKnife : BaseSkillState { public static float damageCoefficient = 4f; public static float procCoefficient = 1f; public static float baseDuration = 0.75f; public static float throwForce = 80f; private float duration; private float fireTime; private bool hasFired; private bool justSwitched = true; private int nextItem; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (justSwitched) { fireTime = 0.5f * duration; } else { fireTime = 0.2f * duration; } ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //IL_004d: 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_006f: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "Throw", "ThrowBomb.playbackRate", duration, 0f); ProjectileManager.instance.FireProjectile(Projectiles.knifePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, throwForce); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime && !hasFired) { Fire(); nextItem = Random.Range(0, 4); switch (nextItem) { case 0: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 1: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 2: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 3: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public void PlayEvidenceSound() { if (Config.loweredVolume.Value) { Util.PlaySound("EvidenceSoundQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("EvidenceSound", ((EntityState)this).gameObject); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowPaper : BaseSkillState { public static float damageCoefficient = 1f; public static float procCoefficient = 1f; public static float baseDuration = 0.5f; public static float throwForce = 80f; private float duration; private BlastAttack blastAttack; private bool hasFired; private Vector3 rayPosition; private Animator animator; public override void OnEnter() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0119: 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_012a: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin + 4f * ((Ray)(ref aimRay)).direction; ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); blastAttack = new BlastAttack(); blastAttack.radius = 6f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)8); blastAttack.attackerFiltering = (AttackerFiltering)0; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.armorBuff, duration); } } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown if (!hasFired) { hasFired = true; if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "PaperThrow", "ThrowBomb.playbackRate", duration / 4f, 0f); blastAttack.Fire(); EffectManager.SpawnEffect(Assets.paperEffect, new EffectData { origin = rayPosition, scale = 1f, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) }, true); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (PhoenixController.getPaperAttackCount() >= 3) { PhoenixController.SetEvidenceType(input: true); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPaperGreen, (SkillOverridePriority)4); } if (!hasFired) { Fire(); PhoenixController.incrementPaperAttackCount(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowPaperStrong : BaseSkillState { public static float damageCoefficient = 2f; public static float procCoefficient = 1f; public static float baseDuration = 0.5f; public static float throwForce = 80f; private float duration; private BlastAttack blastAttack; private bool hasFired; private Vector3 rayPosition; private Animator animator; public override void OnEnter() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Expected O, but got Unknown //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0119: 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_012a: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); rayPosition = ((Ray)(ref aimRay)).origin + 4f * ((Ray)(ref aimRay)).direction; ((BaseState)this).OnEnter(); duration = ThrowPaper.baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); blastAttack = new BlastAttack(); blastAttack.radius = 8f; blastAttack.procCoefficient = procCoefficient; blastAttack.position = rayPosition; blastAttack.attacker = ((EntityState)this).gameObject; blastAttack.crit = Util.CheckRoll(((EntityState)this).characterBody.crit, ((EntityState)this).characterBody.master); blastAttack.baseDamage = ((BaseState)this).damageStat * damageCoefficient; blastAttack.falloffModel = (FalloffModel)0; blastAttack.teamIndex = TeamComponent.GetObjectTeam(blastAttack.attacker); blastAttack.damageType = DamageTypeCombo.op_Implicit((DamageType)8); blastAttack.attackerFiltering = (AttackerFiltering)0; if (NetworkServer.active) { ((EntityState)this).characterBody.AddTimedBuff(Buffs.armorBuff, duration); } } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //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_0058: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0075: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Expected O, but got Unknown if (!hasFired) { hasFired = true; if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "PaperThrow", "ThrowBomb.playbackRate", duration / 4f, 0f); blastAttack.Fire(); EffectManager.SpawnEffect(Assets.paperStrongEffect, new EffectData { origin = rayPosition, scale = 1f, rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction) }, true); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!hasFired) { Fire(); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowPhone : BaseSkillState { public static float damageCoefficient = 4f; public static float procCoefficient = 1f; public static float baseDuration = 0.75f; public static float throwForce = 80f; public static SkillDef primaryVase = Phoenix.primaryVase; private float duration; private float fireTime; private bool hasFired; private bool justSwitched = true; private int nextItem; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (justSwitched) { fireTime = 0.5f * duration; } else { fireTime = 0.2f * duration; } ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //IL_004d: 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_006f: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "Throw", "ThrowBomb.playbackRate", duration, 0f); ProjectileManager.instance.FireProjectile(Projectiles.phonePrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, throwForce); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime && !hasFired) { Fire(); nextItem = Random.Range(0, 4); switch (nextItem) { case 0: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 1: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 2: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 3: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public void PlayEvidenceSound() { if (Config.loweredVolume.Value) { Util.PlaySound("EvidenceSoundQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("EvidenceSound", ((EntityState)this).gameObject); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowServbot : BaseSkillState { public static float damageCoefficient = 2f; public static float procCoefficient = 1f; public static float baseDuration = 0.75f; public static float throwForce = 80f; private float duration; private float fireTime; private bool hasFired; private bool justSwitched = true; private int nextItem; private Animator animator; public override void OnEnter() { ((BaseState)this).OnEnter(); duration = baseDuration / ((BaseState)this).attackSpeedStat; if (justSwitched) { fireTime = 0.5f * duration; } else { fireTime = 0.2f * duration; } ((EntityState)this).characterBody.SetAimTimer(2f); animator = ((EntityState)this).GetModelAnimator(); } public override void OnExit() { ((EntityState)this).OnExit(); } private void Fire() { //IL_004d: 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_006f: 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_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) if (!hasFired) { hasFired = true; if (Config.loweredVolume.Value) { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new PlaySoundNetworkRequest(((NetworkBehaviour)((EntityState)this).characterBody).netId, 2883528150u), (NetworkDestination)1); } if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); ((EntityState)this).PlayAnimation("RightArm, Override", "Throw", "ThrowBomb.playbackRate", duration, 0f); ProjectileManager.instance.FireProjectile(Projectiles.servbotPrefab, ((Ray)(ref aimRay)).origin, Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction), ((EntityState)this).gameObject, damageCoefficient * ((BaseState)this).damageStat, 0f, ((BaseState)this).RollCrit(), (DamageColorIndex)0, (GameObject)null, throwForce); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= fireTime && !hasFired) { Fire(); nextItem = Random.Range(0, 2); switch (nextItem) { case 0: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; case 1: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryPhone, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 2: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryKnife, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: true); PlayEvidenceSound(); break; case 3: ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryServbot, (SkillOverridePriority)4); ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).skillLocator.primary, Phoenix.primaryBottle, (SkillOverridePriority)4); PhoenixController.SetEvidenceType(input: false); break; } } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public void PlayEvidenceSound() { if (Config.loweredVolume.Value) { Util.PlaySound("EvidenceSoundQuiet", ((EntityState)this).gameObject); } else { Util.PlaySound("EvidenceSound", ((EntityState)this).gameObject); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ThrowVase : BaseSkillState { public static float damageCoefficient = 2f; public static float procCoefficient = 1f; public static float baseDuration = 0.75f; public static float throwForce = 80f; public static SkillDef knife = Phoenix.primaryKnife; private float duration; private float fireTime; private bool hasFired