The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

xomb - a game featuring @ versus the Xarci Bedo

SYNOPSIS

Without arguments a new game with a seed based on the current epoch will be started. The --today flag will set the seed to YYYYMMDD in the local timezone.

  xomb --delay=f --err=file --save=file [ --seed=i | --today ] 

  xomb --delay=f --err=file --replay-delay=f --replay=file --save=file

  xomb --version

DESCRIPTION

                                                         .
                                                         ..      #
  Xomb is a computer fantasy game. The object of          ..#   ~#
  the game is to survive the attacks of the                ... ..#
  Xarci Bedo and to obtain a lot of gems. To win            #.#.#
  the game you must locate the Dragonstone which             #@#
  is somewhere below the 3rd level of the                   ..#.~
  dungeon and get it out.                                  ... ~.~
                                                         ....   ..~.
  A game should take under 15 minutes to complete.      ....     ~.^~
                                                         . .     ...
                                                                  ~

Options

Abbreviations of these options may be possible unless the POSIXLY_CORRECT environment variable is set.

--delay=seconds

Floating point value to sleep for after events the player may wish to take notice of, such as when damage is taken or between updates while running. Probably should be much lower than 1.0. Default is 0.15 seconds.

--err=file

Send STDERR to this file if not already redirected. Otherwise STDERR is closed by default.

--help -h -?

Shows the options available and then quits the game.

--replay-delay=seconds

Floating point value to sleep for after a move is replayed.

--replay=file

Replays a game from --save file output. Causes --seed and other flags to be ignored.

Hitting the escape key while replaying a game will stop the replay and turn control over to standard input.

--save=file

Saves the keystrokes used (plus the version and seed as a header line) to the given file.

--seed=i

Start the game with the seed set to the given integer (32-bit, unsigned).

--today

Set the seed to YYYYMMDD in the local timezone. --seed has priority if both are set.

--version -v

Shows the xomb module version and then quits the game.

An Overview of Minos III

The most recent message is shown at the top of the screen. More of these can be viewed using the M command. The status bar at the bottom

    Level 01 t10 SP[=========================-         ][ .][*] 121B

shows the level (1), the time or cost of the last energy-consuming move (10), shield points remaining, the item and ground tile of the current cell (here: no item and an empty cell), whether a gem is loaded for shield repair (yes), and finally the error code display (121B). Consult the "DIAGNOSTICS" section for details on the error codes.

The middle of the screen shows the level map. Various "Symbols" are present in this space. Note that the Field Operation View (FOV) readouts may be impacted by the harsh conditions on Minos III, and the scanner is an older model.

In examine mode (x) level map features are described, if they are in view of the FOV scanner. Range and coordinate details are also provided.

Commands

Motion

Movement is like that of rogue(6). With numlock enabled a numeric keypad may be able to be used. With the shift key the direction will be run towards, for better or worse, up to a maximum of four cells.

   y  k  u
    \ | /
  h - @ - l
    / | \
   b  j  n

Unlike in rogue(6) diagonal moves take more time (14 versus 10). Ranged attacks are likewise calculated using Pythagorean distances. The FOV by contrast degrades randomly over Chebyshev distance. Various weapon effects also use the Chebyshev distance.

Other

, g

Pick up the item in the current cell. Takes some amount of time to complete (takes energy).

.

Wait a turn. Takes energy.

<

Activate a gate for ascent. Only possible while carrying the Dragonstone. Takes energy.

>

Activate a gate for descent. Takes energy.

?

Show the in-game help screen of available commands. Esc or q will exit the submenu. Does not take energy.

@

Reports the current position of the player in the level map. Does not take energy.

E

Equips an item in the inventory. Does not take energy.

M

Show recent messages. Esc or q will exit the submenu. Does not take energy.

Q

Quit the game. This will issue an "are you sure" prompt that takes Y or N to complete or escape that action.

R

Remove an equipped item. Does not take energy.

S

Snooze until shield recharged or the gem breaks. Care should be taken that nothing outside the FOV scanner array view can acquire a target lock.

d

Drop an item from inventory. Does not take energy.

i

Show the inventory. Does not take energy. Esc or q will exit the submenu, and other commands may be available within this menu.

p

Clear the PKC error code. See "DIAGNOSTICS" for more details on these codes.

v ~

Show the game version, seed, and current turn count. Does not take energy.

x TAB

Examine the level map. Esc or q will exit the submenu. Use the "Motion" commands to move the cursor. Holding down the shift key will move the cursor four times faster. Does not take energy.

TAB will enter examine mode with the cursor placed on some monster. Repeat TAB to cycle through the visible monsters.

Symbols

These may be inspected in-game using the examine command, assuming they were picked up by the FOV scanner. At most only one Xarci Bedo, item, and ground tile can occupy the same cell. Scientists believe this is due to particularities of the geology on Minos III, and some even speculate that there is a relationship between the gems and the Xarci Bedo.

@

Vessel location.

A crevasse in the ground that you can fall down.

%

A gate to the next level (via the > command). A gate takes some time to complete the level transition. Ascent is only possible with the Dragonstone using < on the gate. As is traditional.

#

Wall. Impassable. Generally blocks FOV, though again the FOV scanner is an older model, so there may be defects.

^

Rubble. Somewhat passable. Sometimes blocks FOV. Sometimes blocks enemy fire.

~

Acid pond. Probably an OSHA violation.

.

An empty cell.

*

A gemstone. These may be equipped from the inventory to provide shield repair over time, though this will greatly damage the gem due to harmonic stress caused by the shield module. The gem value is shown before the name in the inventory and some log messages.

The Xarci Bedo are represented by uppercase ASCII letters, and exhibit the usual fantasy tropes: Gatling Autocannon, Railgun, etc.

DIAGNOSTICS

Various messages may be shown by the Patrol Kombat Computer (PKC) in response to command inputs. Details on important codes are listed below. Consult the VP XII Operations Manual (Green) for complete scenario process control instructions. Due to memory limitations only the last error code is stored. The readout can be cleared with the p command.

PKC-0001

A move was attempted beyond the boundaries of the game. In strict mode this would normally result in the immediate termination of the contestant.

PKC-0002

The motion control guidance system has encountered a significant obstacle and signals that fact with this code.

PKC-0004

Gate activation error.

PKC-0010

Dragonstone is required for vertical ascent module gate activation.

PKC-0014

Gate is out of service, or was never enabled by the contractors.

PKC-0063

Shield module REST status error.

PKC-0065

Continuous operation mode disabled due to positive return on proximity sensor or FOV scanner array.

PKC-007E

Environmental hazard proximity alarm.

PKC-0099

Gyroscopic alignment control array reports unexpected acceleration.

PKC-0101

Item retrieval command call failure.

PKC-0102

Inventory stack allocation failure.

PKC-0104

Item disposal process error. Clear item exit disposal slot before retry.

PKC-0111

Incompatible item use handler exception error.

PKC-0112

Underflow on inventory stack query request.

PKC-0113

Underflow on shield module feed slot retrieval call.

PKC-0302

Target acquisition lock failure. Often caused by excess vibration in the FOV scanner array.

PKC-1202

Executive overflow on guidance module.

PKC-1203

Spurious interrupt on data bus array.

PKC-121B

Unit is already in command mode.

PKC-1220

Background subspace communications link query negative acknowledgment.

EXIT STATUS

xomb exits with a 0 on victory, and >0 in every other case.

SEE ALSO

Game::Xomb, rogue(6)

VP XII Operations Manual (Green)

AUTHOR

Jeremy Mates

BUGS

xomb assumes that the terminal used supports various ANSI or XTerm Control Sequences. Given certain time constraints (7DRL 2020) not much portability testing has been done (beyond OpenBSD 6.6 and Mac OS X 10.11). It should work where any suitable unix terminal is available and where the game (and required modules) can be compiled and run without issue.

Numpad support is limited and does not support running nor leaps in examine mode.

The screen gnat (mouse pointer) should be hidden by xomb though terminals may ignore the escape code. Terminal configuration may be necessary to hide the gnat, e.g. in ~/.Xdefaults:

  URxvt*pointerBlank:true

  xterm*pointerMode:2

See xterm(1) or as appropriate for the terminal in question.