Some mods may be broken due to the recent Alloyed Collective update.
Decompiled source of ImprovedChefsKiss v1.1.0
ImprovedChefsKiss.dll
Decompiled 2 weeks agousing System; 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 Microsoft.CodeAnalysis; using On.RoR2; using RoR2; using UnityEngine; using UnityEngine.Networking; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("ImprovedChefsKiss")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("ImprovedChefsKiss")] [assembly: AssemblyTitle("ImprovedChefsKiss")] [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 ImprovedChefsKiss { [BepInPlugin("Tero.ImprovedChefsKiss", "ImprovedChefsKiss", "1.1.0")] public class ImprovedChefsKiss : BaseUnityPlugin { [Serializable] [CompilerGenerated] private sealed class <>c { public static readonly <>c <>9 = new <>c(); public static hook_OnCharacterDeath <>9__14_0; public static hook_RecalculateStats <>9__14_1; public static hook_OnTriggerStay <>9__14_2; internal void <Awake>b__14_0(orig_OnCharacterDeath orig, GlobalEventManager self, DamageReport damageReport) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) CharacterBody victimBody = damageReport.victimBody; CharacterBody attackerBody = damageReport.attackerBody; TeamIndex attackerTeamIndex = damageReport.attackerTeamIndex; DamageInfo damageInfo = damageReport.damageInfo; GameObject val = null; if (Object.op_Implicit((Object)(object)damageReport.victim)) { val = ((Component)damageReport.victim).gameObject; } Vector3 val2 = Vector3.zero; Transform val3 = null; if ((Object)(object)val != (Object)null) { val3 = val.transform; } if ((Object)(object)val3 != (Object)null) { val2 = val3.position; } if ((Object)(object)attackerBody != (Object)null) { if (attackerBody.HasBuff(Buffs.CookingRolling)) { victimBody.AddBuff(Buffs.CookingRolled); } if (attackerBody.HasBuff(Buffs.CookingSearing)) { victimBody.AddBuff(Buffs.CookingRoasted); } float num = 0f; float num2 = 0f; float num3 = 0f; float num4 = 0f; if (victimBody.HasBuff(Buffs.CookingChopped)) { num += 1f; num2 += 2f; num3 += 0.04f; num4 += 0.75f; victimBody.RemoveBuff(Buffs.CookingChopped); } if (victimBody.HasBuff(Buffs.CookingOiled)) { num += 1f; num2 += 2f; num3 += 0.04f; num4 += 0.75f; victimBody.RemoveBuff(Buffs.CookingOiled); } if (victimBody.HasBuff(Buffs.CookingRoasted)) { num += 1f; num2 += 2f; num3 += 0.04f; num4 += 0.75f; victimBody.RemoveBuff(Buffs.CookingRoasted); } if (victimBody.HasBuff(Buffs.CookingRolled)) { num += 1f; num2 += 2f; num3 += 0.04f; num4 += 0.75f; victimBody.RemoveBuff(Buffs.CookingRolled); } if (num > 1f) { GameObject val4 = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Chef/ChefFoodPickup"), val2, Random.rotation); ChefFoodPickController component = val4.GetComponent<ChefFoodPickController>(); TeamFilter component2 = val4.GetComponent<TeamFilter>(); if (Object.op_Implicit((Object)(object)component2)) { component2.teamIndex = attackerTeamIndex; } HealthPickup componentInChildren = val4.GetComponentInChildren<HealthPickup>(); if (Object.op_Implicit((Object)(object)componentInChildren)) { componentInChildren.flatHealing = num2; componentInChildren.fractionalHealing = num3; if (num >= 3f) { componentInChildren.flatHealing *= -1f; } if (num >= 4f) { componentInChildren.fractionalHealing *= -1f; } } val4.transform.localScale = new Vector3(num4, num4, num4); if (num <= 2f) { component.foodModel1.SetActive(false); component.foodModel2.SetActive(true); component.foodModel3.SetActive(false); MeshRenderer component3 = component.foodModel1.GetComponent<MeshRenderer>(); ((Renderer)component3).enabled = false; } if (num == 3f) { component.foodModel1.SetActive(true); component.foodModel2.SetActive(false); component.foodModel3.SetActive(false); MeshRenderer component4 = component.foodModel2.GetComponent<MeshRenderer>(); ((Renderer)component4).enabled = false; } if (num >= 4f) { component.foodModel1.SetActive(false); component.foodModel2.SetActive(false); component.foodModel3.SetActive(true); MeshRenderer component5 = component.foodModel1.GetComponent<MeshRenderer>(); ((Renderer)component5).enabled = false; MeshRenderer component6 = component.foodModel2.GetComponent<MeshRenderer>(); ((Renderer)component6).enabled = false; } NetworkServer.Spawn(val4); } } orig.Invoke(self, damageReport); } internal void <Awake>b__14_1(orig_RecalculateStats orig, CharacterBody self) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Invalid comparison between Unknown and I4 float num = 0f; float num2 = 0f; if (Object.op_Implicit((Object)(object)self.healthComponent)) { num = self.healthComponent.Networkhealth; num2 = self.maxHealth; } orig.Invoke(self); if ((int)self.teamComponent.teamIndex == 1 && !NetworkServer.active && Object.op_Implicit((Object)(object)self.healthComponent) && num2 == self.maxHealth && num > self.maxHealth) { if (Object.op_Implicit((Object)(object)self.inventory)) { int num3 = (int)(num - self.maxHealth); Inventory inventory = self.inventory; inventory.beadAppliedHealth += (float)num3; self.healthComponent.Networkhealth = num; } orig.Invoke(self); } } internal void <Awake>b__14_2(orig_OnTriggerStay orig, HealthPickup self, Collider other) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Invalid comparison between Unknown and I4 //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_030d: 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_0315: Invalid comparison between Unknown and I4 //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && self.alive && TeamComponent.GetObjectTeam(((Component)other).gameObject) == self.teamFilter.teamIndex) { CharacterBody component = ((Component)other).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && self.flatHealing < 0f) { self.flatHealing *= -1f; healthComponent.AddBarrier(healthComponent.fullCombinedHealth * 0.3f); if (BoostHealth && !Run.instance.runStopwatch.isPaused && Object.op_Implicit((Object)(object)component.inventory)) { Inventory inventory = component.inventory; inventory.beadAppliedHealth += 1f; component.RecalculateStats(); ((NetworkBehaviour)component).SetDirtyBit(4u); component.inventory.HandleInventoryChanged(); } } if (self.fractionalHealing < 0f) { self.fractionalHealing *= -1f; if (HealTeam) { foreach (TeamComponent teamMember in TeamComponent.GetTeamMembers(self.teamFilter.teamIndex)) { HealthComponent healthComponent2 = teamMember.body.healthComponent; if (!((Object)(object)teamMember.body != (Object)(object)component) || !Object.op_Implicit((Object)(object)healthComponent2) || !healthComponent2.alive) { continue; } healthComponent2.AddBarrier(healthComponent2.fullCombinedHealth * 0.3f); if (BoostHealth && !Run.instance.runStopwatch.isPaused && Object.op_Implicit((Object)(object)teamMember.body.inventory)) { Inventory inventory2 = teamMember.body.inventory; inventory2.beadAppliedHealth += 1f; teamMember.body.RecalculateStats(); ((NetworkBehaviour)teamMember.body).SetDirtyBit(4u); teamMember.body.inventory.HandleInventoryChanged(); } healthComponent2.Heal(self.flatHealing + healthComponent2.fullHealth * self.fractionalHealing, default(ProcChainMask), true); EffectManager.SpawnEffect(self.pickupEffect, new EffectData { origin = teamMember.body.transform.position }, true); if (Object.op_Implicit((Object)(object)teamMember.body.skillLocator)) { teamMember.body.skillLocator.ResetSkills(); } if (Object.op_Implicit((Object)(object)teamMember.body.equipmentSlot) && Object.op_Implicit((Object)(object)teamMember.body.inventory)) { EquipmentState equipment = teamMember.body.inventory.GetEquipment((uint)teamMember.body.inventory.activeEquipmentSlot); if ((int)equipment.equipmentIndex != -1 && ((EquipmentState)(ref equipment)).isPerfomingRecharge) { FixedTimeStamp now = FixedTimeStamp.now; teamMember.body.inventory.DeductActiveEquipmentCooldown((equipment.chargeFinishTime.t - now.t) / 2f); } } } } if (Object.op_Implicit((Object)(object)component.skillLocator)) { component.skillLocator.ResetSkills(); } if (Object.op_Implicit((Object)(object)component.equipmentSlot) && Object.op_Implicit((Object)(object)component.inventory)) { EquipmentState equipment2 = component.inventory.GetEquipment((uint)component.inventory.activeEquipmentSlot); if ((int)equipment2.equipmentIndex != -1 && ((EquipmentState)(ref equipment2)).isPerfomingRecharge) { FixedTimeStamp now2 = FixedTimeStamp.now; component.inventory.DeductActiveEquipmentCooldown((equipment2.chargeFinishTime.t - now2.t) / 2f); } } } } } orig.Invoke(self, other); } } public const string PluginGUID = "Tero.ImprovedChefsKiss"; public const string PluginAuthor = "Tero"; public const string PluginName = "ImprovedChefsKiss"; public const string PluginVersion = "1.1.0"; public static bool HealTeam; public static bool BoostHealth; public static ConfigEntry<bool> Feast { get; set; } public static ConfigEntry<bool> Nutrition { get; set; } public void Awake() { //IL_0094: Unknown result type (might be due to invalid IL or missing references) //IL_0099: Unknown result type (might be due to invalid IL or missing references) //IL_009f: Expected O, but got Unknown //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00be: Unknown result type (might be due to invalid IL or missing references) //IL_00c4: Expected O, but got Unknown //IL_00de: Unknown result type (might be due to invalid IL or missing references) //IL_00e3: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Expected O, but got Unknown Log.Init(((BaseUnityPlugin)this).Logger); try { Nutrition = ((BaseUnityPlugin)this).Config.Bind<bool>("ImprovedChefsKiss", "Nutrition", false, "Level 3 food also gives +1 max hp"); BoostHealth = Nutrition.Value; } catch (Exception) { } try { Feast = ((BaseUnityPlugin)this).Config.Bind<bool>("ImprovedChefsKiss", "Feast", false, "Level 4 food affects the entire team"); HealTeam = Feast.Value; } catch (Exception) { } object obj = <>c.<>9__14_0; if (obj == null) { hook_OnCharacterDeath val = delegate(orig_OnCharacterDeath orig, GlobalEventManager self, DamageReport damageReport) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0015: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_0074: Unknown result type (might be due to invalid IL or missing references) //IL_0079: Unknown result type (might be due to invalid IL or missing references) //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0222: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_02dd: Unknown result type (might be due to invalid IL or missing references) CharacterBody victimBody = damageReport.victimBody; CharacterBody attackerBody = damageReport.attackerBody; TeamIndex attackerTeamIndex = damageReport.attackerTeamIndex; DamageInfo damageInfo = damageReport.damageInfo; GameObject val4 = null; if (Object.op_Implicit((Object)(object)damageReport.victim)) { val4 = ((Component)damageReport.victim).gameObject; } Vector3 val5 = Vector3.zero; Transform val6 = null; if ((Object)(object)val4 != (Object)null) { val6 = val4.transform; } if ((Object)(object)val6 != (Object)null) { val5 = val6.position; } if ((Object)(object)attackerBody != (Object)null) { if (attackerBody.HasBuff(Buffs.CookingRolling)) { victimBody.AddBuff(Buffs.CookingRolled); } if (attackerBody.HasBuff(Buffs.CookingSearing)) { victimBody.AddBuff(Buffs.CookingRoasted); } float num4 = 0f; float num5 = 0f; float num6 = 0f; float num7 = 0f; if (victimBody.HasBuff(Buffs.CookingChopped)) { num4 += 1f; num5 += 2f; num6 += 0.04f; num7 += 0.75f; victimBody.RemoveBuff(Buffs.CookingChopped); } if (victimBody.HasBuff(Buffs.CookingOiled)) { num4 += 1f; num5 += 2f; num6 += 0.04f; num7 += 0.75f; victimBody.RemoveBuff(Buffs.CookingOiled); } if (victimBody.HasBuff(Buffs.CookingRoasted)) { num4 += 1f; num5 += 2f; num6 += 0.04f; num7 += 0.75f; victimBody.RemoveBuff(Buffs.CookingRoasted); } if (victimBody.HasBuff(Buffs.CookingRolled)) { num4 += 1f; num5 += 2f; num6 += 0.04f; num7 += 0.75f; victimBody.RemoveBuff(Buffs.CookingRolled); } if (num4 > 1f) { GameObject val7 = Object.Instantiate<GameObject>(LegacyResourcesAPI.Load<GameObject>("Chef/ChefFoodPickup"), val5, Random.rotation); ChefFoodPickController component2 = val7.GetComponent<ChefFoodPickController>(); TeamFilter component3 = val7.GetComponent<TeamFilter>(); if (Object.op_Implicit((Object)(object)component3)) { component3.teamIndex = attackerTeamIndex; } HealthPickup componentInChildren = val7.GetComponentInChildren<HealthPickup>(); if (Object.op_Implicit((Object)(object)componentInChildren)) { componentInChildren.flatHealing = num5; componentInChildren.fractionalHealing = num6; if (num4 >= 3f) { componentInChildren.flatHealing *= -1f; } if (num4 >= 4f) { componentInChildren.fractionalHealing *= -1f; } } val7.transform.localScale = new Vector3(num7, num7, num7); if (num4 <= 2f) { component2.foodModel1.SetActive(false); component2.foodModel2.SetActive(true); component2.foodModel3.SetActive(false); MeshRenderer component4 = component2.foodModel1.GetComponent<MeshRenderer>(); ((Renderer)component4).enabled = false; } if (num4 == 3f) { component2.foodModel1.SetActive(true); component2.foodModel2.SetActive(false); component2.foodModel3.SetActive(false); MeshRenderer component5 = component2.foodModel2.GetComponent<MeshRenderer>(); ((Renderer)component5).enabled = false; } if (num4 >= 4f) { component2.foodModel1.SetActive(false); component2.foodModel2.SetActive(false); component2.foodModel3.SetActive(true); MeshRenderer component6 = component2.foodModel1.GetComponent<MeshRenderer>(); ((Renderer)component6).enabled = false; MeshRenderer component7 = component2.foodModel2.GetComponent<MeshRenderer>(); ((Renderer)component7).enabled = false; } NetworkServer.Spawn(val7); } } orig.Invoke(self, damageReport); }; <>c.<>9__14_0 = val; obj = (object)val; } GlobalEventManager.OnCharacterDeath += (hook_OnCharacterDeath)obj; object obj2 = <>c.<>9__14_1; if (obj2 == null) { hook_RecalculateStats val2 = delegate(orig_RecalculateStats orig, CharacterBody self) { //IL_003f: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Invalid comparison between Unknown and I4 float num = 0f; float num2 = 0f; if (Object.op_Implicit((Object)(object)self.healthComponent)) { num = self.healthComponent.Networkhealth; num2 = self.maxHealth; } orig.Invoke(self); if ((int)self.teamComponent.teamIndex == 1 && !NetworkServer.active && Object.op_Implicit((Object)(object)self.healthComponent) && num2 == self.maxHealth && num > self.maxHealth) { if (Object.op_Implicit((Object)(object)self.inventory)) { int num3 = (int)(num - self.maxHealth); Inventory inventory3 = self.inventory; inventory3.beadAppliedHealth += (float)num3; self.healthComponent.Networkhealth = num; } orig.Invoke(self); } }; <>c.<>9__14_1 = val2; obj2 = (object)val2; } CharacterBody.RecalculateStats += (hook_RecalculateStats)obj2; object obj3 = <>c.<>9__14_2; if (obj3 == null) { hook_OnTriggerStay val3 = delegate(orig_OnTriggerStay orig, HealthPickup self, Collider other) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0021: 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_03ce: Unknown result type (might be due to invalid IL or missing references) //IL_03d3: Unknown result type (might be due to invalid IL or missing references) //IL_03d5: Unknown result type (might be due to invalid IL or missing references) //IL_03d7: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Invalid comparison between Unknown and I4 //IL_03f0: Unknown result type (might be due to invalid IL or missing references) //IL_03f5: Unknown result type (might be due to invalid IL or missing references) //IL_03fd: Unknown result type (might be due to invalid IL or missing references) //IL_03ff: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_0254: Unknown result type (might be due to invalid IL or missing references) //IL_025a: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_027b: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Expected O, but got Unknown //IL_0306: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_030d: 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_0315: Invalid comparison between Unknown and I4 //IL_0328: Unknown result type (might be due to invalid IL or missing references) //IL_032d: Unknown result type (might be due to invalid IL or missing references) //IL_033b: Unknown result type (might be due to invalid IL or missing references) //IL_033d: Unknown result type (might be due to invalid IL or missing references) //IL_0347: Unknown result type (might be due to invalid IL or missing references) if (NetworkServer.active && self.alive && TeamComponent.GetObjectTeam(((Component)other).gameObject) == self.teamFilter.teamIndex) { CharacterBody component = ((Component)other).GetComponent<CharacterBody>(); if (Object.op_Implicit((Object)(object)component)) { HealthComponent healthComponent = component.healthComponent; if (Object.op_Implicit((Object)(object)healthComponent) && self.flatHealing < 0f) { self.flatHealing *= -1f; healthComponent.AddBarrier(healthComponent.fullCombinedHealth * 0.3f); if (BoostHealth && !Run.instance.runStopwatch.isPaused && Object.op_Implicit((Object)(object)component.inventory)) { Inventory inventory = component.inventory; inventory.beadAppliedHealth += 1f; component.RecalculateStats(); ((NetworkBehaviour)component).SetDirtyBit(4u); component.inventory.HandleInventoryChanged(); } } if (self.fractionalHealing < 0f) { self.fractionalHealing *= -1f; if (HealTeam) { foreach (TeamComponent teamMember in TeamComponent.GetTeamMembers(self.teamFilter.teamIndex)) { HealthComponent healthComponent2 = teamMember.body.healthComponent; if ((Object)(object)teamMember.body != (Object)(object)component && Object.op_Implicit((Object)(object)healthComponent2) && healthComponent2.alive) { healthComponent2.AddBarrier(healthComponent2.fullCombinedHealth * 0.3f); if (BoostHealth && !Run.instance.runStopwatch.isPaused && Object.op_Implicit((Object)(object)teamMember.body.inventory)) { Inventory inventory2 = teamMember.body.inventory; inventory2.beadAppliedHealth += 1f; teamMember.body.RecalculateStats(); ((NetworkBehaviour)teamMember.body).SetDirtyBit(4u); teamMember.body.inventory.HandleInventoryChanged(); } healthComponent2.Heal(self.flatHealing + healthComponent2.fullHealth * self.fractionalHealing, default(ProcChainMask), true); EffectManager.SpawnEffect(self.pickupEffect, new EffectData { origin = teamMember.body.transform.position }, true); if (Object.op_Implicit((Object)(object)teamMember.body.skillLocator)) { teamMember.body.skillLocator.ResetSkills(); } if (Object.op_Implicit((Object)(object)teamMember.body.equipmentSlot) && Object.op_Implicit((Object)(object)teamMember.body.inventory)) { EquipmentState equipment = teamMember.body.inventory.GetEquipment((uint)teamMember.body.inventory.activeEquipmentSlot); if ((int)equipment.equipmentIndex != -1 && ((EquipmentState)(ref equipment)).isPerfomingRecharge) { FixedTimeStamp now = FixedTimeStamp.now; teamMember.body.inventory.DeductActiveEquipmentCooldown((equipment.chargeFinishTime.t - now.t) / 2f); } } } } } if (Object.op_Implicit((Object)(object)component.skillLocator)) { component.skillLocator.ResetSkills(); } if (Object.op_Implicit((Object)(object)component.equipmentSlot) && Object.op_Implicit((Object)(object)component.inventory)) { EquipmentState equipment2 = component.inventory.GetEquipment((uint)component.inventory.activeEquipmentSlot); if ((int)equipment2.equipmentIndex != -1 && ((EquipmentState)(ref equipment2)).isPerfomingRecharge) { FixedTimeStamp now2 = FixedTimeStamp.now; component.inventory.DeductActiveEquipmentCooldown((equipment2.chargeFinishTime.t - now2.t) / 2f); } } } } } orig.Invoke(self, other); }; <>c.<>9__14_2 = val3; obj3 = (object)val3; } HealthPickup.OnTriggerStay += (hook_OnTriggerStay)obj3; } } internal static class Log { internal static ManualLogSource _logSource; internal static void Init(ManualLogSource logSource) { _logSource = logSource; } internal static void LogDebug(object data) { _logSource.LogDebug(data); } internal static void LogError(object data) { _logSource.LogError(data); } internal static void LogFatal(object data) { _logSource.LogFatal(data); } internal static void LogInfo(object data) { _logSource.LogInfo(data); } internal static void LogMessage(object data) { _logSource.LogMessage(data); } internal static void LogWarning(object data) { _logSource.LogWarning(data); } } }