virtual bool use(Player *p) = 0;
virtual void undo(Player *p) = 0;
- virtual bool setData(const char *datastr) = 0;
+ virtual bool setData(char *datastr) = 0;
type getType() {return mytype;};
void setType(type);
+ long int getID() {return id;};
bool operator<(const item &right) const;
bool operator>(const item &right) const;
bool operator==(const item &right) const;
bool operator!=(const item &right) const;
+ item &operator=(const item &right);
protected:
- string myname; // Name to use in game & sorting
+ string myname; // Name to use in game
long int myprice; // How much does this item cost to buy (half to sell)
int mymodifiers[8]; // Up to 8 different modifiers handled in the sub-classes
int myuses; // How many times this item can be used by default
item *getItem() {return myitem;};
void setItem(item *);
+ int getUses() { return myuses; };
+ void setUses(int);
+ void use(Player *p);
+
private:
int myuses; // How many times this item can be used
item *myitem;
weapon(string name, int p=0, int uses = -1, long int identifier=0, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
~weapon();
+ bool setData(char *datastr);
bool use(Player *p);
void undo(Player *p);
- bool setData(const char *datastr);
+
};
class armor : public item
armor(string name, int p=0, int uses = -1, long int identifier=0, int strength=0, int defense=0, int maxhp=0) : item(name, p, uses, strength, defense, maxhp){};
~armor();
+ bool setData(char *datastr);
bool use(Player *p);
void undo(Player *p);
- bool setData(const char *datastr);
};
class potion : public item
potion(string name, int p=0, int uses = 1, long int identifier=0, 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) : item(name, p, uses, strength, defense, maxhp, hp, forest_fights, player_fights, gold, bank){};
~potion();
+ bool setData(char *datastr);
bool use(Player *p);
void undo(Player *p);
- bool setData(const char *datastr);
protected:
- range myrange;
+ range myranges[8];
+};
+
+class tavernItem
+{
+ public:
+ tavernItem();
+ tavernItem(item *, int);
+
+
+ void setItem(item*);
+ item *getItem() { return myItem; };
+
+ void setLevel(int);
+ int getLevel() { return myLevel; };
+
+ bool visible(Player *);
+
+
+ private:
+
+ item *myItem; // The item this actually points to
+ int myLevel; // The level the item shows up
};
#endif