Exemple #1
0
    public void GenerateDungeon()
    {
        info = DungeonManager.DungeonLoad("Stage1_1");
        bool RoomPosition = true;

        DungeonModel.indexCoridor = 0;

        SpawnEntrancePoint();
        float RoomPositionX = DungeonRoom[0].GetComponent <RectTransform>().offsetMin.x;
        float RoomPositionY = DungeonRoom[0].GetComponent <RectTransform>().offsetMin.y;

        for (int RoomIndex = 1; RoomIndex <= info.allRoom; RoomIndex++)
        {
            DungeonRoom[RoomIndex] = Instantiate(Room);
            DungeonRoom[RoomIndex].transform.SetParent(Panel.transform, false);
            DungeonRoom[RoomIndex].name = RoomIndex + "";
            DungeonRoom[RoomIndex].onClick.AddListener(PlayerControl);

            do
            {
                randPos = Random.Range(1, 5);
                randposition(RoomIndex, RoomPositionX, RoomPositionY);

                RoomPosition = CheckRoom(RoomIndex, RoomPosition);

                SpawnCoridor(DungeonModel.indexCoridor, RoomPositionX, RoomPositionY);

                for (int K = 0; K < DungeonModel.indexCoridor; K++) //Check Coridor
                {
                    if (DungeonCoridor[K].offsetMin == DungeonCoridor[DungeonModel.indexCoridor].offsetMin)
                    {
                        Destroy(DungeonCoridor[DungeonModel.indexCoridor].gameObject);
                        DungeonModel.indexCoridor -= 1;
                        break;
                    }
                }

                RoomPositionX = DungeonRoom[RoomIndex].GetComponent <RectTransform>().offsetMin.x;
                RoomPositionY = DungeonRoom[RoomIndex].GetComponent <RectTransform>().offsetMin.y;
                DungeonCoridor[DungeonModel.indexCoridor].gameObject.SetActive(false);
                DungeonModel.indexCoridor += 1;
            } while (!RoomPosition);

            DungeonRoom[RoomIndex].GetComponent <RectTransform>().sizeDelta = new Vector2(70, 70);
            DungeonRoom[RoomIndex].gameObject.SetActive(false);
        }
        SizePanel();
        RandomRoomTag();
        EventSystem.current.SetSelectedGameObject(DungeonRoom[0].gameObject);
        EventSystem.current.currentSelectedGameObject.tag = "Entrance";
        DungeonRoom[0].GetComponent <Image>().color       = Color.cyan;
        surrender.onClick.AddListener(Surrender);
        win.onClick.AddListener(WinUI);
        PlayerControl();
    }