37 lines
2.1 KiB
Markdown
37 lines
2.1 KiB
Markdown
# Diehammer (Bunch O' Dice)
|
|
|
|
A SwiftUI dice-rolling app for Warhammer 40k, currently iOS-only. Core structure:
|
|
|
|
- `Bunch-O--Dice/Model/` — `Dice.swift`, `RollState.swift`, `Onboarding.swift`: dice pool and roll-state logic.
|
|
- `Bunch-O--Dice/Views/` — SwiftUI views, split into `PortraitVariants/`, `LandscapeVariants/`, and `Modals/` (AddToPool, HistoryView, SettingsView).
|
|
- `Bunch-O--Dice/ContentView.swift`, `MainView.swift`, `DieHammerApp.swift` — app entry point and top-level layout.
|
|
- `Diehammer - 40k Die Modifier Research.md` — reference doc on 40k 11th Edition die modifiers (see below).
|
|
|
|
## Active goals
|
|
|
|
### 1. Die modifier support
|
|
|
|
Warhammer 40k's die-modifier rules (10th → 11th Edition changes, e.g. Cover now applying -1 to hit instead of a save bonus) are documented in `Diehammer - 40k Die Modifier Research.md` in this repo. Implementation sub-goals:
|
|
|
|
- Stacking flat hit/wound modifier input, capped at net ±1.
|
|
- Reroll mode selector: none / reroll 1s / reroll all failed / reroll all.
|
|
- A critical-trigger layer keyed off *unmodified* natural 6s, for Sustained Hits, Lethal Hits, Devastating Wounds, and Anti-X.
|
|
- An "ignore all modifiers" flag (Psychic).
|
|
- An "auto-success, no roll" flag (Torrent).
|
|
|
|
### 2. Clarify roll context in the UI
|
|
|
|
Currently the app lets you roll to hit, to wound, and armor save, but it's not always visually clear which action is being rolled. Update the graphics so the current roll phase (hit / wound / save) is unambiguous.
|
|
|
|
### 3. Android port
|
|
|
|
Plan: use the official Swift-on-Android toolchain, not a transpiler like Skip.
|
|
|
|
- Set up the Swift-on-Android toolchain.
|
|
- Extract the game logic (dice/modifier engine from `Model/`) into a shared Swift library, decoupled from SwiftUI.
|
|
- Rewrite the UI natively in Jetpack Compose, consuming the shared Swift library.
|
|
|
|
## Task tracking
|
|
|
|
Day-to-day task tracking for this project lives in the Obsidian vault under `👨🏼💻 Professional Development.md`, in the "Game Dev: Diehammer" section. This file is meant as durable project context, not a live task list — check Obsidian for current status.
|