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 DroneSynergy v1.0.1
operator buff.dll
Decompiled 3 weeks agousing System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using R2API; using RiskOfOptions; using RiskOfOptions.OptionConfigs; using RiskOfOptions.Options; using RoR2; using UnityEngine; [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("operator buff")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("operator buff")] [assembly: AssemblyTitle("operator buff")] [assembly: AssemblyVersion("1.0.0.0")] namespace DroneSynergy; [BepInPlugin("com.Azrael.DroneSynergy", "Operator Drone Synergy", "1.0.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class DroneSynergyMod : BaseUnityPlugin { private readonly string[] droneNames = new string[14] { "RechargeDroneBody", "BombardmentDroneBody", "CleanupDroneBody", "EmergencyDroneBody", "EquipmentDroneBody", "CopycatDroneBody", "Drone1Body", "Drone2Body", "FlameDroneBody", "JailerDroneBody", "JunkDroneBody", "MissileDroneBody", "MegaDroneBody", "HaulerDroneBody" }; private ConfigEntry<float> cfgEmergencyRegenMult; private ConfigEntry<float> cfgEmergencyBaseRegen; private ConfigEntry<float> cfgGunnerDamageMult; private ConfigEntry<float> cfgHealingBaseRegen; private ConfigEntry<float> cfgHealingRegenMult; private ConfigEntry<float> cfgMissileCrit; private ConfigEntry<float> cfgMissileCritDmg; private ConfigEntry<float> cfgMegaDamageMult; private ConfigEntry<float> cfgEquipDamageMult; private ConfigEntry<float> cfgFlameAtkSpdMult; private ConfigEntry<float> cfgRechargeArmor; private ConfigEntry<float> cfgBombardCrit; private ConfigEntry<float> cfgBombardCritDmg; private ConfigEntry<float> cfgCleanupMoveSpd; private ConfigEntry<float> cfgCleanupAtkSpd; private ConfigEntry<float> cfgCopycatArmor; private ConfigEntry<float> cfgCopycatArmorMult; private ConfigEntry<float> cfgJailerShield; private ConfigEntry<float> cfgJunkHealthMult; private ConfigEntry<float> cfgHaulerAtkSpd; private ConfigEntry<float> cfgHaulerMoveSpdMult; public void Awake() { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Expected O, but got Unknown SetupConfigAndOptions(); RecalculateStatsAPI.GetStatCoefficients += new StatHookEventHandler(ApplyDroneSynergy); } private void SetupConfigAndOptions() { //IL_0051: 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_0061: Unknown result type (might be due to invalid IL or missing references) //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Expected O, but got Unknown //IL_0077: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //IL_0088: 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_0098: 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_00b3: Expected O, but got Unknown //IL_00ae: Unknown result type (might be due to invalid IL or missing references) //IL_00b8: Expected O, but got Unknown //IL_00e4: 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) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00ff: Unknown result type (might be due to invalid IL or missing references) //IL_010f: Expected O, but got Unknown //IL_010a: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Expected O, but got Unknown //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_0175: Unknown result type (might be due to invalid IL or missing references) //IL_0180: Unknown result type (might be due to invalid IL or missing references) //IL_0190: Expected O, but got Unknown //IL_018b: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Expected O, but got Unknown //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01a1: Unknown result type (might be due to invalid IL or missing references) //IL_01ac: Unknown result type (might be due to invalid IL or missing references) //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c7: Expected O, but got Unknown //IL_01c2: Unknown result type (might be due to invalid IL or missing references) //IL_01cc: Expected O, but got Unknown //IL_021d: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_022d: Unknown result type (might be due to invalid IL or missing references) //IL_0238: Unknown result type (might be due to invalid IL or missing references) //IL_0248: Expected O, but got Unknown //IL_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Expected O, but got Unknown //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_0259: Unknown result type (might be due to invalid IL or missing references) //IL_0264: Unknown result type (might be due to invalid IL or missing references) //IL_026f: Unknown result type (might be due to invalid IL or missing references) //IL_027f: Expected O, but got Unknown //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0284: Expected O, but got Unknown //IL_02b0: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Unknown result type (might be due to invalid IL or missing references) //IL_02c0: Unknown result type (might be due to invalid IL or missing references) //IL_02cb: Unknown result type (might be due to invalid IL or missing references) //IL_02db: Expected O, but got Unknown //IL_02d6: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Expected O, but got Unknown //IL_030c: Unknown result type (might be due to invalid IL or missing references) //IL_0311: Unknown result type (might be due to invalid IL or missing references) //IL_031c: Unknown result type (might be due to invalid IL or missing references) //IL_0327: Unknown result type (might be due to invalid IL or missing references) //IL_0337: Expected O, but got Unknown //IL_0332: Unknown result type (might be due to invalid IL or missing references) //IL_033c: Expected O, but got Unknown //IL_0368: Unknown result type (might be due to invalid IL or missing references) //IL_036d: Unknown result type (might be due to invalid IL or missing references) //IL_0378: Unknown result type (might be due to invalid IL or missing references) //IL_0383: Unknown result type (might be due to invalid IL or missing references) //IL_0393: Expected O, but got Unknown //IL_038e: Unknown result type (might be due to invalid IL or missing references) //IL_0398: Expected O, but got Unknown //IL_03c4: Unknown result type (might be due to invalid IL or missing references) //IL_03c9: Unknown result type (might be due to invalid IL or missing references) //IL_03d4: Unknown result type (might be due to invalid IL or missing references) //IL_03df: Unknown result type (might be due to invalid IL or missing references) //IL_03ef: Expected O, but got Unknown //IL_03ea: Unknown result type (might be due to invalid IL or missing references) //IL_03f4: Expected O, but got Unknown //IL_0445: Unknown result type (might be due to invalid IL or missing references) //IL_044a: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0460: Unknown result type (might be due to invalid IL or missing references) //IL_0470: Expected O, but got Unknown //IL_046b: Unknown result type (might be due to invalid IL or missing references) //IL_0475: Expected O, but got Unknown //IL_047c: Unknown result type (might be due to invalid IL or missing references) //IL_0481: Unknown result type (might be due to invalid IL or missing references) //IL_048c: Unknown result type (might be due to invalid IL or missing references) //IL_0497: Unknown result type (might be due to invalid IL or missing references) //IL_04a7: Expected O, but got Unknown //IL_04a2: Unknown result type (might be due to invalid IL or missing references) //IL_04ac: Expected O, but got Unknown //IL_04fd: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_050d: Unknown result type (might be due to invalid IL or missing references) //IL_0518: Unknown result type (might be due to invalid IL or missing references) //IL_0528: Expected O, but got Unknown //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_052d: Expected O, but got Unknown //IL_0534: Unknown result type (might be due to invalid IL or missing references) //IL_0539: Unknown result type (might be due to invalid IL or missing references) //IL_0544: Unknown result type (might be due to invalid IL or missing references) //IL_054f: Unknown result type (might be due to invalid IL or missing references) //IL_055f: Expected O, but got Unknown //IL_055a: Unknown result type (might be due to invalid IL or missing references) //IL_0564: Expected O, but got Unknown //IL_05b5: Unknown result type (might be due to invalid IL or missing references) //IL_05ba: Unknown result type (might be due to invalid IL or missing references) //IL_05c5: Unknown result type (might be due to invalid IL or missing references) //IL_05d0: Unknown result type (might be due to invalid IL or missing references) //IL_05e0: Expected O, but got Unknown //IL_05db: Unknown result type (might be due to invalid IL or missing references) //IL_05e5: Expected O, but got Unknown //IL_05ec: Unknown result type (might be due to invalid IL or missing references) //IL_05f1: Unknown result type (might be due to invalid IL or missing references) //IL_05fc: Unknown result type (might be due to invalid IL or missing references) //IL_0607: Unknown result type (might be due to invalid IL or missing references) //IL_0617: Expected O, but got Unknown //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_061c: Expected O, but got Unknown //IL_0648: Unknown result type (might be due to invalid IL or missing references) //IL_064d: Unknown result type (might be due to invalid IL or missing references) //IL_0658: Unknown result type (might be due to invalid IL or missing references) //IL_0663: Unknown result type (might be due to invalid IL or missing references) //IL_0673: Expected O, but got Unknown //IL_066e: Unknown result type (might be due to invalid IL or missing references) //IL_0678: Expected O, but got Unknown //IL_06a4: Unknown result type (might be due to invalid IL or missing references) //IL_06a9: Unknown result type (might be due to invalid IL or missing references) //IL_06b4: Unknown result type (might be due to invalid IL or missing references) //IL_06bf: Unknown result type (might be due to invalid IL or missing references) //IL_06cf: Expected O, but got Unknown //IL_06ca: Unknown result type (might be due to invalid IL or missing references) //IL_06d4: Expected O, but got Unknown //IL_0725: Unknown result type (might be due to invalid IL or missing references) //IL_072a: Unknown result type (might be due to invalid IL or missing references) //IL_0735: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0750: Expected O, but got Unknown //IL_074b: Unknown result type (might be due to invalid IL or missing references) //IL_0755: Expected O, but got Unknown //IL_075c: Unknown result type (might be due to invalid IL or missing references) //IL_0761: Unknown result type (might be due to invalid IL or missing references) //IL_076c: Unknown result type (might be due to invalid IL or missing references) //IL_0777: Unknown result type (might be due to invalid IL or missing references) //IL_0787: Expected O, but got Unknown //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_078c: Expected O, but got Unknown cfgEmergencyRegenMult = ((BaseUnityPlugin)this).Config.Bind<float>("Emergency Drone", "Regen Multiplier", 0.05f, "Percentage regen boost per drone (0.05 = 5%)"); cfgEmergencyBaseRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Emergency Drone", "Base Regen", 0.1f, "Flat regen boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgEmergencyRegenMult, new StepSliderConfig { min = 0f, max = 1f, increment = 0.05f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgEmergencyBaseRegen, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); cfgGunnerDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Gunner Drone", "Damage Multiplier", 0.1f, "Percentage damage boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgGunnerDamageMult, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); cfgHealingBaseRegen = ((BaseUnityPlugin)this).Config.Bind<float>("Healing Drone", "Base Regen", 0.05f, "Flat regen boost per drone"); cfgHealingRegenMult = ((BaseUnityPlugin)this).Config.Bind<float>("Healing Drone", "Regen Multiplier", 0.03f, "Percentage regen boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgHealingBaseRegen, new StepSliderConfig { min = 0f, max = 5f, increment = 0.05f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgHealingRegenMult, new StepSliderConfig { min = 0f, max = 1f, increment = 0.01f })); cfgMissileCrit = ((BaseUnityPlugin)this).Config.Bind<float>("Missile Drone", "Crit Chance", 1f, "Flat crit chance per drone (5 = 5%)"); cfgMissileCritDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Missile Drone", "Crit Damage Multiplier", 0.5f, "Percentage crit damage boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgMissileCrit, new StepSliderConfig { min = 0f, max = 100f, increment = 1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgMissileCritDmg, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); cfgMegaDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("TC-280", "Damage Multiplier", 1f, "Percentage damage boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgMegaDamageMult, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); cfgEquipDamageMult = ((BaseUnityPlugin)this).Config.Bind<float>("Equipment Drone", "Damage Multiplier", 0.1f, "Percentage damage boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgEquipDamageMult, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); cfgFlameAtkSpdMult = ((BaseUnityPlugin)this).Config.Bind<float>("Flame Drone", "Attack Speed Multiplier", 0.5f, "Percentage attack speed boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgFlameAtkSpdMult, new StepSliderConfig { min = 0f, max = 3f, increment = 0.1f })); cfgRechargeArmor = ((BaseUnityPlugin)this).Config.Bind<float>("Barrier Drone", "Armor Add", 5f, "Flat armor boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgRechargeArmor, new StepSliderConfig { min = 0f, max = 100f, increment = 5f })); cfgBombardCrit = ((BaseUnityPlugin)this).Config.Bind<float>("Bombardment Drone", "Crit Chance", 10f, "Flat crit chance per drone"); cfgBombardCritDmg = ((BaseUnityPlugin)this).Config.Bind<float>("Bombardment Drone", "Crit Damage Multiplier", 1f, "Percentage crit damage boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgBombardCrit, new StepSliderConfig { min = 0f, max = 100f, increment = 1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgBombardCritDmg, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); cfgCleanupMoveSpd = ((BaseUnityPlugin)this).Config.Bind<float>("Cleanup Drone", "Base Move Speed", 0.5f, "Flat movement speed boost per drone"); cfgCleanupAtkSpd = ((BaseUnityPlugin)this).Config.Bind<float>("Cleanup Drone", "Base Attack Speed", 0.1f, "Flat attack speed boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgCleanupMoveSpd, new StepSliderConfig { min = 0f, max = 5f, increment = 0.1f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgCleanupAtkSpd, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); cfgCopycatArmor = ((BaseUnityPlugin)this).Config.Bind<float>("Freeze Drone", "Armor Add", 10f, "Flat armor boost per drone"); cfgCopycatArmorMult = ((BaseUnityPlugin)this).Config.Bind<float>("Freeze Drone", "Armor Multiplier", 0.3f, "Percentage total armor boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgCopycatArmor, new StepSliderConfig { min = 0f, max = 100f, increment = 5f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgCopycatArmorMult, new StepSliderConfig { min = 0f, max = 2f, increment = 0.1f })); cfgJailerShield = ((BaseUnityPlugin)this).Config.Bind<float>("Jailer Drone", "Base Shield Add", 50f, "Flat shield boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgJailerShield, new StepSliderConfig { min = 0f, max = 500f, increment = 10f })); cfgJunkHealthMult = ((BaseUnityPlugin)this).Config.Bind<float>("Junk Drone", "Health Multiplier", 0.1f, "Percentage health boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgJunkHealthMult, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); cfgHaulerAtkSpd = ((BaseUnityPlugin)this).Config.Bind<float>("Hauler Drone", "Base Attack Speed", 0.1f, "Flat attack speed boost per drone"); cfgHaulerMoveSpdMult = ((BaseUnityPlugin)this).Config.Bind<float>("Hauler Drone", "Move Speed Multiplier", 0.1f, "Percentage movement speed boost per drone"); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgHaulerAtkSpd, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); ModSettingsManager.AddOption((BaseOption)new StepSliderOption(cfgHaulerMoveSpdMult, new StepSliderConfig { min = 0f, max = 2f, increment = 0.05f })); } private void ApplyDroneSynergy(CharacterBody sender, StatHookEventArgs args) { if ((Object)(object)sender == (Object)null || (Object)(object)sender.master == (Object)null || !((Object)sender).name.Contains("DroneTechBody")) { return; } Dictionary<string, int> dictionary = new Dictionary<string, int>(); string[] array = droneNames; foreach (string key in array) { dictionary[key] = 0; } foreach (CharacterMaster readOnlyInstances in CharacterMaster.readOnlyInstancesList) { if (!Object.op_Implicit((Object)(object)readOnlyInstances.minionOwnership) || !((Object)(object)readOnlyInstances.minionOwnership.ownerMaster == (Object)(object)sender.master)) { continue; } CharacterBody body = readOnlyInstances.GetBody(); if ((Object)(object)body != (Object)null && (Object)(object)body.healthComponent != (Object)null && body.healthComponent.alive) { string name = ((Object)readOnlyInstances.bodyPrefab).name; if (dictionary.ContainsKey(name)) { dictionary[name]++; } } } if (dictionary["EmergencyDroneBody"] > 0) { ApplyEmergencyDroneBuff(dictionary["EmergencyDroneBody"], args); } if (dictionary["Drone1Body"] > 0) { ApplyDrone1Buff(dictionary["Drone1Body"], args); } if (dictionary["Drone2Body"] > 0) { ApplyDrone2Buff(dictionary["Drone2Body"], args); } if (dictionary["MissileDroneBody"] > 0) { ApplyMissileDroneBuff(dictionary["MissileDroneBody"], args); } if (dictionary["MegaDroneBody"] > 0) { ApplyMegaDroneBuff(dictionary["MegaDroneBody"], args); } if (dictionary["EquipmentDroneBody"] > 0) { ApplyEquipmentDroneBuff(dictionary["EquipmentDroneBody"], args); } if (dictionary["FlameDroneBody"] > 0) { ApplyFlameDroneBuff(dictionary["FlameDroneBody"], args); } if (dictionary["RechargeDroneBody"] > 0) { ApplyRechargeDroneBuff(dictionary["RechargeDroneBody"], args); } if (dictionary["BombardmentDroneBody"] > 0) { ApplyBombardmentDroneBuff(dictionary["BombardmentDroneBody"], args); } if (dictionary["CleanupDroneBody"] > 0) { ApplyCleanupDroneBuff(dictionary["CleanupDroneBody"], args); } if (dictionary["CopycatDroneBody"] > 0) { ApplyCopycatDroneBuff(dictionary["CopycatDroneBody"], args); } if (dictionary["JailerDroneBody"] > 0) { ApplyJailerDroneBuff(dictionary["JailerDroneBody"], args); } if (dictionary["JunkDroneBody"] > 0) { ApplyJunkDroneBuff(dictionary["JunkDroneBody"], args); } if (dictionary["HaulerDroneBody"] > 0) { ApplyHaulerDroneBuff(dictionary["HaulerDroneBody"], args); } } private void ApplyEmergencyDroneBuff(int count, StatHookEventArgs args) { args.regenMultAdd += cfgEmergencyRegenMult.Value * (float)count; args.baseRegenAdd += cfgEmergencyBaseRegen.Value * (float)count; } private void ApplyDrone1Buff(int count, StatHookEventArgs args) { args.damageMultAdd += cfgGunnerDamageMult.Value * (float)count; } private void ApplyDrone2Buff(int count, StatHookEventArgs args) { args.baseRegenAdd += cfgHealingBaseRegen.Value * (float)count; args.regenMultAdd += cfgHealingRegenMult.Value * (float)count; } private void ApplyMissileDroneBuff(int count, StatHookEventArgs args) { args.critAdd += cfgMissileCrit.Value * (float)count; args.critDamageMultAdd += cfgMissileCritDmg.Value * (float)count; } private void ApplyMegaDroneBuff(int count, StatHookEventArgs args) { args.damageMultAdd += cfgMegaDamageMult.Value * (float)count; } private void ApplyEquipmentDroneBuff(int count, StatHookEventArgs args) { args.damageMultAdd += cfgEquipDamageMult.Value * (float)count; } private void ApplyFlameDroneBuff(int count, StatHookEventArgs args) { args.attackSpeedMultAdd += cfgFlameAtkSpdMult.Value * (float)count; } private void ApplyRechargeDroneBuff(int count, StatHookEventArgs args) { args.armorAdd += cfgRechargeArmor.Value * (float)count; } private void ApplyBombardmentDroneBuff(int count, StatHookEventArgs args) { args.critAdd += cfgBombardCrit.Value * (float)count; args.critDamageMultAdd += cfgBombardCritDmg.Value * (float)count; } private void ApplyCleanupDroneBuff(int count, StatHookEventArgs args) { args.baseMoveSpeedAdd += cfgCleanupMoveSpd.Value * (float)count; args.baseAttackSpeedAdd += cfgCleanupAtkSpd.Value * (float)count; } private void ApplyCopycatDroneBuff(int count, StatHookEventArgs args) { args.armorAdd += cfgCopycatArmor.Value * (float)count; args.armorTotalMult += cfgCopycatArmorMult.Value * (float)count; } private void ApplyJailerDroneBuff(int count, StatHookEventArgs args) { args.baseShieldAdd += cfgJailerShield.Value * (float)count; } private void ApplyJunkDroneBuff(int count, StatHookEventArgs args) { args.healthMultAdd += cfgJunkHealthMult.Value * (float)count; } private void ApplyHaulerDroneBuff(int count, StatHookEventArgs args) { args.baseAttackSpeedAdd += cfgHaulerAtkSpd.Value * (float)count; args.moveSpeedMultAdd += cfgHaulerMoveSpdMult.Value * (float)count; } }