]>
jfr.im git - irc/gameservirc.git/blob - gameserv/item.cpp
10 for ( int x
= 0 ; x
< 8 ; x
++)
14 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
)
16 myname
= name
; // string = char*
30 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
)
32 myname
= name
; // string = char*
48 for ( int x
= 0 ; x
< 8 ; x
++)
58 void item :: setType ( type t
)
63 bool item :: operator <( const item
& right
) const
65 return myname
< right
. myname
;
68 bool item :: operator >( const item
& right
) const
70 return myname
> right
. myname
;
73 bool item :: operator ==( const item
& right
) const
75 return myname
== right
. myname
;
78 bool item :: operator !=( const item
& right
) const
80 return myname
!= right
. myname
;
83 item
& item :: operator =( const item
& right
)
85 myname
= right
. myname
;
86 myprice
= right
. myprice
;
87 myuses
= right
. myuses
;
89 mytype
= right
. mytype
;
91 for ( int x
= 0 ; x
< 8 ; x
++)
93 mymodifiers
[ x
] = right
. mymodifiers
[ x
];
95 return * this ; // enables cascading x=y=z;
101 bool weapon :: setData ( char * datastr
)
106 temp
= strtok ( datastr
, "~" ); // Type
109 // Grab the item's id
110 temp
= strtok ( NULL
, "~" );
111 id
= stringtoint ( temp
);
113 // Grab the item's name
114 temp
= strtok ( NULL
, "~" );
117 // Grab the item's price
118 temp
= strtok ( NULL
, "~" );
119 myprice
= stringtoint ( temp
);
121 // Grab the item's uses
122 temp
= strtok ( NULL
, "~" );
123 myuses
= stringtoint ( temp
);
125 // Grab the item's modifiers
126 for ( int x
= 0 ; x
< 4 ; x
++)
128 temp
= strtok ( NULL
, "~" );
129 mymodifiers
[ x
] = stringtoint ( temp
);
131 // If we got here, we're successful
136 log ( "Exception setting weapon data: %s " , str
);
141 bool weapon :: use ( Player
* p
)
143 // weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
148 p
-> strength
+= mymodifiers
[ 0 ];
149 p
-> defense
+= mymodifiers
[ 1 ];
150 p
-> maxhp
+= mymodifiers
[ 2 ];
160 void weapon :: undo ( Player
* p
)
162 p
-> strength
-= mymodifiers
[ 0 ];
163 p
-> defense
-= mymodifiers
[ 1 ];
164 p
-> maxhp
-= mymodifiers
[ 2 ];
171 void armor :: undo ( Player
* p
)
173 p
-> strength
-= mymodifiers
[ 0 ];
174 p
-> defense
-= mymodifiers
[ 1 ];
175 p
-> maxhp
-= mymodifiers
[ 2 ];
178 bool armor :: setData ( char * datastr
)
183 strtok ( datastr
, "~" ); // Type
187 // Grab the item's id
188 temp
= strtok ( NULL
, "~" );
189 id
= stringtoint ( temp
);
191 // Grab the item's name
192 temp
= strtok ( NULL
, "~" );
195 // Grab the item's price
196 temp
= strtok ( NULL
, "~" );
197 myprice
= stringtoint ( temp
);
199 // Grab the item's uses
200 temp
= strtok ( NULL
, "~" );
201 myuses
= stringtoint ( temp
);
203 // Grab the item's modifiers
204 for ( int x
= 0 ; x
< 4 ; x
++)
206 temp
= strtok ( NULL
, "~" );
207 mymodifiers
[ x
] = stringtoint ( temp
);
209 // If we got here, we were successful
214 log ( "Exception setting armor data: %s " , str
);
220 bool armor :: use ( Player
* p
)
222 // weapon(char *name, int p=0, int uses = -1, int strength=0, int defense=0, int maxhp=0)
227 p
-> strength
+= mymodifiers
[ 0 ];
228 p
-> defense
+= mymodifiers
[ 1 ];
229 p
-> maxhp
+= mymodifiers
[ 2 ];
243 bool potion :: use ( Player
* p
)
245 // 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)
251 p
-> strength
+= myranges
[ 0 ]. random ();
252 p
-> defense
+= myranges
[ 1 ]. random ();
253 p
-> maxhp
+= myranges
[ 2 ]. random ();
254 p
-> hp
+= myranges
[ 3 ]. random ();
255 p
-> forest_fights
+= myranges
[ 4 ]. random ();
256 p
-> player_fights
+= myranges
[ 5 ]. random ();
257 p
-> gold
+= myranges
[ 6 ]. random ();
258 p
-> bank
+= myranges
[ 7 ]. random ();
268 void potion :: undo ( Player
* p
)
273 bool potion :: setData ( char * datastr
)
279 temp
= strtok ( datastr
, "~" ); // Type
283 // Grab the item's id
284 temp
= strtok ( NULL
, "~" );
285 id
= stringtoint ( temp
);
287 // Grab the item's name
288 temp
= strtok ( NULL
, "~" );
291 // Grab the item's price
292 temp
= strtok ( NULL
, "~" );
293 myprice
= stringtoint ( temp
);
295 // Grab the item's uses
296 temp
= strtok ( NULL
, "~" );
297 myuses
= stringtoint ( temp
);
299 // Grab the item's modifiers
300 for ( int x
= 0 ; x
< 8 ; x
++)
302 temp
= strtok ( NULL
, "~" );
303 myranges
[ x
]. low
= stringtoint ( temp
);
304 temp
= strtok ( NULL
, "~" );
305 myranges
[ x
]. high
= stringtoint ( temp
);
310 log ( "Exception setting potion data: %s " , str
);
313 // If we got here, we were successful
318 itemContainer :: itemContainer ()
324 itemContainer :: itemContainer ( item
* i
){
328 itemContainer :: itemContainer ( const itemContainer
& right
)
330 myuses
= right
. myuses
;
331 myitem
= right
. myitem
;
333 itemContainer ::~ itemContainer ()
339 itemContainer
& itemContainer :: operator --()
345 itemContainer
itemContainer :: operator --( int )
347 itemContainer oldValue
= * this ;
354 itemContainer
& itemContainer :: operator ++()
361 itemContainer
itemContainer :: operator ++( int )
363 itemContainer oldValue
= * this ;
370 void itemContainer :: setItem ( item
* i
)
375 bool itemContainer :: operator <( const itemContainer
& right
) const
377 return (* myitem
< * right
. myitem
);
380 bool itemContainer :: operator >( const itemContainer
& right
) const
382 return (* myitem
> * right
. myitem
);
385 bool itemContainer :: operator ==( const itemContainer
& right
) const
387 return (* myitem
== * right
. myitem
);
390 bool itemContainer :: operator !=( const itemContainer
& right
) const
392 return (* myitem
== * right
. myitem
);
395 void itemContainer :: setUses ( int uses
)
400 tavernItem :: tavernItem ()
406 tavernItem :: tavernItem ( item
* i
, int l
)
412 void tavernItem :: setItem ( item
* i
)
417 void tavernItem :: setLevel ( int l
)
422 bool tavernItem :: visible ( Player
* p
)
424 return ( p
!= NULL
&& p
-> level
>= myLevel
);