Decompiled source of PlayableBiden v1.0.0
PlayableBiden.dll
Decompiled 2 months ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using EntityStates; using EntityStates.Commando.CommandoWeapon; using JetBrains.Annotations; using KinematicCharacterController; using Microsoft.CodeAnalysis; using On.RoR2; using PlayableBiden.Assets; using PlayableBiden.Utils; using PlayableBiden.Utils.Paths; using R2API; using R2API.Utils; using RoR2; using RoR2.Audio; using RoR2.EntitlementManagement; using RoR2.ExpansionManagement; using RoR2.Navigation; using RoR2.Projectile; using RoR2.Skills; using RoR2.UI; using TMPro; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.Audio; using UnityEngine.Networking; 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("PlayableBiden")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("PlayableBiden")] [assembly: AssemblyTitle("PlayableBiden")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] [module: UnverifiableCode] 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 PlayableBiden { [CreateAssetMenu(menuName = "PlayableBiden/EliteRequiredSkillDef")] public class EliteRequiredSkillDef : SkillDef { public class InstanceData : BaseSkillInstanceData { public EliteTracker tracker; } public override BaseSkillInstanceData OnAssigned([NotNull] GenericSkill skillSlot) { return (BaseSkillInstanceData)(object)new InstanceData { tracker = ((Component)skillSlot).GetComponent<EliteTracker>() }; } private static bool HasTarget(GenericSkill slot) { if (slot.skillInstanceData is InstanceData instanceData) { return (Object)(object)instanceData.tracker.target != (Object)null; } return false; } public override bool IsReady([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).IsReady(skillSlot) && HasTarget(skillSlot); } public override bool CanExecute([NotNull] GenericSkill skillSlot) { return ((SkillDef)this).CanExecute(skillSlot) && HasTarget(skillSlot); } } public class EliteTracker : HurtboxTracker { public SkillDef RequiredSkillDef; public GenericSkill TargetSlot; public override void Start() { isActiveCallback = () => (Object)(object)TargetSlot.skillDef == (Object)(object)RequiredSkillDef && TargetSlot.CanExecute(); validTargetCallback = (CharacterBody body) => body.isElite; targetingIndicatorPrefab = PlayableBiden.Assets.GameObject.HuntressTrackingIndicator; base.Start(); } } [CreateAssetMenu(menuName = "PrimarySkillDef")] public class PrimarySkillDef : SkillDef, IPrimarySkillDef { public string WeaponName; public WeaponSlot WeaponSlot; public bool TwoHanded; public bool IsGreatsword; public string _WeaponName => WeaponName; public WeaponSlot _WeaponSlot => WeaponSlot; public bool _TwoHanded => TwoHanded; public bool _IsGreatsword => IsGreatsword; } public interface IPrimarySkillDef { string _WeaponName { get; } WeaponSlot _WeaponSlot { get; } bool _TwoHanded { get; } bool _IsGreatsword { get; } } [CreateAssetMenu(menuName = "SteppedPrimarySkillDef")] public class SteppedPrimarySkillDef : SteppedSkillDef, IPrimarySkillDef { public string WeaponName; public WeaponSlot WeaponSlot; public bool TwoHanded; public bool IsGreatsword; public string _WeaponName => WeaponName; public WeaponSlot _WeaponSlot => WeaponSlot; public bool _TwoHanded => TwoHanded; public bool _IsGreatsword => IsGreatsword; } [CreateAssetMenu(fileName = "Survivor", menuName = "PlayableBiden/Survivor")] public class Survivor : ScriptableObject { public GameObject Body; public SurvivorDef SurvivorDef; public List<UnlockableDef> Unlocks; public List<SkillDef> Skills; public List<SkillFamily> SkillFamilies; public List<GameObject> Projectiles; public List<GameObject> Effects; public List<TokenCollection> Tokens; public void Initialize() { foreach (TokenCollection token in Tokens) { token.Initialize(); } Body.GetComponent<CharacterBody>()._defaultCrosshairPrefab = PlayableBiden.Utils.Paths.GameObject.TreebotCrosshair.Load<GameObject>(); Body.GetComponent<CameraTargetParams>().cameraParams = PlayableBiden.Utils.Paths.CharacterCameraParams.ccpStandard.Load<CharacterCameraParams>(); PrefabAPI.RegisterNetworkPrefab(Body); ContentAddition.AddBody(Body); ContentAddition.AddSurvivorDef(SurvivorDef); foreach (UnlockableDef unlock in Unlocks) { ContentAddition.AddUnlockableDef(unlock); } foreach (SkillDef skill in Skills) { ContentAddition.AddSkillDef(skill); } foreach (SkillFamily skillFamily in SkillFamilies) { ContentAddition.AddSkillFamily(skillFamily); } foreach (GameObject projectile in Projectiles) { ContentAddition.AddProjectile(projectile); } foreach (GameObject effect in Effects) { ContentAddition.AddEffect(effect); } } } public class TakedownProjectile : MonoBehaviour { public Transform Hook; public ProjectileTargetComponent TargetComponent; public float SeekingSpeed = 120f; public float ReelingSpeed = 90f; public GameObject owner; private bool reelingIn = false; private bool hasHooked = false; private CharacterBody body; public void Start() { owner = ((Component)this).GetComponent<ProjectileController>().owner; } public void FixedUpdate() { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0109: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_011e: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_0126: Unknown result type (might be due to invalid IL or missing references) //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0137: Unknown result type (might be due to invalid IL or missing references) //IL_0138: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0154: Unknown result type (might be due to invalid IL or missing references) //IL_015b: Unknown result type (might be due to invalid IL or missing references) //IL_0165: Unknown result type (might be due to invalid IL or missing references) //IL_016a: 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_00a5: 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) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00b7: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d6: Unknown result type (might be due to invalid IL or missing references) //IL_00dd: 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_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_01d5: Unknown result type (might be due to invalid IL or missing references) //IL_01aa: Unknown result type (might be due to invalid IL or missing references) //IL_01b1: Unknown result type (might be due to invalid IL or missing references) //IL_01b6: Unknown result type (might be due to invalid IL or missing references) //IL_027c: Unknown result type (might be due to invalid IL or missing references) //IL_0287: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_029e: Unknown result type (might be due to invalid IL or missing references) //IL_02ae: Unknown result type (might be due to invalid IL or missing references) //IL_01ec: Unknown result type (might be due to invalid IL or missing references) //IL_01fc: Unknown result type (might be due to invalid IL or missing references) //IL_0201: Unknown result type (might be due to invalid IL or missing references) //IL_0206: Unknown result type (might be due to invalid IL or missing references) //IL_0213: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_02d0: Unknown result type (might be due to invalid IL or missing references) //IL_02d1: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)TargetComponent.target) || (reelingIn && !Object.op_Implicit((Object)(object)body)) || !Object.op_Implicit((Object)(object)owner)) { Object.Destroy((Object)(object)((Component)this).gameObject); return; } ((Component)this).transform.position = owner.transform.position; Vector3 zero = Vector3.zero; Vector3 val; if (!reelingIn && !hasHooked) { val = TargetComponent.target.position - ((Component)Hook).transform.position; zero = ((Vector3)(ref val)).normalized; Hook.forward = zero; Transform transform = ((Component)Hook).transform; transform.position += zero * SeekingSpeed * Time.fixedDeltaTime; } else { val = TargetComponent.target.position - owner.transform.position; zero = -((Vector3)(ref val)).normalized; Hook.forward = -zero; Transform transform2 = ((Component)Hook).transform; transform2.position += zero * ReelingSpeed * Time.fixedDeltaTime; if (!NetworkServer.active) { return; } if (Object.op_Implicit((Object)(object)body.characterMotor)) { body.characterMotor.velocity = zero * ReelingSpeed; } else { body.transform.position = ((Component)Hook).transform.position; } Vector3 val2 = TargetComponent.target.position - owner.transform.position; if (Vector3.Distance(body.transform.position, owner.transform.position) < 5f) { reelingIn = false; body.healthComponent.Suicide((GameObject)null, (GameObject)null, DamageTypeCombo.op_Implicit((DamageType)65536)); } } if (!hasHooked) { Vector3 val3 = TargetComponent.target.position - Hook.position; if (Vector3.Distance(((Component)Hook).transform.position, TargetComponent.target.position) < 3f) { HookTarget(); } else if (Vector3.Dot(zero, val3) < 0f) { HookTarget(); } } } public void HookTarget() { hasHooked = true; reelingIn = true; body = ((Component)TargetComponent.target).GetComponent<HurtBox>().healthComponent.body; if (!NetworkServer.active) { return; } EnumerableExtensions.ForEachTry<EntityStateMachine>((IEnumerable<EntityStateMachine>)((Component)body).GetComponents<EntityStateMachine>(), (Action<EntityStateMachine>)delegate(EntityStateMachine x) { if (x.customName != "Body") { ((Behaviour)x).enabled = false; } }, (IDictionary<EntityStateMachine, Exception>)null); ((Component)body).gameObject.layer = LayerIndex.noCollision.intVal; if (Object.op_Implicit((Object)(object)body.characterMotor)) { ((BaseCharacterController)body.characterMotor).Motor.RebuildCollidableLayers(); } } } [CreateAssetMenu(fileName = "TokenCollection", menuName = "PlayableBiden/TokenCollection")] public class TokenCollection : ScriptableObject { public List<Token> tokens; public void Initialize() { foreach (Token token in tokens) { LanguageAPI.Add(token.Key, token.Value); } } } [Serializable] public class Token { public string Key; public string Value; } public class WeaponModelController : MonoBehaviour { public Transform SidearmHolder; public Transform MeleeHolder; public SkillFamily TargetSkillFamily; public bool IsCSSDisplay = false; private LocalUser localUser = null; internal WeaponSlot activeSlot = WeaponSlot.Sidearm; internal bool UsingGreatswordWeapon = false; public Animator ModelAnimator; internal bool TwoHanded = false; public void Start() { if (IsCSSDisplay) { NetworkUser.onLoadoutChangedGlobal += OnLoadoutChanged; } ForceUpdate(); } public void OnDestroy() { if (IsCSSDisplay) { NetworkUser.onLoadoutChangedGlobal -= OnLoadoutChanged; } } public void Update() { if (UsingGreatswordWeapon) { ModelAnimator.SetFloat("isHoldingTwoHandedWeapon", 0f); } else { ModelAnimator.SetFloat("isHoldingTwoHandedWeapon", TwoHanded ? 1f : (-1f)); } } public void EnableWeapon() { ((Component)SidearmHolder).gameObject.SetActive(activeSlot == WeaponSlot.Sidearm); ((Component)MeleeHolder).gameObject.SetActive(activeSlot == WeaponSlot.Melee); } public void DisableWeapon() { if (!TwoHanded) { ((Component)SidearmHolder).gameObject.SetActive(false); } ((Component)MeleeHolder).gameObject.SetActive(false); } private void OnLoadoutChanged(NetworkUser user) { ForceUpdate(); } public void ForceUpdate() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) if (localUser == null) { localUser = LocalUserManager.GetFirstLocalUser(); } NetworkUser currentNetworkUser = localUser.currentNetworkUser; Loadout val = Loadout.RequestInstance(); currentNetworkUser.networkLoadout.CopyLoadout(val); uint skillVariant = val.bodyLoadoutManager.GetSkillVariant(currentNetworkUser.bodyIndexPreference, 0); Debug.Log((object)"converting to IPrimarySkillDef"); IPrimarySkillDef def = TargetSkillFamily.variants[skillVariant].skillDef as IPrimarySkillDef; Debug.Log((object)"converted to IPrimarySkillDef"); UpdateWeapon(def); } public void UpdateWeapon(IPrimarySkillDef def) { activeSlot = def._WeaponSlot; TwoHanded = def._TwoHanded; UsingGreatswordWeapon = def._IsGreatsword; Debug.Log((object)"updating active weapon"); switch (def._WeaponSlot) { case WeaponSlot.Sidearm: ((Component)MeleeHolder).gameObject.SetActive(false); ((Component)SidearmHolder).gameObject.SetActive(true); UpdateModel(SidearmHolder, def._WeaponName); break; case WeaponSlot.Melee: ((Component)MeleeHolder).gameObject.SetActive(true); ((Component)SidearmHolder).gameObject.SetActive(false); UpdateModel(MeleeHolder, def._WeaponName); break; } static void UpdateModel(Transform root, string name) { //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Expected O, but got Unknown foreach (Transform item in root) { Transform val = item; if (((Object)val).name != name) { ((Component)val).gameObject.SetActive(false); } else { ((Component)val).gameObject.SetActive(true); } } } } } public enum WeaponSlot { Sidearm, Melee } public class CaliforniaCrucible : CoolerBasicMeleeAttack, IStepSetter { private int _step; public override float BaseDuration => 0.8f; public override float DamageCoefficient => 4.3f; public override string HitboxName => "Punch"; public override GameObject HitEffectPrefab => null; public override float ProcCoefficient => 1f; public override float HitPauseDuration => 0.05f; public override GameObject SwingEffectPrefab => Main.bundle.LoadAsset<GameObject>("BidenCrucibleSlash.prefab"); public override string MuzzleString => "MuzzleMelee"; public override string MechanimHitboxParameter => "Hitbox.active"; public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); } public override void PlayAnimation() { ((EntityState)this).PlayAnimation("Fullbody, Override", (_step % 2 == 0) ? "GreatSlashAlt" : "GreatSlash", "Generic.playbackRate", ((BasicMeleeAttack)this).duration, 0f); AkSoundEngine.PostEvent(Events.Play_merc_m1_hard_swing, ((EntityState)this).gameObject); } public override void BeginMeleeAttackEffect() { ((BasicMeleeAttack)this).swingEffectMuzzleString = ((_step % 2 == 0) ? "MuzzleCrucible_L" : "MuzzleCrucible_R"); ((BasicMeleeAttack)this).BeginMeleeAttackEffect(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } public void SetStep(int i) { _step = i; } } public class ColoradoCrush : CoolerBasicMeleeAttack { public override float BaseDuration => 1.4f; public override float DamageCoefficient => 6f; public override string HitboxName => "Punch"; public override GameObject HitEffectPrefab => null; public override float ProcCoefficient => 1f; public override float HitPauseDuration => 0.05f; public override GameObject SwingEffectPrefab => null; public override string MuzzleString => "MuzzleMelee"; public override string MechanimHitboxParameter => "Hitbox.active"; public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { //IL_000b: 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) ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); overlapAttack.damageType |= DamageTypeCombo.op_Implicit((DamageType)32); } public override void PlayAnimation() { ((EntityState)this).PlayAnimation("Gesture, Override", "Overhead", "Generic.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } public override void BeginMeleeAttackEffect() { AkSoundEngine.PostEvent(Events.Play_item_use_meteor_impact, ((EntityState)this).gameObject); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class FloridaFirestarter : BaseSkillState { public float MinExitTime = 0.2f; public float DamagePerSecond = 4f; public float TickRate = 5f; public float Range = 22f; private Animator animator; private float fireDelay; private float stopwatch = 0f; private float damagePerTick; private GameObject instance; private DirectionOverrideRequest req; public GameObject EffectPrefab => Main.bundle.LoadAsset<GameObject>("FirestarterStream.prefab"); public override void OnEnter() { ((BaseState)this).OnEnter(); animator = ((EntityState)this).GetModelAnimator(); animator.SetBool("isShooting", true); TickRate *= ((BaseState)this).attackSpeedStat; damagePerTick = DamagePerSecond / TickRate; fireDelay = 1f / TickRate; instance = Object.Instantiate<GameObject>(EffectPrefab, ((BaseState)this).FindModelChild("MuzzleFlamethrower")); AkSoundEngine.PostEvent(Events.Play_mage_R_start, ((EntityState)this).gameObject); req = ((Component)((EntityState)this).GetModelTransform()).GetComponent<AimAnimator>().RequestDirectionOverride((Func<Vector3>)(() => Quaternion.AngleAxis(-30f, Vector3.up) * ((EntityState)this).inputBank.aimDirection)); } public override void FixedUpdate() { //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ea: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Unknown result type (might be due to invalid IL or missing references) //IL_00f0: Unknown result type (might be due to invalid IL or missing references) //IL_00f7: Expected O, but got Unknown //IL_0115: Unknown result type (might be due to invalid IL or missing references) //IL_011a: Unknown result type (might be due to invalid IL or missing references) //IL_0123: Unknown result type (might be due to invalid IL or missing references) //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_019a: Unknown result type (might be due to invalid IL or missing references) //IL_019f: Unknown result type (might be due to invalid IL or missing references) //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((BaseState)this).StartAimMode(0.2f, false); if (!((EntityState)this).inputBank.skill1.down && ((EntityState)this).isAuthority && ((EntityState)this).fixedAge >= MinExitTime) { ((EntityState)this).outer.SetNextStateToMain(); } if (Object.op_Implicit((Object)(object)instance)) { instance.transform.forward = Vector3.RotateTowards(instance.transform.forward, ((EntityState)this).inputBank.aimDirection, 90f * Time.fixedDeltaTime, 360f * Time.fixedDeltaTime); } stopwatch += Time.fixedDeltaTime; if (stopwatch >= fireDelay && ((EntityState)this).isAuthority) { stopwatch = 0f; Ray aimRay = ((BaseState)this).GetAimRay(); BulletAttack val = new BulletAttack(); val.owner = ((EntityState)this).gameObject; val.weapon = ((EntityState)this).gameObject; val.origin = ((Ray)(ref aimRay)).origin; val.aimVector = ((Ray)(ref aimRay)).direction; val.minSpread = 0f; val.damage = damagePerTick * ((BaseState)this).damageStat; val.force = 20f; val.muzzleName = "MuzzleFlamethrower"; val.hitEffectPrefab = PlayableBiden.Assets.GameObject.ImpactWispEmber; val.isCrit = ((BaseState)this).RollCrit(); val.radius = 2f; val.falloffModel = (FalloffModel)0; val.stopperMask = ((LayerIndex)(ref LayerIndex.world)).mask; val.procCoefficient = 1f; val.maxDistance = Range; val.smartCollision = true; val.damageType = DamageTypeCombo.op_Implicit((DamageType)128); val.Fire(); } } public override void OnExit() { ((EntityState)this).OnExit(); AkSoundEngine.PostEvent(Events.Play_mage_R_end, ((EntityState)this).gameObject); if (Object.op_Implicit((Object)(object)instance)) { EntityState.Destroy((Object)(object)instance); } ((Component)((EntityState)this).GetModelTransform()).GetComponent<AimAnimator>().RemoveRequest(req); animator.SetBool("isShooting", false); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class PolicyPistol : BaseSkillState { public float duration = 0.6f; public float damageCoeff = 3.6f; public override void OnEnter() { //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Expected O, but got Unknown //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00a6: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00c0: Unknown result type (might be due to invalid IL or missing references) //IL_00c5: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); duration /= ((BaseState)this).attackSpeedStat; AkSoundEngine.PostEvent(Events.Play_bandit2_R_fire, ((EntityState)this).gameObject); EffectManager.SimpleMuzzleFlash(PlayableBiden.Utils.Paths.GameObject.MuzzleflashBarrage.Load<GameObject>(), ((EntityState)this).gameObject, "MuzzlePistol", false); ((EntityState)this).PlayAnimation("Gesture, Override", "Shoot", "Generic.playbackRate", duration, 0f); if (((EntityState)this).isAuthority) { BulletAttack val = new BulletAttack(); val.damage = ((BaseState)this).damageStat * damageCoeff; val.falloffModel = (FalloffModel)0; Ray aimRay = ((EntityState)this).inputBank.GetAimRay(); val.aimVector = ((Ray)(ref aimRay)).direction; aimRay = ((EntityState)this).inputBank.GetAimRay(); val.origin = ((Ray)(ref aimRay)).origin; val.maxDistance = 160f; val.owner = ((EntityState)this).gameObject; val.procCoefficient = 1f; val.isCrit = ((BaseState)this).RollCrit(); val.muzzleName = "MuzzlePistol"; val.tracerEffectPrefab = PlayableBiden.Utils.Paths.GameObject.TracerCommandoBoost.Load<GameObject>(); val.hitEffectPrefab = PlayableBiden.Utils.Paths.GameObject.OmniImpactVFX.Load<GameObject>(); val.Fire(); } } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.SetAimTimer(0.2f); if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class ArizonaAirstrike : AimThrowableBase { public override void OnEnter() { base.maxDistance = 40f; base.arcVisualizerPrefab = PlayableBiden.Assets.GameObject.BasicThrowableVisualizer; base.endpointVisualizerPrefab = PlayableBiden.Assets.GameObject.HuntressArrowRainIndicator; base.endpointVisualizerRadiusScale = 5f; base.baseMinimumDuration = 0.15f; base.projectilePrefab = PlayableBiden.Assets.GameObject.ToolbotGrenadeLauncherProjectile; ((AimThrowableBase)this).OnEnter(); ((EntityState)this).PlayAnimation("Gesture, Override", "Point", "Generic.playbackRate", 1f, 0f); ((AimThrowableBase)this).FireProjectile(); } public override void FixedUpdate() { ((AimThrowableBase)this).FixedUpdate(); if (((EntityState)this).fixedAge >= 1.4f / ((BaseState)this).attackSpeedStat) { ((EntityState)this).outer.SetNextStateToMain(); } } public override bool KeyIsDown() { return false; } public override void FireProjectile() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_00a1: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).PlayAnimation("Gesture, Override", "Point", "Generic.playbackRate", 1f, 0f); if (((EntityState)this).isAuthority) { Vector3 hitPoint = base.currentTrajectoryInfo.hitPoint; RaycastHit val = default(RaycastHit); hitPoint = ((!Physics.Raycast(hitPoint, Vector3.up, ref val, 4000f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask))) ? (hitPoint + Vector3.up * 1000f) : (((RaycastHit)(ref val)).point - Vector3.up * 5f)); ((MonoBehaviour)((EntityState)this).characterBody).StartCoroutine(FireProjectiles(hitPoint)); } } public IEnumerator FireProjectiles(Vector3 origin) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) FireProjectileInfo info = default(FireProjectileInfo); info.rotation = Quaternion.LookRotation(Vector3.down); info.crit = ((BaseState)this).RollCrit(); info.owner = ((EntityState)this).gameObject; ((FireProjectileInfo)(ref info)).speedOverride = 940f; info.useSpeedOverride = true; info.projectilePrefab = base.projectilePrefab; info.damage = ((BaseState)this).damageStat * 1.2f; for (int i = 0; i < 3; i++) { yield return (object)new WaitForSeconds(0.2f); info.position = origin + Random.onUnitSphere * 1f; ProjectileManager.instance.FireProjectile(info); } ((EntityState)this).outer.SetNextStateToMain(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)5; } } public class MinnesotaMortar : AimThrowableBase { public override void OnEnter() { base.maxDistance = 40f; base.arcVisualizerPrefab = PlayableBiden.Assets.GameObject.BasicThrowableVisualizer; base.endpointVisualizerPrefab = PlayableBiden.Assets.GameObject.HuntressArrowRainIndicator; base.endpointVisualizerRadiusScale = 5f; base.baseMinimumDuration = 0.15f; base.projectilePrefab = PlayableBiden.Assets.GameObject.ToolbotGrenadeLauncherProjectile; ((AimThrowableBase)this).OnEnter(); } public override void FireProjectile() { //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Unknown result type (might be due to invalid IL or missing references) //IL_003e: 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_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_0098: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006a: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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_00a1: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).PlayAnimation("Gesture, Override", "Point", "Generic.playbackRate", 1f, 0f); if (((EntityState)this).isAuthority) { Vector3 hitPoint = base.currentTrajectoryInfo.hitPoint; RaycastHit val = default(RaycastHit); hitPoint = ((!Physics.Raycast(hitPoint, Vector3.up, ref val, 4000f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask))) ? (hitPoint + Vector3.up * 1000f) : (((RaycastHit)(ref val)).point - Vector3.up * 5f)); ((MonoBehaviour)((EntityState)this).characterBody).StartCoroutine(FireProjectiles(hitPoint)); } } public IEnumerator FireProjectiles(Vector3 origin) { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) FireProjectileInfo info = default(FireProjectileInfo); info.rotation = Quaternion.LookRotation(Vector3.down); info.crit = ((BaseState)this).RollCrit(); info.owner = ((EntityState)this).gameObject; ((FireProjectileInfo)(ref info)).speedOverride = 940f; info.useSpeedOverride = true; info.projectilePrefab = base.projectilePrefab; info.damage = ((BaseState)this).damageStat * 2.5f; for (int i = 0; i < 3; i++) { yield return (object)new WaitForSeconds(0.2f); info.position = origin + Random.onUnitSphere * 3f; ProjectileManager.instance.FireProjectile(info); } ((EntityState)this).outer.SetNextStateToMain(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)5; } } public class RhodeRoundhouse : CoolerBasicMeleeAttack { public override float BaseDuration => 0.7f; public override float DamageCoefficient => 9f; public override string HitboxName => "Punch"; public override GameObject HitEffectPrefab => null; public override float ProcCoefficient => 1f; public override float HitPauseDuration => 0.05f; public override GameObject SwingEffectPrefab => Main.bundle.LoadAsset<GameObject>("BidenSlash.prefab"); public override string MuzzleString => "MuzzleMelee"; public override string MechanimHitboxParameter => "Hitbox.active"; public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); } public override void PlayAnimation() { ((EntityState)this).PlayAnimation("Fullbody, Override", "RoundKick", "Generic.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } public override void BeginMeleeAttackEffect() { ((BasicMeleeAttack)this).BeginMeleeAttackEffect(); AkSoundEngine.PostEvent(Events.Play_item_use_meteor_impact, ((EntityState)this).gameObject); } } public class SenatePunch : CoolerBasicMeleeAttack { public override float BaseDuration => 0.7f; public override float DamageCoefficient => 5.6f; public override string HitboxName => "Punch"; public override GameObject HitEffectPrefab => null; public override float ProcCoefficient => 1f; public override float HitPauseDuration => 0.05f; public override GameObject SwingEffectPrefab => Main.bundle.LoadAsset<GameObject>("BidenSlash.prefab"); public override string MuzzleString => "MuzzleMelee"; public override string MechanimHitboxParameter => "Hitbox.active"; public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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_0029: 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) //IL_0033: Unknown result type (might be due to invalid IL or missing references) ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); overlapAttack.forceVector = ((EntityState)this).characterDirection.forward * 5000f + Vector3.up * 2400f; } public override void PlayAnimation() { ((EntityState)this).PlayAnimation("Fullbody, Override", "Kick", "Generic.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } public override void BeginMeleeAttackEffect() { AkSoundEngine.PostEvent(Events.Play_item_use_meteor_impact, ((EntityState)this).gameObject); } } public class TexasTakedown : BaseSkillState { public bool hasFired = false; public float duration = 2f; public Animator animator; public EliteTracker tracker; public override void OnEnter() { ((BaseState)this).OnEnter(); ((EntityState)this).PlayAnimation("Body", "Grapple", "Generic.playbackRate", duration, 0f); tracker = ((EntityState)this).GetComponent<EliteTracker>(); animator = ((EntityState)this).GetModelAnimator(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().DisableWeapon(); } public override void FixedUpdate() { ((EntityState)this).FixedUpdate(); if (animator.GetFloat("Hitbox.active") >= 0.5f && !hasFired) { Fire(); } if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); if (!hasFired) { Fire(); } ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().EnableWeapon(); } public void Fire() { //IL_0048: 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_005b: 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_00ac: Unknown result type (might be due to invalid IL or missing references) hasFired = true; AkSoundEngine.PostEvent(Events.Play_item_proc_bounceChain, ((EntityState)this).gameObject); if (((EntityState)this).isAuthority && Object.op_Implicit((Object)(object)tracker.target)) { FireProjectileInfo val = default(FireProjectileInfo); val.position = ((EntityState)this).transform.position; val.rotation = Quaternion.identity; val.projectilePrefab = Main.Survivor.Projectiles[1]; val.owner = ((EntityState)this).gameObject; val.target = ((Component)tracker.target).gameObject; ProjectileManager.instance.FireProjectile(val); } } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)5; } } public class BidenBlast : BaseSkillState { public float chargeDuration = 3f; public GameObject chargeInstance; private uint id; private Animator anim; private Transform target; public static GameObject chargeEffect => Main.bundle.LoadAsset<GameObject>("BidenBlastCharge.prefab"); private float scaleMult => ((EntityState)this).fixedAge / chargeDuration; public override void OnEnter() { //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) ((BaseState)this).OnEnter(); chargeDuration /= ((BaseState)this).attackSpeedStat; ((EntityState)this).PlayAnimation("Body", "Blast", "Generic.playbackRate", chargeDuration, 0f); target = ((BaseState)this).FindModelChild("MuzzleMagic"); chargeInstance = Object.Instantiate<GameObject>(chargeEffect, target.position, Quaternion.identity); anim = ((EntityState)this).GetModelAnimator(); id = AkSoundEngine.PostEvent(Events.Play_mage_m2_charge, ((EntityState)this).gameObject); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().DisableWeapon(); } public override void FixedUpdate() { //IL_0034: 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_005b: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterBody.SetAimTimer(0.2f); if (Object.op_Implicit((Object)(object)chargeInstance)) { chargeInstance.transform.localScale = Vector3.one * scaleMult; chargeInstance.transform.position = target.position; } if (((EntityState)this).fixedAge >= chargeDuration || anim.GetFloat("Hitbox.active") > 0.5f) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_005b: Unknown result type (might be due to invalid IL or missing references) //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) ((EntityState)this).OnExit(); AkSoundEngine.StopPlayingID(id); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().EnableWeapon(); if (Object.op_Implicit((Object)(object)chargeInstance)) { EntityState.Destroy((Object)(object)chargeInstance); } if (((EntityState)this).isAuthority) { FireProjectileInfo val = default(FireProjectileInfo); Ray aimRay = ((BaseState)this).GetAimRay(); val.rotation = Util.QuaternionSafeLookRotation(((Ray)(ref aimRay)).direction); val.position = ((Component)((BaseState)this).FindModelChild("MuzzleMagic")).transform.position; val.damage = ((BaseState)this).damageStat * 24f; val.force = 1000f; val.owner = ((EntityState)this).gameObject; val.crit = ((BaseState)this).RollCrit(); val.projectilePrefab = Main.Survivor.Projectiles[0]; ProjectileManager.instance.FireProjectile(val); } } } public class DroneStrike : BaseSkillState { private float dodgeSpeed = 10f; private float duration = 1f; private Vector3 vector; public override void OnEnter() { //IL_0048: 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_007e: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) ((BaseState)this).OnEnter(); ((EntityState)this).PlayAnimation("Body", "Roll", "Generic.playbackRate", duration / 2f, 0f); ((MonoBehaviour)((EntityState)this).characterBody).StartCoroutine(Fire()); Vector3 val; if (!(((EntityState)this).characterMotor.moveDirection != Vector3.zero)) { Ray aimRay = ((EntityState)this).inputBank.GetAimRay(); val = ((Ray)(ref aimRay)).direction * -1f; } else { val = ((EntityState)this).characterMotor.moveDirection * -1f; } vector = val; vector = ((Vector3)(ref vector)).normalized; ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().DisableWeapon(); } public IEnumerator Fire() { FireProjectileInfo info = default(FireProjectileInfo); info.position = GroundPosition(((EntityState)this).transform.position); info.crit = ((BaseState)this).RollCrit(); info.damage = 4f * ((BaseState)this).damageStat; info.projectilePrefab = PlayableBiden.Assets.GameObject.CaptainAirstrikeProjectile1; info.owner = ((EntityState)this).gameObject; ((FireProjectileInfo)(ref info)).speedOverride = 0f; for (int i = 0; i < 5; i++) { info.rotation = Quaternion.Euler(0f, Random.Range(0f, 360f), 0f); yield return (object)new WaitForSeconds(duration / 5f); ProjectileManager.instance.FireProjectile(info); } } public override void FixedUpdate() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_001a: 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) ((EntityState)this).FixedUpdate(); ((EntityState)this).characterMotor.velocity = vector * dodgeSpeed; if (((EntityState)this).fixedAge >= duration) { ((EntityState)this).outer.SetNextStateToMain(); } } public override void OnExit() { ((EntityState)this).OnExit(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().EnableWeapon(); } public Vector3 GroundPosition(Vector3 pos) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) //IL_0016: 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_0046: Unknown result type (might be due to invalid IL or missing references) //IL_0047: Unknown result type (might be due to invalid IL or missing references) //IL_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_004a: Unknown result type (might be due to invalid IL or missing references) RaycastHit val = default(RaycastHit); if (Physics.Raycast(pos + Vector3.up * 5f, Vector3.down, ref val, 400f, LayerMask.op_Implicit(((LayerIndex)(ref LayerIndex.world)).mask), (QueryTriggerInteraction)1)) { return ((RaycastHit)(ref val)).point; } return pos; } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)5; } } public class NerveGas : GenericProjectileBaseState { public override void OnEnter() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown ThrowGrenade val = new ThrowGrenade(); base.effectPrefab = ((GenericProjectileBaseState)val).effectPrefab; base.projectilePrefab = Main.Survivor.Projectiles[2]; base.damageCoefficient = 1f; base.force = ((GenericProjectileBaseState)val).force; base.minSpread = 0f; base.maxSpread = 0f; base.baseDuration = ((GenericProjectileBaseState)val).baseDuration; base.recoilAmplitude = ((GenericProjectileBaseState)val).recoilAmplitude; base.attackSoundString = ((GenericProjectileBaseState)val).attackSoundString; base.projectilePitchBonus = ((GenericProjectileBaseState)val).projectilePitchBonus; base.baseDelayBeforeFiringProjectile = ((GenericProjectileBaseState)val).baseDelayBeforeFiringProjectile; base.targetMuzzle = "MuzzleGun"; base.bloom = ((GenericProjectileBaseState)val).bloom; ((GenericProjectileBaseState)this).OnEnter(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().DisableWeapon(); } public override void PlayAnimation(float duration) { ((EntityState)this).PlayAnimation("Gesture, Override", "LobProjectile", "Generic.playbackRate", duration, 0f); } public override void OnExit() { ((GenericProjectileBaseState)this).OnExit(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().EnableWeapon(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class PipeBomb : GenericProjectileBaseState { public override void OnEnter() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown ThrowGrenade val = new ThrowGrenade(); base.effectPrefab = ((GenericProjectileBaseState)val).effectPrefab; base.projectilePrefab = Main.PipebombProjectile; base.damageCoefficient = 12f; base.force = ((GenericProjectileBaseState)val).force; base.minSpread = 0f; base.maxSpread = 0f; base.baseDuration = ((GenericProjectileBaseState)val).baseDuration; base.recoilAmplitude = ((GenericProjectileBaseState)val).recoilAmplitude; base.attackSoundString = ((GenericProjectileBaseState)val).attackSoundString; base.projectilePitchBonus = ((GenericProjectileBaseState)val).projectilePitchBonus; base.baseDelayBeforeFiringProjectile = ((GenericProjectileBaseState)val).baseDelayBeforeFiringProjectile; base.targetMuzzle = "MuzzleGun"; base.bloom = ((GenericProjectileBaseState)val).bloom; ((GenericProjectileBaseState)this).OnEnter(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().DisableWeapon(); } public override void PlayAnimation(float duration) { ((EntityState)this).PlayAnimation("Gesture, Override", "LobProjectile", "Generic.playbackRate", duration, 0f); } public override void OnExit() { ((GenericProjectileBaseState)this).OnExit(); ((Component)((EntityState)this).GetModelTransform()).GetComponent<WeaponModelController>().EnableWeapon(); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)2; } } public class WyomingWarp : AimThrowableBase { public override void OnEnter() { base.maxDistance = 40f; base.arcVisualizerPrefab = PlayableBiden.Utils.Paths.GameObject.BasicThrowableVisualizer.Load<GameObject>(); base.endpointVisualizerPrefab = PlayableBiden.Utils.Paths.GameObject.HuntressArrowRainIndicator.Load<GameObject>(); base.endpointVisualizerRadiusScale = 2f; base.baseMinimumDuration = 0.15f; base.projectilePrefab = PlayableBiden.Utils.Paths.GameObject.Fireball.Load<GameObject>(); AkSoundEngine.PostEvent(Events.Play_bandit2_shift_enter, ((EntityState)this).gameObject); ((AimThrowableBase)this).OnEnter(); ((EntityState)this).PlayAnimation("Gesture, Override", "Point", "Generic.playbackRate", 1f, 0f); } public override InterruptPriority GetMinimumInterruptPriority() { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) return (InterruptPriority)5; } public override void FireProjectile() { //IL_0041: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_005e: Unknown result type (might be due to invalid IL or missing references) //IL_0079: 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) ((EntityState)this).PlayAnimation("Gesture, Override", "Point", "Generic.playbackRate", 1f, 0f); if (((EntityState)this).isAuthority) { EffectManager.SimpleEffect(PlayableBiden.Utils.Paths.GameObject.Bandit2SmokeBomb.Load<GameObject>(), ((EntityState)this).transform.position, Quaternion.identity, true); TeleportHelper.TeleportBody(((EntityState)this).characterBody, base.currentTrajectoryInfo.hitPoint); EffectManager.SimpleEffect(PlayableBiden.Utils.Paths.GameObject.Bandit2SmokeBomb.Load<GameObject>(), ((EntityState)this).transform.position, Quaternion.identity, true); AkSoundEngine.PostEvent(Events.Play_bandit2_shift_exit, ((EntityState)this).gameObject); } } } [BepInPlugin("pseudopulse.PlayableBiden", "PlayableBiden", "1.0.0")] public class Main : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static IsAffordableDelegate <>9__15_0; public static PayCostDelegate <>9__15_1; internal bool <ModifyCatalog>b__15_0(CostTypeDef def, IsAffordableContext context) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)context.activator) && Object.op_Implicit((Object)(object)((Component)context.activator).GetComponent<DebtManager>())) { return true; } return Money_IsAffordable.Invoke(def, context); } internal void <ModifyCatalog>b__15_1(CostTypeDef def, PayCostContext context) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0046: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)context.activator) && Object.op_Implicit((Object)(object)((Component)context.activator).GetComponent<DebtManager>())) { DebtManager component = ((Component)context.activator).GetComponent<DebtManager>(); if (Object.op_Implicit((Object)(object)context.activatorMaster) && context.cost > context.activatorMaster.money) { uint num = (uint)(context.cost - context.activatorMaster.money); component.CurrentDebt -= num; context.cost = (int)context.activatorMaster.money; } } Money_PayCost.Invoke(def, context); } } public const string PluginGUID = "pseudopulse.PlayableBiden"; public const string PluginAuthor = "pseudopulse"; public const string PluginName = "PlayableBiden"; public const string PluginVersion = "1.0.0"; public static AssetBundle bundle; public static ManualLogSource ModLogger; public static Survivor Survivor; private static BodyIndex _index = (BodyIndex)(-1); private static IsAffordableDelegate Money_IsAffordable; private static PayCostDelegate Money_PayCost; public static GameObject PipebombProjectile; public static BodyIndex index { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Invalid comparison between Unknown and I4 //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0023: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) if ((int)_index == -1) { _index = BodyCatalog.FindBodyIndex("BidenBody"); } return _index; } set { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) _index = value; } } public void Awake() { //IL_0127: Unknown result type (might be due to invalid IL or missing references) //IL_0131: Expected O, but got Unknown //IL_0139: Unknown result type (might be due to invalid IL or missing references) //IL_0143: Expected O, but got Unknown //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_01c5: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Unknown result type (might be due to invalid IL or missing references) //IL_01d1: Unknown result type (might be due to invalid IL or missing references) //IL_01d6: Unknown result type (might be due to invalid IL or missing references) bundle = AssetBundle.LoadFromFile(Assembly.GetExecutingAssembly().Location.Replace("PlayableBiden.dll", "bidenbundle")); ModLogger = ((BaseUnityPlugin)this).Logger; Material[] array = bundle.LoadAllAssets<Material>(); foreach (Material val in array) { Material val2 = val; string name = ((Object)val.shader).name; if (1 == 0) { } Shader shader = (Shader)(name switch { "StubbedShader/fx/hgcloudremap" => PlayableBiden.Utils.Paths.Shader.HGCloudRemap.Load<Shader>(), "StubbedShader/deferred/hgstandard" => PlayableBiden.Utils.Paths.Shader.HGStandard.Load<Shader>(), "Hopoo Games/FX/Cloud Remap" => PlayableBiden.Assets.Shader.HGCloudRemap, _ => val.shader, }); if (1 == 0) { } val2.shader = shader; } Survivor = bundle.LoadAsset<Survivor>("Biden.asset"); Survivor.Body.GetComponent<CharacterBody>()._defaultCrosshairPrefab = PlayableBiden.Assets.GameObject.CommandoBody.GetComponent<CharacterBody>()._defaultCrosshairPrefab; Survivor.Initialize(); CharacterMaster.GiveMoney += new hook_GiveMoney(GiveMoney); CostTypeCatalog.Init += new hook_Init(ModifyCatalog); PipebombProjectile = PrefabAPI.InstantiateClone(PlayableBiden.Assets.GameObject.CommandoGrenadeProjectile, "PipeBombProjectile"); ProjectileImpactExplosion component = PipebombProjectile.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component).explosionEffect = PlayableBiden.Assets.GameObject.ExplosionDroneDeath; ((ProjectileExplosion)component).blastRadius = 20f; ((ProjectileExplosion)component).falloffModel = (FalloffModel)0; component.impactEffect = PlayableBiden.Assets.GameObject.ExplosionDroneDeath; ProjectileController component2 = PipebombProjectile.GetComponent<ProjectileController>(); component2.ghostPrefab = PlayableBiden.Assets.GameObject.CryoCanisterGhost; Collider component3 = PipebombProjectile.GetComponent<Collider>(); component3.material = PlayableBiden.Assets.PhysicMaterial.physmatBouncyButFriction; ProjectileDamage component4 = PipebombProjectile.GetComponent<ProjectileDamage>(); component4.damageType |= DamageTypeCombo.op_Implicit((DamageType)32); ContentAddition.AddProjectile(PipebombProjectile); } private void ModifyCatalog(orig_Init orig) { //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_0045: Expected O, but got Unknown //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Expected O, but got Unknown orig.Invoke(); CostTypeDef costTypeDef = CostTypeCatalog.GetCostTypeDef((CostTypeIndex)1); Money_IsAffordable = costTypeDef.isAffordable; Money_PayCost = costTypeDef.payCost; object obj = <>c.<>9__15_0; if (obj == null) { IsAffordableDelegate val = (CostTypeDef def, IsAffordableContext context) => (Object.op_Implicit((Object)(object)context.activator) && Object.op_Implicit((Object)(object)((Component)context.activator).GetComponent<DebtManager>())) || Money_IsAffordable.Invoke(def, context); <>c.<>9__15_0 = val; obj = (object)val; } costTypeDef.isAffordable = (IsAffordableDelegate)obj; object obj2 = <>c.<>9__15_1; if (obj2 == null) { PayCostDelegate val2 = delegate(CostTypeDef def, PayCostContext context) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_0026: Unknown result type (might be due to invalid IL or missing references) //IL_0032: 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_0046: 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_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0084: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)context.activator) && Object.op_Implicit((Object)(object)((Component)context.activator).GetComponent<DebtManager>())) { DebtManager component = ((Component)context.activator).GetComponent<DebtManager>(); if (Object.op_Implicit((Object)(object)context.activatorMaster) && context.cost > context.activatorMaster.money) { uint num = (uint)(context.cost - context.activatorMaster.money); component.CurrentDebt -= num; context.cost = (int)context.activatorMaster.money; } } Money_PayCost.Invoke(def, context); }; <>c.<>9__15_1 = val2; obj2 = (object)val2; } costTypeDef.payCost = (PayCostDelegate)obj2; } private void GiveMoney(orig_GiveMoney orig, CharacterMaster self, uint amount) { if (Object.op_Implicit((Object)(object)self.bodyInstanceObject)) { DebtManager component = self.bodyInstanceObject.GetComponent<DebtManager>(); if (Object.op_Implicit((Object)(object)component) && component.CurrentDebt < 0f) { float num = (float)amount * component.IncomePenalty; amount -= (uint)num; component.CurrentDebt += num * component.IncomeEfficiency; if (component.CurrentDebt > 0f) { component.CurrentDebt = 0f; } } } orig.Invoke(self, amount); } } public class DebtManager : MonoBehaviour { public float IncomePenalty; public float IncomeEfficiency; [HideInInspector] public float CurrentDebt = 0f; public CharacterBody body; private MoneyText instance; private CharacterMaster master; public void FixedUpdate() { //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00c7: Unknown result type (might be due to invalid IL or missing references) //IL_00cc: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0100: Unknown result type (might be due to invalid IL or missing references) if (!Object.op_Implicit((Object)(object)instance) && Object.op_Implicit((Object)(object)((IEnumerable<HUD>)HUD.instancesList).FirstOrDefault((Func<HUD, bool>)((HUD x) => Object.op_Implicit((Object)(object)x.targetBodyObject) && (Object)(object)x.targetBodyObject == (Object)(object)((Component)this).gameObject)))) { HUD val = ((IEnumerable<HUD>)HUD.instancesList).FirstOrDefault((Func<HUD, bool>)((HUD x) => Object.op_Implicit((Object)(object)x.targetBodyObject) && (Object)(object)x.targetBodyObject == (Object)(object)((Component)this).gameObject)); GameObject val2 = Object.Instantiate<GameObject>(((Component)val.moneyText).gameObject, ((Component)val.moneyText).transform.parent); instance = val2.GetComponent<MoneyText>(); ((Graphic)instance.targetText).color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)15, byte.MaxValue)); ((Graphic)((Component)((Component)instance).transform.Find("DollarSign")).GetComponent<HGTextMeshProUGUI>()).color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)15, byte.MaxValue)); ((Graphic)((Component)((Component)instance).transform.Find("BackgroundPanel")).GetComponent<RawImage>()).color = Color32.op_Implicit(new Color32(byte.MaxValue, (byte)0, (byte)11, (byte)34)); ((Component)instance).transform.SetSiblingIndex(1); } if (!Object.op_Implicit((Object)(object)master)) { master = body.master; } if (Object.op_Implicit((Object)(object)instance)) { instance.targetValue = (int)CurrentDebt; } } } public abstract class CoolerBasicMeleeAttack : BasicMeleeAttack { public abstract float BaseDuration { get; } public abstract float DamageCoefficient { get; } public abstract string HitboxName { get; } public abstract GameObject HitEffectPrefab { get; } public abstract float ProcCoefficient { get; } public abstract float HitPauseDuration { get; } public abstract GameObject SwingEffectPrefab { get; } public abstract string MuzzleString { get; } public virtual string MechanimHitboxParameter { get; } public virtual bool ScaleHitPauseDurationWithAttackSpeed { get; } = true; public virtual float Knockback { get; } = 0f; public override void OnEnter() { base.baseDuration = BaseDuration; base.damageCoefficient = DamageCoefficient; base.hitBoxGroupName = HitboxName; base.hitEffectPrefab = HitEffectPrefab; base.procCoefficient = ProcCoefficient; base.hitPauseDuration = HitPauseDuration; base.swingEffectPrefab = SwingEffectPrefab; base.swingEffectMuzzleString = MuzzleString; base.pushAwayForce = Knockback; if (MechanimHitboxParameter != null) { base.mecanimHitboxActiveParameter = MechanimHitboxParameter; } base.scaleHitPauseDurationAndVelocityWithAttackSpeed = ScaleHitPauseDurationWithAttackSpeed; ((BasicMeleeAttack)this).OnEnter(); ((EntityState)this).GetModelAnimator().SetBool("noYawAim", true); ((EntityState)this).GetModelAnimator().SetBool("noPitchAim", true); } public override void OnExit() { ((BasicMeleeAttack)this).OnExit(); ((EntityState)this).GetModelAnimator().SetBool("noYawAim", false); ((EntityState)this).GetModelAnimator().SetBool("noPitchAim", false); } } [RequireComponent(typeof(InputBankTest))] [RequireComponent(typeof(CharacterBody))] public abstract class Tracker : MonoBehaviour { public Transform target; public Indicator indicator; public GameObject targetingIndicatorPrefab; private float stopwatch = 0f; public float searchDelay = 0.4f; public float maxSearchAngle = 40f; public float maxSearchDistance = 60f; public bool isActive = true; public InputBankTest inputBank; public CharacterBody body; public Func<bool> isActiveCallback = DefaultIsActiveCallback; public float minDot => Mathf.Cos(Mathf.Clamp(maxSearchAngle, 0f, 180f) * (MathF.PI / 180f)); private static bool DefaultIsActiveCallback() { return true; } public virtual void Start() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Expected O, but got Unknown indicator = new Indicator(((Component)this).gameObject, targetingIndicatorPrefab); body = ((Component)this).GetComponent<CharacterBody>(); inputBank = ((Component)this).GetComponent<InputBankTest>(); } public virtual void FixedUpdate() { if (indicator != null && !DefaultIsActiveCallback()) { indicator.active = false; return; } if (indicator != null && !Object.op_Implicit((Object)(object)target)) { indicator.active = false; } if (indicator != null && Object.op_Implicit((Object)(object)target)) { indicator.active = true; } stopwatch += Time.fixedDeltaTime; if (stopwatch >= searchDelay) { stopwatch = 0f; target = SearchForTarget(); if (Object.op_Implicit((Object)(object)target)) { indicator.targetTransform = target; } } } public abstract Transform SearchForTarget(); } public class HurtboxTracker : Tracker { public enum TargetType { Enemy, Friendly, All } public TeamIndex userIndex; public TargetType targetType; public Func<CharacterBody, bool> validTargetCallback = (CharacterBody x) => true; public override void Start() { //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) base.Start(); userIndex = body.teamComponent.teamIndex; } public override Transform SearchForTarget() { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0013: Unknown result type (might be due to invalid IL or missing references) //IL_0016: 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_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_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_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_008a: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009c: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) BullseyeSearch val = new BullseyeSearch(); Ray aimRay = inputBank.GetAimRay(); val.searchDirection = ((Ray)(ref aimRay)).direction; val.searchOrigin = ((Component)this).transform.position; val.maxDistanceFilter = maxSearchDistance; val.maxAngleFilter = maxSearchAngle; TeamMask teamMaskFilter = TeamMask.all; switch (targetType) { case TargetType.Enemy: ((TeamMask)(ref teamMaskFilter)).RemoveTeam(userIndex); break; case TargetType.Friendly: teamMaskFilter = TeamMask.none; ((TeamMask)(ref teamMaskFilter)).AddTeam(userIndex); break; case TargetType.All: teamMaskFilter = TeamMask.all; break; } val.teamMaskFilter = teamMaskFilter; val.RefreshCandidates(); val.FilterOutGameObject(((Component)this).gameObject); IEnumerable<HurtBox> source = from x in val.GetResults() where Object.op_Implicit((Object)(object)x.healthComponent) && validTargetCallback(x.healthComponent.body) select x; HurtBox? obj = source.FirstOrDefault(); return ((obj != null) ? ((Component)obj).transform : null) ?? null; } } public class ComponentTracker<T> : Tracker where T : Component { public Func<T, bool> validFilter = DefaultFilter; private static bool DefaultFilter(T t) { return true; } public override Transform SearchForTarget() { //IL_0038: 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_0069: 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_0072: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Unknown result type (might be due to invalid IL or missing references) //IL_0092: Unknown result type (might be due to invalid IL or missing references) //IL_0097: Unknown result type (might be due to invalid IL or missing references) //IL_009b: Unknown result type (might be due to invalid IL or missing references) T[] array = Object.FindObjectsOfType<T>(); foreach (T val in array) { if (validFilter(val) && !(Vector3.Distance(((Component)this).transform.position, ((Component)val).transform.position) > maxSearchDistance)) { Ray aimRay = inputBank.GetAimRay(); Vector3 direction = ((Ray)(ref aimRay)).direction; Vector3 val2 = ((Component)val).transform.position - ((Component)this).transform.position; float num = Vector3.Dot(direction, ((Vector3)(ref val2)).normalized); if (!(num < base.minDot)) { return ((Component)val).transform; } } } return null; } } } namespace PlayableBiden.Assets { public static class Texture2D { public static Texture2D texAttackSpeedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texAttackSpeedIcon.png").WaitForCompletion(); public static Texture2D texAutomationActivationIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texAutomationActivationIcon.png").WaitForCompletion(); public static Texture2D texAutomationActivationIconNew => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texAutomationActivationIcon_New.png").WaitForCompletion(); public static Texture2D texBandit2ClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBandit2ClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texBandit2ConsecutiveResetIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBandit2ConsecutiveResetIcon.png").WaitForCompletion(); public static Texture2D texBandit2RevolverFinaleIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBandit2RevolverFinaleIcon.png").WaitForCompletion(); public static Texture2D texBandit2StackSuperBleedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBandit2StackSuperBleedIcon.png").WaitForCompletion(); public static Texture2D texBeatArenaIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBeatArenaIcon.png").WaitForCompletion(); public static Texture2D texBurnToDeathIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texBurnToDeathIcon.png").WaitForCompletion(); public static Texture2D texCaptainBuyMegaDroneIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCaptainBuyMegaDroneIcon.png").WaitForCompletion(); public static Texture2D texCaptainClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCaptainClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texCaptainSupplyDropFinaleIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCaptainSupplyDropFinaleIcon.png").WaitForCompletion(); public static Texture2D texCaptainVisitSeveralStagesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCaptainVisitSeveralStagesIcon.png").WaitForCompletion(); public static Texture2D texCarryLunarItemsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCarryLunarItemsIcon.png").WaitForCompletion(); public static Texture2D texChargeTeleporterWhileNearDeathIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texChargeTeleporterWhileNearDeathIcon.png").WaitForCompletion(); public static Texture2D texCleanupDutyIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCleanupDutyIcon.png").WaitForCompletion(); public static Texture2D texCommandoClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCommandoClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texCommandoFastFirstStageClearIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCommandoFastFirstStageClearIcon.png").WaitForCompletion(); public static Texture2D texCommandoKillOverloadingWormIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCommandoKillOverloadingWormIcon.png").WaitForCompletion(); public static Texture2D texCommandoNonLunarEnduranceIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCommandoNonLunarEnduranceIcon.png").WaitForCompletion(); public static Texture2D texComplete20StagesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texComplete20StagesIcon.png").WaitForCompletion(); public static Texture2D texComplete30StagesCareerIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texComplete30StagesCareerIcon.png").WaitForCompletion(); public static Texture2D texCompleteMainEndingHardIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteMainEndingHardIcon.png").WaitForCompletion(); public static Texture2D texCompleteMainEndingIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteMainEndingIcon.png").WaitForCompletion(); public static Texture2D texCompleteMultiBossShrineIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteMultiBossShrineIcon.png").WaitForCompletion(); public static Texture2D texCompletePrismaticTrialIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompletePrismaticTrialIcon.png").WaitForCompletion(); public static Texture2D texCompleteTeleporterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteTeleporterIcon.png").WaitForCompletion(); public static Texture2D texCompleteTeleporterWithoutInjuryIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteTeleporterWithoutInjuryIcon.png").WaitForCompletion(); public static Texture2D texCompleteThreeStagesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteThreeStagesIcon.png").WaitForCompletion(); public static Texture2D texCompleteThreeStagesIconOLD => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteThreeStagesIconOLD.png").WaitForCompletion(); public static Texture2D texCompleteThreeStagesWithoutHealingIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteThreeStagesWithoutHealingIcon.png").WaitForCompletion(); public static Texture2D texCompleteUnknownEndingIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCompleteUnknownEndingIcon.png").WaitForCompletion(); public static Texture2D texCrocoClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCrocoClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texCrocoKillScavengerIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCrocoKillScavengerIcon.png").WaitForCompletion(); public static Texture2D texCrocoKillWeakEnemiesMilestoneIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCrocoKillWeakEnemiesMilestoneIcon.png").WaitForCompletion(); public static Texture2D texCrocoTotalInfectionsMilestoneIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texCrocoTotalInfectionsMilestoneIcon.png").WaitForCompletion(); public static Texture2D texDefeatSuperRoboBallBossIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texDefeatSuperRoboBallBossIcon.png").WaitForCompletion(); public static Texture2D texDie20TimesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texDie20TimesIcon.png").WaitForCompletion(); public static Texture2D texDie5TimesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texDie5TimesIcon.png").WaitForCompletion(); public static Texture2D texDiscover10UniqueTier1Icon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texDiscover10UniqueTier1Icon.png").WaitForCompletion(); public static Texture2D texDiscover5EquipmentIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texDiscover5EquipmentIcon.png").WaitForCompletion(); public static Texture2D texEngiArmyIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texEngiArmyIcon.png").WaitForCompletion(); public static Texture2D texEngiClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texEngiClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texEngiClearTeleporterWithZeroMonstersIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texEngiClearTeleporterWithZeroMonstersIcon.png").WaitForCompletion(); public static Texture2D texEngiKillBossQuickIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texEngiKillBossQuickIcon.png").WaitForCompletion(); public static Texture2D texFailShrineChanceIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texFailShrineChanceIcon.png").WaitForCompletion(); public static Texture2D texFindDevilAltarIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texFindDevilAltarIcon.png").WaitForCompletion(); public static Texture2D texFindTimedChestIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texFindTimedChestIcon.png").WaitForCompletion(); public static Texture2D texFindUniqueNewtStatuesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texFindUniqueNewtStatuesIcon.png").WaitForCompletion(); public static Texture2D texFreeMageIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texFreeMageIcon.png").WaitForCompletion(); public static Texture2D texHardEliteBossKillIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHardEliteBossKillIcon.png").WaitForCompletion(); public static Texture2D texHardHitterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHardHitterIcon.png").WaitForCompletion(); public static Texture2D texHuntressAllGlaiveBouncesKillIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHuntressAllGlaiveBouncesKillIcon.png").WaitForCompletion(); public static Texture2D texHuntressAttackSpeedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHuntressAttackSpeedIcon.png").WaitForCompletion(); public static Texture2D texHuntressClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHuntressClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texHuntressCollectCrowbarsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHuntressCollectCrowbarsIcon.png").WaitForCompletion(); public static Texture2D texHuntressMaintainFullHealthOnFrozenWallIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texHuntressMaintainFullHealthOnFrozenWallIcon.png").WaitForCompletion(); public static Texture2D texKillBossQuantityInRunIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillBossQuantityInRunIcon.png").WaitForCompletion(); public static Texture2D texKillBossQuickIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillBossQuickIcon.png").WaitForCompletion(); public static Texture2D texKillElementalLemuriansIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillElementalLemuriansIcon.png").WaitForCompletion(); public static Texture2D texKillEliteMonsterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillEliteMonsterIcon.png").WaitForCompletion(); public static Texture2D texKillElitesMilestoneIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillElitesMilestoneIcon.png").WaitForCompletion(); public static Texture2D texKillGoldTitanInOneCycleIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillGoldTitanInOneCycleIcon.png").WaitForCompletion(); public static Texture2D texKillTotalEnemiesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texKillTotalEnemiesIcon.png").WaitForCompletion(); public static Texture2D texLoaderBigSlamIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoaderBigSlamIcon.png").WaitForCompletion(); public static Texture2D texLoaderClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoaderClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texLoaderKillLoadersIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoaderKillLoadersIcon.png").WaitForCompletion(); public static Texture2D texLoaderSpeedRunIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoaderSpeedRunIcon.png").WaitForCompletion(); public static Texture2D texLoaderThatsWeirdIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoaderThatsWeirdIcon.png").WaitForCompletion(); public static Texture2D texLogCollectorIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLogCollectorIcon.png").WaitForCompletion(); public static Texture2D texLoopOnceIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texLoopOnceIcon.png").WaitForCompletion(); public static Texture2D texMageAirborneMultiKillIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMageAirborneMultiKillIcon.png").WaitForCompletion(); public static Texture2D texMageClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMageClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texMageFastBossIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMageFastBossIcon.png").WaitForCompletion(); public static Texture2D texMageMultiExecuteIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMageMultiExecuteIcon.png").WaitForCompletion(); public static Texture2D texMageMultiKillIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMageMultiKillIcon.png").WaitForCompletion(); public static Texture2D texMajorMultikillIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMajorMultikillIcon.png").WaitForCompletion(); public static Texture2D texMaxHealingShrineIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMaxHealingShrineIcon.png").WaitForCompletion(); public static Texture2D texMercClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMercClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texMercCompleteTrialWithFullHealthIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMercCompleteTrialWithFullHealthIcon.png").WaitForCompletion(); public static Texture2D texMercDontTouchGroundIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMercDontTouchGroundIcon.png").WaitForCompletion(); public static Texture2D texMercXSkillsInYSecondsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMercXSkillsInYSecondsIcon.png").WaitForCompletion(); public static Texture2D texMoveSpeedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMoveSpeedIcon.png").WaitForCompletion(); public static Texture2D texMultiCombatShrineIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texMultiCombatShrineIcon.png").WaitForCompletion(); public static Texture2D texNeverBackDownIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texNeverBackDownIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactBombIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactBombIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactCommandIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactCommandIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactEliteOnlyIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactEliteOnlyIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactEnigmaIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactEnigmaIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactFriendlyFireIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactFriendlyFireIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactGlassIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactGlassIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactMixEnemyIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactMixEnemyIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactMonsterTeamGainsItemsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactMonsterTeamGainsItemsIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactRandomSurvivorOnRespawnIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactRandomSurvivorOnRespawnIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactSacrificeIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactSacrificeIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactShadowCloneIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactShadowCloneIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactSingleMonsterTypeIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactSingleMonsterTypeIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactSwarmsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactSwarmsIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactTeamDeathIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactTeamDeathIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactWeakAssKneesIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactWeakAssKneesIcon.png").WaitForCompletion(); public static Texture2D texObtainArtifactWispOnDeathIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texObtainArtifactWispOnDeathIcon.png").WaitForCompletion(); public static Texture2D texPlaceholderAchievement => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texPlaceholderAchievement.png").WaitForCompletion(); public static Texture2D texRepeatedlyDuplicateItemsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texRepeatedlyDuplicateItemsIcon.png").WaitForCompletion(); public static Texture2D texRepeatFirstTeleporterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texRepeatFirstTeleporterIcon.png").WaitForCompletion(); public static Texture2D texRescueTreebotIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texRescueTreebotIcon.png").WaitForCompletion(); public static Texture2D texStayAlive1Icon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texStayAlive1Icon.png").WaitForCompletion(); public static Texture2D texSuicideHermitCrabsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texSuicideHermitCrabsIcon.png").WaitForCompletion(); public static Texture2D texToolbotBeatArenaLaterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texToolbotBeatArenaLaterIcon.png").WaitForCompletion(); public static Texture2D texToolbotClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texToolbotClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texToolbotGuardTeleporterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texToolbotGuardTeleporterIcon.png").WaitForCompletion(); public static Texture2D texToolbotKillImpBossWithBfgIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texToolbotKillImpBossWithBfgIcon.png").WaitForCompletion(); public static Texture2D texTotalDronesRepairedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTotalDronesRepairedIcon.png").WaitForCompletion(); public static Texture2D texTotalMoneyCollectedIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTotalMoneyCollectedIcon.png").WaitForCompletion(); public static Texture2D texTreebotBigHealIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTreebotBigHealIcon.png").WaitForCompletion(); public static Texture2D texTreebotClearGameMonsoonIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTreebotClearGameMonsoonIcon.png").WaitForCompletion(); public static Texture2D texTreebotDunkClayBossIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTreebotDunkClayBossIcon.png").WaitForCompletion(); public static Texture2D texTreebotLowHealthTeleporterIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texTreebotLowHealthTeleporterIcon.png").WaitForCompletion(); public static Texture2D texUseThreePortalsIcon => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Achievements/texUseThreePortalsIcon.png").WaitForCompletion(); public static Texture2D texArtifactCompoundCircleMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundCircleMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundCircleNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundCircleNormal.png").WaitForCompletion(); public static Texture2D texArtifactCompoundDiamondMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundDiamondMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundDiamondNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundDiamondNormal.png").WaitForCompletion(); public static Texture2D texArtifactCompoundFrameMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundFrameMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundFrameNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundFrameNormal.png").WaitForCompletion(); public static Texture2D texArtifactCompoundScavScarMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundScavScarMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundScavScarNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundScavScarNormal.png").WaitForCompletion(); public static Texture2D texArtifactCompoundSquareMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundSquareMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundSquareNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundSquareNormal.png").WaitForCompletion(); public static Texture2D texArtifactCompoundTriangleMask => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundTriangleMask.png").WaitForCompletion(); public static Texture2D texArtifactCompoundTriangleNormal => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/ArtifactCompounds/texArtifactCompoundTriangleNormal.png").WaitForCompletion(); public static Texture2D texArtifactBombDisabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Bomb/texArtifactBombDisabled.png").WaitForCompletion(); public static Texture2D texArtifactBombEnabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Bomb/texArtifactBombEnabled.png").WaitForCompletion(); public static Texture2D texArtifactCommandDisabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Command/texArtifactCommandDisabled.png").WaitForCompletion(); public static Texture2D texArtifactCommandEnabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Command/texArtifactCommandEnabled.png").WaitForCompletion(); public static Texture2D texArtifactEliteOnlyDisabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/EliteOnly/texArtifactEliteOnlyDisabled.png").WaitForCompletion(); public static Texture2D texArtifactEliteOnlyEnabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/EliteOnly/texArtifactEliteOnlyEnabled.png").WaitForCompletion(); public static Texture2D texArtifactRandomEquipmentDisabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Enigma/texArtifactRandomEquipmentDisabled.png").WaitForCompletion(); public static Texture2D texArtifactRandomEquipmentEnabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/Enigma/texArtifactRandomEquipmentEnabled.png").WaitForCompletion(); public static Texture2D texArtifactFriendlyFireDisabled => Addressables.LoadAssetAsync<Texture2D>((object)"RoR2/Base/FriendlyFire/texArtifactFriendlyFireDisabled.png").WaitForCompletion(); public static Texture2D texArtifactFriendlyFireEnabled => A