/* * @Author: 白哉 * @Description: * @Date: 2025年06月06日 星期五 19:06:16 * @Modify: */ using System; using System.Collections.Generic; using Logic.Action; using Logic.AI; using NodeCanvas.Framework; using ParadoxNotion.Design; using RuntimeData; namespace NodeCanvas.Tasks.Actions { [Name("回血并且原地不动")] [Category("AI节点")] [Serializable] public class AIActionRecoveryAndNoMove : BaseActionTask { protected override string desc => "回血并且原地不动"; protected override void OnExecute() { base.OnExecute(); // 直接从Blackboard获取AICalculatorData var data = blackboard.GetVariable("Data"); if (data?.value == null) { EndAction(false); return; } var actionId = new CommonActionId(); actionId.ActionType = CommonActionType.UnitAction; actionId.UnitActionType = UnitActionType.Recover; var action = ActionLogicFactory.GetActionLogic(actionId); if (action.CheckCan(data.value.TargetParam)) { action.CompleteExecute(data.value.TargetParam); EndAction(true); return; } if (data.value.TargetParam.UnitData.GetActionPoint(ActionPointType.Move) > 0) { data.value.TargetParam.UnitData.ClearActionPoint(); EndAction(true); return; } EndAction(false); } } }