using System; using UnityEngine; namespace Saltosion.OneWeapon.AI { [Serializable] public class BehaviourBranch : BehaviourNode { public Trigger Trigger; public BehaviourNode[] TriggeredNodes; public BehaviourNode[] NotTriggeredNodes; private String MostRecentExecution; /* Returns true if any action was taken. */ public override bool Execute(Enemy subject) { if (Trigger != null && Trigger.IsTriggered(subject)) { foreach (BehaviourNode Node in TriggeredNodes) { if (Node.Execute(subject)) { MostRecentExecution = Node.GetExecutedName(); return true; } } } else { foreach (BehaviourNode Node in NotTriggeredNodes) { if (Node.Execute(subject)) { MostRecentExecution = Node.GetExecutedName(); return true; } } } return false; } public override string GetExecutedName() { return MostRecentExecution; } } }