using UnityEngine; namespace Gameplay.Buff { public class BuffBulletDamage13 : BaseBuff { protected override void _OnTrigger() { base._OnTrigger(); // 【固定数值,攻击力系数,低血量百分比,低血量增伤百分比,如果敌方血量高于自己最终伤害缩放】 var sender = creator; var senderAttack = sender.fightData.attack; var fixedValue = _TryGetFloatParam(0); var attackValue = _TryGetFloatParam(1); var lowHpPercent = _TryGetFloatParam(2); var lowHpScale = _TryGetFloatParam(3); var highHpScale = _TryGetFloatParam(4); var damage = fixedValue + senderAttack * attackValue; // 低血量增伤 var hpPercent = owner.aliveData.currentHp / owner.aliveData.maxHp; if (hpPercent < lowHpPercent) { damage *= (1 + lowHpScale); } // 高血量增伤 var isHighHp = owner.aliveData.currentHp > sender.aliveData.currentHp; if (isHighHp) { damage *= highHpScale; } owner.TakeNormalDamage(Mathf.CeilToInt(damage), sender, false); } } }