// gamedambuilder.h: interface for the cBiota child classes
//
//////////////////////////////////////////////////////////////////////

#ifndef GAMEDAMBUILDER_H
#define GAMEDAMBUILDER_H

#include "game.h"
#include "critterarmed.h"
#include "critterwall.h"

class cGameDambuilder : public cGame
{
DECLARE_SERIAL(cGameDambuilder);
public:
	static Real WALLTHICKNESS;
public:
	cGameDambuilder();
	virtual void seedCritters();
	virtual void initializeView(CPopView *pview);
	virtual void initializeViewpoint(cCritterViewer *pviewer);
};

class cCritterDamFloat : public cCritter
{
DECLARE_SERIAL(cCritterDamFloat);
public:
	cCritterDamFloat(cGame *pownergame = NULL);
};

class cCritterDamPlayer : public cCritterArmedPlayer
{
DECLARE_SERIAL(cCritterDamPlayer);
public:
	cCritterDamPlayer(cGame *pownergame = NULL);
};

class cCritterDamPlayerBullet : public cCritterBullet
{
DECLARE_SERIAL(cCritterDamPlayerBullet);
public:
	cCritterDamPlayerBullet();
//overloads
	virtual BOOL isTarget(cCritter *pcritter);
};

class cCritterDamWall : public cCritterWall
{
DECLARE_SERIAL(cCritterDamWall);
public:
	cCritterDamWall(cGame *pownergame = NULL):cCritterWall(pownergame){}
		//Don't actually use this one.
	cCritterDamWall(const cVector &enda, const cVector &endb, 
		Real thickness = cGameDambuilder::WALLTHICKNESS, cGame *pownergame= NULL);
};

#endif //GAMEDAMBUILDER_H