A Java-based turn-based combat game where the player controls a character named Runa who battles against various monsters using physical and magical abilities. This project was created as a programming final task at KIT.
- game: Core game engine and runner
- gamemodelling:
- abilities: Combat abilities (offensive, non-offensive)
- entities: Game characters (Runa and monsters)
- states: Game state management using State pattern
- UI: User interface components
- Turn-based combat system
- Character class system for Runa
- Various monster types with unique abilities
- Focus point resource management
- Physical and magical damage types
- Defensive abilities (Parry, Reflect, Block, Deflect)
- Java Development Kit (JDK) 8 or higher
- Command line terminal
- Navigate to the project root directory
- Create a bin directory for compiled classes:
mkdir -p bin - Compile all Java files:
This compiles the main class and all its dependencies.
javac -d bin -cp src src/game/GameRunner.java
Run the game using:
java -cp bin game.GameRunner
The game progresses through different states:
- Level initialization
- Runa's turn (player chooses abilities)
- Monster's turn (AI-controlled)
- Post-fight resolution
- Proceed to next level or game over
The game is controlled through the command line. Follow the prompts to select abilities and make decisions during combat. The game will display the current state of Runa and the monster, including health points, focus points, and available abilities.
- Enter numbers to select options
- Multiple selections can be made using comma-separated values (e.g., "1,3,4")
- Enter "quit" to exit the game at any prompt
- Empty input (just pressing Enter) is sometimes allowed for "no action"