]> jfr.im git - irc/gameservirc.git/blobdiff - gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp
Almost have FilePlayerDAO 100% working
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / GameLayer / GameObjects / PlayerGO.cpp
index d801dc80a300ac152366c9fe9f7d24dcdb987549..28206fa8de16e5eb2a3377c5b0ac91e31b040027 100644 (file)
@@ -5,17 +5,33 @@ using GameServ::GameLayer::GameObjects::ArmorGO;
 #include <GameServ/GameLayer/GameObjects/WeaponGO.h>\r
 using GameServ::GameLayer::GameObjects::WeaponGO;\r
 \r
-#include <boost/shared_ptr.hpp>\r
+#include <boost/smart_ptr/shared_ptr.hpp>\r
 using boost::shared_ptr;\r
 \r
-#include <exception>\r
-using std::exception;\r
+#include <GameServ/GameServException.h>\r
+using GameServ::Exceptions::GameServException;\r
+\r
+#include <boost/date_time/posix_time/posix_time.hpp>\r
+using boost::posix_time::ptime;\r
+\r
+#include <vector>\r
+using std::vector;\r
+#include <string>\r
+using std::string;\r
+#include <algorithm>\r
+using std::find;\r
+using std::sort;\r
 \r
 PlayerGO::PlayerGO() : GameObject(), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1),\r
 mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("")\r
 {\r
 }\r
 \r
+PlayerGO::PlayerGO(const string &Id) : GameObject(Id), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1),\r
+mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("")\r
+{\r
+}\r
+\r
 PlayerGO::~PlayerGO()\r
 {\r
 }\r
@@ -62,6 +78,16 @@ void PlayerGO::Gold(const unsigned long int &value)
        mGold = value;\r
 }\r
 \r
+unsigned long int PlayerGO::Bank(void) const\r
+{\r
+       return mBank;\r
+}\r
+\r
+void PlayerGO::Bank(const unsigned long int &value)\r
+{\r
+       mBank = value;\r
+}\r
+\r
 int PlayerGO::Health(void) const\r
 {\r
        return mHealth;\r
@@ -128,6 +154,26 @@ void PlayerGO::PlayerFights(const int &value)
        mPlayerFights = value;\r
 }\r
 \r
+bool PlayerGO::Alive(void) const\r
+{\r
+       return mAlive;\r
+}\r
+\r
+void PlayerGO::Alive(const bool &value)\r
+{\r
+       mAlive = value;\r
+}\r
+\r
+bool PlayerGO::FoughtMaster(void) const\r
+{\r
+       return mFoughtMaster;\r
+}\r
+\r
+void PlayerGO::FoughtMaster(const bool &value)\r
+{\r
+       mFoughtMaster = value;\r
+}\r
+\r
 shared_ptr<WeaponGO> PlayerGO::Weapon(void) const\r
 {\r
        return mWeapon;\r
@@ -150,9 +196,91 @@ void PlayerGO::Armor(shared_ptr<ArmorGO> spArmor)
 \r
 void PlayerGO::Use(shared_ptr<ItemGO> spItem)\r
 {\r
-       throw exception("Undefined function PlayerGO::Use()");\r
+       throw GameServException("Undefined function.", __FILE__, __LINE__);\r
+}\r
+\r
+void PlayerGO::Undo(shared_ptr<ItemGO> spItem)\r
+{\r
+       throw GameServException("Undefined function.", __FILE__, __LINE__);\r
+}\r
+\r
+void PlayerGO::Password(const string &value)\r
+{\r
+       mPassword = value;\r
+}\r
+\r
+string PlayerGO::Password(void) const\r
+{\r
+       return mPassword;\r
 }\r
 \r
+void PlayerGO::LastLogin(const ptime &value)\r
+{\r
+       mLastLogin = value;\r
+}\r
 \r
+ptime PlayerGO::LastLogin(void) const\r
+{\r
+       return mLastLogin;\r
+}\r
 \r
+void PlayerGO::Inventory(const vector< shared_ptr<ItemGO> > &items)\r
+{\r
+       mItems.clear();\r
+       mItems.insert(mItems.begin(), items.begin(), items.end());\r
+}\r
+\r
+vector< shared_ptr<ItemGO> > PlayerGO::Inventory(void) const\r
+{\r
+       return mItems;\r
+}\r
+\r
+void PlayerGO::AddItemToInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+{\r
+       for (int x = 0; x < Number; ++x)\r
+       {\r
+               shared_ptr<ItemGO> item = shared_ptr<ItemGO>(new ItemGO(*spItem->Clone()));\r
+               mItems.push_back(item);\r
+       }\r
+}\r
+\r
+void PlayerGO::RemoveItemFromInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+{\r
+       vector< shared_ptr<ItemGO> >::iterator iter;\r
+       for (int x = 0; x < Number; ++x)\r
+       {\r
+               iter = find(mItems.begin(), mItems.end(), spItem);\r
+               if (iter != mItems.end())\r
+               {\r
+                       mItems.erase(iter);\r
+               }\r
+               else\r
+               {\r
+                       break;\r
+               }\r
+       }\r
+}\r
+\r
+\r
+bool PlayerGO::operator !=(const PlayerGO &right) const\r
+{\r
+       return !(*this == right);\r
+}\r
+\r
+bool PlayerGO::operator ==(const PlayerGO &right) const\r
+{\r
+       return GameObject::operator == (right) &&\r
+               mName == right.mName && right.mArmor == mArmor &&\r
+               right.mDefense == mDefense && right.mExperience == mExperience &&\r
+               right.mForestFights == mForestFights && right.mGold == mGold &&\r
+               right.mHealth == mHealth && right.mMaxHealth == mMaxHealth &&\r
+               right.mLevel == mLevel && right.mPassword == mPassword && \r
+               right.mPlayerFights == mPlayerFights && \r
+               right.mStrength == mStrength && right.mWeapon == mWeapon;\r
+}\r
+\r
+PlayerGO *PlayerGO::Clone(void) const\r
+{\r
+       return new PlayerGO(*this);\r
+}\r
 \r