private void TeleportToPoint()
    {
        int           index          = currentPoint.BoardModel.BoardNumber;
        TeleportModel teleportModel  = teleporter.Teleports.FindTeleportByTrigger(index);
        Vector2       playerPosition = transform.position;

        Vector2 startPosition   = boardManagerPosition + playerPosition;
        Vector2 nextPosition    = boardManagerPosition + teleportModel.BoardPoint.finalPoint.BoardPosition;
        Vector3 vectorDirection = nextPosition - startPosition;

        vectorDirection.Normalize();

        if (Vector2.Distance(transform.position, nextPosition) > stoppedDistance)
        {
            transform.position += vectorDirection * speed * Time.deltaTime;
        }
        else
        {
            currentPoint = teleportModel.BoardPoint.finalPoint;
            nextPoint    = NextBoardPosition();
            numberOfMove = 0;
            diceNumber   = 0;
            turnType     = TurnType.Wating;
            CallFinishMoveDelegate();
        }
    }
Exemple #2
0
    public void CreateTeleportLines(TeleportModel teleport)
    {
        Vector3 boardManagerPosition = boardManager.transform.position;

        BoardView startBoard = boardManager.BoardViews.FindBoardViewByIndexBoard(teleport.TriggerIndex);
        BoardView finalBoard = boardManager.BoardViews.FindBoardViewByIndexBoard(teleport.TeleportIndex);

        teleport.SetBoardPoint(startBoard, finalBoard);

        Vector2 startPosition = boardManagerPosition + startBoard.RectTransform.localPosition;
        Vector2 finalPosition = boardManagerPosition + finalBoard.RectTransform.localPosition;

        CreateTeleportLines(startPosition, finalPosition, teleport.GetTeleportType);
    }
 public void Teleport(TeleportModel m)
 {
     if (m.To == "local")
     {
         transform.position = m.ToPosition;
     }
     else
     {
         GameManager.SendMessage("ChangeScene", new ChangeSceneModel {
             SceneId    = m.To,
             OnComplete = () => {
                 if (m.ToPosition != null)
                 {
                     GameObject.Find("Player").transform.position = m.ToPosition;
                 }
             }
         });
     }
 }