the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 40 lines 1.1 kB view raw
1#pragma once 2 3#include "AttributeInstance.h" 4 5class ModifiableAttributeInstance : public AttributeInstance 6{ 7private: 8 BaseAttributeMap *attributeMap; 9 Attribute *attribute; 10 unordered_set<AttributeModifier *> modifiers [AttributeModifier::TOTAL_OPERATIONS]; 11 unordered_map<unsigned int, AttributeModifier *> modifierById; 12 double baseValue; 13 bool dirty; 14 double cachedValue; 15 16public: 17 ModifiableAttributeInstance(BaseAttributeMap *attributeMap, Attribute *attribute); 18 ~ModifiableAttributeInstance(); 19 20 Attribute *getAttribute(); 21 double getBaseValue(); 22 void setBaseValue(double baseValue); 23 unordered_set<AttributeModifier *> *getModifiers(int operation); 24 void getModifiers(unordered_set<AttributeModifier *>& result); 25 AttributeModifier *getModifier(eMODIFIER_ID id); 26 void addModifiers(unordered_set<AttributeModifier *> *modifiers); 27 void addModifier(AttributeModifier *modifier); 28 29private: 30 void setDirty(); 31 32public: 33 void removeModifier(AttributeModifier *modifier); 34 void removeModifier(eMODIFIER_ID id); 35 void removeModifiers(); 36 double getValue(); 37 38private: 39 double calculateValue(); 40};