#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.");
public:
    Medkit();
    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.");
public:
    Handgun();
    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 Lasercutter : public Item {
    ITEM_CLASS(Lasercutter, "Lasercutter",
              "A laser cutter, use to clear metal obstacles.");
public:
    Lasercutter();
    // 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.");
public:
    Welder();
    // 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
