#ifndef HEALTH_HPP
#define HEALTH_HPP

#include <godot_cpp/classes/node.hpp>

namespace godot {
class Health : public Node {
    GDCLASS(Health, Node);
    static void _bind_methods();
public:
    virtual void _enter_tree() override;
    void damage(int amount);
    void heal(int amount);

    int get_health() const;
    void set_max_health(int max_health);
    int get_max_health() const;
private:
    int health{1};
    int max_health{1};
};

class IHealthEntity {
public:
    virtual Health *get_health() = 0;
    virtual Health const *get_health() const = 0;
};
}

#endif // !HEALTH_HPP
