A boring textadventure.
Install the latest dotnet or latest LTS version.
Open this directory (with the Zuul.csproj file) in the terminal and type:
dotnet run
Zuul is a text-based adventure game where you explore the mysterious and eerie Tower of Fear Nexus. As the protagonist, Crane Ravenlock, you must navigate through rooms, solve puzzles, and uncover the truth while battling the psychological toll of your journey.
In Zuul, you play as Crane Ravenlock, a former investigative journalist haunted by the horrors he uncovered. Trapped in the Tower of Fear Nexus, you must explore its rooms, collect items, and solve puzzles to escape. But beware—the tower is alive, and it will do everything to keep you trapped.
- Exploration: Navigate through interconnected rooms, each with unique descriptions and challenges.
- Inventory Management: Collect, use, and drop items to progress through the game.
- Health System: Manage your health as you face penalties for certain actions.
- Command-Based Gameplay: Interact with the game using text commands.
- Dynamic Rooms: Each room has its own description, exits, and items to discover.
- Time-Based Challenges: Certain rooms, like the Exit Hall, impose time-based penalties.
- Install the latest .NET SDK (or the latest LTS version).
- Clone or download this repository to your local machine.
- Open a terminal and navigate to the project directory (where the
Zuul.csprojfile is located). - Run the following command to start the game:
dotnet run
The game uses a command-based system. Here are the available commands:
| Command | Description |
|---|---|
help |
Displays a list of valid commands. |
go <direction> |
Moves the player to another room in the specified direction (e.g., go north). |
look |
Displays the items in the current room's chest. |
status |
Shows the player's current health and inventory status. |
take <item> |
Picks up an item from the room's chest and adds it to your backpack. |
drop <item> |
Drops an item from your backpack into the room's chest. |
use <item> |
Uses an item from your backpack. |
quit |
Ends the game. |
- Each room has a unique description, exits, and a chest for storing items.
- Use the
go <direction>command to move between rooms.
- The player has a backpack with a limited weight capacity.
- Use the
take,drop, andusecommands to manage your inventory.
- The player starts with 100 health points.
- Certain actions, like entering specific rooms, reduce health.
- Use healing items to restore health.
- Exit Hall: This room imposes a time-based penalty, reducing your health by 5 points per second. Use the key to escape.
The project is organized as follows:
src/
├── Command.cs # Represents a command entered by the player.
├── CommandLibrary.cs # Manages and validates valid commands.
├── Game.cs # Main game logic, including the game loop and command processing.
├── Inventory.cs # Represents an inventory system for storing items.
├── Item.cs # Represents individual items in the game.
├── Parser.cs # Parses player input into commands.
├── Player.cs # Represents the player, including health and inventory.
├── Room.cs # Represents rooms in the game world.
Program.cs # Entry point of the application.
README.md # Documentation for the project.
The following UML diagram represents the structure of the project, including the relationships between the main classes:
You can open the UML.graphml file in a tool like yEd Graph Editor to view and edit the diagram.
We welcome contributions to improve Zuul! Here's how you can help:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature-name
- Make your changes and commit them:
git commit -am "Add feature-name" - Push your changes to your fork:
git push origin feature-name
- Open a pull request to the main repository.
This project is licensed under the MIT License. See the LICENSE file for details.
Enjoy exploring the Tower of Fear Nexus and uncovering its secrets!