TH1/Unity/Assets/Scripts/BTNodeCanvas/AIUnitCanMoveAndAttack.cs
2026-03-31 15:28:39 +08:00

49 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Author: 白哉
* @Description:
* @Date: 2025年06月06日 星期五 19:06:16
* @Modify:
*/
using System;
using Logic.AI;
using Logic.Skill;
using NodeCanvas.Framework;
using ParadoxNotion.Design;
using RuntimeData;
namespace NodeCanvas.Tasks.Actions
{
[Name("小兵能移动能攻击(特殊判断GetActionPoint(ActionPointType.Move) GetActionPoint(ActionPointType.Attack) > 0, Dash Trigger False)")]
[Category("AI节点")]
[Serializable]
public class AIUnitCanMoveAndAttack : BaseActionTask
{
protected override string desc => $"小兵能移动能攻击";
protected override void OnExecute()
{
base.OnExecute();
// 直接从Blackboard获取AICalculatorData
var data = blackboard.GetVariable<AICalculatorData>("Data");
if (data?.value?.TargetParam.UnitData == null)
{
EndAction(false);
return;
}
var unit = data.value.TargetParam.UnitData;
if (unit.GetActionPoint(ActionPointType.Move) > 0 && unit.GetActionPoint(ActionPointType.Attack) > 0 && unit.GetSkill(SkillType.DASH, out var skill) &&
skill is DashSkill dashSkill && !dashSkill.IsTrigger)
{
EndAction(true);
return;
}
EndAction(false);
}
}
}