Decompiled source of SurvivorTweaks v1.7.0
SurvivorTweaks.dll
Decompiled 12 hours 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.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using EntityStates; using EntityStates.Bandit2.Weapon; using EntityStates.Captain.Weapon; using EntityStates.CaptainSupplyDrop; using EntityStates.Commando.CommandoWeapon; using EntityStates.Engi.EngiBubbleShield; using EntityStates.Engi.Mine; using EntityStates.EngiTurret.EngiTurretWeapon; using EntityStates.Huntress; using EntityStates.Huntress.HuntressWeapon; using EntityStates.Huntress.Weapon; using EntityStates.Mage; using EntityStates.Mage.Weapon; using EntityStates.Merc; using EntityStates.Railgunner.Weapon; using EntityStates.Toolbot; using EntityStates.VoidSurvivor.Weapon; using IL.RoR2; using Microsoft.CodeAnalysis; using Mono.Cecil.Cil; using MonoMod.Cil; using On.EntityStates.Bandit2.Weapon; using On.EntityStates.Captain.Weapon; using On.EntityStates.Engi.EngiBubbleShield; using On.EntityStates.Huntress.HuntressWeapon; using On.EntityStates.Huntress.Weapon; using On.EntityStates.Merc; using On.EntityStates.Railgunner.Weapon; using On.EntityStates.Toolbot; using On.EntityStates.VoidSurvivor.Weapon; using On.RoR2; using RoR2; using RoR2.Orbs; using RoR2.Projectile; using UnityEngine; using UnityEngine.AddressableAssets; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("SurvivorTweaks")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("SurvivorTweaks")] [assembly: AssemblyTitle("SurvivorTweaks")] [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 SurvivorTweaks { internal static class Log { private static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void Debug(object data) { _logSource.LogDebug(data); } internal static void Error(object data) { _logSource.LogError(data); } internal static void Fatal(object data) { _logSource.LogFatal(data); } internal static void Info(object data) { _logSource.LogInfo(data); } internal static void Message(object data) { _logSource.LogMessage(data); } internal static void Warning(object data) { _logSource.LogWarning(data); } } [BepInPlugin("Jeffdev.SurvivorTweaks", "SurvivorTweaks", "1.7.0")] public class SurvivorTweaks : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FireShiv <>9__152_3; public static hook_AuthorityModifyOverlapAttack <>9__152_4; public static hook_OnEnter <>9__152_7; public static hook_OnEnter <>9__152_8; public static hook_OnEnter <>9__152_14; public static Action <>9__152_15; public static Func<Instruction, bool> <>9__161_0; internal void <Awake>b__152_3(orig_FireShiv orig, Bandit2FireShiv self) { self.damageCoefficient = (float)bandDaggerDmg.Value / 100f; orig.Invoke(self); } internal void <Awake>b__152_4(orig_AuthorityModifyOverlapAttack orig, SlashBlade self, OverlapAttack overlapAttack) { overlapAttack.damage = (float)bandDaggerDmg.Value / 100f * ((BaseState)self).damageStat; orig.Invoke(self, overlapAttack); } internal void <Awake>b__152_7(orig_OnEnter orig, ToolbotDash self) { self.speedMultiplier = multTransportMoveSpd.Value / 100; orig.Invoke(self); } internal void <Awake>b__152_8(orig_OnEnter orig, Deployed self) { orig.Invoke(self); BeginRapidlyActivatingAndDeactivating component = ((EntityState)self).gameObject.GetComponent<BeginRapidlyActivatingAndDeactivating>(); if (Object.op_Implicit((Object)(object)component)) { ((Behaviour)component).enabled = false; } } internal void <Awake>b__152_14(orig_OnEnter orig, CrushBase self) { if (self is CrushCorruption) { self.selfHealFraction = (float)voidSuppressHeal.Value / 100f; self.corruptionChange = -voidSuppressCorruptCrushed.Value; } else if (self is CrushHealth) { self.selfHealFraction = 0f - (float)voidCorruptSuppressCrush.Value / 100f; self.corruptionChange = voidCorruptSuppressGain.Value; } orig.Invoke(self); } internal void <Awake>b__152_15() { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_016b: 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_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06b6: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_073d: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_076e: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) FirePistol2.damageCoefficient = (float)cmdDblTapDmg.Value / 100f; FireThermite.damageCoefficient = (float)cmdRoundDmg.Value / 100f; GameObject obj = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/FMJRamping.prefab").WaitForCompletion(); obj.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "fmj"; obj.GetComponent<ProjectileController>().procCoefficient = cmdRoundProc.Value; FireBarrage.damageCoefficient = (float)cmdSuppDmg.Value / 100f; GameObject obj2 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoGrenadeProjectile.prefab").WaitForCompletion(); ProjectileController component = obj2.GetComponent<ProjectileController>(); ProjectileImpactExplosion component2 = obj2.GetComponent<ProjectileImpactExplosion>(); component.procCoefficient = cmdGrenadeProc.Value; ((ProjectileExplosion)component2).blastRadius = cmdGrenadeAoe.Value; ((Component)component2).transform.localScale = Vector3.one * (float)cmdGrenadeAoe.Value; ((ProjectileExplosion)component2).blastProcCoefficient = cmdGrenadeProc.Value; ThrowGlaive.damageCoefficient = (float)huntGlaiveDmg.Value / 100f; ThrowGlaive.damageCoefficientPerBounce = ((float)huntGlaiveDmgBounce.Value + 100f) / 100f; ThrowGlaive.glaiveProcCoefficient = huntGlaiveProc.Value; ArrowRain.damageCoefficient = (float)(huntArrowRainDmg.Value * 2) / 100f; ArrowRain.arrowRainRadius = huntArrowRainAoe.Value; ProjectileDotZone component3 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRain.prefab").WaitForCompletion().GetComponent<ProjectileDotZone>(); ((Component)component3).transform.localScale = Vector3.one * huntArrowRainAoe.Value; component3.overlapProcCoefficient = huntArrowRainProc.Value; GameObject obj3 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/Bandit2ShivProjectile.prefab").WaitForCompletion(); obj3.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "shiv"; obj3.GetComponent<ProjectileController>().procCoefficient = bandShivProc.Value; BaseNailgunState.damageCoefficient = (float)multNailgunDmg.Value / 100f; BaseNailgunState.procCoefficient = multNailgunProc.Value; GameObject obj4 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/ToolbotGrenadeLauncherProjectile.prefab").WaitForCompletion(); obj4.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "scrap"; ProjectileImpactExplosion component4 = obj4.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component4).blastProcCoefficient = multScrapProc.Value; ((ProjectileExplosion)component4).blastRadius = multScrapAoe.Value; GameObject obj5 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/CryoCanisterProjectile.prefab").WaitForCompletion(); obj5.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "blastcan"; ProjectileImpactExplosion component5 = obj5.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component5).blastProcCoefficient = multScrapProc.Value; ((ProjectileExplosion)component5).childrenDamageCoefficient = (float)multBombletDmg.Value / 1000f; ((ProjectileExplosion)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/CryoCanisterBombletsProjectile.prefab").WaitForCompletion().GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = multScrapProc.Value; ToolbotDash.knockbackDamageCoefficient = multTransportDmg.Value / 100; GameObject obj6 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiGrenadeProjectile.prefab").WaitForCompletion(); obj6.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "enginade"; ProjectileImpactExplosion component6 = obj6.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component6).blastProcCoefficient = engGrenadeProc.Value; ((ProjectileExplosion)component6).blastRadius = engGrenadeAoe.Value; GameObject obj7 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiMine.prefab").WaitForCompletion(); obj7.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "proxmines"; Detonate.blastRadius = engPressureAoe.Value; obj7.GetComponent<ProjectileController>().procCoefficient = engPressureProc.Value; GameObject obj8 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/SpiderMine.prefab").WaitForCompletion(); obj8.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "spidermines"; obj8.GetComponent<ProjectileController>().procCoefficient = engSpiderProc.Value; GameObject obj9 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiHarpoon.prefab").WaitForCompletion(); obj9.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "harpoon"; obj9.GetComponent<ProjectileController>().procCoefficient = engHarpoonProc.Value; Deployed.lifetime = engBubbleDuration.Value; FireGauss.damageCoefficient = (float)engTurretGaussDmg.Value / 100f; GameObject obj10 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageFireboltBasic.prefab").WaitForCompletion(); obj10.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "flamebolt"; obj10.GetComponent<ProjectileController>().procCoefficient = artiFlameProc.Value; ((ProjectileExplosion)obj10.GetComponent<ProjectileImpactExplosion>()).blastRadius = artiFlameAoe.Value; GameObject obj11 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageLightningboltBasic.prefab").WaitForCompletion(); obj11.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "lightningbolt"; obj11.GetComponent<ProjectileController>().procCoefficient = artiFlameProc.Value; ((ProjectileExplosion)obj11.GetComponent<ProjectileImpactExplosion>()).blastRadius = artiPlasmaAoe.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageIceBombProjectile.prefab").WaitForCompletion().GetComponent<ProjectileController>() .procCoefficient = artiFlameProc.Value; GameObject obj12 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageLightningBombProjectile.prefab").WaitForCompletion(); ProjectileImpactExplosion component7 = obj12.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component7).blastRadius = artiBombAoe.Value; ((ProjectileExplosion)component7).blastProcCoefficient = artiBombProc.Value; obj12.GetComponent<ProjectileProximityBeamController>().damageCoefficient = (float)artiBombSparkDmg.Value / 100f; GameObject obj13 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageIcewallPillarProjectile.prefab").WaitForCompletion(); obj13.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "icewall"; obj13.GetComponent<ProjectileController>().procCoefficient = artiSnapProc.Value; Flamethrower.procCoefficientPerTick = artiFlamethrowerProc.Value; FlyUpState.blastAttackDamageCoefficient = (float)artiIonDmg.Value / 100f; FlyUpState.blastAttackProcCoefficient = artiIonProc.Value; FlyUpState.blastAttackRadius = artiIonAoe.Value; Evis.damageCoefficient = (float)mercEviscDmg.Value / 100f; Evis.procCoefficient = mercEviscProc.Value; GameObject obj14 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Merc/EvisProjectile.prefab").WaitForCompletion(); obj14.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "slicingwinds"; obj14.GetComponent<ProjectileController>().procCoefficient = mercSlicingProc.Value; ((ProjectileExplosion)obj14.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = mercSlicingProc.Value; GameObject obj15 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainTazer.prefab").WaitForCompletion(); obj15.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "tazer"; obj15.GetComponent<ProjectileController>().procCoefficient = captainTaserProc.Value; ProjectileImpactExplosion component8 = obj15.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component8).blastProcCoefficient = captainTaserProc.Value; ((ProjectileExplosion)component8).blastRadius = captainTaserAoe.Value; GameObject obj16 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainAirstrikeProjectile1.prefab").WaitForCompletion(); obj16.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "orbital"; ((ProjectileExplosion)obj16.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = captainProbeProc.Value; GameObject obj17 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainAirstrikeAltProjectile.prefab").WaitForCompletion(); obj17.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "diablo"; ((ProjectileExplosion)obj17.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = captainDiabloProc.Value; CallSupplyDropBase.impactDamageCoefficient = (float)captainBeaconDmg.Value / 100f; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Base.prefab").WaitForCompletion(); HealingWard component9 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainHealingWard.prefab").WaitForCompletion().GetComponent<HealingWard>(); component9.Networkradius = captainBeaconRadius.Value; component9.radius = captainBeaconRadius.Value; component9.healPoints = 0f; component9.healFraction = (float)captainBeaconHeal.Value / 100f; ShockZoneMainState.shockFrequency = captainBeaconShockCount.Value; ShockZoneMainState.shockRadius = captainBeaconRadius.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, EquipmentRestock.prefab").WaitForCompletion().GetComponent<GenericEnergyComponent>() .capacity = 33 * captainBeaconResupplyUses.Value + 1; GameObject obj18 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Railgunner/RailgunnerPistolProjectile.prefab").WaitForCompletion(); obj18.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "railpistol"; obj18.GetComponent<ProjectileController>().procCoefficient = railgunnerXQRProc.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Railgunner/RailgunnerMineAltDetonated.prefab").WaitForCompletion().GetComponent<BuffWard>() .expireDuration = railgunnerPolarDuration.Value; GameObject obj19 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterSmallProjectile.prefab").WaitForCompletion(); obj19.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "floodsmall"; obj19.GetComponent<ProjectileController>().procCoefficient = voidFloodProc.Value; GameObject obj20 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterBigProjectile.prefab").WaitForCompletion(); obj20.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "floodbig"; ((ProjectileExplosion)obj20.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = voidFloodProc.Value; GameObject obj21 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterBigProjectileCorrupted.prefab").WaitForCompletion(); obj21.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "corruptflood"; ((ProjectileExplosion)obj21.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = voidCorruptFloodProc.Value; } internal bool <BulletAttack_HandleBulletDamage>b__161_0(Instruction x) { return ILPatternMatchingExt.MatchCall(x, typeof(NetworkExtensions), "ReadDamageInfo"); } } public const string PluginGUID = "Jeffdev.SurvivorTweaks"; public const string PluginAuthor = "Jeffdev"; public const string PluginName = "SurvivorTweaks"; public const string PluginVersion = "1.7.0"; public static ConfigEntry<int> cmdDblTapDmg; public static ConfigEntry<float> cmdDblTapProc; public static ConfigEntry<int> cmdRoundDmg; public static ConfigEntry<int> cmdRoundPierceDmg; public static ConfigEntry<float> cmdRoundProc; public static ConfigEntry<int> cmdBlastDmg; public static ConfigEntry<float> cmdBlastProc; public static ConfigEntry<int> cmdSuppDmg; public static ConfigEntry<float> cmdSuppProc; public static ConfigEntry<int> cmdGrenadeAoe; public static ConfigEntry<int> cmdGrenadeDmg; public static ConfigEntry<float> cmdGrenadeProc; public static ConfigEntry<int> huntStrafeDmg; public static ConfigEntry<float> huntStrafeProc; public static ConfigEntry<int> huntFlurryDmg; public static ConfigEntry<float> huntFlurryProc; public static ConfigEntry<int> huntGlaiveDmg; public static ConfigEntry<int> huntGlaiveDmgBounce; public static ConfigEntry<float> huntGlaiveProc; public static ConfigEntry<float> huntArrowRainAoe; public static ConfigEntry<int> huntArrowRainDmg; public static ConfigEntry<float> huntArrowRainProc; public static ConfigEntry<int> huntBallistaDmg; public static ConfigEntry<float> huntBallistaProc; public static ConfigEntry<int> bandHemoDmg; public static ConfigEntry<int> bandBurstDmg; public static ConfigEntry<float> bandBurstProc; public static ConfigEntry<int> bandBlastDmg; public static ConfigEntry<float> bandBlastProc; public static ConfigEntry<int> bandDaggerDmg; public static ConfigEntry<float> bandDaggerProc; public static ConfigEntry<int> bandShivDmg; public static ConfigEntry<float> bandShivProc; public static ConfigEntry<int> bandSmokeDmg; public static ConfigEntry<float> bandSmokeProc; public static ConfigEntry<int> bandLightsOutDmg; public static ConfigEntry<float> bandLightsOutProc; public static ConfigEntry<int> bandDesperadoDmg; public static ConfigEntry<int> bandDesperadoBuff; public static ConfigEntry<float> bandDesperadoProc; public static ConfigEntry<int> multNailgunDmg; public static ConfigEntry<float> multNailgunProc; public static ConfigEntry<int> multRebarDmg; public static ConfigEntry<float> multRebarProc; public static ConfigEntry<float> multScrapAoe; public static ConfigEntry<int> multScrapDmg; public static ConfigEntry<float> multScrapProc; public static ConfigEntry<int> multSawDmg; public static ConfigEntry<float> multSawProc; public static ConfigEntry<int> multCanisterDmg; public static ConfigEntry<int> multBombletDmg; public static ConfigEntry<float> multCanisterProc; public static ConfigEntry<float> multBombletProc; public static ConfigEntry<int> multTransportDmg; public static ConfigEntry<int> multTransportMoveSpd; public static ConfigEntry<float> multTransportProc; public static ConfigEntry<float> engGrenadeAoe; public static ConfigEntry<int> engGrenadeDmg; public static ConfigEntry<int> engGrenadeMax; public static ConfigEntry<float> engGrenadeProc; public static ConfigEntry<float> engPressureAoe; public static ConfigEntry<int> engPressureMinDmg; public static ConfigEntry<int> engPressureMaxDmg; public static ConfigEntry<float> engPressureProc; public static ConfigEntry<float> engSpiderAoe; public static ConfigEntry<int> engSpiderDmg; public static ConfigEntry<float> engSpiderProc; public static ConfigEntry<int> engBubbleDuration; public static ConfigEntry<int> engHarpoonDmg; public static ConfigEntry<float> engHarpoonProc; public static ConfigEntry<int> engHarpoonRange; public static ConfigEntry<int> engTurretGaussDmg; public static ConfigEntry<float> engTurretGaussProc; public static ConfigEntry<int> engTurretCarbonDmg; public static ConfigEntry<float> engTurretCarbonProc; public static ConfigEntry<float> artiFlameAoe; public static ConfigEntry<int> artiFlameDmg; public static ConfigEntry<float> artiFlameProc; public static ConfigEntry<float> artiPlasmaAoe; public static ConfigEntry<int> artiPlasmaDmg; public static ConfigEntry<float> artiPlasmaProc; public static ConfigEntry<float> artiBombAoe; public static ConfigEntry<int> artiBombSparkDmg; public static ConfigEntry<float> artiBombProc; public static ConfigEntry<float> artiSparkProc; public static ConfigEntry<int> artiSpearMinDmg; public static ConfigEntry<int> artiSpearMaxDmg; public static ConfigEntry<float> artiSpearProc; public static ConfigEntry<int> artiSnapDmg; public static ConfigEntry<float> artiSnapProc; public static ConfigEntry<int> artiFlamethrowerDmg; public static ConfigEntry<float> artiFlamethrowerProc; public static ConfigEntry<float> artiIonAoe; public static ConfigEntry<int> artiIonDmg; public static ConfigEntry<float> artiIonProc; public static ConfigEntry<int> mercSwordDmg; public static ConfigEntry<float> mercSwordProc; public static ConfigEntry<int> mercWhirlwindDmg; public static ConfigEntry<float> mercWhirlwindProc; public static ConfigEntry<int> mercRisingDmg; public static ConfigEntry<float> mercRisingProc; public static ConfigEntry<int> mercBindDmg; public static ConfigEntry<float> mercBindProc; public static ConfigEntry<int> mercFocusDmg; public static ConfigEntry<float> mercFocusProc; public static ConfigEntry<int> mercEviscDmg; public static ConfigEntry<float> mercEviscProc; public static ConfigEntry<int> mercSlicingDmg; public static ConfigEntry<float> mercSlicingProc; public static ConfigEntry<int> captainShotgunDmg; public static ConfigEntry<float> captainShotgunProc; public static ConfigEntry<float> captainTaserAoe; public static ConfigEntry<int> captainTaserDmg; public static ConfigEntry<float> captainTaserProc; public static ConfigEntry<int> captainProbeDmg; public static ConfigEntry<float> captainProbeProc; public static ConfigEntry<int> captainDiabloDmg; public static ConfigEntry<float> captainDiabloProc; public static ConfigEntry<int> captainBeaconDmg; public static ConfigEntry<int> captainBeaconRadius; public static ConfigEntry<int> captainBeaconHeal; public static ConfigEntry<float> captainBeaconShockCount; public static ConfigEntry<int> captainBeaconResupplyUses; public static ConfigEntry<int> railgunnerXQRDamage; public static ConfigEntry<float> railgunnerXQRProc; public static ConfigEntry<int> railgunnerM99Damage; public static ConfigEntry<float> railgunnerM99Proc; public static ConfigEntry<int> railgunnerHH44Damage; public static ConfigEntry<float> railgunnerHH44Proc; public static ConfigEntry<int> railgunnerPolarDuration; public static ConfigEntry<int> railgunnerSuperCritMult; public static ConfigEntry<int> railgunnerSuperDamage; public static ConfigEntry<float> railgunnerSuperProc; public static ConfigEntry<int> railgunnerCryoDamage; public static ConfigEntry<float> railgunnerCryoProc; public static ConfigEntry<int> voidDrownDmg; public static ConfigEntry<float> voidDrownProc; public static ConfigEntry<int> voidCorruptDrownDmg; public static ConfigEntry<float> voidCorruptDrownProc; public static ConfigEntry<int> voidFloodUnchargedDmg; public static ConfigEntry<int> voidFloodChargedDmg; public static ConfigEntry<float> voidFloodProc; public static ConfigEntry<int> voidCorruptFloodDmg; public static ConfigEntry<float> voidCorruptFloodProc; public static ConfigEntry<int> voidSuppressCorruptCrushed; public static ConfigEntry<int> voidSuppressHeal; public static ConfigEntry<int> voidCorruptSuppressGain; public static ConfigEntry<int> voidCorruptSuppressCrush; public void Awake() { //IL_143f: Unknown result type (might be due to invalid IL or missing references) //IL_1449: Expected O, but got Unknown //IL_1450: Unknown result type (might be due to invalid IL or missing references) //IL_145a: Expected O, but got Unknown //IL_1461: Unknown result type (might be due to invalid IL or missing references) //IL_146b: Expected O, but got Unknown //IL_1472: Unknown result type (might be due to invalid IL or missing references) //IL_147c: Expected O, but got Unknown //IL_1483: Unknown result type (might be due to invalid IL or missing references) //IL_148d: Expected O, but got Unknown //IL_14a1: Unknown result type (might be due to invalid IL or missing references) //IL_14a6: Unknown result type (might be due to invalid IL or missing references) //IL_14ac: Expected O, but got Unknown //IL_14dc: Unknown result type (might be due to invalid IL or missing references) //IL_14e6: Expected O, but got Unknown //IL_14ed: Unknown result type (might be due to invalid IL or missing references) //IL_14f7: Expected O, but got Unknown //IL_14c5: Unknown result type (might be due to invalid IL or missing references) //IL_14ca: Unknown result type (might be due to invalid IL or missing references) //IL_14d0: Expected O, but got Unknown //IL_150b: Unknown result type (might be due to invalid IL or missing references) //IL_1510: Unknown result type (might be due to invalid IL or missing references) //IL_1516: Expected O, but got Unknown //IL_1546: Unknown result type (might be due to invalid IL or missing references) //IL_1550: Expected O, but got Unknown //IL_1557: Unknown result type (might be due to invalid IL or missing references) //IL_1561: Expected O, but got Unknown //IL_1568: Unknown result type (might be due to invalid IL or missing references) //IL_1572: Expected O, but got Unknown //IL_1579: Unknown result type (might be due to invalid IL or missing references) //IL_1583: Expected O, but got Unknown //IL_158a: Unknown result type (might be due to invalid IL or missing references) //IL_1594: Expected O, but got Unknown //IL_159b: Unknown result type (might be due to invalid IL or missing references) //IL_15a5: Expected O, but got Unknown //IL_152f: Unknown result type (might be due to invalid IL or missing references) //IL_1534: Unknown result type (might be due to invalid IL or missing references) //IL_153a: Expected O, but got Unknown //IL_15d0: Unknown result type (might be due to invalid IL or missing references) //IL_15da: Expected O, but got Unknown //IL_15e1: Unknown result type (might be due to invalid IL or missing references) //IL_15eb: Expected O, but got Unknown //IL_15f2: Unknown result type (might be due to invalid IL or missing references) //IL_15fc: Expected O, but got Unknown //IL_1603: Unknown result type (might be due to invalid IL or missing references) //IL_160d: Expected O, but got Unknown //IL_1614: Unknown result type (might be due to invalid IL or missing references) //IL_161e: Expected O, but got Unknown //IL_15b9: Unknown result type (might be due to invalid IL or missing references) //IL_15be: Unknown result type (might be due to invalid IL or missing references) //IL_15c4: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); cmdDblTapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Double Tap", "Damage", 100, "Base damage % for Double Tap."); cmdDblTapProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Double Tap", "Proc Coefficient", 1f, "Proc coefficient for Double Tap."); cmdRoundDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Phase Round", "Damage", 300, "Base damage % for Phase Round."); cmdRoundPierceDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Phase Round", "Pierce Damage", 40, "Damage % dealt to enemies hit after the first."); cmdRoundProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Phase Round", "Proc Coefficient", 1f, "Proc coefficient for Phase Round."); cmdBlastDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Phase Blast", "Damage", 200, "Base damage % per shot for Phase Blast."); cmdBlastProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Phase Blast", "Proc Coefficient", 0.5f, "Proc coefficient for Phase Blast."); cmdSuppDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Suppressive Fire", "Damage", 100, "Base damage % for Suppressive Fire."); cmdSuppProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Suppressive Fire", "Proc Coefficient", 1f, "Proc coefficient for Suppressive Fire."); cmdGrenadeAoe = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Frag Grenade", "Explosion Radius", 11, "Explosion radius of Frag Grenade in meters."); cmdGrenadeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Commando - Frag Grenade", "Damage", 700, "Base damage % for Frag Grenade."); cmdGrenadeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Commando - Frag Grenade", "Proc Coefficient", 1f, "Proc coefficient for Frag Grenade."); huntStrafeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Strafe", "Damage", 150, "Base damage % for Strafe."); huntStrafeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Strafe", "Proc Coefficient", 1f, "Proc coefficient for Strafe."); huntFlurryDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Flurry", "Damage", 100, "Base damage % for Flurry."); huntFlurryProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Flurry", "Proc Coefficient", 0.7f, "Proc coefficient for Flurry."); huntGlaiveDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Laser Glaive", "Damage", 250, "Base damage % for the initial hit of Laser Glaive."); huntGlaiveDmgBounce = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Laser Glaive", "Bounce Damage", 10, "TOTAL damage increase % for Laser Glaive per bounce."); huntGlaiveProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Laser Glaive", "Proc Coefficient", 0.8f, "Proc coefficient for Laser Glaive."); huntArrowRainAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Arrow Rain", "AoE Radius", 7.5f, "Area of effect radius of Arrow Rain in meters."); huntArrowRainDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Arrow Rain", "Damage", 330, "Base damage % for Arrow Rain per second."); huntArrowRainProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Arrow Rain", "Proc Coefficient", 0.2f, "Proc coefficient for Arrow Rain."); huntBallistaDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Huntress - Ballista", "Damage", 900, "Base damage % for Ballista."); huntBallistaProc = ((BaseUnityPlugin)this).Config.Bind<float>("Huntress - Ballista", "Proc Coefficient", 1f, "Proc coefficient for Ballista."); bandHemoDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Hemorrhage", "Damage", 2000, "Amount of base damage % done by Hemorrhage."); bandBurstDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Burst", "Damage", 100, "Damage multiplier % of each Burst projectile."); bandBurstProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Burst", "Proc Coefficient", 0.5f, "Proc coefficient of Burst."); bandBlastDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Blast", "Damage", 330, "Damage multiplier % of each Blast projectile."); bandBlastProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Blast", "Proc Coefficient", 1f, "Proc coefficient of Blast."); bandDaggerDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Serrated Dagger", "Damage", 360, "Damage multiplier % of each Serrated Dagger projectile."); bandDaggerProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Serrated Dagger", "Proc Coefficient", 1f, "Proc coefficient of Serrated Dagger."); bandShivDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Serrated Shiv", "Damage", 240, "Damage multiplier % of each Serrated Shiv projectile."); bandShivProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Serrated Shiv", "Proc Coefficient", 1f, "Proc coefficient of Serrated Shiv."); bandSmokeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Smoke Bomb", "Damage", 200, "Damage multiplier % of Smoke Bomb Enter/Exit."); bandSmokeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Smoke Bomb", "Proc Coefficient", 1f, "Proc coefficient of Smoke Bomb."); bandLightsOutDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Lights Out", "Damage", 600, "Damage multiplier % of each Lights Out projectile."); bandLightsOutProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Lights Out", "Proc Coefficient", 1f, "Proc coefficient of Lights Out."); bandDesperadoDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Desperado", "Damage", 600, "Damage multiplier % of each Desperado projectile."); bandDesperadoBuff = ((BaseUnityPlugin)this).Config.Bind<int>("Bandit - Desperado", "Buff Damage", 10, "Damage multiplier % increase per Bandit Skull buff."); bandDesperadoProc = ((BaseUnityPlugin)this).Config.Bind<float>("Bandit - Desperado", "Proc Coefficient", 1f, "Proc coefficient of Desperado."); multNailgunDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Auto-Nailgun", "Damage", 70, "Damage multiplier % of each Auto-Nailgun projectile."); multNailgunProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Auto-Nailgun", "Proc Coefficient", 0.6f, "Proc coefficient of Auto-Nailgun."); multRebarDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Rebar Puncher", "Damage", 600, "Damage multiplier % of each Rebar Puncher projectile."); multRebarProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Rebar Puncher", "Proc Coefficient", 1f, "Proc coefficient of Rebar Puncher."); multScrapAoe = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Scrap Launcher", "Explosion Radius", 7f, "Explosion radius of Scrap Launcher in meters."); multScrapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Scrap Launcher", "Damage", 360, "Damage multiplier % of each Scrap Launcher projectile."); multScrapProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Scrap Launcher", "Proc Coefficient", 1f, "Proc coefficient of Scrap Launcher."); multSawDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Power Saw", "Damage", 1000, "Damage multiplier % of each Power Saw tick."); multSawProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Power Saw", "Proc Coefficient", 1f, "Proc coefficient of Power Saw."); multCanisterDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Blast Canister", "Canister Damage", 220, "Damage multiplier % of Blast Canister explosion."); multBombletDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Blast Canister", "Bomblet Damage", 44, "Damage multiplier % of Blast Canister bomblets."); multCanisterProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Blast Canister", "Canister Proc Coefficient", 1f, "Proc coefficient of Blast Canister explosion."); multBombletProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Blast Canister", "Bomblet Proc Coefficient", 0.3f, "Proc coefficient of Blast Canister bomblets."); multTransportDmg = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Transport Mode", "Damage", 250, "Damage multiplier % of Transport Mode attack."); multTransportMoveSpd = ((BaseUnityPlugin)this).Config.Bind<int>("MUL-T - Transport Mode", "Movement Speed Bonus", 220, "Movement speed bonus % granted by Transport Mode."); multTransportProc = ((BaseUnityPlugin)this).Config.Bind<float>("MUL-T - Transport Mode", "Proc Coefficient", 1f, "Proc coefficient of Transport Mode attack."); engGrenadeAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Bouncing Grenades", "Explosion Radius", 3.5f, "Explosion radius of Bouncing Grenades in meters."); engGrenadeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Bouncing Grenades", "Damage", 100, "Damage multiplier % of each Bouncing Grenade projectile."); engGrenadeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Bouncing Grenades", "Proc Coefficient", 1f, "Proc coefficient of Bouncing Grenades."); engPressureAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Pressure Mines", "Explosion Radius", 7.5f, "Explosion radius of Pressure Mines in meters."); engPressureMinDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Pressure Mines", "Unarmed Damage", 300, "Damage multiplier % of Pressure Mines when not fully armed."); engPressureMaxDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Pressure Mines", "Fully Armed Damage", 900, "Damage multiplier % of Pressure Mines when fully armed."); engPressureProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Pressure Mines", "Proc Coefficient", 1f, "Proc coefficient of Pressure Mines."); engSpiderAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Spider Mines", "Explosion Radius", 7.5f, "Explosion radius of Spider Mines in meters."); engSpiderDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Spider Mines", "Damage", 600, "Damage multiplier % of Spider Mines."); engSpiderProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Spider Mines", "Proc Coefficient", 1f, "Proc coefficient of Spider Mines."); engBubbleDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Bubble Shield", "Duration", 15, "Duration of Bubble Shield in seconds."); engHarpoonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - Thermal Harpoons", "Damage", 500, "Damage multiplier % of each Thermal Harpoon projectile."); engHarpoonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - Thermal Harpoons", "Proc Coefficient", 1f, "Proc coefficient of Thermal Harpoons."); engTurretGaussDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - TR12 Gauss Auto-Turret", "Damage", 70, "Damage multiplier % of each TR12 Gauss Auto-Turret projectile."); engTurretGaussProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - TR12 Gauss Auto-Turret", "Proc Coefficient", 1f, "Proc coefficient of TR12 Gauss Auto-Turret."); engTurretCarbonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Engineer - TR58 Carbonizer Turret", "Damage", 40, "Damage multiplier % of each TR58 Carbonizer Turret projectile."); engTurretCarbonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Engineer - TR58 Carbonizer Turret", "Proc Coefficient", 0.6f, "Proc coefficient of TR58 Carbonizer Turret."); artiFlameAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flame Bolt", "Explosion Radius", 2.5f, "Explosion radius of Flame Bolt in meters."); artiFlameDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Flame Bolt", "Damage", 280, "Damage multiplier % of each Flame Bolt projectile."); artiFlameProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flame Bolt", "Proc Coefficient", 0.5f, "Proc coefficient of Flame Bolt."); artiPlasmaAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Plasma Bolt", "Explosion Radius", 6f, "Explosion radius of Plasma Bolt in meters."); artiPlasmaDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Plasma Bolt", "Damage", 280, "Damage multiplier % of each Plasma Bolt projectile."); artiPlasmaProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Plasma Bolt", "Proc Coefficient", 0.5f, "Proc coefficient of Plasma Bolt."); artiBombAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Explosion Radius", 14f, "Explosion radius of Charged Nano-Bomb in meters."); artiBombSparkDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Charged Nano-Bomb", "Spark Damage", 10, "Damage multiplier % of Charged Nano-Bomb sparks, % of damage extra or less from the nano bomb"); artiBombProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Explosion Proc Coefficient", 1f, "Proc coefficient of Charged Nano-Bomb explosion."); artiSparkProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Charged Nano-Bomb", "Spark Proc Coefficient", 0.3f, "Proc coefficient of Charged Nano-Bomb sparks."); artiSpearMinDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Cast Nano-Spear", "Min Damage", 400, "Minimum damage multiplier % of Cast Nano-Spear projectile."); artiSpearMaxDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Cast Nano-Spear", "Max Damage", 1200, "Maximum damage multiplier % of Cast Nano-Spear projectile."); artiSpearProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Cast Nano-Spear", "Proc Coefficient", 1f, "Proc coefficient of Cast Nano-Spear projectile."); artiSnapDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Snapfreeze", "Damage", 100, "Damage multiplier % of Snapfreeze projectile."); artiSnapProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Snapfreeze", "Proc Coefficient", 1f, "Proc coefficient of Snapfreeze projectile."); artiFlamethrowerDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Flamethrower", "Damage", 95, "Damage multiplier % of each Flamethrower projectile."); artiFlamethrowerProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Flamethrower", "Proc Coefficient", 1f, "Proc coefficient of Flamethrower."); artiIonAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Ion Surge", "Explosion Radius", 14f, "Explosion radius of Ion Surge in meters."); artiIonDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Artificer - Ion Surge", "Damage", 800, "Damage multiplier % of Ion Surge projectile."); artiIonProc = ((BaseUnityPlugin)this).Config.Bind<float>("Artificer - Ion Surge", "Proc Coefficient", 1f, "Proc coefficient of Ion Surge."); mercSwordDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Laser Sword", "Damage", 130, "Damage multiplier % of each Laser Sword slice."); mercSwordProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Laser Sword", "Proc Coefficient", 1f, "Proc coefficient of each Laser Sword slice."); mercWhirlwindDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Whirlwind", "Damage", 200, "Damage multiplier % of each Whirlwind slice."); mercWhirlwindProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Whirlwind", "Proc Coefficient", 1f, "Proc coefficient of Whirlwind."); mercRisingDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Rising Thunder", "Damage", 550, "Damage multiplier % of Rising Thunder."); mercRisingProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Rising Thunder", "Proc Coefficient", 1f, "Proc coefficient of Rising Thunder."); mercBindDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Binding Assault", "Damage", 300, "Damage multiplier % of each Binding Assault slice."); mercBindProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Binding Assault", "Proc Coefficient", 1f, "Proc coefficient of Binding Assault."); mercFocusDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Focused Assault", "Damage", 700, "Damage multiplier % of Focused Assault."); mercFocusProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Focused Assault", "Proc Coefficient", 1f, "Proc coefficient of Focused Assault."); mercEviscDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Eviscerate", "Damage", 110, "Damage multiplier % of each Eviscerate slice."); mercEviscProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Eviscerate", "Proc Coefficient", 1f, "Proc coefficient of Eviscerate."); mercSlicingDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Mercenary - Slicing Winds", "Damage", 100, "Damage multiplier % of each Slicing Winds slice."); mercSlicingProc = ((BaseUnityPlugin)this).Config.Bind<float>("Mercenary - Slicing Winds", "Proc Coefficient", 1f, "Proc coefficient of Slicing Winds."); captainShotgunDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Vulcan Shotgun", "Damage Multiplier", 120, "Damage multiplier % of Vulcan Shotgun."); captainShotgunProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Vulcan Shotgun", "Proc Coefficient", 0.75f, "Proc coefficient of Vulcan Shotgun."); captainTaserAoe = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Power Taser", "Area of Effect", 2f, "Area of effect radius (in meters) of Power Taser."); captainTaserDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Power Taser", "Damage Multiplier", 100, "Damage multiplier % of Power Taser."); captainTaserProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Power Taser", "Proc Coefficient", 1f, "Proc coefficient of Power Taser."); captainProbeDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Probe", "Damage Multiplier", 1000, "Damage multiplier % of Orbital Probe."); captainProbeProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Orbital Probe", "Proc Coefficient", 1f, "Proc coefficient of Orbital Probe."); captainDiabloDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - OGM-72 DIABLO Strike", "Damage Multiplier", 40000, "Damage multiplier % of Diablo Strike."); captainDiabloProc = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - OGM-72 DIABLO Strike", "Proc Coefficient", 1f, "Proc coefficient of Diablo Strike."); captainBeaconDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Supply Beacon", "Damage Multiplier", 2000, "Damage multiplier % of Orbital Supply Beacon."); captainBeaconRadius = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Orbital Supply Beacon", "Radius", 10, "Radius of Orbital Supply Beacon in meters."); captainBeaconHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Beacon Healing", "Maximum Health Healing", 10, "Percent of max HP healed per second."); captainBeaconShockCount = ((BaseUnityPlugin)this).Config.Bind<float>("Captain - Beacon Shocking", "Shocks Frequency", 0.33f, "The frequency of shots for captains shock beacon."); captainBeaconResupplyUses = ((BaseUnityPlugin)this).Config.Bind<int>("Captain - Beacon Resupply", "Number of Uses", 3, "Number of uses provided by Resupply Beacon."); railgunnerXQRDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - XQR Smart Round System", "Damage Multiplier", 100, "Damage multiplier % of XQR Smart Round System."); railgunnerXQRProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - XQR Smart Round System", "Proc Coefficient", 1f, "Proc coefficient of XQR Smart Round System (original value: 1.0)."); railgunnerM99Damage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - M99", "Damage Multiplier", 1000, "Damage multiplier % of M99."); railgunnerM99Proc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - M99", "Proc Coefficient", 1f, "Proc coefficient of M99."); railgunnerHH44Damage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - HH44", "Damage Multiplier", 400, "Damage multiplier % of HH44 (original value: 400%)."); railgunnerHH44Proc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - HH44", "Proc Coefficient", 1f, "Proc coefficient of HH44."); railgunnerPolarDuration = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Polar Field Device", "Duration", 12, "Duration in seconds of Polar Field Device (original value: 12s)."); railgunnerSuperCritMult = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Supercharged Railgun", "Critical Strike Damage Multiplier", 150, "Critical strike damage multiplier % of Supercharged Railgun."); railgunnerSuperDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Supercharged Railgun", "Damage Multiplier", 4000, "Damage multiplier % of Supercharged Railgun."); railgunnerSuperProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - Supercharged Railgun", "Proc Coefficient", 3f, "Proc coefficient of Supercharged Railgun."); railgunnerCryoDamage = ((BaseUnityPlugin)this).Config.Bind<int>("Railgunner - Cryocharged Railgun", "Damage Multiplier", 2000, "Damage multiplier % of Cryocharged Railgun."); railgunnerCryoProc = ((BaseUnityPlugin)this).Config.Bind<float>("Railgunner - Cryocharged Railgun", "Proc Coefficient", 1.5f, "Proc coefficient of Cryocharged Railgun"); voidDrownDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Drown", "Damage", 300, "Damage multiplier % of Drown."); voidDrownProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Drown", "Proc Coefficient", 1f, "Proc coefficient of Drown."); voidCorruptDrownDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Drown", "Damage per Tick", 250, "Damage multiplier % per tick of Corrupted Drown (8 ticks per second)."); voidCorruptDrownProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Corrupted Drown", "Proc Coefficient", 0.625f, "Proc coefficient of Corrupted Drown."); voidFloodUnchargedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Flood", "Damage Uncharged", 600, "Damage multiplier % of uncharged Flood."); voidFloodChargedDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Flood", "Damage Charged", 1100, "Damage multiplier % of charged Flood."); voidFloodProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Flood", "Proc Coefficient", 1f, "Proc coefficient of Flood."); voidCorruptFloodDmg = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Flood", "Damage", 1100, "Damage multiplier % of Corrupted Flood."); voidCorruptFloodProc = ((BaseUnityPlugin)this).Config.Bind<float>("Void Fiend - Corrupted Flood", "Proc Coefficient", 1f, "Proc coefficient of Corrupted Flood."); voidSuppressCorruptCrushed = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Suppress", "Corruption Crushed", 25, "Percent of corruption reduced when casting Suppress."); voidSuppressHeal = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Suppress", "Healing", 25, "Percent of max HP healed when casting Suppress."); voidCorruptSuppressGain = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Suppress", "Corruption Gain", 25, "Percent of corruption gained when casting Corrupted Suppress."); voidCorruptSuppressCrush = ((BaseUnityPlugin)this).Config.Bind<int>("Void Fiend - Corrupted Suppress", "HP Crushed", 25, "Percent of max HP crushed when casting Corrupted Suppress."); FireSeekingArrow.CreateArrowOrb += new hook_CreateArrowOrb(FireSeekingArrow_CreateArrowOrb); FireFlurrySeekingArrow.CreateArrowOrb += new hook_CreateArrowOrb(FireFlurrySeekingArrow_CreateArrowOrb); FireArrowSnipe.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireArrowSnipe self, BulletAttack bulletAttack) { ApplyCustomBulletValues(huntBallistaDmg.Value, huntBallistaProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; Bandit2FireRifle.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, Bandit2FireRifle self, BulletAttack bulletAttack) { ApplyCustomBulletValues(bandBlastDmg.Value, bandBlastProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; FireShotgun2.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireShotgun2 self, BulletAttack bulletAttack) { ApplyCustomBulletValues(bandBurstDmg.Value, bandBurstProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; object obj = <>c.<>9__152_3; if (obj == null) { hook_FireShiv val = delegate(orig_FireShiv orig, Bandit2FireShiv self) { self.damageCoefficient = (float)bandDaggerDmg.Value / 100f; orig.Invoke(self); }; <>c.<>9__152_3 = val; obj = (object)val; } Bandit2FireShiv.FireShiv += (hook_FireShiv)obj; object obj2 = <>c.<>9__152_4; if (obj2 == null) { hook_AuthorityModifyOverlapAttack val2 = delegate(orig_AuthorityModifyOverlapAttack orig, SlashBlade self, OverlapAttack overlapAttack) { overlapAttack.damage = (float)bandDaggerDmg.Value / 100f * ((BaseState)self).damageStat; orig.Invoke(self, overlapAttack); }; <>c.<>9__152_4 = val2; obj2 = (object)val2; } SlashBlade.AuthorityModifyOverlapAttack += (hook_AuthorityModifyOverlapAttack)obj2; FireSidearmResetRevolver.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSidearmResetRevolver self, BulletAttack bulletAttack) { ApplyCustomBulletValues(bandLightsOutDmg.Value, bandLightsOutProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; FireSidearmSkullRevolver.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSidearmSkullRevolver self, BulletAttack bulletAttack) { orig.Invoke(self, bulletAttack); ApplyCustomBulletValues(bandDesperadoDmg.Value, bandDesperadoProc.Value, ((BaseState)self).damageStat, bulletAttack); int num = 0; if (Object.op_Implicit((Object)(object)((EntityState)self).characterBody)) { num = ((EntityState)self).characterBody.GetBuffCount(Buffs.BanditSkull); } float num2 = 1f + (float)bandDesperadoBuff.Value / 100f * (float)num; bulletAttack.damage *= num2; }; object obj3 = <>c.<>9__152_7; if (obj3 == null) { hook_OnEnter val3 = delegate(orig_OnEnter orig, ToolbotDash self) { self.speedMultiplier = multTransportMoveSpd.Value / 100; orig.Invoke(self); }; <>c.<>9__152_7 = val3; obj3 = (object)val3; } ToolbotDash.OnEnter += (hook_OnEnter)obj3; object obj4 = <>c.<>9__152_8; if (obj4 == null) { hook_OnEnter val4 = delegate(orig_OnEnter orig, Deployed self) { orig.Invoke(self); BeginRapidlyActivatingAndDeactivating component10 = ((EntityState)self).gameObject.GetComponent<BeginRapidlyActivatingAndDeactivating>(); if (Object.op_Implicit((Object)(object)component10)) { ((Behaviour)component10).enabled = false; } }; <>c.<>9__152_8 = val4; obj4 = (object)val4; } Deployed.OnEnter += (hook_OnEnter)obj4; FocusedAssaultDash.HandleHit += new hook_HandleHit(FocusedAssaultDash_HandleHit); FireCaptainShotgun.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireCaptainShotgun self, BulletAttack bulletAttack) { ApplyCustomBulletValues(captainShotgunDmg.Value, captainShotgunProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; FireSnipeHeavy.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeHeavy self, BulletAttack bulletAttack) { ApplyCustomBulletValues(railgunnerM99Damage.Value, railgunnerM99Proc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; FireSnipeLight.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeLight self, BulletAttack bulletAttack) { ApplyCustomBulletValues(railgunnerHH44Damage.Value, railgunnerHH44Proc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; FireSnipeSuper.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeSuper self, BulletAttack bulletAttack) { ApplyCustomBulletValues(railgunnerSuperDamage.Value, railgunnerSuperProc.Value, ((BaseState)self).damageStat, bulletAttack); if (bulletAttack.isCrit) { ((BaseFireSnipe)self).critDamageMultiplier = (float)railgunnerSuperCritMult.Value / 100f; } orig.Invoke(self, bulletAttack); }; FireSnipeCryo.ModifyBullet += (hook_ModifyBullet)delegate(orig_ModifyBullet orig, FireSnipeCryo self, BulletAttack bulletAttack) { ApplyCustomBulletValues(railgunnerCryoDamage.Value, railgunnerCryoProc.Value, ((BaseState)self).damageStat, bulletAttack); orig.Invoke(self, bulletAttack); }; object obj5 = <>c.<>9__152_14; if (obj5 == null) { hook_OnEnter val5 = delegate(orig_OnEnter orig, CrushBase self) { if (self is CrushCorruption) { self.selfHealFraction = (float)voidSuppressHeal.Value / 100f; self.corruptionChange = -voidSuppressCorruptCrushed.Value; } else if (self is CrushHealth) { self.selfHealFraction = 0f - (float)voidCorruptSuppressCrush.Value / 100f; self.corruptionChange = voidCorruptSuppressGain.Value; } orig.Invoke(self); }; <>c.<>9__152_14 = val5; obj5 = (object)val5; } CrushBase.OnEnter += (hook_OnEnter)obj5; BulletAttack.HandleBulletDamage += new Manipulator(BulletAttack_HandleBulletDamage); BulletAttack.DefaultHitCallbackImplementation += new hook_DefaultHitCallbackImplementation(BulletAttack_DefaultHitCallbackImplementation); DotController.InitDotCatalog += new hook_InitDotCatalog(DotController_InitDotCatalog); BlastAttack.PerformDamageServer += new hook_PerformDamageServer(BlastAttack_PerformDamageServer); OverlapAttack.PerformDamage += new hook_PerformDamage(OverlapAttack_PerformDamage); try { RoR2Application.onLoad = (Action)Delegate.Combine(RoR2Application.onLoad, (Action)delegate { //IL_0031: Unknown result type (might be due to invalid IL or missing references) //IL_0036: Unknown result type (might be due to invalid IL or missing references) //IL_007d: 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_00bd: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Unknown result type (might be due to invalid IL or missing references) //IL_0158: Unknown result type (might be due to invalid IL or missing references) //IL_016b: 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_0198: Unknown result type (might be due to invalid IL or missing references) //IL_019d: Unknown result type (might be due to invalid IL or missing references) //IL_01f3: Unknown result type (might be due to invalid IL or missing references) //IL_01f8: Unknown result type (might be due to invalid IL or missing references) //IL_0239: Unknown result type (might be due to invalid IL or missing references) //IL_023e: Unknown result type (might be due to invalid IL or missing references) //IL_0286: Unknown result type (might be due to invalid IL or missing references) //IL_028b: Unknown result type (might be due to invalid IL or missing references) //IL_02bf: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_0305: Unknown result type (might be due to invalid IL or missing references) //IL_030a: Unknown result type (might be due to invalid IL or missing references) //IL_034a: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Unknown result type (might be due to invalid IL or missing references) //IL_0380: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_03dc: Unknown result type (might be due to invalid IL or missing references) //IL_03e1: Unknown result type (might be due to invalid IL or missing references) //IL_0427: Unknown result type (might be due to invalid IL or missing references) //IL_042c: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_0477: Unknown result type (might be due to invalid IL or missing references) //IL_0498: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_04ea: Unknown result type (might be due to invalid IL or missing references) //IL_04ef: Unknown result type (might be due to invalid IL or missing references) //IL_0589: Unknown result type (might be due to invalid IL or missing references) //IL_058e: Unknown result type (might be due to invalid IL or missing references) //IL_05d4: Unknown result type (might be due to invalid IL or missing references) //IL_05d9: Unknown result type (might be due to invalid IL or missing references) //IL_062f: Unknown result type (might be due to invalid IL or missing references) //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_0665: Unknown result type (might be due to invalid IL or missing references) //IL_066a: Unknown result type (might be due to invalid IL or missing references) //IL_06b1: Unknown result type (might be due to invalid IL or missing references) //IL_06b6: Unknown result type (might be due to invalid IL or missing references) //IL_06c4: Unknown result type (might be due to invalid IL or missing references) //IL_06c9: Unknown result type (might be due to invalid IL or missing references) //IL_073d: Unknown result type (might be due to invalid IL or missing references) //IL_0742: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_076e: Unknown result type (might be due to invalid IL or missing references) //IL_079f: Unknown result type (might be due to invalid IL or missing references) //IL_07a4: Unknown result type (might be due to invalid IL or missing references) //IL_07c6: Unknown result type (might be due to invalid IL or missing references) //IL_07cb: Unknown result type (might be due to invalid IL or missing references) //IL_07fc: Unknown result type (might be due to invalid IL or missing references) //IL_0801: Unknown result type (might be due to invalid IL or missing references) //IL_0832: Unknown result type (might be due to invalid IL or missing references) //IL_0837: Unknown result type (might be due to invalid IL or missing references) FirePistol2.damageCoefficient = (float)cmdDblTapDmg.Value / 100f; FireThermite.damageCoefficient = (float)cmdRoundDmg.Value / 100f; GameObject obj6 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/FMJRamping.prefab").WaitForCompletion(); obj6.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "fmj"; obj6.GetComponent<ProjectileController>().procCoefficient = cmdRoundProc.Value; FireBarrage.damageCoefficient = (float)cmdSuppDmg.Value / 100f; GameObject obj7 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Commando/CommandoGrenadeProjectile.prefab").WaitForCompletion(); ProjectileController component = obj7.GetComponent<ProjectileController>(); ProjectileImpactExplosion component2 = obj7.GetComponent<ProjectileImpactExplosion>(); component.procCoefficient = cmdGrenadeProc.Value; ((ProjectileExplosion)component2).blastRadius = cmdGrenadeAoe.Value; ((Component)component2).transform.localScale = Vector3.one * (float)cmdGrenadeAoe.Value; ((ProjectileExplosion)component2).blastProcCoefficient = cmdGrenadeProc.Value; ThrowGlaive.damageCoefficient = (float)huntGlaiveDmg.Value / 100f; ThrowGlaive.damageCoefficientPerBounce = ((float)huntGlaiveDmgBounce.Value + 100f) / 100f; ThrowGlaive.glaiveProcCoefficient = huntGlaiveProc.Value; ArrowRain.damageCoefficient = (float)(huntArrowRainDmg.Value * 2) / 100f; ArrowRain.arrowRainRadius = huntArrowRainAoe.Value; ProjectileDotZone component3 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Huntress/HuntressArrowRain.prefab").WaitForCompletion().GetComponent<ProjectileDotZone>(); ((Component)component3).transform.localScale = Vector3.one * huntArrowRainAoe.Value; component3.overlapProcCoefficient = huntArrowRainProc.Value; GameObject obj8 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Bandit2/Bandit2ShivProjectile.prefab").WaitForCompletion(); obj8.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "shiv"; obj8.GetComponent<ProjectileController>().procCoefficient = bandShivProc.Value; BaseNailgunState.damageCoefficient = (float)multNailgunDmg.Value / 100f; BaseNailgunState.procCoefficient = multNailgunProc.Value; GameObject obj9 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/ToolbotGrenadeLauncherProjectile.prefab").WaitForCompletion(); obj9.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "scrap"; ProjectileImpactExplosion component4 = obj9.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component4).blastProcCoefficient = multScrapProc.Value; ((ProjectileExplosion)component4).blastRadius = multScrapAoe.Value; GameObject obj10 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/CryoCanisterProjectile.prefab").WaitForCompletion(); obj10.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "blastcan"; ProjectileImpactExplosion component5 = obj10.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component5).blastProcCoefficient = multScrapProc.Value; ((ProjectileExplosion)component5).childrenDamageCoefficient = (float)multBombletDmg.Value / 1000f; ((ProjectileExplosion)Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Toolbot/CryoCanisterBombletsProjectile.prefab").WaitForCompletion().GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = multScrapProc.Value; ToolbotDash.knockbackDamageCoefficient = multTransportDmg.Value / 100; GameObject obj11 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiGrenadeProjectile.prefab").WaitForCompletion(); obj11.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "enginade"; ProjectileImpactExplosion component6 = obj11.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component6).blastProcCoefficient = engGrenadeProc.Value; ((ProjectileExplosion)component6).blastRadius = engGrenadeAoe.Value; GameObject obj12 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiMine.prefab").WaitForCompletion(); obj12.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "proxmines"; Detonate.blastRadius = engPressureAoe.Value; obj12.GetComponent<ProjectileController>().procCoefficient = engPressureProc.Value; GameObject obj13 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/SpiderMine.prefab").WaitForCompletion(); obj13.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "spidermines"; obj13.GetComponent<ProjectileController>().procCoefficient = engSpiderProc.Value; GameObject obj14 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Engi/EngiHarpoon.prefab").WaitForCompletion(); obj14.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "harpoon"; obj14.GetComponent<ProjectileController>().procCoefficient = engHarpoonProc.Value; Deployed.lifetime = engBubbleDuration.Value; FireGauss.damageCoefficient = (float)engTurretGaussDmg.Value / 100f; GameObject obj15 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageFireboltBasic.prefab").WaitForCompletion(); obj15.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "flamebolt"; obj15.GetComponent<ProjectileController>().procCoefficient = artiFlameProc.Value; ((ProjectileExplosion)obj15.GetComponent<ProjectileImpactExplosion>()).blastRadius = artiFlameAoe.Value; GameObject obj16 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageLightningboltBasic.prefab").WaitForCompletion(); obj16.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "lightningbolt"; obj16.GetComponent<ProjectileController>().procCoefficient = artiFlameProc.Value; ((ProjectileExplosion)obj16.GetComponent<ProjectileImpactExplosion>()).blastRadius = artiPlasmaAoe.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageIceBombProjectile.prefab").WaitForCompletion().GetComponent<ProjectileController>() .procCoefficient = artiFlameProc.Value; GameObject obj17 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageLightningBombProjectile.prefab").WaitForCompletion(); ProjectileImpactExplosion component7 = obj17.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component7).blastRadius = artiBombAoe.Value; ((ProjectileExplosion)component7).blastProcCoefficient = artiBombProc.Value; obj17.GetComponent<ProjectileProximityBeamController>().damageCoefficient = (float)artiBombSparkDmg.Value / 100f; GameObject obj18 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Mage/MageIcewallPillarProjectile.prefab").WaitForCompletion(); obj18.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "icewall"; obj18.GetComponent<ProjectileController>().procCoefficient = artiSnapProc.Value; Flamethrower.procCoefficientPerTick = artiFlamethrowerProc.Value; FlyUpState.blastAttackDamageCoefficient = (float)artiIonDmg.Value / 100f; FlyUpState.blastAttackProcCoefficient = artiIonProc.Value; FlyUpState.blastAttackRadius = artiIonAoe.Value; Evis.damageCoefficient = (float)mercEviscDmg.Value / 100f; Evis.procCoefficient = mercEviscProc.Value; GameObject obj19 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Merc/EvisProjectile.prefab").WaitForCompletion(); obj19.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "slicingwinds"; obj19.GetComponent<ProjectileController>().procCoefficient = mercSlicingProc.Value; ((ProjectileExplosion)obj19.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = mercSlicingProc.Value; GameObject obj20 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainTazer.prefab").WaitForCompletion(); obj20.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "tazer"; obj20.GetComponent<ProjectileController>().procCoefficient = captainTaserProc.Value; ProjectileImpactExplosion component8 = obj20.GetComponent<ProjectileImpactExplosion>(); ((ProjectileExplosion)component8).blastProcCoefficient = captainTaserProc.Value; ((ProjectileExplosion)component8).blastRadius = captainTaserAoe.Value; GameObject obj21 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainAirstrikeProjectile1.prefab").WaitForCompletion(); obj21.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "orbital"; ((ProjectileExplosion)obj21.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = captainProbeProc.Value; GameObject obj22 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainAirstrikeAltProjectile.prefab").WaitForCompletion(); obj22.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "diablo"; ((ProjectileExplosion)obj22.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = captainDiabloProc.Value; CallSupplyDropBase.impactDamageCoefficient = (float)captainBeaconDmg.Value / 100f; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, Base.prefab").WaitForCompletion(); HealingWard component9 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainHealingWard.prefab").WaitForCompletion().GetComponent<HealingWard>(); component9.Networkradius = captainBeaconRadius.Value; component9.radius = captainBeaconRadius.Value; component9.healPoints = 0f; component9.healFraction = (float)captainBeaconHeal.Value / 100f; ShockZoneMainState.shockFrequency = captainBeaconShockCount.Value; ShockZoneMainState.shockRadius = captainBeaconRadius.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/Base/Captain/CaptainSupplyDrop, EquipmentRestock.prefab").WaitForCompletion().GetComponent<GenericEnergyComponent>() .capacity = 33 * captainBeaconResupplyUses.Value + 1; GameObject obj23 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Railgunner/RailgunnerPistolProjectile.prefab").WaitForCompletion(); obj23.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "railpistol"; obj23.GetComponent<ProjectileController>().procCoefficient = railgunnerXQRProc.Value; Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/Railgunner/RailgunnerMineAltDetonated.prefab").WaitForCompletion().GetComponent<BuffWard>() .expireDuration = railgunnerPolarDuration.Value; GameObject obj24 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterSmallProjectile.prefab").WaitForCompletion(); obj24.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "floodsmall"; obj24.GetComponent<ProjectileController>().procCoefficient = voidFloodProc.Value; GameObject obj25 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterBigProjectile.prefab").WaitForCompletion(); obj25.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "floodbig"; ((ProjectileExplosion)obj25.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = voidFloodProc.Value; GameObject obj26 = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC1/VoidSurvivor/VoidSurvivorMegaBlasterBigProjectileCorrupted.prefab").WaitForCompletion(); obj26.AddComponent<CustomProjectileDamageModifier>().dmgTypeName = "corruptflood"; ((ProjectileExplosion)obj26.GetComponent<ProjectileImpactExplosion>()).blastProcCoefficient = voidCorruptFloodProc.Value; }); } catch (Exception ex) { Log.Error(ex.Message + " - " + ex.StackTrace); } } private void FocusedAssaultDash_HandleHit(orig_HandleHit orig, GameObject attackerObject, HurtBox victimHurtBox, float damageValue, float procCoefficient, bool isCrit, float delay, GameObject orbEffectPrefab, GameObject orbImpactEffectPrefab) { CharacterBody component = attackerObject.GetComponent<CharacterBody>(); damageValue = (float)mercFocusDmg.Value / 100f * component.damage; procCoefficient = mercFocusProc.Value; orig.Invoke(attackerObject, victimHurtBox, damageValue, procCoefficient, isCrit, delay, orbEffectPrefab, orbImpactEffectPrefab); } private void OverlapAttack_PerformDamage(orig_PerformDamage orig, GameObject attacker, GameObject inflictor, float damage, bool isCrit, ProcChainMask procChainMask, float procCoefficient, DamageColorIndex damageColorIndex, DamageTypeCombo damageType, Vector3 forceVector, float pushAwayForce, List<OverlapInfo> hitList) { //IL_04e5: Unknown result type (might be due to invalid IL or missing references) //IL_04e9: Unknown result type (might be due to invalid IL or missing references) //IL_04eb: Unknown result type (might be due to invalid IL or missing references) //IL_04ed: 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_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0145: Unknown result type (might be due to invalid IL or missing references) //IL_0147: 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_02d3: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0207: Unknown result type (might be due to invalid IL or missing references) //IL_015e: Unknown result type (might be due to invalid IL or missing references) //IL_0160: Unknown result type (might be due to invalid IL or missing references) //IL_035c: Unknown result type (might be due to invalid IL or missing references) //IL_035e: Unknown result type (might be due to invalid IL or missing references) //IL_0442: Unknown result type (might be due to invalid IL or missing references) //IL_0444: Unknown result type (might be due to invalid IL or missing references) //IL_03b7: Unknown result type (might be due to invalid IL or missing references) //IL_03b9: Unknown result type (might be due to invalid IL or missing references) //IL_049d: Unknown result type (might be due to invalid IL or missing references) //IL_049f: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)attacker)) { CharacterBody component = attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "BANDIT2_BODY_NAME") { SkillLocator skillLocator = component.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator) && Object.op_Implicit((Object)(object)skillLocator.secondary) && Object.op_Implicit((Object)(object)skillLocator.secondary.skillDef) && ((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2) && skillLocator.secondary.skillDef.skillNameToken == "BANDIT2_SECONDARY_NAME") { damage = (float)bandDaggerDmg.Value / 100f * component.damage; procCoefficient = bandDaggerProc.Value; } } else if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "TOOLBOT_BODY_NAME") { SkillLocator skillLocator2 = component.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator2) && ((Object.op_Implicit((Object)(object)skillLocator2.primary) && Object.op_Implicit((Object)(object)skillLocator2.primary.skillDef)) || (Object.op_Implicit((Object)(object)skillLocator2.secondary) && Object.op_Implicit((Object)(object)skillLocator2.secondary.skillDef))) && (((((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1) || ((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2)) && skillLocator2.primary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT3_NAME") || skillLocator2.secondary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT3_NAME")) { damage = (float)multSawDmg.Value / 100f * component.damage; procCoefficient = multSawProc.Value; } if (Object.op_Implicit((Object)(object)skillLocator2) && Object.op_Implicit((Object)(object)skillLocator2.utility) && Object.op_Implicit((Object)(object)skillLocator2.utility.skillDef) && ((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)4) && skillLocator2.utility.skillDef.skillNameToken == "TOOLBOT_UTILITY_NAME") { damage = (float)multTransportDmg.Value / 100f * component.damage * Mathf.Max(1f, component.moveSpeed / component.baseMoveSpeed); procCoefficient = multTransportProc.Value; } } else if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "MERC_BODY_NAME") { SkillLocator skillLocator3 = component.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator3) && Object.op_Implicit((Object)(object)skillLocator3.primary) && Object.op_Implicit((Object)(object)skillLocator3.primary.skillDef) && ((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1) && skillLocator3.primary.skillDef.skillNameToken == "MERC_PRIMARY_NAME") { damage = (float)mercSwordDmg.Value / 100f * component.damage; procCoefficient = mercSwordProc.Value; } if (Object.op_Implicit((Object)(object)skillLocator3) && Object.op_Implicit((Object)(object)skillLocator3.secondary) && Object.op_Implicit((Object)(object)skillLocator3.secondary.skillDef)) { if (((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2) && skillLocator3.secondary.skillDef.skillNameToken == "MERC_SECONDARY_NAME") { damage = (float)mercWhirlwindDmg.Value / 100f * component.damage; procCoefficient = mercWhirlwindProc.Value; } if (((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2) && skillLocator3.secondary.skillDef.skillNameToken == "MERC_SECONDARY_ALT1_NAME") { damage = (float)mercRisingDmg.Value / 100f * component.damage; procCoefficient = mercRisingProc.Value; } } if (Object.op_Implicit((Object)(object)skillLocator3) && Object.op_Implicit((Object)(object)skillLocator3.utility) && Object.op_Implicit((Object)(object)skillLocator3.utility.skillDef)) { if (((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)4) && skillLocator3.utility.skillDef.skillNameToken == "MERC_UTILITY_NAME") { damage = (float)mercBindDmg.Value / 100f * component.damage; procCoefficient = mercBindProc.Value; } if (((Enum)damageType.damageSource).HasFlag((Enum)(object)(DamageSource)4) && skillLocator3.utility.skillDef.skillNameToken == "MERC_UTILITY_ALT1_NAME") { procCoefficient = mercFocusProc.Value; } } } } orig.Invoke(attacker, inflictor, damage, isCrit, procChainMask, procCoefficient, damageColorIndex, damageType, forceVector, pushAwayForce, hitList); } private void BlastAttack_PerformDamageServer(orig_PerformDamageServer orig, ref BlastAttackDamageInfo blastAttackDamageInfo) { //IL_0073: 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) try { if (Object.op_Implicit((Object)(object)blastAttackDamageInfo.attacker)) { CharacterBody component = blastAttackDamageInfo.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "BANDIT2_BODY_NAME") { SkillLocator skillLocator = component.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator) && Object.op_Implicit((Object)(object)skillLocator.utility) && Object.op_Implicit((Object)(object)skillLocator.utility.skillDef) && ((Enum)blastAttackDamageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)4) && skillLocator.utility.skillDef.skillNameToken == "BANDIT2_UTILITY_NAME") { blastAttackDamageInfo.damage = (float)bandSmokeDmg.Value / 100f * component.damage; blastAttackDamageInfo.procCoefficient = bandSmokeProc.Value; } } if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "ENGI_BODY_NAME") { SkillLocator skillLocator2 = component.skillLocator; if (Object.op_Implicit((Object)(object)skillLocator2) && Object.op_Implicit((Object)(object)skillLocator2.secondary) && Object.op_Implicit((Object)(object)skillLocator2.secondary.skillDef) && ((Enum)blastAttackDamageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2) && skillLocator2.secondary.skillDef.skillNameToken == "ENGI_SECONDARY_NAME") { blastAttackDamageInfo.damage = (float)engPressureMaxDmg.Value / 100f * component.damage; blastAttackDamageInfo.procCoefficient = engPressureProc.Value; } } } } catch (Exception arg) { Log.Error($"[GameTweaks] BlastAttack hook failed: {arg}"); } orig.Invoke(ref blastAttackDamageInfo); } private void DotController_InitDotCatalog(orig_InitDotCatalog orig) { orig.Invoke(); float num = 60f; float damageCoefficient = (float)bandHemoDmg.Value / 100f / num; DotController.dotDefs[6].damageCoefficient = damageCoefficient; } private bool BulletAttack_DefaultHitCallbackImplementation(orig_DefaultHitCallbackImplementation orig, BulletAttack bulletAttack, ref BulletHit hitInfo) { //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0216: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_015e: 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_0263: Unknown result type (might be due to invalid IL or missing references) //IL_026d: Unknown result type (might be due to invalid IL or missing references) //IL_017b: 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_0320: Unknown result type (might be due to invalid IL or missing references) CharacterBody component = bulletAttack.owner.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "COMMANDO_BODY_NAME") { if (((Enum)bulletAttack.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1)) { if (component.skillLocator.primary.skillDef.skillNameToken == "COMMANDO_PRIMARY_NAME") { bulletAttack.procCoefficient = cmdDblTapProc.Value; } if (component.skillLocator.secondary.skillDef.skillNameToken == "COMMANDO_SECONDARY_ALT1_NAME") { bulletAttack.damage = (float)cmdBlastDmg.Value / 100f * component.damage * BulletAttack.CalcFalloffFactor(bulletAttack.falloffModel, hitInfo.distance); bulletAttack.procCoefficient = cmdBlastProc.Value; } } if (((Enum)bulletAttack.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)8) && component.skillLocator.special.skillDef.skillNameToken == "COMMANDO_SPECIAL_NAME") { bulletAttack.procCoefficient = cmdSuppProc.Value; } } else if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "TOOLBOT_BODY_NAME") { if ((((Enum)bulletAttack.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1) || ((Enum)bulletAttack.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2)) && (component.skillLocator.primary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT1_NAME" || component.skillLocator.secondary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT1_NAME")) { bulletAttack.damage = (float)multRebarDmg.Value / 100f * component.damage; bulletAttack.procCoefficient = multRebarProc.Value; } } else if (Object.op_Implicit((Object)(object)component) && component.bodyIndex == BodyCatalog.FindBodyIndex("EngiTurretBody")) { bulletAttack.damage = (float)engTurretGaussDmg.Value / 100f * component.damage; bulletAttack.procCoefficient = engTurretCarbonProc.Value; } else if (Object.op_Implicit((Object)(object)component) && component.bodyIndex == BodyCatalog.FindBodyIndex("EngiWalkerTurretBody")) { bulletAttack.damage = (float)engTurretCarbonDmg.Value / 100f * component.damage; bulletAttack.procCoefficient = engTurretCarbonProc.Value; } else if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "MAGE_BODY_NAME") { if (component.skillLocator.special.skillDef.skillNameToken == "MAGE_SPECIAL_FIRE_NAME") { bulletAttack.damage = (float)artiFlamethrowerDmg.Value / 100f * component.damage; } } else if (component.baseNameToken == "RAILGUNNER_BODY_NAME") { if (((Enum)bulletAttack.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)8) && component.skillLocator.special.skillDef.skillNameToken == "RAILGUNNER_SPECIAL_NAME" && bulletAttack.isCrit) { bulletAttack.damage *= (float)railgunnerSuperCritMult.Value / 100f; } } else if (Object.op_Implicit((Object)(object)component) && component.baseNameToken == "VOIDSURVIVOR_BODY_NAME") { if (component.skillLocator.primary.skillDef.skillIndex == 256) { bulletAttack.damage = (float)voidDrownDmg.Value / 100f * component.damage; bulletAttack.procCoefficient = voidDrownProc.Value; } if (component.skillLocator.primary.skillDef.skillIndex == 252) { bulletAttack.damage = (float)voidCorruptDrownDmg.Value / 100f * component.damage; bulletAttack.procCoefficient = voidCorruptDrownProc.Value; } } return orig.Invoke(bulletAttack, ref hitInfo); } private void ApplyCustomBulletValues(float dmgPercent, float procCoeff, float damageStat, BulletAttack bulletAttack) { bulletAttack.damage = dmgPercent / 100f * damageStat; bulletAttack.procCoefficient = procCoeff; } private GenericDamageOrb FireSeekingArrow_CreateArrowOrb(orig_CreateArrowOrb orig, FireSeekingArrow self) { self.orbDamageCoefficient = (float)huntStrafeDmg.Value / 100f; self.orbProcCoefficient = huntStrafeProc.Value; return orig.Invoke(self); } private GenericDamageOrb FireFlurrySeekingArrow_CreateArrowOrb(orig_CreateArrowOrb orig, FireFlurrySeekingArrow self) { ((FireSeekingArrow)self).orbDamageCoefficient = (float)huntFlurryDmg.Value / 100f; ((FireSeekingArrow)self).orbProcCoefficient = huntFlurryProc.Value; return orig.Invoke(self); } private void BulletAttack_HandleBulletDamage(ILContext il) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown ILCursor val = new ILCursor(il); if (val.TryGotoNext(new Func<Instruction, bool>[1] { (Instruction x) => ILPatternMatchingExt.MatchCall(x, typeof(NetworkExtensions), "ReadDamageInfo") })) { int index = val.Index; val.Index = index + 1; val.EmitDelegate<Func<DamageInfo, DamageInfo>>((Func<DamageInfo, DamageInfo>)((DamageInfo damageInfo) => PatchDamageInfo(damageInfo))); Log.Info("Successfully IL Patched ReadDamageInfo."); } else { Log.Error("Failed to find ReadDamageInfo."); } } private DamageInfo PatchDamageInfo(DamageInfo damageInfo) { //IL_0029: Unknown result type (might be due to invalid IL or missing references) //IL_002f: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_024d: Unknown result type (might be due to invalid IL or missing references) //IL_0136: Unknown result type (might be due to invalid IL or missing references) //IL_0422: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_0551: Unknown result type (might be due to invalid IL or missing references) //IL_055b: Unknown result type (might be due to invalid IL or missing references) //IL_043f: Unknown result type (might be due to invalid IL or missing references) //IL_059e: Unknown result type (might be due to invalid IL or missing references) //IL_05a8: Unknown result type (might be due to invalid IL or missing references) //IL_0704: Unknown result type (might be due to invalid IL or missing references) //IL_0676: Unknown result type (might be due to invalid IL or missing references) //IL_07c4: Unknown result type (might be due to invalid IL or missing references) //IL_08d8: Unknown result type (might be due to invalid IL or missing references) if (Object.op_Implicit((Object)(object)damageInfo.attacker)) { CharacterBody component = damageInfo.attacker.GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { float num = BulletAttack.CalcFalloffFactor((FalloffModel)1, Vector3.Distance(component.aimOrigin, damageInfo.position)); if (component.baseNameToken == "COMMANDO_BODY_NAME") { if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1) && component.skillLocator.primary.skillDef.skillNameToken == "COMMANDO_PRIMARY_NAME") { damageInfo.damage = (float)cmdDblTapDmg.Value / 100f * component.damage * num; damageInfo.procCoefficient = cmdDblTapProc.Value; } if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2) && component.skillLocator.secondary.skillDef.skillNameToken == "COMMANDO_SECONDARY_ALT1_NAME") { damageInfo.damage = (float)cmdBlastDmg.Value / 100f * component.damage * num; damageInfo.procCoefficient = cmdBlastProc.Value; } if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)8) && component.skillLocator.special.skillDef.skillNameToken == "COMMANDO_SPECIAL_NAME") { damageInfo.damage = (float)cmdSuppDmg.Value / 100f * component.damage * num; damageInfo.procCoefficient = cmdSuppProc.Value; } } else if (component.baseNameToken == "HUNTRESS_BODY_NAME") { if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)8) && component.skillLocator.special.skillDef.skillNameToken == "HUNTRESS_SPECIAL_ALT1_NAME") { damageInfo.damage = (float)huntBallistaDmg.Value / 100f * component.damage; damageInfo.procCoefficient = huntBallistaProc.Value; } } else if (component.baseNameToken == "BANDIT2_BODY_NAME") { if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1)) { if (component.skillLocator.primary.skillDef.skillNameToken == "BANDIT2_PRIMARY_NAME") { damageInfo.damage = (float)bandBurstDmg.Value / 100f * component.damage * num; damageInfo.procCoefficient = bandBurstProc.Value; } else if (component.skillLocator.primary.skillDef.skillNameToken == "BANDIT2_PRIMARY_ALT_NAME") { damageInfo.damage = (float)bandBlastDmg.Value / 100f * component.damage; damageInfo.procCoefficient = bandBlastProc.Value; } } if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)8)) { if (component.skillLocator.special.skillDef.skillNameToken == "BANDIT2_SPECIAL_NAME") { damageInfo.damage = (float)bandLightsOutDmg.Value / 100f * component.damage; damageInfo.procCoefficient = bandLightsOutProc.Value; } else if (component.skillLocator.special.skillDef.skillNameToken == "BANDIT2_SPECIAL_ALT_NAME") { damageInfo.procCoefficient = bandDesperadoProc.Value; damageInfo.damage = (float)bandDesperadoDmg.Value / 100f * component.damage; int buffCount = component.GetBuffCount(Buffs.BanditSkull); damageInfo.damage *= 1f + (float)bandDesperadoBuff.Value / 100f * (float)buffCount; } } } else if (component.baseNameToken == "TOOLBOT_BODY_NAME") { if (((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)1) || ((Enum)damageInfo.damageType.damageSource).HasFlag((Enum)(object)(DamageSource)2)) { if (component.skillLocator.primary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_NAME" || component.skillLocator.secondary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_NAME") { damageInfo.damage = (float)multNailgunDmg.Value / 100f * component.damage * num; damageInfo.procCoefficient = multNailgunProc.Value; } else if (component.skillLocator.primary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT1_NAME" || component.skillLocator.secondary.skillDef.skillNameToken == "TOOLBOT_PRIMARY_ALT1_NAME") { damageInfo.damage = (float)multRebarDmg.Value / 100f * component.damage; damageInfo.procCoefficient = multRebarProc.Value; } } } else if (Object.op_Implicit((Object)(object)componen