public override bool CancelAction(ActionHistoryType type, Vector3 lastDirection)
    {
        // проверим возможность передвижения
        if (lastDirection == Vector3.zero)
        {
            return(false);
        }

        int     layerMask   = 1 << LayerMask.NameToLayer("Box");
        Vector3 directionUp = (_player.transform.up);

        if (Physics.Raycast(transform.position, lastDirection, _grid.gridSize, layerMask))
        {
            Vector3   FirstPosition  = new Vector3(directionUp.x * _grid.gridSize + transform.position.x, directionUp.y * _grid.gridSize + transform.position.y, directionUp.z * _grid.gridSize + transform.position.z);
            Vector3   SecondPosition = new Vector3(lastDirection.x * _grid.gridSize + FirstPosition.x, lastDirection.y * _grid.gridSize + FirstPosition.y, lastDirection.z * _grid.gridSize + FirstPosition.z);
            Vector3[] path           = { FirstPosition, SecondPosition };
            motor.path = path;
        }
        else
        {
            Vector3   FirstPosition = new Vector3(lastDirection.x * _grid.gridSize + transform.position.x, lastDirection.y * _grid.gridSize + transform.position.y, lastDirection.z * _grid.gridSize + transform.position.z);
            Vector3[] path          = { FirstPosition };
            motor.path = path;
        }

        motor.StartMoving();

        return(true);
    }
Beispiel #2
0
    public override bool CancelAction(ActionHistoryType type, Vector3 lastDirection)
    {
        PlayerController controller = GetComponent <PlayerController>();

        if (!controller)
        {
            return(false);
        }

        return(controller.CalculateMovement(-lastDirection, false));
    }
    public override bool CancelAction(ActionHistoryType type, Vector3 lastDirection)
    {
        // проверим возможность передвижения
        if (lastDirection == Vector3.zero)
        {
            return(false);
        }

        Vector3 NewPosition = new Vector3(lastDirection.x * _grid.gridSize + transform.position.x, lastDirection.y * _grid.gridSize + transform.position.y, lastDirection.z * _grid.gridSize + transform.position.z);

        Vector3[] path = { NewPosition };
        motor.path = path;

        motor.StartMoving();

        return(true);
    }
Beispiel #4
0
 public History GetLastHistoryBySourceAction(ATDbEntities atDbEntities, ActionHistoryType action, SourceHistoryType source)
 {
     return(atDbEntities.Histories.Where(p => p.Action == action && p.Source == source).OrderByDescending(p => p.Date).FirstOrDefault());
 }
Beispiel #5
0
 public virtual bool CancelAction(ActionHistoryType type, Vector3 lastDirection)
 {
     return(true);
 }