Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 6x 42x 42x 42x 42x 42x 6x 6x 2x 2x 2x 2x 2x 2x 2x 30x 30x 2x 12x 12x 2x 56x 56x 2x 2x 2x 2x 2x | /**
* bigrm-13 - NetHack special level
* Converted from: bigrm-13.lua
*/
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
import { rn2 } from '../rng.js';
export async function generate() {
// NetHack bigroom bigrm-13.lua $NHDT-Date: 1652196024 2022/5/10 15:20:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.0 $
// Copyright (c) 2026 by Pasi Kallinen
// NetHack may be freely redistributed. See license for details.
//
// Pillars
des.level_init({ style: "solidfill", fg: " " });
des.level_flags("mazelevel", "noflip");
await des.map(`\
---------------------------------------------------------------------------
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
|.........................................................................|
---------------------------------------------------------------------------
`);
let pillar = `\
---
| |
---`;
let filters = [
// 1: all pillars
async function(x, y) { return true; },
// 2: 3 vertical lines
async function(x, y) { return (x%2 == 1); },
// 3: checkerboard
async function(x, y) { return (((x+y)%2) == 0); },
// 4: center row
async function(x, y) { return (y%2 == 1); },
// 5: top and bottom rows
async function(x, y) { return (y%2 == 0); },
// 6: random 50%
async function(x, y) { return ((rn2((1) - (0) + 1) + (0)) == 0); },
// 7: corners and center
async function(x, y) { return ((x/3)%2 == y%2); },
// 8: slanted
async function(x, y) { return (Math.floor((x+1)/3) == y); },
];
let idx = rn2(filters.length);
for (let y = 0, __end_y = 2; y <= __end_y; y++) {
for (let x = 0, __end_x = 6; x <= __end_x; x++) {
if ((filters[idx](x, y))) {
await des.map({ coord: [12 + x*9, 4 + y*5], map: pillar, contents: async function() { } });
}
}
}
await des.region(selection.area(0,0,75,18), "lit");
des.wallify();
des.non_diggable();
des.stair("up");
des.stair("down");
for (let i = 1, __end_i = 15; i <= __end_i; i++) {
await des.object();
}
for (let i = 1, __end_i = 6; i <= __end_i; i++) {
await des.trap();
}
for (let i = 1, __end_i = 28; i <= __end_i; i++) {
await des.monster();
}
return des.finalize_level();
}
|