warchron_app/README.md
2026-03-20 20:48:52 +01:00

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.