Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of P4N7H3R4 v0.1.12
plugins/Panthera/Panthera.dll
Decompiled 7 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.CodeDom.Compiler; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using System.Xml; using System.Xml.Linq; using BepInEx; using EntityStates; using KinematicCharacterController; using LeTai.Asset.TranslucentImage; using Microsoft.CodeAnalysis; using MonoMod.RuntimeDetour.HookGen; using Panthera.Abilities; using Panthera.Abilities.Actives; using Panthera.Abilities.Passives; using Panthera.Abilities.Primaries; using Panthera.Base; using Panthera.BodyComponents; using Panthera.Combos; using Panthera.Combos.List; using Panthera.Components; using Panthera.Components.Projectiles; using Panthera.GUI; using Panthera.GUI.Tabs; using Panthera.GUI.Tooltips; using Panthera.MachineScripts; using Panthera.Machines; using Panthera.NetworkMessages; using Panthera.Orbs; using Panthera.Skills; using Panthera.Skills.Actives; using Panthera.Skills.Passives; using Panthera.Utils; using R2API; using R2API.Networking; using R2API.Networking.Interfaces; using R2API.Utils; using Rewired; using Rewired.Data; using RoR2; using RoR2.Audio; using RoR2.ContentManagement; using RoR2.Navigation; using RoR2.Networking; using RoR2.Orbs; using RoR2.PostProcess; using RoR2.PostProcessing; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using ThreeEyedGames; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Networking; using UnityEngine.Rendering; using UnityEngine.Rendering.PostProcessing; using UnityEngine.UI; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("Panthera")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+cf58ffd0a3cd6aa6f43d017cbeb251f3279136c9")] [assembly: AssemblyProduct("Panthera")] [assembly: AssemblyTitle("Panthera")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace Panthera { [BepInPlugin("com.Dexy.Panthera", "P4N7H3R4", "0.0.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [NetworkCompatibility(/*Could not decode attribute arguments.*/)] public class Panthera : BaseUnityPlugin { public static BaseUnityPlugin Instance; public static PluginInfo PInfo; public static ProfileComponent ProfileComponent; public static PantheraPanel PantheraPanelController; public static PantheraHUD PantheraHUD; public static Character PantheraCharacter; public static LocalUser FirstLocalUser; public static Player InputPlayer; public static UserProfile LoadedUserProfile; public static SurgeComponent surgeComponent; public static Xoroshiro128Plus ptraRNG = new Xoroshiro128Plus((ulong)Time.time); public static Camera UICamera { get { List<Camera> list = Camera.allCameras.ToList(); foreach (Camera item in list) { if (((Object)item).name == "UI Camera") { return item; } } return null; } } public void Awake() { Instance = (BaseUnityPlugin)(object)this; PInfo = ((BaseUnityPlugin)this).Info; PantheraSaveSystem.Init(); Hooks.RegisterHooks(); if (Language.currentLanguageName == "fr") { TokensFR.RegisterTokens(); } else { Tokens.RegisterTokens(); } PantheraAssets.PopulateAssets(); Prefab.RegisterCharacter(); Skin.RegisterSkins(); Buff.RegisterBuffs(); MessagesRegister.Register(); Prefab.CreateDoppelganger(); new ContentPacks().Initialize(); } public static void ProfileLoaded(Action<UserProfile> orig, UserProfile self) { orig(self); Sound.PopulateSounds(); ProfileComponent = ((Component)Instance).gameObject.GetComponent<ProfileComponent>(); if ((Object)(object)ProfileComponent != (Object)null) { Object.DestroyImmediate((Object)(object)ProfileComponent); } ProfileComponent = ((Component)Instance).gameObject.AddComponent<ProfileComponent>(); PantheraCharacter = new Character(); PantheraCharacter.init(); PantheraCharacter.CreateMasteryBossList(); PantheraSaveSystem.saveFileName = self.fileName; PantheraSaveSystem.Load(); FirstLocalUser = LocalUserManager.GetFirstLocalUser(); InputPlayer = LocalUserManager.GetRewiredMainPlayer(); LoadedUserProfile = self; PantheraPanelController = ((Component)Instance).gameObject.GetComponent<PantheraPanel>(); if ((Object)(object)PantheraPanelController != (Object)null) { Object.DestroyImmediate((Object)(object)PantheraPanelController); } PantheraPanelController = ((Component)Instance).gameObject.AddComponent<PantheraPanel>(); KeysBinder.InitPlayer(); KeysBinder.SetAllDefaultKeyBinds(); } public void Update() { if (InputPlayer != null && InputPlayer.GetButtonDown(PantheraConfig.Keys_OpenPantheraPanelActionCode)) { if (!PantheraPanelController.pantheraPanelGUI.active) { PantheraPanelController.open(); } else { PantheraPanelController.close(); } } } } internal class PantheraConfig { public static readonly string SP_CharacterXP = "CharacterXP"; public static readonly string SP_CharacterMastery = "CharacterMastery"; public static readonly string SP_Endurance = "CharacterEndurance"; public static readonly string SP_Force = "CharacterForce"; public static readonly string SP_Agility = "CharacterAgility"; public static readonly string SP_Swiftness = "CharacterSwiftness"; public static readonly string SP_Dexterity = "CharacterDexterity"; public static readonly string SP_Spirit = "CharacterSpirit"; public static readonly string InteractKeyName = "Interact"; public static readonly string EquipmentKeyName = "Activate Equipment"; public static readonly string SprintKeyName = "Sprint"; public static readonly string InfoKeyName = "Info"; public static readonly string PingKeyName = "Ping"; public static readonly string ForwardKeyName = "Move Forward"; public static readonly string BackwardKeyName = "Move Backward"; public static readonly string LeftKeyName = "Move Left"; public static readonly string RightKeyName = "Move Right"; public static readonly string JumpKeyName = "Jump"; public static readonly string Skill1KeyName = "Primary Skill"; public static readonly string Skill2KeyName = "Secondary Skill"; public static readonly string Skill3KeyName = "Utility Skill"; public static readonly string Skill4KeyName = "Special Skill"; public static readonly int LeftRightKey = 0; public static readonly int ForwardBackwardKey = 1; public static readonly int JumpKey = 4; public static readonly int InteractKey = 5; public static readonly int EquipmentKey = 6; public static readonly int SprintKey = 18; public static readonly int InfoKey = 19; public static readonly int PingKey = 28; public static readonly int Skill1Key = 7; public static readonly int Skill2Key = 8; public static readonly int Skill3Key = 9; public static readonly int Skill4Key = 10; public static readonly int Keys_OpenPantheraPanelActionCode = 1300; public static readonly int Keys_Ability1ActionCode = 1301; public static readonly int Keys_Ability2ActionCode = 1302; public static readonly int Keys_Ability3ActionCode = 1303; public static readonly int Keys_Ability4ActionCode = 1304; public static readonly int Keys_SpellsModeActionCode = 1310; public static readonly string Keys_OpenPantheraPanelActionName = "OpenPantheraPanel"; public static readonly string Keys_OpenPantheraPanelActionDesc = "Open Panthera Panel"; public static readonly KeyCode Keys_OpenPantheraPanelDefaultKey = (KeyCode)112; public static readonly string Keys_Ability1ActionName = "Ability1"; public static readonly string Keys_Ability1ActionDesc = "Ability 1"; public static readonly KeyCode Keys_Ability1DefaultKey = (KeyCode)49; public static readonly int Keys_Ability1DefaultJoystickIdentifierID = 16; public static readonly string Keys_Ability2ActionName = "Ability2"; public static readonly string Keys_Ability2ActionDesc = "Ability 2"; public static readonly KeyCode Keys_Ability2DefaultKey = (KeyCode)50; public static readonly int Keys_Ability2DefaultJoystickIdentifierID = 17; public static readonly string Keys_Ability3ActionName = "Ability3"; public static readonly string Keys_Ability3ActionDesc = "Ability 3"; public static readonly KeyCode Keys_Ability3DefaultKey = (KeyCode)51; public static readonly int Keys_Ability3DefaultJoystickIdentifierID = 18; public static readonly string Keys_Ability4ActionName = "Ability4"; public static readonly string Keys_Ability4ActionDesc = "Ability 4"; public static readonly KeyCode Keys_Ability4DefaultKey = (KeyCode)52; public static readonly int Keys_Ability4DefaultJoystickIdentifierID = 19; public static readonly string Keys_SpellsModeActionName = "Spells"; public static readonly string Keys_SpellsModeActionDesc = "Spell Mode"; public static readonly KeyCode Keys_SpellsModeDefaultKey = (KeyCode)116; public static readonly int Keys_SpellModeDefaultJoystickIdentifierID = 7; public static readonly ScriptPriority Rip_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority Rip_interruptPower = ScriptPriority.MinimumPriority; public static readonly ScriptPriority AirCleave_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority AirCleave_interruptPower = ScriptPriority.MinimumPriority; public static readonly ScriptPriority Leap_priority = ScriptPriority.SmallPriority; public static readonly ScriptPriority Leap_interruptPower = ScriptPriority.VerySmallPriority; public static readonly ScriptPriority MightyRoar_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority MightyRoar_interruptPower = ScriptPriority.HightPriority; public static readonly ScriptPriority Fury_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Fury_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Guardian_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Guardian_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Slash_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Slash_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Detection_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Detection_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Prowl_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Prowl_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Ambition_priority = ScriptPriority.AveragePriority; public static readonly ScriptPriority Ambition_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority AirSlash_priority = ScriptPriority.ExtraPriority; public static readonly ScriptPriority AirSlash_interruptPower = ScriptPriority.HightPriority; public static readonly ScriptPriority FrontShield_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority FrontShield_interruptPower = ScriptPriority.ExtraPriority; public static readonly ScriptPriority ClawsStorm_priority = ScriptPriority.SmallPriority; public static readonly ScriptPriority ClawsStorm_interruptPower = ScriptPriority.SmallPriority; public static readonly ScriptPriority ShieldBash_priority = ScriptPriority.VeryHightPriority; public static readonly ScriptPriority ShieldBash_interruptPower = ScriptPriority.ExtraPriority; public static readonly ScriptPriority ArcaneAnchor_priority = ScriptPriority.ExtraHightPriority; public static readonly ScriptPriority ArcaneAnchor_interruptPower = ScriptPriority.VerySmallPriority; public static readonly ScriptPriority ConvergenceHook_priority = ScriptPriority.ExtraPriority; public static readonly ScriptPriority ConvergenceHook_interruptPower = ScriptPriority.MinimumPriority; public static readonly ScriptPriority PortalSurge_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority PortalSurge_interruptPower = ScriptPriority.MinimumPriority; public static readonly ScriptPriority FeralBite_priority = ScriptPriority.SmallPriority; public static readonly ScriptPriority FeralBite_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Dash_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority Dash_interruptPower = ScriptPriority.MinimumPriority; public static readonly ScriptPriority ZoneHeal_priority = ScriptPriority.MinimumPriority; public static readonly ScriptPriority ZoneHeal_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority SaveMyFriend_priority = ScriptPriority.ExtraPriority; public static readonly ScriptPriority SaveMyFriend_interruptPower = ScriptPriority.ExtraPriority; public static readonly ScriptPriority FireBird_priority = ScriptPriority.ExtraPriority; public static readonly ScriptPriority FireBird_interruptPower = ScriptPriority.AveragePriority; public static readonly ScriptPriority Revive_priority = ScriptPriority.NoPriority; public static readonly ScriptPriority Revive_interruptPower = ScriptPriority.NoPriority; public static readonly int ResetAttributesCost = 2; public static readonly int ResetSkillsTreeCost = 3; public static readonly int MaxPantheraLevel = 1000; public static readonly float Default_MaxHealth = 200f; public static readonly float Default_MaxHealthLevel = 40f; public static readonly float Default_HealthRegen = 2.5f; public static readonly float Default_HealthRegenLevel = 0.4f; public static readonly float Default_MaxFury = 100f; public static readonly float Default_MaxFuryLevel = 15f; public static readonly float Default_MaxFrontShield = 100f; public static readonly float Default_MoveSpeed = 9f; public static readonly float Default_MoveSpeedLevel = 0.025f; public static readonly float Default_Damage = 25f; public static readonly float Default_DamageLevel = 2.5f; public static readonly float Default_AttackSpeed = 1f; public static readonly float Default_AttackSpeedLevel = 0.001f; public static readonly float Default_Critic = 8f; public static readonly float Default_CriticLevel = 0.075f; public static readonly float Default_Dodge = 5f; public static readonly float Default_DodgeLevel = 0.025f; public static readonly float Default_Defense = 15f; public static readonly float Default_DefenseLevel = 0.075f; public static readonly float Default_Mastery = 3f; public static readonly float Default_MasteryLevel = 0.01f; public static readonly float Default_jumpCount = 1f; public static readonly float Default_maxBlock = 10f; public static readonly float Default_blockImmunDuration = 0.3f; public static readonly Color32 ConfigButtonColor = new Color32(byte.MaxValue, byte.MaxValue, (byte)225, byte.MaxValue); public static readonly Color32 ConfigButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 ScaleWindowButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 ExitButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 TabButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 SkillTreeTabButtonHoveredColor = new Color32((byte)150, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 AbilityButtonHoveredColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 SkillButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 KeysBindButtonDefaultColor = new Color32((byte)247, byte.MaxValue, (byte)135, byte.MaxValue); public static readonly Color32 KeysBindButtonConflictColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 KeysBindButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 KeysBindWindowButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 PresetFrameNormalColor = new Color32((byte)197, (byte)104, (byte)42, byte.MaxValue); public static readonly Color32 PresetImageNormalColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 PresetButtonHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 PresetButtonSelectedColor = new Color32((byte)0, byte.MaxValue, (byte)91, byte.MaxValue); public static readonly Color32 OverviewButtonsHoveredColor = new Color32(byte.MaxValue, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 OverviewAttributeButtonsEnabledColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 OverviewAttributeButtonsDisabledColor = new Color32((byte)85, (byte)85, (byte)85, byte.MaxValue); public static readonly Color32 PresetActivateButtonNormalColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 PresetActivateButtonDisabledColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, (byte)75); public static readonly Color32 PresetResetButtonNormalColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 PresetResetButtonDisabledColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, (byte)75); public static readonly Color32 DetectionDefaultColor = new Color32((byte)0, (byte)0, byte.MaxValue, byte.MaxValue); public static readonly Color32 DetectionCharacterDefaultColor = new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue); public static readonly Color32 DetectionCanAffortChestColor = new Color32(byte.MaxValue, (byte)224, (byte)116, byte.MaxValue); public static readonly Color32 PantheraHUDLevelBarColor = new Color32(byte.MaxValue, (byte)125, (byte)0, byte.MaxValue); public static readonly Color32 SkillsNormalSkillColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 SkillsLockedSkillColor = new Color32((byte)120, (byte)50, (byte)50, (byte)150); public static readonly Color32 SkillsNormalFrameColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 SkillsMasteryFrameColor = new Color32((byte)159, (byte)0, (byte)219, byte.MaxValue); public static readonly Color32 SkillsTreeUnlockedAbilityColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 SkillsTreeLockedAbilityColor = new Color32((byte)100, (byte)100, (byte)100, (byte)150); public static readonly Color32 SkillsTreeAbilityHoveredColor = new Color32((byte)0, byte.MaxValue, (byte)0, byte.MaxValue); public static readonly Color32 SkillsTreeLineUnlockedColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 SkillsTreeLinelockedColor = new Color32((byte)68, (byte)68, (byte)68, byte.MaxValue); public static readonly Color32 ComboNormalColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue); public static readonly Color32 ComboLockedColor = new Color32((byte)97, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 ComboCooldownNormalIconColor = new Color32((byte)0, (byte)170, (byte)0, byte.MaxValue); public static readonly Color32 ComboCooldownLoadingIconColor = new Color32((byte)200, (byte)0, (byte)0, byte.MaxValue); public static readonly Color32 DetectionCDFillNormalColor = new Color32((byte)0, (byte)224, (byte)218, (byte)200); public static readonly Color32 DetectionCDFillRechargeColor = new Color32(byte.MaxValue, (byte)27, (byte)0, (byte)200); public static readonly Color32 FrontShieldNormalColor = new Color32((byte)0, (byte)93, (byte)248, (byte)200); public static readonly Color32 FrontShieldCriticColor = new Color32((byte)237, (byte)0, (byte)0, (byte)200); public static readonly Color32 BlockBarColor = new Color32(byte.MaxValue, byte.MaxValue, byte.MaxValue, (byte)230); public static readonly float Model_defaultModelScale = 1.3f; public static readonly string Model_PrefabName = "Panthera"; public static readonly float Model_fadeStartDistance = 5f; public static readonly float Model_fadeEndDistance = 10f; public static readonly float Model_defaultCapsuleRadius = 0.5f; public static readonly float Model_defaultCapsuleHeight = 1.75f; public static readonly float defaultFOV = 60f; public static readonly Vector3 defaultCamPosition = new Vector3(0f, 1f, -13f); public static readonly Vector3 Death_cameraPos = new Vector3(0f, 5f, -50f); public static readonly Vector3 ClawsStorm_cameraPos = new Vector3(0f, 3f, -40f); public static BuffDef CloakBuffDef; public static BuffDef WeakDebuffDef; public static BuffDef RegenBuffDef; public static BuffDef InvincibilityBuffDef; public static BuffDef HiddenInvincibilityBuffDef; public static DotIndex BleedDotIndex; public static DotIndex SuperBleedDotIndex; public static DotIndex BurnDotIndex; public static DotIndex SuperBurnDotIndex; public static readonly float Tracker_maxDistance = 100f; public static readonly float Tracker_maxAngle = 20f; public static readonly float normalMaxAngle = 65f; public static readonly float unsleepDuration = 2.2f; public static ItemDef ItemChange_steak; public static ItemDef ItemChange_magazineIndex; public static ItemDef ItemChange_alienHeadIndex; public static ItemDef ItemChange_bandolierIndex; public static ItemDef ItemChange_shurikenIndex; public static ItemDef ItemChange_squidIndex; public static ItemDef ItemChange_brainstalksIndex; public static ItemDef ItemChange_hardlightAfterburnerIndex; public static ItemDef ItemChange_heresyEssenceIndex; public static ItemDef ItemChange_heresyHooksIndex; public static ItemDef ItemChange_heresyStridesIndex; public static ItemDef ItemChange_heresyVisionsIndex; public static ItemDef ItemChange_brittleCrownIndex; public static ItemDef ItemChange_lightFluxPauldronIndex; public static ItemDef ItemChange_purityIndex; public static ItemDef ItemChange_lysateCellIndex; public static ItemDef ItemChange_transcendanceIndex; public static readonly float ItemChange_magazinePercentCooldownReduction = 0.95f; public static readonly float ItemChange_alienHeadPercentCooldownReduction = 0.85f; public static readonly float ItemChange_hardlightAfterburnerPercentCooldownReduction = 0.66f; public static readonly float ItemChange_lightFluxPauldronPercentCooldownReduction = 0.75f; public static readonly float ItemChange_purityPercentCooldownReduction = 0.8f; public static readonly float ItemChange_lysateCellCooldownReduction = 0.66f; public static readonly float ItemChange_noCooldownTimeRemoved = 0.02f; public static readonly float Death_effectStartTime = 3f; public static readonly float Death_minimumTimeBeforeDestroying = 6f; public static readonly string ShieldOrb_Name = "ShieldOrb"; public static readonly float ShieldOrb_Duration = 1.5f; public static readonly int Rip_SkillID = 1; public static readonly int AirCleave_SkillID = 2; public static readonly int Leap_SkillID = 3; public static readonly int MightyRoar_SkillID = 4; public static readonly int Fury_SkillID = 5; public static readonly int Guardian_SkillID = 6; public static readonly int Slash_SkillID = 7; public static readonly int Prowl_SkillID = 8; public static readonly int Detection_SkillID = 9; public static readonly int Ambition_SkillID = 10; public static readonly int AirSlash_SkillID = 11; public static readonly int FrontShield_SkillID = 12; public static readonly int ClawsStorm_SkillID = 13; public static readonly int ShieldBash_SkillID = 14; public static readonly int ArcaneAnchor_SkillID = 15; public static readonly int ConvergenceHook_SkillID = 16; public static readonly int PortalSurge_SkillID = 17; public static readonly int FeralBite_SkillID = 18; public static readonly int PortalSurge_lunarCost = 15; public static readonly int PortalSurge_requiredIngameLevel = 30; public static readonly float PortalSurge_cooldown = 900f; public static readonly float PortalSurge_failCoolDown = 5f; public static readonly float PortalSurge_duration = 9.6f; public static readonly float PortalSurge_endEffectTime = 7.9f; public static readonly float PortalSurge_FailTime = 1.5f; public static readonly float PortalSurge_detectionRadius = 1f; public static readonly float PortalSurge_damage = 1000f; public static readonly float PortalSurge_teleporterChargeTime = 600f; public static readonly float PortalSurge_teleporterRadius = 500f; public static readonly float PortalSurge_addCreditsTime = 0.3f; public static readonly float PortalSurge_initialCredit = 800f; public static readonly string PortalSurge_megaBossAddedName = " PtraMegaBoss"; public static readonly float PortalSurge_bossSizeMultiplier = 2f; public static readonly float PortalSurge_bossStatsMultiplier = 3f; public static readonly string Rip_hitboxName = "Rip"; public static readonly float Rip_cooldown = 0.3f; public static readonly DamageType Rip_damageType = (DamageType)0; public static readonly float Rip_minimumAimTime = 1.5f; public static readonly float Rip_procCoefficient = 1f; public static readonly float Rip_dashForce = 10f; public static readonly float Rip_pushForce = 5f; public static readonly Vector3 Rip_bonusForce = Vector3.zero; public static readonly float Rip_atkDamageMultiplier = 1.5f; public static readonly float Rip_atkDuration = 0.6f; public static readonly float Rip_attackTime = 0.2f; public static readonly int Rip_furyAdded = 3; public static readonly float Rip_enemiesForwardScanDistance = 1.7f; public static readonly float Rip_enemiesScanRadius = 6f; public static readonly float Rip_hideCrosshairTime = 3f; public static readonly string AirCleave_leftProjectileName = "AirCleaveLeftProjectile"; public static readonly string AirCleave_rightProjectileName = "AirCleaveRightProjectile"; public static readonly string AirCleave_leftFireProjectileName = "FireAirCleaveLeftProjectile"; public static readonly string AirCleave_rightFireProjectileName = "FireAirCleaveRightProjectile"; public static readonly float AirCleave_cooldown = 0.3f; public static readonly float AirCleave_attackDuration = 0.8f; public static readonly float AirCleave_attackTime = 0.25f; public static readonly float AirCleave_attackDamageMultiplier = 1f; public static readonly float AirCleave_procCoefficient = 0.8f; public static readonly float AirCleave_projectileSpeed = 130f; public static readonly float AirCleave_projectileForce = 15f; public static readonly float AirCleave_pushForce = 10f; public static readonly float AirCleave_minimumAimTime = 1f; public static readonly float AirCleave_furyAdded = 4f; public static readonly float AirCleave_projScale = 0.5f; public static readonly float Leap_cooldown = 8f; public static readonly float Leap_airControl = 0.1f; public static readonly float Leap_maxMoveSpeed = 200f; public static readonly float Leap_speedMultiplier = 2.5f; public static readonly float Leap_minimumYTarget = 10f; public static readonly float Leap_upwardVelocity = 30f; public static readonly float Leap_targetSpeedMultiplier = 4f; public static readonly float Leap_naturalDown = 0.5f; public static readonly float Leap_minimumDuration = 0.7f; public static readonly float Leap_duration = 3f; public static readonly float Leap_leapStopDistance = 3f; public static readonly float Leap_leapScanRadius = 5f; public static readonly float Leap_Fov = 100f; public static readonly float MightyRoar_cooldown = 20f; public static readonly float MightyRoar_radius = 15f; public static readonly float MightyRoar_damage = 0.8f; public static readonly int MightyRoar_damageCount = 3; public static readonly float MightyRoar_damageTime = 0.2f; public static readonly float MightyRoar_stunDuration = 3f; public static readonly float MightyRoar_duration = 0.7f; public static readonly float MightyRoar_knockbackPowerMin = 2f; public static readonly float MightyRoar_knockbackPowerMax = 7f; public static readonly int MightyRoar_furyPointAdded = 1; public static readonly float Fury_cooldown = 30f; public static readonly float Fury_duration = 0.25f; public static readonly float Fury_furyPointsDecreaseTime = 0.05f; public static readonly float Fury_increasedAttackSpeed = 0.5f; public static readonly float Fury_increasedMoveSpeed = 0.5f; public static readonly float Guardian_cooldown = 8f; public static readonly float Guardian_duration = 0.25f; public static readonly float Guardian_increasedArmor = 0.75f; public static readonly float Guardian_increasedHealthRegen = 1f; public static readonly float Guardian_increasedMoveSpeedCoef = 1.15f; public static readonly float Guardian_barrierDecayRatePercent = 0.66f; public static readonly float Guardian_increasedSize = 1.35f; public static readonly float Guardian_masteryHealPercent = 0.15f; public static readonly int Slash_cooldown = 5; public static readonly float Slash_duration = 0.8f; public static readonly float Slash_radius = 8f; public static readonly float Slash_damageMultiplier = 2f; public static readonly float Slash_knockbackPowerMin = 5f; public static readonly float Slash_knockbackPowerMax = 15f; public static readonly float Slash_procCoefficient = 0.7f; public static readonly float Slash_BleedDuration = 7f; public static readonly int Slash_furyAdded = 2; public static readonly float Prowl_coolDown = 8f; public static readonly float Prowl_unStealDelay = 0.1f; public static readonly float Prowl_moveSpeedMultiplier = 0.6f; public static readonly float Prowl_skillDuration = 0.3f; public static readonly float Detection_cooldown = 2f; public static readonly float Detection_maxTime = 8f; public static readonly float Detection_scanRate = 0.5f; public static readonly float Detection_skillMinDuration = 0.3f; public static readonly float Detection_skillMaxDuration = 2.5f; public static readonly int Detection_maxScanPerFrame = 100; public static readonly int Detection_layerIndex = 31; public static readonly float Ambition_buffDuration = 30f; public static readonly float Ambition_cooldown = 300f; public static readonly float Ambition_duration = 0.5f; public static readonly string AirSlash_projectileName = "AirSlashProjectile"; public static readonly float AirSlash_cooldown = 7f; public static readonly float AirSlash_comboMaxTime = 5f; public static readonly float AirSlash_atkDamageMultiplier = 2f; public static readonly float AirSlash_procCoefficient = 1.5f; public static readonly float AirSlash_furyAdded = 2f; public static readonly float AirSlash_attackDuration = 0.5f; public static readonly float AirSlash_attackTime = 0.25f; public static readonly float AirSlash_projScale = 0.5f; public static readonly float AirSlash_projectileSpeed = 50f; public static readonly float AirSlash_projectileForce = 15f; public static readonly float AirSlash_minimumAimTime = 0.8f; public static readonly float AirSlash_hideCrosshairTime = 1.5f; public static readonly string FrontShield_worldHitboxName = "FrontShieldWorldHitBox"; public static readonly float FrontShield_cooldown = 0.1f; public static readonly float FrontShield_skillDuration = 0.5f; public static readonly float FrontShield_defaultScale = 0.7f; public static readonly float FrontShield_maxShieldHealthPercent = 0.33f; public static readonly float FrontShield_rechargeDelayAfterDamage = 3f; public static readonly float FrontShield_rechargeDelayAfterDestroyed = 5f; public static readonly float FrontShield_rechargeRatePercent = 0.1f; public static readonly float FrontShield_rechargeRatetime = 0.1f; public static readonly float FrontShield_moveSpeedMultiplier = 0.5f; public static readonly float FrontShield_addedforwardMultiplier = 1.1f; public static readonly float FrontShield_addedUpPosition = 0.5f; public static readonly float FrontShield_criticColorPercent = 0.3f; public static readonly string ClawsStorm_hitboxName = "ClawStorm"; public static readonly float ClawsStorm_cooldown = 1f; public static readonly int ClawsStorm_requiredFury = 3; public static readonly int ClawsStorm_continuousConsumedFury = 1; public static readonly float ClawsStorm_continuousConsumeTime = 1f; public static readonly float ClawsStorm_destroyFXDelay = 0.5f; public static readonly DamageType ClawsStorm_damageType = (DamageType)0; public static readonly float ClawsStorm_procCoefficient = 0.2f; public static readonly float ClawsStorm_pushForce = 1f; public static readonly Vector3 ClawsStorm_bonusForce = Vector3.zero; public static readonly float ClawsStorm_damageMultiplier = 0.5f; public static readonly float ClawsStorm_baseDuration = 0.5f; public static readonly float ClawsStorm_dashSpeedMultiplicator = 18f; public static readonly float ClawsStorm_maxMoveSpeed = 38f; public static readonly float ClawsStorm_minMoveSpeed = 17f; public static readonly float clawsStorm_damageMultiplier = 0.3f; public static readonly float ClawsStorm_firedDelay = 0.14f; public static readonly float ShieldBash_grabScanRadius = 8f; public static readonly float ShieldBash_grabDistanceMultiplier = 2.5f; public static readonly float ShieldBash_moveSpeedMultiplier = 150f; public static readonly float ShieldBash_cooldown = 4f; public static readonly float ShieldBash_skillDuration = 0.1f; public static readonly float ShieldBash_effectDuration = 0.33f; public static readonly float ShieldBash_pushMinMultiplier = 1f; public static readonly float ShieldBash_pushMaxMultiplier = 10f; public static readonly float ShieldBash_upMinMultiplier = 1f; public static readonly float ShieldBash_upMaxMultiplier = 5f; public static readonly float ShieldBash_damageMultiplier = 3.5f; public static readonly float ShieldBash_procCoefficient = 1.5f; public static readonly float ShieldBash_stunDuration = 2f; public static readonly float ShieldBash_dashDuration = 0.2f; public static readonly float ArcaneAnchor_cooldown = 3f; public static readonly float ArcaneAnchor_frontShieldCooldown = 2f; public static readonly float ArcaneAnchor_deployedScale = 4f; public static readonly float ArcaneAnchor_deployedScaleSpeed = 0.05f; public static readonly float ArcaneAnchor_skillDuration = 0.3f; public static readonly float ArcaneAnchor_MaxDistance = 75f; public static readonly float ConvergenceHook_cooldown = 5f; public static readonly float ConvergenceHook_skillDuration = 0.5f; public static readonly float ConvergenceHook_stunDuration = 2f; public static readonly float ConvergenceHook_compDuration = 5f; public static readonly float ConvergenceHook_hookSpeed = 2.5f; public static readonly float ConvergenceHook_StopDistance = 1f; public static readonly float FeralBite_cooldown = 1f; public static readonly float FeralBite_skillDuration = 0.75f; public static readonly float FeralBite_damagesMultiplier = 2.5f; public static readonly float FeralBite_healMultiplier = 0.3f; public static readonly int FeralBite_furyAdded = 4; public static readonly float FeralBite_procCoefficient = 1.5f; public static readonly int UntamedSpirit_AbilityID = -1; public static readonly int GodPower_AbilityID = -2; public static readonly int PortalSurge_AbilityID = -3; public static readonly int FelineSkills_AbilityID = 1; public static readonly int SharpenedFangs_AbilityID = 2; public static readonly int Fury_AbilityID = 3; public static readonly int EnchantedFur_AbilityID = 4; public static readonly int Guardian_AbilityID = 5; public static readonly int WindWalker_AbilityID = 6; public static readonly int Predator_AbilityID = 7; public static readonly int Prowl_AbilityID = 8; public static readonly int Detection_AbilityID = 9; public static readonly int Ambition_AbilityID = 10; public static readonly int AirSlash_AbilityID = 11; public static readonly int FrontShield_AbilityID = 12; public static readonly int ClawsStorm_AbilityID = 13; public static readonly int SwiftMoves_AbilityID = 14; public static readonly int GhostRip_AbilityID = 15; public static readonly int ImprovedShield_AbilityID = 16; public static readonly int ShieldBash_AbilityID = 17; public static readonly int GoldenRip_AbilityID = 18; public static readonly int Tornado_AbilityID = 19; public static readonly int ArcaneAnchor_AbilityID = 20; public static readonly int ConvergenceHook_AbilityID = 21; public static readonly int MassiveHook_AbilityID = 22; public static readonly int SixthSense_AbilityID = 23; public static readonly int RelentlessStalker_AbilityID = 24; public static readonly int RoarOfResilience_AbilityID = 25; public static readonly int ClawsSharpening_AbilityID = 26; public static readonly int GoldenStart_AbilityID = 27; public static readonly int StealthStrike_AbilityID = 28; public static readonly int CryoLeap_AbilityID = 29; public static readonly int ShadowStalker_AbilityID = 30; public static readonly int WardensVitality_AbilityID = 31; public static readonly int SavageRevitalization_AbilityID = 32; public static readonly int InnateProtection_AbilityID = 33; public static readonly int Furrify_AbilityID = 34; public static readonly int Concentration_AbilityID = 35; public static readonly int SuperiorFlair_AbilityID = 36; public static readonly int EternalFury_AbilityID = 37; public static readonly int InnerRage_AbilityID = 38; public static readonly int InfernalSwipe_AbilityID = 39; public static readonly int HeatWave_AbilityID = 40; public static readonly int KineticResorption_AbilityID = 41; public static readonly int ExtendedProtection_AbilityID = 42; public static readonly int UntamedSpitit_unlockLevel = 1; public static readonly int GodPower_unlockLevel = 15; public static readonly int PortalSurge_unlockLevel = 30; public static readonly int SharpenedFangs_maxLevel = 3; public static readonly float SharpenedFangs_damagePercent1 = 0.2f; public static readonly float SharpenedFangs_damagePercent2 = 0.4f; public static readonly float SharpenedFangs_damagePercent3 = 0.6f; public static readonly int Fury_maxLevel = 1; public static readonly int EnchantedFur_maxLevel = 3; public static readonly float EnchantedFur_percent1 = 0.05f; public static readonly float EnchantedFur_percent2 = 0.1f; public static readonly float EnchantedFur_percent3 = 0.15f; public static readonly int Guardian_maxLevel = 1; public static readonly int WindWalker_maxLevel = 1; public static readonly int Predator_maxLevel = 1; public static readonly float Predator_steakHealthAdded = 25f; public static readonly float Prowl_outOfCombatTime = 5f; public static readonly int Prowl_maxLevel = 1; public static readonly int Detection_maxLevel = 1; public static readonly int Ambition_maxLevel = 1; public static readonly int AirSlash_maxLevel = 1; public static readonly int FrontShield_maxLevel = 1; public static readonly int ClawsStorm_maxLevel = 1; public static readonly int SwiftMoves_maxLevel = 3; public static readonly float SwiftMoves_percent1 = 0.25f; public static readonly float SwiftMoves_percent2 = 0.5f; public static readonly float SwiftMoves_percent3 = 0.75f; public static readonly int GhostRip_maxLevel = 1; public static readonly float GhostRip_cooldown = 0.3f; public static readonly float GhostRip_damageMultiplier = 1.5f; public static readonly float GhostRip_critMultiplier = 2f; public static readonly float GhostRip_stunDuration = 3.5f; public static readonly int GhostRip_furyAdded = 4; public static readonly int ImprovedShield_maxLevel = 3; public static readonly float ImprovedShield_addedPercent1 = 0.01f; public static readonly float ImprovedShield_addedPercent2 = 0.02f; public static readonly float ImprovedShield_addedPercent3 = 0.03f; public static readonly float ImprovedShield_RemovedRechargeDelay1 = 0.5f; public static readonly float ImprovedShield_RemovedRechargeDelay2 = 1f; public static readonly float ImprovedShield_RemovedRechargeDelay3 = 1.5f; public static readonly int ShieldBash_maxLevel = 1; public static readonly int GoldenRip_maxLevel = 3; public static readonly int GoldenRip_addedCoin1 = 1; public static readonly int GoldenRip_addedCoin2 = 2; public static readonly int GoldenRip_addedCoin3 = 3; public static readonly float GoldenRip_cooldown = 0.3f; public static readonly float GoldenRip_DamageMultiplier = 1.5f; public static readonly int GoldenRip_furyAdded = 2; public static readonly int Tornado_maxLevel = 3; public static readonly float Tornado_damagePercent1 = 0.33f; public static readonly float Tornado_damagePercent2 = 0.66f; public static readonly float Tornado_damagePercent3 = 1f; public static readonly float Tornado_resistPercent1 = 0.25f; public static readonly float Tornado_resistPercent2 = 0.5f; public static readonly float Tornado_resistPercent3 = 0.75f; public static readonly int ArcaneAnchor_maxLevel = 1; public static readonly int ConvergenceHook_maxLevel = 1; public static readonly int MassiveHook_maxLevel = 1; public static readonly int SixthSense_maxLevel = 1; public static readonly int RelentlessStalker_maxLevel = 1; public static readonly int RelentlessStalker_CooldownReduction = 5; public static readonly int RoarOfResilience_maxLevel = 1; public static readonly int ClawsSharpening_maxLevel = 1; public static readonly int GoldenStart_maxLevel = 1; public static readonly int GoldenStart_addedGold = 25; public static readonly int StealthStrike_maxLevel = 1; public static readonly int CryoLeap_maxLevel = 3; public static readonly float CryoLeap_duration1 = 1f; public static readonly float CryoLeap_duration2 = 2f; public static readonly float CryoLeap_duration3 = 3f; public static readonly int ShadowStalker_maxLevel = 2; public static readonly float ShadowStalker_duration1 = 1f; public static readonly float ShadowStalker_duration2 = 2f; public static readonly int WardensVitality_maxLevel = 3; public static readonly float WardensVitality_maxHealthPercent1 = 1.1f; public static readonly float WardensVitality_maxHealthPercent2 = 1.2f; public static readonly float WardensVitality_maxHealthPercent3 = 1.3f; public static readonly int WardensVitality_BlockAdded1 = 1; public static readonly int WardensVitality_BlockAdded2 = 2; public static readonly int WardensVitality_BlockAdded3 = 3; public static readonly int SavageRevitalization_maxLevel = 1; public static readonly int SavageRevitalization_addedStack = 5; public static readonly float SavageRevitalization_buffTime = 5f; public static readonly float SavageRevitalization_MasteryBuffTime = 10f; public static readonly int InnateProtection_maxLevel = 2; public static readonly float InnateProtection_percent1 = 0.5f; public static readonly float InnateProtection_percent2 = 0.25f; public static readonly int Furrify_maxLevel = 1; public static readonly float Furrify_percent = 0.1f; public static readonly int Concentration_maxLevel = 1; public static readonly int SuperiorFlair_maxLevel = 5; public static readonly float SuperiorFlair_percent1 = 12f; public static readonly float SuperiorFlair_percent2 = 16f; public static readonly float SuperiorFlair_percent3 = 20f; public static readonly float SuperiorFlair_percent4 = 24f; public static readonly float SuperiorFlair_percent5 = 28f; public static readonly int EternalFury_maxLevel = 3; public static readonly float EternalFury_reductionPercent1 = 0.33f; public static readonly float EternalFury_reductionPercent2 = 0.66f; public static readonly float EternalFury_reductionPercent3 = 1f; public static readonly float EternalFury_startPercent1 = 0.2f; public static readonly float EternalFury_startPercent2 = 0.4f; public static readonly float EternalFury_startPercent3 = 0.6f; public static readonly int InnerRage_maxLevel = 4; public static readonly float InnerRage_addedFuryPercent1 = 0.03f; public static readonly float InnerRage_addedFuryPercent2 = 0.6f; public static readonly float InnerRage_addedFuryPercent3 = 0.9f; public static readonly float InnerRage_addedFuryPercent4 = 0.12f; public static readonly float InnerRage_enrageTime = 3f; public static readonly float InnerRage_enrageTimeFuryMode = 5f; public static readonly int InfernalSwipe_maxLevel = 2; public static readonly float InfernalSwipe_damagePercent1 = 0.25f; public static readonly float InfernalSwipe_damagePercent2 = 0.5f; public static readonly float InfernalSwipe_ingnitionChance1 = 0.15f; public static readonly float InfernalSwipe_ingnitionChance2 = 0.3f; public static readonly float InfernalSwipe_procCoefficient = 1.5f; public static readonly int HeatWave_maxLevel = 1; public static readonly int KineticResorption_maxLevel = 3; public static readonly float KineticResorption_regenPercent1 = 0.1f; public static readonly float KineticResorption_regenPercent2 = 0.2f; public static readonly float KineticResorption_regenPercent3 = 0.3f; public static readonly float KineticResorption_orbsCreationDelay = 1f; public static readonly int ExtendedProtection_maxLevel = 4; public static readonly float ExtendedProtection_percent1 = 0.1f; public static readonly float ExtendedProtection_percent2 = 0.2f; public static readonly float ExtendedProtection_percent3 = 0.3f; public static readonly float ExtendedProtection_percent4 = 0.4f; public static readonly int Rip_CombosID = 1; public static readonly int Slash_CombosID = 2; public static readonly int Leap_CombosID = 3; public static readonly int MightyRoar_CombosID = 4; public static readonly int Fury_CombosID = 5; public static readonly int Guardian_CombosID = 6; public static readonly int Prowl_CombosID = 7; public static readonly int Detection_CombosID = 8; public static readonly int AirSlash_CombosID = 9; public static readonly int FrontShield_CombosID = 10; public static readonly int ClawsStorm_CombosID = 11; public static readonly int ShieldBash_CombosID = 12; public static readonly int ArcaneAnchor_CombosID = 13; public static readonly int ConvergenceHook_CombosID = 14; public static readonly int MassiveHook_CombosID = 15; public static readonly int Ambition_CombosID = 16; public static readonly int PortalSurge_CombosID = 17; public static readonly int FeralBite_CombosID = 18; public static float Combos_maxTime = 3f; public static float Combos_failTimeFrame = 2.5f; public static readonly float Eclipse_duration = 10f; public static readonly int Cupidity_maxStacks = 50; public static readonly float Cupidity_goldMultiplier = 0.05f; public static readonly float Cupidity_decreaseTime = 1f; public static readonly int Tenacity_maxStacks = 15; public static readonly float Tenacity_duration = 5f; public static readonly float Tenacity_blockAdded = 0.02f; public static readonly int Razors_maxStacks = 10; public static readonly float MortalMirage_duration = 4f; public static readonly float BleedOut_duration = 5f; public static readonly float BleedOut_damage = 0.1f; public static readonly float BleedOut_damageTime = 0.3f; public static readonly float FrozenPaws_duration = 1f; public static readonly float FrozenPaws_minGroundDistance = 5f; public static readonly float Regeneration_duration = 10f; public static readonly int Regeneration_maxStack = 15; public static readonly float Regeneration_percentHeal = 0.01f; public static readonly float Regeneration_time = 1f; public static readonly float Resilience_duration = 10f; public static readonly int Resilience_maxStack = 15; public static readonly float Resilience_percentArmor = 0.05f; public static readonly float Enrage_duration = 5f; public static readonly int Enrage_maxStack = 20; public static readonly float Enrage_furyPercent = 0.01f; public static readonly float Ignition_duration = 10f; public static readonly float Ignition_damage = 0.5f; public static readonly float Ignition_damageTime = 1f; } } namespace Panthera.Utils { public class Animation { public static void PlayAnimation(PantheraObj ptraObj, string animName, float crossFadeTime = 0f, bool transmit = true) { if ((Object)(object)ptraObj == (Object)null) { return; } Animator modelAnimator = ptraObj.modelAnimator; if (!((Object)(object)modelAnimator == (Object)null)) { modelAnimator.speed = 1f; modelAnimator.Update(0f); if (crossFadeTime > 0f) { modelAnimator.CrossFadeInFixedTime(animName, crossFadeTime, -1, 0f); } else { modelAnimator.PlayInFixedTime(animName, -1, 0f); } if (RoR2Application.isInMultiPlayer && transmit) { NetMessageExtensions.Send((INetMessage)(object)new ServerPlayAnimation(((Component)ptraObj).gameObject, animName, crossFadeTime), (NetworkDestination)2); } } } public static void SetBoolean(PantheraObj ptraObj, string paramName, bool setValue, bool transmit = true) { if ((Object)(object)ptraObj == (Object)null) { return; } Animator modelAnimator = ptraObj.modelAnimator; if (!((Object)(object)modelAnimator == (Object)null)) { modelAnimator.SetBool(paramName, setValue); if (RoR2Application.isInMultiPlayer && transmit) { NetMessageExtensions.Send((INetMessage)(object)new ServerSetAnimatorBoolean(((Component)ptraObj).gameObject, paramName, setValue), (NetworkDestination)2); } } } public static void SetFloat(PantheraObj ptraObj, string paramName, float value1 = 0f, float value2 = 0f, float value3 = 0f, bool transmit = true) { if ((Object)(object)ptraObj == (Object)null) { return; } Animator modelAnimator = ptraObj.modelAnimator; if (!((Object)(object)modelAnimator == (Object)null)) { modelAnimator.SetFloat(paramName, value1, value2, value3); if (RoR2Application.isInMultiPlayer && transmit) { NetMessageExtensions.Send((INetMessage)(object)new ServerSetAnimatorFloat(((Component)ptraObj).gameObject, paramName, value1, value2, value3), (NetworkDestination)2); } } } } public class CamHelper { public enum AimType { Standard, Death, ClawsStorm, Leap } public static void ApplyCameraType(AimType type, PantheraObj ptraObj, float transitionDuration = 0.3f) { //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0021: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_0043: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: 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_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00fd: 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_0104: 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_0129: 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_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0142: Unknown result type (might be due to invalid IL or missing references) //IL_0147: 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_016d: Unknown result type (might be due to invalid IL or missing references) //IL_016f: Unknown result type (might be due to invalid IL or missing references) //IL_0174: Unknown result type (might be due to invalid IL or missing references) switch (type) { case AimType.Standard: { Vector3 defaultCamPosition = PantheraConfig.defaultCamPosition; Vector3 value = default(Vector3); ((Vector3)(ref value))..ctor(defaultCamPosition.x, defaultCamPosition.y, defaultCamPosition.z * ptraObj.actualModelScale); CharacterCameraParamsData data = ptraObj.pantheraCamParam.cameraParams.data; data.idealLocalCameraPos.value = value; data.idealLocalCameraPos.alpha = 1f; ptraObj.pantheraCamParam.cameraParams.data = data; if ((Object)(object)ptraObj.cameraRigController != (Object)null) { ptraObj.cameraRigController.baseFov = PantheraConfig.defaultFOV; } ApplyParam(data, ptraObj, transitionDuration); break; } case AimType.Death: { CharacterCameraParamsData currentCameraParamsData2 = ptraObj.pantheraCamParam.currentCameraParamsData; ref Vector3 value3 = ref currentCameraParamsData2.idealLocalCameraPos.value; value3 += PantheraConfig.Death_cameraPos; currentCameraParamsData2.idealLocalCameraPos.alpha = 1f; ptraObj.pantheraCamParam.cameraParams.data = currentCameraParamsData2; ApplyParam(currentCameraParamsData2, ptraObj, transitionDuration); break; } case AimType.ClawsStorm: { CharacterCameraParamsData currentCameraParamsData = ptraObj.pantheraCamParam.currentCameraParamsData; ref Vector3 value2 = ref currentCameraParamsData.idealLocalCameraPos.value; value2 += PantheraConfig.ClawsStorm_cameraPos; currentCameraParamsData.idealLocalCameraPos.alpha = 1f; ptraObj.pantheraCamParam.cameraParams.data = currentCameraParamsData; ApplyParam(currentCameraParamsData, ptraObj, transitionDuration); break; } case AimType.Leap: if ((Object)(object)ptraObj.cameraRigController != (Object)null) { ptraObj.cameraRigController.baseFov = PantheraConfig.Leap_Fov; } break; } } public static void ApplyParam(CharacterCameraParamsData data, PantheraObj ptraObj, float transitionDuration) { //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)ptraObj.pantheraCamParam == (Object)null)) { CameraParamsOverrideRequest val = default(CameraParamsOverrideRequest); val.cameraParamsData = data; val.priority = 1f; ptraObj.pantheraCamParam.RemoveParamsOverride(ptraObj.lastCamHandle, 0.2f); ptraObj.lastCamHandle = ptraObj.pantheraCamParam.AddParamsOverride(val, transitionDuration); } } } public class ColorHelper { public static string EnergyColor = "F9FF00"; public static string PowerColor = "6F00EC"; public static string FuryColor = "FF4A00"; public static string ShieldColor = "B0E0E6"; public static string BarrierColor = "FFE800"; public static string BlockColor = "805500"; public static string ComboPointColor = "AFAF00"; public static string StaminaColor = "87CEEB"; public static string BuffColor = "00FFF0"; public static string DeBuffColor = "38005F"; public static string MasteryColor = "9F00DB"; public static string Green = "50C878"; public static string Red = "FF0000"; public static string Cyan = "30F9FF"; public static string Blue = "1D59FE"; public static string Yellow = "FFEA00"; public static string SetEnergy(string text) { return $"<color=#{EnergyColor}>{text}</color>"; } public static string SetPower(string text) { return $"<color=#{PowerColor}>{text}</color>"; } public static string SetFury(string text) { return $"<color=#{FuryColor}>{text}</color>"; } public static string SetShield(string text) { return $"<color=#{ShieldColor}>{text}</color>"; } public static string SetBarrier(string text) { return $"<color=#{BarrierColor}>{text}</color>"; } public static string SetBlock(string text) { return $"<color=#{BlockColor}>{text}</color>"; } public static string SetComboPoint(string text) { return $"<color=#{ComboPointColor}>{text}</color>"; } public static string SetStamina(string text) { return $"<color=#{StaminaColor}>{text}</color>"; } public static string SetBuff(string text) { return $"<color=#{BuffColor}>{text}</color>"; } public static string SetDeBuff(string text) { return $"<color=#{DeBuffColor}>{text}</color>"; } public static string SetMastery(string text) { return $"<color=#{MasteryColor}>{text}</color>"; } public static string SetGreen(string text) { return $"<color=#{Green}>{text}</color>"; } public static string SetRed(string text) { return $"<color=#{Red}>{text}</color>"; } public static string SetCyan(string text) { return $"<color=#{Cyan}>{text}</color>"; } public static string SetBlue(string text) { return $"<color=#{Blue}>{text}</color>"; } public static string SetYellow(string text) { return $"<color=#{Yellow}>{text}</color>"; } public static string SetDamage(string text) { return $"<style=cIsDamage>{text}</style>"; } public static string SetUtility(string text) { return $"<style=cIsUtility>{text}</style>"; } public static string SetHeal(string text) { return $"<style=cIsHealing>{text}</style>"; } } public class ContentPacks : IContentPackProvider { [CompilerGenerated] private sealed class <FinalizeAsync>d__7 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public FinalizeAsyncArgs args; public ContentPacks <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <FinalizeAsync>d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <GenerateContentPackAsync>d__6 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GetContentPackAsyncArgs args; public ContentPacks <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <GenerateContentPackAsync>d__6(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; ContentPack.Copy(<>4__this.contentPack, args.output); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } [CompilerGenerated] private sealed class <LoadStaticContentAsync>d__5 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public LoadStaticContentAsyncArgs args; public ContentPacks <>4__this; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <LoadStaticContentAsync>d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <>1__state = -2; } private bool MoveNext() { if (<>1__state != 0) { return false; } <>1__state = -1; <>4__this.contentPack.identifier = <>4__this.identifier; <>4__this.contentPack.bodyPrefabs.Add(Prefab.bodyPrefabs.ToArray()); <>4__this.contentPack.survivorDefs.Add(Prefab.SurvivorDefinitions.ToArray()); <>4__this.contentPack.projectilePrefabs.Add(PantheraAssets.projectilePrefabs.ToArray()); <>4__this.contentPack.skillFamilies.Add(Prefab.skillFamilies.ToArray()); <>4__this.contentPack.skillDefs.Add(Prefab.skillDefs.ToArray()); <>4__this.contentPack.entityStateTypes.Add(Prefab.entityStates.ToArray()); <>4__this.contentPack.buffDefs.Add(Buff.buffDefs.ToArray()); <>4__this.contentPack.effectDefs.Add(PantheraAssets.effectDefs.ToArray()); <>4__this.contentPack.masterPrefabs.Add(Prefab.masterPrefabs.ToArray()); args.ReportProgress(1f); return false; } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public ContentPack contentPack = new ContentPack(); public string identifier => "com.Dexy.Panthera"; public void Initialize() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown ContentManager.collectContentPackProviders += new CollectContentPackProvidersDelegate(ContentManager_collectContentPackProviders); } private void ContentManager_collectContentPackProviders(AddContentPackProviderDelegate addContentPackProvider) { addContentPackProvider.Invoke((IContentPackProvider)(object)this); } [IteratorStateMachine(typeof(<LoadStaticContentAsync>d__5))] public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <LoadStaticContentAsync>d__5(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<GenerateContentPackAsync>d__6))] public IEnumerator GenerateContentPackAsync(GetContentPackAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <GenerateContentPackAsync>d__6(0) { <>4__this = this, args = args }; } [IteratorStateMachine(typeof(<FinalizeAsync>d__7))] public IEnumerator FinalizeAsync(FinalizeAsyncArgs args) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <FinalizeAsync>d__7(0) { <>4__this = this, args = args }; } } public class DebugInfo : MonoBehaviour { public static DebugInfo DebugInfoComp; private GameObject debugInfoObj; private Dictionary<string, TextMeshProUGUI> infosList = new Dictionary<string, TextMeshProUGUI>(); public void Start() { if (NetworkClient.active) { debugInfoObj = Object.Instantiate<GameObject>(PantheraAssets.debugInfo, Panthera.PantheraHUD.origMainContainer.transform); } } public static void addText(string key, string text) { if (!((Object)(object)DebugInfoComp == (Object)null) && !((Object)(object)DebugInfoComp.debugInfoObj == (Object)null)) { if (DebugInfoComp.infosList.ContainsKey(key)) { ((TMP_Text)DebugInfoComp.infosList[key]).text = text; return; } GameObject val = Object.Instantiate<GameObject>(PantheraAssets.debugInfoText, DebugInfoComp.debugInfoObj.transform); TextMeshProUGUI component = val.GetComponent<TextMeshProUGUI>(); ((TMP_Text)component).text = text; DebugInfoComp.infosList.Add(key, component); } } } public class Functions { public static T CopyComponent<T>(T original, GameObject destination) where T : Component { Type type = ((object)original).GetType(); Component val = destination.AddComponent(type); FieldInfo[] fields = type.GetFields(); FieldInfo[] array = fields; foreach (FieldInfo fieldInfo in array) { fieldInfo.SetValue(val, fieldInfo.GetValue(original)); } return (T)(object)((val is T) ? val : null); } public static void CreateHitbox(GameObject prefab, Transform hitboxTransform, string hitboxName) { HitBoxGroup val = prefab.AddComponent<HitBoxGroup>(); HitBox val2 = ((Component)hitboxTransform).gameObject.AddComponent<HitBox>(); ((Component)hitboxTransform).gameObject.layer = LayerIndex.projectile.intVal; val.hitBoxes = (HitBox[])(object)new HitBox[1] { val2 }; val.groupName = hitboxName; } public static OverlapAttack CreateOverlapAttack(GameObject attacker, float damage, bool isCrit, float procCoefficient, string hitBoxName, Vector3 forceVector = default(Vector3), float pushAwayForce = 1f, GameObject hitEffect = null) { //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_0051: Expected O, but got Unknown //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_0058: 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_0075: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) HitBoxGroup hitBoxGroup = null; Transform modelTransform = attacker.GetComponent<ModelLocator>().modelTransform; if (Object.op_Implicit((Object)(object)modelTransform)) { hitBoxGroup = Array.Find(((Component)modelTransform).GetComponents<HitBoxGroup>(), (HitBoxGroup element) => element.groupName == hitBoxName); } CharacterBody component = attacker.GetComponent<CharacterBody>(); OverlapAttack val = new OverlapAttack(); val.damageType = DamageTypeCombo.op_Implicit(PantheraConfig.Rip_damageType); val.attacker = attacker; val.inflictor = attacker; val.teamIndex = TeamComponent.GetObjectTeam(attacker); val.damage = damage; val.procCoefficient = procCoefficient; val.hitEffectPrefab = hitEffect; val.forceVector = forceVector; val.pushAwayForce = pushAwayForce; val.hitBoxGroup = hitBoxGroup; val.isCrit = isCrit; return val; } public static BlastAttack CreateBlastAttack(GameObject attacker, float damage, FalloffModel falloffModel, bool isCrit, float procCoefficient, Vector3 position, float radius, Vector3 forceVector = default(Vector3), float pushAwayForce = 1f) { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Expected O, but got Unknown //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0049: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = attacker.GetComponent<CharacterBody>(); BlastAttack val = new BlastAttack(); val.damageType = DamageTypeCombo.op_Implicit(PantheraConfig.Rip_damageType); val.attacker = attacker; val.inflictor = attacker; val.position = position; val.teamIndex = TeamComponent.GetObjectTeam(attacker); val.baseDamage = damage; val.falloffModel = falloffModel; val.procCoefficient = procCoefficient; val.bonusForce = forceVector; val.baseForce = pushAwayForce; val.radius = radius; val.crit = isCrit; return val; } public static DamageInfo CreateDotDamageInfo(PantheraBuff buff, GameObject inflictor, GameObject victime, float damage = 0f, DamageColorIndex damageColorIndex = 0) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Unknown result type (might be due to invalid IL or missing references) //IL_0056: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007e: 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) DamageInfo val = new DamageInfo(); val.damage = ((damage == 0f) ? buff.damage : damage); val.crit = false; val.inflictor = inflictor; val.attacker = inflictor; val.position = victime.transform.position; val.damageType = DamageTypeCombo.op_Implicit((DamageType)67108864); val.damageColorIndex = (DamageColorIndex)2; val.force = Vector3.zero; val.procChainMask = default(ProcChainMask); val.procCoefficient = 1f; val.damageColorIndex = damageColorIndex; return val; } public static void ApplyKnockback(GameObject attacker, GameObject victim, float knockbackPower) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: 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_001c: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0027: 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_002e: Unknown result type (might be due to invalid IL or missing references) Vector3 val = victim.transform.position - attacker.transform.position; Vector3 normalized = ((Vector3)(ref val)).normalized; Vector3 force = normalized * knockbackPower; NetMessageExtensions.Send((INetMessage)(object)new ServerApplyForceToBody(victim, force), (NetworkDestination)2); } public static float GetCollideDistance(Rigidbody r1, Rigidbody r2) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)r1 == (Object)null || (Object)(object)r2 == (Object)null) { return 999999f; } Collider component = ((Component)r1).GetComponent<Collider>(); Collider component2 = ((Component)r2).GetComponent<Collider>(); if ((Object)(object)component == (Object)null || (Object)(object)component2 == (Object)null) { return 999999f; } Vector3 val = component.ClosestPoint(r2.position); Vector3 val2 = component2.ClosestPoint(r1.position); return Vector3.Distance(val, val2); } public static float GetCollideDistance(CharacterBody b1, CharacterBody b2) { //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0062: 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_006c: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)b1 == (Object)null || (Object)(object)b2 == (Object)null) { return 999999f; } Collider component = ((Component)b1).GetComponent<Collider>(); Collider component2 = ((Component)b2).GetComponent<Collider>(); if ((Object)(object)component == (Object)null || (Object)(object)component2 == (Object)null) { return 999999f; } Vector3 val = component.ClosestPoint(b2.corePosition); Vector3 val2 = component2.ClosestPoint(b1.corePosition); return Vector3.Distance(val, val2); } public static Sprite KeyEnumToSprite(KeysBinder.KeysEnum keyEnum) { return (Sprite)(keyEnum switch { KeysBinder.KeysEnum.Interact => PantheraAssets.XButtonIcon, KeysBinder.KeysEnum.Equipment => PantheraAssets.YButtonIcon, KeysBinder.KeysEnum.Sprint => PantheraAssets.LButtonIcon, KeysBinder.KeysEnum.Info => PantheraAssets.InfoButtonIcon, KeysBinder.KeysEnum.Ping => PantheraAssets.RButtonIcon, KeysBinder.KeysEnum.Forward => PantheraAssets.LUpButtonIcon, KeysBinder.KeysEnum.Backward => PantheraAssets.LDownButtonIcon, KeysBinder.KeysEnum.Left => PantheraAssets.LLeftButtonIcon, KeysBinder.KeysEnum.Right => PantheraAssets.LRightButtonIcon, KeysBinder.KeysEnum.Jump => PantheraAssets.AButtonIcon, KeysBinder.KeysEnum.Skill1 => PantheraAssets.RTButtonIcon, KeysBinder.KeysEnum.Skill2 => PantheraAssets.LTButtonIcon, KeysBinder.KeysEnum.Skill3 => PantheraAssets.LBButtonIcon, KeysBinder.KeysEnum.Skill4 => PantheraAssets.RBButtonIcon, KeysBinder.KeysEnum.Ability1 => PantheraAssets.UpArrowButtonIcon, KeysBinder.KeysEnum.Ability2 => PantheraAssets.RightArrowButtonIcon, KeysBinder.KeysEnum.Ability3 => PantheraAssets.DownArrowButtonIcon, KeysBinder.KeysEnum.Ability4 => PantheraAssets.LeftArrowButtonIcon, KeysBinder.KeysEnum.SpellsMode => PantheraAssets.BButtonIcon, _ => null, }); } public static bool IsSinglePlayer() { return RoR2Application.isInSinglePlayer; } public static bool IsMultiplayer() { return RoR2Application.isInMultiPlayer; } public static bool IsHost() { if (RoR2Application.isInMultiPlayer && NetworkClient.active && NetworkServer.active) { return true; } return false; } public static bool IsClient() { if (RoR2Application.isInMultiPlayer && NetworkClient.active && !NetworkServer.active) { return true; } return false; } public static bool IsServer() { if (!NetworkClient.active && NetworkServer.active) { return true; } return false; } public static bool IsSingleOrHost() { if (NetworkClient.active && NetworkServer.active) { return true; } return false; } public static bool IsHostOrClient() { if (NetworkClient.active && RoR2Application.isInMultiPlayer) { return true; } return false; } public static void ToOpaqueMode(Material material) { material.SetOverrideTag("RenderType", ""); material.SetInt("_SrcBlend", 1); material.SetInt("_DstBlend", 0); material.SetFloat("_Mode", 0f); material.SetInt("_ZWrite", 1); material.EnableKeyword("_EMISSION"); material.DisableKeyword("_ALPHABLEND_ON"); material.DisableKeyword("_ALPHABLEND_ON_EMISSION"); material.renderQueue = -1; } public static void ToTransparentMode(Material material) { material.SetOverrideTag("RenderType", "Transparent"); material.SetInt("_SrcBlend", 5); material.SetInt("_DstBlend", 10); material.SetFloat("_Mode", 2f); material.EnableKeyword("_EMISSION"); material.EnableKeyword("_ALPHABLEND_ON"); material.EnableKeyword("_ALPHABLEND_ON_EMISSION"); material.renderQueue = 3000; } public static int StringToInt(string text) { if (text == null) { return 0; } int num = 0; try { num = int.Parse(text); } catch (Exception ex) { Debug.LogError((object)"[Panthera -> Function.StringToInt] Unable to parse the String."); Debug.LogError((object)ex.ToString()); num = 0; } return num; } public static float StringToFloat(string text) { if (text == null) { return 0f; } float num = 0f; try { num = float.Parse(text); } catch (Exception ex) { Debug.LogError((object)"[Panthera -> Function.StringToFloat] Unable to parse the String."); Debug.LogError((object)ex.ToString()); num = 0f; } return num; } public static float RandomLog(float minValue, float maxValue, float curveIntensity = 1f) { curveIntensity = Mathf.Clamp(curveIntensity, 0.1f, 10f); float num = Mathf.Log(1f - Random.value * 0.99f + 0.01f) / curveIntensity; return minValue + (maxValue - minValue) * (0f - num); } } public class FXManager { [CompilerGenerated] private sealed class <DelayDestroyEffect>d__5 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public GameObject effect; public int ID; public float delay; private ParticleSystem[] <>s__1; private int <>s__2; private ParticleSystem <particle>5__3; private EmissionModule <emission>5__4; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <DelayDestroyEffect>d__5(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { //IL_0014: Unknown result type (might be due to invalid IL or missing references) <>s__1 = null; <particle>5__3 = null; <emission>5__4 = default(EmissionModule); <>1__state = -2; } private bool MoveNext() { //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Expected O, but got Unknown switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>s__1 = effect.GetComponentsInChildren<ParticleSystem>(); for (<>s__2 = 0; <>s__2 < <>s__1.Length; <>s__2++) { <particle>5__3 = <>s__1[<>s__2]; <emission>5__4 = <particle>5__3.emission; ((EmissionModule)(ref <emission>5__4)).enabled = false; <emission>5__4 = default(EmissionModule); <particle>5__3 = null; } <>s__1 = null; <>2__current = (object)new WaitForSeconds(delay); <>1__state = 1; return true; case 1: <>1__state = -1; if (EffectsList.ContainsKey(ID)) { Object.Destroy((Object)(object)EffectsList[ID]); EffectsList.Remove(ID); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } public static Dictionary<int, GameObject> EffectsList = new Dictionary<int, GameObject>(); public static int GetID() { return Panthera.ptraRNG.nextInt; } public static void CleanList() { KeyValuePair<int, GameObject>[] array = EffectsList.ToArray(); for (int i = 0; i < array.Length; i++) { KeyValuePair<int, GameObject> keyValuePair = array[i]; if ((Object)(object)keyValuePair.Value == (Object)null) { EffectsList.Remove(keyValuePair.Key); } } } public static void AddEffectToList(int ID, GameObject effect) { CleanList(); if (EffectsList.ContainsKey(ID)) { EffectsList[ID] = effect; } else { EffectsList.Add(ID, effect); } } public static void DestroyEffectInternal(int ID, float delay) { //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) CleanList(); if (!EffectsList.ContainsKey(ID)) { return; } if (delay <= 0f) { Object.Destroy((Object)(object)EffectsList[ID]); EffectsList.Remove(ID); return; } ParticleSystem[] componentsInChildren = GetEffect(ID).GetComponentsInChildren<ParticleSystem>(); foreach (ParticleSystem val in componentsInChildren) { EmissionModule emission = val.emission; ((EmissionModule)(ref emission)).enabled = false; } ((MonoBehaviour)GlobalEventManager.instance).StartCoroutine(DelayDestroyEffect(EffectsList[ID], ID, delay)); } [IteratorStateMachine(typeof(<DelayDestroyEffect>d__5))] public static IEnumerator DelayDestroyEffect(GameObject effect, int ID, float delay) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <DelayDestroyEffect>d__5(0) { effect = effect, ID = ID, delay = delay }; } public static GameObject CreateEffectInternal(GameObject creator, GameObject prefab, Vector3 origin, float scale = 1f, GameObject parent = null, Quaternion rotation = default(Quaternion), bool isModelTransform = false) { //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Expected O, but got Unknown //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Invalid comparison between Unknown and I4 //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0054: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: 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_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ed: Unknown result type (might be due to invalid IL or missing references) //IL_01a4: Unknown result type (might be due to invalid IL or missing references) //IL_01b2: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01e5: Unknown result type (might be due to invalid IL or missing references) //IL_01f7: Unknown result type (might be due to invalid IL or missing references) if (isModelTransform) { parent = ((Component)parent.GetComponent<ModelLocator>().modelTransform).gameObject; } EffectData val = new EffectData(); val.origin = origin; val.scale = scale; val.rotation = rotation; EffectIndex val2 = EffectCatalog.FindEffectIndexFromPrefab(prefab); if ((int)val.networkSoundEventIndex != -1) { PointSoundManager.EmitSoundLocal(AkEventIdArg.op_Implicit(NetworkSoundEventCatalog.GetAkIdFromNetworkSoundEventIndex(val.networkSoundEventIndex)), val.origin); } EffectDef effectDef = EffectCatalog.GetEffectDef(val2); if (effectDef == null) { return null; } string spawnSoundEventName = effectDef.spawnSoundEventName; if (!string.IsNullOrEmpty(spawnSoundEventName)) { PointSoundManager.EmitSoundLocal((AkEventIdArg)spawnSoundEventName, origin); } SurfaceDef surfaceDef = SurfaceDefCatalog.GetSurfaceDef(val.surfaceDefIndex); if ((Object)(object)surfaceDef != (Object)null) { string impactSoundString = surfaceDef.impactSoundString; if (!string.IsNullOrEmpty(impactSoundString)) { PointSoundManager.EmitSoundLocal((AkEventIdArg)impactSoundString, val.origin); } } if (!VFXBudget.CanAffordSpawn(effectDef.prefabVfxAttributes)) { return null; } if (effectDef.cullMethod != null && !effectDef.cullMethod(val)) { return null; } EffectData val3 = val.Clone(); GameObject val4 = Object.Instantiate<GameObject>(effectDef.prefab); EffectComponent component = val4.GetComponent<EffectComponent>(); if (Object.op_Implicit((Object)(object)component)) { component.effectData = val3.Clone(); } if ((Object)(object)parent != (Object)null) { val4.transform.parent = parent.transform; } val4.transform.position = origin; val4.transform.rotation = rotation; val4.transform.localScale = new Vector3(scale, scale, scale); if ((Object)(object)parent != (Object)null) { val4.transform.localPosition = Vector3.zero; val4.transform.localRotation = Quaternion.identity; } return val4; } public static int SpawnEffect(GameObject creator, GameObject prefab, Vector3 origin, float scale = 1f, GameObject parent = null, Quaternion rotation = default(Quaternion), bool isModelTransform = false, bool emit = true) { //IL_0009: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) //IL_0059: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) int iD = GetID(); GameObject effect = CreateEffectInternal(creator, prefab, origin, scale, parent, rotation, isModelTransform); AddEffectToList(iD, effect); if (emit) { if (NetworkServer.active) { NetMessageExtensions.Send((INetMessage)(object)new ClientSpawnEffect(iD, creator, Prefabs.GetIndex(prefab), origin, scale, parent, rotation, isModelTransform), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new ServerSpawnEffect(iD, creator, Prefabs.GetIndex(prefab), origin, scale, parent, rotation, isModelTransform), (NetworkDestination)2); } } return iD; } public static GameObject GetEffect(int ID) { CleanList(); if (EffectsList.ContainsKey(ID)) { return EffectsList[ID]; } return null; } public static void DestroyEffect(int ID, float delay = 0f, bool emit = true) { DestroyEffectInternal(ID, delay); if (NetworkServer.active) { NetMessageExtensions.Send((INetMessage)(object)new ClientDestroyEffect(ID, delay), (NetworkDestination)1); } else { NetMessageExtensions.Send((INetMessage)(object)new ServerDestroyEffect(ID, delay), (NetworkDestination)2); } } } public class Hooks { public static void AddHooks(Type classType, string methodName, Delegate calledMethod) { AddHooks(classType, methodName, null, calledMethod); } public static void AddHooks(Type classType, string methodName, Type[] methodType, Delegate calledMethod) { if (classType == null || methodName == null || (object)calledMethod == null) { Debug.LogWarning((object)("PantheraHooks -> Failed to create hook, argument null: " + classType.Name + "." + methodName + " -> " + DotNetCompatibility.GetMethodName(calledMethod))); return; } MethodInfo methodInfo = null; methodInfo = ((methodType == null) ? classType.GetMethod(methodName, (BindingFlags)(-1)) : classType.GetMethod(methodName, (BindingFlags)(-1), null, methodType, null)); if (methodInfo == null) { Debug.LogWarning((object)("PantheraHooks -> Failed to create hook, method null : " + classType.Name + "." + methodName + " -> " + DotNetCompatibility.GetMethodName(calledMethod))); } else { HookEndpointManager.Add((MethodBase)methodInfo, calledMethod); Debug.Log((object)("PantheraHooks -> Hook Added for " + classType.Name + "." + methodName + " -> " + DotNetCompatibility.GetMethodName(calledMethod))); } } public static void RegisterHooks() { AddHooks(typeof(UserProfile), "OnLogin", new Action<Action<UserProfile>, UserProfile>(Panthera.ProfileLoaded)); AddHooks(typeof(CharacterSelectController), "Awake", new Action<Action<CharacterSelectController>, CharacterSelectController>(PantheraPanel.CharacterSelectionStart)); AddHooks(typeof(UserData), "gLOOAxUFAvrvUufkVjaYyZoeLbLE", new Action<Action<UserData>, UserData>(KeysBinder.RegistersExtraInput)); AddHooks(typeof(CharacterBody), "RecalculateStats", new Action<Action<CharacterBody>, CharacterBody>(PantheraBody.RecalculateStatsHook)); AddHooks(typeof(HUD), "Awake", new Action<Action<HUD>, HUD>(PantheraHUD.HUDAwakeHook)); AddHooks(typeof(CharacterDeathBehavior), "OnDeath", new Action<Action<CharacterDeathBehavior>, CharacterDeathBehavior>(PantheraDeathBehavior.CharacterDeathBehaviorHook)); AddHooks(typeof(HealthComponent), "TakeDamage", new Action<Action<HealthComponent, DamageInfo>, HealthComponent, DamageInfo>(PantheraHealthComponent.TakeDamageHook)); AddHooks(typeof(SkillLocator), "ApplyAmmoPack", new Action<Action<SkillLocator>, SkillLocator>(PantheraSkillLocator.applyAmmoPackHook)); AddHooks(typeof(CharacterBody), "GetVisibilityLevel", new Type[1] { typeof(TeamIndex) }, new Func<Func<CharacterBody, TeamIndex, VisibilityLevel>, CharacterBody, TeamIndex, VisibilityLevel>(PantheraBody.GetVisibilityLevelHook)); AddHooks(typeof(CharacterModel), "UpdateRendererMaterials", new Action<Action<CharacterModel, Renderer, Material, bool>, CharacterModel, Renderer, Material, bool>(PantheraFX.UpdateRendererMaterialsHook)); AddHooks(typeof(CharacterMaster), "GiveMoney", new Action<Action<CharacterMaster, uint>, CharacterMaster, uint>(AmbitionMode.CalculateAddedMoney)); AddHooks(typeof(Interactor), "FindBestInteractableObject", new Type[4] { typeof(Ray), typeof(float), typeof(Vector3), typeof(float) }, new Func<Func<Interactor, Ray, float, Vector3, float, GameObject>, Interactor, Ray, float, Vector3, float, GameObject>(PantheraInteractor.FindBestInteractableObjectHook)); AddHooks(typeof(CombatDirector), "FixedUpdate", new Action<Action<CombatDirector>, CombatDirector>(PantheraCombatDirector.FixedUpdate)); AddHooks(typeof(CombatDirector), "PrepareNewMonsterWave", new Action<Action<CombatDirector, DirectorCard>, CombatDirector, DirectorCard>(PantheraCombatDirector.PrepareNewMonsterWave)); AddHooks(typeof(CombatDirector), "SetNextSpawnAsBoss", new Action<Action<CombatDirector>, CombatDirector>(PantheraCombatDirector.SetNextSpawnAsBoss)); AddHooks(typeof(ChargingState), "OnEnter", new Action<Action<ChargingState>, ChargingState>(PantheraCombatDirector.OnPortalCharging)); AddHooks(typeof(ChargedState), "OnEnter", new Action<Action<ChargedState>, ChargedState>(PantheraCombatDirector.OnPortalCharged)); AddHooks(typeof(BlastAttack), "CollectHits", new Func<Func<BlastAttack, HitPoint[]>, BlastAttack, HitPoint[]>(FrontShieldComponent.OnBlastAttack)); } public static void HookProvisoirePourDebugger(Action<HUDBossHealthBarController, DamageDealtMessage> orig, HUDBossHealthBarController self, DamageDealtMessage damageDealtMessage) { //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) if (!((TimeStamp)(ref self.nextAllowedSourceUpdateTime)).hasPassed || !Object.op_Implicit((Object)(object)damageDealtMessage.victim)) { return; } CharacterBody component = damageDealtMessage.victim.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && component.isBoss && (Object)(object)damageDealtMessage.attacker == (Object)(object)self.hud.targetBodyObject) { BossGroup val = BossGroup.FindBossGroup(component); if (Object.op_Implicit((Object)(object)val) && val.shouldDisplayHealthBarOnHud) { self.currentBossGroup = val; self.nextAllowedSourceUpdateTime = TimeStamp.now + 1f; } } } } public class PantheraSaveSystem { public static string saveDir = Path.Combine(Application.persistentDataPath, "Panthera"); public static string saveFileName; public static Dictionary<string, string> savedData = new Dictionary<string, string>(); public static void Init() { try { Directory.CreateDirectory(saveDir); } catch (Exception ex) { Debug.LogWarning((object)"Failed to create Panthera Dir"); Debug.LogError((object)ex); } } public static void Save() { Dictionary<string, string> dictionary = new Dictionary<string, string>(); foreach (string key in savedData.Keys) { dictionary[key] = savedData[key]; } string fileName = Path.Combine(saveDir, saveFileName + "--Data"); XElement xElement = new XElement("Root", dictionary.Select(delegate(KeyValuePair<string, string> keyValue) { KeyValuePair<string, string> keyValuePair = keyValue; XName? name = keyValuePair.Key; keyValuePair = keyValue; return new XElement(name, keyValuePair.Value); })); try { xElement.Save(fileName, SaveOptions.OmitDuplicateNamespaces); } catch (Exception ex) { Debug.LogError((object)"[Panthera] Unable to save ..."); Debug.LogError((object)ex); } } public static void Load() { string path = Path.Combine(saveDir, saveFileName + "--Data"); savedData.Clear(); if (!File.Exists(path)) { Save(); } string text = null; try { text = File.ReadAllText(path); } catch (Exception ex) { Debug.LogError((object)"[Panthera] Unable to load ..."); Debug.LogError((object)ex); return; } Dictionary<string, string> dictionary = new Dictionary<string, string>(); try { dictionary = XElement.Parse(text).Elements().ToDictionary((XElement k) => k.Name.ToString(), (XElement v) => v.Value.ToString()); } catch (XmlException ex2) { Debug.LogError((object)"[Panthera] XML ERROR, creating a new save ..."); Debug.LogError((object)ex2); File.Delete(path); Save(); } foreach (KeyValuePair<string, string> item in dictionary) { savedData[item.Key] = item.Value; } } public static void SetValue(string key, string value) { if (savedData.ContainsKey(key)) { savedData[key] = value; } else { savedData.Add(key, value); } } public static string ReadValue(string key) { if (savedData.ContainsKey(key)) { return savedData[key]; } return null; } public static Dictionary<string, string> LoadPreset(int ID) { string path = Path.Combine(saveDir, saveFileName + "--Preset" + ID); Dictionary<string, string> dictionary = new Dictionary<string, string>(); if (!File.Exists(path)) { return null; } string text = null; try { text = File.ReadAllText(path); } catch (Exception ex) { Debug.LogError((object)("[Panthera] Unable to load preset " + ID + " ...")); Debug.LogError((object)ex); return null; } return XElement.Parse(text).Elements().ToDictionary((XElement k) => k.Name.ToString(), (XElement v) => v.Value.ToString()); } public static void SavePreset(int ID, Dictionary<string, string> dataList) { string fileName = Path.Combine(saveDir, saveFileName + "--Preset" + ID); XElement xElement = new XElement("Root", dataList.Select(delegate(KeyValuePair<string, string> keyValue) { KeyValuePair<string, string> keyValuePair = keyValue; XName? name = keyValuePair.Key; keyValuePair = keyValue; return new XElement(name, keyValuePair.Value); })); try { xElement.Save(fileName, SaveOptions.OmitDuplicateNamespaces); } catch (Exception ex) { Debug.LogError((object)("[Panthera] Unable to save pr