Files

71 lines
2.0 KiB
Markdown

# Java Knight - Turn-Based RPG Game
## Project Overview
This project is a simple turn-based RPG game written in Java.
The player can choose a character and fight different enemies such as Skeletons, Goblins, Vampires, and a final Dragon boss.
The game focuses on basic object-oriented programming concepts like inheritance, abstraction, and interfaces.
---
## Features
- Choose between different character classes:
- Knight
- Assassin
- Wizard
- Turn-based combat system
- Different enemy types with unique behaviors
- HP and MP system for player and enemies
- Weapon and armor system
- Experience points (XP) and leveling up
- Special abilities for each character
- Simple map progression (Village, Forest, Castle)
---
## Game Mechanics
### Combat System
Each turn, the player can choose one action:
- Light Attack (no MP cost)
- Heavy Attack (uses MP)
- Defend (reduces incoming damage)
- Heal (restores HP but uses MP)
- Special Ability (strong attack with MP cost)
Enemies also attack automatically after the player's turn.
---
### Level System
- Players gain XP after defeating enemies
- After reaching a certain XP threshold, the player levels up
- Leveling up increases HP and MP
---
### Items System
- Weapons increase attack power
- Armor reduces incoming damage and can break after repeated use
- Keys are collected by defeating specific enemies
---
## Object-Oriented Design
This project uses basic OOP principles:
- **Encapsulation**: All player stats are private with getters/setters
- **Inheritance**: Different player classes extend the base Player class
- **Polymorphism**: Enemies and players share the Entity interface
- **Abstraction**: Abstract Player class defines shared behavior
---
## Conclusion
In this project, I was able to build a simple text-based RPG game using basic Java concepts such as classes, inheritance, and interfaces. Through this project, I learned how different game mechanics like combat, leveling up, and inventory systems can be implemented using object-oriented programming.