#include "server_player.h"#include "../server.h"#include "../server_abstractuserinterface.h"#include "../server_database_interface.h"#include "../server_room.h"#include "server_card.h"#include "server_cardzone.h"#include "server_counter.h"#include "server_game.h"#include "server_move_card_struct.h"#include <QDebug>#include <QRegularExpression>#include <algorithm>#include <libcockatrice/deck_list/deck_list.h>#include <libcockatrice/deck_list/deck_list_card_node.h>#include <libcockatrice/protocol/pb/command_attach_card.pb.h>#include <libcockatrice/protocol/pb/command_change_zone_properties.pb.h>#include <libcockatrice/protocol/pb/command_concede.pb.h>#include <libcockatrice/protocol/pb/command_create_counter.pb.h>#include <libcockatrice/protocol/pb/command_deck_select.pb.h>#include <libcockatrice/protocol/pb/command_del_counter.pb.h>#include <libcockatrice/protocol/pb/command_draw_cards.pb.h>#include <libcockatrice/protocol/pb/command_inc_counter.pb.h>#include <libcockatrice/protocol/pb/command_move_card.pb.h>#include <libcockatrice/protocol/pb/command_mulligan.pb.h>#include <libcockatrice/protocol/pb/command_set_active_phase.pb.h>#include <libcockatrice/protocol/pb/command_set_counter.pb.h>#include <libcockatrice/protocol/pb/command_set_sideboard_lock.pb.h>#include <libcockatrice/protocol/pb/command_set_sideboard_plan.pb.h>#include <libcockatrice/protocol/pb/command_shuffle.pb.h>#include <libcockatrice/protocol/pb/context_deck_select.pb.h>#include <libcockatrice/protocol/pb/context_mulligan.pb.h>#include <libcockatrice/protocol/pb/context_set_sideboard_lock.pb.h>#include <libcockatrice/protocol/pb/event_create_counter.pb.h>#include <libcockatrice/protocol/pb/event_del_counter.pb.h>#include <libcockatrice/protocol/pb/event_draw_cards.pb.h>#include <libcockatrice/protocol/pb/event_player_properties_changed.pb.h>#include <libcockatrice/protocol/pb/event_set_counter.pb.h>#include <libcockatrice/protocol/pb/event_shuffle.pb.h>#include <libcockatrice/protocol/pb/response.pb.h>#include <libcockatrice/protocol/pb/response_deck_download.pb.h>#include <libcockatrice/protocol/pb/response_dump_zone.pb.h>#include <libcockatrice/protocol/pb/serverinfo_player.pb.h>#include <libcockatrice/protocol/pb/serverinfo_user.pb.h>#include <libcockatrice/rng/rng_abstract.h>#include <libcockatrice/utility/color.h>#include <libcockatrice/utility/trice_limits.h>