blob: 05c20a68a84362c87060bf0b164f6a8cdbbcb86a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
namespace BehaviorDesigner.Runtime.Tasks
{
[TaskDescription("Perform the actual interruption. This will immediately stop the specified tasks from running and will return success or failure depending on the value of interrupt success.")]
[HelpURL("http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=17")]
[TaskIcon("{SkinColor}PerformInterruptionIcon.png")]
public class PerformInterruption : Action
{
[Tooltip("The list of tasks to interrupt. Can be any number of tasks")]
public Interrupt[] interruptTasks;
[Tooltip("When we interrupt the task should we return a task status of success?")]
public SharedBool interruptSuccess;
public override TaskStatus OnUpdate()
{
// Loop through all of the tasks and fire an interruption. Once complete return success.
for (int i = 0; i < interruptTasks.Length; ++i) {
interruptTasks[i].DoInterrupt(interruptSuccess.Value ? TaskStatus.Success : TaskStatus.Failure);
}
return TaskStatus.Success;
}
public override void OnReset()
{
// Reset the properties back to their original values.
interruptTasks = null;
interruptSuccess = false;
}
}
}
|