#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
							 |