void LoadMainMenu()
 {
     m_levelLoad.LoadLevel(0);
     FloorGen.GetFloorPositions().Clear();
     FloorGen.GetFloorTilePositions().Clear();
     Time.timeScale = 1;
 }
Ejemplo n.º 2
0
 void LevelLoad()
 {
     FloorGen.GetFloorPositions().Clear();
     FloorGen.GetFloorTilePositions().Clear();
     m_fileManager.SaveJson();
     m_levelLoad.LoadLevel(0);
     m_levelLoad.FreeMode  = false;
     m_levelLoad.ScoreMode = false;
     m_levelLoad.ExitMode  = false;
     m_levelLoad.Seed      = 0;
     m_levelLoad.WorldName = "";
     Time.timeScale        = 1;
 }
 void ReloadLevel()
 {
     Time.timeScale = 1;
     FloorGen.GetFloorPositions().Clear();
     FloorGen.GetFloorTilePositions().Clear();
     m_levelLoad.LoadLevel(SceneManager.GetActiveScene().buildIndex);
     if (m_manager.ScoreMode)
     {
         m_manager.Player.GetComponent <Scoring>().CurrentScore = 0;
     }
     if (m_manager.ExitMode)
     {
         m_manager.Player.transform.position = new Vector3(0, 0, 0);
     }
 }
    public void Build()
    {
        m_fileManager = transform.parent.parent.GetComponent <FileManager>();
        if (!m_fileManager.Save.SeedSet)
        {
            m_fileManager.Save.Seed    = Seed;
            m_fileManager.Save.SeedSet = true;
        }
        Stopwatch SW = new Stopwatch();

        SW.Start();
        TileManager.LoadTileManager();
        m_dungeonDimensions = new Vector2Int(m_fileManager.XDimension, m_fileManager.YDimension);
        DungeonUtility.DungeonSetup(m_dungeonDimensions, m_tilemap);
        WallGen.SetWallSizes(m_wallDimensions);
        WallGen.SetWallsTileMap(m_walls);
        for (int i = 0; i < m_fileManager.SquareRoomAmount; ++i)
        {
            DungeonUtility.PickBuildPoint();
            WallGen.RandomiseWallSizes(m_wallSizesSquare[0], m_wallSizesSquare[1], m_wallSizesSquare[2], m_wallSizesSquare[3]);
            FloorGen.Square();
            if (UseMiniMapIcons)
            {
                Vector2 pos = new Vector2(DungeonUtility.GetBuildPoint().x + WallGen.GetWallDimensions().x / 2, DungeonUtility.GetBuildPoint().y + WallGen.GetWallDimensions().y / 2);
                Instantiate(SquareRoom, pos, Quaternion.identity);
            }
        }
        for (int i = 0; i < m_fileManager.LShapeRoomAmount; ++i)
        {
            DungeonUtility.PickBuildPoint();
            WallGen.RandomiseWallSizes(m_wallSizesSquare[0], m_wallSizesSquare[1], m_wallSizesSquare[2], m_wallSizesSquare[3]);
            int directionRandom = UnityEngine.Random.Range(0, 4);
            FloorGen.LShape(m_wallLengthLShape, m_wallHeightLShape, directionRandom);
        }
        for (int i = 0; i < m_fileManager.TShapeRoomAmount; ++i)
        {
            DungeonUtility.PickBuildPoint();
            int directionRandom = UnityEngine.Random.Range(0, 4);
            int stemWidth       = UnityEngine.Random.Range(2, m_wallSizesTShape[0]);
            int stemHeight      = UnityEngine.Random.Range(2, m_wallSizesTShape[1]);
            int roomLength      = UnityEngine.Random.Range(2, m_wallSizesTShape[2]);
            int roomHeight      = UnityEngine.Random.Range(2, m_wallSizesTShape[3]);
            FloorGen.TShape(stemWidth, stemHeight, roomLength, roomHeight, directionRandom);
        }
        for (int i = 0; i < m_fileManager.CircleRoomAmount; ++i)
        {
            int randomCircleSize = UnityEngine.Random.Range(1, m_circleStartSizeMax);
            DungeonUtility.PickBuildPoint();
            m_circleMiddleAmount = randomCircleSize;
            FloorGen.Circle(randomCircleSize, m_circleMiddleAmount);
            if (UseMiniMapIcons)
            {
                Vector2 pos = new Vector2(DungeonUtility.GetBuildPoint().x + m_circleMiddleAmount / 2, DungeonUtility.GetBuildPoint().y + m_circleMiddleAmount * 2);
                Instantiate(CircleRoom, pos, Quaternion.identity);
            }
        }
        for (int i = 0; i < m_fileManager.DiamondRoomAmount; ++i)
        {
            int RandomMaxRowAmount = UnityEngine.Random.Range(10, m_diamondMaxRowAmount);
            DungeonUtility.PickBuildPoint();
            FloorGen.Diamond(1, RandomMaxRowAmount);
            if (UseMiniMapIcons)
            {
                Vector2 pos = new Vector2(DungeonUtility.GetBuildPoint().x, DungeonUtility.GetBuildPoint().y + RandomMaxRowAmount / 2);
                Instantiate(DiamondRoom, pos, DiamondRoom.transform.rotation);
            }
        }
        for (int i = 0; i < FloorGen.GetFloorTilePositions().Count; ++i)
        {
            FloorGen.PlaceFloorTile(FloorGen.GetFloorTilePositions()[i]);
        }
        m_pathAmount += (m_fileManager.DiamondRoomAmount + m_fileManager.CircleRoomAmount + m_fileManager.SquareRoomAmount + m_fileManager.LShapeRoomAmount + m_fileManager.TShapeRoomAmount) / 4;
        for (int i = 0; i < m_pathAmount; ++i)
        {
            ConnectRoom.PlacePositions(i);
            ConnectRoom.FindOtherRoom();
        }
        WallGen.PlaceWalls();

        GameObject.Find("Player").GetComponent <PlaceTile>().FillTilesList();
        SW.Stop();
        TimeSpan ts = SW.Elapsed;

        UnityEngine.Debug.Log("Building Dungeon Took: " + ts.Milliseconds + " ms");
    }