void Colosseum::userBuild(Pokemon& p) //function used to build Pokemon { cout << "Please name your Pokemon:" << endl; string name; p.set_name(name); cout << "How many hit points will it have? (1-50):" << endl; int hp; p.set_hp(hp); int hp1=p.get_hp(); while(hp1>50 || hp1<1) { cout << "Sorry. The hit points should be between (1-50)" << endl; p.set_hp(hp); hp1=p.get_hp(); } cout << "Split fifty points between attack level and defense level" << endl; cout << "Enter your attack level (1-49):" << endl; int att; p.set_attackLvl(att); int att1=p.get_attackLevel(); while(att1>49 || att1<1) { cout << "Sorry. The attack level must be between 1 and 49)" << endl; p.set_attackLvl(att); att1=p.get_attackLevel(); } int g=49-att1; cout << "Give a defense level (from 1 to " << g << "): " << endl; int def; p.set_deflvl(def); int def1=p.get_defLevel(); while(g<def1 || def1<1) { cout << "Sorry. The defense level must be between 1 and " << g << ": " << endl; p.set_deflvl(def); def1=p.get_defLevel(); } }
bool Colosseum::attack(const Pokemon& attacker, Pokemon& defender) //function that deals with attacks and lowers hit points if hit { bool returnValue=false; cout << attacker.get_name() << " is attacking " << defender.get_name() << endl; int attbonus=d20.roll(); int defbonus=d20.roll(); cout << attacker.get_name() << " rolls an attack bonus of " << attbonus << endl; cout << defender.get_name() << " rolls an defense bonus of " << defbonus << endl; int total_att=attbonus+attacker.get_attackLevel(); int total_def=defbonus+defender.get_defLevel(); int damage; if(total_att>total_def) { int roll1=d6.roll(); int roll2=d6.roll(); int roll3=d6.roll(); damage=roll1+roll2+roll3; cout << "The attack hits dealing 3-D6 damage!" << endl; cout << "The rolls are: " << roll1 << " " << roll2 << " " << roll3 << " totalling: " << damage << " damage!" << endl; defender.reduceHP(damage); if(defender.get_hp() <=0 ) { returnValue=true; } else { returnValue=false; cout << defender.get_name() << " has " << defender.get_hp() << " hit points left." << endl; } } else { damage=0; cout << "The attack is missed!" << endl; } return returnValue; }