7DRL 2009: Escape from Lab 42 0.2 (Post 7DRL Release)
Richard D. Clark
rickclark58@gmail.com

1. About

Escape from Lab 42 is my 2009 7 Day Roguelike Challenge entry. The 7DRL Challenge is held on the games.rec.roguelike.development newsgroup and this year was held during the week of March 7 through March 14. I started programming on March 7 and finished on March 13.

This is version 0.2 that incorporated some changes that were suggested by players when 0.1 was released.

2. Background

You wake up in the Medlab, wondering for a moment where you are. The muffled sounds of an alarm  penetrate your isolation room--and slowly you remember..."

You were working on Level 10 of Lab 42, the site of the secret government research project to reanimate the dead. The thought still sends shivers down your spine. Reanimate the dead and use them as soldiers in the escalating global war. A war going badly for your side. A desperate plan, hatched by desperate men searching for a way to solve a desperate situation. But something went terribly wrong.

You were moving a new batch of reanimates, (Zombies is what you and others called them) to the test lab when one broke free and bit you. You were rushed into the isolation chamber, given the anti virus and put under sedation. That is the last you remember, until now. The muffled alarm suddenly silences and you hear the sexy voice of the main computer.

"Self-destruct sequence activated. Self-destruct in 30 minutes."

You are suddenly wide awake. The reanimate virus must have been let loose in the lab. You throw on your clothes, grab your .45 pistol and get ready to head for the exit, when you stop as the computer continues.

"All level elevators have been locked down to prevent spread of contamination." 

So, things are much more complicated. You need to get the override codes for each elevator before you can ascend to the next level. Damn! You take comfort in the fact that at least if you are bitten, you won't become a Zombie, although you can still die. Stay here and die, or try to escape and possibly die at the hands of some damn Zombie. Hell, you would rather die fighting.

You make sure the safety is off on your .45 and head toward the door. You have 30 minutes to escape from Lab 42.

3. Game Objective

You start out on Level 10 of the lab complex. You must make it to the level 1 elevator to escape the lab. You have 30 minutes of real time to navigate each level and escape. Everyone in the lab has been turned into a zombie, except for you. The computer has locked all of the elevators, so you must find the access code on each level before you can enter the elevator and proceed to the next level.

Escape From Lab 42 is a real-time roguelike game. Zombies will move and attack regardless of whether you move or not. All actions can be performed with a single key press, except in the case when you are holding two items and you wish to exchange items in your hand. In this case a prompt will be displayed in the message area asking you which hand to exchange.

4. Main Display

The main screen has three sections. The map area is displayed in the upper left two-thirds of the screen. The status display is to the right of the map display. The message area is four lines along the bottom of the screen. The last four messages are displayed in the message area, with the top message being the most recent.

5. Movement

There are three methods to move the @ around the map.

5.1 Arrow Keys

Arrow keys provide four way movement and follow the direction of the keys.

5.2 Numpad with Numlock on (digit mode):

    7 8 9 
     \|/  
    4- -6 
     /|\  
    1 2 3 

The location of the number indicates the direction of movement.

5.3 Alternate Keys

The following set of keys can be used if the computer does not support a numeric keypad.

    o p [
     \|/ 
    l- -;
     /|\ 
    , . /

Since Escape From Lab 42 is a real-time game, there there is no wait command key.


6. Zombies

There are two types of zombies; Z (guards) and z (civilians). Guards are much stronger than civilians. Zombies are not very smart and will move toward only if they see you. Individually zombies dont pose much of a problem, however they become stronger in groups. Zombies move and attack in real time, so even if you are not moving, the zombies will still move toward you and can still attack. Zombies do a random amount of damage depending on their level.

When zombies successfully bite you, they will bite a particular body part, such as the arm or hand. The damage inflicted is subtracted from your overall health. 

7. Elevator

Elevators are represented by a small yellow square. You can only enter the elevator if you have the access code. 

8. Doors

Each room on the level has a door that can be opened and closed. To open a door bump into it. To close a door press the c key. You must be standing next to (not on) the door to close it. Zombies cannot open doors.

9. Items

Each item is represented by both a color and symbol. The color is based on the class of the item, i.e., weapon or health, and the symbol represents the item displayed on the map. The following lists all item colors and corresponding symbol.

9.1 Weapons Color: Red

    Pistol: p
    Shotgun: s
    Pipe: i
    Hammer: h

9.2 Ammo Color: Orange

    Clip: c
    Shells: s

9.3 Armor Color: Green

    Cloth: c
    Leather: l
    Kevlar: k
    KevPlate: p

9.4 Health Color: Blue

    Stimpack: s
    Medpack: m

9.5 Locator Color: Cyan

    Symbol: l

9.6 Access Code Color: Gold

    Symbol: c


10. Melee Combat

To attack a zombie, just bump into it. If you successfully hit the zombie in the head, the zombie will take damage according to the weapons held in your hand, plus a fourth of your current health value. If you are holding two melee weapons, each weapons will inflict damage. If you are not holding any weapons, you will do damage equal to a fourth of your current health value.

11. Using Projectile Weapons

To fire at zombies using a projectile weapon, you must first target the zombies by pressing the t key. Each zombie in your view will be assigned a letter a through z (except for t) and displayed in yellow. To fire at a zombie press the corresponding target letter. When all targets are destroyed or the equipped weapon runs out of ammo, targeting will automatically be turned off. You can also turn off targeting by pressing the t key. If you are not holding a projectile weapon, or the equipped weapon is out of ammo, pressing the t key will have no effect.

As your health falls, you will become less accurate with projectile and melee weapons, and weaker inflicting less damage with melee weapons.

12. Using the Locator

When the locator is equipped a mimi-map will be displayed in the lower portion of the status display. You current location is displayed as a small cyan square. The elevator, if you have located it, will be displayed as a small yellow square.

13. Managing Inventory

You have 4 inventory slots. You can pick up items as long as you have open inventory slots. An item that is picked up will be placed in the first available inventory slot.

Press F1 through F4 to equip or exchange an item in your hands. If you select an empty inventory slot you can unequip an item that is in your hands. If you equip an item when you are holding an item, the two items will be exchanged. Note that you cannot unequip armor by selecting an empty inventory slot, but you can exchange armor.

Press F5 through F6 to drop an item. The item will be dropped on the map if there is space on the map. You cannot stack items on the map.

14. Exiting the Game

You can exit the game at any time by pressing the Esc key. Since Escape From Lab 42 is such a short game, there is no way to save or load a game.

15. Death

You can die in two ways. When your health runs out, you will die. Also, if the 60 minutes have expired, you will die when the lab is destroyed.

16. Winning

You win the game by reaching the elevator on level 1 and escaping.

17. Programming Language

Escape from Lab 42 was written in FreeBasic, http://www.freebasic.net. The source code is available and is licensed under the GPL license.

To compile this use: fbc -s gui lab42.rc

The icon lab42.ico needs to be in the source folder.
