Example #1
0
    protected override void OnFSMStateComplete(FSMState completedState)
    {
        base.OnFSMStateComplete(completedState);

        if (completedState.StateID == FSMStateTypes.AI.MOVE)
        {
            if (_nextMoveTag == "collect")
            {
                _targetRoad.Collect(this);
                _targetSafeZone = GameManager.Instance.FindNearestSafeZone(transform.position);
                _nextMoveTag    = "dropoff";
                SetState(new AIMoveAction(_targetSafeZone.transform.position, 0.25f));
            }
            else if (_nextMoveTag == "dropoff")
            {
                SetState(new AIWaitAction(2f));

                _nextMoveTag = "home";
            }
            else if (_nextMoveTag == "home")
            {
                Wander();
            }
        }
        if (completedState.StateID == FSMStateTypes.AI.WAIT)
        {
            ReturnHome();
        }
    }