#pragma once #include "backend/String.h" class Enemy { public: void set_name(const String & name); const String & get_name() const; void set_description(const String & description); const String & get_description() const; unsigned get_health() const; void take_damage(unsigned int dmg); virtual const String & get_displayname() const; void set_attack(float attack_chance); float get_attack() const; void set_damage_min(int damage_min); int get_damage_min() const; void set_damage_max(int damage_max); int get_damage_max() const; private: friend class EnemyFactory; Enemy(const String & name, const String & description); public: virtual ~Enemy() = default; private: String name; String description; unsigned int health_points = 0; float attack_chance = 0.0; int damage_min = 0; int damage_max = 0; };