Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Talus v1.0.0
Talus.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.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 EntityStates; using EntityStates.ClayBruiser.Weapon; using KinematicCharacterController; using R2API; using R2API.Utils; using Rewired.ComponentControls.Effects; using RoR2; using RoR2.Achievements; 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("Talus")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Talus")] [assembly: AssemblyTitle("Talus")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Talus; public static class Achievements { [RegisterAchievement("TALUS_MASTERY", "ACHIEVEMENT_TALUS_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("TalusBody"); } } [RegisterAchievement("TALUS_PASSIVE1", "ACHIEVEMENT_TALUS_PASSIVE1_UNLOCKABLE_ID", null, null)] public class Passive1Unlockable : BaseAchievement { 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("TalusBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Inventory.onInventoryChangedGlobal += Inventory_onInventoryChangedGlobal; } public override void OnBodyRequirementBroken() { Inventory.onInventoryChangedGlobal -= Inventory_onInventoryChangedGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void Inventory_onInventoryChangedGlobal(Inventory inventory) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_0048: 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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_0045: 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) int num = 0; ItemIndex val = (ItemIndex)0; for (ItemIndex val2 = (ItemIndex)ItemCatalog.itemCount; val < val2; val = (ItemIndex)(val + 1)) { if (ItemCatalog.GetItemDef(val).ContainsTag((ItemTag)3)) { num += inventory.GetItemCount(val); if (num >= 20) { ((BaseAchievement)this).Grant(); break; } } } } } [RegisterAchievement("TALUS_PASSIVE2", "ACHIEVEMENT_TALUS_PASSIVE2_UNLOCKABLE_ID", null, null)] public class Passive2Unlockable : BaseAchievement { 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("TalusBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; GlobalEventManager.onCharacterDeathGlobal += GlobalEventManager_onCharacterDeathGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; GlobalEventManager.onCharacterDeathGlobal -= GlobalEventManager_onCharacterDeathGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void GlobalEventManager_onCharacterDeathGlobal(DamageReport damageReport) { //IL_0002: 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) if (damageReport.victimBodyIndex == BodyCatalog.FindBodyIndex("BrotherHurtBody")) { ((BaseAchievement)this).Grant(); } } private void OnClientGameOverGlobal(Run run, RunReport runReport) { if (Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin && (Object)(object)runReport.gameEnding == (Object)(object)GameEndings.ObliterationEnding) { ((BaseAchievement)this).Grant(); } } } internal static UnlockableDef masteryUnlock; internal static UnlockableDef passive1Unlock; internal static UnlockableDef passive2Unlock; public static void RegisterUnlockables() { masteryUnlock = NewUnlockable<MasteryUnlockable>("MASTERY", Assets.MainAssetBundle.LoadAsset<Sprite>("skin"), "TALUS: Mastery", "As Talus, beat the game or obliterate on Monsoon."); passive1Unlock = NewUnlockable<Passive1Unlockable>("PASSIVE1", Assets.MainAssetBundle.LoadAsset<Sprite>("passive2"), "TALUS: Faustian Bargain", "As Talus, carry 20 Utility items in a single run."); passive2Unlock = NewUnlockable<Passive2Unlockable>("PASSIVE2", Assets.MainAssetBundle.LoadAsset<Sprite>("passive3"), "TALUS: Nothing Personal", "As Talus, defeat Mithrix or obliterate."); } private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement { string text = "ACHIEVEMENT_TALUS_"; 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; } } internal class Assets { public static AssetBundle MainAssetBundle; public static T Load<T>(string name) where T : Object { return MainAssetBundle.LoadAsset<T>(name); } public static void PopulateAssets() { Assembly executingAssembly = Assembly.GetExecutingAssembly(); if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = executingAssembly.GetManifestResourceStream("Talus.AssetBundle." + "Talus".ToLower() + "assets"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } using Stream stream2 = executingAssembly.GetManifestResourceStream("Talus.Talus.bnk"); byte[] array = new byte[stream2.Length]; stream2.Read(array, 0, array.Length); SoundBanks.Add(array); } } internal class AnimEvent : MonoBehaviour { public void PlaySound(string s) { AkSoundEngine.PostEvent(s, ((Component)this).gameObject); } } internal class EntityRevealer : MonoBehaviour { public HealthComponent health; public TemporaryOverlay overlay; private void Start() { health = ((Component)this).GetComponent<HealthComponent>(); } private void FixedUpdate() { if (!Object.op_Implicit((Object)(object)health)) { return; } if (health.combinedHealth < health.fullCombinedHealth * 0.65f) { if (!Object.op_Implicit((Object)(object)overlay)) { Transform modelTransform = health.body.modelLocator.modelTransform; CharacterModel component = ((Component)modelTransform).GetComponent<CharacterModel>(); if (Object.op_Implicit((Object)(object)component)) { overlay = ((Component)modelTransform).gameObject.AddComponent<TemporaryOverlay>(); overlay.animateShaderAlpha = false; overlay.originalMaterial = Prefabs.revealMat; overlay.destroyComponentOnEnd = false; overlay.destroyObjectOnEnd = false; overlay.AddToCharacerModel(component); } } } else if (Object.op_Implicit((Object)(object)overlay)) { Object.Destroy((Object)(object)overlay); } } } internal class TrackerBehaviour : HuntressTracker { private float stopwatch; public OverrideRequest crosshairOverrideRequest; public PrintController printController; public int passiveIndex; private void Awake() { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown base.indicator = new Indicator(((Component)this).gameObject, Prefabs.indicator); } private void Start() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) ((HuntressTracker)this).Start(); GenericSkill skill = ((Component)this).GetComponent<GenericSkill>(); passiveIndex = Array.IndexOf(skill.skillFamily.variants, Array.Find(skill.skillFamily.variants, (Variant x) => (Object)(object)x.skillDef == (Object)(object)skill.skillDef)); } private void FixedUpdate() { //IL_0050: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) base.trackerUpdateStopwatch = 0f; stopwatch += Time.fixedDeltaTime; if (stopwatch >= 1f / base.trackerUpdateFrequency) { stopwatch = 0f; Ray val = default(Ray); ((Ray)(ref val))..ctor(base.inputBank.aimOrigin, base.inputBank.aimDirection); base.search.teamMaskFilter = TeamMask.GetUnprotectedTeams(base.teamComponent.teamIndex); base.search.filterByLoS = false; base.search.searchOrigin = ((Ray)(ref val)).origin; base.search.searchDirection = ((Ray)(ref val)).direction; base.search.sortMode = (SortMode)1; base.search.maxDistanceFilter = 9999f; base.search.maxAngleFilter = base.maxTrackingAngle; base.search.RefreshCandidates(); base.search.FilterOutGameObject(((Component)this).gameObject); base.trackingTarget = base.search.GetResults().FirstOrDefault(); base.indicator.targetTransform = (Object.op_Implicit((Object)(object)base.trackingTarget) ? ((Component)base.trackingTarget).transform : null); } } public void CrosshairOverride() { DisposeCrosshairOverride(); crosshairOverrideRequest = CrosshairUtils.RequestOverrideForBody(base.characterBody, Prefabs.crosshair, (OverridePriority)1); } public void DisposeCrosshairOverride() { if (crosshairOverrideRequest != null) { crosshairOverrideRequest.Dispose(); } } public void PrintOut() { printController.printCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); ((Behaviour)printController).enabled = true; } public void PrintIn() { printController.printCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); ((Behaviour)printController).enabled = true; } } [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.Talus", "Talus", "1.0.0")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class MainPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static Action<CharacterBody> <>9__8_0; public static StatHookEventHandler <>9__8_1; internal void <Awake>b__8_0(CharacterBody b) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances) { CharacterMaster master = instance.master; CharacterBody val = (Object.op_Implicit((Object)(object)master) ? master.GetBody() : null); TrackerBehaviour trackerBehaviour = (Object.op_Implicit((Object)(object)val) ? ((Component)val).GetComponent<TrackerBehaviour>() : null); if (Object.op_Implicit((Object)(object)trackerBehaviour) && trackerBehaviour.passiveIndex == 2) { TeamMask enemyTeams = TeamMask.GetEnemyTeams(val.teamComponent.teamIndex); if (((TeamMask)(ref enemyTeams)).HasTeam(b.teamComponent.teamIndex) && val.hasEffectiveAuthority) { ((Component)b).gameObject.AddComponent<EntityRevealer>(); } } } } internal void <Awake>b__8_1(CharacterBody body, StatHookEventArgs args) { TrackerBehaviour component = ((Component)body).GetComponent<TrackerBehaviour>(); if (Object.op_Implicit((Object)(object)component) && component.passiveIndex == 2) { args.specialCooldownMultAdd -= 0.15f; } } } public const string MODUID = "com.Dragonyck.Talus"; public const string MODNAME = "Talus"; public const string VERSION = "1.0.0"; public const string SURVIVORNAME = "Talus"; public const string SURVIVORNAMEKEY = "TALUS"; public static GameObject characterPrefab; private static readonly Color characterColor = Color32.op_Implicit(new Color32((byte)117, (byte)44, (byte)102, byte.MaxValue)); public static SkillDef primaryEmp; private void Awake() { //IL_0060: 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_006b: Expected O, but got Unknown Assets.PopulateAssets(); Achievements.RegisterUnlockables(); Prefabs.CreatePrefabs(); CreatePrefab(); RegisterStates(); RegisterCharacter(); CharacterBody.onBodyStartGlobal += delegate(CharacterBody b) { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) foreach (PlayerCharacterMasterController instance in PlayerCharacterMasterController.instances) { CharacterMaster master = instance.master; CharacterBody val2 = (Object.op_Implicit((Object)(object)master) ? master.GetBody() : null); TrackerBehaviour trackerBehaviour = (Object.op_Implicit((Object)(object)val2) ? ((Component)val2).GetComponent<TrackerBehaviour>() : null); if (Object.op_Implicit((Object)(object)trackerBehaviour) && trackerBehaviour.passiveIndex == 2) { TeamMask enemyTeams = TeamMask.GetEnemyTeams(val2.teamComponent.teamIndex); if (((TeamMask)(ref enemyTeams)).HasTeam(b.teamComponent.teamIndex) && val2.hasEffectiveAuthority) { ((Component)b).gameObject.AddComponent<EntityRevealer>(); } } } }; object obj = <>c.<>9__8_1; if (obj == null) { StatHookEventHandler val = delegate(CharacterBody body, StatHookEventArgs args) { TrackerBehaviour component = ((Component)body).GetComponent<TrackerBehaviour>(); if (Object.op_Implicit((Object)(object)component) && component.passiveIndex == 2) { args.specialCooldownMultAdd -= 0.15f; } }; <>c.<>9__8_1 = val; obj = (object)val; } RecalculateStatsAPI.GetStatCoefficients += (StatHookEventHandler)obj; } internal static void CreatePrefab() { //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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Expected O, but got Unknown //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_01a0: Expected O, but got Unknown //IL_01ca: 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_01ee: Unknown result type (might be due to invalid IL or missing references) //IL_0212: 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_022c: 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_03d1: Unknown result type (might be due to invalid IL or missing references) //IL_040b: Unknown result type (might be due to invalid IL or missing references) //IL_0410: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_0479: Unknown result type (might be due to invalid IL or missing references) //IL_04a6: Unknown result type (might be due to invalid IL or missing references) //IL_04ab: Unknown result type (might be due to invalid IL or missing references) //IL_0535: Unknown result type (might be due to invalid IL or missing references) //IL_0565: Unknown result type (might be due to invalid IL or missing references) //IL_0572: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_064c: Unknown result type (might be due to invalid IL or missing references) //IL_07f1: Unknown result type (might be due to invalid IL or missing references) //IL_085c: Unknown result type (might be due to invalid IL or missing references) //IL_0870: Unknown result type (might be due to invalid IL or missing references) //IL_08bf: Unknown result type (might be due to invalid IL or missing references) //IL_08c4: Unknown result type (might be due to invalid IL or missing references) //IL_08e7: Unknown result type (might be due to invalid IL or missing references) //IL_08ec: Unknown result type (might be due to invalid IL or missing references) //IL_091a: 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) GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoBody.prefab").WaitForCompletion(); characterPrefab = PrefabAPI.InstantiateClone(val, "TalusBody", true); TrackerBehaviour trackerBehaviour = characterPrefab.AddComponent<TrackerBehaviour>(); characterPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true; Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("ModelBase")).gameObject); Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("CameraPivot")).gameObject); Object.Destroy((Object)(object)((Component)characterPrefab.transform.Find("AimOrigin")).gameObject); GameObject val2 = Assets.MainAssetBundle.LoadAsset<GameObject>("talusMdl"); PrintController val3 = val2.AddComponent<PrintController>(); ((Behaviour)val3).enabled = false; val3.printTime = 0.6f; val3.disableWhenFinished = true; val3.startingPrintHeight = 4f; val3.maxPrintHeight = -1f; val3.startingPrintBias = 2f; val3.maxPrintBias = 0.95f; val3.printCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); trackerBehaviour.printController = val3; GameObject val4 = new GameObject("ModelBase"); val4.transform.parent = characterPrefab.transform; val4.transform.localPosition = new Vector3(0f, -0.94f, 0f); val4.transform.localRotation = Quaternion.identity; val4.transform.localScale = Vector3.one * 0.8f; GameObject val5 = new GameObject("AimOrigin"); val5.transform.parent = val4.transform; val5.transform.localPosition = new Vector3(0f, 1.4f, 0f); val5.transform.localRotation = Quaternion.identity; val5.transform.localScale = Vector3.one; Transform transform = val2.transform; transform.parent = val4.transform; transform.localPosition = Vector3.zero; transform.localScale = Vector3.one; transform.localRotation = Quaternion.identity; CharacterDirection component = characterPrefab.GetComponent<CharacterDirection>(); component.targetTransform = val4.transform; component.modelAnimator = val2.GetComponentInChildren<Animator>(); component.turnSpeed = 720f; CharacterBody component2 = characterPrefab.GetComponent<CharacterBody>(); ((Object)component2).name = "TalusBody"; component2.baseNameToken = "TALUS_NAME"; component2.subtitleNameToken = "TALUS_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 110f; component2.levelMaxHealth = 35f; component2.baseRegen = 1.5f; component2.levelRegen = 0.2f; component2.baseMaxShield = 0f; component2.levelMaxShield = 0f; component2.baseMoveSpeed = 7f; component2.levelMoveSpeed = 0f; component2.baseAcceleration = 110f; component2.baseJumpPower = 15f; component2.levelJumpPower = 0f; component2.baseDamage = 12f; component2.levelDamage = 2.4f; component2.baseAttackSpeed = 1f; component2.levelAttackSpeed = 0f; component2.baseCrit = 1f; component2.levelCrit = 0f; component2.baseArmor = 0f; component2.levelArmor = 0f; component2.baseJumpCount = 1; component2.sprintingSpeedMultiplier = 1.45f; component2.wasLucky = false; component2.hideCrosshair = false; component2.aimOriginTransform = val5.transform; component2.hullClassification = (HullClassification)0; component2.portraitIcon = (Texture)(object)Assets.MainAssetBundle.LoadAsset<Sprite>("portrait").texture; component2.isChampion = false; component2.currentVehicle = null; component2.skinIndex = 0u; component2.bodyColor = characterColor; CharacterMotor component3 = characterPrefab.GetComponent<CharacterMotor>(); component3.walkSpeedPenaltyCoefficient = 1f; component3.characterDirection = component; component3.muteWalkMotion = false; component3.mass = 110f; component3.airControl = 0.25f; component3.disableAirControlUntilCollision = false; component3.generateParametersOnAwake = true; InputBankTest component4 = characterPrefab.GetComponent<InputBankTest>(); component4.moveVector = Vector3.zero; CameraTargetParams component5 = characterPrefab.GetComponent<CameraTargetParams>(); component5.cameraParams = val.GetComponent<CameraTargetParams>().cameraParams; component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = characterPrefab.GetComponent<ModelLocator>(); component6.modelTransform = transform; component6.modelBaseTransform = val4.transform; component6.dontReleaseModelOnDeath = false; component6.autoUpdateModelTransform = true; component6.dontDetatchFromParent = false; component6.noCorpse = false; component6.normalizeToFloor = false; component6.preserveModel = false; ChildLocator component7 = val2.GetComponent<ChildLocator>(); CharacterModel val6 = val2.AddComponent<CharacterModel>(); SkinnedMeshRenderer[] componentsInChildren = val2.GetComponentsInChildren<SkinnedMeshRenderer>(); List<RendererInfo> list = new List<RendererInfo>(); for (int i = 0; i < componentsInChildren.Length; i++) { list.Add(new RendererInfo { renderer = (Renderer)(object)componentsInChildren[i], defaultMaterial = Utils.InstantiateMaterial(((Renderer)componentsInChildren[i]).material.mainTexture), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }); } RendererInfo[] array = list.ToArray(); val6.body = component2; val6.baseRendererInfos = array; val6.autoPopulateLightInfos = true; val6.invisibilityCount = 0; val6.temporaryOverlays = new List<TemporaryOverlay>(); val6.mainSkinnedMeshRenderer = componentsInChildren[0]; GameObject gameObject = ((Component)transform).gameObject; CharacterModel component8 = gameObject.GetComponent<CharacterModel>(); ModelSkinController val7 = gameObject.AddComponent<ModelSkinController>(); ChildLocator component9 = gameObject.GetComponent<ChildLocator>(); LanguageAPI.Add("TALUSBODY_DEFAULT_SKIN_NAME", "Default"); LanguageAPI.Add("TALUSBODY_MASTERY_SKIN_NAME", "Mastery"); val7.skins = (SkinDef[])(object)new SkinDef[2] { LoadoutAPI.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(componentsInChildren, gameObject, "TALUSBODY_DEFAULT_SKIN_NAME", "base", array)), LoadoutAPI.CreateNewSkinDef(Utils.CreateNewSkinDefInfo(componentsInChildren, gameObject, "TALUSBODY_MASTERY_SKIN_NAME", "skin", array)) }; SkinnedMeshRenderer[] array2 = componentsInChildren; foreach (SkinnedMeshRenderer val8 in array2) { string name = ((Object)val8).name; if (name.Contains("skin")) { ((Component)val8).gameObject.SetActive(false); } } HealthComponent component10 = characterPrefab.GetComponent<HealthComponent>(); component10.health = component2.baseMaxHealth; component10.shield = 0f; component10.barrier = 0f; component10.magnetiCharge = 0f; component10.body = null; component10.dontShowHealthbar = false; characterPrefab.GetComponent<Interactor>().maxInteractionDistance = 3f; characterPrefab.GetComponent<InteractionDriver>().highlightInteractor = true; SfxLocator component11 = characterPrefab.GetComponent<SfxLocator>(); component11.deathSound = "Play_ui_player_death"; component11.barkSound = ""; component11.openSound = ""; component11.landingSound = "Play_char_land"; component11.fallDamageSound = "Play_char_land_fall_damage"; component11.aliveLoopStart = ""; component11.aliveLoopStop = ""; characterPrefab.GetComponent<Rigidbody>().mass = 110f; Collider[] componentsInChildren2 = val2.GetComponentsInChildren<Collider>(); HurtBoxGroup val9 = val2.AddComponent<HurtBoxGroup>(); List<HurtBox> list2 = new List<HurtBox>(); Collider[] array3 = componentsInChildren2; foreach (Collider val10 in array3) { HurtBox val11 = ((Component)val10).gameObject.AddComponent<HurtBox>(); ((Component)val11).gameObject.layer = LayerIndex.entityPrecise.intVal; val11.healthComponent = component10; val11.isBullseye = true; val11.damageModifier = (DamageModifier)0; val11.hurtBoxGroup = val9; val11.indexInGroup = 0; val9.mainHurtBox = val11; val9.bullseyeCount = 1; list2.Add(val11); } val9.hurtBoxes = list2.ToArray(); Utils.CreateHitbox("Punch", val2.transform, new Vector3(6f, 6f, 8f), new Vector3(0f, 0.7f, 3.5f)); KinematicCharacterMotor component12 = characterPrefab.GetComponent<KinematicCharacterMotor>(); component12.CharacterController = (BaseCharacterController)(object)component3; FootstepHandler val12 = val2.AddComponent<FootstepHandler>(); val12.baseFootstepString = "Play_player_footstep"; val12.sprintFootstepOverrideString = ""; val12.enableFootstepDust = true; val12.footstepDustPrefab = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Common/VFX/GenericFootstepDust.prefab").WaitForCompletion(); EntityStateMachine component13 = ((Component)component2).GetComponent<EntityStateMachine>(); component13.mainStateType = new SerializableEntityStateType(typeof(CharacterMain)); CharacterDeathBehavior component14 = characterPrefab.GetComponent<CharacterDeathBehavior>(); component14.deathStateMachine = characterPrefab.GetComponent<EntityStateMachine>(); component14.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath)); NetworkStateMachine component15 = ((Component)component2).GetComponent<NetworkStateMachine>(); component15.stateMachines = ((Component)component2).GetComponents<EntityStateMachine>(); ContentAddition.AddBody(characterPrefab); } private void RegisterCharacter() { //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) string text = "Talus is an Agile Survivor implemented from the game Paladins, his gameplay focuses on escaping fate and overcharging his primary to do more damage.<style=cSub>\r\n\r\n< ! > If you wait a few seconds after reloading, you will get full capacity of Veracharger back again! Useful if you are running low on Ammo!\r\n\r\n< ! > If you are having a hard time getting to a chest, use your Blitz Upper in it's direction to move yourself closer to it!\r\n\r\n< ! > Remember to use your Rune of Travel, it may be annoying teleporting back to where you previously were, but there is no shame in a tactical retreat!\r\n\r\n< ! > You can use your True Power to move yourself from one end of the map to another, giving yourself a temporary invulnerability and overcharging your primary!\r\n\r\n< ! > Experiment with the passives as you unlock them to see which ones you find most fitting!\r\n\r\n"; string text2 = "..and so he left."; string text3 = "..and so he vanished."; LanguageAPI.Add("TALUS_NAME", "Talus"); LanguageAPI.Add("TALUS_DESCRIPTION", text); LanguageAPI.Add("TALUS_SUBTITLE", ""); LanguageAPI.Add("TALUS_OUTRO", text2); LanguageAPI.Add("TALUS_FAIL", text3); SurvivorDef val = ScriptableObject.CreateInstance<SurvivorDef>(); val.cachedName = "TALUS_NAME"; val.unlockableDef = null; val.descriptionToken = "TALUS_DESCRIPTION"; val.primaryColor = characterColor; val.bodyPrefab = characterPrefab; val.displayPrefab = Utils.NewDisplayModel(((Component)characterPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "TalusDisplay"); val.outroFlavorToken = "TALUS_OUTRO"; val.desiredSortPosition = 18f; val.mainEndingEscapeFailureFlavorToken = "TALUS_FAIL"; ContentAddition.AddSurvivorDef(val); SkillSetup(); GameObject val2 = PrefabAPI.InstantiateClone(Prefabs.Load<GameObject>("RoR2/Base/Commando/CommandoMonsterMaster.prefab"), "TalusMaster", true); ContentAddition.AddMaster(val2); CharacterMaster component = val2.GetComponent<CharacterMaster>(); component.bodyPrefab = characterPrefab; } private void RegisterStates() { //IL_0003: 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_0013: 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_0023: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) bool flag = default(bool); ContentAddition.AddEntityState<Primary>(ref flag); ContentAddition.AddEntityState<Secondary>(ref flag); ContentAddition.AddEntityState<SecondaryPunch>(ref flag); ContentAddition.AddEntityState<Utility>(ref flag); ContentAddition.AddEntityState<UtilityTeleport>(ref flag); ContentAddition.AddEntityState<Special>(ref flag); ContentAddition.AddEntityState<SpecialTeleport>(ref flag); ContentAddition.AddEntityState<CharacterMain>(ref flag); ContentAddition.AddEntityState<Reload>(ref flag); ContentAddition.AddEntityState<PrimaryReloadWait>(ref flag); } private void SkillSetup() { GenericSkill[] componentsInChildren = characterPrefab.GetComponentsInChildren<GenericSkill>(); foreach (GenericSkill val in componentsInChildren) { Object.DestroyImmediate((Object)(object)val); } PassiveSetup(); PrimarySetup(); SecondarySetup(); UtilitySetup(); SpecialSetup(); } private void PassiveSetup() { //IL_0072: 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_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_01fd: Unknown result type (might be due to invalid IL or missing references) //IL_0236: Unknown result type (might be due to invalid IL or missing references) LanguageAPI.Add("TALUS_PASSIVE1_NAME", "Inner Strength"); LanguageAPI.Add("TALUS_PASSIVE1_DESCRIPTION", "Resets <style=cIsDamage>Veracharger</style> stocks and <style=cIsDamage>Blitz Upper</style> cooldown when you <style=cIsUtility>teleport</style> using <style=cIsDamage>Rune of Travel</style>."); LanguageAPI.Add("TALUS_PASSIVE2_NAME", "Faustian Bargain"); LanguageAPI.Add("TALUS_PASSIVE2_DESCRIPTION", "<style=cIsDamage>Rune of Travel</style> no longer automatically activates, and if the Rune is not used the <style=cIsUtility>cooldown</style> is reset."); LanguageAPI.Add("TALUS_PASSIVE3_NAME", "Nothing Personal"); LanguageAPI.Add("TALUS_PASSIVE3_DESCRIPTION", "Reduces <style=cIsDamage>True Power</style> cooldown by <style=cIsUtility>15%</style>, and enemies at or below <style=cIsHealth>65% Max HP</style> are <style=cIsDamage>revealed</style> to you."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Idle)); val.activationStateMachineName = ""; val.baseMaxStock = 0; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 0; val.stockToConsume = 0; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive1"); val.skillDescriptionToken = "TALUS_PASSIVE1_DESCRIPTION"; val.skillName = "TALUS_PASSIVE1_NAME"; val.skillNameToken = "TALUS_PASSIVE1_NAME"; GenericSkill val2 = Utils.NewGenericSkill(characterPrefab, val); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Idle)); val.activationStateMachineName = ""; val.baseMaxStock = 0; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 0; val.stockToConsume = 0; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive2"); val.skillDescriptionToken = "TALUS_PASSIVE2_DESCRIPTION"; val.skillName = "TALUS_PASSIVE2_NAME"; val.skillNameToken = "TALUS_PASSIVE2_NAME"; Utils.AddAlt(val2.skillFamily, val, Achievements.passive1Unlock); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Idle)); val.activationStateMachineName = ""; val.baseMaxStock = 0; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 0; val.stockToConsume = 0; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("passive3"); val.skillDescriptionToken = "TALUS_PASSIVE3_DESCRIPTION"; val.skillName = "TALUS_PASSIVE3_NAME"; val.skillNameToken = "TALUS_PASSIVE3_NAME"; Utils.AddAlt(val2.skillFamily, val, Achievements.passive2Unlock); } private void PrimarySetup() { //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_012f: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("TALUS_M1", "Veracharger"); LanguageAPI.Add("TALUS_M1_DESCRIPTION", "A fast-firing weapon for short-range engagements that deals <style=cIsDamage>110% damage</style>."); LanguageAPI.Add("TALUS_M1EMP", "Overcharge"); LanguageAPI.Add("TALUS_M1EMP_DESCRIPTION", "A very fast-firing weapon for short-range engagements that deals <style=cIsDamage>2x110% damage</style>."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Primary)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 35; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("primary"); val.skillDescriptionToken = "TALUS_M1_DESCRIPTION"; val.skillName = "TALUS_M1"; val.skillNameToken = "TALUS_M1"; ContentAddition.AddSkillDef(val); component.primary = Utils.NewGenericSkill(characterPrefab, val); val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Primary)); val.activationStateMachineName = "Weapon"; val.baseMaxStock = 120; val.baseRechargeInterval = 0f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = true; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = false; val.cancelSprintingOnActivation = true; val.rechargeStock = 0; val.requiredStock = 2; val.stockToConsume = 2; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("primaryEmp"); val.skillDescriptionToken = "TALUS_M1EMP_DESCRIPTION"; val.skillName = "TALUS_M1EMP"; val.skillNameToken = "TALUS_M1EMP"; ContentAddition.AddSkillDef(val); primaryEmp = val; } private void SecondarySetup() { //IL_003d: 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_007b: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("TALUS_M2", "Blitz Upper"); LanguageAPI.Add("TALUS_M2_DESCRIPTION", "Charge forward to deal <style=cIsDamage>480%</style> damage and knock enemies straight back."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Secondary)); val.activationStateMachineName = "Body"; val.baseMaxStock = 1; val.baseRechargeInterval = 4f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = true; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("secondary"); val.skillDescriptionToken = "TALUS_M2_DESCRIPTION"; val.skillName = "TALUS_M2"; val.skillNameToken = "TALUS_M2"; ContentAddition.AddSkillDef(val); component.secondary = Utils.NewGenericSkill(characterPrefab, val); } private void UtilitySetup() { //IL_003d: 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_007b: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("TALUS_UTIL", "Rune of Travel"); LanguageAPI.Add("TALUS_UTIL_DESCRIPTION", "Inscribe a rune on the ground that can be used to escape back to its location after <style=cIsUtility>6s</style> and <style=cIsHealing>heal</style> you for <style=cIsHealth>15% Max HP</style>. You can reactivate the rune to teleport sooner."); SkillDef val = ScriptableObject.CreateInstance<SkillDef>(); val.activationState = new SerializableEntityStateType(typeof(Utility)); val.activationStateMachineName = "Slide"; val.baseMaxStock = 1; val.baseRechargeInterval = 5f; val.beginSkillCooldownOnSkillEnd = true; val.canceledFromSprinting = false; val.fullRestockOnAssign = false; val.interruptPriority = (InterruptPriority)0; val.isCombatSkill = false; val.mustKeyPress = true; val.cancelSprintingOnActivation = false; val.rechargeStock = 1; val.requiredStock = 1; val.stockToConsume = 1; val.icon = Assets.MainAssetBundle.LoadAsset<Sprite>("utility"); val.skillDescriptionToken = "TALUS_UTIL_DESCRIPTION"; val.skillName = "TALUS_UTIL"; val.skillNameToken = "TALUS_UTIL"; ContentAddition.AddSkillDef(val); component.utility = Utils.NewGenericSkill(characterPrefab, val); } private void SpecialSetup() { //IL_003d: 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_007b: Unknown result type (might be due to invalid IL or missing references) SkillLocator component = characterPrefab.GetComponent<SkillLocator>(); LanguageAPI.Add("TALUS_SPEC", "True Power"); LanguageAPI.Add("TALUS_SPEC_DESCRIPTION", "<style=cIsUtility>Teleport</style> directly to an unsuspecting enemy, dealing <style=cIsDamage>1200% damage</style> in a <style=cIsUtility>14m radius</style> and overcharges <style=cIsDamage>Veracharger</style>, firing an additional bullet and gaining <style=cIsDamage>33% fire rate</style> and <style=cIsDamage>120 stocks</style>."); HuntressTrackingSkillDef val = ScriptableObject.CreateInstance<HuntressTrackingSkillDef>(); ((SkillDef)val).activationState = new SerializableEntityStateType(typeof(Special)); ((SkillDef)val).activationStateMachineName = "Body"; ((SkillDef)val).baseMaxStock = 1; ((SkillDef)val).baseRechargeInterval = 8f; ((SkillDef)val).beginSkillCooldownOnSkillEnd = true; ((SkillDef)val).canceledFromSprinting = false; ((SkillDef)val).fullRestockOnAssign = false; ((SkillDef)val).interruptPriority = (InterruptPriority)1; ((SkillDef)val).isCombatSkill = true; ((SkillDef)val).mustKeyPress = true; ((SkillDef)val).cancelSprintingOnActivation = false; ((SkillDef)val).rechargeStock = 1; ((SkillDef)val).requiredStock = 1; ((SkillDef)val).stockToConsume = 1; ((SkillDef)val).icon = Assets.MainAssetBundle.LoadAsset<Sprite>("special"); ((SkillDef)val).skillDescriptionToken = "TALUS_SPEC_DESCRIPTION"; ((SkillDef)val).skillName = "TALUS_SPEC"; ((SkillDef)val).skillNameToken = "TALUS_SPEC"; ContentAddition.AddSkillDef((SkillDef)(object)val); component.special = Utils.NewGenericSkill(characterPrefab, (SkillDef)(object)val); } } internal class Prefabs { internal static GameObject TPHUDIndicator; internal static GameObject crosshair; internal static GameObject ultExplosion; internal static GameObject fireImpactEffect; internal static GameObject fireTracer; internal static GameObject punchHit; internal static GameObject swingEffect; internal static GameObject rune; internal static GameObject indicator; internal static GameObject muzzleflash; internal static Material revealMat; 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(); } internal static void CreatePrefabs() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Expected O, but got Unknown //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Expected O, but got Unknown //IL_00fd: 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_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0229: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02dc: Expected O, but got Unknown //IL_0276: Unknown result type (might be due to invalid IL or missing references) //IL_0280: Expected O, but got Unknown //IL_02a1: 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_0393: Unknown result type (might be due to invalid IL or missing references) //IL_039d: Expected O, but got Unknown //IL_0448: Unknown result type (might be due to invalid IL or missing references) //IL_0452: Expected O, but got Unknown //IL_04bc: Unknown result type (might be due to invalid IL or missing references) //IL_04c6: Expected O, but got Unknown //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_0566: Unknown result type (might be due to invalid IL or missing references) //IL_0570: Unknown result type (might be due to invalid IL or missing references) //IL_0591: Unknown result type (might be due to invalid IL or missing references) //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0609: Expected O, but got Unknown //IL_061d: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_0637: Unknown result type (might be due to invalid IL or missing references) //IL_063e: Expected O, but got Unknown //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_065d: Expected O, but got Unknown //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Unknown result type (might be due to invalid IL or missing references) //IL_06e4: Unknown result type (might be due to invalid IL or missing references) //IL_06ee: Expected O, but got Unknown //IL_0705: Unknown result type (might be due to invalid IL or missing references) //IL_0712: Unknown result type (might be due to invalid IL or missing references) //IL_074c: Unknown result type (might be due to invalid IL or missing references) //IL_0756: Expected O, but got Unknown //IL_077c: Unknown result type (might be due to invalid IL or missing references) //IL_0781: Unknown result type (might be due to invalid IL or missing references) //IL_0793: Unknown result type (might be due to invalid IL or missing references) //IL_07f2: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_0844: Unknown result type (might be due to invalid IL or missing references) //IL_084e: Expected O, but got Unknown //IL_085f: Unknown result type (might be due to invalid IL or missing references) //IL_0894: Unknown result type (might be due to invalid IL or missing references) //IL_089e: Expected O, but got Unknown //IL_08b9: Unknown result type (might be due to invalid IL or missing references) //IL_08be: Unknown result type (might be due to invalid IL or missing references) //IL_090e: Unknown result type (might be due to invalid IL or missing references) //IL_0918: Expected O, but got Unknown GameObject val = new GameObject("dontDestroyOnLoad"); val.SetActive(false); Object.DontDestroyOnLoad((Object)(object)val); TPHUDIndicator = new GameObject("TPHUDIndicator", new Type[2] { typeof(RectTransform), typeof(Image) }); RectTransform val2 = (RectTransform)TPHUDIndicator.transform; ((Transform)val2).localScale = Vector3.one; val2.sizeDelta = Vector2.one * 180f; Image component = TPHUDIndicator.GetComponent<Image>(); component.type = (Type)3; component.fillOrigin = 2; component.fillClockwise = false; ((Graphic)component).color = Color.yellow; component.sprite = Load<Sprite>("RoR2/Base/UI/texCrosshairCircle.png"); TPHUDIndicator.transform.SetParent(val.transform); revealMat = new Material(Load<Material>("RoR2/Base/Common/matEnergyShield.mat")); revealMat.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)70, (byte)0, byte.MaxValue, (byte)145))); revealMat.SetFloat("_AlphaBoost", 1.2f); revealMat.SetFloat("_OffsetAmount", 0.02f); revealMat.SetFloat("_ZTest", 8f); crosshair = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Bandit2/Bandit2Crosshair.prefab"), "TalusEmpCrosshair", false); ((Behaviour)crosshair.GetComponent<RawImage>()).enabled = true; Texture2D val3 = Load<Texture2D>("RoR2/Base/Common/texRampDeathBomb.png"); Texture2D val4 = Load<Texture2D>("RoR2/Base/Common/ColorRamps/texRampGalaxy.png"); Texture2D val5 = Load<Texture2D>("RoR2/Base/Common/ColorRamps/texRampBanditAlt.png"); Texture2D val6 = Load<Texture2D>("RoR2/Base/Common/VFX/texOmniHitspark1Mask.png"); Material val7 = null; indicator = PrefabAPI.InstantiateClone(Assets.Load<GameObject>("indicator"), "Indicator", false); Utils.AddRotationComponent(indicator, 60f, (RotationAxis)2); indicator.transform.localScale = Vector3.one * 0.025f; muzzleflash = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Bandit2/MuzzleflashBandit2.prefab"), "Muzzleflash", false); muzzleflash.GetComponentInChildren<Light>().color = Color32.op_Implicit(new Color32((byte)127, (byte)0, byte.MaxValue, byte.MaxValue)); ParticleSystemRenderer[] componentsInChildren = muzzleflash.GetComponentsInChildren<ParticleSystemRenderer>(); foreach (ParticleSystemRenderer val8 in componentsInChildren) { string name = ((Object)val8).name; if (name == "Fire") { ((Renderer)val8).material = new Material(((Renderer)val8).material); ((Renderer)val8).material.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)214, (byte)160, byte.MaxValue, byte.MaxValue))); ((Renderer)val8).material.SetTexture("_RemapTex", (Texture)(object)val5); } else { ((Renderer)val8).material = new Material(((Renderer)val8).material); ((Renderer)val8).material.SetTexture("_MainTex", (Texture)(object)val6); ((Renderer)val8).material.SetTexture("_RemapTex", (Texture)(object)val5); } } ContentAddition.AddEffect(muzzleflash); punchHit = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Common/VFX/OmniImpactVFX.prefab"), "PunchHit", false); Object.Destroy((Object)(object)punchHit.GetComponent<OmniEffect>()); punchHit.GetComponent<EffectComponent>().soundName = "Play_Talus_Punch_Hit"; ParticleSystemRenderer[] componentsInChildren2 = punchHit.GetComponentsInChildren<ParticleSystemRenderer>(true); foreach (ParticleSystemRenderer val9 in componentsInChildren2) { ((Component)val9).gameObject.SetActive(true); ((Renderer)val9).material = new Material(((Renderer)val9).material); Material material = ((Renderer)val9).material; material.DisableKeyword("VERTEXCOLOR"); material.SetTexture("_RemapTex", (Texture)(object)val4); if (!Object.op_Implicit((Object)(object)val7)) { val7 = material; } } ContentAddition.AddEffect(punchHit); fireImpactEffect = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/LunarWisp/LunarWispMinigunHitspark.prefab"), "FireImpactEffect", false); fireImpactEffect.GetComponent<EffectComponent>().soundName = "Play_Talus_Fire_Hit"; ParticleSystemRenderer[] componentsInChildren3 = fireImpactEffect.GetComponentsInChildren<ParticleSystemRenderer>(); ((Renderer)componentsInChildren3[0]).material = val7; ParticleSystemRenderer val10 = componentsInChildren3[1]; ((Renderer)val10).material = new Material(((Renderer)val10).material); ((Renderer)val10).material.DisableKeyword("VERTEXCOLOR"); ((Renderer)val10).material.SetTexture("_RemapTex", (Texture)(object)val4); ContentAddition.AddEffect(fireImpactEffect); swingEffect = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Croco/CrocoSlash.prefab"), "SwingEffect", false); ParticleSystemRenderer[] componentsInChildren4 = swingEffect.GetComponentsInChildren<ParticleSystemRenderer>(); ParticleSystemRenderer val11 = componentsInChildren4[0]; ((Renderer)val11).material = new Material(Load<Material>("RoR2/Base/Brother/matBrotherSwing.mat")); Material material2 = ((Renderer)val11).material; material2.SetTexture("_RemapTex", (Texture)(object)val3); material2.SetTexture("_Cloud1Tex", (Texture)(object)Load<Texture2D>("RoR2/Base/Common/texMagmaCloud.png")); material2.SetFloat("_Boost", 5f); material2.SetFloat("_DepthOffset", -4.666f); material2.SetFloat("_InvFade", 0.128f); material2.SetFloat("_AlphaBoost", 1.7f); ((Component)val11).transform.localScale = Vector3.one * 2f; ParticleSystemRenderer val12 = componentsInChildren4[1]; ((Component)val12).transform.localScale = Vector3.one * 2f; ((Component)val12).transform.localRotation = Quaternion.Euler(0f, 0f, 140f); swingEffect.AddComponent<DestroyOnTimer>().duration = 1f; ScaleParticleSystemDuration component2 = swingEffect.GetComponent<ScaleParticleSystemDuration>(); component2.newDuration = 0.55f; component2.initialDuration = 0.55f; rune = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Huntress/HuntressArrowRainIndicator.prefab"), "Rune", false); MeshRenderer componentInChildren = rune.GetComponentInChildren<MeshRenderer>(); Material val13 = new Material(((Renderer)componentInChildren).material); val13.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)70, (byte)0, byte.MaxValue, byte.MaxValue))); Material val14 = new Material(Load<Material>("RoR2/Base/artifactworld/matArtifactShellTrail.mat")); val14.SetTexture("_RemapTex", (Texture)(object)val3); Material val15 = new Material(Load<Material>("RoR2/DLC1/LunarSun/matLunarSunProjectileTrail.mat")); val15.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)14, (byte)0, (byte)103, byte.MaxValue))); val15.SetTexture("_RemapTex", (Texture)(object)Load<Texture2D>("RoR2/Base/Common/ColorRamps/texRampDefault.png")); ((Renderer)componentInChildren).materials = (Material[])(object)new Material[3] { val13, val14, val15 }; fireTracer = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/Base/Bandit2/TracerBandit2Rifle.prefab"), "FireTracer", false); LineRenderer component3 = fireTracer.GetComponent<LineRenderer>(); ((Renderer)component3).material = new Material(Load<Material>("RoR2/Base/Bandit2/matBandit2SplatterOpaqueTrail.mat")); ((Renderer)component3).material.SetTexture("_RemapTex", (Texture)(object)val5); component3.startColor = Color.white; component3.endColor = Color.white; component3.startWidth = 0f; component3.endWidth = 0.3f; ParticleSystemRenderer componentInChildren2 = fireTracer.GetComponentInChildren<ParticleSystemRenderer>(); ((Renderer)componentInChildren2).material = new Material(((Renderer)componentInChildren2).material); ((Renderer)componentInChildren2).material.DisableKeyword("VERTEXCOLOR"); ((Renderer)componentInChildren2).material.SetColor("_TintColor", Color32.op_Implicit(new Color32((byte)12, (byte)0, (byte)66, (byte)106))); ((Component)componentInChildren2).transform.localScale = Vector3.one; ContentAddition.AddEffect(fireTracer); ultExplosion = PrefabAPI.InstantiateClone(Load<GameObject>("RoR2/DLC1/ExplodeOnDeathVoid/ExplodeOnDeathVoidExplosionEffect.prefab"), "UltExplosion", false); ultExplosion.GetComponent<EffectComponent>().soundName = "Play_Talus_Ult_Hit"; ultExplosion.GetComponentInChildren<Light>().color = Color32.op_Implicit(new Color32((byte)197, (byte)69, byte.MaxValue, byte.MaxValue)); ParticleSystemRenderer[] componentsInChildren5 = ultExplosion.GetComponentsInChildren<ParticleSystemRenderer>(); foreach (ParticleSystemRenderer val16 in componentsInChildren5) { string name2 = ((Object)val16).name; if (name2 == "Vacuum Stars") { ((Renderer)val16).material = new Material(((Renderer)val16).material); Material material3 = ((Renderer)val16).material; material3.SetColor("_Color", Color.yellow); material3.DisableKeyword("VERTEXCOLOR"); } if (name2 == "GravCenter") { ((Renderer)val16).material = new Material(((Renderer)val16).material); Material material4 = ((Renderer)val16).material; material4.SetColor("_Color", Color32.op_Implicit(new Color32((byte)29, (byte)1, (byte)50, byte.MaxValue))); material4.SetTexture("_MainTex", (Texture)(object)Load<CustomRenderTexture>("RoR2/DLC1/snowyforest/crtexSFSunCaustics.asset")); } if (name2 == "ScaledHitsparks 1" || name2 == "ScaledHitsparks 2") { ((Renderer)val16).material = new Material(((Renderer)val16).material); ((Renderer)val16).material.SetTexture("_RemapTex", (Texture)(object)Load<Texture2D>("RoR2/Base/Common/ColorRamps/texRampCaptainAirstrike.png")); } } ContentAddition.AddEffect(ultExplosion); } } internal class Reload : BaseSkillState { private float duration; private float baseDuration = 1f; private uint ID = 0u; private TrackerBehaviour tracker; public override void OnEnter() { ((BaseState)this).OnEnter(); tracker = ((EntityState)this).GetComponent<TrackerBehaviour>(); ((EntityState)this).GetModelAnimator().SetTrigger("trigger"); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).PlayAnimation("Gesture, Override", "Reload", "Reload", duration); AkSoundEngine.PostEvent(Sounds.Play_Talus_Reload_Start, ((EntityState)this).gameObject); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= duration * 0.65f && ID == 0) { ID = AkSoundEngine.PostEvent(Sounds.Play_Talus_Reload_Finish, ((EntityState)this).gameObject); } if (((EntityState)this).isAuthority) { if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).skillLocator.primary.Reset(); ((EntityState)this).outer.SetNextStateToMain(); } else if (((EntityState)this).inputBank.skill1.down && ((EntityState)this).skillLocator.primary.stock > 0) { ((EntityState)this).outer.SetNextStateToMain(); } } } public override void OnExit() { if (((EntityState)this).skillLocator.primary.HasSkillOverrideOfPriority((SkillOverridePriority)4)) { ((EntityState)this).skillLocator.primary.UnsetSkillOverride((object)((EntityState)this).gameObject, MainPlugin.primaryEmp, (SkillOverridePriority)4); ((EntityState)this).GetModelAnimator().SetBool("stimmed", false); tracker.DisposeCrosshairOverride(); } AkSoundEngine.StopPlayingID(ID); ((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)1; } } internal class CharacterMain : GenericCharacterMain { } internal class Primary : BaseSkillState { private float duration; private float baseDuration; private float damageCoefficient = 1.1f; private bool emp; private bool sound; public override void OnEnter() { ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(2f, false); emp = ((EntityState)this).skillLocator.primary.HasSkillOverrideOfPriority((SkillOverridePriority)4); baseDuration = (emp ? 0.07125f : 0.095f); duration = baseDuration / ((BaseState)this).attackSpeedStat; ((EntityState)this).PlayAnimation("Gesture, Override", emp ? "EmpFire" : "Fire"); Fire(); } private void Fire() { //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_00b1: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: 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_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_00eb: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_0120: Unknown result type (might be due to invalid IL or missing references) //IL_0128: Unknown result type (might be due to invalid IL or missing references) //IL_0134: 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_014b: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0169: 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_017b: Unknown result type (might be due to invalid IL or missing references) //IL_017c: Unknown result type (might be due to invalid IL or missing references) //IL_0181: 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_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0198: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01ae: Unknown result type (might be due to invalid IL or missing references) //IL_01bb: Expected O, but got Unknown AkSoundEngine.PostEvent(emp ? Sounds.Play_Talus_Fire_Emp_Single : Sounds.Play_Talus_Fire_Single, ((EntityState)this).gameObject); float num = 0.3f; ((BaseState)this).AddRecoil(-1f * num, -1.5f * num, -0.25f * num, 0.25f * num); ((EntityState)this).characterBody.AddSpreadBloom(0.35f); EffectManager.SimpleMuzzleFlash(Prefabs.muzzleflash, ((EntityState)this).gameObject, "weaponMuzzle1", false); if (emp) { EffectManager.SimpleMuzzleFlash(Prefabs.muzzleflash, ((EntityState)this).gameObject, "weaponMuzzle2", false); } if (((EntityState)this).isAuthority) { Ray aimRay = ((BaseState)this).GetAimRay(); float num2 = 0.4f; BulletAttack val = new BulletAttack { bulletCount = 1u, aimVector = ((Ray)(ref aimRay)).direction, origin = ((Ray)(ref aimRay)).origin, damage = ((BaseState)this).damageStat * damageCoefficient, damageColorIndex = (DamageColorIndex)0, damageType = (DamageType)0, falloffModel = (FalloffModel)1, maxDistance = 250f, force = 30f, minSpread = 0f - num2, maxSpread = num2, isCrit = ((BaseState)this).RollCrit(), owner = ((EntityState)this).gameObject, muzzleName = "weaponMuzzle1", smartCollision = true, procChainMask = default(ProcChainMask), procCoefficient = 0.4f, radius = 0.07f, sniper = false, stopperMask = CommonMasks.bullet, weapon = null, tracerEffectPrefab = Prefabs.fireTracer, spreadPitchScale = 1f, spreadYawScale = 1f, hitEffectPrefab = Prefabs.fireImpactEffect }; val.Fire(); if (emp) { val.muzzleName = "weaponMuzzle2"; val.Fire(); } } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (emp && ((EntityState)this).fixedAge >= duration * 0.15f && !sound) { sound = true; AkSoundEngine.PostEvent(MinigunFire.fireSound, ((EntityState)this).gameObject); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { if (((EntityState)this).skillLocator.primary.stock == 0) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Reload()); } else if (((EntityState)this).skillLocator.primary.HasSkillOverrideOfPriority((SkillOverridePriority)4) || ((BaseSkillState)this).IsKeyDownAuthority()) { ((EntityState)this).outer.SetNextStateToMain(); } else { ((EntityState)this).outer.SetNextState((EntityState)(object)new PrimaryReloadWait()); } } } 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 PrimaryReloadWait : BaseSkillState { public float duration = 3f; public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextState((EntityState)(object)new Reload()); } if (((BaseSkillState)this).IsKeyDownAuthority()) { ((EntityState)this).outer.SetNextStateToMain(); } } } } internal class Secondary : BaseSkillState { private float duration = 0.3f; private float speedMult; private float speedCoeff = 15f; private AnimationCurve curve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); private Vector3 dir; public override void OnEnter() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //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_005e: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_009d: 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) ((BaseState)this).OnEnter(); speedMult = Mathf.Clamp(((BaseState)this).moveSpeedStat, 7f, 18f); ((EntityState)this).PlayAnimation("Body", "Dash", "M2", duration); Ray aimRay = ((BaseState)this).GetAimRay(); dir = ((Ray)(ref aimRay)).direction; Vector2 val = Util.Vector3XZToVector2XY(dir); if (val != Vector2.zero) { ((Vector2)(ref val)).Normalize(); Vector3 val2 = new Vector3(val.x, 0f, val.y); Vector3 normalized = ((Vector3)(ref val2)).normalized; ((EntityState)this).characterDirection.moveVector = normalized; } AkSoundEngine.PostEvent(Sounds.Play_Talus_Dash, ((EntityState)this).gameObject); } public override void FixedUpdate() { //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_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0085: Unknown result type (might be due to invalid IL or missing references) //IL_008f: 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_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_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: 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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterMotor.velocity = Vector3.zero; float num = curve.Evaluate(((EntityState)this).fixedAge / duration) * speedCoeff * speedMult; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.rootMotion += dir * num * Time.fixedDeltaTime; if (!((EntityState)this).isAuthority) { return; } Vector3 val = ((EntityState)this).transform.position + dir * 2f; LayerIndex entityPrecise = LayerIndex.entityPrecise; Collider[] array = Physics.OverlapSphere(val, 3f, LayerMask.op_Implicit(((LayerIndex)(ref entityPrecise)).mask)); for (int i = 0; i < array.Length; i++) { HurtBox component = ((Component)array[i]).GetComponent<HurtBox>(); if (Object.op_Implicit((Object)(object)component) && (Object)(object)component.healthComponent != (Object)(object)((EntityState)this).healthComponent && component.healthComponent.alive && Object.op_Implicit((Object)(object)component.healthComponent.body) && Object.op_Implicit((Object)(object)component.healthComponent.body.teamComponent)) { TeamMask enemyTeams = TeamMask.GetEnemyTeams(((EntityState)this).teamComponent.teamIndex); if (((TeamMask)(ref enemyTeams)).HasTeam(component.healthComponent.body.teamComponent.teamIndex)) { ((EntityState)this).outer.SetNextState((EntityState)(object)new SecondaryPunch()); break; } } } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextState((EntityState)(object)new SecondaryPunch()); } } public override void OnExit() { ((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)1; } } internal class SecondaryPunch : BaseSkillState { private float duration = 0.3f; private OverlapAttack attack; private float damageCoefficient = 4.8f; private GameObject hitEffectPrefab = Prefabs.punchHit; public Animator animator; private string hitboxGroupName = "Punch"; public override void OnEnter() { //IL_008d: 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_00af: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((BaseState)this).StartAimMode(1f, true); animator = ((EntityState)this).GetModelAnimator(); ((EntityState)this).PlayAnimation("Body", "Punch", "M2", 0.5f); AkSoundEngine.PostEvent(Sounds.Play_Talus_Punch, ((EntityState)this).gameObject); attack = ((BaseState)this).InitMeleeOverlap(damageCoefficient, hitEffectPrefab, ((EntityState)this).GetModelTransform(), hitboxGroupName); GameObject val = Object.Instantiate<GameObject>(Prefabs.swingEffect, ((BaseState)this).FindModelChild("swingMuzzle")); val.transform.localPosition = Vector3.zero; val.transform.localRotation = Quaternion.identity; val.transform.localScale = Vector3.one; } public override void FixedUpdate() { //IL_0039: 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_0043: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority) { attack.forceVector = (Object.op_Implicit((Object)(object)((EntityState)this).characterDirection) ? ((EntityState)this).characterDirection.forward : ((EntityState)this).transform.forward) * 1400f; attack.Fire((List<HurtBox>)null); } if (((EntityState)this).fixedAge >= duration && ((EntityState)this).isAuthority) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((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)1; } } internal class Special : BaseSkillState { private float duration = 1.2f; private Vector3 pos; private TrackerBehaviour tracker; private float damageCoefficient = 12f; private float radius = 14f; private bool print; private HurtBoxGroup hurtBoxGroup; public override void OnEnter() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); tracker = ((EntityState)this).GetComponent<TrackerBehaviour>(); if (((EntityState)this).isAuthority) { pos = ((Component)((HuntressTracker)tracker).trackingTarget).transform.position; } ((EntityState)this).PlayAnimation("Body", "TP_In", "Special", duration); AkSoundEngine.PostEvent(Sounds.Play_Talus_Ult_Activate, ((EntityState)this).gameObject); } public override void Update() { //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) ((EntityState)this).Update(); ((EntityState)this).characterMotor.velocity = Vector3.zero; } public override void FixedUpdate() { //IL_00a2: 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_00b8: 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_00c9: Unknown result type (might be due to invalid IL or missing references) //IL_00cb: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d5: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0112: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0124: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0132: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_013e: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).fixedAge >= 0.5f && !print) { print = true; tracker.PrintOut(); hurtBoxGroup = ((Component)((EntityState)this).GetModelTransform()).GetComponent<HurtBoxGroup>(); int hurtBoxesDeactivatorCounter = hurtBoxGroup.hurtBoxesDeactivatorCounter + 1; hurtBoxGroup.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; AkSoundEngine.PostEvent(Sounds.Play_Talus_Ult_Teleport, ((EntityState)this).gameObject); } if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { TeleportHelper.TeleportBody(((EntityState)this).characterBody, pos); EffectManager.SimpleEffect(Prefabs.ultExplosion, pos, Quaternion.identity, true); new BlastAttack { position = pos, attacker = ((EntityState)this).gameObject, baseDamage = ((BaseState)this).damageStat * damageCoefficient, baseForce = 2800f, crit = ((BaseState)this).RollCrit(), damageType = (DamageType)0, falloffModel = (FalloffModel)0, procCoefficient = 0.25f, radius = radius, attackerFiltering = (AttackerFiltering)2, teamIndex = ((EntityState)this).teamComponent.teamIndex }.Fire(); ((EntityState)this).outer.SetNextState((EntityState)(object)new SpecialTeleport()); } } 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 SpecialTeleport : BaseSkillState { private float duration = 0.7f; private TrackerBehaviour tracker; private AimRequest request; public override void OnEnter() { ((BaseState)this).OnEnter(); tracker = ((EntityState)this).GetComponent<TrackerBehaviour>(); tracker.PrintIn(); ((EntityState)this).PlayAnimation("Body", "TP_Out", "Special", duration); ((EntityState)this).GetModelAnimator().SetBool("stimmed", true); ((EntityState)this).skillLocator.primary.Reset(); tracker.CrosshairOverride(); if (((EntityState)this).isAuthority) { EntityStateMachine val = Array.Find(((EntityState)this).gameObject.GetComponents<EntityStateMachine>(), (EntityStateMachine x) => x.customName == "Weapon"); if (Object.op_Implicit((Object)(object)val) && ((object)val.state).GetType() != typeof(Idle)) { val.SetNextStateToMain(); } } ((EntityState)this).skillLocator.primary.SetSkillOverride((object)((EntityState)this).gameObject, MainPlugin.primaryEmp, (SkillOverridePriority)4); HurtBoxGroup component = ((Component)((EntityState)this).GetModelTransform()).GetComponent<HurtBoxGroup>(); int hurtBoxesDeactivatorCounter = component.hurtBoxesDeactivatorCounter - 1; component.hurtBoxesDeactivatorCounter = hurtBoxesDeactivatorCounter; request = ((EntityState)this).cameraTargetParams.RequestAimType((AimType)2); } public override void OnExit() { if (request != null) { request.Dispose(); } ((EntityState)this).OnExit(); } public override void Update() { //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) ((EntityState)this).Update(); ((EntityState)this).characterMotor.velocity = Vector3.zero; } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { ((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 Utility : BaseSkillState { private float duration = 6f; private GameObject posIndicator; private Image HUDIndicator; private Vector3 pos; private bool activate; private uint ID = 0u; private TrackerBehaviour behaviour; public override void OnEnter() { //IL_003d: 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_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); behaviour = ((EntityState)this).GetComponent<TrackerBehaviour>(); activate = behaviour.passiveIndex == 1; if (((EntityState)this).isAuthority) { pos = ((EntityState)this).transform.position; posIndicator = Object.Instantiate<GameObject>(Prefabs.rune, pos, Quaternion.identity); posIndicator.transform.localScale = new Vector3(1.5f, 3f, 1.5f); ID = AkSoundEngine.PostEvent(Sounds.Play_Talus_Rune_Loop, posIndicator); CrosshairManager val = CrosshairManager.instancesList.Find((CrosshairManager x) => (Object)(object)x.crosshairHudElement.targetBodyObject == (Object)(object)((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)val)) { GameObject val2 = Object.Instantiate<GameObject>(Prefabs.TPHUDIndicator, (Transform)(object)val.container); val2.transform.localPosition = Vector3.zero; HUDIndicator = val2.GetComponent<Image>(); } } ((EntityState)this).PlayAnimation("Gesture, Override", "Mark", "Utility", 0.4f); AkSoundEngine.PostEvent(Sounds.Play_Talus_Rune_Activate, ((EntityState)this).gameObject); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (Object.op_Implicit((Object)(object)HUDIndicator)) { HUDIndicator.fillAmount = (duration - ((EntityState)this).fixedAge) / duration; } if (!((EntityState)this).isAuthority) { return; } if (((EntityState)this).fixedAge >= duration) { if (activate) { ((EntityState)this).skillLocator.utility.RunRecharge(99f); ((EntityState)this).outer.SetNextStateToMain(); } else { TP(); } } if (((EntityState)this).fixedAge >= 0.3f && ((ButtonState)(ref ((EntityState)this).inputBank.skill3)).justPressed) { TP(); } } private void TP() { //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) UtilityTeleport utilityTeleport = new UtilityTeleport(); utilityTeleport.pos = pos; ((EntityState)this).outer.SetNextState((EntityState)(object)utilityTeleport); } public override void OnExit() { if (ID != 0) { AkSoundEngine.StopPlayingID(ID); } if (Object.op_Implicit((Object)(object)posIndicator)) { EntityState.Destroy((Object)(object)posIndicator); } if (Object.op_Implicit((Object)(object)HUDIndicator)) { EntityState.Destroy((Object)(object)((Component)HUDIndicator).gameObject); } ((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)1; } } internal class UtilityTeleport : BaseSkillState { public Vector3 pos; private float duration = 0.7f; private TrackerBehaviour tracker; public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).PlayAnimation("Body", "TP_Out_Util", "Utility", 1f); tracker = ((EntityState)this).GetComponent<TrackerBehaviour>(); tracker.PrintOut(); AkSoundEngine.PostEvent("Play_parent_teleport", ((EntityState)this).gameObject); } public override void Update() { //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) ((EntityState)this).Update(); ((EntityState)this).characterMotor.velocity = Vector3.zero; } public override void FixedUpdate() { //IL_0030: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); if (((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= duration) { TeleportHelper.TeleportBody(((EntityState)this).characterBody, pos); ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_00a2: 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) tracker.PrintIn(); AkSoundEngine.PostEvent(Sounds.Play_Talus_Teleport, ((EntityState)this).gameObject); ((EntityState)this).PlayAnimation("Body", "Recall", "Utility", 0.5f); if (((EntityState)this).isAuthority && tracker.passiveIndex == 0) { ((EntityState)this).skillLocator.primary.Reset(); ((EntityState)this).skillLocator.secondary.RunRecharge(99f); } if (NetworkServer.active) { ((EntityState)this).healthComponent.Heal(((EntityState)this).healthComponent.fullCombinedHealth * 0.15f, default(ProcChainMask), true); } ((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)1; } } internal class Sounds { public static readonly uint Play_Talus_Teleport = 91574637u; public static readonly uint Play_Talus_Ult_Teleport = 228381813u; public static readonly uint Play_Talus_Fire_Loop = 393345953u; public static readonly uint Play_Talus_Overcharge_Loop = 672175003u; public static readonly uint Play_Talus_Fire_Hit = 927830726u; public static readonly uint Play_Talus_Ult_Activate = 1187851719u; public static readonly uint Play_Talus_Rune_Activate = 1819569764u; public static readonly uint Play_Talus_Fire_Emp_Single = 1976325978u; public static readonly uint Play_Talus_Reload_Finish = 2042371399u; public static readonly uint Play_Talus_Punch_Hit = 2115979498u; public static readonly uint Play_Talus_Overcharge_Activate = 2425787482u; public static readonly uint Play_Talus_Fire_Single = 2834682091u; public static readonly uint Play_Talus_Fire_Emp_Loop = 2877483988u; public static readonly uint Play_Talus_Punch = 3056590580u; public static readonly uint Play_Talus_Rune_Loop = 3517241157u; public static readonly uint Play_Talus_Reload_Start = 3740918134u; public static readonly uint Play_Talus_Ult_Hit = 4273583411u; public static readonly uint Play_Talus_Dash = 662550592u; public static readonly uint Play_Talus_Foley1 = 684904386u; public static readonly uint Play_Talus_Foley2 = 684904385u; public static readonly uint Play_Talus_Foley3 = 684904384u; public static readonly uint Play_Talus_Foley4 = 684904391u; public static readonly uint Play_Talus_Foley5 = 684904390u; public static readonly uint Play_Talus_Foley_Step = 1118867858u; } internal static class Extensions { public static GameObject NewSyringe(this GameObject g, params Material[] m) { ((Renderer)g.GetComponentsInChildren<MeshRenderer>(false)[0]).material = m[0]; ((Renderer)g.GetComponent<TrailRenderer>()).material = m[1]; ((Renderer)g.GetComponent<ParticleSystemRenderer>()).material = m[2]; return g; } public static Material SwapTexture(this Material m, Texture2D t) { m.mainTexture = (Texture)(object)t; return m; } public static GameObject SwapMaterials(this GameObject g, Material[] m) { Renderer[] componentsInChildren = g.GetComponentsInChildren<Renderer>(); for (int i = 0; i < componentsInChildren.Length; i++) { if (Object.op_Implicit((Object)(object)m[i])) { componentsInChildren[i].material = m[i]; } } return g; } public static float Mult(this float f, float mult = 100f) { return f * mult; } public static Color ToRGB255(this Color c, string title, string body) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000d: 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_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) return new Color(c.r / 255f, c.g / 255f, c.b / 255f); } public static void SetStrings(this TooltipProvider t, string title, string body) { t.overrideTitleText = title; t.overrideBodyText = body; } } internal class Utils { private static Material basemat; public static Color HexTo10(string hexColor) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) char[] array = hexColor.ToCharArray(); return new Color((float)(array[0] + array[1]), (float)(array[2] + array[3]), (float)(array[4] + array[5]), 255f) / 255f; } public static EntityStateMachine NewStateMachine<T>(GameObject obj, string customName) where T : EntityState { //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) SerializableEntityStateType val = default(SerializableEntityStateType); ((SerializableEntityStateType)(ref val))..ctor(typeof(T)); EntityStateMachine val2 = obj.AddComponent<EntityStateMachine>(); val2.customName = customName; val2.initialStateType = val; val2.mainStateType = val; return val2; } public static GenericSkill NewGenericSkill(GameObject obj, SkillDef skill) { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) GenericSkill val = obj.AddComponent<GenericSkill>(); SkillFamily val2 = ScriptableObject.CreateInstance<SkillFamily>(); val2.variants = (Variant[])(object)new Variant[1]; val._skillFamily = val2; SkillFamily skillFamily = val.skillFamily; Variant[] variants = skillFamily.variants; Variant val3 = new Variant { skillDef = skill }; ((Variant)(ref val3)).viewableNode = new Node(skill.skillNameToken, false, (Node)null); variants[0] = val3; ContentAddition.AddSkillFamily(skillFamily); return val; } public static void AddAlt(SkillFamily skillFamily, SkillDef SkillDef, UnlockableDef unlock = null) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Expected O, but got Unknown //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) Array.Resize(ref skillFamily.variants, skillFamily.variants.Length + 1); Variant[] variants = skillFamily.variants; int num = skillFamily.variants.Length - 1; Variant val = new Variant { skillDef = SkillDef }; ((Variant)(ref val)).viewableNode = new Node(SkillDef.skillNameToken, false, (Node)null); val.unlockableDef = unlock; variants[num] = val; } public static BuffDef NewBuffDef(string name, bool stack, bool hidden, Sprite sprite, Color color) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: Unknown result type (might be due to invalid IL or missing references) BuffDef val = ScriptableObject.CreateInstance<BuffDef>(); ((Object)val).name = name; val.canStack = stack; val.isHidden = hidden; val.iconSprite = sprite; val.buffColor = color; ContentAddition.AddBuffDef(val); return val; } public static ObjectScaleCurve AddScaleComponent(GameObject target, float timeMax) { ObjectScaleCurve val = target.AddComponent<ObjectScaleCurve>(); val.useOverallCurveOnly = true; val.timeMax = timeMax; val.overallCurve = AnimationCurve.Linear(0f, 0f, 1f, 1f); return val; } public static RotateAroundAxis AddRotationComponent(GameObject target, float speed, RotationAxis axis) { //IL_0019: Unknown result type (might be due to invalid IL or missing references) RotateAroundAxis val = target.AddComponent<RotateAroundAxis>(); val.speed = (Speed)2; val.fastRotationSpeed = speed; val.rotateAroundAxis = axis; return val; } public static GameObject NewDisplayModel(GameObject model, string name) { //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Expected O, but got Unknown GameObject val = PrefabAPI.InstantiateClone(model, name, false); Animator componentInChildren = val.GetComponentInChildren<Animator>(); componentInChildren.runtimeAnimatorController = Assets.Load<RuntimeAnimatorController>("displayAnimator"); ((Component)componentInChildren).gameObject.AddComponent<AnimationEvents>().soundCenter = ((Component)componentInChildren).gameObject; ((Behaviour)((Component)componentInChildren).GetComponent<CharacterModel>()).enabled = false; SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>(true); foreach (SkinnedMeshRenderer val2 in componentsInChildren) { ((Renderer)val2).material = new Material(((Renderer)val2).material); ((Renderer)val2).material.DisableKeyword("DITHER"); } return val; } public static AnimateShaderAlpha AddShaderAlphaComponent(GameObject target, float timeMax, AnimationCurve curve, bool destroyOnEnd = true, bool disableOnEnd = false) { AnimateShaderAlpha val = target.AddComponent<AnimateShaderAlpha>(); val.timeMax = timeMax; val.alphaCurve = curve; val.destroyOnEnd = destroyOnEnd; val.disableOnEnd = disableOnEnd; return val; } internal static Sprite CreateSprite(Texture2D tex) { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0029: Unknown result type (might be due to invalid IL or missing references) return Sprite.Create(tex, new Rect(0f, 0f, (float)((Texture)tex).width, (float)((Texture)tex).height), new Vector2(0.5f, 0.5f), 128f); } internal static SkinDefInfo CreateNewSkinDefInfo(SkinnedMeshRenderer[] childList, GameObject rootObject, string skinName, string objectToEnable, RendererInfo[] rendererInfos) { //IL_0003: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: 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) SkinDefInfo result = default(SkinDefInfo); result.BaseSkins = Array.Empty<SkinDef>(); result.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; result.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; List<GameObjectActivation> list = new List<GameObjectActivation>(); foreach (SkinnedMeshRenderer val in childList) { GameObjectActivation val2 = default(GameObjectActivation); val2.gameObject = ((Component)val).gameObject; val2.shouldActivate = ((Object)val).name.Contains(objectToEnable); GameObjectActivation item = val2; list.Add(item); } result.GameObjectActivat