Skip to content

Latest commit

 

History

History
 
 

tests

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This directory contains canned situations for testing saiph's reaction
to them.  They are useful for testing behavior in obscure or late-game
situations.  To use these, you will need to build and install a custom
NetHack with patches/situation.patch applied; then, start saiph with
NHSITUATIONFILE=/full/path/to/whatever.t in the environment.


The following situations are currently available:

buc_lizard.t: BUC-testing of lizard corpses (caused segfaults in past)

floating_eye_pathing.t: Floating eye blocks a corridor.

locked_shop_1.t: Test "Closed for inventory" handling.

locked_shop_2.t: Like 1, but the corridor comes in sideways, so the
    bot must know not to kick down doors from diagonals.

shop_stairs_mimic.t: Mimic mimics stairs in a shop, possibly confusing
    the old SHOP_TILE detection.

vault.t: Escaping a vault

wand_on_engr.t: You find a wand on top of an engraved message
    (rawrmage reported a #quit in this situation)


If you want to write your own situation files, the format is very
simple although not very easy to use.  The situation is interpreted
as a list of commands to be run after setting up the dungeon and
the character.

In general, a situation will contain commands to set relevant
properties of the character, and additionally will either set up a
custom dungeon level or will transport the character to a defined
special level.  These commands are available:

Map section commands:

altar X Y ALIGN

Place an altar (1=law, 0=neu, -1=cha) at the given position.

at X Y

Sets initial location of the character.

corr FROMX FROMY TOX TOY 0 23 0

Sets up a corridor.  Should be used after all room and door
definitions.

door X Y TYPE SECRET

Places a door.  Must be used immediately after the room that the door
belongs to (it is not possible at this time to set up a freestanding
door).  TYPEs are 0=no door, 1=broken, 2=open, 4=closed, 8=locked,
20=closed+trapped, 24=locked+trapped.  SECRET is 1 or 0.

endmap

Sets up wall maps and room reverse mapping, fills shops.  Should be
used after all other map section commands.

engr X Y TYPE MESSAGE

First two numbers are X,Y coordinate; third is an engraving type code:
1 (dust), 2 (engraved), 3 (burned), 4 (magic marker graffiti),
5 (blood), 6 (headstone).

map

Clears existing level data.  Should be used before any other map
section command.

mon X Y [peaceful ][asleep ]MONSTERNAME[|APPEARANCE]

Makes a monster at a location.  If peaceful and asleep are not used
the monster will be hostile and awake respectively.

obj X Y ITEM

Creates a floor item (parsed as a wish).

room TOPLEFTX TOPLEFTY BOTRIGHTX BOTRIGHTY LIT TYPE

The corners represent the floor area; the walls will be outside the
described area.  TYPE should be 0 for an ordinary room or 14+ for
a shop, other values are not supported at this time.

vault

Creates a vault, plus niche and teleporter, somewhere on the level.

Character section commands:

align NUMBER

Increases alignment to NUMBER.

blind TURNS

goto NAME

Sends player to NAME, which should be a defined special level without
the .lev extension and variant number (such as soko4, oracle, etc).
Also supported are special cases invocation, tower (base of Vlad),
and portal (level going to quest).

hallu TURNS

inventory
ITEM
ITEM
.

Adds each ITEM (parsed as a wizmode wish) to inventory.  Each item may
be preceded by identified or worn (or both in that order); worn items
are equipped as they would be in starting inventory.  This command
destroys the previous inventory.

level NUMBER

Increases character level to NUMBER.

seal

Attempts to remove the exit from a branch entered using goto.  Only
works reliably for levels in the main dungeon, or first levels of
branches.

stats STR DEX CON INT WIS CHA

Sets character's stats.  Note that STR ranges from 3 to 126, to allow
for possibilities like "18/39".