All files / js/levels Val-loca.js

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

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 991x 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  
/**
 * Val-loca - NetHack special level
 * Converted from: Val-loca.lua
 */
 
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
 
export async function generate() {
    // NetHack Valkyrie Val-loca.lua	$NHDT-Date: 1652196017 2022/5/10 15:20:17 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.2 $
    // Copyright (c) 1989 by Jean-Christophe Collet
    // Copyright (c) 1991-2 by M. Stephenson
    // NetHack may be freely redistributed.  See license for details.
    // 
    des.level_init({ style: "solidfill", fg: " " });
 
    des.level_flags("mazelevel", "hardfloor", "icedpools", "noflip");
 
    des.level_init({ style: "mines", fg: ".", bg: "I", smoothed: true, joined: false, lit: 1, walled: false });
 
    await des.map(`\
PPPPxxxx                      xxxxPPPPPx
PLPxxx                          xPPLLLPP
PPP    .......................    PPPLLP
xx   ............................   PPPP
x  ...............................  xxxx
  .................................   xx
....................................   x
  ...................................   
x  ..................................  x
xx   ..............................   PP
xPPP  ..........................     PLP
xPLLP                             xxPLLP
xPPPPxx                         xxxxPPPP
`);
    // Dungeon Description
    await des.region(selection.area(0,0,39,12), "lit");
    // Stairs
    des.stair("up", 48,14);
    des.stair("down", 20,6);
    // Non diggable walls
    des.non_diggable(selection.area(0,0,39,12));
    // Objects
    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();
    await des.object();
    // Random traps
    await des.trap("fire");
    await des.trap("fire");
    await des.trap("fire");
    await des.trap("fire");
    await des.trap();
    await des.trap();
    // Random monsters.
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("fire ant");
    await des.monster("a");
    await des.monster({ class: "H", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ id: "fire giant", peaceful: 0 });
    await des.monster({ class: "H", peaceful: 0 });
 
 
 
    return des.finalize_level();
}