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 | 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 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x | /**
* baalz - NetHack special level
* Converted from: baalz.lua
*/
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
export async function generate() {
// NetHack gehennom baalz.lua $NHDT-Date: 1652196020 2022/5/10 15:20:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.4 $
// Copyright (c) 1989 by Jean-Christophe Collet
// Copyright (c) 1992 by M. Stephenson and Izchak Miller
// NetHack may be freely redistributed. See license for details.
//
des.level_init({ style: "solidfill", fg: " ", lit: 0 });
// TODO FIXME: see baalz_fixup - the legs get removed currently.
des.level_flags("mazelevel", "corrmaze");
// the two pools are fakes used to mark spots which need special wall fixups
// the two iron bars are eyes and spots to their left will be made diggable
await des.map({ halign: "right", valign: "center", map: `\
-------------------------------------------------
| ---- ----
| ---- | ----------- |
| ------ | ---------|.........|--P
| F....| -------|...........--------------
---....|--|..................S............|----
+...--....S..----------------|............S...|
---....|--|..................|............|----
| F....| -------|...........-----S--------
| ------ | ---------|.........|--P
| ---- | ----------- |
| ---- ----
-------------------------------------------------
` });
des.levregion({ region: [1,0,15,20], region_islev: 1, exclude: [15,1,70,16], exclude_islev: 1, type: "stair-up" });
des.levregion({ region: [1,0,15,20], region_islev: 1, exclude: [15,1,70,16], exclude_islev: 1, type: "branch" });
des.teleport_region({region: [1,0,15,20], region_islev: 1, exclude: [15,1,70,16], exclude_islev: 1 });
// this actually leaves the farthest right column diggable
des.non_diggable(selection.area(0,0,47,12));
await des.mazewalk(0,6,"west");
des.stair("down", 44,6);
des.door("locked",0,6);
// The fellow in residence
await des.monster("Baalzebub",35,6);
// Some random weapons and armor.
await des.object("[");
await des.object("[");
await des.object(")");
await des.object(")");
await des.object("*");
await des.object("!");
await des.object("!");
await des.object("?");
await des.object("?");
await des.object("?");
// Some traps.
await des.trap("spiked pit");
await des.trap("fire");
await des.trap("sleep gas");
await des.trap("anti magic");
await des.trap("fire");
await des.trap("magic");
await des.trap("magic");
// Random monsters.
await des.monster("ghost",37,7);
await des.monster("horned devil",32,5);
await des.monster("barbed devil",38,7);
await des.monster("L");
// Some Vampires for good measure
await des.monster("V");
await des.monster("V");
await des.monster("V");
return des.finalize_level();
}
|