quest-wizard/models/events/qw_abstractevent.h

44 lines
822 B
C++

#ifndef QUESTEVENT_H
#define QUESTEVENT_H
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
#include "../qw_tagholder.h"
/* QWAbstractEvent
* Interface for all in-game events. The core of game logic process. */
class QWAbstractEvent : public QWTagHolder
{
public:
QWAbstractEvent();
virtual ~QWAbstractEvent() override = 0;
virtual void execute() = 0;
////////////////////////
virtual void writeToJson(QJsonObject &savejson) override = 0;
};
enum EVENT_TYPE
{
CHANGE_LOCATION,
SWITCH_EVENTS, // <- requires other events to be initialized
DELETE_FROM_INVENTORY,
END_LEVEL,
PICKUP_ITEM,
PLAY_SOUND,
PLAY_MUSIC,
CHANGE_TRIGGER_PROPERTIES,
NEW_GAME,
QUIT_GAME,
START_DIALOGUE,
ADD_TRIGGER,
REMOVE_TRIGGER
};
#endif // QUESTEVENT_H