Ejemplo n.º 1
0
    // This is for generating map

    public void GenerateMapData()
    {
        tilesData = new TileData[mapSizeX, mapSizeY];

        for (int x = 0; x < mapSizeX; x++)
        {
            for (int y = 0; y < mapSizeY; y++)
            {
                tilesData[x, y]           = new TileData();
                tilesData[x, y].type      = new TileType();
                tilesData[x, y].type.type = TileData.Type.OuterWall;
            }
        }

        DungeonRoom.Door[] doors;
        doors         = new DungeonRoom.Door[2];
        doors[0].Open = true;

        doors[0].DoorPosition = DungeonRoom.DoorType.South;
        doors[1].DoorPosition = DungeonRoom.DoorType.East;
        doors[1].Open         = true;

        DungeonRoom room_1 = new DungeonRoom(this, 7, 7, 12, 14, doors);

        room_1.Create();
        room_1.CreateInnerRoom(4, 4, 6, 6);

        DungeonRoom.Door[] door2 = new DungeonRoom.Door[1];
        door2[0].DoorPosition = DungeonRoom.DoorType.South;
        door2[0].Open         = false;
        DungeonRoom room_2 = new DungeonRoom(this, 20, 4, 8, 8, door2);

        room_2.Create();

        Coridor corridor1 = new Coridor(this, 22, 13, 5, 2);

        corridor1.Create_East_West();

        DungeonPattern dungeonPattern = new DungeonPattern();

        dungeonPattern.Create(this);
    }
    // Use this for initialization
    void Start()
    {
        // check for random seed
        if (seed == 0)
        {
            seed = Random.seed;
            Debug.Log("The session seed is " + seed);
        }
        else
        {
            Random.InitState(seed);
        }


        Dungeon dungeon = new Dungeon(util.RandomInt(dungeongSizeXMin, dungeongSizeXMax), util.RandomInt(dungeongSizeYMax, dungeongSizeYMin));

        // this is bullshit but needed for init the array for now ...
        int[,] map = map = dungeon.GetMap();

        for (int i = 0; i < 3; i++)
        {
            Debug.Log("Room Generation -> This is Room : " + i);

            Room    room     = new Room(util.RandomInt(dungeongSizeXMin, dungeongSizeXMax), util.RandomInt(dungeongSizeYMax, dungeongSizeYMin), roomSizeXMin, roomSizeXMax, roomSizeYMin, roomSizeYMax, dungeon);
            Coridor coridor  = new Coridor(room, coridorSizeXMax, coridorSizeXMin, coridorSizeYMax, coridorSizeYMax);
            var     roomList = room.GetRoomList();
            map = dungeon.GetMap();
            map = UpdateMap(map, roomList);

            // update coridors
            roomList = coridor.GetRoomList();
            map      = UpdateMap(map, roomList);
        }


        RenderMap(map, dungeon.GetSizeX(), dungeon.GetSizeY());
    }