#ifndef __BASE_AREA__
#define __BASE_AREA__

#include "base_data.h"

class Card;

struct db_area 
{
	int m_areaid;
	std::vector<point_2> m_point;
	double m_default_speed;
};

struct area
{

	area(std::shared_ptr<db_area> ptr)
		:db_area_(ptr)
	{

	}
	virtual ~area()
	{

	}
	std::shared_ptr<db_area> db_area_;
	std::shared_ptr<context> context_;


	virtual void on_card_enter(std::shared_ptr<Card> &card, int prev_area){}

	virtual void on_card_move(std::shared_ptr<Card> &card){}

	virtual void on_card_leave(const std::string& cardid, int next_area){}

	virtual int get_card_count()const{return 0;}

	virtual void updata_position(){}

	
};

#endif