예제 #1
0
    void HandleGoToWaitZone()
    {
        DropPointLogic dropperForWaitZone = _door.GetComponent <DoorRobotInteraction>().dropper;

        _rm.Move(dropperForWaitZone.GetPoint(PointsDrop.WAITSTATION));
        _op.SetTarget(_currentBoxPicked.box);
        _op.Stay();
        if (_rm.IsHeNearInstance(dropperForWaitZone.GetPoint(PointsDrop.WAITSTATION)))
        {
            _currentState = RobotState.INWAITZONE;
            _rm.SetInstantSpeed(0);
        }
    }
예제 #2
0
    void HandleInWaitZone()
    {
        DropPointLogic dropper_ = _door.GetComponent <DoorRobotInteraction>().dropper;
        PointsDrop     can      = dropper_.WhatDrop(gameObject.GetInstanceID());

        _op.SetTarget(_currentBoxPicked.box);
        _op.Stay();
        dropper_.waitZone = this;
        if (can != PointsDrop.NOTHING)
        {
            _rm.Move(dropper_.GetPoint(can));
            if (_rm.IsHeNearInstance(dropper_.GetPoint(can)))
            {
                dropper_.SetIDLE();
                dropper_.SetBotInDropZone(this, can);
                // Debug.Log("WE ARE GODS");
                _currentState     = RobotState.GONNADROP;
                dropper_.waitZone = null;
            }
        }
    }
예제 #3
0
    /// <summary>
    /// Handles the exit dropper.
    /// </summary>
    /// <param name="isRight">If set to <c>true</c> is right.</param>
    void HandleExitDropper(bool isRight)
    {
        DropPointLogic dropper = _door.GetComponent <DoorRobotInteraction>().dropper;
        PointsDrop     use     = PointsDrop.EXITCORRECT;

        if (isRight)
        {
            use = PointsDrop.EXITCORRECT;
            _rm.Move(dropper.GetPoint(use));
        }
        else
        {
            use = PointsDrop.EXITINCORRECT;
            _rm.Move(dropper.GetPoint(use));
        }

        if (_rm.IsHeNearInstance(dropper.GetPoint(use)))
        {
            _door         = null;
            _currentState = RobotState.SEARCH;
        }
    }
예제 #4
0
    /// <summary>
    /// Handles the gonna drop.
    /// </summary>
    /// <returns><c>true</c>, if gonna drop was handled, <c>false</c> otherwise.</returns>
    bool HandleGonnaDrop()
    {
        DropPointLogic dropper = _door.GetComponent <DoorRobotInteraction>().dropper;
        PointsDrop     can_    = dropper.WhatDrop(gameObject.GetInstanceID());
        Vector3        pt      = dropper.GetPoint(can_ == PointsDrop.DROPRIGHT ? PointsDrop.VENTCORRECT : PointsDrop.VENTINCORRECT);

        transform.LookAt(pt);
        droppedInRight = dropper.WhereIsHe();
        if (_rm.IsHeLookingAt(pt))
        {
            _currentState = RobotState.LEAVEBOX;
            return(dropper.WhereIsHe());
        }
        return(dropper.WhereIsHe());
    }
예제 #5
0
    bool HandleGonnaDrop()
    {
        DropPointLogic dropper = _door.GetComponent <DoorRobotInteraction>().dropper;
        PointsDrop     can_    = dropper.WhatDrop(gameObject.GetInstanceID());
        Vector3        pt      = dropper.GetPoint(can_ == PointsDrop.DROPRIGHT ? PointsDrop.VENTCORRECT : PointsDrop.VENTINCORRECT);

        transform.LookAt(pt);
        //if (dropper.WhereIsHe())
        //{
        //    what = true; //if he's going to the correct path, go true
        //}
        //else what = false; //if not, go false.
        droppedInRight = dropper.WhereIsHe();
        if (_rm.IsHeLookingAt(pt))
        {
            _currentState = RobotState.LEAVEBOX;
            //   Debug.Log("Yo i'm lookin at the droppah");
            return(dropper.WhereIsHe());
        }
        return(dropper.WhereIsHe());
    }