| src/warchron | ||
| test_data | ||
| .gitignore | ||
| LICENSE | ||
| main.py | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
| THIRD_PARTY_LICENCES.md | ||
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
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.