#include "ItemModifier.h" using namespace Framework; ItemModifier::ItemModifier() : ReferenceCounter() {} AttributeItemModifier::AttributeItemModifier( Framework::Text attribute, Framework::Text value) : ItemModifier(), attribute(attribute), value(value) {} void AttributeItemModifier::applyOn(Item* zItem) { if (attribute.istGleich("hp")) { float hp = 0; if (value.positionVon("+=") == 0 || value.positionVon("-=") == 0) { hp = zItem->getHp(); if (value.positionVon("+=") == 0) hp += TextZuFloat(value.getText() + 2); if (value.positionVon("-=") == 0) hp -= TextZuFloat(value.getText() + 2); } if (value.positionVon("=") == 0) { hp = TextZuFloat(value.getText() + 1); } zItem->setHp(hp); } } CombinedItemModifier::CombinedItemModifier() : ItemModifier() {} void CombinedItemModifier::addModifier(ItemModifier* modifier) { modifiers.add(modifier); } void CombinedItemModifier::applyOn(Item* zItem) { for (ItemModifier* modifier : modifiers) { modifier->applyOn(zItem); } }