Metadata-Version: 2.4
Name: five-borough-burn
Version: 0.1.0
Summary: AI-driven NYC terminal hustler sim.
Keywords: tui,terminal,game,nyc,curses
Classifier: Environment :: Console :: Curses
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Games/Entertainment :: Role-Playing
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Provides-Extra: online
Requires-Dist: starlette<1,>=0.46.2; extra == "online"
Requires-Dist: uvicorn<1,>=0.34.2; extra == "online"

# Five Borough Burn

`Five Borough Burn` is a terminal-first NYC hustler sim with a live burner-phone layer.

The game uses your local Codex CLI session as the narrative engine. That means:

- the run setup can change every playthrough
- contacts can have different names, voices, districts, and hooks each run
- live burner replies, city wire updates, and street pulse events can be generated on demand

## Requirements

- Python `3.11+`
- a terminal with curses support
- the `codex` CLI installed and already authenticated
- a readable Codex auth file at `~/.codex/auth.json`

## Install

From the repo:

```sh
pip install .
```

If you want to host online multiplayer rooms too:

```sh
pip install ".[online]"
```

Then launch:

```sh
five-borough-burn
```

You can still run from source if you want:

```sh
python main.py
```

If a minimal Termux Python cannot build the package offline, unzip the source release and run
`python main.py` directly, or install `setuptools` first and rerun `pip install .`.

## Useful Commands

Smoke test:

```sh
python main.py --smoke
```

Refresh the cached dialog pack:

```sh
python main.py --refresh-dialog-pack
```

Terminal multiplayer client:

```sh
five-borough-burn-online --server http://127.0.0.1:8000
```

Terminal multiplayer room server:

```sh
five-borough-burn-roomd --host 127.0.0.1 --port 8000
```

## Controls

- `t` travel
- `b` buy
- `s` sell
- `l` borrow or repay
- `u` upgrade stash
- `m` burner phone
- `i` intel
- `?` help
- `q` quit

## Runtime Data

The installed game writes runtime data to:

```sh
~/.five-borough-burn/
```

That folder holds:

- highscores
- dialog cache
- multiplayer session resume data

You can override it with:

```sh
FBB_HOME=/some/path five-borough-burn
```

## Release Build

Create distributable source archives with:

```sh
python tools/build_release.py
```

That script:

- runs the smoke test first
- creates source `.zip` and `.tar.gz` bundles in `dist/`
- writes `SHA256SUMS.txt`
- builds a wheel and sdist too if the `build` module is installed locally

If you want wheel builds as well:

```sh
pip install build
python tools/build_release.py
```

## Publish

Package metadata lives in `pyproject.toml`, so standard Python publishing works:

```sh
python -m build
python -m twine upload dist/*
```

`build` and `twine` are not bundled with this repo by default.

For automated publishes, the repo also includes GitHub Actions trusted-publishing
workflow config at `.github/workflows/release.yml`. Once a PyPI account/project is
configured to trust `B11-Health/five-borough-burn` and that workflow file, future
GitHub releases can publish to PyPI without storing a long-lived API token.
