Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of Professional v0.0.1
plugins/GordonFreeman.dll
Decompiled a week ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Bootstrap; using BepInEx.Configuration; using BrynzaAPI; using EmotesAPI; using EntityStates; using EntityStates.Commando; using EntityStates.Commando.CommandoWeapon; using HG.Reflection; using HarmonyLib; using IL.RoR2; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil; using Mono.Cecil.Cil; using MonoMod.Cil; using On.RoR2; using On.RoR2.Projectile; using On.RoR2.UI; using R2API; using R2API.Utils; using Rewired; using RiskOfOptions; using RiskOfOptions.Options; using RoR2; using RoR2.CameraModes; using RoR2.ContentManagement; using RoR2.HudOverlay; using RoR2.Navigation; using RoR2.PostProcessing; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Bindings; using UnityEngine.EventSystems; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.Rendering.PostProcessing; using UnityEngine.SceneManagement; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: OptIn] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("GordonFreeman")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+40c0391ce996339b61ef37fe816408905279cc54")] [assembly: AssemblyProduct("GordonFreeman")] [assembly: AssemblyTitle("GordonFreeman")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace GordonFreeman { public class Assets { public class GordonFreemanSound { public string name; public string playSoundString; public string stopSoundString; private NetworkSoundEventDef playSound; private NetworkSoundEventDef stopSound; public GordonFreemanSound(string soundName) { name = soundName; playSoundString = "Play_" + soundName; stopSoundString = "Stop_" + soundName; playSound = ScriptableObject.CreateInstance<NetworkSoundEventDef>(); playSound.eventName = playSoundString; ContentPacks.sounds.Add(playSound); stopSound = ScriptableObject.CreateInstance<NetworkSoundEventDef>(); stopSound.eventName = stopSoundString; ContentPacks.sounds.Add(stopSound); } } [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static CollectContentPackProvidersDelegate <>9__95_0; internal void <Init>b__95_0(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)new ContentPacks()); } } public static AssetBundle assetBundle; public static GameObject ProfessionalBody; public static GameObject EmotePrefab; public static GameObject WeaponWheelSelector; public static GameObject WeaponButtonSelector; public static GameObject SpecialButtonSelector; public static GameObject BanditRevolverTracer; public static GameObject BanditRevolverMuzzleFlash; public static GameObject BanditRevolverHit; public static GameObject CaptainShotgunTracer; public static GameObject CaptainShotgunMuzzleFlash; public static GameObject CaptainShotgunHit; public static GameObject MultRebarTracer; public static GameObject StoneTitanLaser; public static GameObject Explosion; public static GameObject CoinProjectile; public static GameObject DartProjectile; public static GameObject SMGGrenadeProjectile; public static GameObject RebarProjectile; public static GameObject HomingRocketProjectile; public static GameObject RocketProjectile; public static GameObject HookChainEffect; public static GameObject GluonBeamEffect; public static GameObject UtilitySkillCharge; public static GameObject SniperTargetTest; public static Material IndicatorMaterial; public static SurvivorDef ProfessionalDef; public static SkinDef ProfessionalDefaultSkin; public static SkinDef HeroBlackOpsSkin; public static SkillFamily MeleePrimary; public static SkillFamily MeleeSecondary; public static SkillFamily HandheldsPrimary; public static SkillFamily HandheldsSecondary; public static SkillFamily LightWeaponsPrimary; public static SkillFamily LightWeaponsSecondary; public static SkillFamily HeavyWeaponsPrimary; public static SkillFamily HeavyWeaponsSecondary; public static SkillFamily ProfessionalUtilitySkillFamily; public static SkillFamily ProfessionalSpecialSkillFamily; public static SkillFamily PaintsFamily; public static SkillDef CommandoPistolPrimary; public static SkillDef ToolbotRebarPrimary; public static SkillDef ArtificerPlasmaPrimary; public static SkillDef CommandoBallSecondary; public static SkillDef ToolbotGrenadePrimary; public static SkillDef ArtificerBombPrimary; public static SkillDef CommandoRollUtility; public static SkillDef MercenaryEvisSpecial; public static ProfessionalSkillDef RevolverPrimary; public static ProfessionalSkillDef RevolverSecondary; public static ProfessionalSkillDef CrossbowPrimary; public static ProfessionalSkillDef CrossbowScope; public static ProfessionalSkillDef CrossbowSecondary; public static ProfessionalSkillDef ShotgunPrimary; public static HookTarckingSkillDef ShotgunSecondary; public static ProfessionalSkillDef SMGPrimary; public static ProfessionalSkillDef SMGSecondary; public static ProfessionalSkillDef PistolsPrimary; public static ProfessionalSkillDef PistolsSecondary; public static ProfessionalSkillDef RocketLauncherPrimary; public static ProfessionalSkillDef RocketLauncherSecondary; public static ProfessionalSkillDef TauCannonPrimary; public static ProfessionalSkillDef TauCannonSecondary; public static ProfessionalSkillDef GluonGunPrimary; public static SkillDef QuickDash; public static HeroSpecialSkillDef SpecialOne; public static SkillDef Airblast; public static SkillDef Chainsaw; public static SkillDef GravityGun; public static SkillDef Parry; public static SkillDef Yellow; public static SkillDef Black; public static SkillDef Blue; public static SkillDef Green; public static SkillDef White; public static SkillDef Red; public static CustomMusicTrackDef HalfLifeTrack; public static List<CustomMusicTrackDef> customMusicTracks = new List<CustomMusicTrackDef>(); public static Dictionary<string, MusicTrackDef> stringToMusic = new Dictionary<string, MusicTrackDef>(); public static GordonFreemanSound CrossbowFire = new GordonFreemanSound("hot_rebar_fire_mix"); public static GordonFreemanSound CrossbowReload = new GordonFreemanSound("hot_rebar_reload"); public static GordonFreemanSound GluonGunFire = new GordonFreemanSound("gluon_fire"); public static GordonFreemanSound GluonGunOff = new GordonFreemanSound("gluon_off"); public static GordonFreemanSound GravityGunFire = new GordonFreemanSound("gravity_gun_fire"); public static GordonFreemanSound GravityGunHold = new GordonFreemanSound("hold_loop"); public static GordonFreemanSound GravityGunPickup = new GordonFreemanSound("physcannon_pickup"); public static GordonFreemanSound PistolFire = new GordonFreemanSound("pistol_fire2"); public static GordonFreemanSound RevolverFire = new GordonFreemanSound("revolver_fire"); public static GordonFreemanSound RocketFire = new GordonFreemanSound("rocketfire1"); public static GordonFreemanSound RocketFly = new GordonFreemanSound("rocket1"); public static GordonFreemanSound ShotgunFire = new GordonFreemanSound("shotgun_fire7"); public static GordonFreemanSound SMGFire = new GordonFreemanSound("smg1_fire1"); public static GordonFreemanSound TauCannonFire = new GordonFreemanSound("gaussfire1"); public static GordonFreemanSound TauCannonCharge = new GordonFreemanSound("tauchargeloop"); public static Dictionary<string, string> actualNames = new Dictionary<string, string>(); public static void Init() { //IL_00f5: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Expected O, but got Unknown //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03e6: Unknown result type (might be due to invalid IL or missing references) //IL_03eb: Unknown result type (might be due to invalid IL or missing references) //IL_03fe: Unknown result type (might be due to invalid IL or missing references) //IL_0403: Unknown result type (might be due to invalid IL or missing references) //IL_0416: Unknown result type (might be due to invalid IL or missing references) //IL_041b: Unknown result type (might be due to invalid IL or missing references) //IL_042e: Unknown result type (might be due to invalid IL or missing references) //IL_0433: Unknown result type (might be due to invalid IL or missing references) //IL_0446: Unknown result type (might be due to invalid IL or missing references) //IL_044b: Unknown result type (might be due to invalid IL or missing references) //IL_045e: Unknown result type (might be due to invalid IL or missing references) //IL_0463: Unknown result type (might be due to invalid IL or missing references) //IL_0476: Unknown result type (might be due to invalid IL or missing references) //IL_047b: Unknown result type (might be due to invalid IL or missing references) //IL_048e: Unknown result type (might be due to invalid IL or missing references) //IL_0493: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_05c4: Unknown result type (might be due to invalid IL or missing references) //IL_05c9: Unknown result type (might be due to invalid IL or missing references) //IL_05dc: Unknown result type (might be due to invalid IL or missing references) //IL_05e1: Unknown result type (might be due to invalid IL or missing references) //IL_05f4: Unknown result type (might be due to invalid IL or missing references) //IL_05f9: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_0611: Unknown result type (might be due to invalid IL or missing references) //IL_0624: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_063c: Unknown result type (might be due to invalid IL or missing references) //IL_0641: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_0659: Unknown result type (might be due to invalid IL or missing references) //IL_066c: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0cba: Unknown result type (might be due to invalid IL or missing references) //IL_0cbf: Unknown result type (might be due to invalid IL or missing references) //IL_0cc5: Expected O, but got Unknown assetBundle = AssetBundle.LoadFromFileAsync(Path.Combine(Path.GetDirectoryName(Main.PInfo.Location), "assetbundles", "gordonfreemanassets")).assetBundle; Material[] array = assetBundle.LoadAllAssets<Material>(); foreach (Material val in array) { if (((Object)val.shader).name.StartsWith("StubbedRoR2")) { string text = ((Object)val.shader).name.Replace("StubbedRoR2", "RoR2") + ".shader"; Shader val2 = Addressables.LoadAssetAsync<Shader>((object)text).WaitForCompletion(); if (Object.op_Implicit((Object)(object)val2)) { val.shader = val2; } } } uint num = SoundBanks.Add(Path.Combine(Path.GetDirectoryName(Main.PInfo.Location), "soundbanks", "GordonFreemanSounds.bnk")); CustomMusicData val3 = new CustomMusicData(); val3.BanksFolderPath = Path.Combine(Path.GetDirectoryName(Main.PInfo.Location), "soundbanks"); val3.BepInPlugin = Main.PInfo.Metadata; val3.InitBankName = "GordonFreemanInit.bnk"; val3.PlayMusicSystemEventName = "Play_Gordon_Freeman_Music_System"; val3.SoundBankName = "GordonFreemanMusic.bnk"; HalfLifeTrack = CreateCustomMusicTrack("HalfLife", "GordonFreemanMusic", 4187838533u, 3489674728u); bool flag = Music.Add(val3); ProfessionalBody = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Character/ProfessionalBody.prefab"); ProfessionalBodyComponent component = ProfessionalBody.GetComponent<ProfessionalBodyComponent>(); CharacterMotor component2 = ProfessionalBody.GetComponent<CharacterMotor>(); Extensions.SetKeepVelocityOnMoving(component2, true); Extensions.SetConsistentAcceleration(component2, 10f); Extensions.SetBunnyHop(component2, true); Extensions.SetAirControlFromVelocityAdd(component2, 15f); CharacterBodyAPI.AddModdedBodyFlag((CharacterBody)(object)component, Assets.SprintAllTime); ((CharacterBody)component).preferredPodPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/NetworkedObjects/SurvivorPod"); ((CharacterBody)component)._defaultCrosshairPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/Crosshair/SimpleDotCrosshair"); Extensions.SetBaseWallJumpCount((CharacterBody)(object)component, 3); GameObject gameObject = ((Component)((Component)component).GetComponent<ModelLocator>().modelTransform).gameObject; gameObject.GetComponent<FootstepHandler>().footstepDustPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/GenericFootstepDust"); GenericSkill[] components = ProfessionalBody.GetComponents<GenericSkill>(); GenericSkill[] array2 = components; foreach (GenericSkill val4 in array2) { if (!((Object)(object)val4 == (Object)null)) { if (val4.skillName.Contains("Secondary")) { SkillsAPI.SetHideInLoadout(val4, true); SkillsAPI.SetLoadoutTitleTokenOverride(val4, "LOADOUT_SKILL_SECONDARY"); } if (val4.skillName.Contains("Primary")) { SkillsAPI.SetLoadoutTitleTokenOverride(val4, "LOADOUT_SKILL_PRIMARY"); } if (val4.skillName.Contains("1") || val4.skillName.Contains("5")) { Extensions.SetSection(val4, "Meelee"); } if (val4.skillName.Contains("2") || val4.skillName.Contains("6")) { Extensions.SetSection(val4, "Handguns"); } if (val4.skillName.Contains("3") || val4.skillName.Contains("7")) { Extensions.SetSection(val4, "Light Weapons"); } if (val4.skillName.Contains("4") || val4.skillName.Contains("8")) { Extensions.SetSection(val4, "Heavy Weapons"); } } } ContentPacks.bodies.Add(ProfessionalBody); EmotePrefab = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Character/HeroEmotes.prefab"); BanditRevolverTracer = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/TracerBanditPistol.prefab").WaitForCompletion(); BanditRevolverMuzzleFlash = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/MuzzleflashBandit2.prefab").WaitForCompletion(); BanditRevolverHit = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/HitsparkBandit2Pistol.prefab").WaitForCompletion(); CaptainShotgunTracer = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/TracerCaptainShotgun.prefab").WaitForCompletion(); CaptainShotgunMuzzleFlash = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/MuzzleflashBandit2.prefab").WaitForCompletion(); CaptainShotgunHit = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/HitsparkCaptainShotgun.prefab").WaitForCompletion(); MultRebarTracer = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/TracerToolbotRebar.prefab").WaitForCompletion(); StoneTitanLaser = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Titan/LaserTitan.prefab").WaitForCompletion(); Explosion = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/OmniExplosionVFXToolbotQuick.prefab").WaitForCompletion(); IndicatorMaterial = Addressables.LoadAssetAsync<Material>((object)"RoR2/Base/Common/VFX/matAreaIndicatorRim.mat").WaitForCompletion(); HookChainEffect = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Effects/HookChain.prefab"); GluonBeamEffect = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Effects/GluonGunBeam.prefab"); SniperTargetTest = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/HUD/FreemanSniperTarget.prefab"); CoinProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/Coin/ProfessionalCoinProjectile.prefab").RegisterProjectile(); DartProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/Dart/ProfessionalDartProjectile.prefab").RegisterProjectile(); SMGGrenadeProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/SMGGrenade/ProfessionalSMGGrenadeProjectile.prefab").RegisterProjectile(); RebarProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/Rebar/ProfessionalRebarProjectile.prefab").RegisterProjectile(); HomingRocketProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/Rocket/ProfessionalHeatSeekingRocketProjectile.prefab").RegisterProjectile(); RocketProjectile = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/Projectiles/Rocket/ProfessionalNonHeatSeekingRocketProjectile.prefab").RegisterProjectile(); ProfessionalDef = assetBundle.LoadAsset<SurvivorDef>("Assets/Gordon Freeman/Character/ProfessionalSurvivor.asset").RegisterSurvivorDef<SurvivorDef>((Action<SurvivorDef>)null); ProfessionalDefaultSkin = assetBundle.LoadAsset<SkinDef>("Assets/Gordon Freeman/Character/ProfessionalDefault.asset"); CommandoPistolPrimary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Commando/CommandoBodyFirePistol.asset").WaitForCompletion(); ToolbotRebarPrimary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Toolbot/ToolbotBodyFireSpear.asset").WaitForCompletion(); ArtificerPlasmaPrimary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Mage/MageBodyFireLightningBolt.asset").WaitForCompletion(); CommandoBallSecondary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Commando/CommandoBodyBarrage.asset").WaitForCompletion(); ToolbotGrenadePrimary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Toolbot/ToolbotBodyStunDrone.asset").WaitForCompletion(); ArtificerBombPrimary = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Mage/MageBodyNovaBomb.asset").WaitForCompletion(); CommandoRollUtility = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Commando/CommandoBodyRoll.asset").WaitForCompletion(); MercenaryEvisSpecial = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Merc/MercBodyEvis.asset").WaitForCompletion(); MeleePrimary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalMeleePrimary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); MeleeSecondary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalMeleeSecondary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); HandheldsPrimary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalPistolsPrimary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); HandheldsSecondary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalPistolsSecondary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); LightWeaponsPrimary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalLightWeaponsPrimary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); LightWeaponsSecondary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalLightWeaponsSecondary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); HeavyWeaponsPrimary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalHeavyWeaponsPrimary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); HeavyWeaponsSecondary = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalHeavyWeaponsSecondary.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); ProfessionalUtilitySkillFamily = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalUtilityFamily.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); ProfessionalSpecialSkillFamily = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/ProfessionalSpecialFamily.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); PaintsFamily = assetBundle.LoadAsset<SkillFamily>("Assets/Gordon Freeman/SkillFamilies/Paints.asset").RegisterSkillFamily<SkillFamily>((Action<SkillFamily>)null); PistolsPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalPistolsPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); PistolsSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalPistolsSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); RevolverPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalRevolverPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); RevolverSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalRevolverSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); CrossbowPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalCrossbowPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); CrossbowSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalCrossbowSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); CrossbowScope = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalCrossbowScope.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); ShotgunPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalShotgunPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); ShotgunSecondary = assetBundle.LoadAsset<HookTarckingSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalShotgunSecondary.asset").RegisterSkillDef<HookTarckingSkillDef>((Action<HookTarckingSkillDef>)null); SMGPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalSMGPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); SMGSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalSMGSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); RocketLauncherPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalRocketlauncherPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); RocketLauncherSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalRocketlauncherSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); TauCannonPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalTauCannonPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); TauCannonSecondary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalTauCannonSecondary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); ((SteppedSkillDef)TauCannonSecondary).stepGraceDuration = float.PositiveInfinity; GluonGunPrimary = assetBundle.LoadAsset<ProfessionalSkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalGluonGunPrimary.asset").RegisterSkillDef<ProfessionalSkillDef>((Action<ProfessionalSkillDef>)null); QuickDash = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Weapons/ProfessionalQuickDash.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); SpecialOne = assetBundle.LoadAsset<HeroSpecialSkillDef>("Assets/Gordon Freeman/Skills/Specials/ProfessionalSpecialOne.asset").RegisterSkillDef(); Airblast = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Specials/ProfessionalAirblast.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); Chainsaw = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Specials/ProfessionalChainsaw.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); GravityGun = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Specials/ProfessionalGravityGun.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); Parry = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Specials/ProfessionalParry.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); Yellow = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Colors/Yellow.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); Black = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Colors/Black.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); Blue = assetBundle.LoadAsset<SkillDef>("Assets/Gordon Freeman/Skills/Colors/Blue.asset").RegisterSkillDef<SkillDef>((Action<SkillDef>)null); WeaponWheelSelector = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/HUD/HeroCrosshair.prefab"); WeaponButtonSelector = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/HUD/WeaponButton.prefab"); SpecialButtonSelector = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/HUD/SpecialButton.prefab"); UtilitySkillCharge = assetBundle.LoadAsset<GameObject>("Assets/Gordon Freeman/HUD/UtiltiyCharge.prefab"); typeof(BaseFreemanState).RegisterEntityState(); typeof(ProfessionalCharacterMain).RegisterEntityState(); typeof(FreemanBulletAttack).RegisterEntityState(); typeof(FreemanFireProjectile).RegisterEntityState(); typeof(FreemanScope).RegisterEntityState(); typeof(FirePistols).RegisterEntityState(); typeof(FirePistolsBarrage).RegisterEntityState(); typeof(FireRevolver).RegisterEntityState(); typeof(FireCoin).RegisterEntityState(); typeof(FireSMG).RegisterEntityState(); typeof(FireSMGGrenade).RegisterEntityState(); typeof(FireShotgunBase).RegisterEntityState(); typeof(FireShotgunBurst).RegisterEntityState(); typeof(FireDart).RegisterEntityState(); typeof(ScopeRebar).RegisterEntityState(); typeof(FireRebar).RegisterEntityState(); typeof(FireTau).RegisterEntityState(); typeof(ChargeTau).RegisterEntityState(); typeof(FireRocket).RegisterEntityState(); typeof(SwitchRocketState).RegisterEntityState(); typeof(FreemanDash).RegisterEntityState(); typeof(FreemanSlam).RegisterEntityState(); typeof(FireGluon).RegisterEntityState(); typeof(FireParry).RegisterEntityState(); typeof(FireKnockback).RegisterEntityState(); typeof(FireChainsaw).RegisterEntityState(); typeof(FireGravityGun).RegisterEntityState(); typeof(FireHook).RegisterEntityState(); typeof(ScopeSniper).RegisterEntityState(); typeof(FireSniper).RegisterEntityState(); typeof(FireJackhammer).RegisterEntityState(); typeof(JackhammerSlingshot).RegisterEntityState(); typeof(FireCrucible).RegisterEntityState(); typeof(CrucibleSlam).RegisterEntityState(); object obj = <>c.<>9__95_0; if (obj == null) { CollectContentPackProvidersDelegate val5 = delegate(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)new ContentPacks()); }; <>c.<>9__95_0 = val5; obj = (object)val5; } ContentManager.collectContentPackProviders += (CollectContentPackProvidersDelegate)obj; } public static void SetActualSkillName(SkillDef skillDef, string name) { } public static CustomMusicTrackDef CreateCustomMusicTrack(string cachedName, string musicBankName, uint groupId, uint stateId) { //IL_0018: 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_007a: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) CustomMusicTrackDef val = ScriptableObject.CreateInstance<CustomMusicTrackDef>(); ((MusicTrackDef)val).cachedName = cachedName; val.SoundBankName = musicBankName; CustomState item = default(CustomState); item.GroupId = groupId; item.StateId = stateId; CustomState item2 = default(CustomState); item2.GroupId = 792781730u; item2.StateId = 89505537u; customMusicTracks.Add(val); if (val.CustomStates == null) { val.CustomStates = new List<CustomState>(); } val.CustomStates.Add(item); val.CustomStates.Add(item2); ContentPacks.musics.Add((MusicTrackDef)(object)val); string key = cachedName.ToLower().Trim(); stringToMusic.Add(key, (MusicTrackDef)(object)val); return val; } public static CustomMusicData CreateSoundbank(PluginInfo pluginInfo, string path, string musicBankName, string initBankName, string playEventString) { return CreateSoundbank(pluginInfo.Metadata, path, musicBankName, initBankName, playEventString); } public static CustomMusicData CreateSoundbank(BepInPlugin bepInPlugin, string path, string musicBankName, string initBankName, string playEventString) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown CustomMusicData val = new CustomMusicData(); val.BanksFolderPath = path; val.BepInPlugin = bepInPlugin; val.InitBankName = initBankName; val.PlayMusicSystemEventName = playEventString; val.SoundBankName = musicBankName; Music.Add(val); return val; } } public class ProfessionalCharacterMain : GenericCharacterMain { public class ButtonState { public float time; public int id; } private bool isSprintDown; public ProfessionalBodyComponent professionalBodyComponent; public ProfessionalCharacterComponent professionalCharacterComponent; public List<ButtonState> buttonStates = new List<ButtonState>(); public override void OnEnter() { ((GenericCharacterMain)this).OnEnter(); professionalBodyComponent = ((Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && ((EntityState)this).characterBody is ProfessionalBodyComponent) ? (((EntityState)this).characterBody as ProfessionalBodyComponent) : null); professionalCharacterComponent = professionalBodyComponent?.professionalCharacterComponent; if ((Object)(object)professionalCharacterComponent != (Object)null) { professionalBodyComponent.professionalCharacterMain = this; } buttonStates.Add(new ButtonState { id = 0 }); buttonStates.Add(new ButtonState { id = 1 }); buttonStates.Add(new ButtonState { id = 2 }); buttonStates.Add(new ButtonState { id = 3 }); } public override void OnExit() { ((GenericCharacterMain)this).OnExit(); buttonStates.Clear(); } public override void Update() { ((GenericCharacterMain)this).Update(); } public void OperateDoubleInput(int id) { ButtonState buttonState = buttonStates[id]; if (buttonState == null) { return; } foreach (ButtonState buttonState2 in buttonStates) { if (buttonState2 != null && buttonState2 != buttonState) { buttonState2.time = 0f; } } if (buttonState.time > 0f) { isSprintDown = true; } buttonState.time = 0.15f; } public override void FixedUpdate() { ((GenericCharacterMain)this).FixedUpdate(); } public override void HandleMovements() { if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.utility) && Object.op_Implicit((Object)(object)((EntityState)this).inputBank) && ((ButtonState)(ref ((EntityState)this).inputBank.sprint)).justPressed) { ((EntityState)this).skillLocator.utility.ExecuteIfReady(); } if ((Object)(object)((EntityState)this).characterBody != (Object)null) { ((GenericCharacterMain)this).HandleMovements(); } } public override bool CanExecuteSkill(GenericSkill skillSlot) { if (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && ((Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.primary) && (Object)(object)skillSlot == (Object)(object)((EntityState)this).skillLocator.primary) || (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.secondary) && (Object)(object)skillSlot == (Object)(object)((EntityState)this).skillLocator.secondary)) && Object.op_Implicit((Object)(object)professionalCharacterComponent) && Object.op_Implicit((Object)(object)professionalCharacterComponent.weaponWheelSelectorComponent) && Object.op_Implicit((Object)(object)professionalCharacterComponent.weaponWheelSelectorComponent.mainSelector) && professionalCharacterComponent.weaponWheelSelectorComponent.mainSelector.activeSelf) { return false; } if (Object.op_Implicit((Object)(object)((EntityState)this).characterBody) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) && Object.op_Implicit((Object)(object)((EntityState)this).skillLocator.utility) && (Object)(object)skillSlot == (Object)(object)((EntityState)this).skillLocator.utility) { return false; } return ((GenericCharacterMain)this).CanExecuteSkill(skillSlot); } } public class ProfessionalBodyComponent : CharacterBody { public ProfessionalCharacterComponent professionalCharacterComponent; public ProfessionalCharacterMain professionalCharacterMain; } public class ProfessionalCharacterComponent : MonoBehaviour { public ProfessionalSkillLocator[] weapons; public GenericSkill[] skills; public ProfessionalSkillLocator currentWeapon; public ProfessionalModelComponent modelComponent; public GenericSkill currentSpecial; public EntityStateMachine specialStateMachine; [HideInInspector] public ProfessionalSkillLocator previousWeapon; [HideInInspector] public GenericSkill previousSpecial; public CharacterBody characterBody; public InputBankTest inputBankTest; public SkillLocator skillLocator; [HideInInspector] public OverlayController overlayController; [HideInInspector] public GameObject weaponWheelSelector; [HideInInspector] public GraphicRaycaster raycaster; [HideInInspector] public MPEventSystemLocator eventSystemLocator; [HideInInspector] public WeaponWheelSelectorComponent weaponWheelSelectorComponent; [HideInInspector] public HGButton selectedButton; public GameObject weaponObject; public FirstPersonCamera firstPersonCamera; [HideInInspector] public UtiltiyCharges utilityCharges; private int _rampageCount; public float rampageStopwatch; private bool built = false; public int rampageCount { get { return _rampageCount; } set { rampageStopwatch = 0f; if (value != _rampageCount) { _rampageCount = value; Main.rampage = _rampageCount > 5; } } } public void OnEnable() { //IL_0016: 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_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) if (!built) { built = true; OverlayCreationParams val = default(OverlayCreationParams); val.prefab = Assets.WeaponWheelSelector; val.childLocatorEntry = "CrosshairExtras"; OverlayCreationParams val2 = val; overlayController = HudOverlayManager.AddOverlay(((Component)this).gameObject, val2); overlayController.onInstanceAdded += OnOverlayInstanceAdded; overlayController.onInstanceRemove += OnOverlayInstanceRemoved; } void OnOverlayInstanceAdded(OverlayController controller, GameObject @object) { //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01bc: Expected O, but got Unknown //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Expected O, but got Unknown //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_0449: Expected O, but got Unknown //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0469: Expected O, but got Unknown weaponWheelSelector = @object; weaponWheelSelectorComponent = @object.GetComponent<WeaponWheelSelectorComponent>(); ChildLocator childLocator = weaponWheelSelectorComponent.childLocator; weaponWheelSelectorComponent.professionalCharacterComponent = this; raycaster = weaponWheelSelectorComponent.graphicRaycaster; eventSystemLocator = weaponWheelSelectorComponent.mPEventSystemLocator; WeaponWheelSelectorComponent obj = weaponWheelSelectorComponent; CharacterBody obj2 = characterBody; object networkUser; if (obj2 == null) { networkUser = null; } else { CharacterMaster master = obj2.master; if (master == null) { networkUser = null; } else { PlayerCharacterMasterController playerCharacterMasterController = master.playerCharacterMasterController; networkUser = ((playerCharacterMasterController != null) ? playerCharacterMasterController.networkUser : null); } } obj.networkUser = (NetworkUser)networkUser; WeaponWheelSelectorComponent obj3 = weaponWheelSelectorComponent; WeaponWheelSelectorComponent obj4 = weaponWheelSelectorComponent; object player; if (obj4 == null) { player = null; } else { NetworkUser networkUser2 = obj4.networkUser; player = ((networkUser2 != null) ? networkUser2.inputPlayer : null); } obj3.player = (Player)player; Transform val3 = childLocator.FindChild("WeaponSelector"); Transform val4 = childLocator.FindChild("SpecialsSelector"); Transform val5 = childLocator.FindChild("UtilityCharges"); utilityCharges = ((Component)val5).GetComponent<UtiltiyCharges>(); utilityCharges.skillLocator = skillLocator; ProfessionalSkillLocator[] array = weapons; foreach (ProfessionalSkillLocator professionalSkillLocator in array) { GameObject val6 = Object.Instantiate<GameObject>(Assets.WeaponButtonSelector, val3); WeaponButtonSelectorComponent weaponButtonSelectorComponent = val6.GetComponent<WeaponButtonSelectorComponent>(); weaponButtonSelectorComponent.professionalSkillLocator = professionalSkillLocator; weaponButtonSelectorComponent.weaponWheelSelectorComponent = weaponWheelSelectorComponent; HGButton hGButton2 = weaponButtonSelectorComponent.hGButton; ((Selectable)hGButton2).image.sprite = weaponButtonSelectorComponent.professionalSkillLocator.primarySkill.baseSkill.icon; professionalSkillLocator.button = hGButton2; ((UnityEvent)((Button)hGButton2).onClick).AddListener(new UnityAction(OnButtonClicked)); ((MPButton)hGButton2).onSelect.AddListener(new UnityAction(OnButtonSelected)); ProfessionalSkillDef professionalSkillDef = ((Object.op_Implicit((Object)(object)professionalSkillLocator.primarySkill) && Object.op_Implicit((Object)(object)professionalSkillLocator.primarySkill.baseSkill) && professionalSkillLocator.primarySkill.baseSkill is ProfessionalSkillDef) ? (professionalSkillLocator.primarySkill.skillDef as ProfessionalSkillDef) : null); if (Object.op_Implicit((Object)(object)professionalSkillDef) && Object.op_Implicit((Object)(object)professionalSkillDef.weaponModel)) { modelComponent.AddWeaponModel((SkillDef)(object)professionalSkillDef, professionalSkillDef.weaponModel); modelComponent.AddWeaponCrosshair(professionalSkillLocator, professionalSkillDef.weaponModel, @object.transform.parent); } weaponWheelSelectorComponent.weaponButtons.Add(hGButton2); void OnButtonClicked() { weaponButtonSelectorComponent.SelectWeapon(); } void OnButtonSelected() { selectedButton = hGButton2; } } bool flag = false; if (Object.op_Implicit((Object)(object)skillLocator)) { GenericSkill[] allSkills = skillLocator.allSkills; foreach (GenericSkill val7 in allSkills) { HeroSpecialSkillDef heroSpecialSkillDef = (((Object)(object)val7.baseSkill != (Object)null && val7.baseSkill is HeroSpecialSkillDef) ? (val7.baseSkill as HeroSpecialSkillDef) : null); if (!((Object)(object)heroSpecialSkillDef == (Object)null)) { List<GenericSkill> list = skillLocator.allSkills.ToList(); SkillDef[] skillsSelection = heroSpecialSkillDef.skillsSelection; foreach (SkillDef val8 in skillsSelection) { GenericSkill val9 = ((Component)this).gameObject.AddComponent<GenericSkill>(); val9.defaultSkillDef = val8; val9.baseSkill = val8; val9.skillDef = val8; val9.AssignSkill(val8, false); val9.stateMachine = specialStateMachine; val9._skillFamily = val7.skillFamily; list.Add(val9); GameObject val10 = Object.Instantiate<GameObject>(Assets.SpecialButtonSelector, val4); SpeicalButtonSelectorComponent specialButtonSelectorComponent = val10.GetComponent<SpeicalButtonSelectorComponent>(); specialButtonSelectorComponent.genericSkill = val9; specialButtonSelectorComponent.weaponWheelSelectorComponent = weaponWheelSelectorComponent; HGButton hGButton = specialButtonSelectorComponent.hGButton; ((Selectable)hGButton).image.sprite = specialButtonSelectorComponent.genericSkill.baseSkill.icon; ((UnityEvent)((Button)hGButton).onClick).AddListener(new UnityAction(OnButtonClicked)); ((MPButton)hGButton).onSelect.AddListener(new UnityAction(OnButtonSelected)); weaponWheelSelectorComponent.specialButtons.Add(hGButton); if (skills == null) { skills = (GenericSkill[])(object)new GenericSkill[0]; } CollectionExtensions.AddItem<GenericSkill>((IEnumerable<GenericSkill>)skills, val9); if (!flag) { currentSpecial = val9; flag = true; } void OnButtonClicked() { specialButtonSelectorComponent.SelectSpecial(); } void OnButtonSelected() { selectedButton = hGButton; } } skillLocator.allSkills = list.ToArray(); } } } if (flag) { ApplySpecial(currentSpecial); } @object.SetActive(false); } static void OnOverlayInstanceRemoved(OverlayController controller, GameObject @object) { } } public void OnDisable() { Main.rampage = false; } public void RegisterKill(CharacterBody characterBody) { rampageCount++; } public void RegisterHit(CharacterBody characterBody, DamageInfo damageInfo) { rampageStopwatch = 0f; } public void FixedUpdate() { if (!Object.op_Implicit((Object)(object)inputBankTest)) { return; } if (((ButtonState)(ref inputBankTest.skill3)).justPressed) { weaponWheelSelectorComponent.EnableMainSelector(); } if (((ButtonState)(ref inputBankTest.skill3)).justReleased) { if (Object.op_Implicit((Object)(object)selectedButton)) { ((Button)selectedButton).Press(); } weaponWheelSelectorComponent.DisableMainSelector(); } } public void Update() { //IL_002e: 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) rampageStopwatch += Time.deltaTime; if (rampageStopwatch > 7f) { rampageCount = 0; } if (Input.mouseScrollDelta.y > 0f) { SwapUp(); } if (Input.mouseScrollDelta.y < 0f) { SwapDown(); } } public void SwapUp() { ProfessionalSkillLocator professionalSkillLocator = weapons[0]; Array.Copy(weapons, 1, weapons, 0, weapons.Length - 1); ProfessionalSkillLocator professionalSkillLocator2 = currentWeapon; weapons[weapons.Length - 1] = professionalSkillLocator2; ApplyWeapon(professionalSkillLocator); } public void SwapDown() { Array.Reverse(weapons); ProfessionalSkillLocator professionalSkillLocator = weapons[0]; Array.Copy(weapons, 1, weapons, 0, weapons.Length - 1); ProfessionalSkillLocator professionalSkillLocator2 = currentWeapon; weapons[weapons.Length - 1] = professionalSkillLocator2; Array.Reverse(weapons); ApplyWeapon(professionalSkillLocator); } public void ApplyWeapon(ProfessionalSkillLocator professionalSkillLocator) { if ((Object)(object)professionalSkillLocator == (Object)null) { return; } previousWeapon = currentWeapon; currentWeapon = professionalSkillLocator; skillLocator.primary.stateMachine.SetNextStateToMain(); skillLocator.secondary.stateMachine.SetNextStateToMain(); skillLocator.primary = professionalSkillLocator.primarySkill; skillLocator.secondary = professionalSkillLocator.secondarySkill; Extensions.LinkSkill(skillLocator.primary, (GenericSkill)null); Extensions.LinkSkill(skillLocator.secondary, (GenericSkill)null); skillLocator.primary.RecalculateValues(); skillLocator.secondary.RecalculateValues(); ProfessionalSkillLocator[] array = weapons; foreach (ProfessionalSkillLocator professionalSkillLocator2 in array) { if ((Object)(object)professionalSkillLocator2.primarySkill != (Object)(object)skillLocator.primary) { Extensions.LinkSkill(professionalSkillLocator2.primarySkill, skillLocator.primary); professionalSkillLocator2.primarySkill.RecalculateValues(); } if ((Object)(object)professionalSkillLocator2.secondarySkill != (Object)(object)skillLocator.secondary) { Extensions.LinkSkill(professionalSkillLocator2.secondarySkill, skillLocator.secondary); professionalSkillLocator2.secondarySkill.RecalculateValues(); } } modelComponent.PullOnWeaponModel(professionalSkillLocator.primarySkill.baseSkill); } public void ApplySpecial(GenericSkill genericSkill) { if ((Object)(object)genericSkill == (Object)null) { return; } previousSpecial = currentSpecial; currentSpecial = genericSkill; skillLocator.special.stateMachine.SetNextStateToMain(); skillLocator.special = genericSkill; Extensions.LinkSkill(skillLocator.special, (GenericSkill)null); skillLocator.special.RecalculateValues(); GenericSkill[] array = skills; foreach (GenericSkill val in array) { if (!((Object)(object)val == (Object)null)) { Extensions.LinkSkill(val, genericSkill); val.RecalculateValues(); } } } } public class ProfessionalModelComponent : MonoBehaviour { [HideInInspector] public Dictionary<SkillDef, WeaponModel> skillsToWeaponModels = new Dictionary<SkillDef, WeaponModel>(); [HideInInspector] public Dictionary<ProfessionalSkillLocator, WeaponCrosshairBaseAddition> skillsToWeaponCrosshairs = new Dictionary<ProfessionalSkillLocator, WeaponCrosshairBaseAddition>(); public Transform weaponsTransform; public Transform weaponTransform; [HideInInspector] public WeaponModel currentWeaponModel; [HideInInspector] public WeaponCrosshairBaseAddition currentWeaponCrosshair; public FirstPersonCamera firstPersonCamera; public CameraTargetParams cameraTargetParams; public ChildLocator childLocator; [HideInInspector] public Vector3 weaponVector; [HideInInspector] public Vector3 weaponVectorVelocity; public static float weaponVectorSmoothTime = 0.2f; public WeaponModel AddWeaponModel(SkillDef skillDef, WeaponModelDef weaponModelDef) { if ((Object)(object)skillDef == (Object)null || (Object)(object)weaponModelDef == (Object)null || skillsToWeaponModels.ContainsKey(skillDef)) { return null; } WeaponModel weaponModel = weaponModelDef.ApplyWeaponModel(this); skillsToWeaponModels.Add(skillDef, weaponModel); return weaponModel; } public WeaponCrosshairBaseAddition AddWeaponCrosshair(ProfessionalSkillLocator professionalSkillLocator, WeaponModelDef weaponModelDef, Transform transform) { if ((Object)(object)weaponModelDef == (Object)null || (Object)(object)weaponModelDef.crosshairAddition == (Object)null) { return null; } WeaponCrosshairBaseAddition weaponCrosshairBaseAddition = Object.Instantiate<WeaponCrosshairBaseAddition>(weaponModelDef.crosshairAddition, transform); ((Component)weaponCrosshairBaseAddition).gameObject.SetActive(false); weaponCrosshairBaseAddition.primarySkill = professionalSkillLocator.primarySkill; weaponCrosshairBaseAddition.secondarySkill = professionalSkillLocator.secondarySkill; skillsToWeaponCrosshairs.Add(professionalSkillLocator, weaponCrosshairBaseAddition); return weaponCrosshairBaseAddition; } public WeaponModel PullOnWeaponModel(SkillDef skillDef) { //IL_0078: 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_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b3: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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) if ((Object)(object)skillDef == (Object)null) { return null; } if (!skillsToWeaponModels.ContainsKey(skillDef)) { PullOffCurrentWeaponModel(); return null; } WeaponModel weaponModel = skillsToWeaponModels[skillDef]; if (Object.op_Implicit((Object)(object)currentWeaponModel)) { PullOffCurrentWeaponModel(); } ((Component)weaponModel).gameObject.SetActive(true); currentWeaponModel = weaponModel; ((Component)weaponModel).transform.rotation = Quaternion.identity; ((Component)weaponModel).transform.SetParent(weaponTransform, false); if (Object.op_Implicit((Object)(object)cameraTargetParams)) { cameraTargetParams.recoil = Vector2.zero; cameraTargetParams.recoilVelocity = Vector2.zero; } weaponVector = new Vector3(45f, 0f, 0f); int num = childLocator.FindChildIndex("Muzzle"); if (num != -1) { childLocator.transformPairs[num].transform = (Object.op_Implicit((Object)(object)weaponModel.muzzleTransform) ? weaponModel.muzzleTransform : weaponTransform); } return weaponModel; } public WeaponCrosshairBaseAddition TurnOnWeaponCrosshair(ProfessionalSkillLocator professionalSkillLocator) { if ((Object)(object)professionalSkillLocator == (Object)null) { return null; } if (!skillsToWeaponCrosshairs.ContainsKey(professionalSkillLocator)) { return null; } WeaponCrosshairBaseAddition weaponCrosshairBaseAddition = (currentWeaponCrosshair = skillsToWeaponCrosshairs[professionalSkillLocator]); ((Component)weaponCrosshairBaseAddition).gameObject.SetActive(true); return weaponCrosshairBaseAddition; } public void TurnOffCurrentWeaponCrosshair() { WeaponCrosshairBaseAddition weaponCrosshairBaseAddition = currentWeaponCrosshair; if (!((Object)(object)weaponCrosshairBaseAddition == (Object)null)) { ((Component)weaponCrosshairBaseAddition).gameObject.SetActive(false); currentWeaponCrosshair = null; } } public void PullOffCurrentWeaponModel() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)currentWeaponModel == (Object)null)) { ((Component)currentWeaponModel).transform.SetParent(weaponsTransform, false); ((Component)currentWeaponModel).gameObject.SetActive(false); ((Component)currentWeaponModel).transform.rotation = Quaternion.identity; currentWeaponModel = null; int num = childLocator.FindChildIndex("Muzzle"); if (num != -1) { childLocator.transformPairs[num].transform = weaponTransform; } } } public void Update() { //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_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_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_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_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: 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) if (weaponVector != Vector3.zero) { weaponVector = Vector3.SmoothDamp(weaponVector, Vector3.zero, ref weaponVectorVelocity, weaponVectorSmoothTime); } if (Object.op_Implicit((Object)(object)currentWeaponModel) && Object.op_Implicit((Object)(object)cameraTargetParams)) { bool flag = cameraTargetParams.recoil == Vector2.zero; if (!flag) { weaponVector = Vector3.zero; } ((Component)currentWeaponModel).transform.localEulerAngles = new Vector3((flag ? 0f : (cameraTargetParams.recoil.y * 2f)) + weaponVector.x, (flag ? 0f : (cameraTargetParams.recoil.x * 2f)) + weaponVector.y, 0f + weaponVector.z); ((Component)currentWeaponModel).transform.localPosition = new Vector3(0f, 0f, flag ? 0f : ((0f - ((Vector2)(ref cameraTargetParams.recoil)).magnitude) / 2f)); } } } public class ProfessionalSkillLocator : MonoBehaviour { public GenericSkill primarySkill; public GenericSkill secondarySkill; [HideInInspector] public HGButton button; public void Start() { if (!((Object)(object)primarySkill == (Object)null) && !((Object)(object)secondarySkill == (Object)null)) { SkillDef val = ((Object.op_Implicit((Object)(object)primarySkill.baseSkill) && primarySkill.baseSkill is ProfessionalSkillDef) ? (primarySkill.baseSkill as ProfessionalSkillDef).secondarySkillDef : null); if (!((Object)(object)val == (Object)null)) { secondarySkill.SetBaseSkill(val); secondarySkill.AssignSkill(val, false); } } } } public class RadialLayout : LayoutGroup { public float fDistance; [Range(0f, 360f)] public float MinAngle; [Range(0f, 360f)] public float MaxAngle; [Range(0f, 360f)] public float StartAngle; public bool OnlyLayoutVisible = false; public override void OnEnable() { ((LayoutGroup)this).OnEnable(); CalculateRadial(); } public override void SetLayoutHorizontal() { } public override void SetLayoutVertical() { } public override void CalculateLayoutInputVertical() { CalculateRadial(); } public override void CalculateLayoutInputHorizontal() { CalculateRadial(); } public override void OnDisable() { ((DrivenRectTransformTracker)(ref base.m_Tracker)).Clear(); LayoutRebuilder.MarkLayoutForRebuild(((LayoutGroup)this).rectTransform); } private void CalculateRadial() { //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Expected O, but got Unknown //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_016c: Unknown result type (might be due to invalid IL or missing references) //IL_016e: 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) //IL_0177: Unknown result type (might be due to invalid IL or missing references) ((DrivenRectTransformTracker)(ref base.m_Tracker)).Clear(); if (((Component)this).transform.childCount == 0) { return; } int num = 0; if (OnlyLayoutVisible) { for (int i = 0; i < ((Component)this).transform.childCount; i++) { RectTransform val = (RectTransform)((Component)this).transform.GetChild(i); if ((Object)(object)val != (Object)null && ((Component)val).gameObject.activeSelf) { num++; } } } else { num = ((Component)this).transform.childCount; } float num2 = (MaxAngle - MinAngle) / (float)num; float num3 = StartAngle; Vector3 val3 = default(Vector3); Vector2 val4 = default(Vector2); for (int j = 0; j < ((Component)this).transform.childCount; j++) { RectTransform val2 = (RectTransform)((Component)this).transform.GetChild(j); if ((Object)(object)val2 != (Object)null && (!OnlyLayoutVisible || ((Component)val2).gameObject.activeSelf)) { ((DrivenRectTransformTracker)(ref base.m_Tracker)).Add((Object)(object)this, val2, (DrivenTransformProperties)52998); ((Vector3)(ref val3))..ctor(Mathf.Cos(num3 * (MathF.PI / 180f)), Mathf.Sin(num3 * (MathF.PI / 180f)), 0f); ((Transform)val2).localPosition = val3 * fDistance; ((Vector2)(ref val4))..ctor(0.5f, 0.5f); val2.pivot = val4; Vector2 anchorMin = (val2.anchorMax = val4); val2.anchorMin = anchorMin; num3 += num2; } } } } public class WeaponWheelSelectorComponent : MonoBehaviour { [HideInInspector] public ProfessionalCharacterComponent professionalCharacterComponent; public GameObject weaponSelector; public GameObject specialsSelector; public GameObject selectedSelector; public GameObject mainSelector; [HideInInspector] public List<HGButton> weaponButtons = new List<HGButton>(); [HideInInspector] public List<HGButton> specialButtons = new List<HGButton>(); [HideInInspector] public Player player; [HideInInspector] public NetworkUser networkUser; public ChildLocator childLocator; public GraphicRaycaster graphicRaycaster; public MPEventSystemLocator mPEventSystemLocator; public LineRenderer lineRenderer; public Canvas canvas; [HideInInspector] public Vector2 previousMousePosition = Vector2.zero; [HideInInspector] public Vector2 arrowDirection = new Vector2(0f, 1f); public static float cursorLength = 64f; public bool isSpecialSelectorSelected => (Object)(object)selectedSelector == (Object)(object)specialsSelector; public void ScrollUp() { selectedSelector.SetActive(false); selectedSelector = (isSpecialSelectorSelected ? weaponSelector : specialsSelector); selectedSelector.SetActive(true); } public void ScrollDown() { selectedSelector.SetActive(false); selectedSelector = (isSpecialSelectorSelected ? weaponSelector : specialsSelector); selectedSelector.SetActive(true); } public void SelectWeaponSelector() { selectedSelector.SetActive(false); selectedSelector = weaponSelector; selectedSelector.SetActive(true); } public void SelectSpecialsSelector() { selectedSelector.SetActive(false); selectedSelector = specialsSelector; selectedSelector.SetActive(true); } public void Update() { //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_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_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_0129: Unknown result type (might be due to invalid IL or missing references) //IL_0141: Unknown result type (might be due to invalid IL or missing references) //IL_0151: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_01fb: Unknown result type (might be due to invalid IL or missing references) if (player != null) { if (player.GetButtonDown(7)) { ScrollUp(); } if (player.GetButtonDown(8)) { ScrollDown(); } } if ((Object)(object)professionalCharacterComponent == (Object)null || !mainSelector.activeSelf) { return; } MPEventSystemLocator obj = mPEventSystemLocator; object obj2; if (obj == null) { obj2 = null; } else { MPEventSystem eventSystem = obj.eventSystem; obj2 = ((eventSystem != null) ? ((EventSystem)eventSystem).currentInputModule : null); } MPInputModule val = (MPInputModule)obj2; MPInput val2 = (MPInput)(((int)val != 0) ? ((BaseInputModule)val).input : null); if ((Object)(object)val2 == (Object)null) { return; } Vector2 val3 = default(Vector2); ((Vector2)(ref val3))..ctor((float)Screen.width / 2f, (float)Screen.height / 2f); Vector2 val4 = val2.internalMousePosition - val3; val2.CenterCursor(); previousMousePosition = val2.internalMousePosition; if (val4 != Vector2.down) { arrowDirection = ((Vector2)(ref val4)).normalized; } lineRenderer.SetPosition(0, ((Component)this).transform.position); lineRenderer.SetPosition(1, Vector2.op_Implicit(new Vector2(((Component)this).transform.position.x, ((Component)this).transform.position.y) + arrowDirection * cursorLength)); float num = 3720f; HGButton val5 = null; int num2 = 0; if (specialButtons != null && weaponButtons != null) { foreach (HGButton item in ((Object)(object)selectedSelector == (Object)(object)weaponSelector) ? weaponButtons : specialButtons) { if (!((Object)(object)item == (Object)null)) { float num3 = Vector3.Angle(Vector2.op_Implicit(val4), ((Component)item).transform.localPosition); if (num3 < num) { num = num3; val5 = item; } num2++; } } } if (!((Object)(object)val5 == (Object)null)) { ((Selectable)val5).Select(); } } public void DisableMainSelector() { SelectWeaponSelector(); mainSelector.SetActive(false); } public void EnableMainSelector() { SelectWeaponSelector(); mainSelector.SetActive(true); } } public class WeaponButtonSelectorComponent : MonoBehaviour { public ProfessionalSkillLocator professionalSkillLocator; public WeaponWheelSelectorComponent weaponWheelSelectorComponent; public HGButton hGButton; public HGTextMeshProUGUI primaryText; public HGTextMeshProUGUI secondaryText; public void FixedUpdate() { if ((Object)(object)professionalSkillLocator == (Object)null) { return; } GenericSkill primarySkill = professionalSkillLocator.primarySkill; GenericSkill secondarySkill = professionalSkillLocator.secondarySkill; if (!((Object)(object)primarySkill == (Object)null) || !((Object)(object)secondarySkill == (Object)null)) { if (Object.op_Implicit((Object)(object)primarySkill) && Object.op_Implicit((Object)(object)primaryText)) { ((TMP_Text)primaryText).text = "1S ST: " + primarySkill.stock + "\n1S CD:" + primarySkill.cooldownRemaining; } if (Object.op_Implicit((Object)(object)secondarySkill) && Object.op_Implicit((Object)(object)secondaryText)) { ((TMP_Text)secondaryText).text = "2S ST: " + secondarySkill.stock + "\n2S CD:" + secondarySkill.cooldownRemaining; } } } public void SelectWeapon() { if (!((Object)(object)weaponWheelSelectorComponent == (Object)null) && !((Object)(object)weaponWheelSelectorComponent.professionalCharacterComponent == (Object)null)) { weaponWheelSelectorComponent.professionalCharacterComponent.ApplyWeapon(professionalSkillLocator); weaponWheelSelectorComponent.DisableMainSelector(); } } } public class SpeicalButtonSelectorComponent : MonoBehaviour { public GenericSkill genericSkill; public WeaponWheelSelectorComponent weaponWheelSelectorComponent; public HGButton hGButton; public HeroSpecialSkillDef weaponSpecialSkillDef; public void SelectSpecial() { if (!((Object)(object)weaponWheelSelectorComponent == (Object)null) && !((Object)(object)weaponWheelSelectorComponent.professionalCharacterComponent == (Object)null)) { weaponWheelSelectorComponent.professionalCharacterComponent.ApplySpecial(genericSkill); weaponWheelSelectorComponent.DisableMainSelector(); } } } public class FreemanProjectileController : ProjectileController { public float contradictGravityValue; public void Start() { //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002e: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) ((ProjectileController)this).Start(); if (base.rigidbody.useGravity) { Rigidbody rigidbody = base.rigidbody; rigidbody.velocity += Physics.gravity * contradictGravityValue * -1f; } } } public class CointHitComponent : MonoBehaviour { public static List<CointHitComponent> cointHitComponents = new List<CointHitComponent>(); public TeamFilter teamFilter; public bool hit = false; public FreemanProjectileController freemanProjectileController; public GameObject owner => ((ProjectileController)(freemanProjectileController?)).owner; public void OnEnable() { cointHitComponents.Add(this); } public void OnDisable() { if (cointHitComponents.Contains(this)) { cointHitComponents.Remove(this); } } public void FixedUpdate() { //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: 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) if (Object.op_Implicit((Object)(object)owner)) { Vector3 val = owner.transform.position - ((Component)this).transform.position; float magnitude = ((Vector3)(ref val)).magnitude; float num = MathF.Max(magnitude / 5f, 1f); ((Component)this).transform.localScale = new Vector3(num, num, num); } } public void Hit(BulletAttack bulletAttack) { //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Expected O, but got Unknown //IL_00db: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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_0112: Unknown result type (might be due to invalid IL or missing references) //IL_011f: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_012c: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_019b: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01d9: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_01ed: Unknown result type (might be due to invalid IL or missing references) //IL_01f2: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) //IL_01f9: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Unknown result type (might be due to invalid IL or missing references) //IL_0203: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_020f: Unknown result type (might be due to invalid IL or missing references) //IL_021b: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) //IL_023f: Unknown result type (might be due to invalid IL or missing references) //IL_0241: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026e: 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_0285: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0298: Unknown result type (might be due to invalid IL or missing references) //IL_029d: Unknown result type (might be due to invalid IL or missing references) //IL_02a2: 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_02a9: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: 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_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02ea: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030e: Unknown result type (might be due to invalid IL or missing references) //IL_031a: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Expected O, but got Unknown //IL_007d: 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_0092: Unknown result type (might be due to invalid IL or missing references) //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) hit = true; if (cointHitComponents.Contains(this)) { cointHitComponents.Remove(this); } Vector3 val = Vector3.zero; float num = 99980000f; if (cointHitComponents.Count > 0) { for (int i = 0; i < cointHitComponents.Count; i++) { CointHitComponent cointHitComponent = cointHitComponents[i]; if (!((Object)(object)cointHitComponent == (Object)null) && !cointHitComponent.hit) { Vector3 val2 = ((Component)cointHitComponent).transform.position - ((Component)this).transform.position; float sqrMagnitude = ((Vector3)(ref val2)).sqrMagnitude; if (!(num < sqrMagnitude)) { num = sqrMagnitude; val = val2; } } } } else { BullseyeSearch val3 = new BullseyeSearch(); val3.teamMaskFilter = TeamMask.all; ((TeamMask)(ref val3.teamMaskFilter)).RemoveTeam(teamFilter.teamIndex); val3.filterByLoS = true; val3.searchOrigin = ((Component)this).transform.position; val3.searchDirection = ((Component)this).transform.eulerAngles; val3.sortMode = (SortMode)1; val3.maxDistanceFilter = 9999f; val3.maxAngleFilter = 361f; val3.RefreshCandidates(); val3.FilterOutGameObject(((Component)this).gameObject); HurtBox val4 = val3.GetResults().FirstOrDefault(); if ((Object)(object)val4 != (Object)null) { val = ((Component)val4).transform.position - ((Component)this).transform.position; } } if (val == Vector3.zero) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } BulletAttack val5 = new BulletAttack { aimVector = val, allowTrajectoryAimAssist = false, bulletCount = 1u, damage = bulletAttack.damage * 2f, damageColorIndex = bulletAttack.damageColorIndex, damageType = bulletAttack.damageType, falloffModel = bulletAttack.falloffModel, filterCallback = bulletAttack.filterCallback, force = bulletAttack.force, hitCallback = bulletAttack.hitCallback, hitEffectPrefab = bulletAttack.hitEffectPrefab, hitMask = bulletAttack.hitMask, isCrit = bulletAttack.isCrit, maxDistance = 9999f, maxSpread = 0f, minSpread = 0f, modifyOutgoingDamageCallback = bulletAttack.modifyOutgoingDamageCallback, owner = bulletAttack.owner, origin = ((Component)this).transform.position, procChainMask = bulletAttack.procChainMask, procCoefficient = bulletAttack.procCoefficient, radius = bulletAttack.radius, sniper = bulletAttack.sniper, weapon = ((Component)this).gameObject, smartCollision = bulletAttack.smartCollision, stopperMask = bulletAttack.stopperMask, tracerEffectPrefab = bulletAttack.tracerEffectPrefab, queryTriggerInteraction = bulletAttack.queryTriggerInteraction, spreadPitchScale = bulletAttack.spreadPitchScale, spreadYawScale = bulletAttack.spreadYawScale }; val5.Fire(); Object.Destroy((Object)(object)((Component)this).gameObject); } } public class FirstPersonCamera : MonoBehaviour { [CompilerGenerated] private sealed class <Details>d__23 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public float value; public FirstPersonCamera <>4__this; private List<Material>.Enumerator <>s__1; private Material <material>5__2; private List<Material>.Enumerator <>s__3; private Material <material>5__4; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <Details>d__23(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>s__1 = default(List<Material>.Enumerator); <material>5__2 = null; <>s__3 = default(List<Material>.Enumerator); <material>5__4 = null; <>1__state = -2; } private bool MoveNext() { //IL_0067: 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_0093: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: 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_01d0: Unknown result type (might be due to invalid IL or missing references) //IL_01db: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0233: Unknown result type (might be due to invalid IL or missing references) switch (<>1__state) { default: return false; case 0: <>1__state = -1; return false; case 1: <>1__state = -1; <>s__1 = Main.TriPlanarMaterials.GetEnumerator(); try { while (<>s__1.MoveNext()) { <material>5__2 = <>s__1.Current; <material>5__2.SetTextureScale("_RedChannelTopTex", <material>5__2.GetTextureScale("_RedChannelTopTex") * value); <material>5__2.SetTextureScale("_RedChannelSideTex", <material>5__2.GetTextureScale("_RedChannelSideTex") * value); <material>5__2.SetTextureScale("_GreenChannelTex", <material>5__2.GetTextureScale("_GreenChannelTex") * value); <material>5__2.SetTextureScale("_BlueChannelTex", <material>5__2.GetTextureScale("_BlueChannelTex") * value); <material>5__2.SetTextureScale("_NormalTex", <material>5__2.GetTextureScale("_NormalTex") * value); <material>5__2 = null; } } finally { ((IDisposable)<>s__1).Dispose(); } <>s__1 = default(List<Material>.Enumerator); <>s__3 = Main.SnowToppedMaterials.GetEnumerator(); try { while (<>s__3.MoveNext()) { <material>5__4 = <>s__3.Current; <material>5__4.SetTextureScale("_SnowTex", <material>5__4.GetTextureScale("_SnowTex") * value); <material>5__4.SetTextureScale("_SnowNormalTex", <material>5__4.GetTextureScale("_SnowNormalTex") * value); <material>5__4.SetTextureScale("_DirtTex", <material>5__4.GetTextureScale("_DirtTex") * value); <material>5__4.SetTextureScale("_DirtNormalTex", <material>5__4.GetTextureScale("_DirtNormalTex") * value); <material>5__4 = null; } } finally { ((IDisposable)<>s__3).Dispose(); } <>s__3 = default(List<Material>.Enumerator); return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static float fov = 100f; public CharacterBody characterBody; public ProfessionalModelComponent professionalModelComponent; [HideInInspector] public PlayerCharacterMasterController playerCharacterMasterController; [HideInInspector] public CameraRigController cameraRigController; [HideInInspector] public Camera previousCameraObject; [HideInInspector] public Camera currentCameraObject; [HideInInspector] public CharacterModel characterModel; [HideInInspector] public HurtBoxGroup hurtBoxGroup; [HideInInspector] public float previousFov; [HideInInspector] public SceneCamera sceneCamera; [HideInInspector] public Camera weaponCamera; [HideInInspector] public InputBankTest inputBankTest; [HideInInspector] public Transform weaponCameraTransform; [HideInInspector] public Transform previousWeaponParentTransform; [HideInInspector] public Vector3 previousWeaponPosition; [HideInInspector] public static Vector3 cameraWeaponPosition = Vector3.zero; private bool enabled = false; public static float textureScale = 2f; private bool waitToIncreaseDetails = true; public void FixedUpdate() { //IL_02fd: Unknown result type (might be due to invalid IL or missing references) //IL_0302: Unknown result type (might be due to invalid IL or missing references) //IL_031e: Unknown result type (might be due to invalid IL or missing references) //IL_0382: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Unknown result type (might be due to invalid IL or missing references) if (enabled) { return; } enabled = true; if ((Object)(object)characterBody == (Object)null || !characterBody.isPlayerControlled || !Util.HasEffectiveAuthority(characterBody.networkIdentity)) { return; } if (Object.op_Implicit((Object)(object)characterBody.modelLocator) && Object.op_Implicit((Object)(object)characterBody.modelLocator.modelTransform)) { characterModel = ((Component)characterBody.modelLocator.modelTransform).gameObject.GetComponent<CharacterModel>(); if ((Object)(object)characterModel != (Object)null) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount + 1; } } if (Object.op_Implicit((Object)(object)characterBody.inputBank)) { inputBankTest = characterBody.inputBank; } if ((Object)(object)characterBody.master == (Object)null) { return; } playerCharacterMasterController = characterBody.master.playerCharacterMasterController; if ((Object)(object)playerCharacterMasterController == (Object)null) { return; } cameraRigController = playerCharacterMasterController.networkUser?.cameraRigController; if ((Object)(object)cameraRigController == (Object)null) { return; } previousCameraObject = cameraRigController.sceneCam; if (!((Object)(object)previousCameraObject == (Object)null)) { currentCameraObject = Object.Instantiate<Camera>(previousCameraObject, ((Component)this).transform); ScreenDamage component = ((Component)currentCameraObject).GetComponent<ScreenDamage>(); ScreenDamage component2 = ((Component)previousCameraObject).GetComponent<ScreenDamage>(); component.cameraRigController = cameraRigController; component.screenDamageCalculatorDefault = component2.screenDamageCalculatorDefault; component.workingScreenDamageCalculator = component2.workingScreenDamageCalculator; previousFov = cameraRigController.baseFov; cameraRigController.baseFov = fov; currentCameraObject.nearClipPlane = 0.01f; ((Component)previousCameraObject).gameObject.SetActive(false); cameraRigController.sceneCam = currentCameraObject; ProfessionalBodyComponent professionalBodyComponent = ((characterBody is ProfessionalBodyComponent) ? (characterBody as ProfessionalBodyComponent) : null); sceneCamera = ((Component)currentCameraObject).GetComponent<SceneCamera>(); if ((Object)(object)sceneCamera != (Object)null) { sceneCamera.cameraRigController = cameraRigController; } weaponCamera = Object.Instantiate<Camera>(currentCameraObject, ((Component)currentCameraObject).transform, false); weaponCameraTransform = ((Component)weaponCamera).transform; Transform weaponTransform = professionalModelComponent.weaponTransform; previousWeaponParentTransform = weaponTransform.parent; weaponTransform.SetParent(weaponCameraTransform, false); previousWeaponPosition = weaponCameraTransform.localPosition; weaponCamera.cullingMask = 65536; weaponCameraTransform.localPosition = Vector3.zero; ((Behaviour)weaponCamera).enabled = true; weaponCamera.depth = 1f; weaponCamera.clearFlags = (CameraClearFlags)3; weaponCamera.fieldOfView = fov; weaponCameraTransform.SetParent(((Component)currentCameraObject).transform); weaponCameraTransform.localPosition = cameraWeaponPosition; weaponCameraTransform.localEulerAngles = Vector3.zero; SceneCamera component3 = ((Component)weaponCamera).GetComponent<SceneCamera>(); if ((Object)(object)component3 != (Object)null) { component3.cameraRigController = cameraRigController; } PostProcessLayer component4 = ((Component)weaponCamera).GetComponent<PostProcessLayer>(); Object.Destroy((Object)(object)component4); } } public void OnEnable() { } private void IncreaseDetails() { waitToIncreaseDetails = false; IEnumerator enumerator = Details(textureScale); while (enumerator.MoveNext()) { } } [IteratorStateMachine(typeof(<Details>d__23))] private IEnumerator Details(float value) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <Details>d__23(0) { <>4__this = this, value = value }; } private void DecreaseDetails() { IEnumerator enumerator = Details(1f / textureScale); while (enumerator.MoveNext()) { } } public void LateUpdate() { //IL_003b: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)cameraRigController) && Object.op_Implicit((Object)(object)currentCameraObject)) { ((Component)currentCameraObject).transform.rotation = ((Component)cameraRigController).transform.rotation; } } public void OnDisable() { if (!enabled) { return; } if (Object.op_Implicit((Object)(object)weaponCamera)) { professionalModelComponent.weaponTransform.SetParent(previousWeaponParentTransform, false); Object.Destroy((Object)(object)((Component)weaponCamera).gameObject); } if (Object.op_Implicit((Object)(object)currentCameraObject)) { Object.Destroy((Object)(object)((Component)currentCameraObject).gameObject); } if ((Object)(object)characterModel != (Object)null) { CharacterModel obj = characterModel; int invisibilityCount = obj.invisibilityCount; obj.invisibilityCount = invisibilityCount - 1; } if (Object.op_Implicit((Object)(object)cameraRigController)) { cameraRigController.baseFov = previousFov; } if (Object.op_Implicit((Object)(object)previousCameraObject)) { ((Component)previousCameraObject).gameObject.SetActive(true); if (Object.op_Implicit((Object)(object)cameraRigController)) { cameraRigController.sceneCam = previousCameraObject; } } enabled = false; } } public class ProjectileOverchargeComponent : MonoBehaviour { public static float maxCharge = 5f; private float _charge; public ProjectileController controller; public BlastAttack blastAttack; public EntityStateMachine entityStateMachine; public EntityState entityState; public Vector3 vel; public float charge { get { return _charge; } set { _charge = value; if (_charge > maxCharge) { Explode(); } } } public void FixedUpdate() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)controller) && Object.op_Implicit((Object)(object)controller.rigidbody)) { controller.rigidbody.velocity = Vector3.SmoothDamp(controller.rigidbody.velocity, Vector3.zero, ref vel, 0.2f); } if (Object.op_Implicit((Object)(object)entityStateMachine) && entityStateMachine.state != entityState) { Explode(); } } public void ModifyBlastAttack() { //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) BlastAttack obj = blastAttack; obj.baseDamage *= charge + 1f; BlastAttack obj2 = blastAttack; obj2.radius *= charge + 1f; blastAttack.position = ((Component)this).transform.position; } public void Explode() { //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_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown //IL_0018: Unknown result type (might be due to invalid IL or missing references) ModifyBlastAttack(); if (NetworkServer.active) { blastAttack.Fire(); } EffectData val = new EffectData { origin = blastAttack.position, scale = blastAttack.radius }; EffectManager.SpawnEffect(Assets.Explosion, val, true); ProjectileExplosion component = ((Component)this).GetComponent<ProjectileExplosion>(); if (Object.op_Implicit((Object)(object)component)) { Object.Destroy((Object)(object)component); } Object.Destroy((Object)(object)((Component)this).gameObject); } } public class UtiltiyCharges : MonoBehaviour { [HideInInspector] public int maxStocks; [HideInInspector] public SkillLocator skillLocator; [HideInInspector] public List<Image> bars = new List<Image>(); public void FixedUpdate() { //IL_00cb: 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) if ((Object)(object)skillLocator == (Object)null) { return; } GenericSkill utility = skillLocator.utility; if ((Object)(object)utility == (Object)null) { return; } if (maxStocks != utility.maxStock) { Rebuild(utility); } float num = (utility.rechargeStopwatch + (float)utility.stock * utility.finalRechargeInterval) / utility.finalRechargeInterval; foreach (Image bar in bars) { bar.fillAmount = ((num > 1f) ? 1f : num); if (bar.fillAmount >= 1f) { ((Graphic)bar).color = Color.green; } else { ((Graphic)bar).color = Color.red; } num -= 1f; if (num < 0f) { num = 0f; } } maxStocks = utility.maxStock; } public void Rebuild(GenericSkill utilitySkill) { //IL_00e5: 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) int num = 0; bool flag = false; if (maxStocks > utilitySkill.maxStock) { num = maxStocks - utilitySkill.maxStock; flag = true; } else { num = utilitySkill.maxStock - maxStocks; } for (int i = 0; i < num; i++) { if (flag) { Image val = bars[bars.Count - 1]; bars.Remove(val); Object.Destroy((Object)(object)((Component)val).gameObject); } else { GameObject val2 = Object.Instantiate<GameObject>(Assets.UtilitySkillCharge, ((Component)this).transform); Image component = val2.GetComponent<Image>(); bars.Add(component); } } foreach (Image bar in bars) { ((Graphic)bar).rectTransform.sizeDelta = new Vector2(8f, 16f); ((Graphic)bar).color = Color.red; } } } public class HookTracker : MonoBehaviour { public Dictionary<Collider, HookTarget> keyValuePairs = new Dictionary<Collider, HookTarget>(); public HookTarget target; public CharacterBody ownerBody; public InputBankTest inputBankTest; public static float radius = 5f; public static float range = 64f; public bool active; public static GameObject indicatorPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/HuntressTrackingIndicator"); public Indicator indicator; public void Awake() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown indicator = new Indicator(((Component)this).gameObject, indicatorPrefab); } public void FixedUpdate() { //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_0027: 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_0038: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) if (!active) { target = null; return; } Ray aimRay = GetAimRay(); Collider[] array = Physics.OverlapCapsule(((Ray)(ref aimRay)).origin + ((Ray)(ref aimRay)).direction * radius, ((Ray)(ref aimRay)).origin + ((Ray)(ref aimRay)).direction * range, radius, LayerMask.op_Implicit(CommonMasks.characterBodies) + LayerMask.op_Implicit(CommonMasks.fakeActorLayers), (QueryTriggerInteraction)0); float num = 360f; HookTarget hookTarget = null; Collider[] array2 = array; foreach (Collider val in array2) { HookTarget value = null; if (!keyValuePairs.TryGetValue(val, out value)) { value = ((Component)val).gameObject.AddComponent<HookTarget>(); value.collider = val; value.keyValuePairs = keyValuePairs; keyValuePairs.Add(val, value); } if (Object.op_Implicit((Object)(object)value) && Object.op_Implicit((Object)(object)value.characterBody) && (Object)(object)ownerBody != (Object)(object)value.characterBody) { float num2 = Vector3.Angle(value.position, ((Ray)(ref aimRay)).origin); if (num2 < num) { num = num2; hookTarget = value; } } } target = hookTarget; } public void Update() { if (active) { indicator.active = true; } else { indicator.active = false; } indicator.targetTransform = (Object.op_Implicit((Object)(object)target) ? ((Component)target).transform : null); } public Ray GetAimRay() { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_001e: 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_004b: 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_0064: 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) Ray result = default(Ray); ((Ray)(ref result)).origin = (Object.op_Implicit((Object)(object)inputBankTest) ? inputBankTest.aimOrigin : ((Component)this).transform.position); ((Ray)(ref result)).direction = (Object.op_Implicit((Object)(object)inputBankTest) ? inputBankTest.aimDirection : ((Component)this).transform.forward); return result; } } public class HookTarget : MonoBehaviour { public CharacterBody characterBody; public Collider collider; public Dictionary<Collider, HookTarget> keyValuePairs; public Vector3 position { get { //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_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_002d: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)characterBody == (Object)null) { return ((Component)this).transform.position; } return characterBody.corePosition; } } public void Awake() { if (!Object.op_Implicit((Object)(object)characterBody)) { characterBody = ((Compon