DropChanceCondition.h 896 B

12345678910111213141516171819202122232425262728293031323334
  1. #pragma once
  2. #include "DropCondition.h"
  3. #include "TypeRegistry.h"
  4. class DropChanceCondition : public DropCondition
  5. {
  6. private:
  7. double chance;
  8. public:
  9. DropChanceCondition(double chance);
  10. double getChance() const;
  11. bool evaluate(Entity* zActor,
  12. Item* zItem,
  13. ItemSkill* zUsedSkill,
  14. Framework::Either<Block*, Entity*> zDestroyedObject) override;
  15. };
  16. class DropChanceConditionFactory
  17. : public SubTypeFactory<DropCondition, DropChanceCondition>
  18. {
  19. public:
  20. DropChanceConditionFactory();
  21. JSONObjectValidationBuilder* addToValidator(
  22. JSONObjectValidationBuilder* builder) const override;
  23. const char* getTypeToken() const override;
  24. protected:
  25. DropChanceCondition* fromJson(
  26. Framework::JSON::JSONObject* zJson) const override;
  27. Framework::JSON::JSONObject* toJsonObject(
  28. DropChanceCondition* zObject) const override;
  29. };