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

30 lines
994 B
C#

using UnityEngine;
namespace Gameplay.Buff
{
public class BuffBulletDamage4 : BaseBuff
{
protected override void _OnTrigger()
{
base._OnTrigger();
var paramA = _TryGetFloatParam(0);
var paramB = _TryGetFloatParam(1);
var paramC = _TryGetFloatParam(2);
var paramD = _TryGetFloatParam(3);
// 伤害公式
// 伤害 = (A * 攻击力 + B) * max(D, C * (1 - 敌方士气百分比))
var sender = creator;
var senderAttack = sender.fightData.attack;
var ownerMorale = owner.aliveData.currentMorale;
var maxMorale = owner.aliveData.maxMorale;
var moralePercent = ownerMorale / maxMorale;
var finalDamage = Mathf.FloorToInt((paramA * senderAttack + paramB) * Mathf.Max(paramD, paramC * (1 - moralePercent)));
owner.TakeNormalDamage(finalDamage, sender, false);
}
}
}