30 lines
979 B
C#
30 lines
979 B
C#
using UnityEngine;
|
||
namespace Gameplay.Buff
|
||
{
|
||
public class BuffBulletDamage7 : BaseBuff
|
||
{
|
||
|
||
protected override void _OnTrigger()
|
||
{
|
||
base._OnTrigger();
|
||
// 对目标造成A%+B克默攻击点伤害,有10%几率额外造成双倍伤害
|
||
// 修正 0-固定值 1-攻击力百分比 2-暴击率 3-暴击倍数
|
||
var fixValue = _TryGetFloatParam(0);
|
||
var rateAttack = _TryGetFloatParam(1);
|
||
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);
|
||
}
|
||
|
||
}
|
||
}
|