Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of Phoenix Wright Mod v1.9.1
PhoenixWright.dll
Decompiled 10 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