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 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 name; public SharedVariable modifier; } } }