Decompiled source of Pyke v1.0.5
Pyke.dll
Decompiled 8 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using EntityStates; using EntityStates.Merc; using KinematicCharacterController; using On.RoR2; using R2API; using R2API.Utils; using RoR2; using RoR2.Achievements; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Networking; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("Dragonyck")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Pyke")] [assembly: AssemblyTitle("Pyke")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Pyke; public static class Achievements { [RegisterAchievement("PYKE_SKIN01UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN01UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin01Unlockable : 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("PykeBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { if (Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin && ((BaseAchievement)this).meetsBodyRequirement) { ((BaseAchievement)this).Grant(); } } } [RegisterAchievement("PYKE_SKIN02UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN02UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin02Unlockable : BaseAchievement { private int progress; private bool waitingForKill; private float stopwatch; 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("PykeBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); RoR2Application.onFixedUpdate += FixedUpdate; SpecialExecute.onExecute += SpecialExecute_onExecute; } public override void OnBodyRequirementBroken() { ((BaseAchievement)this).OnBodyRequirementBroken(); RoR2Application.onFixedUpdate -= FixedUpdate; SpecialExecute.onExecute -= SpecialExecute_onExecute; } private void SpecialExecute_onExecute(SpecialExecute obj) { waitingForKill = true; progress++; stopwatch = 0f; } private void FixedUpdate() { if (waitingForKill) { stopwatch += Time.fixedDeltaTime; } else { stopwatch = 0f; } if (stopwatch >= 6f) { stopwatch = 0f; progress = 0; waitingForKill = false; } if (progress >= 20) { ((BaseAchievement)this).Grant(); } } } [RegisterAchievement("PYKE_SKIN03UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN03UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin03Unlockable : 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("PykeBody"); } } [RegisterAchievement("PYKE_SKIN04UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN04UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin04Unlockable : 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("PykeBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); UtilityFire.onHit += UtilityFire_onHit; } private void UtilityFire_onHit(UtilityFire arg1, int count) { if (count >= 10) { ((BaseAchievement)this).Grant(); } } public override void OnBodyRequirementBroken() { UtilityFire.onHit -= UtilityFire_onHit; ((BaseAchievement)this).OnBodyRequirementBroken(); } } [RegisterAchievement("PYKE_SKIN05UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN05UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin05Unlockable : 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("PykeBody"); } public override void OnBodyRequirementMet() { ((BaseAchievement)this).OnBodyRequirementMet(); Run.onClientGameOverGlobal += OnClientGameOverGlobal; } public override void OnBodyRequirementBroken() { Run.onClientGameOverGlobal -= OnClientGameOverGlobal; ((BaseAchievement)this).OnBodyRequirementBroken(); } private void OnClientGameOverGlobal(Run run, RunReport runReport) { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Invalid comparison between Unknown and I4 if (Object.op_Implicit((Object)(object)runReport.gameEnding) && runReport.gameEnding.isWin && ((BaseAchievement)this).meetsBodyRequirement) { DifficultyIndex val = runReport.ruleBook.FindDifficulty(); if ((int)val == 1) { ((BaseAchievement)this).Grant(); } } } } [RegisterAchievement("PYKE_SKIN06UNLOCKABLE", "ACHIEVEMENT_PYKE_SKIN06UNLOCKABLE_UNLOCKABLE_ID", null, null)] public class Skin06Unlockable : 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("PykeBody"); } public override void OnBodyRequirementMet() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown ((BaseAchievement)this).OnBodyRequirementMet(); HealthComponent.Suicide += new hook_Suicide(HealthComponent_Suicide); } private void HealthComponent_Suicide(orig_Suicide orig, HealthComponent self, GameObject killerOverride, GameObject inflictorOverride, DamageType damageType) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Invalid comparison between Unknown and I4 orig.Invoke(self, killerOverride, inflictorOverride, damageType); if (Object.op_Implicit((Object)(object)self.body) && ((Object)self.body).name.Contains("BrotherHurt") && (int)damageType == 64 && ((BaseAchievement)this).meetsBodyRequirement) { ((BaseAchievement)this).Grant(); } } public override void OnBodyRequirementBroken() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown HealthComponent.Suicide -= new hook_Suicide(HealthComponent_Suicide); ((BaseAchievement)this).OnBodyRequirementBroken(); } } internal static UnlockableDef Skin01Unlock; internal static UnlockableDef Skin02Unlock; internal static UnlockableDef Skin03Unlock; internal static UnlockableDef Skin04Unlock; internal static UnlockableDef Skin05Unlock; internal static UnlockableDef Skin06Unlock; public static void RegisterUnlockables() { Skin01Unlock = NewUnlockable<Skin03Unlockable>("SKIN01UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin01"), "Pyke: Beginner", "As Pyke, the game or obliterate on any difficulty."); Skin02Unlock = NewUnlockable<Skin03Unlockable>("SKIN02UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin02"), "Pyke: Calculated Executioner", "As Pyke, execute 20 enemies in a row using Death From Below."); Skin03Unlock = NewUnlockable<Skin03Unlockable>("SKIN03UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin03"), "Pyke: Mastery", "As Pyke, beat the game or obliterate on Monsoon."); Skin04Unlock = NewUnlockable<Skin03Unlockable>("SKIN04UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin04"), "Pyke: Stunning Performance", "As Pyke, stun 10 enemies with one use of Phantom Undertow."); Skin05Unlock = NewUnlockable<Skin03Unlockable>("SKIN05UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin05"), "Pyke: Adept", "As Pyke, beat the game or obliterate on Rainstorm."); Skin06Unlock = NewUnlockable<Skin03Unlockable>("SKIN06UNLOCKABLE", Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin06"), "Pyke: GGEZ", "As Pyke, kill the final boss with Death From Below."); } private static UnlockableDef NewUnlockable<T>(string AchievementIdentifier, Sprite Icon, string Title, string Description) where T : BaseAchievement { string text = "ACHIEVEMENT_PYKE_"; 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 void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Pyke.pykeassets"); MainAssetBundle = AssetBundle.LoadFromStream(stream); } using Stream stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream("Pyke.Pyke.bnk"); byte[] array = new byte[stream2.Length]; stream2.Read(array, 0, array.Length); SoundBanks.Add(array); } } internal class ExecuteIndicatorBehaviour : MonoBehaviour { private HealthComponent health; private GameObject indicator; private CharacterBody attacker; private Transform modelTransform; private bool isExecutable() { bool result = false; if (Object.op_Implicit((Object)(object)health) && Object.op_Implicit((Object)(object)attacker) && health.health <= attacker.damage * 4f + health.fullHealth * (SpecialExecute.executeThreshhold + attacker.crit / 100f)) { result = true; } return result; } public void SetCharacterBody(CharacterBody body) { if (Object.op_Implicit((Object)(object)body)) { attacker = body; } } private void OnEnable() { CharacterBody component = ((Component)this).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.healthComponent)) { health = component.healthComponent; ModelLocator component2 = ((Component)this).GetComponent<ModelLocator>(); if (Object.op_Implicit((Object)(object)component2) && Object.op_Implicit((Object)(object)component2.modelTransform)) { modelTransform = component2.modelTransform; } } } private void Update() { if (!Object.op_Implicit((Object)(object)indicator) && isExecutable() && Object.op_Implicit((Object)(object)modelTransform)) { indicator = Object.Instantiate<GameObject>(Prefabs.specialExecuteIndicator, ((Component)health.body.mainHurtBox).transform); } if (!isExecutable() && Object.op_Implicit((Object)(object)indicator)) { Object.Destroy((Object)(object)indicator); } if (Object.op_Implicit((Object)(object)health) && !health.alive && Object.op_Implicit((Object)(object)indicator)) { Object.Destroy((Object)(object)indicator); } } private void OnDisable() { if (Object.op_Implicit((Object)(object)indicator)) { Object.Destroy((Object)(object)indicator); } } } internal class Blank : MonoBehaviour { } internal class CharacterMain : GenericCharacterMain { private Animator animator; private BullseyeSearch targetFinder = new BullseyeSearch(); private Ray aimRay; internal static int skinIndex; private GameObject trail; private bool gotPassive; private float stopwatch; private TemporaryOverlay overlay; public override void OnEnter() { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) ((GenericCharacterMain)this).OnEnter(); if (!Object.op_Implicit((Object)(object)trail)) { trail = Object.Instantiate<GameObject>(Prefabs.pykeEyeTrail, ((EntityState)this).GetModelChildLocator().FindChild("EyeMuzzle")); } animator = ((EntityState)this).GetModelAnimator(); aimRay = ((BaseState)this).GetAimRay(); Transform modelTransform = ((EntityState)this).GetModelTransform(); if (!Object.op_Implicit((Object)(object)modelTransform)) { return; } CharacterModel component = ((Component)modelTransform).GetComponent<CharacterModel>(); if (!Object.op_Implicit((Object)(object)component)) { return; } ModelSkinController component2 = ((Component)component).GetComponent<ModelSkinController>(); if (Object.op_Implicit((Object)(object)component2)) { if (component2.skins[((EntityState)this).characterBody.skinIndex].nameToken == "PYKEBODY_DEFAULT_SKIN_NAME") { skinIndex = 0; } if (component2.skins[((EntityState)this).characterBody.skinIndex].nameToken == "PYKEBODY_SKIN03_SKIN_NAME") { skinIndex = 1; } if (component2.skins[((EntityState)this).characterBody.skinIndex].nameToken == "PYKEBODY_SKIN06_SKIN_NAME") { skinIndex = 2; } } } public override void FixedUpdate() { //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Expected O, but got Unknown //IL_0121: 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_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_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_015a: Unknown result type (might be due to invalid IL or missing references) ((GenericCharacterMain)this).FixedUpdate(); if (!Object.op_Implicit((Object)(object)overlay) && ((EntityState)this).characterBody.hasCloakBuff) { overlay = ((Component)((EntityState)this).GetModelTransform()).gameObject.AddComponent<TemporaryOverlay>(); overlay.duration = 3f; overlay.animateShaderAlpha = true; overlay.alphaCurve = AnimationCurve.EaseInOut(0f, 1f, 1f, 0f); overlay.destroyComponentOnEnd = true; overlay.originalMaterial = Assets.MainAssetBundle.LoadAsset<Material>("cloakMat"); overlay.AddToCharacerModel(((Component)((EntityState)this).GetModelTransform()).GetComponent<CharacterModel>()); ((EntityState)this).PlayAnimation("FullBody, Override", "Spell2Enter"); } animator.SetBool("Cloaked", ((EntityState)this).characterBody.hasCloakBuff); if (!Object.op_Implicit((Object)(object)((EntityState)this).skillLocator) || !((EntityState)this).skillLocator.special.IsReady()) { return; } BullseyeSearch val = new BullseyeSearch(); val.searchOrigin = ((EntityState)this).characterBody.corePosition; val.searchDirection = ((Ray)(ref aimRay)).direction; val.maxDistanceFilter = 120f; val.teamMaskFilter = TeamMask.GetUnprotectedTeams(((BaseState)this).GetTeam()); val.sortMode = (SortMode)1; val.RefreshCandidates(); val.FilterOutGameObject(((EntityState)this).gameObject); List<HurtBox> list = val.GetResults().ToList(); for (int i = 0; i < list.Count; i++) { GameObject gameObject = ((Component)list[i].healthComponent).gameObject; if (Object.op_Implicit((Object)(object)gameObject)) { ExecuteIndicatorBehaviour component = gameObject.GetComponent<ExecuteIndicatorBehaviour>(); if (!Object.op_Implicit((Object)(object)component)) { gameObject.AddComponent<ExecuteIndicatorBehaviour>().SetCharacterBody(((EntityState)this).characterBody); } } } } } internal class Hook { internal static void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Expected O, but got Unknown RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(RecalculateStatsAPI_GetStatCoefficients); HealthComponent.TakeDamage += new hook_TakeDamage(HealthComponent_TakeDamage); DotController.AddDot += new hook_AddDot(DotController_AddDot); CharacterBody.RecalculateStats += new hook_RecalculateStats(CharacterBody_RecalculateStats); } private static void CharacterBody_RecalculateStats(orig_RecalculateStats orig, CharacterBody self) { orig.Invoke(self); if (Object.op_Implicit((Object)(object)((Component)self).GetComponent<Blank>())) { if (NetworkServer.active) { self.healthComponent.Networkhealth = Math.Max(self.healthComponent.Networkhealth, 1f); } self.healthComponent.health = Math.Max(self.healthComponent.health, 1f); } } private static void DotController_AddDot(orig_AddDot orig, DotController self, GameObject attackerObject, float duration, DotIndex dotIndex, float damageMultiplier, uint? maxStacksFromAttacker, float? totalDamage, DotIndex? preUpgradeDotIndex) { //IL_0005: 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) orig.Invoke(self, attackerObject, duration, dotIndex, damageMultiplier, maxStacksFromAttacker, totalDamage, preUpgradeDotIndex); if (!Object.op_Implicit((Object)(object)attackerObject) || !((Object)attackerObject).name.Contains("Pyke")) { return; } for (int i = 0; i < self.dotStackList.Count; i++) { if (self.dotStackList[i] != null) { self.dotStackList[i].damageType = (DamageType)1; } } } private static void HealthComponent_TakeDamage(orig_TakeDamage orig, HealthComponent self, DamageInfo damageInfo) { //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: 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_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self, damageInfo); if (!Object.op_Implicit((Object)(object)damageInfo.attacker) || !DamageAPI.HasModdedDamageType(damageInfo, Prefabs.pykeHook) || !NetworkServer.active) { return; } EffectManager.SimpleEffect(Prefabs.pykeImpactEffect1, damageInfo.position, Quaternion.identity, true); if (Object.op_Implicit((Object)(object)self.body)) { float num = 0f; RigidbodyMotor component = ((Component)self.body).GetComponent<RigidbodyMotor>(); if (Object.op_Implicit((Object)(object)self.body.characterMotor)) { num = self.body.characterMotor.mass; } else if (Object.op_Implicit((Object)(object)component)) { num = component.mass; } Vector3 val = damageInfo.attacker.transform.position - ((Component)self).transform.position; self.TakeDamageForce(((Vector3)(ref val)).normalized * 40f * num, true, false); } } internal static void RecalculateStatsAPI_GetStatCoefficients(CharacterBody body, StatHookEventArgs args) { if (Object.op_Implicit((Object)(object)((Component)body).GetComponent<Blank>()) && Object.op_Implicit((Object)(object)body.inventory)) { float num = 0.2f; float num2 = 0.5f; float num3 = 1f; int itemCount = body.inventory.GetItemCount(Items.FlatHealth); int itemCount2 = body.inventory.GetItemCount(Items.Pearl); int itemCount3 = body.inventory.GetItemCount(Items.Knurl); bool flag = body.HasBuff(Buffs.TonicBuff); args.baseHealthAdd -= (float)body.inventory.infusionBonus; args.baseDamageAdd += (float)body.inventory.infusionBonus * num2; if (body.hasCloakBuff) { args.regenMultAdd += 3f; } if (itemCount > 0) { args.baseHealthAdd -= (float)(25 * itemCount); args.baseDamageAdd += 25f * ((float)itemCount * num); } if (itemCount2 > 0) { args.healthMultAdd -= 0.1f * (float)itemCount2; args.damageMultAdd += 0.1f * ((float)itemCount2 * num3); } if (itemCount3 > 0) { args.baseHealthAdd -= (float)(40 * itemCount3); args.baseDamageAdd += 40f * ((float)itemCount3 * num); } if (flag) { args.healthMultAdd -= 0.5f; args.damageMultAdd += 0.5f * num; } } } } [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.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("com.Dragonyck.Pyke", "Pyke", "1.0.5")] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class MainPlugin : BaseUnityPlugin { public const string MODUID = "com.Dragonyck.Pyke"; public const string MODNAME = "Pyke"; public const string VERSION = "1.0.5"; public const string SURVIVORNAME = "Pyke"; public const string SURVIVORNAMEKEY = "PYKE"; public static GameObject characterPrefab; public GameObject characterDisplay; public GameObject doppelganger; private static readonly Color characterColor = new Color(0.16471f, 0.28627f, 0.2549f); private void Awake() { Assets.PopulateAssets(); Achievements.RegisterUnlockables(); Prefabs.CreatePrefabs(); CreatePrefab(); RegisterStates(); RegisterCharacter(); CreateDoppelganger(); Hook.Hooks(); ((MonoBehaviour)this).InvokeRepeating("MatOffset", 1f, 0.01f); } private void MatOffset() { //IL_003f: 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_0089: Unknown result type (might be due to invalid IL or missing references) float num = Time.time * -2.5f; float num2 = Time.time * -1.5f; float num3 = Time.time * -2f; Assets.MainAssetBundle.LoadAsset<Material>("matEWaterLine").SetTextureOffset("_MainTex", new Vector2(num, 0f)); Assets.MainAssetBundle.LoadAsset<Material>("matEWaterLine2").SetTextureOffset("_MainTex", new Vector2(num, 0f)); Assets.MainAssetBundle.LoadAsset<Material>("matEWaterLine3").SetTextureOffset("_MainTex", new Vector2(num, 0f)); } private static GameObject CreateModel(GameObject main) { Object.Destroy((Object)(object)((Component)main.transform.Find("ModelBase")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("CameraPivot")).gameObject); Object.Destroy((Object)(object)((Component)main.transform.Find("AimOrigin")).gameObject); return Assets.MainAssetBundle.LoadAsset<GameObject>("model"); } internal static void CreatePrefab() { //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Expected O, but got Unknown //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Unknown result type (might be due to invalid IL or missing references) //IL_0108: 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_0143: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0168: 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_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_0316: Unknown result type (might be due to invalid IL or missing references) //IL_0358: Unknown result type (might be due to invalid IL or missing references) //IL_035d: Unknown result type (might be due to invalid IL or missing references) //IL_03c1: Unknown result type (might be due to invalid IL or missing references) //IL_03c6: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0401: Unknown result type (might be due to invalid IL or missing references) //IL_0486: Unknown result type (might be due to invalid IL or missing references) //IL_04ae: Unknown result type (might be due to invalid IL or missing references) //IL_04bb: Unknown result type (might be due to invalid IL or missing references) //IL_04bd: Unknown result type (might be due to invalid IL or missing references) //IL_04c6: Unknown result type (might be due to invalid IL or missing references) //IL_0504: Unknown result type (might be due to invalid IL or missing references) //IL_0511: Unknown result type (might be due to invalid IL or missing references) //IL_0513: Unknown result type (might be due to invalid IL or missing references) //IL_051c: Unknown result type (might be due to invalid IL or missing references) //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_0567: Unknown result type (might be due to invalid IL or missing references) //IL_0569: 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_05b0: Unknown result type (might be due to invalid IL or missing references) //IL_05bd: Unknown result type (might be due to invalid IL or missing references) //IL_05bf: Unknown result type (might be due to invalid IL or missing references) //IL_05c8: Unknown result type (might be due to invalid IL or missing references) //IL_0606: Unknown result type (might be due to invalid IL or missing references) //IL_0613: Unknown result type (might be due to invalid IL or missing references) //IL_0615: Unknown result type (might be due to invalid IL or missing references) //IL_061e: Unknown result type (might be due to invalid IL or missing references) //IL_065c: Unknown result type (might be due to invalid IL or missing references) //IL_0669: Unknown result type (might be due to invalid IL or missing references) //IL_066b: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Unknown result type (might be due to invalid IL or missing references) //IL_06b2: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06c1: Unknown result type (might be due to invalid IL or missing references) //IL_06ca: Unknown result type (might be due to invalid IL or missing references) //IL_0708: Unknown result type (might be due to invalid IL or missing references) //IL_0715: Unknown result type (might be due to invalid IL or missing references) //IL_0717: Unknown result type (might be due to invalid IL or missing references) //IL_0720: Unknown result type (might be due to invalid IL or missing references) //IL_075e: Unknown result type (might be due to invalid IL or missing references) //IL_076b: Unknown result type (might be due to invalid IL or missing references) //IL_076d: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_07b5: Unknown result type (might be due to invalid IL or missing references) //IL_07c2: Unknown result type (might be due to invalid IL or missing references) //IL_07c4: Unknown result type (might be due to invalid IL or missing references) //IL_07ce: Unknown result type (might be due to invalid IL or missing references) //IL_080c: Unknown result type (might be due to invalid IL or missing references) //IL_0819: Unknown result type (might be due to invalid IL or missing references) //IL_081b: Unknown result type (might be due to invalid IL or missing references) //IL_0825: Unknown result type (might be due to invalid IL or missing references) //IL_0863: 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_0872: Unknown result type (might be due to invalid IL or missing references) //IL_087c: Unknown result type (might be due to invalid IL or missing references) //IL_08ba: Unknown result type (might be due to invalid IL or missing references) //IL_08c7: Unknown result type (might be due to invalid IL or missing references) //IL_08c9: Unknown result type (might be due to invalid IL or missing references) //IL_08d3: Unknown result type (might be due to invalid IL or missing references) //IL_0911: Unknown result type (might be due to invalid IL or missing references) //IL_091e: Unknown result type (might be due to invalid IL or missing references) //IL_0920: Unknown result type (might be due to invalid IL or missing references) //IL_0a4a: Unknown result type (might be due to invalid IL or missing references) //IL_0a83: Unknown result type (might be due to invalid IL or missing references) //IL_0aa9: Unknown result type (might be due to invalid IL or missing references) //IL_0aab: Unknown result type (might be due to invalid IL or missing references) //IL_0ab4: Unknown result type (might be due to invalid IL or missing references) //IL_0ada: Unknown result type (might be due to invalid IL or missing references) //IL_0adc: Unknown result type (might be due to invalid IL or missing references) //IL_0ae5: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b0d: Unknown result type (might be due to invalid IL or missing references) //IL_0b16: Unknown result type (might be due to invalid IL or missing references) //IL_0b3c: Unknown result type (might be due to invalid IL or missing references) //IL_0b3e: Unknown result type (might be due to invalid IL or missing references) //IL_0b47: Unknown result type (might be due to invalid IL or missing references) //IL_0b6d: Unknown result type (might be due to invalid IL or missing references) //IL_0b6f: Unknown result type (might be due to invalid IL or missing references) //IL_0b78: Unknown result type (might be due to invalid IL or missing references) //IL_0b9e: Unknown result type (might be due to invalid IL or missing references) //IL_0ba0: Unknown result type (might be due to invalid IL or missing references) //IL_0ba9: Unknown result type (might be due to invalid IL or missing references) //IL_0bcf: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0c00: Unknown result type (might be due to invalid IL or missing references) //IL_0c02: Unknown result type (might be due to invalid IL or missing references) //IL_0c0b: Unknown result type (might be due to invalid IL or missing references) //IL_0c31: Unknown result type (might be due to invalid IL or missing references) //IL_0c33: Unknown result type (might be due to invalid IL or missing references) //IL_0c3d: Unknown result type (might be due to invalid IL or missing references) //IL_0c63: Unknown result type (might be due to invalid IL or missing references) //IL_0c65: Unknown result type (might be due to invalid IL or missing references) //IL_0c6f: Unknown result type (might be due to invalid IL or missing references) //IL_0c95: Unknown result type (might be due to invalid IL or missing references) //IL_0c97: Unknown result type (might be due to invalid IL or missing references) //IL_0ca1: Unknown result type (might be due to invalid IL or missing references) //IL_0cc7: Unknown result type (might be due to invalid IL or missing references) //IL_0cc9: Unknown result type (might be due to invalid IL or missing references) //IL_0cd3: Unknown result type (might be due to invalid IL or missing references) //IL_0cf9: Unknown result type (might be due to invalid IL or missing references) //IL_0cfb: Unknown result type (might be due to invalid IL or missing references) //IL_0d05: Unknown result type (might be due to invalid IL or missing references) //IL_0d2b: Unknown result type (might be due to invalid IL or missing references) //IL_0d2d: Unknown result type (might be due to invalid IL or missing references) //IL_0d9a: Unknown result type (might be due to invalid IL or missing references) //IL_0db9: Unknown result type (might be due to invalid IL or missing references) //IL_0dd7: Unknown result type (might be due to invalid IL or missing references) //IL_0def: Unknown result type (might be due to invalid IL or missing references) //IL_0e0d: Unknown result type (might be due to invalid IL or missing references) //IL_0e25: Unknown result type (might be due to invalid IL or missing references) //IL_0e43: Unknown result type (might be due to invalid IL or missing references) //IL_0e5b: Unknown result type (might be due to invalid IL or missing references) //IL_0e79: Unknown result type (might be due to invalid IL or missing references) //IL_0e91: Unknown result type (might be due to invalid IL or missing references) //IL_0eaf: Unknown result type (might be due to invalid IL or missing references) //IL_0ec7: Unknown result type (might be due to invalid IL or missing references) //IL_0ee5: Unknown result type (might be due to invalid IL or missing references) //IL_0efd: Unknown result type (might be due to invalid IL or missing references) //IL_0f1b: Unknown result type (might be due to invalid IL or missing references) //IL_0fa5: Unknown result type (might be due to invalid IL or missing references) //IL_0fb0: Unknown result type (might be due to invalid IL or missing references) //IL_0fe9: Unknown result type (might be due to invalid IL or missing references) //IL_100f: Unknown result type (might be due to invalid IL or missing references) //IL_1011: Unknown result type (might be due to invalid IL or missing references) //IL_101a: Unknown result type (might be due to invalid IL or missing references) //IL_1040: Unknown result type (might be due to invalid IL or missing references) //IL_1042: Unknown result type (might be due to invalid IL or missing references) //IL_104b: Unknown result type (might be due to invalid IL or missing references) //IL_1071: Unknown result type (might be due to invalid IL or missing references) //IL_1073: Unknown result type (might be due to invalid IL or missing references) //IL_107c: Unknown result type (might be due to invalid IL or missing references) //IL_10a2: Unknown result type (might be due to invalid IL or missing references) //IL_10a4: Unknown result type (might be due to invalid IL or missing references) //IL_10ad: Unknown result type (might be due to invalid IL or missing references) //IL_10d3: Unknown result type (might be due to invalid IL or missing references) //IL_10d5: Unknown result type (might be due to invalid IL or missing references) //IL_10de: Unknown result type (might be due to invalid IL or missing references) //IL_1104: Unknown result type (might be due to invalid IL or missing references) //IL_1106: Unknown result type (might be due to invalid IL or missing references) //IL_110f: Unknown result type (might be due to invalid IL or missing references) //IL_1135: Unknown result type (might be due to invalid IL or missing references) //IL_1137: Unknown result type (might be due to invalid IL or missing references) //IL_1140: Unknown result type (might be due to invalid IL or missing references) //IL_1166: Unknown result type (might be due to invalid IL or missing references) //IL_1168: Unknown result type (might be due to invalid IL or missing references) //IL_1171: Unknown result type (might be due to invalid IL or missing references) //IL_1197: Unknown result type (might be due to invalid IL or missing references) //IL_1199: Unknown result type (might be due to invalid IL or missing references) //IL_11a3: Unknown result type (might be due to invalid IL or missing references) //IL_11c9: Unknown result type (might be due to invalid IL or missing references) //IL_11cb: Unknown result type (might be due to invalid IL or missing references) //IL_11d5: Unknown result type (might be due to invalid IL or missing references) //IL_11fb: Unknown result type (might be due to invalid IL or missing references) //IL_11fd: Unknown result type (might be due to invalid IL or missing references) //IL_1207: Unknown result type (might be due to invalid IL or missing references) //IL_122d: Unknown result type (might be due to invalid IL or missing references) //IL_122f: Unknown result type (might be due to invalid IL or missing references) //IL_1239: Unknown result type (might be due to invalid IL or missing references) //IL_125f: Unknown result type (might be due to invalid IL or missing references) //IL_1261: Unknown result type (might be due to invalid IL or missing references) //IL_126b: Unknown result type (might be due to invalid IL or missing references) //IL_1291: Unknown result type (might be due to invalid IL or missing references) //IL_1293: Unknown result type (might be due to invalid IL or missing references) //IL_12f8: Unknown result type (might be due to invalid IL or missing references) //IL_1303: Unknown result type (might be due to invalid IL or missing references) //IL_133c: Unknown result type (might be due to invalid IL or missing references) //IL_1362: Unknown result type (might be due to invalid IL or missing references) //IL_1364: Unknown result type (might be due to invalid IL or missing references) //IL_136d: Unknown result type (might be due to invalid IL or missing references) //IL_1393: Unknown result type (might be due to invalid IL or missing references) //IL_1395: Unknown result type (might be due to invalid IL or missing references) //IL_139e: Unknown result type (might be due to invalid IL or missing references) //IL_13c4: Unknown result type (might be due to invalid IL or missing references) //IL_13c6: Unknown result type (might be due to invalid IL or missing references) //IL_13cf: Unknown result type (might be due to invalid IL or missing references) //IL_13f5: Unknown result type (might be due to invalid IL or missing references) //IL_13f7: Unknown result type (might be due to invalid IL or missing references) //IL_1400: Unknown result type (might be due to invalid IL or missing references) //IL_1426: Unknown result type (might be due to invalid IL or missing references) //IL_1428: Unknown result type (might be due to invalid IL or missing references) //IL_1431: Unknown result type (might be due to invalid IL or missing references) //IL_1457: Unknown result type (might be due to invalid IL or missing references) //IL_1459: Unknown result type (might be due to invalid IL or missing references) //IL_1462: Unknown result type (might be due to invalid IL or missing references) //IL_1488: Unknown result type (might be due to invalid IL or missing references) //IL_148a: Unknown result type (might be due to invalid IL or missing references) //IL_1493: Unknown result type (might be due to invalid IL or missing references) //IL_14b9: Unknown result type (might be due to invalid IL or missing references) //IL_14bb: Unknown result type (might be due to invalid IL or missing references) //IL_14c4: Unknown result type (might be due to invalid IL or missing references) //IL_14ea: Unknown result type (might be due to invalid IL or missing references) //IL_14ec: Unknown result type (might be due to invalid IL or missing references) //IL_14f6: Unknown result type (might be due to invalid IL or missing references) //IL_151c: Unknown result type (might be due to invalid IL or missing references) //IL_151e: Unknown result type (might be due to invalid IL or missing references) //IL_1528: Unknown result type (might be due to invalid IL or missing references) //IL_154e: Unknown result type (might be due to invalid IL or missing references) //IL_1550: Unknown result type (might be due to invalid IL or missing references) //IL_155a: Unknown result type (might be due to invalid IL or missing references) //IL_1580: Unknown result type (might be due to invalid IL or missing references) //IL_1582: Unknown result type (might be due to invalid IL or missing references) //IL_158c: Unknown result type (might be due to invalid IL or missing references) //IL_15b2: Unknown result type (might be due to invalid IL or missing references) //IL_15b4: Unknown result type (might be due to invalid IL or missing references) //IL_15be: Unknown result type (might be due to invalid IL or missing references) //IL_15e4: Unknown result type (might be due to invalid IL or missing references) //IL_15e6: Unknown result type (might be due to invalid IL or missing references) //IL_164b: Unknown result type (might be due to invalid IL or missing references) //IL_1656: Unknown result type (might be due to invalid IL or missing references) //IL_168f: Unknown result type (might be due to invalid IL or missing references) //IL_16b5: Unknown result type (might be due to invalid IL or missing references) //IL_16b7: Unknown result type (might be due to invalid IL or missing references) //IL_16c0: Unknown result type (might be due to invalid IL or missing references) //IL_16e6: Unknown result type (might be due to invalid IL or missing references) //IL_16e8: Unknown result type (might be due to invalid IL or missing references) //IL_16f1: Unknown result type (might be due to invalid IL or missing references) //IL_1717: Unknown result type (might be due to invalid IL or missing references) //IL_1719: Unknown result type (might be due to invalid IL or missing references) //IL_1722: Unknown result type (might be due to invalid IL or missing references) //IL_1748: Unknown result type (might be due to invalid IL or missing references) //IL_174a: Unknown result type (might be due to invalid IL or missing references) //IL_1753: Unknown result type (might be due to invalid IL or missing references) //IL_1779: Unknown result type (might be due to invalid IL or missing references) //IL_177b: Unknown result type (might be due to invalid IL or missing references) //IL_1784: Unknown result type (might be due to invalid IL or missing references) //IL_17aa: Unknown result type (might be due to invalid IL or missing references) //IL_17ac: Unknown result type (might be due to invalid IL or missing references) //IL_17b5: Unknown result type (might be due to invalid IL or missing references) //IL_17db: Unknown result type (might be due to invalid IL or missing references) //IL_17dd: Unknown result type (might be due to invalid IL or missing references) //IL_17e6: Unknown result type (might be due to invalid IL or missing references) //IL_180c: Unknown result type (might be due to invalid IL or missing references) //IL_180e: Unknown result type (might be due to invalid IL or missing references) //IL_1817: Unknown result type (might be due to invalid IL or missing references) //IL_183d: Unknown result type (might be due to invalid IL or missing references) //IL_183f: Unknown result type (might be due to invalid IL or missing references) //IL_1849: Unknown result type (might be due to invalid IL or missing references) //IL_186f: Unknown result type (might be due to invalid IL or missing references) //IL_1871: Unknown result type (might be due to invalid IL or missing references) //IL_187b: Unknown result type (might be due to invalid IL or missing references) //IL_18a1: Unknown result type (might be due to invalid IL or missing references) //IL_18a3: Unknown result type (might be due to invalid IL or missing references) //IL_18ad: Unknown result type (might be due to invalid IL or missing references) //IL_18d3: Unknown result type (might be due to invalid IL or missing references) //IL_18d5: Unknown result type (might be due to invalid IL or missing references) //IL_18df: Unknown result type (might be due to invalid IL or missing references) //IL_1905: Unknown result type (might be due to invalid IL or missing references) //IL_1907: Unknown result type (might be due to invalid IL or missing references) //IL_1911: Unknown result type (might be due to invalid IL or missing references) //IL_1937: Unknown result type (might be due to invalid IL or missing references) //IL_1939: Unknown result type (might be due to invalid IL or missing references) //IL_199e: Unknown result type (might be due to invalid IL or missing references) //IL_19a9: Unknown result type (might be due to invalid IL or missing references) //IL_19e2: Unknown result type (might be due to invalid IL or missing references) //IL_1a08: Unknown result type (might be due to invalid IL or missing references) //IL_1a0a: Unknown result type (might be due to invalid IL or missing references) //IL_1a13: Unknown result type (might be due to invalid IL or missing references) //IL_1a39: Unknown result type (might be due to invalid IL or missing references) //IL_1a3b: Unknown result type (might be due to invalid IL or missing references) //IL_1a44: Unknown result type (might be due to invalid IL or missing references) //IL_1a6a: Unknown result type (might be due to invalid IL or missing references) //IL_1a6c: Unknown result type (might be due to invalid IL or missing references) //IL_1a75: Unknown result type (might be due to invalid IL or missing references) //IL_1a9b: Unknown result type (might be due to invalid IL or missing references) //IL_1a9d: Unknown result type (might be due to invalid IL or missing references) //IL_1aa6: Unknown result type (might be due to invalid IL or missing references) //IL_1acc: Unknown result type (might be due to invalid IL or missing references) //IL_1ace: Unknown result type (might be due to invalid IL or missing references) //IL_1ad7: Unknown result type (might be due to invalid IL or missing references) //IL_1afd: Unknown result type (might be due to invalid IL or missing references) //IL_1aff: Unknown result type (might be due to invalid IL or missing references) //IL_1b08: Unknown result type (might be due to invalid IL or missing references) //IL_1b2e: Unknown result type (might be due to invalid IL or missing references) //IL_1b30: Unknown result type (might be due to invalid IL or missing references) //IL_1b39: Unknown result type (might be due to invalid IL or missing references) //IL_1b5f: Unknown result type (might be due to invalid IL or missing references) //IL_1b61: Unknown result type (might be due to invalid IL or missing references) //IL_1b6a: Unknown result type (might be due to invalid IL or missing references) //IL_1b90: Unknown result type (might be due to invalid IL or missing references) //IL_1b92: Unknown result type (might be due to invalid IL or missing references) //IL_1b9c: Unknown result type (might be due to invalid IL or missing references) //IL_1bc2: Unknown result type (might be due to invalid IL or missing references) //IL_1bc4: Unknown result type (might be due to invalid IL or missing references) //IL_1bce: Unknown result type (might be due to invalid IL or missing references) //IL_1bf4: Unknown result type (might be due to invalid IL or missing references) //IL_1bf6: Unknown result type (might be due to invalid IL or missing references) //IL_1c00: Unknown result type (might be due to invalid IL or missing references) //IL_1c26: Unknown result type (might be due to invalid IL or missing references) //IL_1c28: Unknown result type (might be due to invalid IL or missing references) //IL_1c32: Unknown result type (might be due to invalid IL or missing references) //IL_1c58: Unknown result type (might be due to invalid IL or missing references) //IL_1c5a: Unknown result type (might be due to invalid IL or missing references) //IL_1c64: Unknown result type (might be due to invalid IL or missing references) //IL_1c8a: Unknown result type (might be due to invalid IL or missing references) //IL_1c8c: Unknown result type (might be due to invalid IL or missing references) //IL_1cf1: Unknown result type (might be due to invalid IL or missing references) //IL_1cfc: Unknown result type (might be due to invalid IL or missing references) //IL_1d35: Unknown result type (might be due to invalid IL or missing references) //IL_1d5b: Unknown result type (might be due to invalid IL or missing references) //IL_1d5d: Unknown result type (might be due to invalid IL or missing references) //IL_1d66: Unknown result type (might be due to invalid IL or missing references) //IL_1d8c: Unknown result type (might be due to invalid IL or missing references) //IL_1d8e: Unknown result type (might be due to invalid IL or missing references) //IL_1d97: Unknown result type (might be due to invalid IL or missing references) //IL_1dbd: Unknown result type (might be due to invalid IL or missing references) //IL_1dbf: Unknown result type (might be due to invalid IL or missing references) //IL_1dc8: Unknown result type (might be due to invalid IL or missing references) //IL_1dee: Unknown result type (might be due to invalid IL or missing references) //IL_1df0: Unknown result type (might be due to invalid IL or missing references) //IL_1df9: Unknown result type (might be due to invalid IL or missing references) //IL_1e1f: Unknown result type (might be due to invalid IL or missing references) //IL_1e21: Unknown result type (might be due to invalid IL or missing references) //IL_1e2a: Unknown result type (might be due to invalid IL or missing references) //IL_1e50: Unknown result type (might be due to invalid IL or missing references) //IL_1e52: Unknown result type (might be due to invalid IL or missing references) //IL_1e5b: Unknown result type (might be due to invalid IL or missing references) //IL_1e81: Unknown result type (might be due to invalid IL or missing references) //IL_1e83: Unknown result type (might be due to invalid IL or missing references) //IL_1e8c: Unknown result type (might be due to invalid IL or missing references) //IL_1eb2: Unknown result type (might be due to invalid IL or missing references) //IL_1eb4: Unknown result type (might be due to invalid IL or missing references) //IL_1ebd: Unknown result type (might be due to invalid IL or missing references) //IL_1ee3: Unknown result type (might be due to invalid IL or missing references) //IL_1ee5: Unknown result type (might be due to invalid IL or missing references) //IL_1eef: Unknown result type (might be due to invalid IL or missing references) //IL_1f15: Unknown result type (might be due to invalid IL or missing references) //IL_1f17: Unknown result type (might be due to invalid IL or missing references) //IL_1f21: Unknown result type (might be due to invalid IL or missing references) //IL_1f47: Unknown result type (might be due to invalid IL or missing references) //IL_1f49: Unknown result type (might be due to invalid IL or missing references) //IL_1f53: Unknown result type (might be due to invalid IL or missing references) //IL_1f79: Unknown result type (might be due to invalid IL or missing references) //IL_1f7b: Unknown result type (might be due to invalid IL or missing references) //IL_1f85: Unknown result type (might be due to invalid IL or missing references) //IL_1fab: Unknown result type (might be due to invalid IL or missing references) //IL_1fad: Unknown result type (might be due to invalid IL or missing references) //IL_1fb7: Unknown result type (might be due to invalid IL or missing references) //IL_1fdd: Unknown result type (might be due to invalid IL or missing references) //IL_1fdf: Unknown result type (might be due to invalid IL or missing references) //IL_2044: Unknown result type (might be due to invalid IL or missing references) //IL_204f: Unknown result type (might be due to invalid IL or missing references) //IL_2088: Unknown result type (might be due to invalid IL or missing references) //IL_20ae: Unknown result type (might be due to invalid IL or missing references) //IL_20b0: Unknown result type (might be due to invalid IL or missing references) //IL_20b9: Unknown result type (might be due to invalid IL or missing references) //IL_20df: Unknown result type (might be due to invalid IL or missing references) //IL_20e1: Unknown result type (might be due to invalid IL or missing references) //IL_20ea: Unknown result type (might be due to invalid IL or missing references) //IL_2110: Unknown result type (might be due to invalid IL or missing references) //IL_2112: Unknown result type (might be due to invalid IL or missing references) //IL_211b: Unknown result type (might be due to invalid IL or missing references) //IL_2141: Unknown result type (might be due to invalid IL or missing references) //IL_2143: Unknown result type (might be due to invalid IL or missing references) //IL_214c: Unknown result type (might be due to invalid IL or missing references) //IL_2172: Unknown result type (might be due to invalid IL or missing references) //IL_2174: Unknown result type (might be due to invalid IL or missing references) //IL_217d: Unknown result type (might be due to invalid IL or missing references) //IL_21a3: Unknown result type (might be due to invalid IL or missing references) //IL_21a5: Unknown result type (might be due to invalid IL or missing references) //IL_21ae: Unknown result type (might be due to invalid IL or missing references) //IL_21d4: Unknown result type (might be due to invalid IL or missing references) //IL_21d6: Unknown result type (might be due to invalid IL or missing references) //IL_21df: Unknown result type (might be due to invalid IL or missing references) //IL_2205: Unknown result type (might be due to invalid IL or missing references) //IL_2207: Unknown result type (might be due to invalid IL or missing references) //IL_2210: Unknown result type (might be due to invalid IL or missing references) //IL_2236: Unknown result type (might be due to invalid IL or missing references) //IL_2238: Unknown result type (might be due to invalid IL or missing references) //IL_2242: Unknown result type (might be due to invalid IL or missing references) //IL_2268: Unknown result type (might be due to invalid IL or missing references) //IL_226a: Unknown result type (might be due to invalid IL or missing references) //IL_2274: Unknown result type (might be due to invalid IL or missing references) //IL_229a: Unknown result type (might be due to invalid IL or missing references) //IL_229c: Unknown result type (might be due to invalid IL or missing references) //IL_22a6: Unknown result type (might be due to invalid IL or missing references) //IL_22cc: Unknown result type (might be due to invalid IL or missing references) //IL_22ce: Unknown result type (might be due to invalid IL or missing references) //IL_22d8: Unknown result type (might be due to invalid IL or missing references) //IL_22fe: Unknown result type (might be due to invalid IL or missing references) //IL_2300: Unknown result type (might be due to invalid IL or missing references) //IL_230a: Unknown result type (might be due to invalid IL or missing references) //IL_2330: Unknown result type (might be due to invalid IL or missing references) //IL_2332: Unknown result type (might be due to invalid IL or missing references) //IL_2397: Unknown result type (might be due to invalid IL or missing references) //IL_25f0: Unknown result type (might be due to invalid IL or missing references) //IL_2607: Unknown result type (might be due to invalid IL or missing references) //IL_260c: Unknown result type (might be due to invalid IL or missing references) //IL_2614: Unknown result type (might be due to invalid IL or missing references) //IL_2676: Unknown result type (might be due to invalid IL or missing references) //IL_26cf: Unknown result type (might be due to invalid IL or missing references) //IL_26eb: Unknown result type (might be due to invalid IL or missing references) //IL_26f5: Unknown result type (might be due to invalid IL or missing references) //IL_2720: Unknown result type (might be due to invalid IL or missing references) //IL_27e7: Unknown result type (might be due to invalid IL or missing references) //IL_27ec: Unknown result type (might be due to invalid IL or missing references) //IL_281a: Unknown result type (might be due to invalid IL or missing references) //IL_281f: Unknown result type (might be due to invalid IL or missing references) //IL_2848: Unknown result type (might be due to invalid IL or missing references) //IL_284d: Unknown result type (might be due to invalid IL or missing references) //IL_285e: Unknown result type (might be due to invalid IL or missing references) //IL_2863: Unknown result type (might be due to invalid IL or missing references) //IL_288c: Unknown result type (might be due to invalid IL or missing references) //IL_2891: Unknown result type (might be due to invalid IL or missing references) //IL_28a2: Unknown result type (might be due to invalid IL or missing references) //IL_28a7: Unknown result type (might be due to invalid IL or missing references) characterPrefab = PrefabAPI.InstantiateClone(LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody"), "PykeBody", true); characterPrefab.GetComponent<NetworkIdentity>().localPlayerAuthority = true; characterPrefab.AddComponent<Blank>(); GameObject val = CreateModel(characterPrefab); GameObject val2 = new GameObject("ModelBase"); val2.transform.parent = characterPrefab.transform; val2.transform.localPosition = new Vector3(0f, -0.94f, 0f); val2.transform.localRotation = Quaternion.identity; val2.transform.localScale = new Vector3(1f, 1f, 1f); GameObject val3 = new GameObject("AimOrigin"); val3.transform.parent = val2.transform; val3.transform.localPosition = new Vector3(0f, 2f, 0f); val3.transform.localRotation = Quaternion.identity; val3.transform.localScale = Vector3.one; Transform transform = val.transform; transform.parent = val2.transform; transform.localPosition = Vector3.zero; transform.localScale = new Vector3(1f, 1f, 1f); transform.localRotation = Quaternion.identity; CharacterDirection component = characterPrefab.GetComponent<CharacterDirection>(); component.moveVector = Vector3.zero; component.targetTransform = val2.transform; component.overrideAnimatorForwardTransform = null; component.rootMotionAccumulator = null; component.modelAnimator = val.GetComponentInChildren<Animator>(); component.driveFromRootRotation = false; component.turnSpeed = 720f; CharacterBody component2 = characterPrefab.GetComponent<CharacterBody>(); ((Object)component2).name = "PykeBody"; component2.baseNameToken = "PYKE_NAME"; component2.subtitleNameToken = "PYKE_SUBTITLE"; component2.bodyFlags = (BodyFlags)16; component2.rootMotionInMainState = false; component2.mainRootSpeed = 0f; component2.baseMaxHealth = 130f; component2.levelMaxHealth = 45f; component2.baseRegen = 1f; component2.levelRegen = 0.33f; 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 = 30f; component2.levelArmor = 0f; component2.baseJumpCount = 2; component2.sprintingSpeedMultiplier = 1.45f; component2.wasLucky = false; component2.hideCrosshair = false; component2.aimOriginTransform = val3.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.preferredPodPrefab = null; component2.bodyColor = characterColor; CharacterMotor component3 = characterPrefab.GetComponent<CharacterMotor>(); component3.walkSpeedPenaltyCoefficient = 1f; component3.characterDirection = component; component3.muteWalkMotion = false; component3.mass = 80f; 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 = LegacyResourcesAPI.Load<GameObject>("Prefabs/CharacterBodies/CommandoBody").GetComponent<CameraTargetParams>().cameraParams; component5.cameraPivotTransform = null; component5.recoil = Vector2.zero; component5.dontRaycastToPivot = false; ModelLocator component6 = characterPrefab.GetComponent<ModelLocator>(); component6.modelTransform = transform; component6.modelBaseTransform = val2.transform; component6.dontReleaseModelOnDeath = false; component6.autoUpdateModelTransform = true; component6.dontDetatchFromParent = false; component6.noCorpse = false; component6.normalizeToFloor = false; component6.preserveModel = false; ChildLocator component7 = val.GetComponent<ChildLocator>(); CharacterModel val4 = val.AddComponent<CharacterModel>(); val4.body = component2; val4.baseRendererInfos = (RendererInfo[])(object)new RendererInfo[14] { new RendererInfo { defaultMaterial = ((Renderer)val.GetComponentInChildren<SkinnedMeshRenderer>()).material, renderer = (Renderer)(object)val.GetComponentInChildren<SkinnedMeshRenderer>(), defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("BaseBlade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("BaseBlade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin01")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin01")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin01Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin01Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin02")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin02")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin02Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin02Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin03")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin03")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin03Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin03Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin04")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin04")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin04Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin04Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin05")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin05")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin05Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin05Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin06")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin06")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false }, new RendererInfo { renderer = (Renderer)(object)((Component)component7.FindChild("Skin06Blade")).GetComponentInChildren<SkinnedMeshRenderer>(), defaultMaterial = ((Renderer)((Component)component7.FindChild("Skin06Blade")).GetComponentInChildren<SkinnedMeshRenderer>()).material, defaultShadowCastingMode = (ShadowCastingMode)1, ignoreOverlays = false } }; val4.autoPopulateLightInfos = true; val4.invisibilityCount = 0; val4.temporaryOverlays = new List<TemporaryOverlay>(); Reflection.SetFieldValue<SkinnedMeshRenderer>((object)val4, "mainSkinnedMeshRenderer", ((Component)val4.baseRendererInfos[0].renderer).gameObject.GetComponent<SkinnedMeshRenderer>()); GameObject gameObject = ((Component)characterPrefab.GetComponentInChildren<ModelLocator>().modelTransform).gameObject; CharacterModel component8 = gameObject.GetComponent<CharacterModel>(); ModelSkinController val5 = gameObject.AddComponent<ModelSkinController>(); ChildLocator component9 = gameObject.GetComponent<ChildLocator>(); SkinnedMeshRenderer fieldValue = Reflection.GetFieldValue<SkinnedMeshRenderer>((object)component8, "mainSkinnedMeshRenderer"); LanguageAPI.Add("PYKEBODY_DEFAULT_SKIN_NAME", "Default"); LanguageAPI.Add("PYKEBODY_SKIN01_SKIN_NAME", "Sand Wraith"); LanguageAPI.Add("PYKEBODY_SKIN02_SKIN_NAME", "Blood Moon"); LanguageAPI.Add("PYKEBODY_SKIN03_SKIN_NAME", "PROJECT"); LanguageAPI.Add("PYKEBODY_SKIN04_SKIN_NAME", "PsyOps"); LanguageAPI.Add("PYKEBODY_SKIN05_SKIN_NAME", "Sentinel"); LanguageAPI.Add("PYKEBODY_SKIN06_SKIN_NAME", "Ashen Knight"); UnlockableDef skin01Unlock = Achievements.Skin01Unlock; UnlockableDef skin02Unlock = Achievements.Skin02Unlock; UnlockableDef skin03Unlock = Achievements.Skin03Unlock; UnlockableDef skin04Unlock = Achievements.Skin04Unlock; UnlockableDef skin05Unlock = Achievements.Skin05Unlock; UnlockableDef skin06Unlock = Achievements.Skin06Unlock; SkinDefInfo val6 = default(SkinDefInfo); val6.BaseSkins = Array.Empty<SkinDef>(); val6.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val6.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val6.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val6.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin"); RendererInfo[] baseRendererInfos = val4.baseRendererInfos; val6.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val6.Name = "PYKEBODY_DEFAULT_SKIN_NAME"; val6.NameToken = "PYKEBODY_DEFAULT_SKIN_NAME"; val6.RendererInfos = component8.baseRendererInfos; val6.RootObject = gameObject; val6.UnlockableDef = null; RendererInfo[] rendererInfos = val6.RendererInfos; RendererInfo[] array = (RendererInfo[])(object)new RendererInfo[rendererInfos.Length]; rendererInfos.CopyTo(array, 0); Material defaultMaterial = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("base").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial2 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin01").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial3 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin02").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial4 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin03").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial5 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin04").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial6 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin05").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); Material defaultMaterial7 = Utils.InstantiateMaterial(Color.white, Assets.MainAssetBundle.LoadAsset<Material>("skin06").GetTexture("_MainTex"), Color.black, 0f, null, 1f, null); array[0].defaultMaterial = defaultMaterial; array[1].defaultMaterial = defaultMaterial2; array[2].defaultMaterial = defaultMaterial3; array[3].defaultMaterial = defaultMaterial4; array[4].defaultMaterial = defaultMaterial5; array[5].defaultMaterial = defaultMaterial6; array[6].defaultMaterial = defaultMaterial7; val6.RendererInfos = array; SkinDef val7 = LoadoutAPI.CreateNewSkinDef(val6); SkinDefInfo val8 = default(SkinDefInfo); val8.BaseSkins = Array.Empty<SkinDef>(); val8.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val8.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val8.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val8.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin01"); val8.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val8.Name = "PYKEBODY_SKIN01_SKIN_NAME"; val8.NameToken = "PYKEBODY_SKIN01_SKIN_NAME"; val8.RendererInfos = component8.baseRendererInfos; val8.RootObject = gameObject; val8.UnlockableDef = skin01Unlock; SkinDef val9 = LoadoutAPI.CreateNewSkinDef(val8); SkinDefInfo val10 = default(SkinDefInfo); val10.BaseSkins = Array.Empty<SkinDef>(); val10.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val10.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val10.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val10.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin02"); val10.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val10.Name = "PYKEBODY_SKIN02_SKIN_NAME"; val10.NameToken = "PYKEBODY_SKIN02_SKIN_NAME"; val10.RendererInfos = component8.baseRendererInfos; val10.RootObject = gameObject; val10.UnlockableDef = skin02Unlock; SkinDef val11 = LoadoutAPI.CreateNewSkinDef(val10); SkinDefInfo val12 = default(SkinDefInfo); val12.BaseSkins = Array.Empty<SkinDef>(); val12.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val12.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val12.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val12.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin03"); val12.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val12.Name = "PYKEBODY_SKIN03_SKIN_NAME"; val12.NameToken = "PYKEBODY_SKIN03_SKIN_NAME"; val12.RendererInfos = component8.baseRendererInfos; val12.RootObject = gameObject; val12.UnlockableDef = skin03Unlock; SkinDef val13 = LoadoutAPI.CreateNewSkinDef(val12); SkinDefInfo val14 = default(SkinDefInfo); val14.BaseSkins = Array.Empty<SkinDef>(); val14.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val14.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val14.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val14.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin04"); val14.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val14.Name = "PYKEBODY_SKIN04_SKIN_NAME"; val14.NameToken = "PYKEBODY_SKIN04_SKIN_NAME"; val14.RendererInfos = component8.baseRendererInfos; val14.RootObject = gameObject; val14.UnlockableDef = skin04Unlock; SkinDef val15 = LoadoutAPI.CreateNewSkinDef(val14); SkinDefInfo val16 = default(SkinDefInfo); val16.BaseSkins = Array.Empty<SkinDef>(); val16.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val16.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val16.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = false } }; val16.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin05"); val16.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val16.Name = "PYKEBODY_SKIN05_SKIN_NAME"; val16.NameToken = "PYKEBODY_SKIN05_SKIN_NAME"; val16.RendererInfos = component8.baseRendererInfos; val16.RootObject = gameObject; val16.UnlockableDef = skin05Unlock; SkinDef val17 = LoadoutAPI.CreateNewSkinDef(val16); SkinDefInfo val18 = default(SkinDefInfo); val18.BaseSkins = Array.Empty<SkinDef>(); val18.MinionSkinReplacements = (MinionSkinReplacement[])(object)new MinionSkinReplacement[0]; val18.ProjectileGhostReplacements = (ProjectileGhostReplacement[])(object)new ProjectileGhostReplacement[0]; val18.GameObjectActivations = (GameObjectActivation[])(object)new GameObjectActivation[14] { new GameObjectActivation { gameObject = ((Component)component9.FindChild("Base")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("BaseBlade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin01Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin02Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin03Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin04Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin05Blade")).gameObject, shouldActivate = false }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06")).gameObject, shouldActivate = true }, new GameObjectActivation { gameObject = ((Component)component9.FindChild("Skin06Blade")).gameObject, shouldActivate = true } }; val18.Icon = Assets.MainAssetBundle.LoadAsset<Sprite>("portraitSkin06"); val18.MeshReplacements = (MeshReplacement[])(object)new MeshReplacement[0]; val18.Name = "PYKEBODY_SKIN06_SKIN_NAME"; val18.NameToken = "PYKEBODY_SKIN06_SKIN_NAME"; val18.RendererInfos = component8.baseRendererInfos; val18.RootObject = gameObject; val18.UnlockableDef = skin06Unlock; SkinDef val19 = LoadoutAPI.CreateNewSkinDef(val18); val5.skins = (SkinDef[])(object)new SkinDef[7] { val7, val9, val11, val13, val15, val17, val19 }; TeamComponent val20 = null; val20 = ((!((Object)(object)characterPrefab.GetComponent<TeamComponent>() != (Object)null)) ? characterPrefab.GetComponent<TeamComponent>() : characterPrefab.GetComponent<TeamComponent>()); val20.hideAllyCardDisplay = false; val20.teamIndex = (TeamIndex)(-1); HealthComponent component10 = characterPrefab.GetComponent<HealthComponent>(); component10.health = 130f; component10.shield = 0f; component10.barrier = 0f; component10.magnetiCharge = 0f; component10.body = null; component10.dontShowHealthbar = false; component10.globalDeathEventChanceCoefficient = 1f; 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 = ""; Rigidbody component12 = characterPrefab.GetComponent<Rigidbody>(); component12.mass = 100f; component12.drag = 0f; component12.angularDrag = 0f; component12.useGravity = false; component12.isKinematic = true; component12.interpolation = (RigidbodyInterpolation)0; component12.collisionDetectionMode = (CollisionDetectionMode)0; component12.constraints = (RigidbodyConstraints)0; CapsuleCollider component13 = characterPrefab.GetComponent<CapsuleCollider>(); ((Collider)component13).isTrigger = false; ((Collider)component13).material = null; KinematicCharacterMotor component14 = characterPrefab.GetComponent<KinematicCharacterMotor>(); component14.CharacterController = (BaseCharacterController)(object)component3; component14.Capsule = component13; component14.Rigidbody = component12; component14.DetectDiscreteCollisions = false; component14.GroundDetectionExtraDistance = 0f; component14.MaxStepHeight = 0.2f; component14.MinRequiredStepDepth = 0.1f; component14.MaxStableSlopeAngle = 55f; component14.MaxStableDistanceFromLedge = 0.5f; component14.PreventSnappingOnLedges = false; component14.MaxStableDenivelationAngle = 55f; component14.RigidbodyInteractionType = (RigidbodyInteractionType)0; component14.PreserveAttachedRigidbodyMomentum = true; component14.HasPlanarConstraint = false; component14.PlanarConstraintAxis = Vector3.up; component14.StepHandling = (StepHandlingMethod)0; component14.LedgeHandling = true; component14.InteractiveRigidbodyHandling = true; component14.SafeMovement = false; HurtBoxGroup val21 = val.AddComponent<HurtBoxGroup>(); HurtBox val22 = ((Component)val.GetComponentInChildren<CapsuleCollider>()).gameObject.AddComponent<HurtBox>(); ((Component)val22).gameObject.layer = LayerIndex.entityPrecise.intVal; val22.healthComponent = component10; val22.isBullseye = true; val22.damageModifier = (DamageModifier)0; val22.hurtBoxGroup = val21; val22.indexInGroup = 0; val21.hurtBoxes = (HurtBox[])(object)new HurtBox[1] { val22 }; val21.mainHurtBox = val22; val21.bullseyeCount = 1; Utils.CreateHitbox("Swing", component9.FindChild("SwingMuzzle"), new Vector3(6f, 5f, 6f)); Utils.CreateHitbox("Execute", component9.FindChild("CenterMuzzle"), Vector3.one * 10f); Utils.CreateHitbox("ShortHook", component9.FindChild("SwingMuzzle"), new Vector3(3.5f, 5f, 8.5f)); AimAnimator val23 = val.AddComponent<AimAnimator>(); val23.inputBank = component4; val23.directionComponent = component; val23.pitchRangeMax = 55f; val23.pitchRangeMin = -50f; val23.yawRangeMin = -44f; val23.yawRangeMax = 44f; val23.pitchGiveupRange = 30f; val23.yawGiveupRange = 10f; val23.giveupDuration = 8f; FootstepHandler val24 = val.AddComponent<FootstepHandler>(); val24.baseFootstepString = "Play_player_footstep"; val24.sprintFootstepOverrideString = ""; val24.enableFootstepDust = true; val24.footstepDustPrefab = LegacyResourcesAPI.Load<GameObject>("Prefabs/GenericFootstepDust"); EntityStateMachine component15 = ((Component)component2).GetComponent<EntityStateMachine>(); component15.mainStateType = new SerializableEntityStateType(typeof(CharacterMain)); CharacterDeathBehavior component16 = characterPrefab.GetComponent<CharacterDeathBehavior>(); component16.deathStateMachine = characterPrefab.GetComponent<EntityStateMachine>(); component16.deathState = new SerializableEntityStateType(typeof(GenericCharacterDeath)); EntityStateMachine val25 = characterPrefab.AddComponent<EntityStateMachine>(); val25.customName = "Dash"; val25.initialStateType = new SerializableEntityStateType(typeof(Idle)); val25.mainStateType = new SerializableEntityStateType(typeof(Idle)); EntityStateMachine val26 = characterPrefab.AddComponent<EntityStateMachine>(); val26.customName = "Execute"; val26.initialStateType = new SerializableEntityStateType(typeof(Idle)); val26.mainStateType = new SerializableEntityStateType(typeof(Idle)); NetworkStateMachine component17 = ((Component)component2).GetComponent<NetworkStateMachine>(); List<EntityStateMachine> list = component17.stateMachines.ToList(); list.Add(val25); list.Add(val26); component17.stateMachines = list.ToArray(); ContentAddition.AddBody(characterPrefab); } private void RegisterCharacter() { //IL_016b: Unknown result type (might be due to invalid IL or missing references) //IL_0170: Unknown result type (might be due to invalid IL or missing references) characterDisplay = PrefabAPI.InstantiateClone(((Component)characterPrefab.GetComponent<ModelLocator>().modelBaseTransform).gameObject, "PykeDisplay", true); characterDisplay.AddComponent<NetworkIdentity>(); SkinDef[] skins = characterDisplay.GetComponentInChildren<ModelSkinController>().skins; for (int i = 0; i < skins.Length; i++) { RendererInfo[] rendererInfos = skins[i].rendererInfos; for (int j = 0; j < rendererInfos.Length; j++) { rendererInfos[j].defaultMaterial.shaderKeywords = null; } } string text = "Pyke is a high risk, high reward burst damage assassin who thrives on executing groups of low health targets.<style=cSub>\r\n\r\n< ! > Pyke can single enemies out by pulling them using the hold variation of his Bone Skewer." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Be sure to utilize Pykes passive to remain healthy and reposition for damage potential." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Learning to manipulate Pykes skills can make him very lethal. However misusing an Ult can lead to death. Be sure to use your kit to its fullest potential." + Environment.NewLine + "<style=cSub>\r\n\r\n< ! > Death From Below will execute enemies under 10% max health. This effect stacks with Critical Hit Chance up to a maximum of 25% upon reaching 200% critical hit chance."; string text2 = "..and so he left, returning to the depths to seek revenge."; string text3 = "..and so he vanished, never to be seen again."; string text4 = "A renowned harpooner from the slaughter docks of Bilgewater, Pyke should have met his death in the belly of a gigantic jaull-fish… and yet, he returned. Now, stalking the dank alleys and backways of his former hometown, he uses his new supernatural gifts to bring a swift and gruesome end to those who make their fortune by exploiting others—and a city that prides itself on hunting monsters now finds a monster hunting them."; LanguageAPI.Add("PYKE_NAME", "Pyke"); LanguageAPI.Add("PYKE_DESCRIPTION", text); LanguageAPI.Add("PYKE_LORE", text4); LanguageAPI.Add("PYKE_SUBTITLE", "The Bloodharbor Ripper"); LanguageAPI.Add("PYKE_OUTRO", text2); LanguageAPI.Add("PYKE_FAIL", text3); SurvivorDef val = ScriptableObject.CreateInstance<SurvivorDef>(); val.cachedName = "PYKE_NAME"; val.unlockableDef = null; val.descriptionToken = "PYKE_DESCRIPTION"; val.primaryColor = characterColor; val.bodyPrefa