Repository files navigation
An Object Oriented Approach to the Pokemon World to demonstrate the OOP concepts and SOLID principles in action.
represents a real world Pokemon.
has Name, Ability, Level, Attacks, Maximum and Current Health as its attributes.
represents an ability that a Pokemon possess.
has Name and Attack Unlocker as its attributes.
represents an Attack a Pokemon has in its arsenal.
has Name, Message and Intensity as its attributes.
represents a Potion a Pokemon can use to heal itself.
has Name and Multiplier as its attributes.
represents a Breeder who collects Pokemons.
has Name, Pokemons and Potions as its attributes.
has a repository of Attacks of all abilities.
uses a singleton pattern.
returns the appropriate Attack when its name is provided.
has a repository of Potions of all abilities.
uses a singleton pattern.
returns the appropriate Potion when its name is provided.
unlocks attacks for a given Pokemon based on its levels.
has a mapping of Pokemon Level to Attacks.
has a set of child attack unlockers based on the Pokemon Ability.
follows a singleton pattern.
has a mapping of Ability and its advantage over other Abilities.
used to determine the attack effect on a given Pokemon.
You can’t perform that action at this time.