32 lines
687 B
C#
32 lines
687 B
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using BITKit;
|
||
|
using NodeCanvas.BehaviourTrees;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace BITFALL.Scene
|
||
|
{
|
||
|
public class ActionBasedNodeCondition : ActionBasedComponent
|
||
|
{
|
||
|
[SerializeReference, SubclassSelector] private ICondition startCondition;
|
||
|
protected override void OnEnable()
|
||
|
{
|
||
|
base.OnEnable();
|
||
|
actionBasedObject.OnStarted += OnStart;
|
||
|
}
|
||
|
protected override void OnDisable()
|
||
|
{
|
||
|
base.OnDisable();
|
||
|
actionBasedObject.OnStarted -= OnStart;
|
||
|
}
|
||
|
private void OnStart()
|
||
|
{
|
||
|
if (startCondition is not null && startCondition.OnCheck() is false)
|
||
|
{
|
||
|
throw new InGameException(startCondition.Reason);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|