Episode 3.5: Interfaces - Usable for Skills & Effects
Goal: Introduce interfaces as a second form of abstraction and use them to unify actions like using skills or applying effects.
Goal: Introduce interfaces as a second form of abstraction and use them to unify actions like using skills or applying effects.
Goal: Reflect on what we’ve built, review OOP principles applied, and explore ways to take this project further.
Goal: Integrate StunEffect into the turn system so it actually prevents actions when active.
Goal: Build a real combat loop where the player battles a bot. The bot will attack or use a skill randomly.
Goal: Implement a flexible StatusEffect system using inheritance and polymorphism, allowing heroes to gain and process effects during battle.
Goal: Use the Factory Pattern to create heroes by name instead of using new manually. This helps scalability and readability.
Goal: Use a List<Hero>' to store all available champions and allow the player to choose one before the battle begins.
Goal: Implement the Skill system using inheritance and polymorphism, and leverage the Usable interface introduced in Episode 3.5
Goal: Learn how to use abstract classes to enforce that all heroes implement key behaviors while allowing flexibility in implementation.
Goal: Learn how to apply inheritance by creating different types of heroes like Warrior and Mage. We will start from a simple base class Hero (concrete class) and extend it.