#pragma once #include "Entity.h" class QuestEvent : public virtual Framework::ReferenceCounter { private: Entity* actingEntity; public: QuestEvent(Entity* actingEntity); ~QuestEvent(); Entity* zActingEntity() const; }; class QuestEventOpenDialog : public QuestEvent { private: Framework::Text dialogId; public: QuestEventOpenDialog(Entity* actingEntity, Framework::Text dialogId); const Framework::Text& getDialogId() const; }; class QuestEventBlockBreak : public QuestEvent { private: int blockTypeId; int usedItemTypeId; public: QuestEventBlockBreak( Entity* actingEntity, int blockTypeId, int usedItemTypeId); int getBlockTypeId() const; int getUsedItemTypeId() const; }; class QuestEventBlockPlace : public QuestEvent { private: int blockTypeId; public: QuestEventBlockPlace(Entity* actingEntity, int blockTypeId); int getBlockTypeId() const; }; class QuestEventBlockInteract : public QuestEvent { private: int blockTypeId; int usedItemTypeId; public: QuestEventBlockInteract( Entity* actingEntity, int blockTypeId, int usedItemTypeId); int getBlockTypeId() const; int getUsedItemTypeId() const; }; class QuestEventTimeUpdate : public QuestEvent { public: QuestEventTimeUpdate(); }; class QuestEventItemPickup : public QuestEvent { private: int itemTypeId; int amount; public: QuestEventItemPickup(Entity* actingEntity, int itemTypeId, int amount); int getItemTypeId() const; int getAmount() const; };