using GameServ::GameLayer::GameObjects::ArmorGO;\r
#include <GameServ/GameLayer/GameObjects/WeaponGO.h>\r
using GameServ::GameLayer::GameObjects::WeaponGO;\r
+#include <GameServ/GameLayer/GameObjects/PotionGO.h>\r
+using GameServ::GameLayer::GameObjects::PotionGO;\r
+\r
+#include <GameServ/GameServException.h>\r
+using GameServ::Exceptions::GameServException;\r
+\r
+#include <GameServ/Types.h>\r
+using GameServ::Types::ObjectTypes;\r
\r
#include <boost/smart_ptr/shared_ptr.hpp>\r
using boost::shared_ptr;\r
+using boost::shared_static_cast;\r
\r
-#include <GameServ/GameServException.h>\r
-using GameServ::Exceptions::GameServException;\r
+#include <boost/algorithm/string.hpp>\r
+#include <boost/format.hpp>\r
+using boost::str;\r
+using boost::format;\r
\r
#include <boost/date_time/posix_time/posix_time.hpp>\r
using boost::posix_time::ptime;\r
mArmor = spArmor;\r
}\r
\r
-void PlayerGO::Use(shared_ptr<ItemGO> spItem)\r
-{\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
return mItems;\r
}\r
\r
-void PlayerGO::AddItemToInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+void PlayerGO::AddItemToInventory(shared_ptr<ItemGO> spItem)\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
+ mItems.push_back(spItem);\r
}\r
\r
-void PlayerGO::RemoveItemFromInventory(shared_ptr<ItemGO> spItem, const int &Number)\r
+void PlayerGO::RemoveItemFromInventory(shared_ptr<ItemGO> spItem)\r
{\r
vector< shared_ptr<ItemGO> >::iterator iter;\r
- for (int x = 0; x < Number; ++x)\r
+ iter = find(mItems.begin(), mItems.end(), spItem);\r
+ if (iter != mItems.end())\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
+ mItems.erase(iter);\r
}\r
}\r
\r
return new PlayerGO(*this);\r
}\r
\r
+ObjectTypes::ObjectType PlayerGO::ObjectType(void) const\r
+{\r
+ return ObjectTypes::Player;\r
+}\r