# Muhq' Game (working title) Welcome to the source repository of muhq's game. Its main location is [git.muhq.space/muhqs-game](git.muhq.space/muhqs-game). This repository is the home of all the rules and game material as well as the website making all this accessible for normal people. A checkout of the game material can be found at: [https://muhq.space/muhqs-game/](https://muhq.space/muhqs-game/). ## Retrieve sources To retrieve all game sources run: ```shell git clone https://git.muhq.space/muhqs-game ``` ## Repository layout Muhq's game is contained in a huge mono repository. Its top-level layout looks like this: ``` . ├── assets - Game assets like tiles and icons ├── data - Machine readable Definition of cards and decks ├── go - Home of all of muhq's game's Go code ├── html - Sources of the website ├── latex - LaTeX code to generate the cards ├── maps - Machine readable map definitions ├── rules - The comprehensive rules └── scripts - Helper scripts used in the repository ``` ## Build dependencies In order to build the game material from source you need the following software installed on your system: * Working TeX installation * poppler (pdfunite, pdftoppm) * opencv-python * pyyaml Building the game material should be dons in a POSIX environment. Windows environment are not tested or supported. ## Build everything In the root directory there exits a Makefile which searches the directory tree for Makefiles and executes them. Therefore, to build everything (cards, maps, website) from all subdirectories simply running `make` should be enough. ## Generate latex cards To generate all latex files for the cards in the base set run: ```shell scripts/generate_latex.py data/base.ini --latex-root=latex ``` All base cards in latex/cards will be regenerated. Available Sets: * base * equipment * magic * nautics ## Building cards The Makefile in the `latex` directory is used to build PDFs and or PNGs from the latex files in `latex/cards`. Enter the `latex/` directory and run: `make` The generated PDF files will be in `/latex/build`. ## Rendering maps Map definitions files `*.map` are located in the `map/` directory and can be rendered to PNGs using `scripts/generate_map_img.py `. ## Contribution Please reach out to me if you have questions, need help, want to propose changes or just want to talk about the game. The easiest way is to send me an email to [muhqs-game@muhq.space](mailto://muhqs-game@muhq.space). Even changes can be contributed via email ([git-send-mail tutorial](https://git-send-email.io/)). ## TODO Things that should be done eventually: ### Repo - [ ] move map data into `data/` directory ### Rules - [ ] change rules into paragraphs - [ ] define what piled permanents can do ### HTML ### Latex - [ ] come up with a pleasant representation of the base stats (health, movement, attack) ### Material - [ ] Design a tutorial handout - [ ] Design a players tablet (discard pile, deck, phase hints) ### Go - [ ] add documentation - [ ] add more tests - [ ] investigate data race between UI and game loop (possible big state lock) - [ ] implement representation of next target and current selection in prompt - [ ] implement constrained X-Cost - [ ] implement HandCardSelection with condition - [ ] implement spell target parsing - [ ] implement triggers - [ ] implement target selection for triggers - [ ] implement game log - [ ] implement log with hoverable components - [ ] finish AIs - [ ] tyrant - [ ] finish error handling for remote PlayerControls - [ ] support big card grids (for sealed) - [ ] implement replacement effects - [ ] distinguish between a spawn tile type constraint and available spawn tiles