using System; using Cielonos.MainGame.Characters; using SLSUtilities.General; using UnityEngine; namespace Cielonos.MainGame.Inventory.Collections { public partial class VipersFang : PassiveEquipmentBase { //每次攻击根据敌人当前已经损失的生命百分比,增加额外伤害(最大增加 20 伤害) public override void OnObtained() { base.OnObtained(); Action onStartAttack = OnStartAttack; player.eventSm.onStartAttack.Add("VipersFang", onStartAttack.ToPrioritized()); } } public partial class VipersFang { private void OnStartAttack(AttackAreaBase attackArea, CharacterBase target, Attack.Context attackContext) { float targetHealthPercentage = target.attributeSm[CharacterAttribute.Health] / target.attributeSm[CharacterAttribute.MaximumHealth]; float extraDamage = passiveAttributeData.itemAttributes["ExtraDamage"] * (1 - targetHealthPercentage); attackContext.value.additionalFlatDamage += extraDamage; } } }