CRewardableConstructor.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * CRewardableConstructor.h, part of VCMI engine
  3. *
  4. * Authors: listed in file AUTHORS in main folder
  5. *
  6. * License: GNU General Public License v2.0 or later
  7. * Full text of license available in license.txt file, in main folder
  8. *
  9. */
  10. #pragma once
  11. #include "AObjectTypeHandler.h"
  12. #include "../rewardable/Info.h"
  13. VCMI_LIB_NAMESPACE_BEGIN
  14. class DLL_LINKAGE CRewardableConstructor : public AObjectTypeHandler
  15. {
  16. Rewardable::Info objectInfo;
  17. void initTypeData(const JsonNode & config) override;
  18. bool blockVisit = false;
  19. public:
  20. bool hasNameTextID() const override;
  21. CGObjectInstance * create(IGameCallback * cb, std::shared_ptr<const ObjectTemplate> tmpl = nullptr) const override;
  22. void configureObject(CGObjectInstance * object, vstd::RNG & rng) const override;
  23. std::unique_ptr<IObjectInfo> getObjectInfo(std::shared_ptr<const ObjectTemplate> tmpl) const override;
  24. Rewardable::Configuration generateConfiguration(IGameCallback * cb, vstd::RNG & rand, MapObjectID objectID) const;
  25. };
  26. VCMI_LIB_NAMESPACE_END