Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Pyke v1.0.5
Pyke.dll
Decompiled 2 years ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using EntityStates; using EntityStates.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