Event context for mulligans, German translation

This commit is contained in:
Max-Wilhelm Bruker 2011-05-21 23:48:46 +02:00
parent 0c1c0fcb56
commit 808d2a3c01
17 changed files with 1228 additions and 954 deletions

View file

@ -76,7 +76,8 @@ ItemId_Context_Concede = 1074,
ItemId_Context_DeckSelect = 1075,
ItemId_Context_UndoDraw = 1076,
ItemId_Context_MoveCard = 1077,
ItemId_Command_UpdateServerMessage = 1078,
ItemId_Command_BanFromServer = 1079,
ItemId_Other = 1080
ItemId_Context_Mulligan = 1078,
ItemId_Command_UpdateServerMessage = 1079,
ItemId_Command_BanFromServer = 1080,
ItemId_Other = 1081
};

View file

@ -458,6 +458,11 @@ Context_MoveCard::Context_MoveCard()
: GameEventContext("move_card")
{
}
Context_Mulligan::Context_Mulligan(int _number)
: GameEventContext("mulligan")
{
insertItem(new SerializableItem_Int("number", _number));
}
Command_UpdateServerMessage::Command_UpdateServerMessage()
: AdminCommand("update_server_message")
{
@ -547,6 +552,7 @@ void ProtocolItem::initializeHashAuto()
itemNameHash.insert("game_event_contextdeck_select", Context_DeckSelect::newItem);
itemNameHash.insert("game_event_contextundo_draw", Context_UndoDraw::newItem);
itemNameHash.insert("game_event_contextmove_card", Context_MoveCard::newItem);
itemNameHash.insert("game_event_contextmulligan", Context_Mulligan::newItem);
itemNameHash.insert("cmdupdate_server_message", Command_UpdateServerMessage::newItem);
itemNameHash.insert("cmdban_from_server", Command_BanFromServer::newItem);
}

View file

@ -75,5 +75,6 @@
6:deck_select:i,deck_id
6:undo_draw
6:move_card
6:mulligan:i,number
7:update_server_message
7:ban_from_server:s,user_name:i,minutes

View file

@ -691,6 +691,14 @@ public:
static SerializableItem *newItem() { return new Context_MoveCard; }
int getItemId() const { return ItemId_Context_MoveCard; }
};
class Context_Mulligan : public GameEventContext {
Q_OBJECT
public:
Context_Mulligan(int _number = -1);
int getNumber() const { return static_cast<SerializableItem_Int *>(itemMap.value("number"))->getData(); };
static SerializableItem *newItem() { return new Context_Mulligan; }
int getItemId() const { return ItemId_Context_Mulligan; }
};
class Command_UpdateServerMessage : public AdminCommand {
Q_OBJECT
public:

View file

@ -402,6 +402,7 @@ ResponseCode Server_Player::moveCard(CommandContainer *cont, Server_CardZone *st
if (card->getDestroyOnZoneChange() && (startzone->getName() != targetzone->getName())) {
cont->enqueueGameEventPrivate(new Event_DestroyCard(getPlayerId(), startzone->getName(), card->getId()), game->getGameId(), -1, new Context_MoveCard);
cont->enqueueGameEventOmniscient(new Event_DestroyCard(getPlayerId(), startzone->getName(), card->getId()), game->getGameId(), new Context_MoveCard);
cont->enqueueGameEventPublic(new Event_DestroyCard(getPlayerId(), startzone->getName(), card->getId()), game->getGameId(), new Context_MoveCard);
card->deleteLater();
} else {

View file

@ -632,9 +632,16 @@ ResponseCode Server_ProtocolHandler::cmdMulligan(Command_Mulligan * /*cmd*/, Com
deck->shuffle();
cont->enqueueGameEventPrivate(new Event_Shuffle(player->getPlayerId()), game->getGameId());
cont->enqueueGameEventOmniscient(new Event_Shuffle(player->getPlayerId()), game->getGameId());
cont->enqueueGameEventPublic(new Event_Shuffle(player->getPlayerId()), game->getGameId());
player->drawCards(cont, number);
if (number == player->getInitialCards())
number = -1;
cont->getGameEventQueuePrivate()->setContext(new Context_Mulligan(number));
cont->getGameEventQueuePublic()->setContext(new Context_Mulligan(number));
cont->getGameEventQueueOmniscient()->setContext(new Context_Mulligan(number));
return RespOk;
}