Files
HW-04-JAVA-KNIGHT/Readme_Pictures

🐉 The Curse of the Dragon - Complete RPG Game

Table of Contents

  1. Project Overview
  2. Game Story
  3. Technical Architecture

Project Overview

The Curse of the Dragon is a fully-featured Java RPG (Role-Playing Game) built with Object-Oriented Programming principles. The game features turn-based combat, item collection, leveling systems, and a complete progression arc from humble beginnings to an epic dragon boss battle.

Key Features

  • 3 Playable Classes: Knight, Assassin, Wizard
  • 4 Enemy Types: Goblin, Skeleton, Vampire, Dragon
  • Key Collection System: 3 unique keys with 20% drop rates
  • Leveling System: XP-based progression with stat increases
  • Item System: Healing potions and mana potions
  • ANSI Color Output: Beautiful console visuals
  • Complete Game Loop: Exploration, combat, progression
  • Boss Battle: Epic dragon fight with unique mechanics

Game Story

"A dark curse has befallen the land. The Ancient Dragon Ember has risen from its slumber, spreading fear and darkness across the realm. The only way to break the curse is to collect the three ancient keys - held by the Goblin King, the Skeleton Lord, and the Vampire Count - and confront the Dragon in its castle. Will you be the hero who saves the kingdom?"


Technical Architecture

Design Patterns Used

1. Strategy Pattern

Each enemy type implements its own attack strategy:

// Goblin - Basic attack
@Override
public void attack(Entity target) {
    System.out.println(name + " swings a crude club!");
    target.receiveAttack(damage, false);
}

// Skeleton - Can miss
@Override
public void attack(Entity target) {
    if (Math.random() < 0.1) {
        System.out.println(name + " attacks but misses!");
        return;
    }
    super.attack(target);
}

// Vampire - Lifesteal
@Override
public void attack(Entity target) {
    target.receiveAttack(totalDamage, false);
    int healAmount = (int)(totalDamage * 0.3);
    heal(healAmount);
}