finishing up my reformatting of the source from November/December following the guidelines that were posted. some extra things I added: * Any empty virtual declarations were kept to one line. * Enums were split up into separate lines to promote uniformity across all headers. ( each header file had a different style for enums)
58 lines
1.1 KiB
C++
58 lines
1.1 KiB
C++
#ifndef _PHASERING_H_
|
|
#define _PHASERING_H_
|
|
|
|
#include <list>
|
|
#include <string>
|
|
using namespace std;
|
|
|
|
/*
|
|
The class that handles the phases of a turn
|
|
*/
|
|
|
|
class Player;
|
|
|
|
typedef enum
|
|
{
|
|
BLOCKERS,
|
|
TRIGGERS,
|
|
ORDER,
|
|
FIRST_STRIKE,
|
|
END_FIRST_STRIKE,
|
|
DAMAGE,
|
|
END_DAMAGE
|
|
} CombatStep;
|
|
|
|
class Phase
|
|
{
|
|
public:
|
|
int id;
|
|
Player * player;
|
|
Phase(int id, Player *player) :
|
|
id(id), player(player)
|
|
{
|
|
}
|
|
;
|
|
};
|
|
|
|
class PhaseRing
|
|
{
|
|
private:
|
|
static bool extraDamagePhase(int id);
|
|
public:
|
|
list<Phase *> ring;
|
|
list<Phase *>::iterator current;
|
|
Phase * getCurrentPhase();
|
|
Phase * forward(bool sendEvents = true);
|
|
Phase * goToPhase(int id, Player * player, bool sendEvents = true);
|
|
PhaseRing(Player* players[], int nbPlayers = 2);
|
|
~PhaseRing();
|
|
int addPhase(Phase * phase);
|
|
int addPhaseBefore(int id, Player* player, int after_id, Player * after_player, int allOccurences = 1);
|
|
int removePhase(int id, Player * player, int allOccurences = 1);
|
|
static const char * phaseName(int id);
|
|
static int phaseStrToInt(string s);
|
|
|
|
};
|
|
|
|
#endif
|