using BehaviorDesigner.Runtime.Tasks; using Framework; using Gameplay.AI; using Gameplay.BT.Variables; using Gameplay.Unit; public class BTEventMoveTo : Action { public SharedBattleInfo SharedBattleInfo; private GameUnit _owner; private GameUnit _target; public override void OnStart() { _owner = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.ownerId); } public override TaskStatus OnUpdate() { if (SharedBattleInfo.Value.theChosenOneId != Constants.INVALID_UINT_ID && !AIUtils.IsNeedStop(_owner)) { { if (GameUnitManager.instance.infightUnits.Contains(SharedBattleInfo.Value.theChosenOneId)) { var target = GameUnitManager.instance.infightUnits.Search(SharedBattleInfo.Value.theChosenOneId); if (target != null) AIUtils.CheckAndMove(_owner, target.transData.cellIndex); } } } return TaskStatus.Failure; } }