44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using Gameplay.Level;
|
|
using UnityEngine;
|
|
namespace Gameplay.Buff
|
|
{
|
|
public class BuffStandTrigger : BaseBuff
|
|
{
|
|
|
|
private float _triggerTime;
|
|
|
|
private int[] _triggerBuffIds;
|
|
|
|
private float _lastStandTime;
|
|
|
|
protected override void _OnInit()
|
|
{
|
|
base._OnInit();
|
|
_triggerTime = _TryGetFloatParam(0);
|
|
_triggerBuffIds = new int[configData.FloatParams.Count - 1];
|
|
for (var i = 0; i < _triggerBuffIds.Length; i++)
|
|
{
|
|
_triggerBuffIds[i] = Mathf.RoundToInt(_TryGetFloatParam(i + 1));
|
|
}
|
|
_lastStandTime = owner.fightData.lastMoveTime;
|
|
}
|
|
|
|
protected override void _OnLogicUpdate(float dt)
|
|
{
|
|
base._OnLogicUpdate(dt);
|
|
|
|
var nowTime = LevelManager.Instance.CurrentLevel.LevelTime;
|
|
var passTime = nowTime - _lastStandTime;
|
|
if (passTime > _triggerTime)
|
|
{
|
|
for (int i = 0; i < _triggerBuffIds.Length; i++)
|
|
{
|
|
var triggerBuffId = _triggerBuffIds[i];
|
|
owner.buffManager.AddBuffById(triggerBuffId);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|