49 lines
No EOL
1.6 KiB
Markdown
49 lines
No EOL
1.6 KiB
Markdown
# WarChron
|
|
|
|
A simple local app to track players' campaigns for tabletop wargames.
|
|
|
|
## Features
|
|
|
|
### Main logic
|
|
|
|
Manage a list of players to sign them up to be selectable for war(s) and campaign(s).
|
|
A war year offers various objectives along several campaigns. Wars are independent.
|
|
A campaign event presents customisable sectors to fight on during battle rounds. Campaigns are successive and are used for historical tie-breaker.
|
|
A round includes battles to combine all participants according to their choice. Rounds are successive and are used for participants pairing in different priority modes.
|
|
Winning battle grants victory points, narrative points (optional) and influence token (optional).
|
|
Round results determine campaign score, which determines the war score, in different counting modes.
|
|
Victory points determine the winner, narrative points determine the scenario(s) achiever(s) and influence tokens decide tie-breaks.
|
|
|
|
## Installation
|
|
|
|
### Requirements
|
|
|
|
- Python >= 3.12
|
|
- pip
|
|
|
|
### Setup
|
|
|
|
```bash
|
|
git clone <your-forge-address>/warchron_app.git
|
|
cd warchron_app
|
|
python -m venv .venv
|
|
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
pip install -e .
|
|
```
|
|
|
|
### Run
|
|
|
|
`python main.py`
|
|
|
|
## Dev
|
|
|
|
### UI with QT Designer
|
|
|
|
Save UI design from QT designer as `ui_*_.ui` file and then convert them into python using:
|
|
`pyuic6 -x <file_path>.ui -o <file_path>.py`
|
|
|
|
### Code quality
|
|
|
|
Install mypy, black and flake8 into your IDE (also need flake8-pyproject to get pyproject.toml conf).
|
|
You can manually run them with `mypy .` or `flake8 .` from the project's root directory. |