This commit is contained in:
Max-Wilhelm Bruker 2009-08-18 16:16:27 +02:00
parent cb90463530
commit 1d400e195d
15 changed files with 507 additions and 204 deletions

View file

@ -340,9 +340,9 @@ PendingCommand *Client::delCounter(const QString &counter)
return cmd(QString("del_counter|%1").arg(counter)); return cmd(QString("del_counter|%1").arg(counter));
} }
PendingCommand *Client::setActivePlayer(int player) PendingCommand *Client::nextTurn()
{ {
return cmd(QString("set_active_player|%1").arg(player)); return cmd(QString("next_turn"));
} }
PendingCommand *Client::setActivePhase(int phase) PendingCommand *Client::setActivePhase(int phase)

View file

@ -89,6 +89,7 @@ public:
void connectToServer(const QString &hostname, unsigned int port, const QString &_playerName, const QString &_password); void connectToServer(const QString &hostname, unsigned int port, const QString &_playerName, const QString &_password);
void disconnectFromServer(); void disconnectFromServer();
public slots:
PendingCommand *listGames(); PendingCommand *listGames();
PendingCommand *listPlayers(); PendingCommand *listPlayers();
PendingCommand *createGame(const QString &description, const QString &password, unsigned int maxPlayers); PendingCommand *createGame(const QString &description, const QString &password, unsigned int maxPlayers);
@ -107,11 +108,10 @@ public:
PendingCommand *addCounter(const QString &counter, QColor color, int value); PendingCommand *addCounter(const QString &counter, QColor color, int value);
PendingCommand *setCounter(const QString &counter, int value); PendingCommand *setCounter(const QString &counter, int value);
PendingCommand *delCounter(const QString &counter); PendingCommand *delCounter(const QString &counter);
PendingCommand *setActivePlayer(int player); PendingCommand *nextTurn();
PendingCommand *setActivePhase(int phase); PendingCommand *setActivePhase(int phase);
PendingCommand *dumpZone(int player, const QString &zone, int numberCards); PendingCommand *dumpZone(int player, const QString &zone, int numberCards);
PendingCommand *stopDumpZone(int player, const QString &zone); PendingCommand *stopDumpZone(int player, const QString &zone);
public slots:
void submitDeck(const QStringList &deck); void submitDeck(const QStringList &deck);
}; };

View file

@ -240,7 +240,7 @@ void Game::gameEvent(const ServerEventData &msg)
case eventSetActivePhase: { case eventSetActivePhase: {
QStringList data = msg.getEventData(); QStringList data = msg.getEventData();
int phase = data[0].toInt(); int phase = data[0].toInt();
emit setActivePhase(p, phase); emit setActivePhase(phase);
break; break;
} }

View file

@ -79,7 +79,7 @@ signals:
void logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards); void logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards);
void logStopDumpZone(Player *player, QString zoneName, QString zoneOwner); void logStopDumpZone(Player *player, QString zoneName, QString zoneOwner);
void logSetActivePlayer(Player *player); void logSetActivePlayer(Player *player);
void setActivePhase(Player *player, int phase); void setActivePhase(int phase);
public: public:
Game(CardDatabase *_db, Client *_client, QGraphicsScene *_scene, QMenu *_actionsMenu, QMenu *_cardMenu, int playerId, const QString &playerName, QObject *parent = 0); Game(CardDatabase *_db, Client *_client, QGraphicsScene *_scene, QMenu *_actionsMenu, QMenu *_cardMenu, int playerId, const QString &playerName, QObject *parent = 0);
~Game(); ~Game();

View file

@ -207,9 +207,23 @@ void MessageLogWidget::logSetActivePlayer(Player *player)
append("---"); append("---");
} }
void MessageLogWidget::logSetActivePhase(Player *player, int phase) void MessageLogWidget::logSetActivePhase(int phase)
{ {
append("<font color=\"green\">" + tr("It is now the %1 phase.").arg(phase) + "</font>"); QString phaseName;
switch (phase) {
case 0: phaseName = tr("untap step"); break;
case 1: phaseName = tr("upkeep step"); break;
case 2: phaseName = tr("draw step"); break;
case 3: phaseName = tr("first main phase"); break;
case 4: phaseName = tr("beginning of combat step"); break;
case 5: phaseName = tr("declare attackers step"); break;
case 6: phaseName = tr("declare blockers step"); break;
case 7: phaseName = tr("combat damage step"); break;
case 8: phaseName = tr("end of combat step"); break;
case 9: phaseName = tr("second main phase"); break;
case 10: phaseName = tr("end of turn step"); break;
}
append("<font color=\"green\">" + tr("It is now the %1.").arg(phaseName) + "</font>");
} }
void MessageLogWidget::connectToGame(Game *game) void MessageLogWidget::connectToGame(Game *game)
@ -232,7 +246,7 @@ void MessageLogWidget::connectToGame(Game *game)
connect(game, SIGNAL(logDumpZone(Player *, QString, QString, int)), this, SLOT(logDumpZone(Player *, QString, QString, int))); connect(game, SIGNAL(logDumpZone(Player *, QString, QString, int)), this, SLOT(logDumpZone(Player *, QString, QString, int)));
connect(game, SIGNAL(logStopDumpZone(Player *, QString, QString)), this, SLOT(logStopDumpZone(Player *, QString, QString))); connect(game, SIGNAL(logStopDumpZone(Player *, QString, QString)), this, SLOT(logStopDumpZone(Player *, QString, QString)));
connect(game, SIGNAL(logSetActivePlayer(Player *)), this, SLOT(logSetActivePlayer(Player *))); connect(game, SIGNAL(logSetActivePlayer(Player *)), this, SLOT(logSetActivePlayer(Player *)));
connect(game, SIGNAL(setActivePhase(Player *, int)), this, SLOT(logSetActivePhase(Player *, int))); connect(game, SIGNAL(setActivePhase(int)), this, SLOT(logSetActivePhase(int)));
} }
MessageLogWidget::MessageLogWidget(QWidget *parent) MessageLogWidget::MessageLogWidget(QWidget *parent)

View file

@ -38,7 +38,7 @@ private slots:
void logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards); void logDumpZone(Player *player, QString zoneName, QString zoneOwner, int numberCards);
void logStopDumpZone(Player *player, QString zoneName, QString zoneOwner); void logStopDumpZone(Player *player, QString zoneName, QString zoneOwner);
void logSetActivePlayer(Player *player); void logSetActivePlayer(Player *player);
void logSetActivePhase(Player *player, int phase); void logSetActivePhase(int phase);
public: public:
void connectToGame(Game *game); void connectToGame(Game *game);
MessageLogWidget(QWidget *parent = 0); MessageLogWidget(QWidget *parent = 0);

View file

@ -1,12 +1,11 @@
#include "phasestoolbar.h" #include "phasestoolbar.h"
#include <QAction> #include <QAction>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QButtonGroup>
#include <QPainter> #include <QPainter>
#include <QPen> #include <QPen>
PhaseButton::PhaseButton(QIcon icon) PhaseButton::PhaseButton(QIcon icon)
: QPushButton(icon, QString()) : QPushButton(icon, QString()), active(false)
{ {
} }
@ -19,27 +18,23 @@ void PhaseButton::update()
void PhaseButton::paintEvent(QPaintEvent *event) void PhaseButton::paintEvent(QPaintEvent *event)
{ {
QPushButton::paintEvent(event); QPushButton::paintEvent(event);
if (isChecked()) { if (active) {
QPainter painter(this); QPainter painter(this);
int height = size().height(); int height = size().height();
int width = size().width(); int width = size().width();
QPen pen; QPen pen;
pen.setWidth(3); pen.setColor(QColor::fromRgb(180, 0, 0, 200));
pen.setColor(QColor::fromRgb(180, 0, 0));
painter.setPen(pen); painter.setPen(pen);
// painter.setPen(QColor(0, 0, 0, 0));
QRadialGradient grad(QPointF(0.5, 0.5), 0.5); QRadialGradient grad(QPointF(0.5, 0.5), 0.5);
grad.setCoordinateMode(QGradient::ObjectBoundingMode); grad.setCoordinateMode(QGradient::ObjectBoundingMode);
grad.setColorAt(0, QColor(180, 0, 0, 0)); grad.setColorAt(0, QColor(180, 0, 0, 0));
grad.setColorAt(0.8, QColor(180, 0, 0, 0)); grad.setColorAt(0.8, QColor(180, 0, 0, 0));
grad.setColorAt(1, QColor(180, 0, 0, 255)); grad.setColorAt(1, QColor(180, 0, 0, 200));
painter.setBrush(QBrush(grad)); painter.setBrush(QBrush(grad));
// painter.drawEllipse(QRect(0, 0, width, height));
painter.drawRect(3, 3, width - 7, height - 7); painter.drawRect(3, 3, width - 7, height - 7);
} }
} }
@ -69,38 +64,34 @@ PhasesToolbar::PhasesToolbar(QWidget *parent)
<< main2Button << cleanupButton; << main2Button << cleanupButton;
for (int i = 0; i < buttonList.size(); ++i) { for (int i = 0; i < buttonList.size(); ++i) {
buttonList[i]->setCheckable(true); buttonList[i]->setIconSize(QSize(36, 36));
buttonList[i]->setIconSize(QSize(40, 40)); connect(buttonList[i], SIGNAL(clicked()), this, SLOT(phaseButtonClicked()));
} }
QPushButton *nextTurnButton = new QPushButton(QIcon(":/resources/icon_nextturn.svg"), QString()); QPushButton *nextTurnButton = new QPushButton(QIcon(":/resources/icon_nextturn.svg"), QString());
nextTurnButton->setIconSize(QSize(40, 40)); nextTurnButton->setIconSize(QSize(36, 36));
connect(nextTurnButton, SIGNAL(clicked()), this, SIGNAL(signalNextTurn()));
QVBoxLayout *layout = new QVBoxLayout; QVBoxLayout *layout = new QVBoxLayout;
layout->setSpacing(0); layout->setSpacing(0);
QButtonGroup *bg = new QButtonGroup;
for (int i = 0; i < buttonList.size(); ++i) {
bg->addButton(buttonList[i]);
}
layout->addStretch(1); layout->addStretch(1);
layout->addWidget(untapButton); layout->addWidget(untapButton);
layout->addWidget(upkeepButton); layout->addWidget(upkeepButton);
layout->addWidget(drawButton); layout->addWidget(drawButton);
layout->addSpacing(15); layout->addSpacing(10);
layout->addWidget(main1Button); layout->addWidget(main1Button);
layout->addSpacing(15); layout->addSpacing(10);
layout->addWidget(combatStartButton); layout->addWidget(combatStartButton);
layout->addWidget(combatAttackersButton); layout->addWidget(combatAttackersButton);
layout->addWidget(combatBlockersButton); layout->addWidget(combatBlockersButton);
layout->addWidget(combatDamageButton); layout->addWidget(combatDamageButton);
layout->addWidget(combatEndButton); layout->addWidget(combatEndButton);
layout->addSpacing(15); layout->addSpacing(10);
layout->addWidget(main2Button); layout->addWidget(main2Button);
layout->addSpacing(15); layout->addSpacing(10);
layout->addWidget(cleanupButton); layout->addWidget(cleanupButton);
layout->addSpacing(25); layout->addSpacing(20);
layout->addWidget(nextTurnButton); layout->addWidget(nextTurnButton);
layout->addStretch(1); layout->addStretch(1);
@ -122,3 +113,18 @@ void PhasesToolbar::retranslateUi()
buttonList[9]->setPhaseText(tr("Second main phase")); buttonList[9]->setPhaseText(tr("Second main phase"));
buttonList[10]->setPhaseText(tr("End of turn step")); buttonList[10]->setPhaseText(tr("End of turn step"));
} }
void PhasesToolbar::setActivePhase(int phase)
{
if (phase >= buttonList.size())
return;
for (int i = 0; i < buttonList.size(); ++i)
buttonList[i]->setActive(i == phase);
}
void PhasesToolbar::phaseButtonClicked()
{
PhaseButton *button = qobject_cast<PhaseButton *>(sender());
emit signalSetPhase(buttonList.indexOf(button));
}

View file

@ -5,15 +5,19 @@
#include <QList> #include <QList>
#include <QPushButton> #include <QPushButton>
class Player;
class PhaseButton : public QPushButton { class PhaseButton : public QPushButton {
Q_OBJECT Q_OBJECT
private: private:
QString phaseText; QString phaseText;
bool active;
public: public:
PhaseButton(); PhaseButton();
PhaseButton(QIcon); PhaseButton(QIcon);
void setPhaseText(const QString &_phaseText); void setPhaseText(const QString &_phaseText);
QString getPhaseText() const { return phaseText; } QString getPhaseText() const { return phaseText; }
void setActive(bool _active) { active = _active; update(); }
public slots: public slots:
void update(); void update();
protected: protected:
@ -22,11 +26,18 @@ protected:
class PhasesToolbar : public QFrame { class PhasesToolbar : public QFrame {
Q_OBJECT Q_OBJECT
private:
QList<PhaseButton *> buttonList;
public: public:
PhasesToolbar(QWidget *parent = 0); PhasesToolbar(QWidget *parent = 0);
void retranslateUi(); void retranslateUi();
private: public slots:
QList<PhaseButton *> buttonList; void setActivePhase(int phase);
private slots:
void phaseButtonClicked();
signals:
void signalSetPhase(int phase);
void signalNextTurn();
}; };
#endif #endif

View file

@ -68,6 +68,7 @@ void MainWindow::statusChanged(ProtocolStatus _status)
aDisconnect->setEnabled(false); aDisconnect->setEnabled(false);
aRestartGame->setEnabled(false); aRestartGame->setEnabled(false);
aLeaveGame->setEnabled(false); aLeaveGame->setEnabled(false);
phasesToolbar->setEnabled(false);
emit logDisconnected(); emit logDisconnected();
break; break;
case StatusLoggingIn: case StatusLoggingIn:
@ -81,11 +82,13 @@ void MainWindow::statusChanged(ProtocolStatus _status)
} }
aRestartGame->setEnabled(false); aRestartGame->setEnabled(false);
aLeaveGame->setEnabled(false); aLeaveGame->setEnabled(false);
phasesToolbar->setEnabled(false);
GameSelector *gameSelector = new GameSelector(client); GameSelector *gameSelector = new GameSelector(client);
viewLayout->insertWidget(0, gameSelector); viewLayout->insertWidget(0, gameSelector);
} }
case StatusPlaying: case StatusPlaying:
phasesToolbar->setEnabled(true);
break; break;
default: default:
break; break;
@ -166,6 +169,7 @@ void MainWindow::playerIdReceived(int id, QString name)
connect(game, SIGNAL(hoverCard(QString)), this, SLOT(hoverCard(QString))); connect(game, SIGNAL(hoverCard(QString)), this, SLOT(hoverCard(QString)));
connect(game, SIGNAL(playerAdded(Player *)), this, SLOT(playerAdded(Player *))); connect(game, SIGNAL(playerAdded(Player *)), this, SLOT(playerAdded(Player *)));
connect(game, SIGNAL(playerRemoved(Player *)), this, SLOT(playerRemoved(Player *))); connect(game, SIGNAL(playerRemoved(Player *)), this, SLOT(playerRemoved(Player *)));
connect(game, SIGNAL(setActivePhase(int)), phasesToolbar, SLOT(setActivePhase(int)));
playerAdded(game->getLocalPlayer()); playerAdded(game->getLocalPlayer());
messageLog->connectToGame(game); messageLog->connectToGame(game);
@ -289,7 +293,8 @@ MainWindow::MainWindow(QTranslator *_translator, QWidget *parent)
viewLayout = new QVBoxLayout; viewLayout = new QVBoxLayout;
viewLayout->addWidget(view); viewLayout->addWidget(view);
PhasesToolbar *phasesToolbar = new PhasesToolbar; phasesToolbar = new PhasesToolbar;
phasesToolbar->setEnabled(false);
QHBoxLayout *mainLayout = new QHBoxLayout; QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(phasesToolbar); mainLayout->addWidget(phasesToolbar);
@ -312,6 +317,8 @@ MainWindow::MainWindow(QTranslator *_translator, QWidget *parent)
connect(this, SIGNAL(logDisconnected()), messageLog, SLOT(logDisconnected())); connect(this, SIGNAL(logDisconnected()), messageLog, SLOT(logDisconnected()));
connect(client, SIGNAL(logSocketError(const QString &)), messageLog, SLOT(logSocketError(const QString &))); connect(client, SIGNAL(logSocketError(const QString &)), messageLog, SLOT(logSocketError(const QString &)));
connect(client, SIGNAL(serverError(ServerResponse)), messageLog, SLOT(logServerError(ServerResponse))); connect(client, SIGNAL(serverError(ServerResponse)), messageLog, SLOT(logServerError(ServerResponse)));
connect(phasesToolbar, SIGNAL(signalSetPhase(int)), client, SLOT(setActivePhase(int)));
connect(phasesToolbar, SIGNAL(signalNextTurn()), client, SLOT(nextTurn()));
createActions(); createActions();
createMenus(); createMenus();

View file

@ -39,6 +39,7 @@ class QPushButton;
class ServerZoneCard; class ServerZoneCard;
class ZoneViewLayout; class ZoneViewLayout;
class ZoneViewWidget; class ZoneViewWidget;
class PhasesToolbar;
class MainWindow : public QMainWindow { class MainWindow : public QMainWindow {
Q_OBJECT Q_OBJECT
@ -78,6 +79,7 @@ private:
MessageLogWidget *messageLog; MessageLogWidget *messageLog;
QLabel *sayLabel; QLabel *sayLabel;
QLineEdit *sayEdit; QLineEdit *sayEdit;
PhasesToolbar *phasesToolbar;
Client *client; Client *client;
QGraphicsScene *scene; QGraphicsScene *scene;

View file

@ -232,27 +232,27 @@
<context> <context>
<name>DlgSettings</name> <name>DlgSettings</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="334"/> <location filename="../src/dlg_settings.cpp" line="354"/>
<source>Settings</source> <source>Settings</source>
<translation>Einstellungen</translation> <translation>Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="336"/> <location filename="../src/dlg_settings.cpp" line="356"/>
<source>General</source> <source>General</source>
<translation>Allgemeines</translation> <translation>Allgemeines</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="337"/> <location filename="../src/dlg_settings.cpp" line="357"/>
<source>Appearance</source> <source>Appearance</source>
<translation>Erscheinungsbild</translation> <translation>Erscheinungsbild</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="338"/> <location filename="../src/dlg_settings.cpp" line="358"/>
<source>Messages</source> <source>Messages</source>
<translation>Nachrichten</translation> <translation>Nachrichten</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="340"/> <location filename="../src/dlg_settings.cpp" line="360"/>
<source>&amp;Close</source> <source>&amp;Close</source>
<translation>S&amp;chließen</translation> <translation>S&amp;chließen</translation>
</message> </message>
@ -446,48 +446,48 @@
<translation>F10</translation> <translation>F10</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="290"/> <location filename="../src/game.cpp" line="305"/>
<source>Set life</source> <source>Set life</source>
<translation>Setze Leben</translation> <translation>Setze Leben</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="290"/> <location filename="../src/game.cpp" line="305"/>
<source>New life total:</source> <source>New life total:</source>
<translation>Neues Leben insgesammt:</translation> <translation>Neues Leben insgesammt:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="303"/> <location filename="../src/game.cpp" line="318"/>
<source>Roll dice</source> <source>Roll dice</source>
<translation>Würfeln</translation> <translation>Würfeln</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="303"/> <location filename="../src/game.cpp" line="318"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation>Anzahl der Seiten:</translation> <translation>Anzahl der Seiten:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="315"/> <location filename="../src/game.cpp" line="330"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation>Karten ziehen</translation> <translation>Karten ziehen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="315"/> <location filename="../src/game.cpp" line="330"/>
<location filename="../src/game.cpp" line="393"/> <location filename="../src/game.cpp" line="408"/>
<source>Number:</source> <source>Number:</source>
<translation>Anzahl:</translation> <translation>Anzahl:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="322"/> <location filename="../src/game.cpp" line="337"/>
<source>Create token</source> <source>Create token</source>
<translation>Token erstellen</translation> <translation>Token erstellen</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="322"/> <location filename="../src/game.cpp" line="337"/>
<source>Name:</source> <source>Name:</source>
<translation>Name:</translation> <translation>Name:</translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="393"/> <location filename="../src/game.cpp" line="408"/>
<source>Set counters</source> <source>Set counters</source>
<translation>Setze Zählmarke</translation> <translation>Setze Zählmarke</translation>
</message> </message>
@ -566,46 +566,51 @@
<context> <context>
<name>GeneralSettingsPage</name> <name>GeneralSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="106"/> <location filename="../src/dlg_settings.cpp" line="114"/>
<location filename="../src/dlg_settings.cpp" line="117"/> <location filename="../src/dlg_settings.cpp" line="125"/>
<location filename="../src/dlg_settings.cpp" line="130"/> <location filename="../src/dlg_settings.cpp" line="138"/>
<location filename="../src/dlg_settings.cpp" line="143"/> <location filename="../src/dlg_settings.cpp" line="151"/>
<source>Choose path</source> <source>Choose path</source>
<translation>Pfad auswählen</translation> <translation>Pfad auswählen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="165"/> <location filename="../src/dlg_settings.cpp" line="182"/>
<source>Personal settings</source> <source>Personal settings</source>
<translation>Persönliche Einstellungen</translation> <translation>Persönliche Einstellungen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="166"/> <location filename="../src/dlg_settings.cpp" line="183"/>
<source>Language:</source> <source>Language:</source>
<translation>Sprache:</translation> <translation>Sprache:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="167"/> <location filename="../src/dlg_settings.cpp" line="184"/>
<source>Download card pictures on the fly</source>
<translation>Kartenbilder dynamisch herunterladen</translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="185"/>
<source>Paths</source> <source>Paths</source>
<translation>Pfade</translation> <translation>Pfade</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="168"/> <location filename="../src/dlg_settings.cpp" line="186"/>
<source>Decks directory:</source> <source>Decks directory:</source>
<translation>Verzeichnis mit Decklisten:</translation> <translation>Verzeichnis mit Decklisten:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="169"/> <location filename="../src/dlg_settings.cpp" line="187"/>
<source>Pictures directory:</source> <source>Pictures directory:</source>
<translation>Verzeichnis mit Bilddateien:</translation> <translation>Verzeichnis mit Bilddateien:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="170"/> <location filename="../src/dlg_settings.cpp" line="188"/>
<source>Path to card database:</source> <source>Path to card database:</source>
<translation>Pfad zur Kartendatenbank:</translation> <translation>Pfad zur Kartendatenbank:</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="20"/> <location filename="../src/dlg_settings.cpp" line="21"/>
<location filename="../src/dlg_settings.cpp" line="101"/> <location filename="../src/dlg_settings.cpp" line="109"/>
<source>English</source> <source>English</source>
<translation>Deutsch</translation> <translation>Deutsch</translation>
</message> </message>
@ -613,92 +618,92 @@
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../src/window_main.cpp" line="180"/> <location filename="../src/window_main.cpp" line="184"/>
<source>Error</source> <source>Error</source>
<translation>Fehler</translation> <translation>Fehler</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="180"/> <location filename="../src/window_main.cpp" line="184"/>
<source>Server timeout</source> <source>Server timeout</source>
<translation>Server Zeitüberschreitung</translation> <translation>Server Zeitüberschreitung</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="185"/> <location filename="../src/window_main.cpp" line="189"/>
<source>&amp;Connect...</source> <source>&amp;Connect...</source>
<translation>&amp;Verbinden...</translation> <translation>&amp;Verbinden...</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="186"/> <location filename="../src/window_main.cpp" line="190"/>
<source>&amp;Disconnect</source> <source>&amp;Disconnect</source>
<translation>Verbindung &amp;trennen</translation> <translation>Verbindung &amp;trennen</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="187"/> <location filename="../src/window_main.cpp" line="191"/>
<source>&amp;Restart game...</source> <source>&amp;Restart game...</source>
<translation>Spiel neu sta&amp;rten...</translation> <translation>Spiel neu sta&amp;rten...</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="188"/> <location filename="../src/window_main.cpp" line="192"/>
<source>F2</source> <source>F2</source>
<translation>F2</translation> <translation>F2</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="189"/> <location filename="../src/window_main.cpp" line="193"/>
<source>&amp;Leave game</source> <source>&amp;Leave game</source>
<translation>Spiel ver&amp;lassen</translation> <translation>Spiel ver&amp;lassen</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="190"/> <location filename="../src/window_main.cpp" line="194"/>
<source>&amp;Deck editor</source> <source>&amp;Deck editor</source>
<translation>&amp;Deck-Editor</translation> <translation>&amp;Deck-Editor</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="191"/> <location filename="../src/window_main.cpp" line="195"/>
<source>&amp;Full screen</source> <source>&amp;Full screen</source>
<translation>&amp;Vollbild</translation> <translation>&amp;Vollbild</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="192"/> <location filename="../src/window_main.cpp" line="196"/>
<source>Ctrl+F</source> <source>Ctrl+F</source>
<translation>Ctrl+F</translation> <translation>Ctrl+F</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="193"/> <location filename="../src/window_main.cpp" line="197"/>
<source>&amp;Settings...</source> <source>&amp;Settings...</source>
<translation>&amp;Einstellungen...</translation> <translation>&amp;Einstellungen...</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="194"/> <location filename="../src/window_main.cpp" line="198"/>
<source>&amp;Exit</source> <source>&amp;Exit</source>
<translation>&amp;Beenden</translation> <translation>&amp;Beenden</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="195"/> <location filename="../src/window_main.cpp" line="199"/>
<source>Close most recent zone view</source> <source>Close most recent zone view</source>
<translation>Letzte Zonenansicht schließen</translation> <translation>Letzte Zonenansicht schließen</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="196"/> <location filename="../src/window_main.cpp" line="200"/>
<source>Esc</source> <source>Esc</source>
<translation>Esc</translation> <translation>Esc</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="198"/> <location filename="../src/window_main.cpp" line="202"/>
<source>&amp;Game</source> <source>&amp;Game</source>
<translation>Spi&amp;el</translation> <translation>Spi&amp;el</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="199"/> <location filename="../src/window_main.cpp" line="203"/>
<source>&amp;Actions</source> <source>&amp;Actions</source>
<translation>&amp;Aktionen</translation> <translation>&amp;Aktionen</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="200"/> <location filename="../src/window_main.cpp" line="204"/>
<source>&amp;Card</source> <source>&amp;Card</source>
<translation>&amp;Karte</translation> <translation>&amp;Karte</translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="202"/> <location filename="../src/window_main.cpp" line="206"/>
<source>&amp;Say:</source> <source>&amp;Say:</source>
<translation>&amp;Sagen:</translation> <translation>&amp;Sagen:</translation>
</message> </message>
@ -771,106 +776,176 @@
<translation>%1 zieht %2 Karten</translation> <translation>%1 zieht %2 Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="106"/> <location filename="../src/messagelogwidget.cpp" line="101"/>
<source>a card</source>
<translation>eine Karte</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="109"/>
<source>from table</source> <source>from table</source>
<translation>vom Spielfeld</translation> <translation>vom Spielfeld</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="108"/> <location filename="../src/messagelogwidget.cpp" line="111"/>
<source>from graveyard</source> <source>from graveyard</source>
<translation>aus dem Friedhof</translation> <translation>aus dem Friedhof</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="110"/> <location filename="../src/messagelogwidget.cpp" line="113"/>
<source>from exile</source> <source>from exile</source>
<translation>aus dem Exil</translation> <translation>aus dem Exil</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="112"/> <location filename="../src/messagelogwidget.cpp" line="115"/>
<source>from hand</source> <source>from hand</source>
<translation>von der Hand</translation> <translation>von der Hand</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="115"/> <location filename="../src/messagelogwidget.cpp" line="118"/>
<source>from the bottom of his library</source> <source>from the bottom of his library</source>
<translation>von der Unterseite seiner Bibliothek</translation> <translation>von der Unterseite seiner Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="117"/> <location filename="../src/messagelogwidget.cpp" line="120"/>
<source>from the top of his library</source> <source>from the top of his library</source>
<translation>oben von seiner Bibliothek</translation> <translation>oben von seiner Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="119"/> <location filename="../src/messagelogwidget.cpp" line="122"/>
<source>from library</source> <source>from library</source>
<translation>von der Bibliothek</translation> <translation>von der Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="121"/> <location filename="../src/messagelogwidget.cpp" line="124"/>
<source>from sideboard</source> <source>from sideboard</source>
<translation>aus seinem Sideboard</translation> <translation>aus seinem Sideboard</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="125"/> <location filename="../src/messagelogwidget.cpp" line="128"/>
<source>%1 puts %2 into play %3</source> <source>%1 puts %2 into play %3</source>
<translation>%1 bringt %2 %3 ins Spiel</translation> <translation>%1 bringt %2 %3 ins Spiel</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="127"/> <location filename="../src/messagelogwidget.cpp" line="130"/>
<source>%1 puts %2 %3 into graveyard</source> <source>%1 puts %2 %3 into graveyard</source>
<translation>%1 legt %2 %3 in den Friedhof</translation> <translation>%1 legt %2 %3 in den Friedhof</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="129"/> <location filename="../src/messagelogwidget.cpp" line="132"/>
<source>%1 exiles %2 %3</source> <source>%1 exiles %2 %3</source>
<translation>%1 schickt %2 %3 ins Exil</translation> <translation>%1 schickt %2 %3 ins Exil</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="131"/> <location filename="../src/messagelogwidget.cpp" line="134"/>
<source>%1 moves %2 %3 to hand</source> <source>%1 moves %2 %3 to hand</source>
<translation>%1 nimmt %2 %3 auf die Hand</translation> <translation>%1 nimmt %2 %3 auf die Hand</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="134"/> <location filename="../src/messagelogwidget.cpp" line="137"/>
<source>%1 puts %2 %3 into his library</source> <source>%1 puts %2 %3 into his library</source>
<translation>%1 legt %2 %3 in seine Bibliothek</translation> <translation>%1 legt %2 %3 in seine Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="136"/> <location filename="../src/messagelogwidget.cpp" line="139"/>
<source>%1 puts %2 %3 on bottom of his library</source> <source>%1 puts %2 %3 on bottom of his library</source>
<translation>%1 legt %2 %3 unter seine Bibliothek</translation> <translation>%1 legt %2 %3 unter seine Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="138"/> <location filename="../src/messagelogwidget.cpp" line="141"/>
<source>%1 puts %2 %3 on top of his library</source> <source>%1 puts %2 %3 on top of his library</source>
<translation>%1 legt %2 %3 auf die Bibliothek</translation> <translation>%1 legt %2 %3 auf die Bibliothek</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="140"/> <location filename="../src/messagelogwidget.cpp" line="143"/>
<source>%1 puts %2 %3 into his library at position %4</source> <source>%1 puts %2 %3 into his library at position %4</source>
<translation>%1 legt %2 %3 in seine Bibliothek an Stelle %4</translation> <translation>%1 legt %2 %3 in seine Bibliothek an Stelle %4</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="142"/> <location filename="../src/messagelogwidget.cpp" line="145"/>
<source>%1 moves %2 %3 to sideboard</source> <source>%1 moves %2 %3 to sideboard</source>
<translation>%1 legt %2 %3 in sein Sideboard</translation> <translation>%1 legt %2 %3 in sein Sideboard</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="197"/> <location filename="../src/messagelogwidget.cpp" line="200"/>
<source>%1 stops looking at %2&apos;s %3</source> <source>%1 stops looking at %2&apos;s %3</source>
<translation>%1 sieht sich %2s %3 nicht mehr an</translation> <translation>%1 sieht sich %2s %3 nicht mehr an</translation>
</message> </message>
<message>
<location filename="../src/messagelogwidget.cpp" line="206"/>
<source>It is now %1&apos;s turn.</source>
<translation>%1 ist am Zug.</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="214"/>
<source>untap step</source>
<translation>das Enttappsegment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="215"/>
<source>upkeep step</source>
<translation>das Versorgungssegment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="216"/>
<source>draw step</source>
<translation>das Ziehsegment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="217"/>
<source>first main phase</source>
<translation>die erste Hauptphase</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="218"/>
<source>beginning of combat step</source>
<translation>das Anfangssegment der Kampfphase</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="219"/>
<source>declare attackers step</source>
<translation>das Angreifer-Deklarieren-Segment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="220"/>
<source>declare blockers step</source>
<translation>das Blocker-Deklarieren-Segment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="221"/>
<source>combat damage step</source>
<translation>das Kampfschadenssegment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="222"/>
<source>end of combat step</source>
<translation>das Endsegment der Kampfphase</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="223"/>
<source>second main phase</source>
<translation>die zweite Hauptphase</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="224"/>
<source>end of turn step</source>
<translation>das Ende-des-Zuges-Segment</translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="226"/>
<source>It is now the %1.</source>
<translation>Es ist nun %1.</translation>
</message>
<message> <message>
<source>%1 moves %2 %3 to %4</source> <source>%1 moves %2 %3 to %4</source>
<translation type="obsolete">%1 bewegt %2 %3 nach %4</translation> <translation type="obsolete">%1 bewegt %2 %3 nach %4</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>taps</source> <source>taps</source>
<translation>tappt</translation> <translation>tappt</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>untaps</source> <source>untaps</source>
<translation>enttappt</translation> <translation>enttappt</translation>
</message> </message>
@ -883,52 +958,52 @@
<translation type="obsolete">%1 bewegt %2 von %3 nach %4</translation> <translation type="obsolete">%1 bewegt %2 von %3 nach %4</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="149"/> <location filename="../src/messagelogwidget.cpp" line="152"/>
<source>%1 creates token: %2</source> <source>%1 creates token: %2</source>
<translation>%1 erstellt Token: %2</translation> <translation>%1 erstellt Token: %2</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="156"/> <location filename="../src/messagelogwidget.cpp" line="159"/>
<source>%1 places %2 counters on %3 (now %4)</source> <source>%1 places %2 counters on %3 (now %4)</source>
<translation>%1 legt %2 Zählmarken auf %3 (jetzt %4)</translation> <translation>%1 legt %2 Zählmarken auf %3 (jetzt %4)</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="158"/> <location filename="../src/messagelogwidget.cpp" line="161"/>
<source>%1 removes %2 counters from %3 (now %4)</source> <source>%1 removes %2 counters from %3 (now %4)</source>
<translation>%1 entfernt %2 Zählmarken von %3 (jetzt %4)</translation> <translation>%1 entfernt %2 Zählmarken von %3 (jetzt %4)</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="166"/> <location filename="../src/messagelogwidget.cpp" line="169"/>
<source>his permanents</source> <source>his permanents</source>
<translation>seine bleibenden Karten</translation> <translation>seine bleibenden Karten</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>%1 %2 %3</source> <source>%1 %2 %3</source>
<translation>%1 %2 %3</translation> <translation>%1 %2 %3</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="174"/> <location filename="../src/messagelogwidget.cpp" line="177"/>
<source>%1 sets counter &quot;%2&quot; to %3 (%4%5)</source> <source>%1 sets counter &quot;%2&quot; to %3 (%4%5)</source>
<translation>%1 setzt Zähler &quot;%2&quot; auf %3 (%4%5)</translation> <translation>%1 setzt Zähler &quot;%2&quot; auf %3 (%4%5)</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="181"/> <location filename="../src/messagelogwidget.cpp" line="184"/>
<source>%1 sets %2 to not untap normally.</source> <source>%1 sets %2 to not untap normally.</source>
<translation>%1 setzt %2 auf explizites Enttappen.</translation> <translation>%1 setzt %2 auf explizites Enttappen.</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="183"/> <location filename="../src/messagelogwidget.cpp" line="186"/>
<source>%1 sets %2 to untap normally.</source> <source>%1 sets %2 to untap normally.</source>
<translation>%1 setzt %2 auf normales Enttappen.</translation> <translation>%1 setzt %2 auf normales Enttappen.</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="190"/> <location filename="../src/messagelogwidget.cpp" line="193"/>
<source>%1 is looking at the top %2 cards of %3&apos;s %4</source> <source>%1 is looking at the top %2 cards of %3&apos;s %4</source>
<translation>%1 sieht sich die obersten %2 Karten von %3s %4 an</translation> <translation>%1 sieht sich die obersten %2 Karten von %3s %4 an</translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="192"/> <location filename="../src/messagelogwidget.cpp" line="195"/>
<source>%1 is looking at %2&apos;s %3</source> <source>%1 is looking at %2&apos;s %3</source>
<translation>%1 sieht sich %2s %3 an</translation> <translation>%1 sieht sich %2s %3 an</translation>
</message> </message>
@ -936,12 +1011,12 @@
<context> <context>
<name>MessagesSettingsPage</name> <name>MessagesSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="241"/> <location filename="../src/dlg_settings.cpp" line="259"/>
<source>&amp;Add</source> <source>&amp;Add</source>
<translation>&amp;Hinzufügen</translation> <translation>&amp;Hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="242"/> <location filename="../src/dlg_settings.cpp" line="260"/>
<source>&amp;Remove</source> <source>&amp;Remove</source>
<translation>&amp;Entfernen</translation> <translation>&amp;Entfernen</translation>
</message> </message>
@ -954,16 +1029,74 @@
<translation type="obsolete">Entfernen</translation> <translation type="obsolete">Entfernen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="224"/> <location filename="../src/dlg_settings.cpp" line="242"/>
<source>Add message</source> <source>Add message</source>
<translation>Nachricht hinzufügen</translation> <translation>Nachricht hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="224"/> <location filename="../src/dlg_settings.cpp" line="242"/>
<source>Message:</source> <source>Message:</source>
<translation>Nachricht:</translation> <translation>Nachricht:</translation>
</message> </message>
</context> </context>
<context>
<name>PhasesToolbar</name>
<message>
<location filename="../src/phasestoolbar.cpp" line="104"/>
<source>Untap step</source>
<translation>Enttappsegment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="105"/>
<source>Upkeep step</source>
<translation>Versorgungssegment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="106"/>
<source>Draw step</source>
<translation>Ziehsegment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="107"/>
<source>First main phase</source>
<translation>erste Hauptphase</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="108"/>
<source>Beginning of combat step</source>
<translation>Anfangssegment der Kampfphase</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="109"/>
<source>Declare attackers step</source>
<translation>Angreifer-Deklarieren-Segment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="110"/>
<source>Declare blockers step</source>
<translation>Blocker-Deklarieren-Segment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="111"/>
<source>Combat damage step</source>
<translation>Kampfschadenssegment</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="112"/>
<source>End of combat step</source>
<translation>Endsegment der Kampfphase</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="113"/>
<source>Second main phase</source>
<translation>zweite Hauptphase</translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="114"/>
<source>End of turn step</source>
<translation>Ende-des-Zuges-Segment</translation>
</message>
</context>
<context> <context>
<name>Player</name> <name>Player</name>
<message> <message>

View file

@ -173,27 +173,27 @@
<context> <context>
<name>DlgSettings</name> <name>DlgSettings</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="334"/> <location filename="../src/dlg_settings.cpp" line="354"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="336"/> <location filename="../src/dlg_settings.cpp" line="356"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="337"/> <location filename="../src/dlg_settings.cpp" line="357"/>
<source>Appearance</source> <source>Appearance</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="338"/> <location filename="../src/dlg_settings.cpp" line="358"/>
<source>Messages</source> <source>Messages</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="340"/> <location filename="../src/dlg_settings.cpp" line="360"/>
<source>&amp;Close</source> <source>&amp;Close</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -379,48 +379,48 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="290"/> <location filename="../src/game.cpp" line="305"/>
<source>Set life</source> <source>Set life</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="290"/> <location filename="../src/game.cpp" line="305"/>
<source>New life total:</source> <source>New life total:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="303"/> <location filename="../src/game.cpp" line="318"/>
<source>Roll dice</source> <source>Roll dice</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="303"/> <location filename="../src/game.cpp" line="318"/>
<source>Number of sides:</source> <source>Number of sides:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="315"/> <location filename="../src/game.cpp" line="330"/>
<source>Draw cards</source> <source>Draw cards</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="315"/> <location filename="../src/game.cpp" line="330"/>
<location filename="../src/game.cpp" line="393"/> <location filename="../src/game.cpp" line="408"/>
<source>Number:</source> <source>Number:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="322"/> <location filename="../src/game.cpp" line="337"/>
<source>Create token</source> <source>Create token</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="322"/> <location filename="../src/game.cpp" line="337"/>
<source>Name:</source> <source>Name:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/game.cpp" line="393"/> <location filename="../src/game.cpp" line="408"/>
<source>Set counters</source> <source>Set counters</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -499,46 +499,51 @@
<context> <context>
<name>GeneralSettingsPage</name> <name>GeneralSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="106"/> <location filename="../src/dlg_settings.cpp" line="114"/>
<location filename="../src/dlg_settings.cpp" line="117"/> <location filename="../src/dlg_settings.cpp" line="125"/>
<location filename="../src/dlg_settings.cpp" line="130"/> <location filename="../src/dlg_settings.cpp" line="138"/>
<location filename="../src/dlg_settings.cpp" line="143"/> <location filename="../src/dlg_settings.cpp" line="151"/>
<source>Choose path</source> <source>Choose path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="165"/> <location filename="../src/dlg_settings.cpp" line="182"/>
<source>Personal settings</source> <source>Personal settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="166"/> <location filename="../src/dlg_settings.cpp" line="183"/>
<source>Language:</source> <source>Language:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="167"/> <location filename="../src/dlg_settings.cpp" line="184"/>
<source>Download card pictures on the fly</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/dlg_settings.cpp" line="185"/>
<source>Paths</source> <source>Paths</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="168"/> <location filename="../src/dlg_settings.cpp" line="186"/>
<source>Decks directory:</source> <source>Decks directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="169"/> <location filename="../src/dlg_settings.cpp" line="187"/>
<source>Pictures directory:</source> <source>Pictures directory:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="170"/> <location filename="../src/dlg_settings.cpp" line="188"/>
<source>Path to card database:</source> <source>Path to card database:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="20"/> <location filename="../src/dlg_settings.cpp" line="21"/>
<location filename="../src/dlg_settings.cpp" line="101"/> <location filename="../src/dlg_settings.cpp" line="109"/>
<source>English</source> <source>English</source>
<translation>English</translation> <translation>English</translation>
</message> </message>
@ -546,92 +551,92 @@
<context> <context>
<name>MainWindow</name> <name>MainWindow</name>
<message> <message>
<location filename="../src/window_main.cpp" line="180"/> <location filename="../src/window_main.cpp" line="184"/>
<source>Error</source> <source>Error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="180"/> <location filename="../src/window_main.cpp" line="184"/>
<source>Server timeout</source> <source>Server timeout</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="185"/> <location filename="../src/window_main.cpp" line="189"/>
<source>&amp;Connect...</source> <source>&amp;Connect...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="186"/> <location filename="../src/window_main.cpp" line="190"/>
<source>&amp;Disconnect</source> <source>&amp;Disconnect</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="187"/> <location filename="../src/window_main.cpp" line="191"/>
<source>&amp;Restart game...</source> <source>&amp;Restart game...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="188"/> <location filename="../src/window_main.cpp" line="192"/>
<source>F2</source> <source>F2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="189"/> <location filename="../src/window_main.cpp" line="193"/>
<source>&amp;Leave game</source> <source>&amp;Leave game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="190"/> <location filename="../src/window_main.cpp" line="194"/>
<source>&amp;Deck editor</source> <source>&amp;Deck editor</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="191"/> <location filename="../src/window_main.cpp" line="195"/>
<source>&amp;Full screen</source> <source>&amp;Full screen</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="192"/> <location filename="../src/window_main.cpp" line="196"/>
<source>Ctrl+F</source> <source>Ctrl+F</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="193"/> <location filename="../src/window_main.cpp" line="197"/>
<source>&amp;Settings...</source> <source>&amp;Settings...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="194"/> <location filename="../src/window_main.cpp" line="198"/>
<source>&amp;Exit</source> <source>&amp;Exit</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="195"/> <location filename="../src/window_main.cpp" line="199"/>
<source>Close most recent zone view</source> <source>Close most recent zone view</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="196"/> <location filename="../src/window_main.cpp" line="200"/>
<source>Esc</source> <source>Esc</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="198"/> <location filename="../src/window_main.cpp" line="202"/>
<source>&amp;Game</source> <source>&amp;Game</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="199"/> <location filename="../src/window_main.cpp" line="203"/>
<source>&amp;Actions</source> <source>&amp;Actions</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="200"/> <location filename="../src/window_main.cpp" line="204"/>
<source>&amp;Card</source> <source>&amp;Card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/window_main.cpp" line="202"/> <location filename="../src/window_main.cpp" line="206"/>
<source>&amp;Say:</source> <source>&amp;Say:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -704,152 +709,222 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="106"/> <location filename="../src/messagelogwidget.cpp" line="101"/>
<source>a card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="109"/>
<source>from table</source> <source>from table</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="108"/> <location filename="../src/messagelogwidget.cpp" line="111"/>
<source>from graveyard</source> <source>from graveyard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="110"/> <location filename="../src/messagelogwidget.cpp" line="113"/>
<source>from exile</source> <source>from exile</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="112"/> <location filename="../src/messagelogwidget.cpp" line="115"/>
<source>from hand</source> <source>from hand</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="115"/> <location filename="../src/messagelogwidget.cpp" line="118"/>
<source>from the bottom of his library</source> <source>from the bottom of his library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="117"/> <location filename="../src/messagelogwidget.cpp" line="120"/>
<source>from the top of his library</source> <source>from the top of his library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="119"/> <location filename="../src/messagelogwidget.cpp" line="122"/>
<source>from library</source> <source>from library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="121"/> <location filename="../src/messagelogwidget.cpp" line="124"/>
<source>from sideboard</source> <source>from sideboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="125"/> <location filename="../src/messagelogwidget.cpp" line="128"/>
<source>%1 puts %2 into play %3</source> <source>%1 puts %2 into play %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="127"/> <location filename="../src/messagelogwidget.cpp" line="130"/>
<source>%1 puts %2 %3 into graveyard</source> <source>%1 puts %2 %3 into graveyard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="129"/> <location filename="../src/messagelogwidget.cpp" line="132"/>
<source>%1 exiles %2 %3</source> <source>%1 exiles %2 %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="131"/> <location filename="../src/messagelogwidget.cpp" line="134"/>
<source>%1 moves %2 %3 to hand</source> <source>%1 moves %2 %3 to hand</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="134"/> <location filename="../src/messagelogwidget.cpp" line="137"/>
<source>%1 puts %2 %3 into his library</source> <source>%1 puts %2 %3 into his library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="136"/> <location filename="../src/messagelogwidget.cpp" line="139"/>
<source>%1 puts %2 %3 on bottom of his library</source> <source>%1 puts %2 %3 on bottom of his library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="138"/> <location filename="../src/messagelogwidget.cpp" line="141"/>
<source>%1 puts %2 %3 on top of his library</source> <source>%1 puts %2 %3 on top of his library</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="140"/> <location filename="../src/messagelogwidget.cpp" line="143"/>
<source>%1 puts %2 %3 into his library at position %4</source> <source>%1 puts %2 %3 into his library at position %4</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="142"/> <location filename="../src/messagelogwidget.cpp" line="145"/>
<source>%1 moves %2 %3 to sideboard</source> <source>%1 moves %2 %3 to sideboard</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="197"/> <location filename="../src/messagelogwidget.cpp" line="200"/>
<source>%1 stops looking at %2&apos;s %3</source> <source>%1 stops looking at %2&apos;s %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="149"/> <location filename="../src/messagelogwidget.cpp" line="206"/>
<source>It is now %1&apos;s turn.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="214"/>
<source>untap step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="215"/>
<source>upkeep step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="216"/>
<source>draw step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="217"/>
<source>first main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="218"/>
<source>beginning of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="219"/>
<source>declare attackers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="220"/>
<source>declare blockers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="221"/>
<source>combat damage step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="222"/>
<source>end of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="223"/>
<source>second main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="224"/>
<source>end of turn step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="226"/>
<source>It is now the %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/messagelogwidget.cpp" line="152"/>
<source>%1 creates token: %2</source> <source>%1 creates token: %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="156"/> <location filename="../src/messagelogwidget.cpp" line="159"/>
<source>%1 places %2 counters on %3 (now %4)</source> <source>%1 places %2 counters on %3 (now %4)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="158"/> <location filename="../src/messagelogwidget.cpp" line="161"/>
<source>%1 removes %2 counters from %3 (now %4)</source> <source>%1 removes %2 counters from %3 (now %4)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>%1 %2 %3</source> <source>%1 %2 %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>taps</source> <source>taps</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="169"/> <location filename="../src/messagelogwidget.cpp" line="172"/>
<source>untaps</source> <source>untaps</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="174"/> <location filename="../src/messagelogwidget.cpp" line="177"/>
<source>%1 sets counter &quot;%2&quot; to %3 (%4%5)</source> <source>%1 sets counter &quot;%2&quot; to %3 (%4%5)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="181"/> <location filename="../src/messagelogwidget.cpp" line="184"/>
<source>%1 sets %2 to not untap normally.</source> <source>%1 sets %2 to not untap normally.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="183"/> <location filename="../src/messagelogwidget.cpp" line="186"/>
<source>%1 sets %2 to untap normally.</source> <source>%1 sets %2 to untap normally.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="190"/> <location filename="../src/messagelogwidget.cpp" line="193"/>
<source>%1 is looking at the top %2 cards of %3&apos;s %4</source> <source>%1 is looking at the top %2 cards of %3&apos;s %4</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="192"/> <location filename="../src/messagelogwidget.cpp" line="195"/>
<source>%1 is looking at %2&apos;s %3</source> <source>%1 is looking at %2&apos;s %3</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/messagelogwidget.cpp" line="166"/> <location filename="../src/messagelogwidget.cpp" line="169"/>
<source>his permanents</source> <source>his permanents</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -857,26 +932,84 @@
<context> <context>
<name>MessagesSettingsPage</name> <name>MessagesSettingsPage</name>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="241"/> <location filename="../src/dlg_settings.cpp" line="259"/>
<source>&amp;Add</source> <source>&amp;Add</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="242"/> <location filename="../src/dlg_settings.cpp" line="260"/>
<source>&amp;Remove</source> <source>&amp;Remove</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="224"/> <location filename="../src/dlg_settings.cpp" line="242"/>
<source>Add message</source> <source>Add message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/dlg_settings.cpp" line="224"/> <location filename="../src/dlg_settings.cpp" line="242"/>
<source>Message:</source> <source>Message:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>PhasesToolbar</name>
<message>
<location filename="../src/phasestoolbar.cpp" line="104"/>
<source>Untap step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="105"/>
<source>Upkeep step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="106"/>
<source>Draw step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="107"/>
<source>First main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="108"/>
<source>Beginning of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="109"/>
<source>Declare attackers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="110"/>
<source>Declare blockers step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="111"/>
<source>Combat damage step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="112"/>
<source>End of combat step</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="113"/>
<source>Second main phase</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/phasestoolbar.cpp" line="114"/>
<source>End of turn step</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>Player</name> <name>Player</name>
<message> <message>

View file

@ -108,10 +108,9 @@ void ServerGame::startGameIfReady()
for (int i = 0; i < players.size(); i++) for (int i = 0; i < players.size(); i++)
players.at(i)->setupZones(); players.at(i)->setupZones();
activePlayer = 0;
activePhase = 0;
gameStarted = true; gameStarted = true;
broadcastEvent("game_start", NULL); broadcastEvent("game_start", NULL);
setActivePlayer(0);
} }
void ServerGame::addPlayer(ServerSocket *player) void ServerGame::addPlayer(ServerSocket *player)

View file

@ -212,7 +212,7 @@ const ServerSocket::CommandProperties ServerSocket::commandList[ServerSocket::nu
{"stop_dump_zone", true, true, true, QList<QVariant::Type>() << QVariant::Int {"stop_dump_zone", true, true, true, QList<QVariant::Type>() << QVariant::Int
<< QVariant::String, &ServerSocket::cmdStopDumpZone}, << QVariant::String, &ServerSocket::cmdStopDumpZone},
{"roll_dice", true, true, true, QList<QVariant::Type>() << QVariant::Int, &ServerSocket::cmdRollDice}, {"roll_dice", true, true, true, QList<QVariant::Type>() << QVariant::Int, &ServerSocket::cmdRollDice},
{"set_active_player", true, true, true, QList<QVariant::Type>() << QVariant::Int, &ServerSocket::cmdSetActivePlayer}, {"next_turn", true, true, true, QList<QVariant::Type>(), &ServerSocket::cmdNextTurn},
{"set_active_phase", true, true, true, QList<QVariant::Type>() << QVariant::Int, &ServerSocket::cmdSetActivePhase} {"set_active_phase", true, true, true, QList<QVariant::Type>() << QVariant::Int, &ServerSocket::cmdSetActivePhase}
}; };
@ -603,13 +603,12 @@ ReturnMessage::ReturnCode ServerSocket::cmdRollDice(const QList<QVariant> &param
return ReturnMessage::ReturnOk; return ReturnMessage::ReturnOk;
} }
ReturnMessage::ReturnCode ServerSocket::cmdSetActivePlayer(const QList<QVariant> &params) ReturnMessage::ReturnCode ServerSocket::cmdNextTurn(const QList<QVariant> &params)
{ {
int active_player = params[0].toInt(); int activePlayer = game->getActivePlayer();
if (!game->getPlayer(active_player)) if (++activePlayer == game->getPlayerCount())
return ReturnMessage::ReturnContextError; activePlayer = 0;
game->setActivePlayer(active_player); game->setActivePlayer(activePlayer);
emit broadcastEvent(QString("set_active_player|%1").arg(active_player), this);
return ReturnMessage::ReturnOk; return ReturnMessage::ReturnOk;
} }
@ -620,7 +619,6 @@ ReturnMessage::ReturnCode ServerSocket::cmdSetActivePhase(const QList<QVariant>
if (game->getActivePlayer() != playerId) if (game->getActivePlayer() != playerId)
return ReturnMessage::ReturnContextError; return ReturnMessage::ReturnContextError;
game->setActivePhase(active_phase); game->setActivePhase(active_phase);
emit broadcastEvent(QString("set_active_phase|%1").arg(active_phase), this);
return ReturnMessage::ReturnOk; return ReturnMessage::ReturnOk;
} }

View file

@ -83,7 +83,7 @@ private:
ReturnMessage::ReturnCode cmdDumpZone(const QList<QVariant> &params); ReturnMessage::ReturnCode cmdDumpZone(const QList<QVariant> &params);
ReturnMessage::ReturnCode cmdStopDumpZone(const QList<QVariant> &params); ReturnMessage::ReturnCode cmdStopDumpZone(const QList<QVariant> &params);
ReturnMessage::ReturnCode cmdRollDice(const QList<QVariant> &params); ReturnMessage::ReturnCode cmdRollDice(const QList<QVariant> &params);
ReturnMessage::ReturnCode cmdSetActivePlayer(const QList<QVariant> &params); ReturnMessage::ReturnCode cmdNextTurn(const QList<QVariant> &params);
ReturnMessage::ReturnCode cmdSetActivePhase(const QList<QVariant> &params); ReturnMessage::ReturnCode cmdSetActivePhase(const QList<QVariant> &params);
Server *server; Server *server;