Files
Cielonos/Assets/Scripts/MainGame/Characters/Automata/AI/Actions/ModifyCooldownTimer.cs
SoulliesOfficial f26f9fd374 爆更
2026-03-20 12:07:44 -04:00

42 lines
1.3 KiB
C#

using System.Collections.Generic;
using Opsive.BehaviorDesigner.Runtime.Tasks;
using Opsive.GraphDesigner.Runtime;
using Opsive.GraphDesigner.Runtime.Variables;
using Opsive.Shared.Utility;
using UnityEngine;
namespace Cielonos.MainGame.Characters.AI
{
[Description("重置一个计时器。")]
[NodeIcon("Assets/Sprites/Icon/Aim01.png")]
[Category("Cielonos")]
public class ModifyCooldownTimer : AutomataActionBase
{
[Tooltip("指定要修改的计时器和修改值(正数表示增加时间,负数表示减少时间)。")]
public List<TimerPair> timerPairs;
public override TaskStatus OnUpdate()
{
foreach (TimerPair pair in timerPairs)
{
if (self.selfTimeSm.coolDownTimers.TryGetValue(pair.name.Value, out var timer))
{
timer.currentTime += pair.modifier.Value;
}
else
{
Debug.LogWarning($"计时器 '{pair.name.Value}' 不存在,无法修改。");
}
}
return TaskStatus.Success;
}
public struct TimerPair
{
public SharedVariable<string> name;
public SharedVariable<float> modifier;
}
}
}