cg:game.dk.complaint - Point out a wrong move

cg:game.dk.complaint

This packet is used to point out a mistake another player has made. It is only used for the game Doppelkopf.

Internal Name cg:game.dk.complaint
Direction Bidirectional
Since Version v0.1.0
Valid States game_dk only

Purpose

Using this packet, a player can denounce a mistake by another player. This packet is only available for the game Doppelkopf.

This packet is used when a player makes a mistake by accident or deliberately and another player denounces this mistake. First, the denouncing player has to accuse, which player made the mistake and choose the type of the misconduct. In case of an accusation with wrong card or wrong announcement, he will receive a list of all the cards the accused player played and all the announcements he made. The accusing player must choose from this list, which move was illegal. In case of an accusation with played early, the server will check whether the last card of the accused player was played before it was his turn. If the accusation proves to be wrong or if the accusing player decides to cancel the accusation, he will receive a penalty himself. Otherwise, the accused player will be punished and the game might be aborted, depending on the penalty settings.

The mistake can also emanate from a chat or voice chat. Since the server cannot automatically arbitrate such a complaint, the two other players have to confirm it using a cg:game.dk.question and a cg:game.dk.announce packet. If 3 of the 4 players back the accusation, the punishment will be undergone by the accused, otherwise by the accuser.

Note

If the punished player ought to receive demerit points, the cg:game.dk.scoreboard will be used.

See also

See Doppelkopf: Penalties for further information on penalty settings.

Structure

Note that all examples shown here contain placeholder data and will have different content in actual packets.

This is the data sent by the client to the server:

{
   "accused":"e421c337-70f6-409a-bdcf-acf1b3c3c6e0",
   "type":"wrong_announcement",
}

accused is the UUID of the accused player.

type is the misconduct the accused is charged with.

Note

Type can have following arguments: wrong_card, wrong_announcement, played_early, external

In case of an accusation with wrong_card or wrong_announcement, the server will reply like this:

{
   "moves":{
      0:{
         "type":"announcement",
         "data":"reservation_no",
      },
      4:{
         "type":"announcement",
         "data":"kontra",
      },
      5:{
         "type":"card",
         "data":"cq",
      },
      ...
   },
   "accused": "e421c337-70f6-409a-bdcf-acf1b3c3c6e0",
   "type": "wrong_announcement",
}

moves is a dictionary containing all the moves the player has done so far. Each move is represented by its move-ID, beginning in each round with 0 and counting up for each announcement made and each card played. The ID is followed by a dictionary declaring its type (announcement, card or accusation) and data specifying the kind of the announcement or the value of the card.

Note

Only the accuser will receive the moves field. All other clients will still get all other fields, however.

The client will respond with the following data:

{
   "accused":"e421c337-70f6-409a-bdcf-acf1b3c3c6e0",
   "type":"wrong_announcement",
   "move":{
      "98fd442d-4ee0-4d96-bf51-12917e36a001":{"type":"announcement", "data":"kontra"},
   },
}

accused and type remain the same as in the first packet.

move is the move representing the misconduct, stored as described above.