#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