Mercurial > hg > early-roguelike
view arogue7/arogue77.html @ 285:17005af49963
Fix some potential problems detected by clang.
Most of these are unnecessary comparisons and functions returning the
wrong types.
author | John "Elwin" Edwards |
---|---|
date | Sat, 23 Sep 2017 09:47:00 -0400 |
parents | adfa37e67084 |
children |
line wrap: on
line source
<!-- Advanced Rogue --> <!-- Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T --> <!-- All rights reserved. --> <!-- --> <!-- Based on "Rogue: Exploring the Dungeons of Doom" --> <!-- Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman --> <!-- All rights reserved. --> <!-- --> <!-- See the file LICENSE.TXT for full copyright and licensing information. --> <!-- Creator : groff version 1.18.1 --> <!-- CreationDate: Sat Jan 21 09:55:23 2006 --> <h1 align="center"><a href="http://roguelike.sourceforge.net/arogue77">The Dungeons of Doom</a></h1> <br> <h2 align="center">Toolchest</h2> <h3 align="center">http://roguelike.sourceforge.net/arogue77</h3> <br> <table border="0" cellpadding="3" cellspacing="3" style="border-collapse: collapse" id="table1" align=center> <tr> <td nowrap> Advanced Rogue<br> Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T<br> All rights reserved. </td> </tr> <tr> <td nowrap> Based on "Rogue: Exploring the Dungeons of Doom"<br> Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman<br> All rights reserved. </td> </tr> </table> <p align="center">See the file LICENSE.TXT for full copyright and licensing information.</p> <h2 align="justify">1. Introduction</h2> <p align="justify"> Rogue is a screen-oriented fantasy game set in the ever-changing Dungeons of Doom. The game comes complete with monsters, spells, weapons, armor, potions, and other magical items. The dungeon's geography changes with every game, and although many magical items have certain identifiable properties, such as turning the player invisible, the physical manifestation of the magic changes each game. A red potion, for example, will cause the same reaction throughout a given game, but it may be a completely different potion in a new game. </p> <p align=justify> Entering the dungeon with only a little food, armor, and a weapon, the player must develop a good strategy of when to fight, when to run, and how to best use any magical items found in the dungeon. To make things interesting, the player has a quest to return one of several unique artifacts, rumored to lie deep in the dungeon's bowels. Returning with this artifact brings great glory and the title of Complete Winner. But even after finding the artifact, the player may wish to continue further to match wits with an arch-devil, demon prince, or even a deity found far down in the dungeon. Defeating such a creature will gain the player many experience points, the basis for scoring in Rogue. </p> <p align=justify> It is very difficult to return from the Dungeons of Doom. Few people ever make it out alive. Should this unlikely event occur, the player would be proclaimed a complete winner and handsomely rewarded for any booty removed from the dungeon. </p> <h3 align="justify">2. Character Classes</h3> <p align="justify"> Before placing the player in the dungeon, the game requests the player to select what type of character they would like to be: a fighter, a magic user, a cleric, a druid, a thief, a paladin, a ranger, a monk, or an assassin. </p> <p align="justify"><span style="font-variant: small-caps"><strong>2.1 The Fighter</strong></span></p> <p align="justify"> A fighter is very strong and will have a high strength rating. This great strength gives a fighter the best odds of winning a battle with a monster. At high experience levels the fighter also gets to attack multiple times in a single turn. This obviously further increases his chances at winning battles. Intrinsic to the fighter class is a robustness which results in 1 to 12 extra hit points for every new experience level. </p> <p align="justify"><span style="font-variant: small-caps"><strong>2.2 The Magician</strong></span></p> <p align="justify"> A Magician is able to "cast" spells. The number and variety of spells increases as the magician gains experience and intelligence. Magic users are not as hearty as fighters; they receive 1 to 6 extra hit points for every new experience level.</p> <p align="justify"><strong><span style="font-variant: small-caps">2.3 The Cleric</span></strong></p> <p align="justify"> A cleric is able to "pray" to his god for help. The number and variety of prayers which the gods are willing to grant to a cleric increase as the cleric gains experience and wisdom. </p> <p align=justify> Because of their religious nature, clerics can also affect the "undead" beings, like zombies and ghouls, which became monsters after they died. If an "undead" creature is next to a cleric, the cleric may try to turn it and cause it to flee. If the cleric is sufficiently powerful relative to the monster, the cleric will destroy it. This ability increases as the character gains experience levels. </p> <p align=justify> Clerics can gain from 1 to 8 extra hit points on reaching a new experience level.</p> <p align="justify"><strong><span style="font-variant: small-caps">2.4 The Druid</span></strong></p> <p align="justify"> The druid is a cleric of sorts but worships nature rather than a god. The druid is able to "chant" and thereby recieve certain types of spells. Most of the chants are targeted more towards the elements and nature. </p> <p align=justify> Druids gain from 1 to 8 hit points when they gain an experience level. </p> <p align="justify"><strong><span style="font-variant: small-caps">2.5 The Thief</span></strong></p> <p align="justify"> A thief is exceptionally dextrous and has a good chance to set a trap or rob a monster. </p> <p align=justify> By their nature, thieves can automatically detect all the gold on the current level of the dungeon. They are also good at detecting hidden traps. Because thieves slink along, they are not as likely as other characters to wake sleeping monsters. If a thief manages to sneak up on a creature without waking it, he will get a chance to backstab the monster. When this is done, the damage done by the thief greatly increases based on his experience level. </p> <p align=justify> Thieves gain from 1 to 6 extra hit points from a new experience level. </p> <p align="justify"><strong><span style="font-variant: small-caps">2.6 The Paladin</span></strong></p> <p align="justify"> The paladin is a type of holy warrior. Somewhat of a cross between a fighter and a cleric. He is able to pray and turn undead as a cleric, (but to a lesser degree) but fights as a fighter. He is on the side of all that is good and righteous. Therefore he would never attack a creature that would not attack him first. If he does kill a non-violent creature inadvertantly he will feel "uneasy" and his god may retaliate by making him a mere fighter. </p> <p align=justify> Paladins gain 1 to 10 hit points per experience level. </p> <p align="justify"><strong><span style="font-variant: small-caps">2.7 The Ranger</span></strong></p> <p align="justify"> The ranger is somewhat of a cross between a druid and a fighter. He too is on the side of righteousness and good. Therefore, the same same restrictions apply to his as they do to a paladin. The ranger can "chant" and "cast" but to a lesser degree than the druid and magician. </p> <p align=justify> Rangers gain 1 to 8 hit points per experience level. </p> <p align="justify"><strong><span style="font-variant: small-caps">2.8 The Monk</span></strong></p> <p align="justify"> The Monk is a martial arts expert. He wears no armor but has an effective armor class based on his ability to dodge attacks. He does not need a weapon in combat for his hands and feet are a formidable weapon. His ability to dodge and use his hands as weapons increases as he gains in level. </p> <p align=justify> Monks gain 1 to 6 hit points per experience level. </p> <p align="justify"><strong><span style="font-variant: small-caps">2.9 The Assassin</span></strong></p> <p align="justify"> The assassin is a person trained in the art of killing people by surprise. He has most of the abilities of the thief except the "backstab". Instead, the assassin has the chance to kill an opponent outright with one strike. He is also a ruthless character and trained in the use of poison. He can recognize poison on sight and can coat his weapon with it thereby making his next attack an exceptionally lethal one. </p> <p align=justify> Assassins gain 1 to 6 hit points per experience level. </p> <h3 align="justify">3. ATTRIBUTES</h3> <p align="justify"><strong><span style="font-variant: small-caps">3.1 Intelligence</span></strong></p> <p align="justify">Intelligence is the primary attribute associated with casting spells. With higher intelligence comes the knowledge of more spells, the ability to cast more spells, and faster recovery of spells that have been cast. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.2 Strength</span></strong></p> <p align="justify">This is, of course, the measure of a character's physical strength. With higher strength a character can carry more, cause more damage when striking, have a better chance to strike an opponent, and move about more quickly when carrying a load. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.3 Wisdom</span></strong></p> <p align="justify">Wisdom is the primary attribute associated with Praying to a god. With higher wisdom comes the knowledge of more prayers, the ability to pray more often, and faster recovery of prayer ability. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.4 Dexterity</span></strong></p> <p align="justify">Dexterity is a measure of a character's agility. With higher dexterity a character is harder to hit, can hit a opponent more easily, and can move about more quickly when carrying a load. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.5 Constitution</span></strong></p> <p align="justify">Every character has a constitution rating. A character with an exceptionally good constitution will gain more than the normal amount of hit points associated with the character's class when the character reaches a new experience level. Exceptional constitution also provides better protection versus poison-based attacks and diseases. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.6 Charisma</span></strong></p> <p align="justify">Charisma is a measure of a characters looks and general likeableness. It effects transactions when trying to purchase things. </p> <p align="justify"><strong><span style="font-variant: small-caps">3.7 Experience Levels</span></strong></p> <p align="justify"> Characters gain experience for killing monsters, stealing from monsters, and turning monsters. Each character class has a set of thresholds associated with it. When a character reaches a threshold, the character attains the next experience level. This new level brings extra hit points and a greater chance of success in performing the abilities associated with the character's class. For example, magicians receive new spells, and clerics receive new prayers. </p> <p align="justify"> <strong><span style="font-variant: small-caps">3.8 Allocating Attributes</span></strong> </p> <p align="justify"> The player starts with 72 "attribute points" to create a character and can distribute them in any manner among the six attributes described above. When prompting the player for each attribute, the game displays the minimum and maximum allowable values for that attribute. The player can type a backspace (control-H) to go back and change a value; typing an escape (ESC) sets the remaining attributes to the maximum value possible given the remaining attribute points. </p> <h3 align="justify"> 4.0 THE SCREEN</h3> <p align="justify"> During the normal course of play, the screen consists of three separate sections: the top line of the terminal, the bottom two lines of the terminal, and the remaining middle lines. The top line reports actions which occur during the game, the middle section depicts the dungeon, and the bottom lines describe the player's current condition. </p> <p align="justify"><strong><span style="font-variant: small-caps">4.1 The Top Line</span></strong> <p align="justify"> Whenever anything happens to the player, such as finding a scroll or hitting or being hit by a monster, a short report of the occurrence appears on the top line of the screen. When such reports occur quickly, one right after another, the game displays the notice followed by the prompt '--More--.' After reading this notice, the player can press a space to display the next message. At such a point, the game ignores all commands until the player presses a space. </p> <p align="justify"> <strong><span style="font-variant: small-caps">4.2 The Dungeon Section</span></strong><p align="justify"> The large middle section of the screen displays the player's surroundings using the following symbols: </p> <p> <table border="0" cellpadding="3" style="border-collapse: collapse" id="table3" cellspacing="3"> <tr> <td align="center">|</td> <td> </td> <td>A wall of a room.</td> </tr> <tr> <td align="center">-</td> <td> </td> <td>A wall of a room.</td> </tr> <tr> <td align="center">*</td> <td> </td> <td>A pile of gold.</td> </tr> <tr> <td align="center">%</td> <td> </td> <td>A way to another level.</td> </tr> <tr> <td align="center">+</td> <td> </td> <td>A doorway.</td> </tr> <tr> <td align="center">.</td> <td> </td> <td>The floor in a room</td> </tr> <tr> <td align="center">@</td> <td> </td> <td>The player.</td> </tr> <tr> <td align="center">_</td> <td> </td> <td>The player, when invisible.</td> </tr> <tr> <td align="center">#</td> <td> </td> <td>The floor in a passageway</td> </tr> <tr> <td align="center">!</td> <td> </td> <td>A flask containing a potion.</td> </tr> <tr> <td align="center">?</td> <td> </td> <td>A sealed scroll.</td> </tr> <tr> <td align="center">:</td> <td> </td> <td>Some food.</td> </tr> <tr> <td align="center">)</td> <td> </td> <td>A weapon.</td> </tr> <tr> <td align="center"> </td> <td nowrap> </td> <td nowrap>Solid rock (denoted by a space)</td> </tr> <tr> <td align="center">]</td> <td> </td> <td>Some armor.</td> </tr> <tr> <td align="center">;</td> <td> </td> <td>A miscellaneous magic item.</td> </tr> <tr> <td align="center">,</td> <td> </td> <td>An artifact.</td> </tr> <tr> <td align="center">=</td> <td> </td> <td>A ring.</td> </tr> <tr> <td align="center">/</td> <td> </td> <td>A wand or a staff.</td> </tr> <tr> <td align="center">^</td> <td> </td> <td>The entrance to a trading post.</td> </tr> <tr> <td align="center">></td> <td> </td> <td>A trapdoor leading to the next level.</td> </tr> <tr> <td align="center">{</td> <td> </td> <td>An arrow trap.</td> </tr> <tr> <td align="center">$</td> <td> </td> <td>A sleeping gas trap.</td> </tr> <tr> <td align="center">}</td> <td> </td> <td>A beartrap.</td> </tr> <tr> <td align="center">~</td> <td> </td> <td>A trap that teleports you somewhere else.</td> </tr> <tr> <td align="center">`</td> <td> </td> <td>A poison dart trap.</td> </tr> <tr> <td align="center">"</td> <td> </td> <td>a shimmering magic pool.</td> </tr> <tr> <td align="center">'</td> <td> </td> <td>An entrance to a maze.</td> </tr> <tr> <td align="center">$</td> <td> </td> <td>Any magical item. (During magic detection)</td> </tr> <tr> <td align="center">></td> <td nowrap> </td> <td nowrap>A blessed magical item. (Duriing magic detection)</td> </tr> <tr> <td align="center"><</td> <td> </td> <td>A cursed magical item. (During magic detection)</td> </tr> <tr> <td align="center">A letter</td> <td> </td> <td>A monster. Note that a given letter may signify<br> multiple monsters, depending on the level of the<br> dungeon. The player can always identify a current<br> monster by using the identify command ('/').</td> </tr> </table> </p> <p align="justify"><strong><span style="font-variant: small-caps">4.3 The Status Section</span></strong></p> <p align="justify"> The bottom two lines of the screen describe the player's current status. The first line gives the player's characteristics: </p> <ul> <li> <p align="justify">Intelligence (Int)</li> <li> <p align="justify">Strength (Str)</li> <li> <p align="justify">Wisdom (Wis)</li> <li> <p align="justify">Dexterity (Dxt)</li> <li> <p align="justify">Constitution (Const)</li> <li> <p align="justify">Charisma (Char)</li> <li> <p align="justify">Encumberance (Carry)</li> </ul> <p align=justify> Intelligence, strength, wisdom, dexterity, charisma, and constitution have a normal maximum of 25, but can be higher when augmented by a ring. Encumberance is a measurement of how much the player can carry versus how much he is currently carrying. The more you carry relative to your maximum causes you to use more food. </p> <p align=justify> The second status line provides the following information: </p> <ul> <li> <p align="justify">The current level (Lvl) in the dungeon. This number increases as the player goes further down. </li> <li> <p align="justify">The player's current number of hit points (Hp), followed in parentheses by the player's current maximum number of hit points. Hit points express the player's health. As a player heals by resting, the player's current hit points gradually increase until reaching the current maximum. This maximum increases each time a player attains a new experience level. If the player's current hit points reach 0, the player dies. </li> <li> <p align="justify">The player's armor class (Ac). This number describes the amount of protection provided by the armor, cloaks, and/or rings currently worn by the player. It is also affected by high or low dexterity. Wearing no armor is equivalent to an armor class of 10. The protection level increases as the armor class decreases. </li> <li> <p align="justify">The player's current experience level (Exp) followed by the player's experience points. The player can gain experience points by killing monsters, successfully stealing from monsters, and turning monsters. When a player gains enough experience points to surpass a threshold that depends on the player's character type, the player reaches a new experience level. A new experience level brings extra hit points and possibly added abilities, such as a new spell for a magician or a new prayer for a cleric. </li> <li> <p align="justify">A description of the player's character. This description depends on the player's character type and experience level. </li> </ul> <h3 align="justify">5.0 COMMANDS</h3> <p align="justify"> A player can invoke most Rogue commands by typing a single character. Some commands, however, require a direction, in which case the player types the command character followed by a directional command. Many commands can be prefaced by a number, indicating how many times the command should be executed. </p> <p align=justify> When the player invokes a command referring to an item in the player's pack (such as reading a scroll), the game prompts for the item. The player should then type the letter associated with the item, as displayed by the inventory command. Typing a '*' at this point produces a list of the eligible items. </p> <p align=center><b><i>Rogue understands the following commands:</i></b></p> <p> <table border="0" cellpadding="3" style="border-collapse: collapse" id="table4" cellspacing="3"> <tr> <td align="center" valign="top">?</td> <td> </td> <td>Preceding a command by a '?' produces a brief explanation of the command. The command '?*' gives an explanation of all the commands.</td> </tr> <tr> <td align="center" valign="top">/</td> <td> </td> <td>Preceding a symbol by a '/' identifies the symbol.</td> </tr> <tr> <td align="center" valign="top">=</td> <td> </td> <td>Clarify. After typing an '=' sign, the player can use the movement keys to position the cursor anywhere on the current level. As long as the player can normally see the selected position, Rogue will identify whatever is at that space. Examples include a sleeping giant rat, a blue potion, and a food ration.</td> </tr> <tr> <td align="center" valign="top">h</td> <td> </td> <td>Move one position to the left.</td> </tr> <tr> <td align="center" valign="top">j</td> <td> </td> <td>Move one position down.</td> </tr> <tr> <td align="center" valign="top">k</td> <td> </td> <td>Move one position up.</td> </tr> <tr> <td align="center" valign="top">l</td> <td> </td> <td>Move one position to the right.</td> </tr> <tr> <td align="center" valign="top">y</td> <td height="21"> </td> <td height="21">Move one position to the top left.</td> </tr> <tr> <td align="center" valign="top">u</td> <td> </td> <td>Move one position to the top right.</td> </tr> <tr> <td align="center" valign="top">b</td> <td> </td> <td>Move one position to the bottom left.</td> </tr> <tr> <td align="center" valign="top">n</td> <td> </td> <td>Move one position to the bottom right</td> </tr> <tr> <td align="center" valign="top">H</td> <td> </td> <td>Run to the left until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">J</td> <td> </td> <td>Run down until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">K</td> <td> </td> <td>Run up until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">L</td> <td> </td> <td>Run to the right until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">Y</td> <td> </td> <td>Run to the top left until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">U</td> <td> </td> <td>Run to the top right until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">B</td> <td> </td> <td>Run to the bottom left until reaching something interesting.</td> </tr> <tr> <td align="center" valign="top">N</td> <td> </td> <td>Run to the bottom right until reaching something interesting</td>