All files / js/levels Hea-goal.js

100% Statements 103/103
100% Branches 2/2
100% Functions 1/1
100% Lines 103/103

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 1041x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
/**
 * Hea-goal - NetHack special level
 * Converted from: Hea-goal.lua
 */
 
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
 
export async function generate() {
    // NetHack Healer Hea-goal.lua	$NHDT-Date: 1652196003 2022/5/10 15:20:3 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $
    // Copyright (c) 1989 by Jean-Christophe Collet
    // Copyright (c) 1991, 1993 by M. Stephenson, P. Winner
    // NetHack may be freely redistributed.  See license for details.
    // 
    des.level_init({ style: "solidfill", fg: "P" });
 
    des.level_flags("mazelevel");
 
    // 
    des.level_init({ style: "mines", fg: ".", bg: "P", smoothed: false, joined: true, lit: 1, walled: false });
 
    await des.map(`\
.P....................................PP.
PP.......PPPPPPP....PPPPPPP....PPPP...PP.
...PPPPPPP....PPPPPPP.....PPPPPP..PPP...P
...PP..............................PPP...
..PP..............................PP.....
..PP..............................PPP....
..PPP..............................PP....
.PPP..............................PPPP...
...PP............................PPP...PP
..PPPP...PPPPP..PPPP...PPPPP.....PP...PP.
P....PPPPP...PPPP..PPPPP...PPPPPPP...PP..
PPP..................................PPP.
`);
    // Dungeon Description
    await des.region(selection.area(0,0,40,11), "lit");
    // Stairs
    des.stair("up", 39,10);
    // Non diggable walls
    des.non_diggable(selection.area(0,0,40,11));
    // Objects
    await des.object({ id: "quarterstaff", x: 20, y: 6, buc: "blessed", spe: 0, name: "The Staff of Aesculapius" });
    await des.object("wand of lightning", 20, 6);
    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();
    await des.object();
    // Random traps
    await des.trap();
    await des.trap();
    await des.trap();
    await des.trap();
    await des.trap();
    await des.trap();
    // Random monsters.
    await des.monster({ id: "Cyclops", x: 20, y: 6, peaceful: 0 });
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    await des.monster({ class: "r", peaceful: 0 });
    await des.monster({ class: "r", peaceful: 0 });
    await des.monster("giant eel");
    await des.monster("giant eel");
    await des.monster("giant eel");
    await des.monster("giant eel");
    await des.monster("giant eel");
    await des.monster("giant eel");
    await des.monster("electric eel");
    await des.monster("electric eel");
    await des.monster("shark");
    await des.monster("shark");
    await des.monster({ class: ";", peaceful: 0 });
    await des.monster({ class: "D", peaceful: 0 });
    await des.monster({ class: "D", peaceful: 0 });
    await des.monster({ class: "D", peaceful: 0 });
    await des.monster({ class: "D", peaceful: 0 });
    await des.monster({ class: "D", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
    await des.monster({ class: "S", peaceful: 0 });
 
 
 
    return des.finalize_level();
}