All files / js/levels Bar-goal.js

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

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 1091x 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  
/**
 * Bar-goal - NetHack special level
 * Converted from: Bar-goal.lua
 */
 
import * as des from '../sp_lev.js';
import { selection } from '../sp_lev.js';
 
export async function generate() {
    // NetHack Barbarian Bar-goal.lua	$NHDT-Date: 1652196000 2022/5/10 15:20:0 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $
    // Copyright (c) 1989 by Jean-Christophe Collet
    // Copyright (c) 1991 by M. Stephenson
    // NetHack may be freely redistributed.  See license for details.
    // 
    des.level_init({ style: "solidfill", fg: " " });
 
    des.level_flags("mazelevel");
 
    await des.map(`\
                                                                            
                               .............                                
                             ..................                             
        ....              .........................          ....           
      .......          ..........................           .......         
      ......             ........................          .......          
      ..  ......................................             ..             
       ..                 .....................             ..              
        ..                 ..................              ..               
         ..         ..S...S..............   ................                
          ..                   ........                ...                  
       .........                                         ..                 
       ......  ..                                         ...  ....         
      .. ...    ..                             ......       ........        
   ....          .. ..................        ........       ......         
  ......          ......................       ......         ..            
   ....             ..................              ...........             
                      ..............                                        
                        ...........                                         
                                                                            
`);
    // Dungeon Description
    await des.region(selection.area(0,0,75,19), "unlit");
    // Secret doors
    des.door("locked",22,9);
    des.door("locked",26,9);
    // Stairs
    des.stair("up", 36,5);
    // The altar.  Unattended.
    await des.altar({ x: 63,y: 4,align: "noncoaligned", type: "altar" });
    des.non_diggable(selection.area(0,0,75,19));
    // Objects
    await des.object({ id: "luckstone", x: 63, y: 4,buc: "blessed",spe: 0,name: "The Heart of Ahriman" });
    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: "Thoth Amon", x: 63, y: 4, peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ id: "ogre", peaceful: 0 });
    await des.monster({ class: "O", peaceful: 0 });
    await des.monster({ class: "O", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ id: "rock troll", peaceful: 0 });
    await des.monster({ class: "T", peaceful: 0 });
    des.wallify();
 
 
 
    return des.finalize_level();
}