#pragma once
//-----------------------------------------------------
// Name, first name: Hoet, Guntran
// Group: 1DAE3
//-----------------------------------------------------

//-----------------------------------------------------
// Include Files
//-----------------------------------------------------
#include "GameEngine.h"
#include "EntityMaster.h"

//-----------------------------------------------------
// Coin Class									
//-----------------------------------------------------

class Coin : public EntityMaster
{
public:
	Coin(int x, int y, Bitmap* bmpBitmapPtr = nullptr);				// Constructor
	virtual ~Coin();										// Destructor

	//-------------------------------------------------
	// Methods - Member functions							
	//-------------------------------------------------

	virtual void Tick(double deltaTime);
	virtual void Paint(MATRIX3X2 matView);
	virtual bool IsHit();
	virtual DOUBLE2 GetPos();
	virtual void DrawDebug(MATRIX3X2 matView);
	virtual RECT2 GetAABBRect();
	virtual int ReturnReward();
	virtual void Delete();
	virtual void Move(DOUBLE2 dir);
	virtual void ZeroVelocity(bool xVelocity, bool yVelocity);
	virtual int GetType();
	void SetStage(int stage);
	virtual int GetMushroomType();


	static const int STEPS_TOTAL = 6;
	static const int INTERVAL = 8;
	static const int PICK_UP_REWARD = 100;

private: 
	//-------------------------------------------------
	// Datamembers								
	//-------------------------------------------------

	bool m_IsDeleted;
	int m_TickCount, m_AnimationStep, m_Width, m_Height;
	DOUBLE2 m_Position;
	Bitmap *m_BmpBitmapPtr;
	RECT2 m_Rect;

	// -------------------------
	// Disabling default copy constructor and default 
	// assignment operator.
	// -------------------------
	Coin(const Coin& yRef);									
	Coin& operator=(const Coin& yRef);	
};


