How nebulatte/text-based-dungeon-game works
This is a console-based, turn-based dungeon game. The player chooses a difficulty, enters a sequence of battles against random enemies and periodic bosses, and earns experience and stat increases after victories; play ends on defeat, exit, or reaching the difficulty’s kill goal. Combat combines player-selected and enemy-selected skills with composable damage, healing, and other effects. The graph reflects the shown runtime calls and README capabilities; unsampled enemy-selection details are represented only where the source index supports them.
Main entry points: Scene.java Dungeon Scene · Display.java Game Display · Main.java Game Loop · Battle.java Battle Loop
Components 14
Game Entry
- Game Loop
Main.java - Difficulty Setup
Difficulty.java
Dungeon Progression
- Dungeon Scene
Scene.java - Enemy Selection
EnemyType.java - Player Progression
Player.java
Combat System
- Battle Loop
Battle.java - Enemy Behavior
Enemy.java - Combatant State
Entity.java - Skill Mechanics
Skill.java - Combat Effects
Effect.java - Stamina Error
InsufficientStamina.java
Console Interface
- Game Display
Display.java - Input Utilities
Utils.java
Other components
- Player
Connections 25
- Player → Game Loop: plays via
Main.java - Game Loop → Game Display: shows menus
Main.java - Game Loop → Input Utilities: reads choices
Main.java - Game Loop → Difficulty Setup: selects difficulty
Main.java - Difficulty Setup → Dungeon Scene: configures scene
Difficulty.java - Game Loop → Dungeon Scene: starts scene
Main.java - Dungeon Scene → Player Progression: creates player
Scene.java - Dungeon Scene → Enemy Selection: selects enemies
Scene.java - Dungeon Scene → Battle Loop: runs battle
Scene.java - Dungeon Scene → Player Progression: awards progression
Scene.java - Dungeon Scene → Game Display: shows outcomes
Scene.java - Enemy Selection → Enemy Behavior: creates enemies
EnemyType.java - Battle Loop → Player Progression: uses skills
Battle.java - Battle Loop → Enemy Behavior: dispatches turns
Battle.java - Battle Loop → Game Display: shows combat
Battle.java - Battle Loop → Input Utilities: reads skill choice
Battle.java - Player Progression → Combatant State: extends
Player.java - Enemy Behavior → Combatant State: extends
Enemy.java - Combatant State → Skill Mechanics: executes skill
Entity.java - Skill Mechanics → Combat Effects: applies effects
Skill.java - Combat Effects → Combatant State: changes combatant
Effect.java - Skill Mechanics → Stamina Error: throws on shortage
Skill.java - Game Display → Skill Mechanics: renders skills
Display.java - Game Display → Combat Effects: renders messages
Display.java - Game Display → Difficulty Setup: lists options
Display.java