35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using UnityEngine;
|
||
namespace Gameplay.Buff
|
||
{
|
||
public class BuffBulletDamage8 : BaseBuff
|
||
{
|
||
|
||
protected override void _OnTrigger()
|
||
{
|
||
base._OnTrigger();
|
||
// 对目标造成 A + B%攻击力伤害, 目标专一:【专注一击】对同一目标造成的伤害根据次数递增,最多30%
|
||
var fixValue = _TryGetFloatParam(0);
|
||
var rateAttack = _TryGetFloatParam(1);
|
||
var addPercent = _TryGetFloatParam(2);
|
||
var maxPercent = _TryGetFloatParam(3);
|
||
|
||
var skillContinueHitData = creator.controlData.continueSkillData;
|
||
if (skillContinueHitData.hitUnit == owner)
|
||
{
|
||
skillContinueHitData.continueHitCount++;
|
||
}
|
||
else
|
||
{
|
||
skillContinueHitData.hitUnit = owner;
|
||
skillContinueHitData.continueHitCount = 0;
|
||
}
|
||
|
||
var finalAddPercent = Mathf.Min(skillContinueHitData.continueHitCount * addPercent, maxPercent);
|
||
var damage = Mathf.FloorToInt((fixValue + rateAttack * owner.fightData.attack) * (1 + finalAddPercent));
|
||
|
||
owner.TakeNormalDamage(configData.AttackPowerLevel,damage, creator, false);
|
||
}
|
||
|
||
}
|
||
}
|