#pragma once
#include "TaskBase.h"
#include "UnitRatio.h"
class Overseer;


class InternalStateChangeTask : public TaskBase {
public:

	InternalStateChangeTask(Overseer* ov, int STATE_CHANGE_TYPE);
	InternalStateChangeTask(Overseer* ov, int STATE_CHANGE_TYPE, int suppliment);
	InternalStateChangeTask(Overseer* ov, int STATE_CHANGE_TYPE, int suppliment, UnitRatio* ur);

	virtual bool canInitialize();
	virtual bool execute();
	virtual void monitor();
	virtual bool isExecuting();
	virtual bool isFinished();
	virtual bool isInitialized();
	virtual UnitType getBuildType();
	virtual void setTargetBase(BaseModel* b);
private:
	int changeType;
	int changeVar;
	int pauseCounter;
	UnitRatio* targetRatio;

protected:

};