]> jfr.im git - irc/gameservirc.git/blob - gameserv/item.cpp
Still working on the new item system integration
[irc/gameservirc.git] / gameserv / item.cpp
1 #include "item.h"
2 #include "player.h"
3
4 item::item()
5 {
6 myname = "New Item";
7 myprice = 0;
8 myuses = 0;
9 for (int x = 0; x < 8; x++)
10 mymodifiers[x] = 0;
11 }
12
13 item::item(const char *name, long int p, int uses, long int identifier, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
14 {
15 myname = name; // string = char*
16 myprice = p;
17 myuses = uses;
18 mymodifiers[0] = m1;
19 mymodifiers[1] = m2;
20 mymodifiers[2] = m3;
21 mymodifiers[3] = m4;
22 mymodifiers[4] = m5;
23 mymodifiers[5] = m6;
24 mymodifiers[6] = m7;
25 mymodifiers[7] = m8;
26 id = identifier;
27 }
28
29 item::item(string name, long int p, int uses, long int identifier, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
30 {
31 myname = name; // string = char*
32 myprice = p;
33 myuses = uses;
34 mymodifiers[0] = m1;
35 mymodifiers[1] = m2;
36 mymodifiers[2] = m3;
37 mymodifiers[3] = m4;
38 mymodifiers[4] = m5;
39 mymodifiers[5] = m6;
40 mymodifiers[6] = m7;
41 mymodifiers[7] = m8;
42 id = identifier;
43 }
44
45 item::~item()
46 {
47 for (int x = 0; x < 8; x++)
48 {
49 mymodifiers[x] = 0;
50 }
51
52 myuses = 0;
53 myname = "";
54 myprice = 0;
55 }
56
57 void item::setType(type t)
58 {
59 mytype = t;
60 }
61
62 bool item::operator<(const item &right) const
63 {
64 return myname < right.myname;
65 }
66
67 bool item::operator>(const item &right) const
68 {
69 return myname > right.myname;
70 }
71
72 bool item::operator==(const item &right) const
73 {
74 return myname == right.myname;
75 }
76
77 bool item::operator!=(const item &right) const
78 {
79 return myname != right.myname;
80 }
81
82 weapon::~weapon()
83 {
84 }
85
86 bool weapon::use(Player *p)
87 {
88 // weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
89 if (myuses == 0)
90 return false;
91 else
92 {
93 p->strength += mymodifiers[0];
94 p->defense += mymodifiers[1];
95 p->maxhp += mymodifiers[2];
96 }
97
98 if (myuses > 0)
99 {
100 myuses--;
101 }
102 return true;
103 }
104
105 void weapon::undo(Player *p)
106 {
107 p->strength -= mymodifiers[0];
108 p->defense -= mymodifiers[1];
109 p->maxhp -= mymodifiers[2];
110 }
111
112 bool weapon::setData(const char *dataStr)
113 {
114
115 return true;
116 }
117
118 armor::~armor()
119 {
120 }
121
122 void armor::undo(Player *p)
123 {
124 p->strength -= mymodifiers[0];
125 p->defense -= mymodifiers[1];
126 p->maxhp -= mymodifiers[2];
127 }
128
129 bool armor::setData(const char *dataStr)
130 {
131 return true;
132 }
133
134 bool armor::use(Player *p)
135 {
136 // weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
137 if (myuses == 0)
138 return false;
139 else
140 {
141 p->strength += mymodifiers[0];
142 p->defense += mymodifiers[1];
143 p->maxhp += mymodifiers[2];
144 }
145
146 if (myuses > 0)
147 {
148 myuses--;
149 }
150 return true;
151 }
152
153 bool potion::use(Player *p)
154 {
155 // potion(char *name, int p=0, int uses = 1, int strength=0, int defense=0, int maxhp=0, int hp=0, int forest_fights=0, int player_fights=0, int gold=0, int bank=0)
156
157 if (myuses == 0)
158 return false;
159 else
160 {
161 p->strength += mymodifiers[0];
162 p->defense += mymodifiers[1];
163 p->maxhp += mymodifiers[2];
164 p->hp += mymodifiers[3];
165 p->forest_fights += mymodifiers[4];
166 p->player_fights += mymodifiers[5];
167 p->gold += mymodifiers[6];
168 p->bank += mymodifiers[7];
169 }
170
171 if (myuses > 0)
172 {
173 myuses--;
174 }
175 return true;
176 }
177
178 void potion::undo(Player *p)
179 {
180 return;
181 }
182
183 bool potion::setData(const char *dataStr)
184 {
185
186 return true;
187 }