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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | /** * Rog-goal - NetHack special level * Converted from: Rog-goal.lua */ import * as des from '../sp_lev.js'; import { selection } from '../sp_lev.js'; export async function generate() { // NetHack Rogue Rog-goal.lua $NHDT-Date: 1652196012 2022/5/10 15:20:12 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $ // Copyright (c) 1992 by Dean Luick // NetHack may be freely redistributed. See license for details. // des.level_init({ style: "solidfill", fg: " " }); des.level_flags("mazelevel", "noteleport"); // 1 2 3 4 5 6 7 // 123456789012345678901234567890123456789012345678901234567890123456789012345 await des.map(`\ ----- -------.......................................|-----------------| |...| -----.....|.......................................|.................| |...----...|.....|.......................................|....---------....| |.---......---..--.................................------------.......|....| |...............|..................................|..|...|...----........-| |.....-----....--.................................|-..--..-|.....----S----| |--S---...|....|.................................|-........-|....|........| |.........---------.............................|-....}}....-|...|...|....| |....|.....S......|............................|-.....}}.....-|..--.------| |-----.....--.....|...........................|-...}}}}}}}}...-|....|.....-- |...........--....------S-----...............|-....}}}}}}}}....-|..........| |............--........|...| |..............--.....}}.}}........----------S- |.............|........|...| |..............|......}}}}}}}}......|...|.....| |S-.---.---.---.---.---|...| ------------...--........}}.}}.....--..---....| |.---.---.---.---.-S-..----- |....|.....|....|-....}}}}}}}}....---..S.|--..| |...|.......|..........|...---....---...S.....|-...}}}}}}}}...-|.S..|...|..| |...|..|....|..........|............|..--..----|-.....}}.....-|..----...-S-- |...|---....----.......|----- ......|...---| |-....}}....-|...|..--.--..| -----.....---.....--.---....--...--------..| |-........-|....|.........| |.............|..........|.............S... |S-------|.....|..-----..| ---------------------------------------- ...... ---------- ---- `); // Dungeon Description await des.region(selection.area(0,0,75,20), "lit"); // Stairs des.levregion({ region: [1,0,15,20], region_islev: 1, exclude: [1,18,4,20], type: "stair-up" }); // Doors // Non diggable walls des.non_diggable(selection.area(0,0,75,20)); // One trap to keep the gnomes at bay. await des.trap("spiked pit",37,7); // Objects await des.object({ id: "skeleton key", x: 38, y: 10, buc: "blessed", spe: 0, name: "The Master Key of Thievery" }); await des.object({ id: "tin", x: 26, y: 12, montype: "chameleon" }); 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(); await des.object(); await des.object(); await des.object(); // Random traps await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); await des.trap(); // Random monsters. await des.monster({ id: "Master Assassin", x: 38, y: 10, peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ id: "leprechaun", peaceful: 0 }); await des.monster({ class: "l", peaceful: 0 }); await des.monster({ class: "l", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ id: "guardian naga", peaceful: 0 }); await des.monster({ class: "N", peaceful: 0 }); await des.monster({ class: "N", peaceful: 0 }); await des.monster({ class: "N", peaceful: 0 }); await des.monster({ id: "chameleon", peaceful: 0 }); await des.monster({ id: "chameleon", peaceful: 0 }); await des.monster({ id: "chameleon", peaceful: 0 }); await des.monster({ id: "chameleon", peaceful: 0 }); await des.monster({ id: "chameleon", peaceful: 0 }); await des.monster({ id: "shark", x: 51, y: 14, peaceful: 0 }); await des.monster({ id: "shark", x: 53, y: 9, peaceful: 0 }); await des.monster({ id: "shark", x: 55, y: 15, peaceful: 0 }); await des.monster({ id: "shark", x: 58, y: 10, peaceful: 0 }); return des.finalize_level(); } |