#pragma once
#include <iostream>
using namespace std;

class Event
{
private:
	double time;
	double initialTime;
public:
	bool operator >(const Event &e)
	{
		return time < e.time;
	}

	bool operator <(const Event &e)
	{
		return time > e.time;
	}

	Event(double _time)
	{
		time = _time;
	}

	double getTime()
	{
		return time;
	}

	void setTime(double _time)
	{
		time = _time;
	}

	void setInitialTime(double _initialTime){
		initialTime = _initialTime;
	}

	double getInitialTime()
	{
		return initialTime;
	}

	virtual void action() = 0;

	virtual int getType() = 0;
};