• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.ci/H26-Jan-2021-727570

.github/H26-Jan-2021-978792

.tx/H26-Jan-2021-1410

cmake/H03-May-2022-732617

cockatrice/H03-May-2022-214,273206,347

common/H03-May-2022-15,89512,896

dbconverter/src/H03-May-2022-386336

doc/H26-Jan-2021-205203

oracle/H03-May-2022-19,47116,916

servatrice/H03-May-2022-10,2998,056

tests/H03-May-2022-826713

vcpkg/H26-Jan-2021-

webclient/H26-Jan-2021-19,78118,908

.clang-formatH A D26-Jan-2021705 3231

.codacy.ymlH A D26-Jan-2021162 64

.dockerignoreH A D26-Jan-202163 98

.gitignoreH A D26-Jan-202192 1110

.gitmodulesH A D26-Jan-202180 43

DockerfileH A D26-Jan-2021601 3224

LICENSEH A D26-Jan-202117.7 KiB340281

README.mdH A D26-Jan-202111.3 KiB168105

clangify.shH A D26-Jan-20215.4 KiB210174

docker-compose.ymlH A D26-Jan-2021706 2926

docker-compose.yml.windowsH A D26-Jan-2021725 2926

README.md

1<p align='center'><img src=https://cloud.githubusercontent.com/assets/9874850/7516775/b00b8e36-f4d1-11e4-8da4-3df294d01f86.png></p>
2
3---
4
5<p align='center'>
6   <a href="#cockatrice"><b>Cockatrice</b></a> <b>|</b>
7   <a href="#download-">Download</a> <b>|</b>
8   <a href="#get-involved--">Get Involved</a> <b>|</b>
9   <a href="#community-resources">Community</a> <b>|</b>
10   <a href="#translations-">Translations</a> <b>|</b>
11   <a href="#build---">Build</a> <b>|</b>
12   <a href="#run">Run</a> <b>|</b>
13   <a href="#license-">License</a>
14</p>
15
16---
17
18<br><pre>
19<b>To get started, &#8674; [view our webpage](https://cockatrice.github.io/)</b><br>
20<b>To get support or suggest changes &#8674; [file an issue](https://github.com/Cockatrice/Cockatrice/issues) ([How?](https://github.com/Cockatrice/Cockatrice/wiki/How-to-Create-a-GitHub-Ticket-Regarding-Cockatrice))</b>
21<b>To help with development, see how to [get involved](#get-involved-)</b>
22</pre><br>
23
24
25# Cockatrice
26
27Cockatrice is an open-source, multiplatform program for playing tabletop card games over a network. The program's server design prevents users from manipulating the game for unfair advantage. The client also provides a single-player mode, which allows users to brew while offline. This project uses C++ and the Qt5 libraries.<br>
28
29
30# Download [![Cockatrice Eternal Download Count](https://img.shields.io/github/downloads/cockatrice/cockatrice/total.svg)](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)
31
32Downloads are available for full releases and the current beta version in development. There is no strict release schedule for either of them.
33
34- Latest `stable` release: [![Download from GitHub Releases](https://img.shields.io/github/release/cockatrice/cockatrice.svg)](https://github.com/cockatrice/cockatrice/releases/latest) [![DL Count on Latest Release](https://img.shields.io/github/downloads/cockatrice/cockatrice/latest/total.svg?label=downloads)](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)<br>
35  - Stable versions are checkpoints featuring major feature and UI enhancements.
36  - **Recommended for most users!**
37
38- Latest `beta` release: [![Download from GitHub Pre-Releases](https://img.shields.io/github/release/cockatrice/cockatrice/all.svg)](https://github.com/cockatrice/cockatrice/releases) [![DL Count on Latest Pre-Release](https://img.shields.io/github/downloads-pre/cockatrice/cockatrice/latest/total.svg?label=downloads)](https://tooomm.github.io/github-release-stats/?username=Cockatrice&repository=Cockatrice)
39   - Beta versions include the most recently added features and bugfixes, but can be unstable.
40   - To be a Cockatrice Beta Tester, use this version. Find more information [here](https://github.com/Cockatrice/Cockatrice/wiki/Release-Channels)!
41
42
43
44# Get Involved [![Discord](https://img.shields.io/discord/314987288398659595?label=Discord&logo=discord&logoColor=white)](https://discord.gg/3Z9yzmA) [![Gitter Chat](https://img.shields.io/gitter/room/Cockatrice/Cockatrice)](https://gitter.im/Cockatrice/Cockatrice)
45
46Join our [Discord community](https://discord.gg/3Z9yzmA) to connect with the project or fellow users of the app. The Cockatrice developers are also available on [Gitter](https://gitter.im/Cockatrice/Cockatrice). Come here to talk about the application, features, or just to hang out.<br>
47For support regarding specific servers, please contact that server's admin or forum for support rather than asking here.<br>
48
49To contribute code to the project, please review [the guidelines](https://github.com/Cockatrice/Cockatrice/blob/master/.github/CONTRIBUTING.md).
50We maintain two tags for contributors to find issues to work on:
51- [Good first issue](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Good%20first%20issue%22%20): issues tagged in this way provide a simple way to get started. They don't require much experience to be worked on.
52- [Help wanted](https://github.com/Cockatrice/Cockatrice/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3A%22Help%20Wanted%22%20): This tag is used for issues that we are looking for a contributor to work on. Often this is for feature suggestions we are willing to accept, but don't have the time to work on ourselves.
53
54For both tags, we're willing to provide help to contributors in showing them where and how they can make changes, as well as code review for changes they submit.
55
56Read the long-term project **roadmap** to see planned edits and milestones [here](https://docs.google.com/document/d/1Ewe5uSaRE2nR2pNPMaGmP6gVZdqgFbBgwSscGqIr4W0/edit).
57
58We try to be responsive to new issues. We'll provide advice on how best to implement a feature; alternately, we can show you where the codebase is doing something similar before you get too far along.
59
60Cockatrice uses the [Google Developer Documentation Style Guide](https://developers.google.com/style/) to ensure consistent documentation. We encourage you to improve the documentation by suggesting edits based on this guide.
61
62
63# Community Resources
64
65- [Cockatrice Official Site](https://cockatrice.github.io)
66- [Cockatrice Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki)
67- [Cockatrice Official Discord](https://discord.gg/3Z9yzmA)
68- [reddit r/Cockatrice](https://reddit.com/r/cockatrice)
69
70
71# Translations [![Transifex Project](https://img.shields.io/badge/translate-on%20transifex-brightgreen)](https://www.transifex.com/projects/p/cockatrice/)
72
73Cockatrice uses Transifex for translations. You can help us bring Cockatrice and Oracle to your language or just edit single wordings right from within your browser by visiting our [Transifex project page](https://www.transifex.com/projects/p/cockatrice/).<br>
74
75| Cockatrice | Oracle |
76|:-:|:-:|
77| [![Cockatrice Translation Status](https://www.transifex.com/projects/p/cockatrice/resource/cockatrice/chart/image_png/)](https://www.transifex.com/projects/p/cockatrice/) | [![Oracle Translation Status](https://www.transifex.com/projects/p/cockatrice/resource/oracle/chart/image_png/)](https://www.transifex.com/projects/p/cockatrice/) |
78
79Check out our [Translator FAQ](https://github.com/Cockatrice/Cockatrice/wiki/Translation-FAQ) for more information about contributing!<br>
80
81
82# Build [![Linux builds - master](https://github.com/Cockatrice/Cockatrice/workflows/Build%20on%20Linux%20(Docker)/badge.svg?branch=master)](https://github.com/Cockatrice/Cockatrice/actions?query=workflow%3A%22Build+on+Linux+%28Docker%29%22+branch%3Amaster) [![macOS builds - master](https://github.com/Cockatrice/Cockatrice/workflows/Build%20on%20macOS/badge.svg?branch=master)](https://github.com/Cockatrice/Cockatrice/actions?query=workflow%3A%22Build+on+macOS%22+branch%3Amaster) [![Windows builds - master](https://github.com/Cockatrice/Cockatrice/workflows/Build%20on%20Windows/badge.svg?branch=master)](https://github.com/Cockatrice/Cockatrice/actions?query=workflow%3A%22Build+on+Windows%22+branch%3Amaster)
83
84**Detailed compiling instructions can be found on the Cockatrice wiki under [Compiling Cockatrice](https://github.com/Cockatrice/Cockatrice/wiki/Compiling-Cockatrice)**
85
86Dependencies: *(for minimum requirements search our [CMake file](https://github.com/Cockatrice/Cockatrice/blob/master/CMakeLists.txt))*
87- [Qt](https://www.qt.io/developers/)
88- [protobuf](https://github.com/protocolbuffers/protobuf)
89- [CMake](https://www.cmake.org/)
90
91Oracle can optionally use zlib and xz to load compressed files:
92- [xz](https://tukaani.org/xz/)
93- [zlib](https://www.zlib.net/)
94
95To compile:
96
97    mkdir build
98    cd build
99    cmake ..
100    make
101
102You can then run
103
104    make install
105
106to get a cockatrice installation inside the `release` folder, or:
107
108    make package
109
110to create a system-specific installation package.
111
112The following flags can be passed to `cmake`:
113
114- `-DWITH_SERVER=1` Whether to build the server (default 0 = no).
115- `-DWITH_CLIENT=0` Whether to build the client (default 1 = yes).
116- `-DWITH_ORACLE=0` Whether to build oracle (default 1 = yes).
117- `-DCMAKE_BUILD_TYPE=Debug` Compile in debug mode. Enables extra logging output, debug symbols, and much more verbose compiler warnings (default `Release`).
118- `-DWARNING_AS_ERROR=0` Whether to treat compilation warnings as errors in debug mode (default 1 = yes).
119- `-DUPDATE_TRANSLATIONS=1` Configure `make` to update the translation .ts files for new strings in the source code. Note: Running `make clean` will remove the .ts files (default 0 = no).
120- `-DTEST=1` Enable regression tests (default 0 = no). Note: needs googletest, will be downloaded on the fly if unavailable. To run tests: ```make test```.
121
122
123# Run
124
125`Cockatrice` is the game client<br>
126`Oracle` fetches card data<br>
127`Servatrice` is the server<br>
128
129
130**Servatrice Docker container**
131
132You can run an instance of Servatrice (the Cockatrice server) using [Docker](https://www.docker.com/what-docker) and the Cockatrice Dockerfile.<br>
133
134First, create an image from the Dockerfile<br>
135`cd /path/to/Cockatrice-Repo/`
136`docker build -t servatrice .`<br>
137And then run it<br>
138`docker run -i -p 4747:4747/tcp -t servatrice:latest`<br>
139
140>Note: Running this command exposes the TCP port 4747 of the docker container<br>
141to permit connections to the server.
142
143Find more information on how to use Servatrice with Docker in our [wiki](https://github.com/Cockatrice/Cockatrice/wiki/Setting-up-Servatrice#using-docker).
144
145**Docker compose**
146
147There is also a docker-compose file available which will configure and run both a MySQL server and Servatrice. The docker-compose setup scripts can be found in the `servatrice/docker` folder and vary only slightly from the default sql and server .ini files. The setup scripts can either be modified in place, or docker-compose can mount alternative files into the images, as you prefer.
148
149To run Servatrice via docker-compose, first install docker-compose following the [install instructions](https://docs.docker.com/compose/install/). Once installed, run the following from the root of the repository:
150```bash
151docker-compose build    # Build the Servatrice image using the same Dockerfile as above.
152docker-compose up       # Setup and run both the MySQL server and Servatrice.
153```
154
155>Note: Similar to the above Docker setup, this will expose TCP ports 4747 and 4748.
156
157>Note: The first time running the docker-compose setup, the MySQL server will take a little time to run the initial setup scripts. Due to this, the Servatrice instance may fail the first few attempts to connect to the database. Servatrice is set to `restart: always` in the docker-compose.yml, which will allow it to continue attempting to start up. Once the MySQL scripts have completed, Servatrice should then connect automatically on the next attempt.
158
159**Docker compose in Windows**
160A out of box working docker-compose file has been added to help setup in Windows.
161
162Docker in Windows requires additional steps in form of using Docker Desktop to allow resource sharing from the drive the volumes are mapped from, as well as potential workarounds needed to get file sharing working in Windows. This [StackOverflow discussion sheds some light on it](https://stackoverflow.com/questions/42203488/settings-to-windows-firewall-to-allow-docker-for-windows-to-share-drive)
163
164
165# License [![GPLv2 License](https://img.shields.io/github/license/Cockatrice/Cockatrice.svg)](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE)
166
167Cockatrice is free software, licensed under the [GPLv2](https://github.com/Cockatrice/Cockatrice/blob/master/LICENSE).
168