Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of ForgottenSkillsTweak v0.1.1
ForgottenSkillsTweaks/ForgottenSkillsTweaks.dll
Decompiled 13 hours agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security.Permissions; using BepInEx; using EntityStates; using EntityStates.FalseSon; using EntityStates.Huntress; using EntityStates.Mage.Weapon; using KinematicCharacterController; using Microsoft.CodeAnalysis; using On.EntityStates.FalseSon; using On.EntityStates.Huntress; using On.EntityStates.Mage.Weapon; using On.RoR2; using R2API; using RoR2; using RoR2.Projectile; using RoR2.Skills; using UnityEngine; using UnityEngine.AddressableAssets; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ForgottenSkillsTweaks")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+cc7dea8867df77fc6fba998680924e55cfee06ba")] [assembly: AssemblyProduct("ForgottenSkillsTweaks")] [assembly: AssemblyTitle("ForgottenSkillsTweaks")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [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 ForgottenSkillsTweaks { public static class ArrowRainTweak { public static void init() { //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Unknown result type (might be due to invalid IL or missing references) //IL_002a: 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_0070: Unknown result type (might be due to invalid IL or missing references) //IL_007a: Expected O, but got Unknown float newRadius = 13f; SkillDef val = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Huntress/HuntressBodyArrowRain.asset").WaitForCompletion(); SkillDef val2 = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Huntress/HuntressBodyBlink.asset").WaitForCompletion(); val2.baseRechargeInterval = 4.5f; val.baseRechargeInterval = 11f; LanguageAPI.Add("HuntressArrowRainDescription", "<style=cIsUtility>Teleport</style> into the sky. Target an area to rain arrows, <style=cIsUtility>slowing</style> all enemies and dealing <style=cIsDamage>660% damage</style> per second."); val.skillDescriptionToken = "HuntressArrowRainDescription"; ArrowRain.OnEnter += (hook_OnEnter)delegate(orig_OnEnter orig, ArrowRain self) { //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_009e: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); self.areaIndicatorInstance.transform.localScale = new Vector3(newRadius, 150f, newRadius); ArrowRain.projectilePrefab.GetComponent<ProjectileDotZone>().lifetime = 7f; float num = (((EntityState)self).characterBody.attackSpeed - ((EntityState)self).characterBody.baseAttackSpeed) * 0.3f; ArrowRain.projectilePrefab.GetComponent<ProjectileDotZone>().resetFrequency = 4f * (1f + num); ((Component)ArrowRain.projectilePrefab.GetComponent<ProjectileDotZone>()).transform.localScale = new Vector3(newRadius, 150f, newRadius) * 2f; ArrowRain.projectilePrefab.GetComponent<ProjectileDotZone>().overlapProcCoefficient = 0.7f; ArrowRain.projectilePrefab.GetComponent<ProjectileDotZone>().damageCoefficient = 0.75f; }; } } public static class FlameThrowerTweak { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnEnter <>9__5_0; public static hook_FixedUpdate <>9__5_1; internal void <init>b__5_0(orig_OnEnter orig, Flamethrower self) { orig.Invoke(self); self.entryDuration = 0.3f; self.tickDamageCoefficient *= 2.5f; Flamethrower.ignitePercentChance = 100f; self.maxDistance = newRange; float scaleRatio = newRange / 16f; if ((Object)(object)((EntityState)self).characterMotor != (Object)null) { ((BaseCharacterController)((EntityState)self).characterMotor).Motor.ForceUnground(jumpDuration); ((EntityState)self).characterMotor.velocity.y = 0f; } ScaleFlamethrowerVisual(self.leftFlamethrowerEffectInstance, scaleRatio); ScaleFlamethrowerVisual(self.rightFlamethrowerEffectInstance, scaleRatio); } internal void <init>b__5_1(orig_FixedUpdate orig, Flamethrower self) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_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_0087: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (((EntityState)self).fixedAge <= jumpDuration && (Object)(object)((EntityState)self).characterMotor != (Object)null && (Object)(object)((EntityState)self).characterBody != (Object)null) { float num = ((EntityState)self).fixedAge / jumpDuration; float num2 = speedCurve.Evaluate(num); float num3 = ((EntityState)self).characterBody.moveSpeed * baseSpeedMultiplier * num2; CharacterMotor characterMotor = ((EntityState)self).characterMotor; characterMotor.rootMotion += Vector3.up * (num3 * Time.fixedDeltaTime); ((EntityState)self).characterMotor.velocity.y = 0f; } else if (((EntityState)self).fixedAge <= gravityDelay + jumpDuration) { ((EntityState)self).characterMotor.velocity.y = Mathf.Max(((EntityState)self).characterMotor.velocity.y, 0f); } } } private static float newRange = 45f; private static float jumpDuration = 0.5f; private static float baseSpeedMultiplier = 3.5f; private static float gravityDelay = 0.5f; private static readonly AnimationCurve speedCurve = new AnimationCurve((Keyframe[])(object)new Keyframe[3] { new Keyframe(0f, 1f), new Keyframe(0.7f, 0.5f), new Keyframe(1f, 0f) }); public static void init() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0062: Expected O, but got Unknown //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Unknown result type (might be due to invalid IL or missing references) //IL_0087: Expected O, but got Unknown SkillDef val = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/Base/Mage/MageBodyFlamethrower.asset").WaitForCompletion(); LanguageAPI.Add("MageFlamethrowerNewDesc", "<style=cIsdamage>Ignite</style>. Burn all enemies in front of you for <style=cIsdamage>5000% damage</style>."); val.skillDescriptionToken = "MageFlamethrowerNewDesc"; val.keywordTokens = new string[1] { "KEYWORD_IGNITE" }; object obj = <>c.<>9__5_0; if (obj == null) { hook_OnEnter val2 = delegate(orig_OnEnter orig, Flamethrower self) { orig.Invoke(self); self.entryDuration = 0.3f; self.tickDamageCoefficient *= 2.5f; Flamethrower.ignitePercentChance = 100f; self.maxDistance = newRange; float scaleRatio = newRange / 16f; if ((Object)(object)((EntityState)self).characterMotor != (Object)null) { ((BaseCharacterController)((EntityState)self).characterMotor).Motor.ForceUnground(jumpDuration); ((EntityState)self).characterMotor.velocity.y = 0f; } ScaleFlamethrowerVisual(self.leftFlamethrowerEffectInstance, scaleRatio); ScaleFlamethrowerVisual(self.rightFlamethrowerEffectInstance, scaleRatio); }; <>c.<>9__5_0 = val2; obj = (object)val2; } Flamethrower.OnEnter += (hook_OnEnter)obj; object obj2 = <>c.<>9__5_1; if (obj2 == null) { hook_FixedUpdate val3 = delegate(orig_FixedUpdate orig, Flamethrower self) { //IL_006c: Unknown result type (might be due to invalid IL or missing references) //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_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_0087: Unknown result type (might be due to invalid IL or missing references) orig.Invoke(self); if (((EntityState)self).fixedAge <= jumpDuration && (Object)(object)((EntityState)self).characterMotor != (Object)null && (Object)(object)((EntityState)self).characterBody != (Object)null) { float num = ((EntityState)self).fixedAge / jumpDuration; float num2 = speedCurve.Evaluate(num); float num3 = ((EntityState)self).characterBody.moveSpeed * baseSpeedMultiplier * num2; CharacterMotor characterMotor = ((EntityState)self).characterMotor; characterMotor.rootMotion += Vector3.up * (num3 * Time.fixedDeltaTime); ((EntityState)self).characterMotor.velocity.y = 0f; } else if (((EntityState)self).fixedAge <= gravityDelay + jumpDuration) { ((EntityState)self).characterMotor.velocity.y = Mathf.Max(((EntityState)self).characterMotor.velocity.y, 0f); } }; <>c.<>9__5_1 = val3; obj2 = (object)val3; } Flamethrower.FixedUpdate += (hook_FixedUpdate)obj2; } private static void ScaleFlamethrowerVisual(GameObject effectInstance, float scaleRatio) { //IL_004d: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)effectInstance == (Object)null) { return; } ParticleSystem[] componentsInChildren = effectInstance.GetComponentsInChildren<ParticleSystem>(); ParticleSystem[] array = componentsInChildren; foreach (ParticleSystem val in array) { string name = ((Object)((Component)val).gameObject).name; if (!(name == "IcoCharge")) { MainModule main = val.main; ((MainModule)(ref main)).startSpeedMultiplier = ((MainModule)(ref main)).startSpeedMultiplier * scaleRatio; if (name == "FireForward" || name == "Billboard") { ((MainModule)(ref main)).startSizeMultiplier = ((MainModule)(ref main)).startSizeMultiplier * 1.5f; } } } } } [BepInPlugin("com.MiIsaarks.ForgottenSkillsTweaks", "ForgottenSkillsTweaks", "0.1.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class MainPlugin : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_FireBullet <>9__4_0; public static hook_OnEnter <>9__4_2; public static hook_GetGrowthLaserBonusDuration <>9__4_3; public static hook_Fire <>9__4_4; public static hook_OnEnter <>9__4_5; internal void <Awake>b__4_0(orig_FireBullet orig, LaserFatherCharged self, Transform a, Ray b, string c, float d) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) light = true; orig.Invoke(self, a, b, c, d); light = false; } internal void <Awake>b__4_2(orig_OnEnter orig, LaserFather self) { self.baseChargeDuration = 0.5f; orig.Invoke(self); } internal float <Awake>b__4_3(orig_GetGrowthLaserBonusDuration orig, FalseSonController self) { return 0f; } internal void <Awake>b__4_4(orig_Fire orig, BulletAttack self) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)self.owner != (Object)null) { CharacterBody component = self.owner.GetComponent<CharacterBody>(); if ((Object)(object)component != (Object)null && component.bodyIndex == BodyCatalog.FindBodyIndex("FalseSonBody")) { EntityStateMachine val = EntityStateMachine.FindByCustomName(self.owner, "Weapon"); if ((Object)(object)val != (Object)null && val.state is LaserFatherCharged) { self.falloffModel = (FalloffModel)0; } } } orig.Invoke(self); } internal void <Awake>b__4_5(orig_OnEnter orig, LaserFatherCharged self) { orig.Invoke(self); float num = (((EntityState)self).characterBody.attackSpeed - ((EntityState)self).characterBody.baseAttackSpeed) * 0.3f; self.fireFrequency = LaserFatherCharged.baseFireFrequency * (1f + num); hitcount = 1; LaserFatherCharged.procCoefficientPerTick = 0.7f; SkillLocator skillLocator = ((EntityState)self).characterBody.skillLocator; self.spikeRefillAmountPerSecond = 0f; if ((Object)(object)skillLocator != (Object)null) { float num2 = skillLocator.GetSkill((SkillSlot)1).maxStock; float num3 = skillLocator.GetSkill((SkillSlot)1).stock; int num4 = (int)(num2 * 0.5f); ((EntityState)self).skillLocator.GetSkill((SkillSlot)1).stock = (int)Mathf.Clamp(num3 + (float)num4, num3, num2); } if (!originalDamage.HasValue) { originalDamage = LaserFatherCharged.damageCoefficient * 1.35f; } FalseSonController component = ((Component)((EntityState)self).characterBody).GetComponent<FalseSonController>(); if ((Object)(object)component != (Object)null) { int growthLevel = component.growthLevel; float num5 = 1f + (float)growthLevel * 0.05f; LaserFatherCharged.damageCoefficient = originalDamage.Value * num5; } } } private static int hitsToLightning = 10; private static int hitcount = 0; private static float? originalDamage = null; private static bool light = false; public void Awake() { //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0044: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Unknown result type (might be due to invalid IL or missing references) //IL_0081: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_0105: Unknown result type (might be due to invalid IL or missing references) //IL_010b: Expected O, but got Unknown //IL_0125: Unknown result type (might be due to invalid IL or missing references) //IL_012a: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Expected O, but got Unknown //IL_014a: Unknown result type (might be due to invalid IL or missing references) //IL_014f: Unknown result type (might be due to invalid IL or missing references) //IL_0155: Expected O, but got Unknown FlameThrowerTweak.init(); ArrowRainTweak.init(); GameObject Lightning = Addressables.LoadAssetAsync<GameObject>((object)"RoR2/DLC2/FalseSon/LunarStakeLightningStrikeImpactEffect.prefab").WaitForCompletion(); object obj = <>c.<>9__4_0; if (obj == null) { hook_FireBullet val = delegate(orig_FireBullet orig, LaserFatherCharged self, Transform a, Ray b, string c, float d) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) light = true; orig.Invoke(self, a, b, c, d); light = false; }; <>c.<>9__4_0 = val; obj = (object)val; } LaserFatherCharged.FireBullet += (hook_FireBullet)obj; BulletAttack.DefaultHitCallbackImplementation += (hook_DefaultHitCallbackImplementation)delegate(orig_DefaultHitCallbackImplementation orig, BulletAttack self, ref BulletHit bullethit) { //IL_006e: Unknown result type (might be due to invalid IL or missing references) //IL_0073: Unknown result type (might be due to invalid IL or missing references) //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00aa: Unknown result type (might be due to invalid IL or missing references) //IL_00af: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00ba: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00da: Unknown result type (might be due to invalid IL or missing references) //IL_00dc: Unknown result type (might be due to invalid IL or missing references) //IL_00e1: Unknown result type (might be due to invalid IL or missing references) //IL_00e7: Unknown result type (might be due to invalid IL or missing references) //IL_00ec: Unknown result type (might be due to invalid IL or missing references) //IL_00f1: Unknown result type (might be due to invalid IL or missing references) //IL_0101: Expected O, but got Unknown bool result = orig.Invoke(self, ref bullethit); if (!light) { return result; } if ((Object)(object)bullethit.entityObject.GetComponent<HealthComponent>() != (Object)null) { hitcount++; if (hitcount % hitsToLightning == 0) { GameObject inflictor = Object.Instantiate<GameObject>(Lightning, bullethit.entityObject.transform.position, Quaternion.identity); bullethit.entityObject.GetComponent<HealthComponent>().TakeDamage(new DamageInfo { damage = self.damage * 3f, position = bullethit.point, force = Vector3.zero, attacker = self.owner, inflictor = inflictor, crit = self.isCrit, damageColorIndex = (DamageColorIndex)0, damageType = DamageTypeCombo.op_Implicit((DamageTypeExtended)8192), procCoefficient = 1f }); } } return result; }; object obj2 = <>c.<>9__4_2; if (obj2 == null) { hook_OnEnter val2 = delegate(orig_OnEnter orig, LaserFather self) { self.baseChargeDuration = 0.5f; orig.Invoke(self); }; <>c.<>9__4_2 = val2; obj2 = (object)val2; } LaserFather.OnEnter += (hook_OnEnter)obj2; SkillDef val3 = Addressables.LoadAssetAsync<SkillDef>((object)"RoR2/DLC2/FalseSon/FalseSonBodyLaser.asset").WaitForCompletion(); LanguageAPI.Add("FalseSonLaserDescriptionNew", "Charge a rapidly hitting laser dealing <style=cIsDamage>320%-1890% damage</style> for <style=cIsUtility>4s</style> and refill <style=cIsUtility>Lunar Spikes</style>. Increases in damage through <style=cIsHealing>Growth</style>. Summons <style=cIsDamage>Lightning</style> on repeated hits."); val3.skillDescriptionToken = "FalseSonLaserDescriptionNew"; LanguageAPI.Add("KEYWORD_LASER_LIGHTNING", "<style=cKeywordName>Brother's Lightning</style><style=cSub>\nEvery <style=cIsUtility>10 hits</style> with the laser, call down a lightning strike dealing <style=cIsDamage>300% </style>of the laser's damage.</style>"); val3.keywordTokens = new string[2] { "KEYWORD_GROWTH", "KEYWORD_LASER_LIGHTNING" }; val3.baseRechargeInterval = 10f; object obj3 = <>c.<>9__4_3; if (obj3 == null) { hook_GetGrowthLaserBonusDuration val4 = (orig_GetGrowthLaserBonusDuration orig, FalseSonController self) => 0f; <>c.<>9__4_3 = val4; obj3 = (object)val4; } FalseSonController.GetGrowthLaserBonusDuration += (hook_GetGrowthLaserBonusDuration)obj3; object obj4 = <>c.<>9__4_4; if (obj4 == null) { hook_Fire val5 = delegate(orig_Fire orig, BulletAttack self) { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0032: Unknown result type (might be due to invalid IL or missing references) //IL_0075: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)self.owner != (Object)null) { CharacterBody component = self.owner.GetComponent<CharacterBody>(); if ((Object)(object)component != (Object)null && component.bodyIndex == BodyCatalog.FindBodyIndex("FalseSonBody")) { EntityStateMachine val7 = EntityStateMachine.FindByCustomName(self.owner, "Weapon"); if ((Object)(object)val7 != (Object)null && val7.state is LaserFatherCharged) { self.falloffModel = (FalloffModel)0; } } } orig.Invoke(self); }; <>c.<>9__4_4 = val5; obj4 = (object)val5; } BulletAttack.Fire += (hook_Fire)obj4; object obj5 = <>c.<>9__4_5; if (obj5 == null) { hook_OnEnter val6 = delegate(orig_OnEnter orig, LaserFatherCharged self) { orig.Invoke(self); float num = (((EntityState)self).characterBody.attackSpeed - ((EntityState)self).characterBody.baseAttackSpeed) * 0.3f; self.fireFrequency = LaserFatherCharged.baseFireFrequency * (1f + num); hitcount = 1; LaserFatherCharged.procCoefficientPerTick = 0.7f; SkillLocator skillLocator = ((EntityState)self).characterBody.skillLocator; self.spikeRefillAmountPerSecond = 0f; if ((Object)(object)skillLocator != (Object)null) { float num2 = skillLocator.GetSkill((SkillSlot)1).maxStock; float num3 = skillLocator.GetSkill((SkillSlot)1).stock; int num4 = (int)(num2 * 0.5f); ((EntityState)self).skillLocator.GetSkill((SkillSlot)1).stock = (int)Mathf.Clamp(num3 + (float)num4, num3, num2); } if (!originalDamage.HasValue) { originalDamage = LaserFatherCharged.damageCoefficient * 1.35f; } FalseSonController component = ((Component)((EntityState)self).characterBody).GetComponent<FalseSonController>(); if ((Object)(object)component != (Object)null) { int growthLevel = component.growthLevel; float num5 = 1f + (float)growthLevel * 0.05f; LaserFatherCharged.damageCoefficient = originalDamage.Value * num5; } }; <>c.<>9__4_5 = val6; obj5 = (object)val6; } LaserFatherCharged.OnEnter += (hook_OnEnter)obj5; } } }