B3W/RoguelikeGame
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Rougelike Dungeon with Equipment and Updated Combat Mechanics
CPP implementation contains all latest features
C implementation has not been updated for a while
The purpose of this program is to procedurally generate randomized dungeon
levels. This dungeon contains rooms, corridors, and monsters. Monsters have
attributes that consist of intelligence, telepathy, tunneling, erratic, unique,
and boss. Intelligent monsters use a shortest path to the player, telepathic
monsters always know the location of the player, tunneling monsters are able
to tunnel through rock, erratic monsters have a chance of moving randomly,
unique monsters can only have one instance present in the dungeon level at a
time and if killed cannot be respawned for the remaining duration of the game.
Monsters can have none, all, or some combination of these attributes. Monsters
now also have hitpoints and damage. The dungeon contains an assortment of
objects. The types of objects vary and include, armor, weapons, and scrolls.
Players now have an inventory and equipment slots. Objects can also be destroyed
and removed from the game. The player can progress through levels via the stairs
located within the dungeon. To win you must defeat the boss!
Additional Features of the program:
- Pathing via Dijkstra's Algorithm for intelligent creatures to find the player character
- Status updates based on user input and dungeon events
- Custom monster and object creation
Key Mappings:
7, y, KEY_HOME - Attempt to move PC one cell to the upper left
8, k, KEY_UP - Attempt to move PC one cell up
9, u, KEY_PPAGE - Attempt to move PC one cell to the upper right
6, l, KEY_RIGHT - Attempt to move PC one cell right
3, n, KEY_NPAGE - Attempt to move PC one cell to the lower right
2, j, KEY_DOWN - Attempt to move PC one cell down
1, b, KEY_END - Attempt to move PC one cell to the lower left
4, h, KEY_LEFT - Attempt to move PC one cell left
5, ., space, KEY_B2, - Rest for one turn
> - Attempt to move down a staircase to the next dungeon level
< - Attempt to move up a staircase to the next dungeon level
m - Display the monster list (doesn't count as a PC turn)
KEY_UP - Scroll monster list up when needed
KEY_DOWN - Scroll monster list down when needed
Escape, F1 - Close monster list and return to character control
Q - Quit the game
Additional Key Mappings in CPP version:
, - Pick up an item
w - Equip item
t - Unequip item
x - Destroy item and remove from current game
I - Inspect item
i - List inventory
e - List equipment
L - Inspect monster
T - Display the tunneling distance map
D - Display the non-tunneling distance map
H - display hardness map
s - Display the normal game dungeon
f - toggle 'fog of war' on and off
g - teleport player
r - teleports player to random spot within the dungeon
g - teleports player to spot denoted by '*'
Normal movement keys for moving spot to teleport to
Within the dungeon, meaning of currently diplayed characters is as follows:
' ' - Denotes rock
'.' - Denotes room
'#' - Denotes corridor
'@' - Denotes player
'<' - Denotes stair case going up
'>' - Denotes stair case going down
'*' - Location of player when teleporting
Objects:
'|' - Melee weapon
')' - Offhand
'}' - Ranged weapon
'-' - Wand
'[' - Chest armor
']' - Helmet
'(' - Cloak
'{' - Gauntlets
'\' - Boots
'=' - Ring
'"' - Amulet
'_' - Light
'~' - Scroll
'?' - Book
'!' - Flask
'$' - Gold
'/' - Ammunition
',' - Food
'%' - Container
'&' - Stack of items
Implementation
This implementation succeeds in meeting all of the required specifications.
Item interations are now possible as well as monster inspection. The combat
system was updated. Weapons now have damage and attacks subtract from the
character's hitpoints until they die.
NOTE
If using PuTTY, navigate to Connection -> Data and make sure 'Terminal-type
string' is putty. There has also been some weird keypad behavior when using PuTTY.
Author
Weston Berg (weberg@iastate.edu)
Date
November 14th, 2018