#pragma once #include #include #include #include #include enum DmgType {SINGLE, MULTI}; struct Stat { int statID; std::string statName; float stat; }; class Creature { protected: int id; int level; std::vector stats; std::string name; std::string description; public: virtual void Init() = 0; virtual void LevelUp() = 0; virtual void Die() = 0; virtual void TakeDamage(int damageType, float damage) = 0; virtual float GetHealth() = 0; bool IsAlive() { return GetHealth() > 0; } void PrintDescription() { printf("%s\n", description.data()); } void PrintName() { printf("%s\n", name.data()); } virtual ~Creature() = default; };