89 lines
1.7 KiB
C++
89 lines
1.7 KiB
C++
#ifndef _GUIHAND_H_
|
|
#define _GUIHAND_H_
|
|
|
|
#include "GuiLayers.h"
|
|
#include "WEvent.h"
|
|
#include "MTGGameZones.h"
|
|
#include "CardGui.h"
|
|
#include "GuiHand.h"
|
|
|
|
class GuiHand;
|
|
|
|
struct HandLimitor : public Limitor
|
|
{
|
|
GuiHand* hand;
|
|
virtual bool select(Target*);
|
|
virtual bool greyout(Target*);
|
|
|
|
HandLimitor(GuiHand* hand);
|
|
virtual ~HandLimitor(){};
|
|
};
|
|
|
|
class GuiHand : public GuiLayer
|
|
{
|
|
public:
|
|
static const float ClosedRowX;
|
|
static const float LeftRowX;
|
|
static const float RightRowX;
|
|
|
|
static const float OpenX;
|
|
static const float ClosedX;
|
|
static const float OpenY;
|
|
static const float ClosedY;
|
|
|
|
protected:
|
|
const MTGHand* hand;
|
|
JQuadPtr back;
|
|
vector<CardView*> cards;
|
|
|
|
public:
|
|
GuiHand(GameObserver* observer, MTGHand* hand);
|
|
~GuiHand();
|
|
void Update(float dt);
|
|
bool isInHand(CardView*);
|
|
|
|
friend struct HandLimitor;
|
|
};
|
|
|
|
class GuiHandOpponent : public GuiHand
|
|
{
|
|
public:
|
|
GuiHandOpponent(GameObserver* observer, MTGHand* hand);
|
|
virtual void Render();
|
|
virtual int receiveEventPlus(WEvent* e);
|
|
virtual int receiveEventMinus(WEvent* e);
|
|
};
|
|
|
|
class GuiHandSelf : public GuiHand
|
|
{
|
|
protected:
|
|
typedef enum
|
|
{
|
|
Open,
|
|
Closed
|
|
} HandState;
|
|
HandState state;
|
|
Pos backpos;
|
|
|
|
public:
|
|
GuiHandSelf(GameObserver* observer, MTGHand* hand);
|
|
~GuiHandSelf();
|
|
virtual int receiveEventPlus(WEvent* e);
|
|
virtual int receiveEventMinus(WEvent* e);
|
|
|
|
void Repos();
|
|
bool CheckUserInput(JButton key);
|
|
virtual void Render();
|
|
void Update(float dt);
|
|
float LeftBoundary();
|
|
|
|
HandState GetState()
|
|
{
|
|
return state;
|
|
}
|
|
|
|
HandLimitor* limitor;
|
|
};
|
|
|
|
#endif // _GUIHAND_H_
|