Overview

You will build a turn-based console game in Java, inspired by League of Legends (LoL). The game allows the player to:

This project demonstrates all 4 principles of Object-Oriented Programming (OOP):

It also integrates:

Learning Roadmap – 10 Episodes

Episode Topic Learning Objectives
1 Game structure setup Create the base folder and file structure. Write the Main class and display a welcome screen.
2 Implement subclasses (Inheritance) Create specific hero types like Warrior, Mage, etc., inheriting from Hero.
3 Define Hero class (Abstraction) Learn how to use abstract classes and interfaces to define common hero behavior.
4 Add Skills and Effects Build a Skill class and apply it to heroes. Use simple logic to deal damage.
5 Use Collections (List<Hero>) Store available champions in a list and allow player to select one.
6 ChampionFactory (Factory Pattern) Implement a factory class to instantiate heroes by name dynamically.
7 Status Effects (Stun, Burn, Heal) Create a StatusEffect interface and apply real-time effects to heroes.
8 Basic Combat System Implement a turn-based combat loop between player and bot.
9 Add a Bot AI Create a BotHero class with basic decision-making to simulate PvE.
10 Polish and Extend Improve game experience, refactor code, add more heroes, skills, and effects. Prepare for deployment or further expansion.

Key Concepts Practiced