Dựng bản đồ

  1. Dựng một mạng lưới (grid) kích thước 5 ô dọc và 7 ô ngang.
  2. Chọn ngẫu nhiên 1 trong số 5 ô ở cột đầu tiên để làm node, sau đó chọn ngẫu nhiên tiếp 1 ô trong số 2 hoặc 3 ô (ở cột thứ hai) liền kề với node trước đó để chọn làm node tiếp theo (mà có kết nối với ô trước đó).
  3. Lặp lại quá trình trên cho các node tiếp theo.
  4. Đến cột thứ 7, node Boss sẽ nằm ở chính giữa, và tất cả các node ở cột thứ 6 sẽ kết nối vào node Boss này.
  5. Lặp lại quá trình trên 3 lần. Một số lưu ý:
    1. Cần đảm bảo luôn luôn có ít nhất 2 node khởi đầu khác nhau ở cột đầu tiên.
    2. Cần đảm bảo hai node ở cột đầu tiên không kết nối vào cùng một node ở cột thứ 2.
    3. Khi chọn ngẫu nhiên một ô đã được chọn để làm node ở lượt trước đó, thì node trước đó sẽ được kết nối vào.

Phân bổ Node

Phân bổ sẵn

Sau khi generate bản đồ, bắt đầu gán các loại node vào các ô đã chọn theo quy tắc như sau:

  1. Các node ở cột thứ nhất luôn luôn là node trận đấu với Enemy.
  2. Các node ở cột thứ tư luôn luôn là Treasure Node.
  3. Các node ở cột thứ sáu luôn luôn là Bonfire Node.
  4. Sau đó, đếm các node trống còn lại trong bản đồ, gọi biến này là TotalEmptyNodes.
  5. Tạo một bucket (danh sách) {NodesBucket} gồm các loại node khác nhau được generate với tỷ lệ như sau:
Loại Node Tỷ lệ so với $TotalEmptyNodes$
Shop Node 0.16
Bonfire Node 0.25
Story Node 0.35
  1. Sau đó, bổ sung Enemy vào {NodesBucket} cho đến khi tổng số item trong bucket này tương ứng với TotalEmptyNodes.
  2. Tráo ngẫu nhiên {NodesBucket}.

Gán node