#pragma once #include "olcPixelGameEngine.h" #include "MonsterAttribute.h" #include "DEFINES.h" #include class IAttributable{ public: inline virtual ~IAttributable(){}; std::map>attributes; inline float&GetFloat(Attribute a){ if(attributes.count(a)==0){ attributes[a]=0.f; } return std::get(attributes[a]); }; inline int&GetInt(Attribute a){ if(attributes.count(a)==0){ attributes[a]=0; } return std::get(attributes[a]); }; inline std::string&GetString(Attribute a){ if(attributes.count(a)==0){ attributes[a]=""; } return std::get(attributes[a]); }; inline bool&GetBool(Attribute a){ if(attributes.count(a)==0){ attributes[a]=false; } return std::get(attributes[a]); }; inline vf2d&GetVf2d(Attribute a){ if(attributes.count(a)==0){ attributes[a]=vf2d{}; } return std::get(attributes[a]); }; };