QuestRequirement.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include "QuestEvent.h"
  3. #include "TypeRegistry.h"
  4. class QuestRequirementStorage;
  5. class QuestRequirement : public virtual Framework::ReferenceCounter
  6. {
  7. private:
  8. Framework::Text id;
  9. Framework::Text description;
  10. public:
  11. QuestRequirement(Framework::Text id, Framework::Text description);
  12. virtual void processEvent(
  13. QuestEvent* zEvent, QuestRequirementStorage* zStorage)
  14. = 0;
  15. const Framework::Text& getRequirementId() const;
  16. const Framework::Text& getDescription() const;
  17. };
  18. class QuestRequirementOpenDialogType;
  19. class QuestRequirementOpenDialog : public QuestRequirement
  20. {
  21. private:
  22. Framework::Text dialogId;
  23. public:
  24. QuestRequirementOpenDialog(Framework::Text id,
  25. Framework::Text description,
  26. Framework::Text dialogId);
  27. void processEvent(
  28. QuestEvent* zEvent, QuestRequirementStorage* zStorage) override;
  29. friend QuestRequirementOpenDialogType;
  30. };
  31. class QuestRequirementOpenDialogType
  32. : public SubTypeFactory<QuestRequirement, QuestRequirementOpenDialog>
  33. {
  34. public:
  35. QuestRequirementOpenDialogType();
  36. QuestRequirementOpenDialog* fromJson(
  37. Framework::JSON::JSONObject* zJson) const override;
  38. Framework::JSON::JSONObject* toJson(
  39. QuestRequirementOpenDialog* zObject) const override;
  40. Framework::JSON::Validator::JSONValidator* getValidator(
  41. Framework::JSON::Validator::ObjectValidationBuilder<
  42. Framework::JSON::Validator::JSONValidator>* builder) const override;
  43. Framework::Text getTypeToken() const override;
  44. };
  45. class QuestRequirementBlockBreak : public QuestRequirement
  46. {};
  47. class QuestRequirementBlockPlace : public QuestRequirement
  48. {};
  49. class QuestRequirementBlockInteract : public QuestRequirement
  50. {};
  51. class QuestRequirementCraft : public QuestRequirement
  52. {};
  53. class QuestRequirementItemInInventory : public QuestRequirement
  54. {};