]> jfr.im git - irc/gameservirc.git/blob - gameserv/item.cpp
Implemented the definitions for the new items class and added some declarations into...
[irc/gameservirc.git] / gameserv / item.cpp
1 #include "item.h"
2
3 item::item(char *name, int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
4 {
5 myname = name; // string = char*
6 myprice = p;
7 myuses = uses;
8 mymodifiers[0] = m1;
9 mymodifiers[1] = m2;
10 mymodifiers[2] = m3;
11 mymodifiers[3] = m4;
12 mymodifiers[4] = m5;
13 mymodifiers[5] = m6;
14 mymodifiers[6] = m7;
15 mymodifiers[7] = m8;
16 }
17
18 item::item(string name, int p, int uses, int m1, int m2, int m3, int m4, int m5, int m6, int m7, int m8)
19 {
20 myname = name; // string = char*
21 myprice = p;
22 myuses = uses;
23 mymodifiers[0] = m1;
24 mymodifiers[1] = m2;
25 mymodifiers[2] = m3;
26 mymodifiers[3] = m4;
27 mymodifiers[4] = m5;
28 mymodifiers[5] = m6;
29 mymodifiers[6] = m7;
30 mymodifiers[7] = m8;
31 }
32
33 item::~item()
34 {
35 }
36
37 bool item::operator<(const item &right) const
38 {
39 return myname < right.myname;
40 }
41
42 bool item::operator>(const item &right) const
43 {
44 return myname > right.myname;
45 }
46
47 bool item::operator==(const item &right) const
48 {
49 return myname == right.myname;
50 }
51
52 bool item::operator!=(const item &right) const
53 {
54 return myname != right.myname;
55 }
56
57 bool weapon::use(Player *p)
58 {
59 // weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
60 if (myuses == 0)
61 return false;
62 else
63 {
64 p->strength += mymodifiers[0];
65 p->defense += mymodifiers[1];
66 p->maxhp += mymodifiers[2];
67 }
68
69 if (myuses > 0)
70 {
71 myuses--;
72 }
73 return true;
74 }
75
76 void weapon::undo(Player *p)
77 {
78 p->strength -= mymodifiers[0];
79 p->defense -= mymodifiers[1];
80 p->maxhp -= mymodifiers[2];
81 }
82
83 bool potion::use(Player *p)
84 {
85 // 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)
86
87 if (myuses == 0)
88 return false;
89 else
90 {
91 p->strength += mymodifiers[0];
92 p->defense += mymodifiers[1];
93 p->maxhp += mymodifiers[2];
94 p->hp += mymodifiers[3];
95 p->forest_fights += mymodifiers[4];
96 p->player_fights += mymodifiers[5];
97 p->gold += mymodifiers[6];
98 p->bank += mymodifiers[7];
99 }
100
101 if (myuses > 0)
102 {
103 myuses--;
104 }
105 return true;
106 }