mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-04-27 07:48:01 -07:00
Chat works!
This commit is contained in:
parent
1baa188067
commit
64aa68cd26
28 changed files with 714 additions and 424 deletions
|
|
@ -285,6 +285,9 @@ void Client::processProtocolItem(ProtocolItem *item)
|
|||
GenericEvent *genericEvent = qobject_cast<GenericEvent *>(item);
|
||||
if (genericEvent) {
|
||||
switch (genericEvent->getItemId()) {
|
||||
case ItemId_Event_ListGames: emit listGamesEventReceived(qobject_cast<Event_ListGames *>(item)); break;
|
||||
case ItemId_Event_ServerMessage: emit serverMessageEventReceived(qobject_cast<Event_ServerMessage *>(item)); break;
|
||||
case ItemId_Event_ListChatChannels: emit listChatChannelsEventReceived(qobject_cast<Event_ListChatChannels *>(item)); break;
|
||||
}
|
||||
delete genericEvent;
|
||||
return;
|
||||
|
|
@ -362,188 +365,6 @@ void Client::ping()
|
|||
sendCommand(new Command_Ping);
|
||||
}
|
||||
/*
|
||||
PendingCommand *Client::chatListChannels()
|
||||
{
|
||||
return cmd("chat_list_channels");
|
||||
}
|
||||
|
||||
PendingCommand_ChatJoinChannel *Client::chatJoinChannel(const QString &name)
|
||||
{
|
||||
return static_cast<PendingCommand_ChatJoinChannel *>(cmd(QString("chat_join_channel|%1").arg(name), new PendingCommand_ChatJoinChannel(name)));
|
||||
}
|
||||
|
||||
PendingCommand *Client::chatLeaveChannel(const QString &name)
|
||||
{
|
||||
return cmd(QString("chat_leave_channel|%1").arg(name));
|
||||
}
|
||||
|
||||
PendingCommand *Client::chatSay(const QString &channel, const QString &s)
|
||||
{
|
||||
return cmd(QString("chat_say|%1|%2").arg(channel).arg(s));
|
||||
}
|
||||
|
||||
PendingCommand *Client::listGames()
|
||||
{
|
||||
return cmd("list_games");
|
||||
}
|
||||
|
||||
PendingCommand_ListPlayers *Client::listPlayers()
|
||||
{
|
||||
return static_cast<PendingCommand_ListPlayers *>(cmd("list_players", new PendingCommand_ListPlayers));
|
||||
}
|
||||
|
||||
PendingCommand *Client::createGame(const QString &description, const QString &password, unsigned int maxPlayers, bool spectatorsAllowed)
|
||||
{
|
||||
PendingCommand *pc = cmd(QString("create_game|%1|%2|%3|%4").arg(description).arg(password).arg(maxPlayers).arg(spectatorsAllowed ? 1 : 0));
|
||||
connect(pc, SIGNAL(finished(ServerResponse)), this, SLOT(enterGameResponse(ServerResponse)));
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::joinGame(int gameId, const QString &password, bool spectator)
|
||||
{
|
||||
PendingCommand *pc = cmd(QString("join_game|%1|%2|%3").arg(gameId).arg(password).arg(spectator ? 1 : 0));
|
||||
connect(pc, SIGNAL(finished(ServerResponse)), this, SLOT(enterGameResponse(ServerResponse)));
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::leaveGame()
|
||||
{
|
||||
PendingCommand *pc = cmd("leave_game");
|
||||
connect(pc, SIGNAL(finished(ServerResponse)), this, SLOT(leaveGameResponse(ServerResponse)));
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::login(const QString &name, const QString &pass)
|
||||
{
|
||||
PendingCommand *pc = cmd(QString("login|%1|%2").arg(name).arg(pass));
|
||||
connect(pc, SIGNAL(finished(ServerResponse)), this, SLOT(loginResponse(ServerResponse)));
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::say(const QString &s)
|
||||
{
|
||||
return cmd(QString("say|%1").arg(s));
|
||||
}
|
||||
|
||||
PendingCommand *Client::shuffle()
|
||||
{
|
||||
return cmd("shuffle");
|
||||
}
|
||||
|
||||
PendingCommand *Client::rollDie(unsigned int sides)
|
||||
{
|
||||
return cmd(QString("roll_die|%1").arg(sides));
|
||||
}
|
||||
|
||||
PendingCommand *Client::drawCards(unsigned int number)
|
||||
{
|
||||
return cmd(QString("draw_cards|%1").arg(number));
|
||||
}
|
||||
|
||||
PendingCommand *Client::moveCard(int cardid, const QString &startzone, const QString &targetzone, int x, int y, bool faceDown)
|
||||
{
|
||||
// if startzone is public: cardid is the card's id
|
||||
// else: cardid is the position of the card in the zone (e.g. deck)
|
||||
return cmd(QString("move_card|%1|%2|%3|%4|%5|%6").arg(cardid).arg(startzone).arg(targetzone).arg(x).arg(y).arg(faceDown ? 1 : 0));
|
||||
}
|
||||
|
||||
PendingCommand *Client::createToken(const QString &zone, const QString &name, const QString &powtough, int x, int y)
|
||||
{
|
||||
return cmd(QString("create_token|%1|%2|%3|%4|%5").arg(zone).arg(name).arg(powtough).arg(x).arg(y));
|
||||
}
|
||||
|
||||
PendingCommand *Client::createArrow(int startPlayerId, const QString &startZone, int startCardId, int targetPlayerId, const QString &targetPlayerZone, int targetCardId, const QColor &color)
|
||||
{
|
||||
return cmd(QString("create_arrow|%1|%2|%3|%4|%5|%6|%7").arg(startPlayerId).arg(startZone).arg(startCardId).arg(targetPlayerId).arg(targetPlayerZone).arg(targetCardId).arg(colorToNumber(color)));
|
||||
}
|
||||
|
||||
PendingCommand *Client::deleteArrow(int arrowId)
|
||||
{
|
||||
return cmd(QString("delete_arrow|%1").arg(arrowId));
|
||||
}
|
||||
|
||||
PendingCommand *Client::setCardAttr(const QString &zone, int cardid, const QString &aname, const QString &avalue)
|
||||
{
|
||||
return cmd(QString("set_card_attr|%1|%2|%3|%4").arg(zone).arg(cardid).arg(aname).arg(avalue));
|
||||
}
|
||||
|
||||
void Client::submitDeck(const QStringList &deck)
|
||||
{
|
||||
cmd("submit_deck");
|
||||
QStringListIterator i(deck);
|
||||
while (i.hasNext())
|
||||
msg(i.next());
|
||||
msg(".");
|
||||
}
|
||||
|
||||
PendingCommand *Client::readyStart()
|
||||
{
|
||||
return cmd("ready_start");
|
||||
}
|
||||
|
||||
PendingCommand *Client::incCounter(int counterId, int delta)
|
||||
{
|
||||
return cmd(QString("inc_counter|%1|%2").arg(counterId).arg(delta));
|
||||
}
|
||||
|
||||
PendingCommand *Client::addCounter(const QString &counterName, QColor color, int radius, int value)
|
||||
{
|
||||
return cmd(QString("add_counter|%1|%2|%3|%4").arg(counterName).arg(colorToNumber(color)).arg(radius).arg(value));
|
||||
}
|
||||
|
||||
PendingCommand *Client::setCounter(int counterId, int value)
|
||||
{
|
||||
return cmd(QString("set_counter|%1|%2").arg(counterId).arg(value));
|
||||
}
|
||||
|
||||
PendingCommand *Client::delCounter(int counterId)
|
||||
{
|
||||
return cmd(QString("del_counter|%1").arg(counterId));
|
||||
}
|
||||
|
||||
PendingCommand_ListCounters *Client::listCounters(int playerId)
|
||||
{
|
||||
PendingCommand_ListCounters *pc = new PendingCommand_ListCounters(playerId);
|
||||
cmd(QString("list_counters|%1").arg(playerId), pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::nextTurn()
|
||||
{
|
||||
return cmd(QString("next_turn"));
|
||||
}
|
||||
|
||||
PendingCommand *Client::setActivePhase(int phase)
|
||||
{
|
||||
return cmd(QString("set_active_phase|%1").arg(phase));
|
||||
}
|
||||
|
||||
PendingCommand_ListZones *Client::listZones(int playerId)
|
||||
{
|
||||
PendingCommand_ListZones *pc = new PendingCommand_ListZones(playerId);
|
||||
cmd(QString("list_zones|%1").arg(playerId), pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand_DumpZone *Client::dumpZone(int player, const QString &zone, int numberCards)
|
||||
{
|
||||
PendingCommand_DumpZone *pc = new PendingCommand_DumpZone(player, zone, numberCards);
|
||||
cmd(QString("dump_zone|%1|%2|%3").arg(player).arg(zone).arg(numberCards), pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
PendingCommand *Client::stopDumpZone(int player, const QString &zone)
|
||||
{
|
||||
return cmd(QString("stop_dump_zone|%1|%2").arg(player).arg(zone));
|
||||
}
|
||||
|
||||
PendingCommand_DumpAll *Client::dumpAll()
|
||||
{
|
||||
PendingCommand_DumpAll *pc = new PendingCommand_DumpAll;
|
||||
cmd("dump_all", pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
QColor Client::numberToColor(int colorValue) const
|
||||
{
|
||||
return QColor(colorValue / 65536, (colorValue % 65536) / 256, colorValue % 256);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue