private void PopulateRooms() { int L1Dist; double RowProgression = 0, ColProgression = 0; for (int i = 0; i < levelSet.GetLength(0); i++) { for (int j = 0; j < levelSet.GetLength(1); j++) { L1Dist = L1DistanceFromStart(i, j); ColProgression = j / levelColCount; RowProgression = i / levelRowCount; if (levelSet[i, j] != null) { GenerateRoom RoomGen = new GenerateRoom(); RoomGen.InitRoom(); RoomGen.SetPara(L1Dist, RowProgression, ColProgression); if (!IsStartUpRoom(i, j)) { RoomGen.PopulateEnemy(); RoomGen.PopulateBlock(); } RoomGen.PopulateItem(); levelSet[i, j] = RoomGen.room; } } } }
private void SetMerchantRooms() { int count = 0; int[] iter = new int[] { 0, 1, 2, 3 }; while (count < MERCHANT_ROOM_COUNT) { int row = GlobalSettings.RND.Next(levelSet.GetLength(0)); int col = GlobalSettings.RND.Next(levelSet.GetLength(1)); if (!IsStartUpRoom(row, col)) { GenerateRoom RoomGen = new GenerateRoom(); RoomGen.InitRoom(); RoomGen.SetAsMerchantRoom(); levelSet[row, col] = RoomGen.room; foreach (int Dir in iter) { if (HasNextRoom(new int[] { col, row }, Dir)) { AddHiddenDoors(new int[] { col, row }, Dir); } } count++; } } }
private void AddItemInRoom(int[] CurrentPos, int ItemIndex, int Number) { GenerateRoom RoomGen = new GenerateRoom(); RoomGen.room = levelSet[CurrentPos[0], CurrentPos[1]]; int Count = 0; while (Count > Number) { int pos1 = GlobalSettings.RND.Next(GlobalSettings.TILE_ROW); int pos2 = GlobalSettings.RND.Next(GlobalSettings.TILE_COLUMN); if (RoomGen.AddSoftIndex(CurrentPos, ItemIndex)) { Count++; } } }
// Initilize the Map matrix with placeholders private void init() { levelSet = new Map[levelSetRow, levelSetCol]; bool[,] Placement = new bool[levelSetRow, levelSetCol]; Placement = new GeneratePlacement(levelSetRow, levelSetCol).GetPlacement(); // Fill the rooms with placeholders first for (int i = 0; i < levelSet.GetLength(0); i++) { for (int j = 0; j < levelSet.GetLength(1); j++) { if (Placement[i, j]) { levelSet[i, j] = new GenerateRoom().InitRoom(); } } } levelRowCount = levelSet.GetLength(0); levelColCount = levelSet.GetLength(1); }