#ifndef SPELL_WARZ_ELEMENT_HPP
|
|
#define SPELL_WARZ_ELEMENT_HPP 1
|
|
|
|
#include <string>
|
|
|
|
class Element
|
|
{
|
|
protected:
|
|
std::string name;
|
|
Element *strongAgainst;
|
|
Element *weakAgainst;
|
|
|
|
public:
|
|
static int WEAK_COMPATIBILITY;
|
|
static int NEUTRAL_COMPATIBILITY;
|
|
static int STRONG_COMPATIBILITY;
|
|
|
|
Element(std::string elementName,
|
|
Element *elementWeakAgainst = nullptr,
|
|
Element *elementStrongAgainst = nullptr);
|
|
std::string getName();
|
|
void setStrongAgainst(Element *element);
|
|
void setWeakAgainst(Element *element);
|
|
bool isStrongAgainst(Element *element);
|
|
bool isWeakAgainst(Element *element);
|
|
int compatibilityAgainst(Element *element);
|
|
bool operator<(Element &rhs);
|
|
};
|
|
|
|
#endif
|