Decompiled source of Tracer v1.6.3
Tracer.dll
Decompiled 8 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; 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.Configuration; using EntityStates; using EntityStates.Commando.CommandoWeapon; using EntityStates.Huntress; using EntityStates.Loader; using KinematicCharacterController; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; 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: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Tracer")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Tracer")] [assembly: AssemblyTitle("Tracer")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Tracer; public static class Achievements { [RegisterAchievement("TRACER_CHARACTER", "ACHIEVEMENT_TRACER_CHARACTER_UNLOCKABLE_ID", null, null)] public class SurvivorUnlockable : BaseAchievement { public override void OnInstall() { ((BaseAchievement)this).OnInstall(); Stage.onStageStartGlobal += Stage_onStageStartGlobal; } private void Stage_onStageStartGlobal(Stage stage) { //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)Run.instance) && ((object)Run.instance).GetType() == typeof(Run) && Run.instance.loopClearCount > 0) { SceneDef sceneDefForCurrentScene = SceneCatalog.GetSceneDefForCurrentScene(); if (Object.op_Implicit((Object)(object)sceneDefForCurrentScene) && (int)sceneDefForCurrentScene.sceneType == 1 && !sceneDefForCurrentScene.isFinalStage) { ((BaseAchievement)this).Grant(); } } } public override void OnUninstall() { ((BaseAchievement)this).OnUninstall(); } } [RegisterAchievement("TRACER_SPECIAL", "ACHIEVEMENT_TRACER_SPECIAL_UNLOCKABLE_ID", null, typeof(ReduceTimeToZeroServerAchievement))] public class SpecialUnlockable : BaseAchievement { private class ReduceTimeToZeroServerAchievement : BaseServerAchievement { public override void OnUninstall() { ((BaseServerAchievement)this).OnUninstall(); } } public override BodyIndex LookUpRequiredBodyIndex() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex("TracerBody"); } public override void OnInstall() { ((BaseAchievement)this).OnInstall(); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Tracer.onTimeReduced += Tracer_onTimeReduced; } private void Tracer_onTimeReduced(float currentTime) { if (currentTime == 0f) { ((BaseAchievement)this).Grant(); } } public override void OnBodyRequirementBroken() { Tracer.onTimeReduced -= Tracer_onTimeReduced; ((BaseAchievement)this).OnBodyRequirementBroken(); } } [RegisterAchievement("TRACER_MASTERY", "ACHIEVEMENT_TRACER_MASTERY_UNLOCKABLE_ID", null, null)] public class MasteryUnlockable : BasePerSurvivorClearGameMonsoonAchievement { public override BodyIndex LookUpRequiredBodyIndex() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) return BodyCatalog.FindBodyIndex("TracerBody"); } } internal static UnlockableDef characterUnlock; internal static UnlockableDef masteryUnlock; internal static UnlockableDef specialUnlock; public static void RegisterUnlockables() { characterUnlock = NewUnlockable<SurvivorUnlockable>("CHARACTER", Assets.MainAssetBundle.LoadAsset<Sprite>("portrait2"), "Slipstream", "Use the Primordial Teleporter to loop back to the first stage."); masteryUnlock = NewUnlockable<MasteryUnlockable>("MASTERY", Assets.charPortraitSkinSlipstream, "Tracer: Mastery", "As Tracer, beat the game or obliterate on Monsoon."); specialUnlock = NewUnlockable<SpecialUnlockable>("SPECIAL", Assets.icon4Alt, "Tracer: Back to the Past", "As Tracer, reverse the time back to 0 with the Strange Stopwatch."); } private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement { string text = "ACHIEVEMENT_TRACER_"; UnlockableDef val = ScriptableObject.CreateInstance<UnlockableDef>(); string langName = text + AchievementIdentifier + "_NAME"; string langDesc = text + AchievementIdentifier + "_DESCRIPTION"; LanguageAPI.Add(langName, Title); LanguageAPI.Add(langDesc, Description); Func<string> func = () => Language.GetStringFormatted("UNLOCKED_FORMAT", new object[2] { Language.GetString(langName), Language.GetString(langDesc) }); Type typeFromHandle = typeof(T); val.cachedName = text + AchievementIdentifier + "_UNLOCKABLE_ID"; val.getHowToUnlockString = func; val.getUnlockedString = func; val.achievementIcon = Icon; val.sortScore = 200; val.hidden = false; ContentAddition.AddUnlockableDef(val); return val; } } public static class Assets { public static AssetBundle MainAssetBundle; public static GameObject pulseBombmdl; public static Texture charPortrait; public static Sprite charPortraitSkin; public static Sprite charPortraitSkinSlipstream; public static Sprite charPortraitSkinGraffiti; public static Sprite charPortraitSkinWillOWisp; public static Sprite charPortraitSkinPunk; public static Sprite iconP; public static Sprite icon1; public static Sprite icon2; public static Sprite icon2Alt; public static Sprite icon2AltD; public static Sprite icon3; public static Sprite icon3Alt; public static Sprite icon4; public static Sprite icon4Alt; public static void PopulateAssets() { //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00eb: Expected O, but got Unknown //IL_0138: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Tracer.tracer"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } using (Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Tracer.Tracer.bnk")) { byte[] array = new byte[stream2.Length]; stream2.Read(array, 0, array.Length); SoundBanks.Add(array); } using (Stream stream3 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Tracer.blinkR.bnk")) { byte[] array2 = new byte[stream3.Length]; stream3.Read(array2, 0, array2.Length); SoundBanks.Add(array2); } pulseBombmdl = MainAssetBundle.LoadAsset<GameObject>("pulsebomb"); Material val = new Material(Prefabs.Load<Shader>("RoR2/Base/Shaders/HGStandard.shader")); val.SetTexture("_MainTex", (Texture)(object)MainAssetBundle.LoadAsset<Texture2D>("Bomb_d")); val.SetTexture("_EmTex", (Texture)(object)MainAssetBundle.LoadAsset<Texture2D>("Bomb_e")); val.SetFloat("_EmPower", 10f); val.SetColor("_EmColor", Color.cyan); ((Renderer)pulseBombmdl.GetComponent<MeshRenderer>()).material = val; charPortrait = (Texture)(object)MainAssetBundle.LoadAsset<Sprite>("portrait2").texture; charPortraitSkin = MainAssetBundle.LoadAsset<Sprite>("portraitbase"); charPortraitSkinSlipstream = MainAssetBundle.LoadAsset<Sprite>("portrait-slipstream"); charPortraitSkinGraffiti = MainAssetBundle.LoadAsset<Sprite>("portrait-graffiti"); charPortraitSkinWillOWisp = MainAssetBundle.LoadAsset<Sprite>("portrait-wisp"); charPortraitSkinPunk = MainAssetBundle.LoadAsset<Sprite>("portrait-punk"); iconP = MainAssetBundle.LoadAsset<Sprite>("PassiveIcon1"); icon1 = MainAssetBundle.LoadAsset<Sprite>("Skill1Icon"); icon2 = MainAssetBundle.LoadAsset<Sprite>("Skill2Icon"); icon2Alt = MainAssetBundle.LoadAsset<Sprite>("Pulse_Rounds_Icon"); icon2AltD = MainAssetBundle.LoadAsset<Sprite>("Melee_Icon"); icon3 = MainAssetBundle.LoadAsset<Sprite>("Skill3Icon"); icon3Alt = MainAssetBundle.LoadAsset<Sprite>("Skill3AltIcon"); icon4 = MainAssetBundle.LoadAsset<Sprite>("Skill4Icon"); icon4Alt = MainAssetBundle.LoadAsset<Sprite>("Skill4AltIcon"); } } internal class MineBehaviour : MonoBehaviour { private void Start() { ProjectileController component = ((Component)this).GetComponent<ProjectileController>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.owner)) { TickingBombController component2 = component.owner.gameObject.GetComponent<TickingBombController>(); if (Object.op_Implicit((Object)(object)component2)) { component2.prefab = ((Component)this).gameObject; component2.StartTicking(); } } } } internal class TracerTemporaryOverlay : MonoBehaviour { private float stopwatch; private float duration = 3f; public Material materialInstance; private AnimationCurve curve = AnimationCurve.Linear(0f, 0f, 1f, 0.45f); private RecallBehaviour behaviour; public static void AddTemporaryOverlay(RecallBehaviour behaviour, GameObject target, Material mat, CharacterModel characterModel) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Expected O, but got Unknown //IL_0029: 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_0030: Unknown result type (might be due to invalid IL or missing references) TracerTemporaryOverlay tracerTemporaryOverlay = target.AddComponent<TracerTemporaryOverlay>(); tracerTemporaryOverlay.behaviour = behaviour; tracerTemporaryOverlay.materialInstance = new Material(mat); RendererInfo[] baseRendererInfos = characterModel.baseRendererInfos; foreach (RendererInfo val in baseRendererInfos) { val.renderer.material = tracerTemporaryOverlay.materialInstance; } } private void FixedUpdate() { if (!Object.op_Implicit((Object)(object)behaviour) || behaviour.track) { stopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)materialInstance)) { materialInstance.SetFloat("_ExternalAlpha", curve.Evaluate(stopwatch / duration)); } } } } internal class RecallBehaviour : MonoBehaviour { public float stopwatch; public float maxTime = 3f; public int maxCount = (Tracer.performanceMode.Value ? 12 : 55); public List<Vector3> positions = new List<Vector3>(); public List<Vector3> camPositions = new List<Vector3>(); public List<Vector3> directions = new List<Vector3>(); public List<Quaternion> rotations = new List<Quaternion>(); public List<GameObject> models = new List<GameObject>(); public bool track = true; public CameraRigController camera; private Transform modelTransform; private Transform[] bones; private CharacterDirection direction; private Animator animator; private HealthComponent health; private float healthStopwatch; public float lastRecordedHealth; public float timeBetweenSaves => maxTime / (float)maxCount; private void Start() { health = ((Component)this).GetComponent<HealthComponent>(); lastRecordedHealth = health.fullHealth; direction = ((Component)this).GetComponent<CharacterDirection>(); ModelLocator modelLocator = ((Component)this).GetComponent<CharacterBody>().modelLocator; modelTransform = modelLocator.modelTransform; animator = ((Component)modelTransform).GetComponent<Animator>(); bones = ((Component)((Component)modelTransform).GetComponent<ChildLocator>().FindChild("Armature")).GetComponentsInChildren<Transform>(); } private void OnDisable() { Reset(); } public void Reset() { camera.isCutscene = false; directions.Clear(); positions.Clear(); camPositions.Clear(); rotations.Clear(); if (models.Count > 0) { for (int i = 0; i < models.Count; i++) { Object.Destroy((Object)(object)models[i]); } models.Clear(); } lastRecordedHealth = health.health; healthStopwatch = 0f; track = true; } private void FixedUpdate() { //IL_0121: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Unknown result type (might be due to invalid IL or missing references) //IL_02a6: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)camera) && Util.HasEffectiveAuthority(((Component)this).gameObject)) { camera = CameraRigController.instancesList.Find(delegate(CameraRigController x) { GameObject val2 = (x.target = ((Component)this).gameObject); return Object.op_Implicit((Object)(object)val2); }); } if (!track) { stopwatch = 0f; healthStopwatch = 0f; return; } if (Object.op_Implicit((Object)(object)health)) { healthStopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)health) && healthStopwatch >= 3f) { healthStopwatch = 0f; lastRecordedHealth = health.health; } } stopwatch += Time.fixedDeltaTime; if (!(stopwatch >= timeBetweenSaves)) { return; } stopwatch = 0f; GameObject val = (GameObject)((!Tracer.potatoMode.Value) ? ((object)Object.Instantiate<GameObject>(Prefabs.tracerModel)) : ((object)new GameObject("TracerTrail"))); val.transform.position = ((Component)modelTransform).transform.position; val.transform.rotation = ((Component)modelTransform).transform.rotation; val.transform.localScale = ((Component)modelTransform).transform.localScale; if (!Tracer.potatoMode.Value) { Transform[] componentsInChildren = ((Component)val.GetComponent<ChildLocator>().FindChild("Armature")).GetComponentsInChildren<Transform>(); for (int i = 0; i < bones.Length; i++) { if (Object.op_Implicit((Object)(object)componentsInChildren[i])) { ((Component)componentsInChildren[i]).transform.localPosition = ((Component)bones[i]).transform.localPosition; ((Component)componentsInChildren[i]).transform.localRotation = ((Component)bones[i]).transform.localRotation; } } TracerTemporaryOverlay.AddTemporaryOverlay(this, val, Prefabs.mat, val.GetComponent<CharacterModel>()); } models.Add(val); if (models.Count > maxCount) { Object.Destroy((Object)(object)models[0]); models.RemoveAt(0); } directions.Add(direction.forward); positions.Add(((Component)this).transform.position); if (Object.op_Implicit((Object)(object)camera)) { rotations.Add(((Component)camera).transform.rotation); camPositions.Add(((Component)camera).transform.position); if (camPositions.Count > maxCount) { camPositions.RemoveAt(0); } if (rotations.Count > maxCount) { rotations.RemoveAt(0); } } if (positions.Count > maxCount) { positions.RemoveAt(0); } } } internal class TickingBombController : MonoBehaviour { public float ticks; public GameObject prefab; private void FixedUpdate() { if ((Object)(object)prefab == (Object)null) { StopTicking(); } } public void Detonate(float num) { if (Object.op_Implicit((Object)(object)prefab)) { ProjectileImpactExplosion component = prefab.GetComponent<ProjectileImpactExplosion>(); if (Object.op_Implicit((Object)(object)component)) { ((ProjectileExplosion)component).blastDamageCoefficient = ticks + num; component.lifetimeAfterImpact = 0f; StopTicking(); } } } public void StopTicking() { ((MonoBehaviour)this).CancelInvoke(); ticks = 0f; } public void StartTicking() { ((MonoBehaviour)this).InvokeRepeating("Tick", 0f, 1f); } public void Tick() { ticks += 1f; } } public class Blink : BaseState { private Transform modelTransform; private float stopwatch; private Vector3 blinkVector = Vector3.zero; [SerializeField] public float duration = 0.3f; [SerializeField] public float speedCoefficient = 8f; [SerializeField] public string beginSoundString; [SerializeField] public string endSoundString; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; public override void OnEnter() { //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_00bf: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); AkSoundEngine.PostEvent(Sounds.Blink, ((Component)((EntityState)this).characterBody).gameObject); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent<CharacterModel>(); hurtboxGroup = ((Component)modelTransform).GetComponent<HurtBoxGroup>(); } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount++; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val = hurtboxGroup; int hurtBoxesDeactivatorCounter = val.hurtBoxesDeactivatorCounter + 1; val.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } blinkVector = GetBlinkVector(); CreateBlinkEffect(Util.GetCorePosition(((EntityState)this).gameObject)); } protected virtual Vector3 GetBlinkVector() { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_002e: 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) return (((EntityState)this).isAuthority && ((EntityState)this).inputBank.skill1.down) ? ((EntityState)this).inputBank.moveVector : ((EntityState)this).inputBank.aimDirection; } private void CreateBlinkEffect(Vector3 origin) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(blinkVector); val.origin = origin; EffectManager.SpawnEffect(BlinkState.blinkPrefab, val, false); } public override void FixedUpdate() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += blinkVector * (base.moveSpeedStat * speedCoefficient * Time.fixedDeltaTime); } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (!((EntityState)this).outer.destroying) { Util.PlaySound(endSoundString, ((EntityState)this).gameObject); CreateBlinkEffect(Util.GetCorePosition(((EntityState)this).gameObject)); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val.duration = 0.6f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = Prefabs.Load<Material>("RoR2/Base/Huntress/matHuntressFlashBright.mat"); val.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val2.duration = 0.7f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = Prefabs.Load<Material>("RoR2/Base/Huntress/matHuntressFlashExpanded.mat"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); } } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount--; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val3 = hurtboxGroup; int hurtBoxesDeactivatorCounter = val3.hurtBoxesDeactivatorCounter - 1; val3.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ChronoTriggers : BaseSkillState { private Transform modelTransform; private float stopwatch; private Vector3 blinkVector = Vector3.zero; [SerializeField] public float duration = 0.3f; [SerializeField] public float speedCoefficient = 8f; [SerializeField] public string beginSoundString; [SerializeField] public string endSoundString; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; private float chargeDuration; private float charge; public float baseChargeDuration = 3f; public static float minCharge = 25f; private uint soundID; private bool playR1; private bool playR2; private bool playR3; public override void OnEnter() { ((BaseState)this).OnEnter(); playR1 = false; playR2 = false; playR3 = false; chargeDuration = baseChargeDuration / ((BaseState)this).attackSpeedStat; Util.PlaySound(BaseChargeFist.enterSFXString, ((EntityState)this).gameObject); soundID = Util.PlaySound(BaseChargeFist.startChargeLoopSFXString, ((EntityState)this).gameObject); } public override void Update() { ((EntityState)this).Update(); float num = 100f * charge; if (!playR1 && num > 32f && num < 34f) { playR1 = true; AkSoundEngine.PostEvent(Sounds.blinkR1, ((Component)((EntityState)this).characterBody).gameObject); } if (!playR2 && num > 65f && num < 67f) { playR2 = true; AkSoundEngine.PostEvent(Sounds.blinkR2, ((Component)((EntityState)this).characterBody).gameObject); } if (!playR3 && num > 98f && num < 100f) { playR3 = true; AkSoundEngine.PostEvent(Sounds.blinkR3, ((Component)((EntityState)this).characterBody).gameObject); } Mathf.Clamp01(((EntityState)this).age / chargeDuration); } public override void FixedUpdate() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); charge = Mathf.Clamp01(((EntityState)this).fixedAge / chargeDuration); AkSoundEngine.SetRTPCValueByPlayingID("loaderShift_chargeAmount", charge * 100f, soundID); ((EntityState)this).characterBody.SetSpreadBloom(charge, true); ((EntityState)this).characterBody.SetAimTimer(3f); if (((EntityState)this).isAuthority) { AuthorityFixedUpdate(); } } private void AuthorityFixedUpdate() { if (!ShouldKeepChargingAuthority()) { ((EntityState)this).outer.SetNextState(GetNextStateAuthority()); } } protected virtual bool ShouldKeepChargingAuthority() { return ((BaseSkillState)this).IsKeyDownAuthority(); } protected virtual EntityState GetNextStateAuthority() { float num = 100f * charge; if (num <= minCharge) { return (EntityState)(object)new Blink2 { speedCoefficient = 200f }; } return (EntityState)(object)new Blink2 { speedCoefficient = 8f * num }; } public override void OnExit() { ((EntityState)this).OnExit(); Util.PlaySound(BaseChargeFist.endChargeLoopSFXString, ((EntityState)this).gameObject); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class Blink2 : BaseState { private Transform modelTransform; private float stopwatch; private Vector3 blinkVector = Vector3.zero; [SerializeField] public float duration = 0.01f; [SerializeField] public float speedCoefficient = 8f; [SerializeField] public string beginSoundString; [SerializeField] public string endSoundString; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; public override void OnEnter() { //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_00bf: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); AkSoundEngine.PostEvent(Sounds.Blink, ((Component)((EntityState)this).characterBody).gameObject); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent<CharacterModel>(); hurtboxGroup = ((Component)modelTransform).GetComponent<HurtBoxGroup>(); } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount++; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val = hurtboxGroup; int hurtBoxesDeactivatorCounter = val.hurtBoxesDeactivatorCounter + 1; val.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } blinkVector = GetBlinkVector(); CreateBlinkEffect(Util.GetCorePosition(((EntityState)this).gameObject)); } protected virtual Vector3 GetBlinkVector() { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) return ((EntityState)this).inputBank.aimDirection; } private void CreateBlinkEffect(Vector3 origin) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(blinkVector); val.origin = origin; EffectManager.SpawnEffect(BlinkState.blinkPrefab, val, false); } public override void FixedUpdate() { //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_006f: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); stopwatch += Time.fixedDeltaTime; if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && Object.op_Implicit((Object)(object)((EntityState)this).characterDirection)) { ((EntityState)this).characterMotor.velocity = Vector3.zero; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += blinkVector * (base.moveSpeedStat * speedCoefficient * Time.fixedDeltaTime); } if (stopwatch >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (!((EntityState)this).outer.destroying) { Util.PlaySound(endSoundString, ((EntityState)this).gameObject); CreateBlinkEffect(Util.GetCorePosition(((EntityState)this).gameObject)); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val.duration = 0.6f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = Prefabs.Load<Material>("RoR2/Base/Huntress/matHuntressFlashBright.mat"); val.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val2.duration = 0.7f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = Prefabs.Load<Material>("RoR2/Base/Huntress/matHuntressFlashExpanded.mat"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); } } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount--; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val3 = hurtboxGroup; int hurtBoxesDeactivatorCounter = val3.hurtBoxesDeactivatorCounter - 1; val3.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } internal class PartingGift : Recall { private float healAmount; private bool healed = false; public override void OnEnter() { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * 10f; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; val.owner = ((EntityState)this).gameObject; val.position = ((EntityState)this).characterBody.footPosition; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Prefabs.minePrefab; Ray aimRay = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } } public override void Heal() { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) if (!(behaviour.lastRecordedHealth > ((EntityState)this).healthComponent.health)) { healAmount = behaviour.lastRecordedHealth - ((EntityState)this).healthComponent.health; if (NetworkServer.active) { ((EntityState)this).healthComponent.Heal(healAmount, default(ProcChainMask), true); } healed = true; } } public override void OnExit() { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) if (healed) { float num = 18f; EffectData val = new EffectData { origin = ((EntityState)this).characterBody.corePosition, scale = num }; EffectManager.SpawnEffect(Prefabs.Load<GameObject>("RoR2/Base/Lightning/LightningStrikeImpact.prefab"), val, false); if (((EntityState)this).isAuthority) { new BlastAttack { attacker = ((EntityState)this).gameObject, baseDamage = healAmount * 1000f, baseForce = healAmount * 1000f, crit = ((BaseState)this).RollCrit(), damageType = (DamageType)0, falloffModel = (FalloffModel)0, procCoefficient = 1f, radius = num, position = ((EntityState)this).characterBody.corePosition, attackerFiltering = (AttackerFiltering)2, impactEffect = EffectCatalog.FindEffectIndexFromPrefab(Prefabs.Load<GameObject>("RoR2/Junk/Common/VFX/ImpactLightning.prefab")), teamIndex = ((EntityState)this).teamComponent.teamIndex }.Fire(); } } base.OnExit(); } } public class PulseBomb : BaseState { public static GameObject effectPrefab; public static GameObject projectilePrefab; public static float damageCoefficient; public static float force; public static float selfForce; private float duration; public int bulletCountCurrent = 1; public override void OnEnter() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: 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_00cf: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00d8: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00fc: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = 0.1f; Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); ((EntityState)this).PlayAnimation("Gesture, Override", "BombThrow", "BombThrow.playbackRate", duration); if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * 10f; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; val.owner = ((EntityState)this).gameObject; val.position = ((Ray)(ref aimRay)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Prefabs.minePrefab; Ray aimRay2 = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay2)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { Vector3 val3 = -((Ray)(ref aimRay)).direction * selfForce; val3.y *= 0.5f; ((EntityState)this).characterMotor.ApplyForce(val3, true, false); } if (!Object.op_Implicit((Object)(object)Prefabs.minePrefab.GetComponent<ProjectileStickOnImpact>())) { AkSoundEngine.PostEvent(Sounds.BombAttach, ((Component)((EntityState)this).characterBody).gameObject); } } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)0; } } public class QuantumSpike : BaseState { public static GameObject effectPrefab; public static GameObject projectilePrefab; private float duration; public static SkillDef SkillDef; public static GenericSkill secondarySkillSlot; public override void OnEnter() { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = 0.1f; ((EntityState)this).PlayAnimation("FullBody, Override", "BombThrow", "BombThrow.playbackRate", duration); SkillDef = ScriptableObject.CreateInstance<SkillDef>(); SkillDef.activationState = new SerializableEntityStateType(typeof(Detonate)); SkillDef.activationStateMachineName = "Detonate"; SkillDef.baseMaxStock = 1; SkillDef.baseRechargeInterval = 0f; SkillDef.beginSkillCooldownOnSkillEnd = true; SkillDef.canceledFromSprinting = false; SkillDef.fullRestockOnAssign = false; SkillDef.interruptPriority = (InterruptPriority)0; SkillDef.isCombatSkill = true; SkillDef.mustKeyPress = true; SkillDef.cancelSprintingOnActivation = false; SkillDef.rechargeStock = 0; SkillDef.requiredStock = 0; SkillDef.stockToConsume = 0; SkillDef.icon = Assets.icon2AltD; SkillDef.skillDescriptionToken = "TRACER_DETONATE_DESCRIPTION"; SkillDef.skillName = "TRACER_DETONATE"; SkillDef.skillNameToken = "TRACER_DETONATE"; secondarySkillSlot = (Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) ? ((EntityState)this).skillLocator.secondary : null); if (Object.op_Implicit((Object)(object)secondarySkillSlot)) { secondarySkillSlot.SetSkillOverride((object)((EntityState)this).gameObject, SkillDef, (SkillOverridePriority)4); } Mine(); } public void Mine() { //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_0009: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d4: Unknown result type (might be due to invalid IL or missing references) //IL_0103: Unknown result type (might be due to invalid IL or missing references) //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0125: Unknown result type (might be due to invalid IL or missing references) Ray aimRay = ((BaseState)this).GetAimRay(); ((BaseState)this).StartAimMode(aimRay, 2f, false); if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); val.crit = ((BaseState)this).RollCrit(); val.damage = ((EntityState)this).characterBody.damage * 2f; val.damageColorIndex = (DamageColorIndex)0; val.force = 500f; val.owner = ((EntityState)this).gameObject; val.position = ((Ray)(ref aimRay)).origin; val.procChainMask = default(ProcChainMask); val.projectilePrefab = Prefabs.minePrefabAlt; Ray aimRay2 = ((BaseState)this).GetAimRay(); val.rotation = Quaternion.LookRotation(((Ray)(ref aimRay2)).direction); val.useFuseOverride = false; val.useSpeedOverride = false; val.target = null; FireProjectileInfo val2 = val; ProjectileManager.instance.FireProjectile(val2); } if (Object.op_Implicit((Object)(object)((EntityState)this).characterMotor) && !((EntityState)this).characterMotor.isGrounded) { Vector3 val3 = -((Ray)(ref aimRay)).direction; val3.y *= 0.5f; ((EntityState)this).characterMotor.ApplyForce(val3, true, false); } if (!Object.op_Implicit((Object)(object)Prefabs.minePrefab.GetComponent<ProjectileStickOnImpact>())) { AkSoundEngine.PostEvent(Sounds.BombAttach, ((Component)((EntityState)this).characterBody).gameObject); } } public override void OnExit() { ((EntityState)this).OnExit(); if (!Object.op_Implicit((Object)(object)secondarySkillSlot)) { } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)secondarySkillSlot) || secondarySkillSlot.stock == 0) { } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)6; } } public class Detonate : BaseState { private float duration = 0.1f; public override void OnEnter() { //IL_003f: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); TickingBombController component = ((EntityState)this).gameObject.GetComponent<TickingBombController>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.prefab)) { int itemCount = ((EntityState)this).characterBody.inventory.GetItemCount(ItemCatalog.FindItemIndex("SecondarySkillMagazine")); ProjectileImpactExplosion component2 = component.prefab.GetComponent<ProjectileImpactExplosion>(); if (Object.op_Implicit((Object)(object)component2)) { component.Detonate(itemCount * 3); } } if (Object.op_Implicit((Object)(object)QuantumSpike.secondarySkillSlot)) { QuantumSpike.secondarySkillSlot.UnsetSkillOverride((object)((EntityState)this).gameObject, QuantumSpike.SkillDef, (SkillOverridePriority)4); } } public override void OnExit() { ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)6; } } public class PulsePistols : BaseSkillState { private float duration; public static float baseDuration = 0.05f; public GameObject effectPrefab = Prefabs.Load<GameObject>("RoR2/Base/Huntress/OmniImpactVFXHuntress.prefab"); public GameObject hitEffectPrefab = Prefabs.hiteffect; public GameObject tracerEffectPrefab = Prefabs.tracer; private Animator animator; public float Delay = 0.3f; private bool buttonReleased; public string muzzleString; public string muzzleString1; public static string firePistolSoundString; private uint ShootID; private uint ReloadID; public bool hasFired; public override void OnEnter() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_015f: 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_0166: Unknown result type (might be due to invalid IL or missing references) //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0177: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0193: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b4: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_01e4: 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) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0226: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: 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_0244: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_025f: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026c: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_0294: Unknown result type (might be due to invalid IL or missing references) //IL_029f: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d4: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_02ff: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration = baseDuration; Ray aimRay = ((BaseState)this).GetAimRay(); animator = ((EntityState)this).GetModelAnimator(); ((BaseState)this).StartAimMode(0.5f, false); muzzleString = "MuzzleR"; muzzleString1 = "MuzzleL"; EffectManager.SimpleMuzzleFlash(Prefabs.muzzleflash, ((EntityState)this).gameObject, muzzleString, false); EffectManager.SimpleMuzzleFlash(Prefabs.muzzleflash, ((EntityState)this).gameObject, muzzleString1, false); ShootID = AkSoundEngine.PostEvent(Sounds.SingleShot0, ((Component)((EntityState)this).characterBody).gameObject); if (!hasFired) { hasFired = true; ((BaseState)this).AddRecoil(-0.4f * FirePistol2.recoilAmplitude, -0.6f * FirePistol2.recoilAmplitude, -0.3f * FirePistol2.recoilAmplitude, 0.3f * FirePistol2.recoilAmplitude); } ((EntityState)this).PlayAnimation("Gesture, Override", "PulsePistols", "PulsePistols.playbackRate", duration * 0.5f); animator.SetBool("isShooting", true); if ((float)((EntityState)this).characterBody.skillLocator.primary.stock <= 0f) { AkSoundEngine.PostEvent(Sounds.Reload, ((Component)((EntityState)this).characterBody).gameObject); } if (((EntityState)this).isAuthority) { new BulletAttack { falloffModel = (FalloffModel)1, owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0.15f, maxSpread = 0.3f, bulletCount = 1u, procCoefficient = 0.5f, damage = ((EntityState)this).characterBody.damage * ((BaseState)this).attackSpeedStat * 0.3f, force = 40f, tracerEffectPrefab = tracerEffectPrefab, hitEffectPrefab = hitEffectPrefab, muzzleName = muzzleString, isCrit = ((BaseState)this).RollCrit(), smartCollision = true, maxDistance = 300f }.Fire(); new BulletAttack { falloffModel = (FalloffModel)1, owner = ((EntityState)this).gameObject, weapon = ((EntityState)this).gameObject, origin = ((Ray)(ref aimRay)).origin, aimVector = ((Ray)(ref aimRay)).direction, minSpread = 0.15f, maxSpread = 0.3f, bulletCount = 1u, procCoefficient = 0.5f, damage = ((EntityState)this).characterBody.damage * ((BaseState)this).attackSpeedStat * 0.3f, force = 40f, tracerEffectPrefab = tracerEffectPrefab, hitEffectPrefab = hitEffectPrefab, muzzleName = muzzleString1, isCrit = ((BaseState)this).RollCrit(), smartCollision = true, maxDistance = 300f }.Fire(); } } public override void OnExit() { animator.SetBool("isShooting", false); ((EntityState)this).PlayAnimation("Reload", "Reload", "Reload.playbackRate", duration); AkSoundEngine.StopPlayingID(ShootID); ((EntityState)this).OnExit(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { ((EntityState)this).skillLocator.primary.rechargeStopwatch = 0f; } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)1; } } internal class Recall : BaseState { public float duration = 0.91f; private Transform modelTransform; public static GameObject blinkPrefab; private Vector3 direction; public string beginSoundString; public string endSoundString; private CharacterModel characterModel; private HurtBoxGroup hurtboxGroup; public RecallBehaviour behaviour; private int index; private float timeBetweenPositions; private float speed; private float distance; public override void OnEnter() { //IL_007f: 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_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fa: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_011b: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_01c3: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); behaviour = ((EntityState)this).GetComponent<RecallBehaviour>(); behaviour.track = false; index = behaviour.positions.Count - 1; timeBetweenPositions = duration / (float)behaviour.positions.Count; behaviour.camera.isCutscene = true; for (int i = 0; i < behaviour.positions.Count - 1; i++) { distance += Vector3.Distance(behaviour.positions[i], behaviour.positions[i + 1]); } speed = distance / duration; AkSoundEngine.PostEvent(Sounds.Recall, ((Component)((EntityState)this).characterBody).gameObject); Ray aimRay = ((BaseState)this).GetAimRay(); Vector3 val = ((Ray)(ref aimRay)).direction; direction = -val; direction.y = 0f; direction = ((Vector3)(ref direction)).normalized; modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { characterModel = ((Component)modelTransform).GetComponent<CharacterModel>(); hurtboxGroup = ((Component)modelTransform).GetComponent<HurtBoxGroup>(); } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount++; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val2 = hurtboxGroup; int hurtBoxesDeactivatorCounter = val2.hurtBoxesDeactivatorCounter + 1; val2.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } CreateBlinkEffect(Util.GetCorePosition(((EntityState)this).gameObject)); Heal(); } public virtual void Heal() { //IL_0024: 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) if (NetworkServer.active) { ((EntityState)this).healthComponent.Heal(((EntityState)this).healthComponent.fullHealth * 0.25f, default(ProcChainMask), true); Util.CleanseBody(((EntityState)this).characterBody, true, false, false, true, true, false); } } private void CreateBlinkEffect(Vector3 origin) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) EffectData val = new EffectData(); val.rotation = Util.QuaternionSafeLookRotation(direction); val.origin = origin; EffectManager.SpawnEffect(BlinkState.blinkPrefab, val, false); } public override void FixedUpdate() { //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_012d: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0154: 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) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00d3: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: 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) ((EntityState)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)behaviour)) { return; } ((BaseCharacterController)((EntityState)this).characterMotor).Motor.SetPosition(Vector3.Lerp(((EntityState)this).transform.position, behaviour.positions[index], speed), true); if (((EntityState)this).isAuthority) { ((Component)behaviour.camera).transform.position = Vector3.Lerp(((Component)behaviour.camera).transform.position, behaviour.camPositions[index], speed); ((Component)behaviour.camera).transform.rotation = Quaternion.Lerp(((Component)behaviour.camera).transform.rotation, behaviour.rotations[index], speed); } ((EntityState)this).characterDirection.forward = Vector3.Lerp(((EntityState)this).characterDirection.forward, behaviour.directions[index], speed); if (((EntityState)this).transform.position == behaviour.positions[index]) { if (Object.op_Implicit((Object)(object)behaviour.models[index])) { EntityState.Destroy((Object)(object)behaviour.models[index]); behaviour.models.RemoveAt(index); } index--; } if (((EntityState)this).isAuthority && index == 0) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_003c: Unknown result type (might be due to invalid IL or missing references) behaviour.Reset(); if (!((EntityState)this).outer.destroying) { Util.PlaySound(endSoundString, ((EntityState)this).gameObject); CreateBlinkEffect(((EntityState)this).characterBody.corePosition); modelTransform = ((EntityState)this).GetModelTransform(); if (Object.op_Implicit((Object)(object)modelTransform)) { TemporaryOverlay val = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val.duration = 1.25f; val.animateShaderAlpha = true; val.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val.destroyComponentOnEnd = true; val.originalMaterial = LegacyResourcesAPI.Load<Material>("Materials/matHuntressFlashBright"); val.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); TemporaryOverlay val2 = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); val2.duration = 1.35f; val2.animateShaderAlpha = true; val2.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); val2.destroyComponentOnEnd = true; val2.originalMaterial = LegacyResourcesAPI.Load<Material>("Materials/matHuntressFlashExpanded"); val2.AddToCharacerModel(((Component)modelTransform).GetComponent<CharacterModel>()); } } if (Object.op_Implicit((Object)(object)characterModel)) { CharacterModel obj = characterModel; obj.invisibilityCount--; } if (Object.op_Implicit((Object)(object)hurtboxGroup)) { HurtBoxGroup val3 = hurtboxGroup; int hurtBoxesDeactivatorCounter = val3.hurtBoxesDeactivatorCounter - 1; val3.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; } ((EntityState)this).OnExit(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)6; } } internal class Prefabs { public static GameObject Crosshair; public static GameObject minePrefab; public static GameObject minePrefabAlt; public static GameObject muzzleflash; public static GameObject hiteffect; public static GameObject tracer; public static GameObject tracerModel; public static Material mat; public static ItemDef stopwatch; internal static T Load<T>(string path) { //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) return Addressables.LoadAssetAsync<T>((object)path).WaitForCompletion(); } public static Material InstantiateMaterial(Texture tex, Texture norm = null) { //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Expected O, but got Unknown //IL_0022: Unknown result type (might be due to invalid IL or missing references) Material val = new Material(Load<Shader>("RoR2/Base/Shaders/HGStandard.shader")); if (Object.op_Implicit((Object)(object)val)) { val.SetColor("_Color", Color.white); val.SetTexture("_MainTex", tex); val.SetFloat("_NormalStrength", 1f); val.SetTexture("_NormalTex", norm); return val; } return val; } internal static void CreatePrefabs() { //IL_0108: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Expected O, but got Unknown //IL_023a: 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_02c6: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_045c: Unknown result type (might be due to invalid IL or missing references) //IL_0466: Unknown result type (might be due to invalid IL or missing references) //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04b6: Unknown result type (might be due to invalid IL or missing references) //IL_04c0: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_051b: Unknown result type (might be due to invalid IL or missing references) LanguageAPI.Add("TRACER_STOPWATCH", "Strange Stopwatch"); LanguageAPI.Add("TRACER_STOPWATCH_DESCRIPTION", "At the start of each stage, time falls back by <style=cIsUtility>1m <style=cStack>(+1m per stack)</style></style>."); LanguageAPI.Add("TRACER_STOPWATCH_PICKUP", "Go back in time!"); LanguageAPI.Add("TRACER_STOPWATCH_LORE", "Order: Strange Stopwatch\r\nTracking Number: 826******\r\nEstimated Delivery: 02/06/1917\r\nShipping Method: Priority\r\nShipping Address: 20004 Washington, DC\r\nShipping Details:\r\n\r\n" + Environment.NewLine); GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>("stopwatch"); Renderer[] componentsInChildren = val.GetComponentsInChildren<Renderer>(); componentsInChildren[0].material = Load<Material>("RoR2/DLC1/HealingPotion/matHealingPotionGlass.mat"); componentsInChildren[1].material = InstantiateMaterial((Texture)(object)Assets.MainAssetBundle.LoadAsset<Texture2D>("stopwatch_d"), (Texture)(object)Assets.MainAssetBundle.LoadAsset<Texture2D>("stopwatch_n")); stopwatch = ScriptableObject.CreateInstance<ItemDef>(); stopwatch.pickupModelPrefab = val; ((Object)stopwatch).name = "TracerStopwatchItem"; stopwatch.nameToken = "TRACER_STOPWATCH"; stopwatch.descriptionToken = "TRACER_STOPWATCH_DESCRIPTION"; stopwatch.pickupToken = "TRACER_STOPWATCH_PICKUP"; stopwatch.loreToken = "TRACER_STOPWATCH_LORE"; stopwatch.deprecatedTier = (ItemTier)2; ItemDef obj = stopwatch; ItemTag[] array = new ItemTag[4]; RuntimeHelpers.InitializeArray(array, (RuntimeFieldHandle)/*OpCode not supported: LdMemberToken*/); obj.tags = (ItemTag[])(object)array; stopwatch.pickupIconSprite = Assets.MainAssetBundle.LoadAsset<Sprite>("stopwatchIcon3"); ContentAddition.AddItemDef(stopwatch); mat = Object.Instantiate<Material>(Load<Material>("RoR2/Base/Huntress/matHuntressFlashBright.mat")); mat.SetFloat("_ExternalAlpha", 0f); Crosshair = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/UI/SimpleDotCrosshair.prefab"), "TracerCrosshair", false); Object.Destroy((Object)(object)Crosshair.GetComponent<RawImage>()); foreach (object item in Crosshair.transform) { Object.Destroy((Object)(object)((Component)(Transform)item).gameObject); } Crosshair.GetComponent<CrosshairController>().spriteSpreadPositions = Array.Empty<SpritePosition>(); GameObject val2 = new GameObject("TracerCrosshairImage", new Type[1] { typeof(RectTransform) }); Transform transform = val2.transform; RectTransform val3 = (RectTransform)(object)((transform is RectTransform) ? transform : null); ((Transform)val3).localPosition = Vector2.op_Implicit(new Vector2(0f, 0f)); val3.SetSizeWithCurrentAnchors((Axis)0, Tracer.crosshairSize.Value); val3.SetSizeWithCurrentAnchors((Axis)1, Tracer.crosshairSize.Value); val2.transform.SetParent(Crosshair.transform); val2.AddComponent<Image>().sprite = Assets.MainAssetBundle.LoadAsset<Sprite>("crosshair"); val2.GetComponent<Image>().preserveAspect = true; ((Transform)((Graphic)val2.GetComponent<Image>()).rectTransform).localPosition = new Vector3(0f, -8f, 0f); minePrefab = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Commando/CommandoGrenadeProjectile.prefab"), "TracerMinePrefab", true); ProjectileController component = minePrefab.GetComponent<ProjectileController>(); ProjectileStickOnImpact val4 = minePrefab.AddComponent<ProjectileStickOnImpact>(); ProjectileImpactExplosion component2 = minePrefab.GetComponent<ProjectileImpactExplosion>(); Object.Destroy((Object)(object)minePrefab.GetComponent<ProjectileDeployToOwner>()); GameObject val5 = PrefabAPI.InstantiateClone(Assets.pulseBombmdl, "CommandoGrenadeGhost", true); Object.Destroy((Object)(object)val5.GetComponent<ProjectileDeployToOwner>()); val5.AddComponent<NetworkIdentity>(); val5.AddComponent<ProjectileGhostController>(); component.ghostPrefab = val5; component.allowPrediction = false; val4.ignoreCharacters = false; val4.ignoreWorld = false; ((ProjectileExplosion)component2).blastRadius = 20f; tracer = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Commando/TracerCommandoShotgun.prefab"), "TracerTracer", false); Tracer component3 = tracer.GetComponent<Tracer>(); component3.speed = 260f; component3.beamDensity = 5f; component3.length = 5f; ((Renderer)tracer.GetComponent<LineRenderer>()).material.SetTextureScale("_MainTex", new Vector2(0.4f, 1f)); Object.Destroy((Object)(object)tracer.GetComponent<DetachTrailOnDestroy>()); Object.Destroy((Object)(object)tracer.GetComponentInChildren<TrailRenderer>()); ContentAddition.AddEffect(tracer); hiteffect = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Junk/Huntress/ImpactHuntress.prefab"), "TracerPulseHitEffect", false); ParticleSystemRenderer[] componentsInChildren2 = hiteffect.GetComponentsInChildren<ParticleSystemRenderer>(); ((Renderer)componentsInChildren2[0]).material = Load<Material>("RoR2/Base/LunarGolem/matLunarGolemMuzzleFlash.mat"); ((Component)componentsInChildren2[0]).transform.localScale = Vector3.one * 0.6f; ((Renderer)componentsInChildren2[1]).material = Load<Material>("RoR2/Base/LunarWisp/matLunarWispBombTrail.mat"); ((Renderer)componentsInChildren2[1]).material.SetColor("_TintColor", new Color(0.066666f, 0.286274f, 255f)); ((Component)componentsInChildren2[1]).transform.localScale = Vector3.one * 0.6f; ContentAddition.AddEffect(hiteffect); muzzleflash = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Commando/MuzzleflashFMJ.prefab"), "TracerPulseMuzzleFlash", false); ParticleSystemRenderer[] componentsInChildren3 = muzzleflash.GetComponentsInChildren<ParticleSystemRenderer>(); foreach (ParticleSystemRenderer val6 in componentsInChildren3) { ((Component)val6).transform.localScale = Vector3.one * 0.55f; } ContentAddition.AddEffect(muzzleflash); GameObject val7 = PrefabAPI.InstantiateClone(Assets.pulseBombmdl, "TracerPulseBombAltGhost", true); Object.Destroy((Object)(object)val7.GetComponent<ProjectileDeployToOwner>()); val7.AddComponent<NetworkIdentity>(); val7.AddComponent<ProjectileGhostController>(); minePrefabAlt = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Commando/CommandoGrenadeProjectile.prefab"), "TracerMinePrefabAlt", true); minePrefabAlt.AddComponent<MineBehaviour>(); ProjectileController component4 = minePrefabAlt.GetComponent<ProjectileController>(); ProjectileStickOnImpact val8 = minePrefabAlt.AddComponent<ProjectileStickOnImpact>(); ProjectileImpactExplosion component5 = minePrefabAlt.GetComponent<ProjectileImpactExplosion>(); ProjectileDamage component6 = minePrefabAlt.GetComponent<ProjectileDamage>(); ProjectileSimple component7 = minePrefabAlt.GetComponent<ProjectileSimple>(); Object.Destroy((Object)(object)minePrefabAlt.GetComponent<ProjectileDeployToOwner>()); component4.ghostPrefab = val7; component4.allowPrediction = false; val8.ignoreCharacters = false; val8.ignoreWorld = false; ((ProjectileExplosion)component5).blastRadius = 1f; component5.lifetimeAfterImpact = 999999f; component5.lifetime = 999999f; component7.lifetime = 999999f; ContentAddition.AddProjectile(minePrefab); ContentAddition.AddProjectile(minePrefabAlt); } } public static class Sounds { public static readonly uint Reload = 456382354u; public static readonly uint BombThrow = 1325857779u; public static readonly uint BombAttach = 1375977958u; public static readonly uint PulsePistols = 2314892076u; public static readonly uint Blink = 3379926649u; public static readonly uint Recall = 3886774750u; public static readonly uint BombExplosion = 3910346330u; public static readonly uint SingleShot = 4085013133u; public static readonly uint SingleShot0 = 3653405639u; public static readonly uint Cringe = 3508439051u; public static readonly uint blinkR3 = 1541516824u; public static readonly uint blinkR2 = 1541516825u; public static readonly uint blinkR1 = 1541516826u; } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Dragonyck.Tracer", "Tracer", "1.6.3")] public class Tracer : BaseUnityPlugin { public const string MODUID = "com.Dragonyck.Tracer"; public static GameObject characterPrefab; public GameObject characterDisplay; public GameObject doppelganger; public static ConfigEntry<float> crosshairSize; public static ConfigEntry<bool> performanceMode; public static ConfigEntry<bool> potatoMode; private static readonly Color characterColor = new Color(1f, 0.7f, 0f); public static event Action<float> onTimeReduced; private void Awake() { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Expected O, but got Unknown //IL_0030: Expected O, but got Unknown //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0056: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Expected O, but got Unknown //IL_0060: Expected O, but got Unknown //IL_0075: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_0090: Expected O, but got Unknown crosshairSize = ((BaseUnityPlugin)this).Config.Bind<float>(new ConfigDefinition("Crosshair Size", "Size"), 40f, new ConfigDescription("Changes the size of the crosshair.", (AcceptableValueBase)null, Array.Empty<object>())); performanceMode = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("Enable Performance Trails", "Enable"), false, new ConfigDescription("Stores less Recall data on positions, rotations, trails, etc. Can be used with NO Trails for even better performance.", (AcceptableValueBase)null, Array.Empty<object>())); potatoMode = ((BaseUnityPlugin)this).Config.Bind<bool>(new ConfigDefinition("NO Trails", "Enable"), false, new ConfigDescription("No Recall trails.", (AcceptableValueBase)null, Array.Empty<object>())); Stage.onStageStartGlobal += delegate { float num = 0f; foreach (CharacterMaster readOnlyInstances in CharacterMaster.readOnlyInstancesList) { if (Object.op_Implicit((Object)(object)readOnlyInstances.inventory)) { int itemCount = readOnlyInstances.inventory.GetItemCount(Prefabs.stopwatch); if (itemCount > 0) { num += (float)(60 * itemCount); } } } if (num > 0f) { if (NetworkServer.active) { float runStopwatch = Run.instance.GetRunStopwatch(); Run.instance.SetRunStopwatch((num > runStopwatch) ? 0f : (runStopwatch - num)); } Tracer.onTimeReduced?.Invoke(Run.instance.GetRunStopwatch()); } }; Assets.PopulateAssets(); Achievements.RegisterUnlockables(); Prefabs.CreatePrefabs(); CreatePrefab(); RegisterStates(); RegisterCharacter(); CreateDoppelganger(); } private static GameObject CreateModel(GameObject main) { Object.Destroy((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); return Assets.MainAssetBundle.LoadAsset<GameObject>("Tracermdl"); } internal static void CreatePrefab() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0058: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Expected O, but got Unknown //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0102: Unknown result type (might be due to invalid IL or missing references) //IL_0113: 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_0129: Expected O, but got Unknown //IL_0150: 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_0172: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: 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_01d7: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_0247: Unknown result type (might be due to invalid IL or missing references) //IL_0384: Unknown result type (might be due to invalid IL or missing references) //IL_0457: Unknown result type (might be due to invalid IL or missing references) //IL_047f: Unknown result type (might be due to invalid IL or missing references) //IL_048c: 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_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04d5: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_04e4: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: Unknown result type (might be due to invalid IL or missing references) //IL_052b: Unknown result type (might be due to invalid IL or missing references) //IL_0538: Unknown result type (might be due to invalid IL or missing references) //IL_053a: Unknown result type (might be due to invalid IL or missing references) //IL_0543: Unknown result type (might be due to invalid IL or missing references) //IL_0581: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) //IL_0599: Unknown result type (might be due to invalid IL or missing references) //IL_05d7: Unknown result type (might be due to invalid IL or missing references) //IL_05e4: Unknown result type (might be due to invalid IL or missing references) //IL_05e6: Unknown result type (might be due to invalid IL or missing references) //IL_05ef: Unknown result type (might be due to invalid IL or missing references) //IL_062d: Unknown result type (might be due to invalid IL or missing references) //IL_063a: 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_0645: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0690: Unknown result type (might be due to invalid IL or missing references) //IL_0692: Unknown result type (might be due to invalid IL or missing references) //IL_069b: Unknown result type (might be due to invalid IL or missing references) //IL_06d9: Unknown result type (might be due to invalid IL or missing references) //IL_06e6: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06f1: Unknown result type (might be due to invalid IL or missing references) //IL_072f: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_073e: Unknown result type (might be due to invalid IL or missing references) //IL_0823: Unknown result type (might be due to invalid IL or missing references) //IL_085b: Unknown result type (might be due to invalid IL or missing references) //IL_0881: Unknown result type (might be due to invalid IL or missing references) //IL_0883: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_08b2: Unknown result type (might be due to invalid IL or missing references) //IL_08b4: Unknown result type (might be due to invalid IL or missing references) //IL_08bd: Unknown result type (might be due to invalid IL or missing references) //IL_08e3: Unknown result type (might be due to invalid IL or missing references) //IL_08e5: Unknown result type (might be due to invalid IL or missing references) //IL_08ee: Unknown result type (might be due to invalid IL or missing references) //IL_0914: Unknown result type (might be due to invalid IL or missing references) //IL_0916: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0945: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_0950: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_0978: Unknown result type (might be due to invalid IL or missing references) //IL_0981: Unknown result type (might be due to invalid IL or missing references) //IL_09a7: Unknown result type (might be due to invalid IL or missing references) //IL_09a9: Unknown result type (might be due to invalid IL or missing references) //IL_09b2: Unknown result type (might be due to invalid IL or missing references) //IL_09d8: Unknown result type (might be due to invalid IL or missing references) //IL_09da: Unknown result type (might be due to invalid IL or missing references) //IL_09fd: Unknown result type (might be due to invalid IL or missing references) //IL_0a1a: Unknown result type (might be due to invalid IL or missing references) //IL_0a1c: Unknown result type (might be due to invalid IL or missing references) //IL_0a25: Unknown result type (might be due to invalid IL or missing references) //IL_0a61: Unknown result type (might be due to invalid IL or missing references) //IL_0a63: Unknown result type (might be due to invalid IL or missing references) //IL_0a6c: Unknown result type (might be due to invalid IL or missing references) //IL_0aa8: Unknown result type (might be due to invalid IL or missing references) //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0ab3: Unknown result type (might be due to invalid IL or missing references) //IL_0aef: Unknown result type (might be due to invalid IL or missing references) //IL_0af1: Unknown result type (might be due to invalid IL or missing references) //IL_0afa: Unknown result type (might be due to invalid IL or missing references) //IL_0b36: Unknown result type (might be due to invalid IL or missing references) //IL_0b38: Unknown result type (might be due to invalid IL or missing references) //IL_0b41: Unknown result type (might be due to invalid IL or missing references) //IL_0b7d: Unknown result type (might be due to invalid IL or missing references) //IL_0b7f: Unknown result type (might be due to invalid IL or missing references) //IL_0b88: Unknown result type (might be due to invalid IL or missing references) //IL_0bc4: Unknown result type (might be due to invalid IL or missing references) //IL_0bc6: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Unknown result type (might be due to invalid IL or missing references) //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c0d: Unknown result type (might be due to invalid IL or missing references) //IL_0c16: Unknown result type (might be due to invalid IL or missing references) //IL_0c52: Unknown result type (might be due to invalid IL or missing references) //IL_0c54: Unknown result type (might be due to invalid IL or missing references) //IL_0c95: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0d24: Unknown result type (might be due to invalid IL or missing references) //IL_0e1c: Unknown result type (might be due to invalid IL or missing references) //IL_0e47: Unknown result type (might be due to invalid IL or missing references) //IL_0f17: Unknown result type (might be due to invalid IL or missing references) //IL_0f42: Unknown result type (might be due to invalid IL or missing references) //IL_0fd0: Unknown result type (might be due to invalid IL or missing references) //IL_0ffb: Unknown result type (might be due to invalid IL or missing references) //IL_1157: Unknown result type (might be due to invalid IL or missing references) //IL_1162: Unknown result type (might be due to invalid IL or missing references) //IL_119a: Unknown result type (might be due to invalid IL or missing references) //IL_11c0: Unknown result type (might be due to invalid IL or missing references) //IL_11c2: Unknown result type (might be due to invalid IL or missing references) //IL_11cb: Unknown result type (might be due to invalid IL or missing references) //IL_11f1: Unknown result type (might be due to invalid IL or missing references) //IL_11f3: Unknown result type (might be due to invalid IL or missing references) //IL_11fc: Unknown result type (might be due to invalid IL or missing references) //IL_1222: Unknown result type (might be due to invalid IL or missing references) //IL_1224: Unknown result type (might be due to invalid IL or missing references) //IL_122d: Unknown result type (might be due to invalid IL or missing references) //IL_1253: Unknown result type (might be due to invalid IL or missing references) //IL_1255: Unknown result type (might be due to invalid IL or missing references) //IL_125e: Unknown result type (might be due to invalid IL or missing references) //IL_1284: Unknown result type (might be due to invalid IL or missing references) //IL_1286: Unknown result type (might be due to invalid IL or missing references) //IL_12a8: Unknown result type (might be due to invalid IL or missing references) //IL_12cd: Unknown result type (might be due to invalid IL or missing references) //IL_12cf: Unknown result type (might be due to invalid IL or missing references) //IL_12d8: Unknown result type (might be due to invalid IL or missing references) //IL_1308: Unknown result type (might be due to invalid IL or missing references) //IL_130a: Unknown result type (might be due to invalid IL or missing references) //IL_1313: Unknown result type (might be due to invalid IL or missing references) //IL_1343: Unknown result type (might be due to invalid IL or missing references) //IL_1345: Unknown result type (might be due to invalid IL or missing references) //IL_134e: Unknown result type (might be due to invalid IL or missing references) //IL_137e: Unknown result type (might be due to invalid IL or missing references) //IL_1380: Unknown result type (might be due to invalid IL or missing references) //IL_1389: Unknown result type (might be due to invalid IL or missing references) //IL_13b9: Unknown result type (might be due to invalid IL or missing references) //IL_13bb: Unknown result type (might be due to invalid IL or missing references) //IL_13c4: Unknown result type (might be due to invalid IL or missing references) //IL_13f4: Unknown result type (might be due to invalid IL or missing references) //IL_13f6: Unknown result type (might be due to invalid IL or missing references) //IL_13ff: Unknown result type (might be due to invalid IL or missing references) //IL_142f: Unknown result type (might be due to invalid IL or missing references) //IL_1431: Unknown result type (might be due to invalid IL or missing references) //IL_143a: Unknown result type (might be due to invalid IL or missing references) //IL_146a: Unknown result type (might be due to invalid IL or missing references) //IL_146c: Unknown result type (might be due to invalid IL or missing references) //IL_14b1: Unknown result type (might be due to invalid IL or missing references) //IL_10bc: Unknown result type (might be due to invalid IL or missing references) //IL_10e7: Unknown result type (might be due to invalid IL or missing references) //IL_1515: Unknown result type (might be due to invalid IL or missing references) //IL_1540: Unknown result type (might be due to invalid IL or missing references) //IL_1638: Unknown result type (might be due to invalid IL or missing references) //IL_1663: Unknown result type (might be due to invalid IL or missing references) //IL_1733: Unknown result type (might be due to invalid IL or missing references) //IL_175e: Unknown result type (might be due to invalid IL or missing references) //IL_18d3: Unknown result type (might be due to invalid IL or missing references) //IL_18de: Unknown result type (might be due to invalid IL or missing references) //IL_1916: Unknown result type (might be due to invalid IL or missing references) //IL_193c: Unknown result type (might be due to invalid IL or missing references) //IL_193e: Unknown result type (might be due to invalid IL or missing references) //IL_1947: Unknown result type (might be due to invalid IL or missing references) //IL_196d: Unknown result type (might be due to invalid IL or missing references) //IL_196f: Unknown result type (might be due to invalid IL or missing references) //IL_1978: Unknown result type (might be due to invalid IL or missing references) //IL_199e: Unknown result type (might be due to invalid IL or missing references) //IL_19a0: Unknown result type (might be due to invalid IL or missing references) //IL_19a9: Unknown result type (might be due to invalid IL or missing references) //IL_19cf: Unknown result type (might be due to invalid IL or missing references) //IL_19d1: Unknown result type (might be due to invalid IL or missing references) //IL_19da: Unknown result type (might be due to invalid IL or missing references) //IL_1a00: Unknown result type (might be due to invalid IL or missing references) //IL_1a02: Unknown result type (might be due to invalid IL or missing references) //IL_1a24: Unknown result type (might be due to invalid IL or missing references) //IL_1a49: Unknown result type (might be due to invalid IL or missing references) //IL_1a4b: Unknown result type (might be due to invalid IL or missing references) //IL_1a54: Unknown result type (might be due to invalid IL or missing references) //IL_1a84: Unknown result type (might be due to invalid IL or missing references) //IL_1a86: Unknown result type (might be due to invalid IL or missing references) //IL_1a8f: Unknown result type (might be due to invalid IL or missing references) //IL_1abf: Unknown result type (might be due to invalid IL or missing references) //IL_1ac1: Unknown result type (might be due to invalid IL or missing references) //IL_1aca: Unknown result type (might be due to invalid IL or missing references) //IL_1afa: Unknown result type (might be due to invalid IL or missing references) //IL_1afc: Unknown result type (might be due to invalid IL or missing references) //IL_1b41: Unknown result type (might be due to invalid IL or missing references) //IL_181f: Unknown result type (might be due to invalid IL or missing references) //IL_184a: Unknown result type (might be due to invalid IL or missing references) //IL_1ba5: Unknown result type (might be due to invalid IL or missing references) //IL_1bd0: Unknown result type (might be due to invalid IL or missing references) //IL_1c77: Unknown result type (might be due to invalid IL or missing references) //IL_1ca2: Unknown result type (might be due to invalid IL or missing references) //IL_1de4: Unknown result type (might be due to invalid IL or missing references) //IL_1def: Unknown result type (might be due to invalid IL or missing references) //IL_1e27: Unknown result type (might be due to invalid IL or missing references) //IL_1e4d: Unknown result type (might be due to invalid IL or missing references) //IL_1e4f: Unknown result type (might be due to invalid IL or missing references) //IL_1e58: Unknown result type (might be due to invalid IL or missing references) //IL_1e7e: Unknown result type (might be due to invalid IL or missing references) //IL_1e80: Unknown result type (might be due to invalid IL or missing references) //IL_1e89: Unknown result type (might be due to invalid IL or missing references) //IL_1eaf: Unknown result type (might be due to invalid IL or missing references) //IL_1eb1: Unknown result type (might be due to invalid IL or missing references) //IL_1eba: Unknown result type (might be due to invalid IL or missing references) //IL_1ee0: Unknown result type (might be due to invalid IL or missing references) //IL_1ee2: Unknown result type (might be due to invalid IL or missing references) //IL_1eeb: Unknown result type (might be due to invalid IL or missing references) //IL_1f11: Unknown result type (might be due to invalid IL or missing references) //IL_1f13: Unknown result type (might be due to invalid IL or missing references) //IL_1f35: Unknown result type (might be due to invalid IL or missing references) //IL_1f5a: Unknown result type (might be due to invalid IL or missing references) //IL_1f5c: Unknown result type (might be due to invalid IL or missing references) //IL_1f65: Unknown result type (might be due to invalid IL or missing references) //IL_1f95: Unknown result type (might be due to invalid IL or missing references) //IL_1f97: Unknown result type (might be due to invalid IL or missing references) //IL_1fa0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd0: Unknown result type (might be due to invalid IL or missing references) //IL_1fd2: Unknown result type (might be due to invalid IL or missing references) //IL_1fdb: Unknown result type (might be due to invalid IL or missing references) //IL_200b: Unknown result type (might be due to invalid IL or missing references) //IL_200d: Unknown result type (might be due to invalid IL or missing references) //IL_2016: Unknown result type (might be due to invalid IL or missing references) //IL_2046: Unknown result type (might be due to invalid IL or missing references) //IL_2048: Unknown result type (might be due to invalid IL or missing references) //IL_2051: Unknown result type (might be due to invalid IL or missing references) //IL_2081: Unknown result type (might be due to invalid IL or missing references) //IL_2083: Unknown result type (might be due to invalid IL or missing references) //IL_208c: Unknown result type (might be due to invalid IL or missing references) //IL_20bc: Unknown result type (might be due to invalid IL or missing references) //IL_20be: Unknown result type (might be due to invalid IL or missing references) //IL_2103: Unknown result type (might be due to invalid IL or missing references) //IL_1d30: Unknown result type (might be due to invalid IL or missing references) //IL_1d5b: Unknown result type (might be due to invalid IL or missing references) //IL_2167: Unknown result type (might be due to invalid IL or missing references) //IL_2192: Unknown result type (might be due to invalid IL or missing references) //IL_222f: Unknown result type (might be due to invalid IL or missing references) //IL_225a: Unknown result type (might be due to invalid IL or missing references) //IL_232a: Unknown result type (might be due to invalid IL or missing references) //IL_2355: Unknown result type (might be due to invalid IL or missing references) //IL_23d2: Unknown result type (might be due to invalid IL or missing references) //IL_240a: Unknown result type (might be due to invalid IL or missing references) //IL_2533: Unknown result type (might be due to invalid IL or missing references) //IL_253e: Unknown result type (might be due to invalid IL or missing references) //IL_2576: Unknown result type (might be due to invalid IL or missing references) //IL_259c: Unknown result type (might be due to invalid IL or missing references) //IL_259e: Unknown result type (might be due to invalid IL or missing references) //IL_25a7: Unknown result ty