NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/BuffBulletDamage13.cs

44 lines
1.3 KiB
C#

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);
}
}
}