]> jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/src/GameLayer/GameObjects/PlayerGO.cpp
a0386293cb2d63f06c2e9e5aed5bcd60d498bb8a
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / src / GameLayer / GameObjects / PlayerGO.cpp
1 #include <GameServ/GameLayer/GameObjects/PlayerGO.h>
2 using GameServ::GameLayer::GameObjects::PlayerGO;
3 #include <GameServ/GameLayer/GameObjects/ArmorGO.h>
4 using GameServ::GameLayer::GameObjects::ArmorGO;
5 #include <GameServ/GameLayer/GameObjects/WeaponGO.h>
6 using GameServ::GameLayer::GameObjects::WeaponGO;
7
8 #include <boost/shared_ptr.hpp>
9 using boost::shared_ptr;
10
11 #include <GameServ/GameServException.h>
12 using GameServ::Exceptions::GameServException;
13
14 PlayerGO::PlayerGO() : GameObject(), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1),
15 mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("")
16 {
17 }
18
19 PlayerGO::PlayerGO(const string &Id) : GameObject(Id), mName(""), mLevel(1), mExperience(0), mGold(0), mHealth(0), mMaxHealth(0), mStrength(1),
20 mDefense(1), mForestFights(0), mPlayerFights(0), mPassword("")
21 {
22 }
23
24 PlayerGO::~PlayerGO()
25 {
26 }
27
28 string PlayerGO::Name(void) const
29 {
30 return mName;
31 }
32
33 void PlayerGO::Name(const string &value)
34 {
35 assert(!value.empty());
36 mName = value;
37 }
38
39 int PlayerGO::Level(void) const
40 {
41 return mLevel;
42 }
43
44 void PlayerGO::Level(const int &value)
45 {
46 assert(value > 0);
47 mLevel = value;
48 }
49
50 unsigned long int PlayerGO::Experience(void) const
51 {
52 return mLevel;
53 }
54
55 void PlayerGO::Experience(const unsigned long int &value)
56 {
57 mExperience = value;
58 }
59
60 unsigned long int PlayerGO::Gold(void) const
61 {
62 return mGold;
63 }
64
65 void PlayerGO::Gold(const unsigned long int &value)
66 {
67 mGold = value;
68 }
69
70 int PlayerGO::Health(void) const
71 {
72 return mHealth;
73 }
74
75 void PlayerGO::Health(const int &value)
76 {
77 assert(value >= 0);
78 mHealth = value;
79 }
80
81 int PlayerGO::MaxHealth(void) const
82 {
83 return mMaxHealth;
84 }
85
86 void PlayerGO::MaxHealth(const int &value)
87 {
88 assert (value >= 0);
89 mMaxHealth = value;
90 }
91
92 int PlayerGO::Strength(void) const
93 {
94 return mStrength;
95 }
96
97 void PlayerGO::Strength(const int &value)
98 {
99 assert (value > 0);
100 mStrength = value;
101 }
102
103 int PlayerGO::Defense(void) const
104 {
105 return mDefense;
106 }
107
108 void PlayerGO::Defense(const int &value)
109 {
110 assert(value > 0);
111 mDefense = value;
112 }
113
114 int PlayerGO::ForestFights(void) const
115 {
116 return mForestFights;
117 }
118
119 void PlayerGO::ForestFights(const int &value)
120 {
121 assert (value >= 0);
122 mForestFights = value;
123 }
124
125 int PlayerGO::PlayerFights(void) const
126 {
127 return mPlayerFights;
128 }
129
130 void PlayerGO::PlayerFights(const int &value)
131 {
132 assert (value >= 0);
133 mPlayerFights = value;
134 }
135
136 shared_ptr<WeaponGO> PlayerGO::Weapon(void) const
137 {
138 return mWeapon;
139 }
140
141 void PlayerGO::Weapon(shared_ptr<WeaponGO> spWeapon)
142 {
143 mWeapon = spWeapon;
144 }
145
146 shared_ptr<ArmorGO> PlayerGO::Armor(void) const
147 {
148 return mArmor;
149 }
150
151 void PlayerGO::Armor(shared_ptr<ArmorGO> spArmor)
152 {
153 mArmor = spArmor;
154 }
155
156 void PlayerGO::Use(shared_ptr<ItemGO> spItem)
157 {
158 throw GameServException("Undefined function.", __FILE__, __LINE__);
159 }
160
161 void PlayerGO::Undo(shared_ptr<ItemGO> spItem)
162 {
163 throw GameServException("Undefined function.", __FILE__, __LINE__);
164 }
165
166 bool PlayerGO::operator !=(const PlayerGO &right) const
167 {
168 return !(*this == right);
169 }
170
171 bool PlayerGO::operator ==(const PlayerGO &right) const
172 {
173 return GameObject::operator == (right) &&
174 mName == right.mName && right.mArmor == mArmor &&
175 right.mDefense == mDefense && right.mExperience == mExperience &&
176 right.mForestFights == mForestFights && right.mGold == mGold &&
177 right.mHealth == mHealth && right.mInventory == mInventory &&
178 right.mLevel == mLevel && right.mMaxHealth == mMaxHealth &&
179 right.mPassword == mPassword && right.mPlayerFights == mPlayerFights &&
180 right.mStrength == mStrength && right.mWeapon == mWeapon;
181 }
182
183 PlayerGO *PlayerGO::Clone(void) const
184 {
185 return new PlayerGO(*this);
186 }
187
188