]> jfr.im git - irc/gameservirc.git/blame - gameserv/item.cpp
Implemented the definitions for the new items class and added some declarations into...
[irc/gameservirc.git] / gameserv / item.cpp
CommitLineData
8ad9f659 1#include "item.h"
8ad9f659 2
3item::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
18item::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
33item::~item()
34{
35}
36
26b17386 37bool item::operator<(const item &right) const
38{
39 return myname < right.myname;
40}
41
42bool item::operator>(const item &right) const
43{
44 return myname > right.myname;
45}
46
47bool item::operator==(const item &right) const
48{
49 return myname == right.myname;
50}
51
52bool item::operator!=(const item &right) const
53{
54 return myname != right.myname;
55}
56
8ad9f659 57bool 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
76void weapon::undo(Player *p)
77{
78 p->strength -= mymodifiers[0];
79 p->defense -= mymodifiers[1];
80 p->maxhp -= mymodifiers[2];
81}
82
83bool 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}