Esempio n. 1
0
    public void ChoosePot(TravelPot pot)
    {
        if (state.Pots.IndexOf(pot) == -1)
        {
            return;
        }

        int index = state.Pots.IndexOf(pot);

        if (isMovingPlayer)
        {
            return;
        }

        if (highlightPotIdx != index)
        {
            if (highlightPotIdx != -1)
            {
                state.Pots[highlightPotIdx].CancelSelect();
            }
            state.Pots[index].Selected();
            highlightPotIdx = index;

            ChangeDetail(pot);
        }
        else
        {
            if (state.PlayerPotIdx == index)
            {
                return;
            }
            if (!state.graph.ContainsKey(state.PlayerPotIdx))
            {
                return;
            }
            if (state.graph[state.PlayerPotIdx].IndexOf(index) == -1)
            {
                return;
            }
            isMovingPlayer = true;
            Vector3 target = state.Pots[index].transform.position;
            target.z = PawnZ;
            Tween tween = DOTween.To
                          (
                () => PlayerPawn.transform.position,
                (x) => {
                PlayerPawn.transform.position = x;
                //Vector3 cameraPos = PlayerPawn.transform.position;
                //cameraPos.z = CameraZ;
                //isMovingMap = true;
                //CameraToMove = cameraPos;
            },
                target,
                0.6f
                          ).OnComplete(delegate {
                isMovingPlayer     = false;
                state.PlayerPotIdx = index;
            });
        }
    }
Esempio n. 2
0
    public void ChangeDetail(TravelPot pot)
    {
        view.PotName.text = pot.potInfo.Name;
        view.PotDesp.text = pot.potInfo.Desp;

        for (int i = 0; i < pot.potInfo.Opts.Count; i++)
        {
            view.PotReactList[i].gameObject.SetActive(true);
        }
        for (int i = pot.potInfo.Opts.Count; i < view.MaxPotReactNum; i++)
        {
            view.PotReactList[i].gameObject.SetActive(false);
        }
    }
Esempio n. 3
0
    private void GeneratePots(TravelMapInfo info)
    {
        int idx = 0;

        foreach (Transform child in Pots.transform)
        {
            GameObject potGo = mResLoader.Instantiate("Travel/Pot", child);
            TravelPot  pot   = potGo.GetComponent <TravelPot> ();
            pot.Init(info.pots[idx], this);
            state.Pots.Add(pot);
            idx += 1;
        }



        foreach (int[] edge in info.edges)
        {
            GameObject   lineGo = mResLoader.Instantiate("Travel/Line", LineLayer);
            LineRenderer line   = lineGo.GetComponent <LineRenderer>();
            Vector3      e0     = state.Pots[edge[0]].transform.position;
            Vector3      e1     = state.Pots[edge[1]].transform.position;

            Vector3[] positions = { e0 + Vector3.forward, e1 + Vector3.forward };
            line.SetPositions(positions);
            state.lines.Add(line);
        }

        PlayerPawn = mResLoader.Instantiate("Travel/pawn");
        int     startIdx = 0;
        Vector2 startPos = state.Pots[startIdx].transform.position;

        PlayerPawn.transform.position = new Vector3(startPos.x, startPos.y, PawnZ);
        Vector3 cameraPos = ClampPosInBound(startPos);

        cameraPos.z = mainCamera.transform.position.z;
        mainCamera.transform.position = cameraPos;
    }
Esempio n. 4
0
 public void ChangeDetail(TravelPot pot)
 {
     travelUI.ChangeDetail(pot);
 }