metro-rts/src/rts_items.hpp

52 lines
1.5 KiB
C++

#ifndef RTS_ITEMS_HPP
#define RTS_ITEMS_HPP
#include "item.hpp"
class Medkit : public Item {
ITEM_CLASS(Medkit, "Medkit",
"Standard emergency home medical kit. Use to manage wounds and stabilize a person.");
private:
Medkit();
public:
virtual bool can_use_on(Unit *used_by, gd::Object *used_on) const override;
protected:
virtual void use_on(Unit *used_by, gd::Object *used_on) const override;
};
class Handgun : public Item {
ITEM_CLASS(Handgun, "9mm handgun.",
"A standard issue police firearm.");
private:
Handgun();
public:
virtual bool can_use_on(Unit *used_by, gd::Object *used_on) const override;
virtual void apply_stats(Stats &stats) const override;
protected:
virtual void use_on(Unit *used_by, gd::Object *used_on) const override;
};
class Lasercutter : public Item {
ITEM_CLASS(Lasercutter, "Lasercutter",
"A laser cutter, use to clear metal obstacles.");
private:
Lasercutter();
public:
// virtual bool can_use_on(Unit *used_by, gd::Object *object) const override;
protected:
// virtual void use_on(Unit *used_by, gd::Object *object) const override;
};
class Welder : public Item {
ITEM_CLASS(Welder, "Welder",
"A welder with tanks intended to be carried on a person's back. Use to repair broken metal parts.");
private:
Welder();
public:
// virtual bool can_use_on(Unit *used_by, gd::Object *object) const override;
protected:
// virtual void use_on(Unit *used_by, gd::Object *object) const override;
};
#endif // !RTS_ITEMS_HPP