summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRyan Symons <47405201+rsymons22@users.noreply.github.com>2025-10-17 19:56:07 -0400
committerRyan Symons <47405201+rsymons22@users.noreply.github.com>2025-10-17 19:56:07 -0400
commit0e4b405d9c9555a2cbd7138258ad6a8f9884789e (patch)
treeac090ee4db6643388d7c61970bbca5567cced4d0 /docs
parentYusuf (diff)
downloadDungeonCrawl-0e4b405d9c9555a2cbd7138258ad6a8f9884789e.tar.gz
DungeonCrawl-0e4b405d9c9555a2cbd7138258ad6a8f9884789e.tar.bz2
DungeonCrawl-0e4b405d9c9555a2cbd7138258ad6a8f9884789e.zip
Added enemy concepts and updated some info
Diffstat (limited to 'docs')
-rw-r--r--docs/Proposal.md21
1 files changed, 15 insertions, 6 deletions
diff --git a/docs/Proposal.md b/docs/Proposal.md
index ce24093..39d5100 100644
--- a/docs/Proposal.md
+++ b/docs/Proposal.md
@@ -19,7 +19,7 @@ into the ever-changing depths.
### Player Input
- Directional Movement: The player can move up, down, left, or right across a tile-based dungeon map using WASD or arrow keys.
-- Combat Actions: On encountering an enemy, the player can choose to attack or use an item.
+- Combat Actions: The player can use a mapped key to perform an attack in the direction of player movement.
- Item Interaction: The player can pick up items, manage inventory, and use consumables like potions.
### Gameplay Loop
@@ -31,6 +31,15 @@ into the ever-changing depths.
- After winning, the player collects loot and continues exploring until finding the staircase to the next floor.
- Difficulty increases as the player descends deeper.
+### Preliminary Dungeon Enemy Concepts
+- **Zombie:** Slow Movement | Melee | Moderate HP
+- **Skeleton:** Slow Movement | Ranged | Low HP
+- **Spider:** Fast Movement | Melee | Moderate HP
+- **Ghost:** Slow Movement | Melee | Moderate HP | Can move through walls/air tiles
+- **Goblin:** Fast Movement | Melee | Low HP | When causing damage to the player, has a chance to make them drop an item
+- **Troll:** Slow Movement | Melee | High HP
+- **Slime:** Fast Movement | Ranged | Moderate HP
+
## Components
### **Game Binary Crate**
@@ -52,12 +61,12 @@ Core functionality for interacting with a `Dungeon` data structure and its compo
pub rng: StdRng,
}
```
- - ```pub fn new_seeded(seed: u64) -> Self``` Create a new dungeon with it's components determanistically.
+ - ```pub fn new_seeded(seed: u64) -> Self``` Create a new dungeon with its components deterministically.
- ```pub fn update(&mut self, action: Action)``` Applies a player or AI action to the game state.
- ```pub fn next_floor(&mut self)``` Generates a new Floor when the player descends stairs.
- **[Map Module](dungeon\src\map.rs)** - Structures for the dungeon game map including the current `Floor`, map `Tile`, and `Entity`.
- `Floor` - Current playing grid of the dungeon. It contains the tiles of the grid, and the starting position of the player.
- - ```pub fn generate_seeded(_seed: u64) -> Self``` Genreates a dungeon `Floor` using wave function collapse provided with a seed. The provided seed is used for randomness in the wave function collapse algorithm.
+ - ```pub fn generate_seeded(_seed: u64) -> Self``` Generates a dungeon `Floor` using wave function collapse provided with a seed. The provided seed is used for randomness in the wave function collapse algorithm.
- `Tile` - Enum that represents what is (or is not) at any given spot in the dungeon grid.
```rust
pub enum Tile {
@@ -109,7 +118,7 @@ pub struct CombatResult {
```
- ```pub fn calculate_damage(atk: i32, def: i32) -> i32``` — Core formula for combat outcomes.
- **[Position Module](dungeon\src\pos.rs)** - Structures for representation an entity or objects position and facing direction inside the dungeon grid.
- - `Direction` - Enum that representa the direction an entity or any position object is facing inside the dungeon map. Since the dungeon lives on a grid, there are only four possible directions.
+ - `Direction` - Enum that represents the direction an entity or any position object is facing inside the dungeon map. Since the dungeon lives on a grid, there are only four possible directions.
- `Pos` - 2D position inside the dungeon grid.
- ```pub const fn step(self, dir: Direction) -> Option<Self>``` Steps `Pos` one space in the `Direction` `dir`. Returns `None` if the position goes out of the map.
@@ -142,8 +151,8 @@ For our test libraries, we'll be sticking with the #[test] built-in functionalit
### Minimum Viable Product (MVP)
- Single floor procedural dungeon generation using WFC.
- Player movement and enemy spawning.
-- Turn-based combat with basic attack logic.
-- Simple boxes and circles as sprites
+- Real-time combat with collision logic.
+- Simple boxes and circles as sprites.
### Stretch Goals
- Multi-floor progression with increasing difficulty.