32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using UnityEngine;
|
|
namespace Gameplay.Buff
|
|
{
|
|
public class BuffBulletDamage12 : BaseBuff
|
|
{
|
|
|
|
protected override void _OnTrigger()
|
|
{
|
|
base._OnTrigger();
|
|
|
|
// 【基础值,攻击力百分比,累积受伤值百分比,最大累积受伤百分比】
|
|
var fixValue = _TryGetIntParam(0);
|
|
var attackPercent = _TryGetFloatParam(1);
|
|
var hurtPercent = _TryGetFloatParam(2);
|
|
var maxHurtHpPercent = _TryGetFloatParam(3);
|
|
|
|
var hurtHp = owner.fightData.hurtAccumulate;
|
|
var maxHp = owner.aliveData.maxHp;
|
|
var hurtValue = Mathf.RoundToInt(maxHp * maxHurtHpPercent);
|
|
if (hurtHp > hurtValue)
|
|
{
|
|
hurtHp = hurtValue;
|
|
}
|
|
|
|
var damageValue = Mathf.RoundToInt(fixValue
|
|
+ creator.fightData.attack * attackPercent + hurtHp * hurtPercent);
|
|
owner.TakeNormalDamage(damageValue, creator, false);
|
|
}
|
|
|
|
}
|
|
}
|