00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef STEAM_HH_
00018 # define STEAM_HH_
00019
00020 # include "Player.hh"
00021 # include "Team.hh"
00022
00023 class SPlayer;
00024 class SPlayerMsg;
00025 class SRules;
00026
00037 class STeam : public Team<SPlayer>
00038 {
00039 public:
00040 STeam(int team_id, SRules* r, SPlayerMsg* pm);
00041
00042 int state_;
00043
00044 bool canDeclareAction(const MsgDeclare* pkt);
00045
00047 bool canDoAction(const Packet* pkt, SPlayer* p);
00048
00049 void resetTurn();
00050 void setProneStunned();
00051 void prepareKickoff();
00052
00054 SPlayer* getActivePlayer();
00056 void setPusher(SPlayer* p);
00057 void setNbChoices(int nb);
00058
00059
00060 void msgTeamInfo(const MsgTeamInfo* m);
00061 void msgPlayerCreate(const MsgPlayerCreate* m);
00062 void msgReroll(const MsgReroll* m);
00063 void msgBlockDice(const MsgBlockDice* m);
00064 void msgFollow(const MsgFollow* m);
00065 void msgBlockPush(const MsgBlockPush* m);
00066
00067 private:
00068 int active_player_id_;
00069 SRules* r_;
00070 SPlayerMsg* pm_;
00071
00072 int nb_choices_;
00073 SPlayer* current_pusher_;
00074 };
00075
00076 #endif