All files / js/levels oracle.js

100% Statements 81/81
100% Branches 9/9
100% Functions 8/8
100% Lines 81/81

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 824x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x  
/**
 * oracle - NetHack special level
 * Converted from: oracle.lua
 */
 
import * as des from '../sp_lev.js';
 
export async function generate() {
    // NetHack oracle oracle.lua	$NHDT-Date: 1652196033 2022/5/10 15:20:33 $  $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1 $
    // Copyright (c) 2015 by Pasi Kallinen
    // NetHack may be freely redistributed.  See license for details.
    // 
    // Oracle level
    des.level_flags("noflip");
 
    await des.makeRoom({ type: "ordinary", lit: 1, x: 3,y: 3, xalign: "center",yalign: "center", w: 11,h: 9, contents: async function() {
                  await des.object({ id: "statue", x: 0, y: 0, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 0, y: 8, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 10, y: 0, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 10, y: 8, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 5, y: 1, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 5, y: 7, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 2, y: 4, montype: "C", historic: true });
                  await des.object({ id: "statue", x: 8, y: 4, montype: "C", historic: true });
 
                  await des.makeRoom({ type: "delphi", lit: 1, x: 4,y: 3, w: 3,h: 3, contents: async function() {
                                des.feature("fountain", 0, 1);
                                des.feature("fountain", 1, 0);
                                des.feature("fountain", 1, 2);
                                des.feature("fountain", 2, 1);
                                await des.monster("Oracle", 1, 1);
                                des.door({ state: "nodoor", wall: "all" });
                             }
                  });
 
                  await des.monster();
                  await des.monster();
               }
    });
 
    await des.makeRoom({ contents: async function() {
                     des.stair("up");
                     await des.object();
                  }
    });
 
    await des.makeRoom({ contents: async function() {
                     des.stair("down");
                     await des.object();
                     await des.trap();
                     await des.monster();
                     await des.monster();
                  }
    });
 
    await des.makeRoom({ contents: async function() {
                     await des.object();
                     await des.object();
                     await des.monster();
                  }
    });
 
    await des.makeRoom({ contents: async function() {
                     await des.object();
                     await des.trap();
                     await des.monster();
                  }
    });
 
    await des.makeRoom({ contents: async function() {
                     await des.object();
                     await des.trap();
                     await des.monster();
                  }
    });
 
    await des.random_corridors();
 
 
    return des.finalize_level();
}