Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of HIFUVoidFiendTweaks v1.0.4
HIFUVoidFiendTweaks.dll
Decompiled a year ago
The result has been truncated due to the large size, download it to view full contents!
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using System.Text.RegularExpressions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.VoidSurvivor; using EntityStates.VoidSurvivor.CorruptMode; using EntityStates.VoidSurvivor.Weapon; using HIFUVoidFiendTweaks.Misc; using HIFUVoidFiendTweaks.Skilldefs; using HIFUVoidFiendTweaks.Skills; using HIFUVoidFiendTweaks.Utils; using HIFUVoidFiendTweaks.Utils.Assets; using HIFUVoidFiendTweaks.VFX; using HarmonyLib; using IL.EntityStates.VoidSurvivor.Weapon; using IL.RoR2; using KinematicCharacterController; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.EntityStates.VoidSurvivor; using On.EntityStates.VoidSurvivor.CorruptMode; using On.EntityStates.VoidSurvivor.Weapon; using On.RoR2; using R2API; 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.AI; using UnityEngine.AddressableAssets; using UnityEngine.Audio; using UnityEngine.Networking; [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("HIFUVoidFiendTweaks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+2b2442adb1e4d9b7c3a60c9265a2994bb3d222c3")] [assembly: AssemblyProduct("HIFUVoidFiendTweaks")] [assembly: AssemblyTitle("HIFUVoidFiendTweaks")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace HIFUVoidFiendTweaks { public class ConfigManager { internal static bool ConfigChanged; internal static bool VersionChanged; public static T HandleConfig<T>(ConfigEntryBase entry, ConfigFile config, string name) { //IL_0087: Unknown result type (might be due to invalid IL or missing references) //IL_008d: Expected O, but got Unknown //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Expected O, but got Unknown //IL_00b8: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Expected O, but got Unknown MethodInfo methodInfo = (from x in typeof(ConfigFile).GetMethods() where x.Name == "Bind" select x).First(); methodInfo = methodInfo.MakeGenericMethod(typeof(T)); object[] parameters = new object[3] { (object)new ConfigDefinition(Regex.Replace(config.ConfigFilePath, "\\W", "") + " : " + entry.Definition.Section, name), entry.DefaultValue, (object)new ConfigDescription(entry.Description.Description, (AcceptableValueBase)null, Array.Empty<object>()) }; ConfigEntryBase val = (ConfigEntryBase)methodInfo.Invoke(config, parameters); if (Main._preVersioning) { entry.BoxedValue = entry.DefaultValue; } if (!ConfigEqual(val.DefaultValue, val.BoxedValue) && VersionChanged) { entry.BoxedValue = entry.DefaultValue; val.BoxedValue = val.DefaultValue; } return default(T); } private static bool ConfigEqual(object a, object b) { if (a.Equals(b)) { return true; } if (float.TryParse(a.ToString(), out var result) && float.TryParse(b.ToString(), out var result2) && (double)Mathf.Abs(result - result2) < 0.0001) { return true; } return false; } } 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 Func<bool> AlternateActiveParameter { get; } = () => true; 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; if (MechanimHitboxParameter != null) { base.mecanimHitboxActiveParameter = MechanimHitboxParameter; } base.scaleHitPauseDurationAndVelocityWithAttackSpeed = ScaleHitPauseDurationWithAttackSpeed; ((BasicMeleeAttack)this).OnEnter(); } public override void FixedUpdate() { ((EntityState)this).fixedAge = ((EntityState)this).fixedAge + Time.fixedDeltaTime; if (string.IsNullOrEmpty(MechanimHitboxParameter) && AlternateActiveParameter()) { ((BasicMeleeAttack)this).BeginMeleeAttackEffect(); } else if (base.animator.GetFloat(MechanimHitboxParameter) >= 0.5f) { ((BasicMeleeAttack)this).BeginMeleeAttackEffect(); } if (((EntityState)this).isAuthority) { ((BasicMeleeAttack)this).AuthorityFixedUpdate(); } } } [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInPlugin("HIFU.HIFUVoidFiendTweaks", "HIFUVoidFiendTweaks", "1.0.4")] public class Main : BaseUnityPlugin { public const string PluginGUID = "HIFU.HIFUVoidFiendTweaks"; public const string PluginAuthor = "HIFU"; public const string PluginName = "HIFUVoidFiendTweaks"; public const string PluginVersion = "1.0.4"; public static ConfigFile HVFTConfig; public static ConfigFile HVFTBackupConfig; public static ManualLogSource HVFTLogger; public static bool _preVersioning; public static ConfigEntry<bool> enableAutoConfig { get; set; } public static ConfigEntry<string> latestVersion { get; set; } public void Awake() { //IL_0027: Unknown result type (might be due to invalid IL or missing references) //IL_0031: Expected O, but got Unknown //IL_0149: Unknown result type (might be due to invalid IL or missing references) //IL_014e: Unknown result type (might be due to invalid IL or missing references) //IL_0175: Unknown result type (might be due to invalid IL or missing references) //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_018a: Unknown result type (might be due to invalid IL or missing references) //IL_018f: Unknown result type (might be due to invalid IL or missing references) //IL_0199: Unknown result type (might be due to invalid IL or missing references) //IL_019e: Unknown result type (might be due to invalid IL or missing references) HVFTLogger = ((BaseUnityPlugin)this).Logger; HVFTConfig = ((BaseUnityPlugin)this).Config; HVFTBackupConfig = new ConfigFile(Paths.ConfigPath + "\\HIFU.HIFUVoidFiendTweaks.Backup.cfg", true); HVFTBackupConfig.Bind<string>(": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :", ": DO NOT MODIFY THIS FILES CONTENTS :"); enableAutoConfig = HVFTConfig.Bind<bool>("Config", "Enable Auto Config Sync", true, "Disabling this would stop HIFUVoidFiendTweaks from syncing config whenever a new version is found."); _preVersioning = !((Dictionary<ConfigDefinition, string>)AccessTools.DeclaredPropertyGetter(typeof(ConfigFile), "OrphanedEntries").Invoke(HVFTConfig, null)).Keys.Any((ConfigDefinition x) => x.Key == "Latest Version"); latestVersion = HVFTConfig.Bind<string>("Config", "Latest Version", "1.0.4", "DO NOT CHANGE THIS"); if (enableAutoConfig.Value && (_preVersioning || latestVersion.Value != "1.0.4")) { latestVersion.Value = "1.0.4"; ConfigManager.VersionChanged = true; HVFTLogger.LogInfo((object)"Config Autosync Enabled."); } GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorBody.prefab").WaitForCompletion(); EntityStateMachine val2 = val.AddComponent<EntityStateMachine>(); val2.customName = "Flood"; val2.initialStateType = new SerializableEntityStateType(typeof(Idle)); val2.mainStateType = new SerializableEntityStateType(typeof(Idle)); SkillDef val3 = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/DLC1/VoidSurvivor/ChargeMegaBlaster.asset").WaitForCompletion(); val3.activationStateMachineName = "Flood"; IEnumerable<Type> enumerable = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(TweakBase)) select type; HVFTLogger.LogInfo((object)"==+----------------==TWEAKS==----------------+=="); foreach (Type item in enumerable) { TweakBase tweakBase = (TweakBase)Activator.CreateInstance(item); if (ValidateTweak(tweakBase)) { tweakBase.Init(); } } IEnumerable<Type> enumerable2 = from type in Assembly.GetExecutingAssembly().GetTypes() where !type.IsAbstract && type.IsSubclassOf(typeof(MiscBase)) select type; HVFTLogger.LogInfo((object)"==+----------------==MISC==----------------+=="); foreach (Type item2 in enumerable2) { MiscBase miscBase = (MiscBase)Activator.CreateInstance(item2); if (ValidateMisc(miscBase)) { miscBase.Init(); } } BigTracer.Create(); CorruptedDescriptions.ChangeDescriptions(); PermeateSD.Create(); } public bool ValidateTweak(TweakBase tb) { if (tb.isEnabled && ((BaseUnityPlugin)this).Config.Bind<bool>(tb.Name, "Enable?", true, "Vanilla is false").Value) { return true; } return false; } public bool ValidateMisc(MiscBase mb) { if (mb.isEnabled && ((BaseUnityPlugin)this).Config.Bind<bool>(mb.Name, "Enable?", true, "Vanilla is false").Value) { return true; } return false; } private void WITHINDESTRUCTIONMYFUCKINGBELOVED() { } } public abstract class MiscBase { public abstract string Name { get; } public virtual bool isEnabled { get; } = true; public T ConfigOption<T>(T value, string name, string description) { ConfigEntry<T> val = Main.HVFTConfig.Bind<T>(Name, name, value, description); ConfigManager.HandleConfig<T>((ConfigEntryBase)(object)val, Main.HVFTBackupConfig, name); return val.Value; } public abstract void Hooks(); public string d(float f) { return f * 100f + "%"; } public virtual void Init() { Hooks(); Main.HVFTLogger.LogInfo((object)("Added " + Name)); } } public abstract class MiscBase<T> : MiscBase where T : MiscBase<T> { public static T instance { get; set; } public MiscBase() { if (instance != null) { throw new InvalidOperationException("Singleton class " + typeof(T).Name + " was instantiated twice"); } instance = this as T; } } public static class CorruptPermeateIcon { public static string DATA = "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"; public static Sprite GetSprite() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) byte[] array = Convert.FromBase64String(DATA); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f); } } public static class PermeateIcon { public static string DATA = "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"; public static Sprite GetSprite() { //IL_000e: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Expected O, but got Unknown //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) byte[] array = Convert.FromBase64String(DATA); Texture2D val = new Texture2D(2, 2); ImageConversion.LoadImage(val, array); return Sprite.Create(val, new Rect(0f, 0f, (float)((Texture)val).width, (float)((Texture)val).height), new Vector2(0.5f, 0.5f), 100f); } } public abstract class TweakBase { public abstract string Name { get; } public abstract string SkillToken { get; } public abstract string DescText { get; } public abstract bool isVoid { get; } public virtual bool isEnabled { get; } = true; public T ConfigOption<T>(T value, string name, string description) { ConfigEntry<T> val = Main.HVFTConfig.Bind<T>(Name, name, value, description); ConfigManager.HandleConfig<T>((ConfigEntryBase)(object)val, Main.HVFTBackupConfig, name); return val.Value; } public abstract void Hooks(); public string d(float f) { return f * 100f + "%"; } public virtual void Init() { Hooks(); string text = ((!isVoid) ? ("VOIDSURVIVOR_" + SkillToken.ToUpper() + "_DESCRIPTION") : ("VOIDSURVIVOR_" + SkillToken.ToUpper() + "_TOOLTIP")); LanguageAPI.Add(text, DescText); Main.HVFTLogger.LogInfo((object)("Added " + Name)); } } public abstract class TweakBase<T> : TweakBase where T : TweakBase<T> { public static T instance { get; set; } public TweakBase() { if (instance != null) { throw new InvalidOperationException("Singleton class " + typeof(T).Name + " was instantiated twice"); } instance = this as T; } } } namespace HIFUVoidFiendTweaks.VFX { public static class BigTracer { public static GameObject tracer; public static void Create() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_00b6: Unknown result type (might be due to invalid IL or missing references) //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_00f3: Unknown result type (might be due to invalid IL or missing references) tracer = PrefabAPI.InstantiateClone(Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorBeamTracer.prefab").WaitForCompletion(), "FourthBeamTracer", false); EffectComponent component = tracer.GetComponent<EffectComponent>(); component.applyScale = true; LineRenderer component2 = tracer.GetComponent<LineRenderer>(); component2.widthMultiplier = Drown.FourthRadius * 0.5f; Transform transform = tracer.transform; transform.localScale = new Vector3(Drown.FourthRadius, Drown.FourthRadius, Drown.FourthRadius); Transform child = transform.GetChild(0); child.localScale = new Vector3(Drown.FourthRadius, Drown.FourthRadius, Drown.FourthRadius); Transform child2 = transform.GetChild(1); child2.localScale = new Vector3(Drown.FourthRadius, Drown.FourthRadius, Drown.FourthRadius); ParticleSystem component3 = ((Component)child.GetChild(1)).GetComponent<ParticleSystem>(); ((Component)component3).gameObject.SetActive(true); MainModule main = component3.main; ((MainModule)(ref main)).startSize = MinMaxCurve.op_Implicit(0.15f * Drown.FourthRadius); Light component4 = ((Component)child2.GetChild(2)).GetComponent<Light>(); component4.range = 2f * Drown.FourthRadius; component4.intensity = 10f; ContentAddition.AddEffect(tracer); } } } namespace HIFUVoidFiendTweaks.Skills { public class CorruptedDrown : TweakBase { public static float Damage; public static float PPS; public override string Name => "Primary :: Corrupted Drown"; public override string SkillToken => "primary_uprade"; public override string DescText => "<style=cKeywordName>【Corruption Upgrade】</style><style=cSub>Transform into a " + d(Damage) + " damage short-range beam.</style>"; public override bool isVoid => true; public override void Init() { Damage = ConfigOption(12f, "Damage", "Decimal. Vanilla is 20"); PPS = ConfigOption(4f, "Proc Coefficient Per Second", "Vanilla is 5"); base.Init(); } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown FireCorruptHandBeam.OnEnter += new hook_OnEnter(FireCorruptHandBeam_OnEnter); } private void FireCorruptHandBeam_OnEnter(orig_OnEnter orig, FireCorruptHandBeam self) { self.damageCoefficientPerSecond = Damage; self.procCoefficientPerSecond = PPS; orig.Invoke(self); } } internal class CorruptedFlood : TweakBase { public static float Damage; public static float Knockback; public static float AoE; public static float ProjectileSpeed; public static float Lifetime; public static float Cooldown; public override string Name => "Secondary :: Corrupted Flood"; public override string SkillToken => "secondary_uprade"; public override string DescText => "<style=cKeywordName>【Corruption Upgrade】</style><style=cSub>Transform into a " + d(Damage) + " damage black hole that pulls enemies in an enormous radius.</style>"; public override bool isVoid => true; public override void Init() { Knockback = ConfigOption(-2500f, "Knockback", "Vanilla is 3000"); AoE = ConfigOption(25f, "Radius", "Vanilla is 10"); Damage = ConfigOption(4f, "Damage", "Decimal. Vanilla is 11"); ProjectileSpeed = ConfigOption(40f, "Projectile Speed", "Vanilla is 70"); Lifetime = ConfigOption(4f, "Projectile Duration", "Vanilla is 99"); Cooldown = ConfigOption(7.5f, "Cooldown", "Vanilla is 4"); base.Init(); } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown FireCorruptDisks.OnEnter += new hook_OnEnter(FireCorruptDisks_OnEnter); Changes(); } private void FireCorruptDisks_OnEnter(orig_OnEnter orig, FireCorruptDisks self) { self.damageCoefficient = Damage; orig.Invoke(self); } private void Changes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0038: 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_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Unknown result type (might be due to invalid IL or missing references) GameObject val = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterBigProjectileCorrupted.prefab").WaitForCompletion(); ProjectileSimple component = val.GetComponent<ProjectileSimple>(); component.desiredForwardSpeed = ProjectileSpeed; component.lifetime = Lifetime; component.lifetimeExpiredEffect = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterExplosionCorrupted.prefab").WaitForCompletion(); ProjectileImpactExplosion component2 = val.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component2).blastRadius = AoE; RadialForce val2 = val.AddComponent<RadialForce>(); val2.radius = AoE; val2.damping = 0.5f; val2.forceMagnitude = Knockback; val2.forceCoefficientAtEdge = 0.5f; GameObject ghostPrefab = val.GetComponent<ProjectileController>().ghostPrefab; ghostPrefab.GetComponent<ProjectileGhostController>().inheritScaleFromProjectile = true; SkillDef val3 = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/DLC1/VoidSurvivor/FireCorruptDisk.asset").WaitForCompletion(); val3.baseRechargeInterval = Cooldown; } } public class CorruptedSuppress : TweakBase { public static float SelfDamage; public static float CorruptionGain; public static int MaxCharges; public static float duration; public static float endlag; public override string Name => "Special :: Corrupted Suppress"; public override string SkillToken => "special_uprade"; public override string DescText => "<style=cKeywordName>【Corruption Upgrade】</style><style=cSub>Transform to crush " + d(SelfDamage) + " health, gaining " + CorruptionGain + "% Corruption instead. Can hold up to " + MaxCharges + " orbs.</style>"; public override bool isVoid => true; public override void Init() { SelfDamage = ConfigOption(0.19f, "Self Damage", "Decimal. Vanilla is 0.25"); MaxCharges = ConfigOption(2, "Max Charges", "Vanilla is 2"); CorruptionGain = ConfigOption(25f, "Corruption Gain", "Vanilla is 25"); duration = ConfigOption(0.8f, "Animation Duration", "Vanilla is 1"); endlag = ConfigOption(0.3f, "Endlag", "Vanilla is 1"); base.Init(); } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_0024: Expected O, but got Unknown CrushBase.OnEnter += new hook_OnEnter(CrushBase_OnEnter); ChargeCrushBase.OnEnter += new hook_OnEnter(ChargeCrushBase_OnEnter); Changes(); } private void ChargeCrushBase_OnEnter(orig_OnEnter orig, ChargeCrushBase self) { if (self != null) { self.baseDuration = duration; } orig.Invoke(self); } private void CrushBase_OnEnter(orig_OnEnter orig, CrushBase self) { if (self is CrushHealth) { self.selfHealFraction = 0f - SelfDamage; self.corruptionChange = CorruptionGain; self.baseDuration = endlag; } orig.Invoke(self); } private void Changes() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) SkillDef val = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/DLC1/VoidSurvivor/CrushHealth.asset").WaitForCompletion(); val.baseMaxStock = MaxCharges; } } public class Drown : TweakBase { public static float Damage; public static float Radius; public static int FalloffType; public static float FourthDamage; public static int FourthFalloff; public static float FourthRadius; public int faaa; public override string Name => "Primary : Drown"; public override string SkillToken => "primary"; public override string DescText => "Fire a <style=cIsUtility>slowing</style> long-range beam for <style=cIsDamage>" + d(Damage) + " damage</style>. Every fourth shot fires a medium beam for an additional <style=cIsDamage>" + d(FourthDamage) + " damage</style>."; public override bool isVoid => false; public override void Init() { Damage = ConfigOption(3f, "Damage", "Decimal. Vanilla is 3"); Radius = ConfigOption(1f, "Radius", "Vanilla is 2"); FalloffType = ConfigOption(1, "Falloff Type", "0 is None, 1 is Standard, 2 is Buckshot. Vanilla is 0"); FourthDamage = ConfigOption(1.75f, "Fourth Hit Damage", "Decimal. Default is 1.5"); FourthFalloff = ConfigOption(0, "Fourth Hit Falloff Type", "0 is None, 1 is Standard, 2 is Buckshot. Default is 0"); FourthRadius = ConfigOption(5f, "Fourth Hit Radius", "Default is 5"); base.Init(); } public override void Hooks() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Expected O, but got Unknown //IL_002c: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Expected O, but got Unknown FireHandBeam.OnEnter += new hook_OnEnter(FireHandBeam_OnEnter); CharacterBody.onBodyStartGlobal += CharacterBody_onBodyStartGlobal; FireHandBeam.OnEnter += new Manipulator(FireHandBeam_OnEnter1); } private void CharacterBody_onBodyStartGlobal(CharacterBody body) { if (((Object)body).name == "VoidSurvivorBody(Clone)") { DrownFour component = ((Component)body).GetComponent<DrownFour>(); if (!Object.op_Implicit((Object)(object)component)) { ((Component)body).gameObject.AddComponent<DrownFour>(); } } } private void FireHandBeam_OnEnter1(ILContext il) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_0008: Expected O, but got Unknown //IL_0066: Unknown result type (might be due to invalid IL or missing references) ILCursor val = new ILCursor(il); if (val.TryGotoNext((MoveType)0, new Func<Instruction, bool>[2] { (Instruction x) => ILPatternMatchingExt.MatchLdcI4(x, 0), (Instruction x) => ILPatternMatchingExt.MatchStfld(x, typeof(BulletAttack), "falloffModel") })) { val.Remove(); val.Emit(OpCodes.Ldc_I4, faaa); } else { Main.HVFTLogger.LogError((object)"Failed to apply Drown Falloff IL Hook"); } } private void FireHandBeam_OnEnter(orig_OnEnter orig, FireHandBeam self) { self.damageCoefficient = Damage; self.bulletRadius = Radius; DrownFour component = ((Component)((EntityState)self).characterBody).GetComponent<DrownFour>(); if ((Object)(object)component != (Object)null) { component.FireCount++; } orig.Invoke(self); } public Drown() { int falloffType = FalloffType; if (1 == 0) { } int num = falloffType switch { 1 => 1, 2 => 2, _ => 0, }; if (1 == 0) { } faaa = num; base..ctor(); } } public class DrownFour : MonoBehaviour { public int FireCount; public CharacterBody body => ((Component)this).GetComponent<CharacterBody>(); private GameObject hitEffectPrefab => Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorBeamImpact.prefab").WaitForCompletion(); public void FixedUpdate() { //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //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_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_00f2: 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_0186: Unknown result type (might be due to invalid IL or missing references) //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_00e5: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) if (FireCount >= 4 && Util.HasEffectiveAuthority(((Component)body).gameObject)) { Util.PlaySound("Play_voidman_m2_explode", ((Component)this).gameObject); BulletAttack val = new BulletAttack(); val.owner = ((Component)this).gameObject; val.weapon = ((Component)this).gameObject; val.origin = body.corePosition; Ray aimRay = body.inputBank.GetAimRay(); val.aimVector = ((Ray)(ref aimRay)).direction; val.muzzleName = "MuzzleHandBeam"; val.maxDistance = 1000f; val.minSpread = 0f; val.maxSpread = 0f; val.radius = Drown.FourthRadius; BulletAttack val2 = val; int fourthFalloff = Drown.FourthFalloff; if (1 == 0) { } FalloffModel falloffModel = (FalloffModel)(fourthFalloff switch { 1 => 1, 2 => 2, _ => 0, }); if (1 == 0) { } val2.falloffModel = falloffModel; val.smartCollision = true; val.damage = body.damage * Drown.FourthDamage; val.procCoefficient = 0f; val.force = 0f; val.isCrit = Util.CheckRoll(body.crit, body.master); val.hitEffectPrefab = hitEffectPrefab; val.stopperMask = ((LayerIndex)(ref LayerIndex.noCollision)).mask; val.bulletCount = 1u; val.tracerEffectPrefab = BigTracer.tracer; val.damageType = DamageTypeCombo.op_Implicit((DamageType)8); val.Fire(); FireCount = 0; } } } public class Permeate : CoolerBasicMeleeAttack, IStepSetter { private int step; public override float BaseDuration => 0.5f; public override float DamageCoefficient => PermeateSD.DAMAGE_COEFF; public override string HitboxName => "Melee"; public override GameObject HitEffectPrefab => GameObject.VoidSurvivorBeamImpact; public override float ProcCoefficient => 1f; public override float HitPauseDuration => 0.05f; public override GameObject SwingEffectPrefab => GameObject.VoidSurvivorMeleeSlash1; public override string MuzzleString => "MuzzleMelee"; public override string MechanimHitboxParameter => "Melee.hitBoxActive"; public override void OnEnter() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_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_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_0098: Unknown result type (might be due to invalid IL or missing references) //IL_009d: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); int num = step; if (1 == 0) { } GameObject swingEffectPrefab = ((num != 2) ? GameObject.VoidSurvivorMeleeSlash1 : GameObject.VoidSurvivorMeleeSlash2); if (1 == 0) { } ((BasicMeleeAttack)this).swingEffectPrefab = swingEffectPrefab; ((BasicMeleeAttack)this).forceVector = Vector3.zero; ((BasicMeleeAttack)this).shorthopVelocityFromHit = 3f; if (step == 2) { ((BaseCharacterController)((EntityState)this).characterMotor).Motor.ForceUnground(0.1f); Vector3 aimDirection = ((EntityState)this).inputBank.aimDirection; aimDirection.y = 0f; CharacterMotor characterMotor = ((EntityState)this).characterMotor; characterMotor.velocity += aimDirection * PermeateSD.LUNGE_DISTANCE; } } public override void PlayAnimation() { AkSoundEngine.PostEvent(Events.Play_boss_falseson_skill1_swing, ((EntityState)this).gameObject); int num = step; int num2 = num; if (num2 == 2) { ((EntityState)this).PlayAnimation("LeftArm, Override", "SwingMelee2", "Melee.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } else { ((EntityState)this).PlayAnimation("LeftArm, Override", "SwingMelee1", "Melee.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } } public override void FixedUpdate() { base.FixedUpdate(); ((BaseState)this).StartAimMode(0.2f, false); if (step == 2) { ((EntityState)this).characterMotor.velocity.y = 0f; } } public void SetStep(int i) { step = i + 1; } public override void OnSerialize(NetworkWriter writer) { ((EntityState)this).OnSerialize(writer); writer.Write(step); } public override void OnDeserialize(NetworkReader reader) { ((EntityState)this).OnDeserialize(reader); step = reader.ReadInt32(); } 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 PermeateCorrupt : CoolerBasicMeleeAttack, IStepSetter { private int step; public override float BaseDuration => 0.3f; public override float DamageCoefficient => PermeateSD.DAMAGE_COEFF_CORRUPT; public override string HitboxName => "Melee"; public override GameObject HitEffectPrefab => GameObject.VoidSurvivorBeamImpactCorrupt; 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 => "Melee.hitBoxActive"; public override void OnEnter() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) base.OnEnter(); int num = step; if (1 == 0) { } GameObject swingEffectPrefab = ((num != 2) ? CorruptedPermeateSD.Slash1 : CorruptedPermeateSD.Slash2); if (1 == 0) { } ((BasicMeleeAttack)this).swingEffectPrefab = swingEffectPrefab; ((BasicMeleeAttack)this).forceVector = Vector3.zero; ((BasicMeleeAttack)this).shorthopVelocityFromHit = 3f; ((EntityState)this).characterMotor.walkSpeedPenaltyCoefficient = PermeateSD.CORRUPT_SPEED_BONUS; } public override void OnExit() { ((BasicMeleeAttack)this).OnExit(); ((EntityState)this).characterMotor.walkSpeedPenaltyCoefficient = 1f; } public override void PlayAnimation() { AkSoundEngine.PostEvent(Events.Play_boss_falseson_skill1_swing, ((EntityState)this).gameObject); int num = step; int num2 = num; if (num2 == 2) { ((EntityState)this).PlayAnimation("LeftArm, Override", "SwingMelee2", "Melee.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } else { ((EntityState)this).PlayAnimation("LeftArm, Override", "SwingMelee1", "Melee.playbackRate", ((BasicMeleeAttack)this).duration, 0f); } } public override void AuthorityModifyOverlapAttack(OverlapAttack overlapAttack) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) ((BasicMeleeAttack)this).AuthorityModifyOverlapAttack(overlapAttack); DamageAPI.AddModdedDamageType(overlapAttack, CorruptedPermeateSD.CorruptNullifyType); } public override void FixedUpdate() { base.FixedUpdate(); ((BaseState)this).StartAimMode(0.2f, false); } public void SetStep(int i) { step = i + 1; } public override void OnSerialize(NetworkWriter writer) { ((EntityState)this).OnSerialize(writer); writer.Write(step); } public override void OnDeserialize(NetworkReader reader) { ((EntityState)this).OnDeserialize(reader); step = reader.ReadInt32(); } 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 Suppress : TweakBase { public static float Healing; public static int MaxCharges; public static float CorruptionLoss; public override string Name => "Special : Suppress";