#pragma once #include "DropCondition.h" #include "TypeRegistry.h" class DropChanceCondition : public DropCondition { private: double chance; public: DropChanceCondition(double chance); double getChance() const; bool evaluate(Entity* zActor, Item* zItem, ItemSkill* zUsedSkill, Framework::Either zDestroyedObject) override; }; class DropChanceConditionFactory : public SubTypeFactory { public: DropChanceConditionFactory(); JSONObjectValidationBuilder* addToValidator( JSONObjectValidationBuilder* builder) const override; const char* getTypeToken() const override; protected: DropChanceCondition* fromJson( Framework::JSON::JSONObject* zJson) const override; Framework::JSON::JSONObject* toJsonObject( DropChanceCondition* zObject) const override; };