#ifndef MOBILE_SUIT_H #define MOBILE_SUIT_H #include #include #include // abs using namespace std; class mobile_suit { private: string model; string pilot; int x; int y; int hp; int maxhp; int energy; int maxenergy; int armor; int beamDamage; int meleeDamage; public: mobile_suit(); mobile_suit(const string& modelName, const string& pilotName, int startx, int starty); bool isOperational() const; void move(int dx, int dy); void recharge(int amount); void takeDamage(int rawDamage); void repair(int amount); void beamShot(mobile_suit& target); void saberStrike(mobile_suit& target); // distance -> operator- friend int operator-(const mobile_suit& a, const mobile_suit& b); friend void duel(mobile_suit& a, mobile_suit& b); // IMPORTANT FIX: operator<< must be a friend to access private members friend ostream& operator<<(ostream& os, const mobile_suit& ms); }; #endif