{ "info": { "author": "Ross Anderson", "author_email": "ross.anderson@ualberta.ca", "bugtrack_url": null, "classifiers": [], "description": "catan-spectator\n---------------\n\nTranscribe games of Settlers of Catan for research purposes, replay purposes, broadcast purposes, etc.\n\nThe UI is feature-complete, and can be used to log games.\n\nRelated packages:\n* [`catan`](https://github.com/rosshamish/catan-py)\n* [`catanlog`](https://github.com/rosshamish/catanlog)\n* [`hexgrid`](https://github.com/rosshamish/hexgrid)\n* [`undoredo`](https://github.com/rosshamish/undoredo)\n\nTodos are listed below.\n\n> Author: Ross Anderson ([rosshamish](https://github.com/rosshamish))\n\n### Demo\n![Demo](/doc/gifs/demo4.gif)\n\n### Installation\n\n```\n$ pip3 install catan-spectator\n```\n\n### Usage\n\nBasic usage:\n```\n$ catan-spectator\n```\n\nFor a particular board layout:\n```\n$ catan-spectator --board 'o s w w o s s h b h w s w h h b o d b 5 2 8 10 9 8 5 3 4 6 3 6 10 12 11 9 11 None 4'\n```\n\nTerrain are referred to by their first letter in lowercase, except wheat, which is an h.\nNumbers are referred to by their corresponding digit, and \"None\" represents no number. Exactly nineteen terrain\ncharacters are expected, and exactly nineteen numbers are expected.\n\n| Terrain Name | Short Code |\n| --- | --- |\n| Wood | w |\n| Brick | b |\n| Wheat | h |\n| Sheep | s |\n| Ore | o |\n| Desert | d |\n\nFor a full list of options:\n```\n$ catan-spectator --help\n```\n\n### Hotkeys\n\n| Key | Action |\n| ---| ------ |\n| 2 | roll 2 |\n| 3 | roll 3 |\n| 4 | roll 4 |\n| 5 | roll 5 |\n| 6 | roll 6 |\n| 7 | roll 7 |\n| 8 | roll 8 |\n| 9 | roll 9 |\n| 0 | roll 10 |\n| - | roll 11 |\n| = | roll 12 |\n| r | buy road |\n| s | buy settlement |\n| c | buy city |\n| d | buy dev card |\n| k | play knight |\n| left arrow | undo |\n| right arrow | redo |\n| space bar | end turn |\n\n### File Format\n\n\n\ncatan-spectator writes game logs in the `.catan` format described by package [`catanlog`](https://github.com/rosshamish/catanlog).\n\nThey look like this:\n\n```\ngreen rolls 6\nblue buys settlement, builds at (1 NW)\norange buys city, builds at (1 SE)\nred plays monopoly on ore\n```\n\n### Development\n\n```\n$ git clone https://github.com/rosshamish/catan-spectator\n$ cd catan-spectator\n$ pip3 install -r requirements.txt\n```\n\n```\n$ python3 main.py\n```\n\nMake targets:\n- `make relaunch`: launch (or relaunch) the GUI\n- `make logs`: cat the python logs\n- `make tail`: tail the python logs\n- `make`: alias for relaunch && tail\n\n##### Todo\n\nNeed to have\n- [ ] views documented\n- [x] piece placing should be cancellable (via undo)\n- [x] all actions should be undoable\n- [ ] ui+catanlog: save log file to custom location on End Game\n- [ ] ui: city-shaped polygon for cities\n- [ ] ui/ux improvements\n\nNice to have\n- [ ] board: random number setup obeys red number rule\n- [ ] ui+board+hexgrid: during piece placement, use little red x\u2019s (at least in debug mode) on \u201ckilled spots\u201d\n- [ ] ui+game+player+states: dev cards, i.e. keep a count of how many dev cards a player has played and enable Play Dev Card buttons if num > 0\n- [x] ui+game+port+hexgrid: port trading, disable buttons if the current player doesn\u2019t have the port. 4:1 is always enabled.\n- [x] ui+port+hexgrid: port trading, don't allow getting or giving more or less than defined by the port type (3:1, 2:1).\n- [ ] ui+port: port trading, don\u2019t allow n for 0 trades\n- [ ] ui: large indicator off what the current player is (and what the order is)\n- [x] ui: cancelling of roads/settlements/cities while placing\n- [ ] ui: images, colors in UI buttons (eg dice for roll, )\n- [attempted, might be worse] ui: tile images instead of colored hexagons\n- [ ] ui: port images instead of colored triangles\n- [ ] ui: piece images instead of colored polygons\n- [x] ui: number images instead of text (or avoid contrast issues otherwise)\n- [ ] ui+game+states+robber: steal dropdown has \u201cnil\u201d option always, for in case it goes on a person with no cards and no steal happens. Name it something obvious, don\u2019t use an empty string.\n\n### Attribution\n\nCodebase originally forked from [fruitnuke/catan](https://github.com/fruitnuke/catan), a catan board generator\n\n### License\n\nGPLv3", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/rosshamish/catan-spectator/tarball/v0.1.0", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rosshamish/catan-spectator/", "keywords": null, "license": "GPLv3", "maintainer": null, "maintainer_email": null, "name": "spectator", "package_url": "https://pypi.org/project/spectator/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/spectator/", "project_urls": { "Download": "https://github.com/rosshamish/catan-spectator/tarball/v0.1.0", "Homepage": "https://github.com/rosshamish/catan-spectator/" }, "release_url": "https://pypi.org/project/spectator/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Transcribe games of Settlers of Catan for research purposes, replay purposes, broadcast purposes, etc.", "version": "0.1.0" }, "last_serial": 1979035, "releases": { "0.1.0": [] }, "urls": [] }