#ifndef __GS__ARMOR_H__\r
#define __GS__ARMOR_H__\r
\r
+#include <GameServ/GameLayer/GameObjects/GameObject.h>\r
+using GameServ::GameLayer::GameObjects::GameObject;\r
#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
using GameServ::GameLayer::GameObjects::ItemGO;\r
\r
-namespace GameServ { namespace GameLayer { namespace GameObjects\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects {\r
\r
class ArmorBO : public ItemGO\r
{\r
+public:\r
+ ArmorBO();\r
+ virtual ~ArmorBO();\r
+\r
+private:\r
};\r
\r
}}}\r
bool operator==(const GameObject &right) const;\r
bool operator!=(const GameObject &right) const;\r
\r
- private:\r
+ protected:\r
string mId;\r
friend class GameObjectIds_Eq;\r
};\r
#include <vector>\r
using std::vector;\r
\r
-namespace GameServ { namespace GameLayer { namespace GameObjects\r
-{\r
+namespace GameServ { namespace GameLayer { namespace GameObjects {\r
+\r
enum ItemType { NOTYPE, WEAPON, ARMOR, POTION };\r
\r
class ItemGO : public GameObject\r
\r
virtual ItemGO *Clone(void) const;\r
\r
- private:\r
+ protected:\r
string mName;\r
unsigned long int mPrice;\r
int mUses;\r
#include <GameServ/GameLayer/GameObjects/GameObject.h>\r
using GameServ::GameLayer::GameObjects::GameObject;\r
\r
+#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
+using GameServ::GameLayer::GameObjects::ItemGO;\r
+\r
+#include <GameServ/GameLayer/GameObjects/ArmorGO.h>\r
+#include <GameServ/GameLayer/GameObjects/WeaponGO.h>\r
+using GameServ::GameLayer::GameObjects::ArmorGO;\r
+using GameServ::GameLayer::GameObjects::WeaponGO;\r
+\r
#include <boost/shared_ptr.hpp>\r
using boost::shared_ptr;\r
\r
#include <string>\r
using std::string;\r
+#include <vector>\r
+using std::vector;\r
\r
namespace GameServ { namespace GameLayer { namespace GameObjects\r
{\r
class PlayerGO : public GameObject\r
{\r
public:\r
- Player();\r
- ~Player();\r
+ PlayerGO();\r
+ ~PlayerGO();\r
\r
//! Property get - Name\r
string Name(void) const;\r
//! Property get - Weapon\r
shared_ptr<WeaponGO> Weapon(void) const;\r
//! Property set - Weapon\r
- void Weapon(const shared_ptr<WeaponGO> spWeapon);\r
+ void Weapon(shared_ptr<WeaponGO> spWeapon);\r
+\r
+ //! Property get - Armor\r
+ shared_ptr<ArmorGO> Armor(void) const;\r
+ //! Property set - Armor\r
+ void Armor(shared_ptr<ArmorGO> spArmor);\r
\r
+ //! Use an Item\r
+ void Use(shared_ptr<ItemGO> spItem);\r
\r
private:\r
string mName;\r
string mPassword;\r
shared_ptr<WeaponGO> mWeapon;\r
shared_ptr<ArmorGO> mArmor;\r
+ vector< shared_ptr<ItemGO> > mInventory;\r
\r
};\r
}}} // GameServ::GameLayer::GameObjects\r
+#ifndef __GS__WEAPON_H__\r
+#define __GS__WEAPON_H__\r
+\r
+namespace GameServ { namespace GameLayer { namespace GameObjects {\r
+\r
+ class WeaponGO : public ItemGO\r
+ {\r
+ public:\r
+ WeaponGO();\r
+ WeaponGO(const string &name, const int &price, const int &uses, const int &strength, const int &defense, const int &maxhp);\r
+ ~WeaponGO();\r
+\r
+ private:\r
+ };\r
+\r
+}}}\r
+#endif
\ No newline at end of file
Name="GameObjects"\r
>\r
<File\r
- RelativePath=".\include\GameServ\GameLayer\GameObjects\Armor.h"\r
+ RelativePath=".\src\GameLayer\GameObjects\ArmorGO.cpp"\r
>\r
</File>\r
<File\r
- RelativePath=".\src\GameLayer\GameObjects\ArmorGO.cpp"\r
+ RelativePath=".\include\GameServ\GameLayer\GameObjects\ArmorGO.h"\r
>\r
</File>\r
<File\r
#include <vector>\r
using std::vector;\r
\r
+#include <boost/shared_ptr.hpp>\r
+using boost::shared_ptr;\r
+\r
ItemGO::ItemGO() : GameObject(), mName(""), mPrice(0), mUses(1), mType(NOTYPE)\r
{\r
mModifiers.resize(8);\r
+#include <GameServ/GameLayer/GameObjects/PlayerGO.h>\r
+using GameServ::GameLayer::GameObjects::PlayerGO;\r
+\r
+#include <boost/shared_ptr.hpp>\r
+using boost::shared_ptr;\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()\r
+{\r
+}\r
+\r
+string PlayerGO::Name(void) const\r
+{\r
+ return mName;\r
+}\r
+\r
+void PlayerGO::Name(const string &value)\r
+{\r
+ assert(!value.empty());\r
+ mName = value;\r
+}\r
+\r
+int PlayerGO::Level(void) const\r
+{\r
+ return mLevel;\r
+}\r
+\r
+void PlayerGO::Level(const int &value)\r
+{\r
+ assert(value > 0);\r
+ mLevel = value;\r
+}\r
+\r
+unsigned long int PlayerGO::Experience(void) const\r
+{\r
+ return mLevel;\r
+}\r
+\r
+void PlayerGO::Experience(const unsigned long int &value)\r
+{\r
+ mExperience = value;\r
+}\r
+\r
+unsigned long int PlayerGO::Gold(void) const\r
+{\r
+ return mGold;\r
+}\r
+\r
+void PlayerGO::Gold(const unsigned long int &value)\r
+{\r
+ mGold = value;\r
+}\r
+\r
+int PlayerGO::Health(void) const\r
+{\r
+ return mHealth;\r
+}\r
+\r
+void PlayerGO::Health(const int &value)\r
+{\r
+ assert(value >= 0);\r
+ mHealth = value;\r
+}\r
+\r
+int PlayerGO::MaxHealth(void) const\r
+{\r
+ return mMaxHealth;\r
+}\r
+\r
+void PlayerGO::MaxHealth(const int &value)\r
+{\r
+ assert (value >= 0);\r
+ mMaxHealth = value;\r
+}\r
+\r
+int PlayerGO::Strength(void) const\r
+{\r
+ return mStrength;\r
+}\r
+\r
+void PlayerGO::Strength(const int &value)\r
+{\r
+ assert (value > 0);\r
+ mStrength = value;\r
+}\r
+\r
+int PlayerGO::Defense(void) const\r
+{\r
+ return mDefense;\r
+}\r
+\r
+void PlayerGO::Defense(const int &value)\r
+{\r
+ assert(value > 0);\r
+ mDefense = value;\r
+}\r
+\r
+int PlayerGO::ForestFights(void) const\r
+{\r
+ return mForestFights;\r
+}\r
+\r
+void PlayerGO::ForestFights(const int &value)\r
+{\r
+ assert (value >= 0);\r
+ mForestFights = value;\r
+}\r
+\r
+int PlayerGO::PlayerFights(void) const\r
+{\r
+ return mPlayerFights;\r
+}\r
+\r
+void PlayerGO::PlayerFights(const int &value)\r
+{\r
+ assert (value >= 0);\r
+ mPlayerFights = value;\r
+}\r
+\r
+shared_ptr<WeaponGO> PlayerGO::Weapon(void) const\r
+{\r
+ return mWeapon;\r
+}\r
+\r
+void PlayerGO::Weapon(shared_ptr<WeaponGO> spWeapon)\r
+{\r
+ mWeapon = spWeapon;\r
+}\r
+\r
+shared_ptr<WeaponGO> PlayerGO::Armor(void) const\r
+{\r
+ return mArmor;\r
+}\r
+\r
+void PlayerGO::Armor(shared_ptr<ArmorGO> spArmor)\r
+{\r
+ mArmor = spArmor;\r
+}\r
+\r
+void PlayerGO::Use(shared_ptr<ItemGO> spItem)\r
+{\r
+ throw Exception("Undefined function");\r
+}\r
+\r
+\r
+\r
+\r
+#include <GameServ/GameLayer/GameObjects/WeaponGO.h>\r
+using GameServ::GameLayer::GameObjects::WeaponGO;\r
+\r
+#include <string>\r
+using std::string;\r
+#include <vector>\r
+using std::vector;\r
+\r
+#include <boost/format.hpp>\r
+#include <boost/algorithm/string.hpp>\r
+using boost::format;\r
+using boost::str;\r
+\r
+WeaponGO::WeaponGO() : ItemGO()\r
+{\r
+}\r
+\r
+WeaponGO::WeaponGO(const string &name, const int &price, const int &uses, const int &strength, const int &defense, const int &maxhp) :\r
+ItemGO(), mName(name), mPrice(price), mUses(uses)\r
+{\r
+ mModifiers.clear();\r
+ mModifiers.push_back(str(format("STRENGTH + %d") % strength));\r
+ mModifiers.push_back(str(format("DEFENSE + %d") % defense));\r
+ mModifiers.push_back(str(format("MAXHP + %d") maxhp));\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r