NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Buff/Impl/BuffStandTrigger.cs

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);
}
}
}
}
}