diff options
| author | Ryan Symons <47405201+rsymons22@users.noreply.github.com> | 2025-10-17 19:56:07 -0400 |
|---|---|---|
| committer | Ryan Symons <47405201+rsymons22@users.noreply.github.com> | 2025-10-17 19:56:07 -0400 |
| commit | 0e4b405d9c9555a2cbd7138258ad6a8f9884789e (patch) | |
| tree | ac090ee4db6643388d7c61970bbca5567cced4d0 /docs | |
| parent | Yusuf (diff) | |
| download | DungeonCrawl-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.md | 21 |
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. |