#pragma once #include #include #include "Item.h" class ItemModifier : public virtual Framework::ReferenceCounter { public: ItemModifier(); virtual void applyOn(Item* zItem) = 0; }; class AttributeItemModifier : public ItemModifier { private: Framework::Text attribute; Framework::Text value; public: AttributeItemModifier(Framework::Text attribute, Framework::Text value); void applyOn(Item* zItem) override; }; class CombinedItemModifier : public ItemModifier { Framework::RCArray modifiers; public: CombinedItemModifier(); void addModifier(ItemModifier* modifier); void applyOn(Item* zItem) override; };