/* User class This contains everything needed to have a "player" */ #include "user.h" #include User::User() { this->init(); } User::User(std::string name, std::string realname) { uid = 0; nick = name; real = realname; experience = 0; laston = 0; armor = 1; armorpoints = 8; shield = 0; shieldpoints = 0; shieldsup = 0; hitpoints = 4; gun = 1; metal = 0; fuel = 10; dirt = true; } User::User(int uuid, std::string name, std::string realname, int exp, int lo, int a, int ap, int s, int sp, int su, int hp, int g, int m, int f) { uid = uuid; nick = name; real = realname; experience = exp; laston = lo; armor = a; armorpoints = ap; shield = s; shieldpoints = sp; shieldsup = su; hitpoints = hp; gun = g; metal = m; fuel = f; dirt = false; } void User::init(void) { uid = 0; nick = "Unknown"; real = "Unknown"; experience = 0; laston = 0; armor = 1; armorpoints = 8; shield = 0; shieldpoints = 0; shieldsup = 0; hitpoints = 4; gun = 1; metal = 0; fuel = 10; dirt = false; } bool User::dirty(void) {return dirt;} // How much metal to add one more cost? int User::calcArmor(void) {return (3 * (armor + 1));} int User::calcShield(void) {return (6 * (shield + 1));} int User::calcGun(void) {return (4 * (gun + 1));} // Calc Max value int User::calcHP(void) {return (gun + armor + shield + 2);} int User::calcSP(void) {return (shield * 3);} int User::calcAP(void) {return (armor * 8);} // Combat System void User::regen(void) { if(shieldsup != 0) { dirt = true; shieldsup -= 1; } if(shieldsup != 0) { dirt = true; shieldpoints += 1; } else { dirt = true; shieldpoints += shield; } if(shieldpoints > calcSP()) { dirt = true; shieldpoints = calcSP(); } } void User::repair(bool docked) { int amount; if(docked) { amount = 4; } else { amount = 2; } if(armorpoints < calcAP()) { if(metal != 0) { dirt = true; metal -= 1; armorpoints += amount; if(armorpoints > calcAP()) { armorpoints = calcAP(); } } } } int User::takeDamage(int dmg) { if(shieldsup == 0) { if(shieldpoints >= dmg) { // Shields Absorbed all damage dirt = true; shieldpoints -= dmg; return 0; } else { // Shields took some damage but more damage to take dirt = true; dmg -= shieldpoints; shieldpoints = 0; shieldsup += (shield + 2); } } if(dmg > 0) { if(armorpoints >= dmg) { // Armor took all remaining damage dirt = true; armorpoints -= dmg; return 0; } else { // Armor took some damage but more damage to take dirt = true; dmg -= armorpoints; armorpoints = 0; } } if(dmg > 0) { if(hitpoints > dmg) { // Hull took all remaining damage dirt = true; hitpoints -= dmg; return 0; } else { // Hull took some damage but more needed to be taken // Our ship is :boom: space debris. dirt = true; int temp = dmg; dmg -= hitpoints; hitpoints -= temp; temp = 0; return dmg; } } } // Adds and Removes void User::addEXP(int amount) {dirt = true; experience += amount;} void User::rmEXP(int amount) {dirt = true; experience -= amount;} void User::addMetal(int amount) {dirt = true; metal += amount;} void User::rmMetal(int amount) {dirt = true; metal -= amount;} void User::addFuel(int amount) {dirt = true; fuel += amount;} void User::rmFuel(int amount) {dirt = true; fuel -= amount;} void User::rmLaston(int amount) {dirt = true; laston -= amount; if(laston < 0) {laston = 0;}} void User::addHP(int amount) {dirt = true; hitpoints += amount;} void User::addGun(int amount) {dirt = true; gun += amount; addHP(1);} void User::addArmor(int amount) {dirt = true; armor += amount; armorpoints += (amount * 8); addHP(1);} void User::addShield(int amount) {dirt = true; shield += amount; if(shieldsup == 0) {shieldpoints += (amount * 1);} else {shieldpoints += (amount * 3);} addHP(1);} void User::rmSU(int amount) {dirt = true; shieldsup -= amount; if(shieldsup > 0) {shieldsup = 0;}} // Sets void User::set_dirt(bool val) {dirt = val;} void User::set_uid(int val) {uid = val;} void User::set_experience(int val) {experience = val;} void User::set_gun(int val) {gun = val;} void User::set_armor(int val) {armor = val;} void User::set_armorpoints(int val) {armorpoints = val;} void User::set_shield(int val) {shield = val;} void User::set_shieldpoints(int val) {shieldpoints = val;} void User::set_shieldsup(int val) {shieldsup = val;} void User::set_hitpoints(int val) {hitpoints = val;} void User::set_laston(int val) {laston = val;} void User::set_nick(std::string val) {nick = val;} void User::set_real(std::string val) {real = val;} void User::set_metal(int val) {metal = val;} void User::set_fuel(int val) {fuel = val;} // Gets bool User::get_dirt(void) {return dirt;} int User::get_uid(void) {return uid;} int User::get_experience(void) {return experience;} int User::get_gun(void) {return gun;} int User::get_armor(void) {return armor;} int User::get_armorpoints(void) {return armorpoints;} int User::get_shield(void) {return shield;} int User::get_shieldpoints(void) {return shieldpoints;} int User::get_shieldsup(void) {return shieldsup;} int User::get_hitpoints(void) {return hitpoints;} int User::get_laston(void) {return laston;} int User::get_metal(void) {return metal;} int User::get_fuel(void) {return fuel;} std::string User::get_nick(void) {return nick;} std::string User::get_real(void) {return real;}