예제 #1
0
        public void ChooseDifficulty(int level)
        {
            difficulty = (Difficulty)level;
            switch (difficulty)
            {
            case Difficulty.Doctor:
                layer = 4; trap = 5; target = 2; opportunity = 10;
                tipsButton[0].SetActive(true);
                tipsButton[1].SetActive(true);
                tipsButton[2].SetActive(true);
                toggleDoctor.gameObject.SetActive(true);
                toggleDoctor.isOn = true;
                adventureMode     = AdventureMode.Doctor;
                break;

            case Difficulty.Newbie: layer = 4; trap = 5; target = 2; opportunity = 2; gridGruop.localScale = Vector3.one; break;

            case Difficulty.Trainee: layer = 5; trap = 8; target = 4; opportunity = 3; gridGruop.localScale = Vector3.one; break;

            case Difficulty.Elite: layer = 5; trap = 8; target = 5; opportunity = 4; gridGruop.localScale = Vector3.one; break;

            case Difficulty.Expert: layer = 5; trap = 8; target = 6; opportunity = 5; gridGruop.localScale = Vector3.one; break;

            case Difficulty.Master: layer = 6; trap = 12; target = 9; opportunity = 7; gridGruop.localScale = new Vector3(0.84f, 0.84f, 0.84f); break;

            case Difficulty.Crazy: layer = 6; trap = 13; target = 11; opportunity = 9; gridGruop.localScale = new Vector3(0.84f, 0.84f, 0.84f); break;

            case Difficulty.Wakaka: layer = 7; trap = 26; target = 11; opportunity = 11; gridGruop.localScale = new Vector3(0.7f, 0.7f, 0.7f); break;
            }
            textLevel.text         = "Lv. " + level;
            textDifficultyEng.text = difficulty.ToString();
            textDifficultyCht.text = ((DifficultyCht)level).ToString();

            // 設置難度之後要重新排列網格
            countHexagonGrids       = HexagonMesh.CalculateHexGrids(layer);
            rotateMap               = false;
            gridGruop.localRotation = Quaternion.identity; // 排列過程中不要旋轉
            for (int i = 0; i < HexagonMesh.grids.Length; i++)
            {
                if (i < countHexagonGrids)
                {
                    ArrangeGrid(i);
                }
                else
                {
                    Vector3 gridCoordinate = new Vector3(999, 999, 999);
                    HexagonMesh.grids[i].gridCoordinate          = gridCoordinate;
                    HexagonMesh.grids[i].transform.localPosition = new Vector3(7000, 7000, 7000);
                }
            }
            rotateMap = true;
        }
예제 #2
0
 // 建置六角網格
 void CreateHexagonalGrids()
 {
     HexagonMesh.grids      = new HexGrid[HexagonMesh.CalculateHexGrids(maxLayer)];
     HexagonMesh.gridsIndex = new List <int>();
     for (int i = 0; i < HexagonMesh.grids.Length; i++)
     {
         HexagonMesh.gridsIndex.Add(i);
         HexagonMesh.grids[i]           = Instantiate(gridPrefab).GetComponent <HexGrid>();
         HexagonMesh.grids[i].indexGrid = i;
         HexagonMesh.grids[i].name      = "Hex Grid Button " + (i);
         HexagonMesh.grids[i].transform.SetParent(gridGruop);
         HexagonMesh.grids[i].transform.localScale     = new Vector3(1, 1, 1);
         HexagonMesh.grids[i].gridCoordinate           = new Vector3(1, 1, 1);
         HexagonMesh.grids[i].transform.localRotation *= Quaternion.Euler(0, 0, Random.Range(0, 6) * 60);
         HexagonMesh.grids[i].manager        = this;
         HexagonMesh.grids[i].themeManager   = this.themeManager;
         HexagonMesh.grids[i].FirstTryEvent += OnFirstTry;
     }
 }