Please disclose if your mod was created primarily 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 Valheim Legends v0.4.91
ValheimLegends.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.InteropServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using UnityEngine; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("ValheimLegends")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("ValheimLegends")] [assembly: AssemblyCopyright("Copyright © 2021")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("f0baf009-4135-4368-9987-850698809493")] [assembly: AssemblyFileVersion("0.4.9.2")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("0.4.9.2")] [module: UnverifiableCode] namespace ValheimLegends; public class AnimationClipOverrides : List<KeyValuePair<AnimationClip, AnimationClip>> { public AnimationClip this[string name] { get { return Find((KeyValuePair<AnimationClip, AnimationClip> x) => ((Object)x.Key).name == name).Value; } set { int num = FindIndex((KeyValuePair<AnimationClip, AnimationClip> x) => ((Object)x.Key).name == name); if (num != -1) { base[num] = new KeyValuePair<AnimationClip, AnimationClip>(base[num].Key, value); } } } public AnimationClipOverrides(int capacity) : base(capacity) { } } public class Class_Duelist { private static int ScriptChar_Layermask = LayerMask.GetMask(new string[11] { "Default", "static_solid", "Default_small", "piece_nonsolid", "terrain", "vehicle", "piece", "viewblock", "character", "character_net", "character_ghost" }); private static GameObject GO_CastFX; private static GameObject GO_QuickShot; private static Projectile P_QuickShot; public static void Execute_Slash(Player player) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e6: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Unknown result type (might be due to invalid IL or missing references) //IL_0110: Unknown result type (might be due to invalid IL or missing references) //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_0117: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Expected O, but got Unknown //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_0173: Unknown result type (might be due to invalid IL or missing references) //IL_017f: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0189: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_BlinkStrike"), ((Character)player).GetCenterPoint() + ((Character)player).GetLookDir() * 3f, Quaternion.LookRotation(((Character)player).GetLookDir())); float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; float num = 0.6f + level * 0.006f * VL_GlobalConfigs.g_DamageModifer * VL_GlobalConfigs.c_duelistSeismicSlash; Vector3 val = ((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 6f; List<Character> list = new List<Character>(); list.Clear(); Character.GetCharactersInRange(val, 6f, list); foreach (Character item in list) { if (BaseAI.IsEnemy((Character)(object)player, item) && VL_Utility.LOS_IsValid(item, val, val)) { Vector3 val2 = ((Component)item).transform.position - ((Component)player).transform.position; HitData val3 = new HitData(); val3.m_damage = ((Humanoid)player).GetCurrentWeapon().GetDamage(); val3.ApplyModifier(Random.Range(0.8f, 1.2f) * num); val3.m_pushForce = 25f + 0.1f * level; val3.m_point = item.GetEyePoint(); val3.m_dir = ((Component)player).transform.position - ((Component)item).transform.position; val3.m_skill = ValheimLegends.DisciplineSkill; item.Damage(val3); } } } public static void Process_Input(Player player) { //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00ca: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0224: Unknown result type (might be due to invalid IL or missing references) //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Unknown result type (might be due to invalid IL or missing references) //IL_0283: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Unknown result type (might be due to invalid IL or missing references) //IL_040d: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_0432: Unknown result type (might be due to invalid IL or missing references) //IL_043c: Unknown result type (might be due to invalid IL or missing references) //IL_0441: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0456: Unknown result type (might be due to invalid IL or missing references) //IL_045b: Unknown result type (might be due to invalid IL or missing references) //IL_046c: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0474: Unknown result type (might be due to invalid IL or missing references) //IL_0496: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0525: Unknown result type (might be due to invalid IL or missing references) //IL_052a: Unknown result type (might be due to invalid IL or missing references) //IL_054e: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_0562: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059e: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: Unknown result type (might be due to invalid IL or missing references) //IL_05bb: Expected O, but got Unknown //IL_0602: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_060c: Unknown result type (might be due to invalid IL or missing references) //IL_060e: 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_061a: Unknown result type (might be due to invalid IL or missing references) //IL_0622: Unknown result type (might be due to invalid IL or missing references) //IL_062e: Unknown result type (might be due to invalid IL or missing references) //IL_0633: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0590: Unknown result type (might be due to invalid IL or missing references) Random random = new Random(); if (VL_Utility.Ability3_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability3_CD")) { if (player.GetStamina() >= VL_Utility.GetBlinkStrikeCost) { StatusEffect val = (StatusEffect)(object)(SE_Ability3_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability3_CD)); val.m_ttl = VL_Utility.GetBlinkStrikeCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetBlinkStrikeCost, false); ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("knife_stab1"); ValheimLegends.isChanneling = true; ValheimLegends.isChargingDash = true; ValheimLegends.dashCounter = 0; ((Character)player).RaiseSkill(ValheimLegends.DisciplineSkill, VL_Utility.GetBlinkStrikeSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina for S. Slash : (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetBlinkStrikeCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else if (VL_Utility.Ability2_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability2_CD")) { if (player.GetStamina() >= VL_Utility.GetRiposteCost) { StatusEffect val2 = (StatusEffect)(object)(SE_Ability2_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability2_CD)); val2.m_ttl = VL_Utility.GetRiposteCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val2, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetRiposteCost, false); float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; GO_CastFX = Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_perfectblock"), ((Component)player).transform.position, Quaternion.identity); GO_CastFX = Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_backstab"), ((Character)player).GetCenterPoint(), Quaternion.identity); SE_Riposte sE_Riposte = (SE_Riposte)(object)ScriptableObject.CreateInstance(typeof(SE_Riposte)); ((Character)player).GetSEMan().AddStatusEffect((StatusEffect)(object)sE_Riposte, false, 0, 0f); ((Character)player).RaiseSkill(ValheimLegends.DisciplineSkill, VL_Utility.GetRiposteSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina for Riposte: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetRiposteCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else if (VL_Utility.Ability1_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability1_CD")) { if (player.GetStamina() >= VL_Utility.GetQuickShotCost) { float level2 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; StatusEffect val3 = (StatusEffect)(object)(SE_Ability1_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability1_CD)); val3.m_ttl = VL_Utility.GetQuickShotCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val3, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetQuickShotCost + 0.5f * level2, false); ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("interact"); GO_CastFX = Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_smelter_add"), ((Component)player).transform.position, Quaternion.identity); Vector3 val4 = ((Component)player).transform.position + ((Component)player).transform.up * 1.2f + ((Character)player).GetLookDir() * 0.5f; GO_CastFX = Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_QuickShot"), val4, Quaternion.LookRotation(((Character)player).GetLookDir())); GameObject prefab = ZNetScene.instance.GetPrefab("Greydwarf_throw_projectile"); GO_QuickShot = Object.Instantiate<GameObject>(prefab, val4, Quaternion.identity); P_QuickShot = GO_QuickShot.GetComponent<Projectile>(); ((Object)P_QuickShot).name = "QuickShot"; P_QuickShot.m_respawnItemOnHit = false; P_QuickShot.m_spawnOnHit = null; P_QuickShot.m_ttl = 10f; P_QuickShot.m_gravity = 1.2f; P_QuickShot.m_rayRadius = 0.05f; P_QuickShot.m_hitNoise = 20f; ((Component)P_QuickShot).transform.localRotation = Quaternion.LookRotation(((Humanoid)player).GetAimDir(val4)); GO_QuickShot.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); RaycastHit val5 = default(RaycastHit); Vector3 val6 = ((!Physics.Raycast(((Character)player).GetEyePoint(), ((Character)player).GetLookDir(), ref val5, float.PositiveInfinity, ScriptChar_Layermask) || !Object.op_Implicit((Object)(object)((RaycastHit)(ref val5)).collider)) ? (((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 1000f) : ((RaycastHit)(ref val5)).point); HitData val7 = new HitData(); val7.m_damage.m_pierce = Random.Range(5f + 1f * level2, 30f + 1f * level2) * VL_GlobalConfigs.g_DamageModifer * VL_GlobalConfigs.c_duelistHipShot; val7.m_pushForce = 1f; val7.m_skill = ValheimLegends.DisciplineSkill; Vector3 val8 = Vector3.MoveTowards(val4, val6, 1f); P_QuickShot.Setup((Character)(object)player, (val8 - GO_QuickShot.transform.position) * 100f, -1f, val7, (ItemData)null, (ItemData)null); Traverse.Create((object)P_QuickShot).Field("m_skill").SetValue((object)ValheimLegends.DisciplineSkill); GO_QuickShot = null; VL_Utility.RotatePlayerToTarget(player); ((Character)player).RaiseSkill(ValheimLegends.DisciplineSkill, VL_Utility.GetQuickShotSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina to for Hip Shot: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetQuickShotCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else { ValheimLegends.isChanneling = false; } } } public class Class_Enchanter { public enum EnchanterAttackType { Charm = 10, Shock = 8, None = 0 } private static int Script_Layermask = LayerMask.GetMask(new string[8] { "Default", "static_solid", "Default_small", "piece_nonsolid", "terrain", "vehicle", "piece", "viewblock" }); private static int ScriptChar_Layermask = LayerMask.GetMask(new string[14] { "Default", "static_solid", "Default_small", "piece_nonsolid", "piece", "terrain", "vehicle", "viewblock", "character", "character_noenv", "character_trigger", "character_net", "character_ghost", "Water" }); private static bool zonechargeCharging = false; private static float zonechargeCount; private static int zonechargeChargeAmount; private static int zonechargeChargeAmountMax; private static float zonechargeSkillGain = 0f; public static EnchanterAttackType QueuedAttack; public static StatusEffect HasZoneBuffTime(Player p) { foreach (StatusEffect statusEffect in ((Character)p).GetSEMan().GetStatusEffects()) { if (statusEffect.m_name.StartsWith("VL_Biome")) { return statusEffect; } } return null; } public static void Execute_Attack(Player player, ref Rigidbody playerBody, ref float altitude) { //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_005d: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0096: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: 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_0121: Unknown result type (might be due to invalid IL or missing references) //IL_0122: Unknown result type (might be due to invalid IL or missing references) //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0146: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_0157: Unknown result type (might be due to invalid IL or missing references) //IL_0159: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0262: Unknown result type (might be due to invalid IL or missing references) //IL_0268: Unknown result type (might be due to invalid IL or missing references) //IL_0272: Unknown result type (might be due to invalid IL or missing references) //IL_0277: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_029c: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_018d: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_02de: Unknown result type (might be due to invalid IL or missing references) //IL_02e4: Unknown result type (might be due to invalid IL or missing references) //IL_02ee: Unknown result type (might be due to invalid IL or missing references) //IL_02f3: Unknown result type (might be due to invalid IL or missing references) //IL_02f8: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01a3: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Expected O, but got Unknown //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01bd: Unknown result type (might be due to invalid IL or missing references) //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_01ce: Unknown result type (might be due to invalid IL or missing references) //IL_01d3: Unknown result type (might be due to invalid IL or missing references) //IL_01dc: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01eb: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0183: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_033f: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_0365: Unknown result type (might be due to invalid IL or missing references) //IL_036a: Unknown result type (might be due to invalid IL or missing references) //IL_036f: Unknown result type (might be due to invalid IL or missing references) //IL_0371: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Expected O, but got Unknown //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03de: Unknown result type (might be due to invalid IL or missing references) //IL_03e3: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: Unknown result type (might be due to invalid IL or missing references) if (QueuedAttack == EnchanterAttackType.Charm) { float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AlterationSkillDef)).m_level; Vector3 val = ((Character)player).GetEyePoint() + ((Component)player).transform.up * 0.1f + ((Character)player).GetLookDir() * 0.5f + ((Component)player).transform.right * 0.25f; GameObject prefab = ZNetScene.instance.GetPrefab("VL_Charm"); GameObject val2 = Object.Instantiate<GameObject>(prefab, val, Quaternion.identity); Projectile component = val2.GetComponent<Projectile>(); ((Object)component).name = "VL_Charm"; component.m_respawnItemOnHit = false; component.m_spawnOnHit = null; component.m_ttl = 30f * VL_GlobalConfigs.c_enchanterCharm; component.m_gravity = 0f; component.m_rayRadius = 0.01f; component.m_aoe = 1f + 0.01f * level; ((Component)component).transform.localRotation = Quaternion.LookRotation(((Humanoid)player).GetAimDir(val)); val2.transform.localScale = Vector3.zero; RaycastHit val3 = default(RaycastHit); Vector3 position = ((Component)player).transform.position; Vector3 val4 = ((!Physics.Raycast(val, ((Character)player).GetLookDir(), ref val3, 1000f, ScriptChar_Layermask) || !Object.op_Implicit((Object)(object)((RaycastHit)(ref val3)).collider)) ? (position + ((Character)player).GetLookDir() * 1000f) : ((RaycastHit)(ref val3)).point); HitData val5 = new HitData(); val5.m_skill = ValheimLegends.AlterationSkill; Vector3 val6 = Vector3.MoveTowards(val2.transform.position, val4, 1f); component.Setup((Character)(object)player, (val6 - val2.transform.position) * 40f, -1f, val5, (ItemData)null, (ItemData)null); Traverse.Create((object)component).Field("m_skill").SetValue((object)ValheimLegends.AlterationSkill); } else { if (QueuedAttack != EnchanterAttackType.Shock) { return; } StatusEffect val7 = HasZoneBuffTime(player); if (!((Object)(object)val7 != (Object)null)) { return; } Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_Shock"), ((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 2.5f + ((Component)player).transform.right * 0.25f, Quaternion.LookRotation(((Character)player).GetLookDir())); float level2 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AlterationSkillDef)).m_level; Vector3 val8 = ((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 4f; List<Character> list = new List<Character>(); list.Clear(); Character.GetCharactersInRange(val8, 4f, list); foreach (Character item in list) { if (BaseAI.IsEnemy((Character)(object)player, item) && VL_Utility.LOS_IsValid(item, val8, val8)) { Vector3 dir = ((Component)item).transform.position - ((Component)player).transform.position; HitData val9 = new HitData(); val9.m_damage.m_lightning = 15f + level2 + val7.m_ttl * Random.Range(0.03f, 0.06f) * (1f + 0.1f * level2) * VL_GlobalConfigs.c_enchanterBiomeShock; val9.m_pushForce = 0f; val9.m_point = item.GetEyePoint(); val9.m_dir = dir; val9.m_skill = ValheimLegends.AlterationSkill; item.Damage(val9); item.Stagger(val9.m_dir); } } if (((Object)val7).name == "SE_VL_BiomeSwamp") { SE_BiomeSwamp sE_BiomeSwamp = val7 as SE_BiomeSwamp; if ((Object)(object)sE_BiomeSwamp.biomeLight != (Object)null) { Object.Destroy((Object)(object)sE_BiomeSwamp.biomeLight); } } ((Character)player).GetSEMan().RemoveStatusEffect(val7, false); } } public static void Process_Input(Player player, ref float altitude) { //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_030d: 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_017d: Unknown result type (might be due to invalid IL or missing references) //IL_0182: Unknown result type (might be due to invalid IL or missing references) //IL_03db: Unknown result type (might be due to invalid IL or missing references) //IL_03e0: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0438: Unknown result type (might be due to invalid IL or missing references) //IL_043e: Invalid comparison between Unknown and I4 //IL_0580: Unknown result type (might be due to invalid IL or missing references) //IL_0586: Invalid comparison between Unknown and I4 //IL_0f18: Unknown result type (might be due to invalid IL or missing references) //IL_0f30: Unknown result type (might be due to invalid IL or missing references) //IL_06bc: Unknown result type (might be due to invalid IL or missing references) //IL_06c2: Invalid comparison between Unknown and I4 //IL_07fe: Unknown result type (might be due to invalid IL or missing references) //IL_0804: Invalid comparison between Unknown and I4 //IL_109b: 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_10b9: Unknown result type (might be due to invalid IL or missing references) //IL_10be: Unknown result type (might be due to invalid IL or missing references) //IL_10c1: Unknown result type (might be due to invalid IL or missing references) //IL_10c7: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_095c: Invalid comparison between Unknown and I4 //IL_10f6: Unknown result type (might be due to invalid IL or missing references) //IL_10f9: Unknown result type (might be due to invalid IL or missing references) //IL_1103: Unknown result type (might be due to invalid IL or missing references) //IL_1108: 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_0a8d: Invalid comparison between Unknown and I4 //IL_110d: Unknown result type (might be due to invalid IL or missing references) //IL_111e: Unknown result type (might be due to invalid IL or missing references) //IL_1120: Unknown result type (might be due to invalid IL or missing references) //IL_10ef: Unknown result type (might be due to invalid IL or missing references) //IL_0bb4: Unknown result type (might be due to invalid IL or missing references) //IL_0bbe: Invalid comparison between Unknown and I4 //IL_0e3f: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_0cec: Invalid comparison between Unknown and I4 //IL_054a: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_1146: Unknown result type (might be due to invalid IL or missing references) //IL_1151: Unknown result type (might be due to invalid IL or missing references) //IL_1165: Unknown result type (might be due to invalid IL or missing references) //IL_116a: Unknown result type (might be due to invalid IL or missing references) //IL_116f: Unknown result type (might be due to invalid IL or missing references) //IL_0686: Unknown result type (might be due to invalid IL or missing references) //IL_068b: Unknown result type (might be due to invalid IL or missing references) //IL_07c8: Unknown result type (might be due to invalid IL or missing references) //IL_07cd: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0924: Unknown result type (might be due to invalid IL or missing references) //IL_0a4d: Unknown result type (might be due to invalid IL or missing references) //IL_0a52: Unknown result type (might be due to invalid IL or missing references) //IL_122a: 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_1231: Unknown result type (might be due to invalid IL or missing references) //IL_1236: Unknown result type (might be due to invalid IL or missing references) //IL_12c5: Unknown result type (might be due to invalid IL or missing references) //IL_0b7e: Unknown result type (might be due to invalid IL or missing references) //IL_0b83: Unknown result type (might be due to invalid IL or missing references) //IL_0caf: Unknown result type (might be due to invalid IL or missing references) //IL_0cb4: Unknown result type (might be due to invalid IL or missing references) //IL_0ddd: Unknown result type (might be due to invalid IL or missing references) //IL_0de2: Unknown result type (might be due to invalid IL or missing references) if (VL_Utility.Ability3_Input_Down && !zonechargeCharging) { StatusEffect val = HasZoneBuffTime(player); if ((Object)(object)val != (Object)null && val.m_ttl > 0f && QueuedAttack != EnchanterAttackType.Shock) { QueuedAttack = EnchanterAttackType.Shock; ValheimLegends.isChargingDash = true; ValheimLegends.dashCounter = 0; VL_Utility.RotatePlayerToTarget(player); ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("unarmed_attack0"); } else if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability3_CD") && !zonechargeCharging) { if (player.GetStamina() >= VL_Utility.GetZoneChargeCost) { float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AbjurationSkillDef)).m_level; player.StartEmote("challenge", true); ValheimLegends.isChanneling = true; ValheimLegends.shouldUseGuardianPower = false; StatusEffect val2 = (StatusEffect)(object)(SE_Ability3_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability3_CD)); val2.m_ttl = VL_Utility.GetZoneChargeCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val2, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetZoneChargeCost, false); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_ParticleTailField"), ((Component)player).transform.position, Quaternion.identity); zonechargeCharging = true; zonechargeChargeAmount = 0; zonechargeChargeAmountMax = Mathf.RoundToInt(15f * (1f - level * 0.005f)); zonechargeCount = 10f; zonechargeSkillGain += VL_Utility.GetZoneChargeSkillGain; } else { ((Character)player).Message((MessageType)1, "Not enough stamina to begin Zone Charge : (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetZoneChargeCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else if (VL_Utility.Ability3_Input_Pressed && player.GetStamina() > 1f && player.GetStamina() > VL_Utility.GetZoneChargeCostPerUpdate && Mathf.Max(0f, altitude - ((Component)player).transform.position.y) <= 1f && zonechargeCharging && ValheimLegends.isChanneling) { VL_Utility.SetTimer(); ValheimLegends.isChanneling = true; zonechargeChargeAmount++; ((Character)player).UseStamina(VL_Utility.GetZoneChargeCostPerUpdate, false); if (zonechargeChargeAmount >= zonechargeChargeAmountMax) { zonechargeCount += 2f; zonechargeChargeAmount = 0; Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_ParticleTailField"), ((Component)player).transform.position, Quaternion.identity); zonechargeSkillGain += 0.2f; } } else if ((VL_Utility.Ability3_Input_Up || player.GetStamina() <= 1f || player.GetStamina() <= VL_Utility.GetZoneChargeCostPerUpdate || Mathf.Max(0f, altitude - ((Component)player).transform.position.y) >= 1f) && zonechargeCharging && ValheimLegends.isChanneling) { float level2 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AbjurationSkillDef)).m_level; Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_ParticleFieldBurst"), ((Component)player).transform.position, Quaternion.identity); List<Character> list = new List<Character>(); list.Clear(); Character.GetCharactersInRange(((Component)player).transform.position, 30f + 0.2f * level2, list); float num = (3f * level2 + 2f * zonechargeCount) * VL_GlobalConfigs.c_enchanterBiome; if ((int)player.GetCurrentBiome() == 1) { GameObject prefab = ZNetScene.instance.GetPrefab("vfx_Potion_stamina_medium"); foreach (Character item in list) { SE_BiomeMeadows sE_BiomeMeadows = (SE_BiomeMeadows)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeMeadows)); ((StatusEffect)sE_BiomeMeadows).m_ttl = SE_BiomeMeadows.m_baseTTL + num; sE_BiomeMeadows.regenBonus = (1f + 0.1f * level2) * VL_GlobalConfigs.g_DamageModifer; sE_BiomeMeadows.doOnce = false; if (!BaseAI.IsEnemy(item, (Character)(object)player)) { if ((Object)(object)item == (Object)(object)Player.m_localPlayer) { item.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMeadows, true, 0, 0f); } else if (item.IsPlayer()) { item.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeMeadows).name), true, 0, 0f); } else { item.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMeadows, true, 0, 0f); } Object.Instantiate<GameObject>(prefab, item.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 8) { GameObject prefab2 = ZNetScene.instance.GetPrefab("fx_Potion_frostresist"); foreach (Character item2 in list) { SE_BiomeBlackForest sE_BiomeBlackForest = (SE_BiomeBlackForest)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeBlackForest)); ((StatusEffect)sE_BiomeBlackForest).m_ttl = SE_BiomeBlackForest.m_baseTTL + num; sE_BiomeBlackForest.carryModifier = 50f + level2; sE_BiomeBlackForest.doOnce = false; if (!BaseAI.IsEnemy(item2, (Character)(object)player)) { if ((Object)(object)item2 == (Object)(object)Player.m_localPlayer) { item2.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeBlackForest, true, 0, 0f); } else if (item2.IsPlayer()) { item2.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeBlackForest).name), true, 0, 0f); } else { item2.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeBlackForest, true, 0, 0f); } Object.Instantiate<GameObject>(prefab2, item2.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 2) { GameObject prefab3 = ZNetScene.instance.GetPrefab("vfx_Potion_health_medium"); foreach (Character item3 in list) { SE_BiomeSwamp sE_BiomeSwamp = (SE_BiomeSwamp)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeSwamp)); ((StatusEffect)sE_BiomeSwamp).m_ttl = SE_BiomeSwamp.m_baseTTL + num; sE_BiomeSwamp.resistModifier = 0.8f - 0.002f * level2; sE_BiomeSwamp.doOnce = false; if (!BaseAI.IsEnemy(item3, (Character)(object)player)) { if ((Object)(object)item3 == (Object)(object)Player.m_localPlayer) { item3.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeSwamp, true, 0, 0f); } else if (item3.IsPlayer()) { item3.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeSwamp).name), true, 0, 0f); } else { item3.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeSwamp, true, 0, 0f); } Object.Instantiate<GameObject>(prefab3, item3.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 4) { GameObject prefab4 = ZNetScene.instance.GetPrefab("fx_Potion_frostresist"); foreach (Character item4 in list) { SE_BiomeMountain sE_BiomeMountain = (SE_BiomeMountain)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeMountain)); ((StatusEffect)sE_BiomeMountain).m_ttl = SE_BiomeMountain.m_baseTTL + num; sE_BiomeMountain.resistModifier = 1f + 0.1f * level2; sE_BiomeMountain.staminaRegen = 5f + 0.075f * level2; sE_BiomeMountain.doOnce = false; if (!BaseAI.IsEnemy(item4, (Character)(object)player)) { if ((Object)(object)item4 == (Object)(object)Player.m_localPlayer) { item4.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMountain, true, 0, 0f); } else if (item4.IsPlayer()) { item4.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeMountain).name), true, 0, 0f); } else { item4.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMountain, true, 0, 0f); } Object.Instantiate<GameObject>(prefab4, item4.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 16) { GameObject prefab5 = ZNetScene.instance.GetPrefab("vfx_Potion_stamina_medium"); foreach (Character item5 in list) { SE_BiomePlains sE_BiomePlains = (SE_BiomePlains)(object)ScriptableObject.CreateInstance(typeof(SE_BiomePlains)); ((StatusEffect)sE_BiomePlains).m_ttl = SE_BiomePlains.m_baseTTL + num; sE_BiomePlains.doOnce = false; if (!BaseAI.IsEnemy(item5, (Character)(object)player)) { if ((Object)(object)item5 == (Object)(object)Player.m_localPlayer) { item5.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomePlains, true, 0, 0f); } else if (item5.IsPlayer()) { item5.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomePlains).name), true, 0, 0f); } else { item5.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomePlains, true, 0, 0f); } Object.Instantiate<GameObject>(prefab5, item5.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 256) { GameObject prefab6 = ZNetScene.instance.GetPrefab("fx_Potion_frostresist"); foreach (Character item6 in list) { SE_BiomeOcean sE_BiomeOcean = (SE_BiomeOcean)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeOcean)); ((StatusEffect)sE_BiomeOcean).m_ttl = SE_BiomeOcean.m_baseTTL + num; sE_BiomeOcean.doOnce = false; if (!BaseAI.IsEnemy(item6, (Character)(object)player)) { if ((Object)(object)item6 == (Object)(object)Player.m_localPlayer) { item6.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeOcean, true, 0, 0f); } else if (item6.IsPlayer()) { item6.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeOcean).name), true, 0, 0f); } else { item6.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeOcean, true, 0, 0f); } Object.Instantiate<GameObject>(prefab6, item6.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 512) { GameObject prefab7 = ZNetScene.instance.GetPrefab("fx_Potion_frostresist"); foreach (Character item7 in list) { SE_BiomeMist sE_BiomeMist = (SE_BiomeMist)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeMist)); ((StatusEffect)sE_BiomeMist).m_ttl = SE_BiomeMist.m_baseTTL + num; sE_BiomeMist.doOnce = false; if (!BaseAI.IsEnemy(item7, (Character)(object)player)) { if ((Object)(object)item7 == (Object)(object)Player.m_localPlayer) { item7.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMist, true, 0, 0f); } else if (item7.IsPlayer()) { item7.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeMist).name), true, 0, 0f); } else { item7.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeMist, true, 0, 0f); } Object.Instantiate<GameObject>(prefab7, item7.GetCenterPoint(), Quaternion.identity); } } } else if ((int)player.GetCurrentBiome() == 32) { GameObject prefab8 = ZNetScene.instance.GetPrefab("vfx_Potion_health_medium"); foreach (Character item8 in list) { SE_BiomeAsh sE_BiomeAsh = (SE_BiomeAsh)(object)ScriptableObject.CreateInstance(typeof(SE_BiomeAsh)); ((StatusEffect)sE_BiomeAsh).m_ttl = SE_BiomeAsh.m_baseTTL + num; sE_BiomeAsh.doOnce = false; if (!BaseAI.IsEnemy(item8, (Character)(object)player)) { if ((Object)(object)item8 == (Object)(object)Player.m_localPlayer) { item8.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeAsh, true, 0, 0f); } else if (item8.IsPlayer()) { item8.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_BiomeAsh).name), true, 0, 0f); } else { item8.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_BiomeAsh, true, 0, 0f); } Object.Instantiate<GameObject>(prefab8, item8.GetCenterPoint(), Quaternion.identity); } } } else { ZLog.Log((object)"Biome invalid."); } zonechargeCharging = false; zonechargeCount = 0f; zonechargeChargeAmount = 0; ValheimLegends.isChanneling = false; QueuedAttack = EnchanterAttackType.None; ((Character)player).RaiseSkill(ValheimLegends.AbjurationSkill, zonechargeSkillGain); zonechargeSkillGain = 0f; } else if (VL_Utility.Ability2_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability2_CD")) { if (player.GetStamina() >= VL_Utility.GetCharmCost) { StatusEffect val3 = (StatusEffect)(object)(SE_Ability2_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability2_CD)); val3.m_ttl = VL_Utility.GetCharmCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val3, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetCharmCost, false); ValheimLegends.isChargingDash = true; ValheimLegends.dashCounter = 0; QueuedAttack = EnchanterAttackType.Charm; ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("knife_stab0"); VL_Utility.RotatePlayerToTarget(player); ((Character)player).RaiseSkill(ValheimLegends.AlterationSkill, VL_Utility.GetCharmSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina for Charm: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetCharmCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else if (VL_Utility.Ability1_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability1_CD")) { if (player.GetStamina() >= VL_Utility.GetWeakenCost) { ValheimLegends.shouldUseGuardianPower = false; float level3 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AlterationSkillDef)).m_level; StatusEffect val4 = (StatusEffect)(object)(SE_Ability1_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability1_CD)); val4.m_ttl = VL_Utility.GetWeakenCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val4, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetWeakenCost + 0.5f * level3, false); ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("gpower"); RaycastHit val5 = default(RaycastHit); Vector3 position = ((Component)player).transform.position; Vector3 val6 = ((!Physics.Raycast(((Character)player).GetEyePoint(), ((Character)player).GetLookDir(), ref val5, float.PositiveInfinity, ScriptChar_Layermask) || !Object.op_Implicit((Object)(object)((RaycastHit)(ref val5)).collider)) ? (position + ((Character)player).GetLookDir() * 1000f) : ((RaycastHit)(ref val5)).point); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_Weaken"), val6, Quaternion.identity); for (int i = 0; i < 4; i++) { Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_WeakenStatus"), ((Component)player).transform.position + ((Component)player).transform.up * Random.Range(0.4f, 1.1f), Quaternion.identity); } SE_Weaken sE_Weaken = (SE_Weaken)(object)ScriptableObject.CreateInstance(typeof(SE_Weaken)); ((StatusEffect)sE_Weaken).m_ttl = SE_Weaken.m_baseTTL; sE_Weaken.damageReduction = (0.15f + 0.0015f * level3) * VL_GlobalConfigs.c_enchanterWeaken; sE_Weaken.speedReduction = 0.8f - 0.001f * level3; sE_Weaken.staminaDrain = (0.1f + 0.001f * level3) * VL_GlobalConfigs.c_enchanterWeaken; List<Character> allCharacters = Character.GetAllCharacters(); foreach (Character item9 in allCharacters) { if (!BaseAI.IsEnemy((Character)(object)player, item9)) { continue; } Vector3 val7 = ((Component)item9).transform.position - val6; if (((Vector3)(ref val7)).magnitude <= 5f + 0.01f * level3) { if (item9.IsPlayer()) { item9.GetSEMan().AddStatusEffect(StringExtensionMethods.GetStableHashCode(((Object)sE_Weaken).name), true, 0, 0f); } else { item9.GetSEMan().AddStatusEffect((StatusEffect)(object)sE_Weaken, true, 0, 0f); } } } ((Character)player).RaiseSkill(ValheimLegends.AlterationSkill, VL_Utility.GetWeakenSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina for Weaken: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetWeakenCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else { ValheimLegends.isChanneling = false; } } } public class Class_Rogue { private static int ScriptChar_Layermask = LayerMask.GetMask(new string[14] { "character", "character_noenv", "character_trigger", "character_net", "character_ghost", "Default", "static_solid", "Default_small", "piece_nonsolid", "piece", "terrain", "vehicle", "viewblock", "Water" }); public static Vector3 fadePoint; public static Vector3 backstabPoint; public static Vector3 backstabVector; public static bool throwDagger = false; public static bool canDoubleJump = true; public static bool canGainTrick = false; public static bool PlayerUsingDaggerOnly { get { Player localPlayer = Player.m_localPlayer; if (((Humanoid)localPlayer).GetCurrentWeapon() != null) { SharedData shared = ((Humanoid)localPlayer).GetCurrentWeapon().m_shared; ItemData value = Traverse.Create((object)localPlayer).Field("m_leftItem").GetValue<ItemData>(); if (shared != null && (shared.m_name.ToLower().Contains("knife") || shared.m_name.Contains("dagger")) && value == null) { return true; } } return false; } } public static void Execute_Throw(Player player) { //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_02b8: Unknown result type (might be due to invalid IL or missing references) //IL_02bd: Unknown result type (might be due to invalid IL or missing references) //IL_02c8: Unknown result type (might be due to invalid IL or missing references) //IL_02d2: Unknown result type (might be due to invalid IL or missing references) //IL_02d7: Unknown result type (might be due to invalid IL or missing references) //IL_02e2: Unknown result type (might be due to invalid IL or missing references) //IL_02ec: Unknown result type (might be due to invalid IL or missing references) //IL_02f1: Unknown result type (might be due to invalid IL or missing references) //IL_02f6: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_030d: Unknown result type (might be due to invalid IL or missing references) //IL_0353: Unknown result type (might be due to invalid IL or missing references) //IL_0355: Unknown result type (might be due to invalid IL or missing references) //IL_035a: Unknown result type (might be due to invalid IL or missing references) //IL_036c: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_0394: Unknown result type (might be due to invalid IL or missing references) //IL_0396: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_014d: Unknown result type (might be due to invalid IL or missing references) //IL_0152: Unknown result type (might be due to invalid IL or missing references) //IL_016d: Unknown result type (might be due to invalid IL or missing references) //IL_0177: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_03c8: Unknown result type (might be due to invalid IL or missing references) //IL_03cb: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03da: Unknown result type (might be due to invalid IL or missing references) //IL_01c8: Unknown result type (might be due to invalid IL or missing references) //IL_01cb: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01da: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_03e8: Expected O, but got Unknown //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_041c: Unknown result type (might be due to invalid IL or missing references) //IL_0431: Unknown result type (might be due to invalid IL or missing references) //IL_0436: Unknown result type (might be due to invalid IL or missing references) //IL_043d: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) //IL_0447: Unknown result type (might be due to invalid IL or missing references) //IL_0450: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_045f: Unknown result type (might be due to invalid IL or missing references) //IL_0484: 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_01df: Unknown result type (might be due to invalid IL or missing references) //IL_01e1: Unknown result type (might be due to invalid IL or missing references) //IL_01e8: Expected O, but got Unknown //IL_01ea: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Unknown result type (might be due to invalid IL or missing references) //IL_0204: Unknown result type (might be due to invalid IL or missing references) //IL_0209: Unknown result type (might be due to invalid IL or missing references) //IL_0210: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_021a: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0232: Unknown result type (might be due to invalid IL or missing references) //IL_0257: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) if (!throwDagger) { float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.AlterationSkillDef)).m_level; Vector3 val = ((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 0.2f + ((Component)player).transform.up * 0.3f + ((Component)player).transform.right * 0.28f; GameObject prefab = ZNetScene.instance.GetPrefab("VL_PoisonBomb"); GameObject val2 = Object.Instantiate<GameObject>(prefab, val, Quaternion.identity); GameObject prefab2 = ZNetScene.instance.GetPrefab("VL_PoisonBombExplosion"); Aoe componentInChildren = prefab2.gameObject.GetComponentInChildren<Aoe>(); componentInChildren.m_damage.m_poison = (10f + 2f * level) * VL_GlobalConfigs.c_roguePoisonBomb; componentInChildren.m_ttl = 4f + 0.1f * level; componentInChildren.m_hitInterval = 0.5f; Projectile component = val2.GetComponent<Projectile>(); ((Object)component).name = "Poison Bomb"; component.m_respawnItemOnHit = false; component.m_spawnOnHit = null; component.m_ttl = 10f; ((Component)component).transform.localRotation = Quaternion.LookRotation(((Humanoid)player).GetAimDir(val)); component.m_spawnOnHit = prefab2; val2.transform.localScale = Vector3.one * 0.5f; RaycastHit val3 = default(RaycastHit); Vector3 position = ((Component)player).transform.position; Vector3 val4 = ((!Physics.Raycast(val, ((Character)player).GetLookDir(), ref val3, float.PositiveInfinity, ScriptChar_Layermask) || !Object.op_Implicit((Object)(object)((RaycastHit)(ref val3)).collider)) ? (position + ((Character)player).GetLookDir() * 1000f) : ((RaycastHit)(ref val3)).point); HitData val5 = new HitData(); val5.m_skill = ValheimLegends.AlterationSkill; val5.SetAttacker((Character)(object)player); Vector3 val6 = Vector3.MoveTowards(val2.transform.position, val4, 1f); component.Setup((Character)(object)player, (val6 - val2.transform.position) * 25f, -1f, val5, (ItemData)null, (ItemData)null); Traverse.Create((object)component).Field("m_skill").SetValue((object)ValheimLegends.AlterationSkill); val2 = null; } else { float level2 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; Vector3 val7 = ((Character)player).GetEyePoint() + ((Character)player).GetLookDir() * 0.2f + ((Component)player).transform.up * 0.3f + ((Component)player).transform.right * 0.28f; GameObject prefab3 = ZNetScene.instance.GetPrefab("VL_ThrowingKnife"); GameObject val8 = Object.Instantiate<GameObject>(prefab3, val7, Quaternion.identity); Projectile component2 = val8.GetComponent<Projectile>(); ((Object)component2).name = "ThrowingKnife"; component2.m_respawnItemOnHit = false; component2.m_spawnOnHit = null; component2.m_ttl = 10f; ((Component)component2).transform.localRotation = Quaternion.LookRotation(((Humanoid)player).GetAimDir(val7)); val8.transform.localScale = Vector3.one * 0.2f; RaycastHit val9 = default(RaycastHit); Vector3 position2 = ((Component)player).transform.position; Vector3 val10 = ((!Physics.Raycast(val7, ((Character)player).GetLookDir(), ref val9, float.PositiveInfinity, ScriptChar_Layermask) || !Object.op_Implicit((Object)(object)((RaycastHit)(ref val9)).collider)) ? (position2 + ((Character)player).GetLookDir() * 1000f) : ((RaycastHit)(ref val9)).point); HitData val11 = new HitData(); val11.m_damage.m_pierce = Random.Range(5f + level2, 10f + 2f * level2) * VL_GlobalConfigs.c_rogueBonusThrowingDagger; val11.m_skill = ValheimLegends.DisciplineSkill; val11.SetAttacker((Character)(object)player); Vector3 val12 = Vector3.MoveTowards(val8.transform.position, val10, 1f); component2.Setup((Character)(object)player, (val12 - val8.transform.position) * 30f, -1f, val11, (ItemData)null, (ItemData)null); Traverse.Create((object)component2).Field("m_skill").SetValue((object)ValheimLegends.AlterationSkill); val8 = null; } } public static void Process_Input(Player player, ref Rigidbody playerBody, ref float altitude) { //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00bc: Unknown result type (might be due to invalid IL or missing references) //IL_00fe: Unknown result type (might be due to invalid IL or missing references) //IL_01f6: Unknown result type (might be due to invalid IL or missing references) //IL_0202: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_020a: Unknown result type (might be due to invalid IL or missing references) //IL_0215: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08d1: Unknown result type (might be due to invalid IL or missing references) //IL_08d6: Unknown result type (might be due to invalid IL or missing references) //IL_08db: Unknown result type (might be due to invalid IL or missing references) //IL_0a61: Unknown result type (might be due to invalid IL or missing references) //IL_0a84: Unknown result type (might be due to invalid IL or missing references) //IL_0909: Unknown result type (might be due to invalid IL or missing references) //IL_090e: Unknown result type (might be due to invalid IL or missing references) //IL_092e: Unknown result type (might be due to invalid IL or missing references) //IL_0933: Unknown result type (might be due to invalid IL or missing references) //IL_0944: Unknown result type (might be due to invalid IL or missing references) //IL_07f4: Unknown result type (might be due to invalid IL or missing references) //IL_07f9: 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_081e: Unknown result type (might be due to invalid IL or missing references) //IL_082f: Unknown result type (might be due to invalid IL or missing references) //IL_0834: Unknown result type (might be due to invalid IL or missing references) //IL_0840: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Expected O, but got Unknown //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03e4: Unknown result type (might be due to invalid IL or missing references) //IL_03f6: 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_0406: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_041d: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_044c: Unknown result type (might be due to invalid IL or missing references) //IL_0451: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_04c5: Unknown result type (might be due to invalid IL or missing references) //IL_04d1: Unknown result type (might be due to invalid IL or missing references) //IL_04d8: Unknown result type (might be due to invalid IL or missing references) //IL_04dd: Unknown result type (might be due to invalid IL or missing references) //IL_04e2: Unknown result type (might be due to invalid IL or missing references) //IL_0500: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_053f: Unknown result type (might be due to invalid IL or missing references) //IL_046a: Unknown result type (might be due to invalid IL or missing references) //IL_046f: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0484: Unknown result type (might be due to invalid IL or missing references) //IL_0489: Unknown result type (might be due to invalid IL or missing references) //IL_048d: Unknown result type (might be due to invalid IL or missing references) //IL_061b: Unknown result type (might be due to invalid IL or missing references) //IL_0620: Unknown result type (might be due to invalid IL or missing references) //IL_063a: Unknown result type (might be due to invalid IL or missing references) //IL_0645: Unknown result type (might be due to invalid IL or missing references) //IL_064f: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_065a: Unknown result type (might be due to invalid IL or missing references) //IL_065f: Unknown result type (might be due to invalid IL or missing references) //IL_0672: Unknown result type (might be due to invalid IL or missing references) //IL_0568: Unknown result type (might be due to invalid IL or missing references) //IL_0573: Unknown result type (might be due to invalid IL or missing references) //IL_0578: Unknown result type (might be due to invalid IL or missing references) //IL_057d: Unknown result type (might be due to invalid IL or missing references) //IL_057f: Unknown result type (might be due to invalid IL or missing references) //IL_0586: Expected O, but got Unknown //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_05e2: Unknown result type (might be due to invalid IL or missing references) //IL_05e7: Unknown result type (might be due to invalid IL or missing references) //IL_05ee: Unknown result type (might be due to invalid IL or missing references) //IL_05f0: Unknown result type (might be due to invalid IL or missing references) //IL_05f7: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) if (ZInput.GetButtonDown("Jump") && !((Character)player).IsDead() && !((Character)player).InAttack() && !((Character)player).IsEncumbered() && !((Character)player).InDodge() && !((Character)player).IsKnockedBack()) { SE_Rogue sE_Rogue = (SE_Rogue)(object)((Character)player).GetSEMan().GetStatusEffect(StringExtensionMethods.GetStableHashCode("SE_VL_Rogue")); if (!((Character)player).IsOnGround() && canDoubleJump && (Object)(object)sE_Rogue != (Object)null && sE_Rogue.hitCount > 0) { Vector3 velocity = ((Character)player).GetVelocity(); velocity.y = 0f; playerBody.velocity = velocity * 2f + new Vector3(0f, 8f, 0f); sE_Rogue.hitCount--; canDoubleJump = false; altitude = 0f; ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("jump"); } else if (((Character)player).IsOnGround()) { canDoubleJump = true; } } if (((Character)player).IsBlocking() && ZInput.GetButtonDown("Attack")) { SE_Rogue sE_Rogue2 = (SE_Rogue)(object)((Character)player).GetSEMan().GetStatusEffect(StringExtensionMethods.GetStableHashCode("SE_VL_Rogue")); if ((Object)(object)sE_Rogue2 != (Object)null && sE_Rogue2.hitCount > 0) { sE_Rogue2.hitCount--; ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("throw_bomb"); ValheimLegends.isChargingDash = true; ValheimLegends.dashCounter = 0; throwDagger = true; ((Character)player).RaiseSkill(ValheimLegends.DisciplineSkill, VL_Utility.GetPoisonBombSkillGain * 0.3f); } } if (VL_Utility.Ability3_Input_Down) { RaycastHit val = default(RaycastHit); Vector3 position = ((Component)player).transform.position; Physics.SphereCast(((Character)player).GetEyePoint(), 0.2f, ((Character)player).GetLookDir(), ref val, 150f, ScriptChar_Layermask); VL_Utility.SetTimer(); if ((Object)(object)((RaycastHit)(ref val)).collider != (Object)null && (Object)(object)((Component)((RaycastHit)(ref val)).collider).gameObject != (Object)null) { Character val2 = null; ((Component)((RaycastHit)(ref val)).collider).gameObject.TryGetComponent<Character>(ref val2); bool flag = (Object)(object)val2 != (Object)null; List<Component> list = new List<Component>(); list.Clear(); ((Component)((RaycastHit)(ref val)).collider).gameObject.GetComponents<Component>(list); if ((Object)(object)val2 == (Object)null) { val2 = (Character)((Component)((RaycastHit)(ref val)).collider).GetComponentInParent(typeof(Character)); flag = (Object)(object)val2 != (Object)null; if ((Object)(object)val2 == (Object)null) { val2 = ((Component)((RaycastHit)(ref val)).collider).GetComponentInChildren<Character>(); flag = (Object)(object)val2 != (Object)null; } } if (flag && !val2.IsPlayer()) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability3_CD")) { if (player.GetStamina() >= VL_Utility.GetBackstabCost) { StatusEffect val3 = (StatusEffect)(object)(SE_Ability3_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability3_CD)); val3.m_ttl = VL_Utility.GetBackstabCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val3, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetBackstabCost, false); float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_Smokeburst"), ((Character)player).GetEyePoint(), Quaternion.identity); backstabVector = (((Component)val2).transform.position - ((Component)player).transform.position) / Vector3.Distance(((Component)val2).transform.position, ((Component)player).transform.position); float num = -1.5f; _ = ((RaycastHit)(ref val)).collider.bounds; Bounds bounds = ((RaycastHit)(ref val)).collider.bounds; _ = ((Bounds)(ref bounds)).size; if (true) { bounds = ((RaycastHit)(ref val)).collider.bounds; float x2 = ((Bounds)(ref bounds)).size.x; bounds = ((RaycastHit)(ref val)).collider.bounds; num = (x2 + ((Bounds)(ref bounds)).size.z) / 2f; num = Mathf.Clamp(num, 0.6f, 2f); num *= -1f; } backstabPoint = ((Component)val2).transform.position + ((Component)val2).transform.forward * num; backstabPoint.y += 0.1f; ((Component)player).transform.position = backstabPoint; ((Component)player).transform.rotation = ((Component)val2).transform.rotation; ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("knife_stab2"); if (BaseAI.IsEnemy((Character)(object)player, val2)) { Vector3 dir = ((Component)val2).transform.position - ((Component)player).transform.position; HitData val4 = new HitData(); val4.m_damage = ((Humanoid)player).GetCurrentWeapon().GetDamage(); ((DamageTypes)(ref val4.m_damage)).Modify(Random.Range(0.6f, 0.8f) * (1f + 0.005f * level) * VL_GlobalConfigs.c_rogueBackstab); val4.m_pushForce = 10f + 0.1f * level; val4.m_point = val2.GetEyePoint(); val4.m_dir = dir; val4.m_skill = ValheimLegends.DisciplineSkill; val2.Damage(val4); } Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_Smokeburst"), backstabPoint, Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_Shadowburst"), backstabPoint + ((Component)player).transform.up * 0.5f, Quaternion.LookRotation(((Character)player).GetLookDir())); altitude = 0f; ((Character)player).RaiseSkill(ValheimLegends.DisciplineSkill, VL_Utility.GetBackstabSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina for Backstab: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetBackstabCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Invalid target", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "No target", 0, (Sprite)null); } } else if (VL_Utility.Ability2_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability2_CD")) { if (player.GetStamina() >= VL_Utility.GetFadeCost) { StatusEffect val5 = (StatusEffect)(object)(SE_Ability2_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability2_CD)); val5.m_ttl = VL_Utility.GetFadeCooldownTime * VL_GlobalConfigs.c_rogueFadeCooldown; ((Character)player).GetSEMan().AddStatusEffect(val5, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetFadeCost, false); float level2 = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.EvocationSkillDef)).m_level; GameObject prefab = ZNetScene.instance.GetPrefab("vfx_odin_despawn"); Object.Instantiate<GameObject>(prefab, ((Character)player).GetCenterPoint(), Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_wraith_death"), ((Component)player).transform.position, Quaternion.identity); fadePoint = ((Component)player).transform.position; canGainTrick = true; ((Character)player).RaiseSkill(ValheimLegends.EvocationSkill, VL_Utility.GetFadeSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina to set Fade point: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetFadeCost + ")", 0, (Sprite)null); } } else if (((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability2_CD")) { Vector3 val6 = fadePoint - ((Component)player).transform.position; if (((Vector3)(ref val6)).magnitude < 100f) { GameObject prefab2 = ZNetScene.instance.GetPrefab("vfx_odin_despawn"); Object.Instantiate<GameObject>(prefab2, ((Character)player).GetCenterPoint(), Quaternion.identity); Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("sfx_wraith_death"), ((Component)player).transform.position, Quaternion.identity); ((Component)player).transform.position = fadePoint; if (canGainTrick) { SE_Rogue sE_Rogue3 = (SE_Rogue)(object)((Character)player).GetSEMan().GetStatusEffect(StringExtensionMethods.GetStableHashCode("SE_VL_Rogue")); sE_Rogue3.hitCount++; canGainTrick = false; } } else { ((Character)player).Message((MessageType)1, "Cannot fade at this distance.", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else if (VL_Utility.Ability1_Input_Down) { if (!((Character)player).GetSEMan().HaveStatusEffect("SE_VL_Ability1_CD")) { if (player.GetStamina() >= VL_Utility.GetPoisonBombCost) { StatusEffect val7 = (StatusEffect)(object)(SE_Ability1_CD)(object)ScriptableObject.CreateInstance(typeof(SE_Ability1_CD)); val7.m_ttl = VL_Utility.GetPoisonBombCooldownTime; ((Character)player).GetSEMan().AddStatusEffect(val7, false, 0, 0f); ((Character)player).UseStamina(VL_Utility.GetPoisonBombCost, false); ((ZSyncAnimation)typeof(Player).GetField("m_zanim", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player)).SetTrigger("throw_bomb"); ValheimLegends.isChargingDash = true; ValheimLegends.dashCounter = 0; throwDagger = false; ((Character)player).RaiseSkill(ValheimLegends.AlterationSkill, VL_Utility.GetPoisonBombSkillGain); } else { ((Character)player).Message((MessageType)1, "Not enough stamina to throw Poison Bomb: (" + player.GetStamina().ToString("#.#") + "/" + VL_Utility.GetPoisonBombCost + ")", 0, (Sprite)null); } } else { ((Character)player).Message((MessageType)1, "Ability not ready", 0, (Sprite)null); } } else { ValheimLegends.isChanneling = false; } } } public class Class_Monk { public enum MonkAttackType { MeteorPunch = 12, MeteorSlam = 13, FlyingKick = 1, FlyingKickStart = 8, Surge = 20, Psibolt = 15 } private static int Script_Solidmask = LayerMask.GetMask(new string[8] { "Default", "static_solid", "Default_small", "piece_nonsolid", "terrain", "vehicle", "piece", "viewblock" }); private static int Script_Layermask = LayerMask.GetMask(new string[11] { "Default", "static_solid", "Default_small", "piece_nonsolid", "terrain", "vehicle", "character", "character_noenv", "character_trigger", "character_net", "character_ghost" }); private static int ScriptChar_Layermask = LayerMask.GetMask(new string[14] { "Default", "static_solid", "Default_small", "piece_nonsolid", "piece", "terrain", "vehicle", "viewblock", "character", "character_noenv", "character_trigger", "character_net", "character_ghost", "Water" }); public static MonkAttackType QueuedAttack; private static int fkickCount; private static int fkickCountMax; private static Vector3 kickDir; private static List<int> kicklist; public static bool PlayerIsUnarmed { get { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Invalid comparison between Unknown and I4 Player localPlayer = Player.m_localPlayer; if (((Humanoid)localPlayer).GetCurrentWeapon() != null) { ItemData value = Traverse.Create((object)localPlayer).Field("m_leftItem").GetValue<ItemData>(); SharedData shared = ((Humanoid)localPlayer).GetCurrentWeapon().m_shared; if (shared != null && (shared.m_name.ToLower() == "unarmed" || (int)shared.m_attachOverride == 12) && value == null) { return true; } } return false; } } public static void Impact_Effect(Player player, float altitude) { //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00d9: Unknown result type (might be due to invalid IL or missing references) //IL_00e0: Expected O, but got Unknown //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0133: Unknown result type (might be due to invalid IL or missing references) //IL_013a: Unknown result type (might be due to invalid IL or missing references) //IL_013c: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Unknown result type (might be due to invalid IL or missing references) //IL_0148: Unknown result type (might be due to invalid IL or missing references) List<Character> allCharacters = Character.GetAllCharacters(); ValheimLegends.shouldValkyrieImpact = false; foreach (Character item in allCharacters) { float level = ((IEnumerable<Skill>)((Character)player).GetSkills().GetSkillList()).FirstOrDefault((Func<Skill, bool>)((Skill x) => x.m_info == ValheimLegends.DisciplineSkillDef)).m_level; if (!BaseAI.IsEnemy((Character)(object)player, item)) { continue; } Vector3 splash_alternate = ((Component)item).transform.position - ((Component)player).transform.position; if (((Vector3)(ref splash_alternate)).magnitude <= 6f + 0.03f * level) { Vector3 position = ((Component)player).transform.position; splash_alternate = default(Vector3); if (VL_Utility.LOS_IsValid(item, position, splash_alternate)) { Vector3 dir = ((Component)item).transform.position - ((Component)player).transform.position; HitData val = new HitData(); val.m_damage.m_blunt = 5f + 3f * altitude + Random.Range(1f * level, 2f * level) * VL_GlobalConfigs.g_DamageModifer * VL_GlobalConfigs.c_monkChiSlam; val.m_pushForce = 20f * VL_GlobalConfigs.g_DamageModifer; val.m_point = item.GetEyePoint(); val.m_dir = dir; val.m_skill = ValheimLegends.DisciplineSkill; item.Damage(val); } } } Object.Instantiate<GameObject>(ZNetScene.instance.GetPrefab("fx_VL_MeteorSlam"), ((Component)player).transform.position + ((Component)player).transform.up * 0.2f, Quaternion.identity); } public static void Execute_Attack(Player player, ref Rigidbody playerBody, ref float altitude) { //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0033: 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_0042: Unknown result type (might be due to invalid IL or missing references) //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_0078: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_0376: Unknown result type (might be due to invalid IL or missing references) //IL_038a: Unknown result type (might be due to invalid IL or missing references) //IL_038f: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f6: Unknown result type (might be due to invalid IL or missing references) //IL_00f9: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_012e: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Unknown result type (might be due to invalid IL or missing references) //IL_013b: Unknown result type (might be due to invalid IL or missing references) //IL_0140: Unknown result type (might be due to invalid IL or missing references) //IL_03b8: Unknown result type (might be due to invalid IL or missing references) //IL_03c3: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e7: Unknown result type (might be due to invalid IL or missing references) //IL_03fb: Unknown result type (might be due to invalid IL or missing references) //IL_0400: Unknown result type (might be due to invalid IL or missing references) //IL_0414: Unknown result type (might be due to invalid IL or missing references) //IL_0419: Unknown result type (might be due to invalid IL or missing references) //IL_044e: Unknown result type (might be due to invalid IL or missing references) //IL_0453: Unknown result type (might be due to invalid IL or missing references) //IL_046e: Unknown result type (might be due to invalid IL or missing references) //IL_0473: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0148: 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_0127: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Unknown result type (might be due to invalid IL or missing references) //IL_056f: Unknown result type (might be due to invalid IL or missing references) //IL_0579: Unknown result type (might be due to invalid IL or missing references) //IL_057e: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_0593: Unknown result type (might be due to invalid IL or missing references) //IL_0598: Unknown result type (might be due to invalid IL or missing references) //IL_059d: Unknown result type (might be due to invalid IL or missing references) //IL_05b2: Unknown result type (might be due to invalid IL or missing references) //IL_05b4: 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_0608: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_061f: Unknown result type (might be due to invalid IL or missing references) //IL_062c: Unknown result type (might be due to invalid IL or missing references) //IL_0638: Unknown result type (might be due to invalid IL or missing references) //IL_063d: Unknown result type (might be due to invalid IL or missing references) //IL_063f: Unknown result type (might be due to invalid IL or missing references) //IL_0642: Unknown result type (might be due to invalid IL or missing references) //IL_0671: Unknown result type (might be due to invalid IL or missing references) //IL_0674: Unknown result type (might be due to invalid IL or missing references) //IL_067e: Unknown result type (might be due to invalid IL or missing references) //IL_0683: Unknown result type (might be due to invalid IL or missing references) //IL_0688: Unknown result type (might be due to invalid IL or missing references) //IL_068a: Unknown result type (might be due to invalid IL or missing references) //IL_0691: Expected O, but got Unknown //IL_0711: Unknown result type (might be due to invalid IL or missing references) //IL_0716: Unknown result type (might be due to invalid IL or missing references) //IL_072b: Unknown result type (might be due to invalid IL or missing references) //IL_0730: Unknown result type (might be due to invalid IL or missing references) //IL_0737: Unknown result type (might be due to invalid IL or missing references) //IL_073c: Unknown result type (might be due to invalid IL or missing references) //IL_0741: Unknown result type (might be due to invalid IL or missing references) //IL_074a: Unknown result type (might be due to invalid IL or missing references) //IL_074f: Unknown result type (might be due to invalid IL or missing references) //IL_0759: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_082b: Unknown result type (might be due to invalid IL or missing references) //IL_0830: Unknown result type (might be due to invalid IL or missing references) //IL_0853: Unknown result type (might be due to invalid IL or missing references) //IL_0858: Unknown result type (might be due to invalid IL or missing references) //IL_085d: Unknown result type (might be due to invalid IL or missing references) //IL_0862: Unknown result type (might be due to invalid IL or missing references) //IL_0867: Unknown result type (might be due to invalid IL or missing references) //IL_0874: Unknown result type (might be due to invalid IL or missing references) //IL_087a: Unknown result type (might be due to invalid IL or missing references) //IL_087f: Unknown result type (might be due to invalid IL or missing references) //IL_0887: Unknown result type (might be due to invalid IL or missing references) //IL_088c: Unknown result type (might be due to invalid IL or missing references) //IL_0894: Unknown result type (might be due to invalid IL or missing references) //IL_0899: Unknown result type (might be due to invalid IL or missing references) //IL_08a1: Unknown result type (might be due to invalid IL or missing references) //IL_08ac: Unknown result type (might be due to invalid IL or missing references) //IL_08b6: Unknown result type (might be due to invalid IL or missing references) //IL_08bb: Unknown result type (might be due to invalid IL or missing references) //IL_08c6: Unknown result type (might be due to invalid IL or missing references) //IL_08d0: Unknown result type (might be due to invalid IL or missing references) //IL_08d5: Unknown result type (might be due to invalid IL or missing references) //IL_08da: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Unknown result type (might be due to invalid IL or missing references) //IL_022e: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_023d: Unknown result type (might be due to invalid IL or missing references) //IL_01de: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Expected O, but got Unknown //IL_08f7: Unknown result type (might be due to invalid IL or missing references) //IL_0c30: Unknown result type (might be due to invalid IL or missing references) //IL_0c37: Unknown result type (might be due to invalid IL or missing references) //IL_090f: Unknown result type (might be due to invalid IL or missing references) //IL_091a: Unknown result type (might be due to invalid IL or missing references) //IL_091f: Unknown result type (might be due to invalid IL or missing references) //IL_0926: Unknown result type (might be due to invalid IL or missing references) //IL_092b: Unknown result type (might be due to invalid IL or missing references) //IL_093e: Unknown result type (might be due to invalid IL or missing references) //IL_0943: Unknown result type (might be due to invalid IL or missing references) //IL_0947: Unknown result type (might be due to invalid IL or missing references) //IL_0953: Unknown result type (might be due to invalid IL or missing references) //IL_095f: Unknown result type (might be due to invalid IL or missing references) //IL_09f7: Unknown result type (might be due to invalid IL or missing references) //IL_0a02: Unknown result type (might be due to invalid IL or missing references) //IL_0a07: Unknown result type (might be due to invalid IL or missing references) //IL_0a0e: Unknown result type (might be due to invalid IL or missing references) //IL_0a13: Unknown result type (might be due to invalid IL or missing references) //IL_0a21: Unknown result type (might be due to invalid IL or missing references) //IL_0a26: Unknown result type (might be due to invalid IL or missing references) //IL_0a2f: Unknown result type (might be due to invalid IL or missing references) //IL_0a3b: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_0976: Unknown result type (might be due to invalid IL or missing references) //IL_098a: Unknown result type (might be due to invalid IL or missing references) //IL_0a5d: Unknown result type (might be due to invalid IL or missing references) //IL_0a4f: Unknown result type (might be due to invalid IL or missing references) //IL_0c5a: Unknown result type (might be due to invalid IL or missing references) //IL_0c8a: Unknown result type (might be due to invalid IL or missing references) //IL_0c91: Unknown result type (might be due to invalid IL or missing references) //IL_0c9c: Unknown result type (might be due to invalid IL or missing references) //IL_0a6d: Unknown result type (might be due to invalid IL or missing references) //IL_0a74: Unknown result type (might be due to invalid IL or missing references) //IL_0a7b: Unknown result type (might be due to invalid IL or missing references) //IL_0a82: Unknown result type (might be due to invalid IL or missing references) //IL_0a87: Unknown result type (might be due to invalid IL or missing references) //IL_0cd1: Unknown result type (might be due to invalid IL or missing references) //IL_0cd6: Unknown result type (might be due to invalid IL or missing references) //IL_0ce0: Unknown result type (might be due to invalid IL or missing references) //IL_0ce5: Unknown result type (might be due to invalid IL or missing references) //IL_02a4: Unknown result type (might be due to invalid IL or missing references) //IL_02af: Unknown result type (might be due to invalid IL or missing references) //IL_02b4: Unknown result type (might be due to invalid IL or missing references) //IL_02b9: Unknown result type (might be due to invalid IL or missing references) //IL_02bb: Unknown result type (might be due to invalid IL or missing references) //IL_02c2: Expected O, but got Unknown //IL_0311: 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_031d: Unknown result type (might be due to invalid IL or missing references) //IL_031f: Unknown result type (might be due to invalid IL or missing references) //IL_0326: Unknown result type (might be due to invalid IL or missing references) //IL_032b: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_0d81: Unknown result type (might be due to invalid IL or missing references) //IL_0cea: Unknown result type (might be due to invalid IL or missing references) //IL_0cee: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0cc4: Unknown result type (might be due to invalid IL or missing references) //IL_0ab9: Unknown result type (might be due to invalid IL or missing references) //IL_0ac0: Unknown result type (might be due to invalid IL or missing references) //IL_0ac7: Unknown result type (might be due to invalid IL or missing references) //IL_0aa2: Unknown result type (might be due to invalid IL or missing references) //IL_0aa4: 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_0ab0: Unknown result type (might be due to invalid IL or missing references) //IL_0f45: Unknown result type (might be due to invalid IL or missing references) //IL_0f4d: Unknown result type (might be due to invalid IL or missing references) //IL_0f57: Unknown result type (might be due to invalid IL or missing references) //IL_0f5c: Unknown result type (might be due to invalid IL or missing references) //IL_0f67: Unknown result type (might be due to invalid IL or missing references) //IL_0f6c: Unknown result type (might be due to invalid IL or missing references) //IL_0da4: Unknown result type (might be due to invalid IL or missing references) //IL_0dad: Unknown result type (might be due to invalid IL or missing references) //IL_0db4: Unknown result type (might be due to invalid IL or missing references) //IL_0fac: Unknown result type (might be due to invalid IL or missing references) //IL_0fca: Unknown result type (might be due to invalid IL or missing references) //IL_0fd1: Unknown result type (might be due to invalid IL or missing references) //IL_0fe5: Unknown result type (might be due to invalid IL or missing references) //IL_0fea: Unknown result type (