All files / js/levels Hea-loca.js

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

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 1111x 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 1x 1x 1x 1x 1x 1x 1x  
/**
 * Hea-loca - NetHack special level
 * Converted from: Hea-loca.lua
 */
 
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
 
export async function generate() {
    // NetHack Healer Hea-loca.lua	$NHDT-Date: 1652196004 2022/5/10 15:20:4 $  $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: " " });
 
    des.level_flags("mazelevel", "hardfloor");
    // 
    des.level_init({ style: "mines", fg: ".", bg: "P", smoothed: true ,joined: true, lit: 1, walled: false });
 
    await des.map(`\
PPPPPPPPPPPPP.......PPPPPPPPPPP
PPPPPPPP...............PPPPPPPP
PPPP.....-------------...PPPPPP
PPPPP....|.S.........|....PPPPP
PPP......+.|.........|...PPPPPP
PPP......+.|.........|..PPPPPPP
PPPP.....|.S.........|..PPPPPPP
PPPPP....-------------....PPPPP
PPPPPPPP...............PPPPPPPP
PPPPPPPPPPP........PPPPPPPPPPPP
`);
    // Dungeon Description
    await des.region(selection.area(0,0,30,9), "lit");
    await des.region({ region: [12,3, 20,6], lit: 1, type: "temple", filled: 1 });
    // Doors
    des.door("closed",9,4);
    des.door("closed",9,5);
    des.door("locked",11,3);
    des.door("locked",11,6);
    // Stairs
    des.stair("up", 4,4);
    des.stair("down", 20,6);
    // Non diggable walls
    des.non_diggable(selection.area(11,2,21,7));
    // Altar in the temple.
    await des.altar({ x: 13,y: 5, align: "chaos", type: "shrine" });
    // 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();
    await des.trap();
    await des.trap();
    await des.trap();
    await des.trap();
    await des.trap();
    // Random monsters.
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    await des.monster("rabid rat");
    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("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("kraken");
    await des.monster("shark");
    await des.monster("shark");
    await des.monster({ class: ";", peaceful: 0 });
    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 });
 
 
    return des.finalize_level();
}