2024-05-17 15:37:56 +08:00
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
namespace Gameplay.Buff
|
|
|
|
|
|
{
|
|
|
|
|
|
public class BuffBulletDamage7 : BaseBuff
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
protected override void _OnTrigger()
|
|
|
|
|
|
{
|
|
|
|
|
|
base._OnTrigger();
|
|
|
|
|
|
// 对目标造成A%+B克默攻击点伤害,有10%几率额外造成双倍伤害
|
2024-10-25 18:18:33 +08:00
|
|
|
|
// 修正 0-固定值 1-攻击力百分比 2-暴击率 3-暴击倍数
|
|
|
|
|
|
var fixValue = _TryGetFloatParam(0);
|
|
|
|
|
|
var rateAttack = _TryGetFloatParam(1);
|
2024-05-17 15:37:56 +08:00
|
|
|
|
var critRate = _TryGetFloatParam(2);
|
|
|
|
|
|
var critValue = _TryGetFloatParam(3);
|
|
|
|
|
|
|
|
|
|
|
|
var damage = Mathf.FloorToInt((fixValue + rateAttack * owner.fightData.attack));
|
|
|
|
|
|
var random = Random.Range(0, 1f);
|
|
|
|
|
|
var isCritical = random < critRate;
|
|
|
|
|
|
if (isCritical)
|
|
|
|
|
|
{
|
|
|
|
|
|
damage = Mathf.FloorToInt(damage * critValue);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
owner.TakeNormalDamage(damage, creator, isCritical);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|