bool CampaignManager::checkAllRequirements(const Event_Component& ec) { if (ec.type == EC_REQUIRES_STATUS) { if (checkStatus(ec.s)) return true; } else if (ec.type == EC_REQUIRES_NOT_STATUS) { if (!checkStatus(ec.s)) return true; } else if (ec.type == EC_REQUIRES_CURRENCY) { if (checkCurrency(ec.x)) return true; } else if (ec.type == EC_REQUIRES_NOT_CURRENCY) { if (!checkCurrency(ec.x)) return true; } else if (ec.type == EC_REQUIRES_ITEM) { if (checkItem(ec.x)) return true; } else if (ec.type == EC_REQUIRES_NOT_ITEM) { if (!checkItem(ec.x)) return true; } else if (ec.type == EC_REQUIRES_LEVEL) { if (pc->stats.level >= ec.x) return true; } else if (ec.type == EC_REQUIRES_NOT_LEVEL) { if (pc->stats.level < ec.x) return true; } else if (ec.type == EC_REQUIRES_CLASS) { if (pc->stats.character_class == ec.s) return true; } else if (ec.type == EC_REQUIRES_NOT_CLASS) { if (pc->stats.character_class != ec.s) return true; } else { // Event component is not a requirement check // treat it as if the "requirement" was met return true; } // requirement check failed return false; }
Money& Money::operator-= (const Money& money) { checkCurrency(*this, *this, money); valueInCents_ -= money.valueInCents(); return (*this); }