Project Requirements:
You will be writing new classes based upon the Fighter / Power classes from project 1. The new classes should be implemented in a way that facilitates development of a Pokemon Go battling game, based upon the background information provided. You must:
- Write a new class for Fast Moves
- Write a new class for Charge Moves
- Write a new class for Pokemon
- Write a new class for Trainer
- Use real or near-real formulas for Pokemon Go-type damage calculations and HP calculation.
- Write a main function which tests all classes and functions.
- Document your functions / variables / test cases with comments.
- Use the 6 pokemon from the following list along with the powers of the 6 you choose. Use the real base attributes and their real power lists on these tables.
- Note: your damage calculations should work even if I make two completely different pokemon with new moves etc. It will need to work for different varieties of move and type combinations.
- Use the interface (.h, header) files.
- That is, the contents of the .h files including the class definitions, the purpose, preconditions and postconditions of functions, the prototypes for public member functions, and the private member variables.
- Do not use "goto" statements in this or any other assignment.
- Don't use "break" to get out of a loop. Only time you should use break is for switch / case statements. Control loops with the loop condition statements / flags instead.
030 2.50 9 Each Pokemon Species in Pokemon GO has a set of hidden Base Attributes (base ATK, baseDEF and baseSTA) which are used in calculating HP, outgoing damage, and incoming damage. Each individual Pokemon also has a set of visible Individual Values (IV) (IVATK, iVDEF, ISTA) which are also used in the calculation of HP, outgoing damage, and incoming damage Individual Values each range from 0 to 15. Each Pokemon has a level ranging from 1 to 40. In the real pokemon GO game, levels increment by 0.5. For this assignment, you can simply have them increment by 1 if you wish. The pokemon's level is used to look up a "CP Multiplier or CPM from a table of values found here: Counter Counte Attack Move PVP Base PVP Charge Attack Move NETE Attack, Type Vulnerabiliter resistent Astec AT Defense Der STA1 HP OPM Fast Moves Duration Energy Delta Pich Cecidown Gound Charge Moves Energy Ener Cooldown stamine. Esse Searc Electric 112 useles Quick 7 Rye 45 se numbers between stor sucer Sock 1 wischer 900 -49 2.60 between Character Thunderbolt 90 as 259 Horst penyimlForme Psychia BE Fert 349 STE 137 Cerem 1.30 Hiper Bean 190 -90 3.80 Der Picnic Zen Hestbut: 2 6 Thunderbot 90 -55 2.59 Sort Pano Boost 10 400 squirte Water Electric Fire 94 111 127 Trore D 2 0.50 2.60 Gas re Bubble 2 1 1.20 90 100 Bree Water Pulse 70 -50 320 WE put Fairy, Nerms I Poison Eur 30 23 Feint Atter 1 6 0.90 Syno al BC -50 239 Dark Pound 1 09 Deine Gear 110 -90 2.90 Dragon psomming voice 70 390 Ghost Clefair Fairy, Nort Peisan Bus 107 CE Pound 1 0.50 Body San BC 192 See Dark Zen Halbutt 2 6 1.30 Diarming Voice 70 -9 3.90 | Dragon Montest 290 AU . 140 118 118 2.60 2:10 230 Sultas Grass Poison , Fire Electric 33 Tecke 2 0.50 Power Whis 90 -50 Pynt Fairy Vine whip 1 0.00 Jedlom 30 Fett Sucie Bomb BC -50 Psychic Gruss Weiter This table of values can be stored in a constant array and indexed by the pokemon's level - 1. For example, CPM[7] would give the appropriate CPM value for a level 8 pokemon. Each Pokemon has a Hit Point score (HP) which tracks the amount of damage a Pokemon can suffer in battle before feigning. The total HP is calculated by the formula HP = floor( (baseSTA + ivSTA). CPM[level-1]) In C++, the floor function can be used from the