Skip to content

Refresh ROADMAP, add withdrawn field#100

Merged
folkengine merged 4 commits into
mainfrom
roadhouse
May 25, 2026
Merged

Refresh ROADMAP, add withdrawn field#100
folkengine merged 4 commits into
mainfrom
roadhouse

Conversation

@folkengine
Copy link
Copy Markdown
Collaborator

Features

  • Add withdrawn ledger field to Player, PlayerNoCell, and PlayerEntry with reload(amount) method on both player structs (cfc4f60)
  • Hand-history PlayerEntry.withdrawn: Option is backward-compatible — legacy YAML still parses, None omitted from output

Docs

  • Renumber pkdealer EPIC-25 → EPIC-40 to avoid collision with pkcore's EPIC-25 Range Frequencies; add EPIC numbering policy section
    (fa1a882)
  • Sync pkdealer cross-repo EPIC statuses 20-24 from Planned → Complete; add EPIC-25 LLM row; relabel EPIC-21 as pkspectator repo (1be02e9)
  • Refresh ROADMAP for shipped variant EPICs and consolidated pkbot (206f2a8)
  • Mark docs/PKDEALER_QRSPI.md as superseded historical snapshot
  • Add cross-repo "Follow-on" pointer from EPIC-23 to pkdealer EPIC-40

Tests/fixtures

  • 6 new unit tests per player struct + 3 new PlayerEntry YAML round-trip tests
  • Backfill missing hole_cards_visibility / withdrawn fields in examples/yaml_audit.rs, examples/replay_play.rs,
    src/analysis/player_stats.rs test fixtures

  Tracks cumulative chips taken out of cash (initial buy-in + every
  reload), enabling busted players to reload via `Player::reload(amount)`
  and `PlayerNoCell::reload(amount)` without losing the P/L baseline.
  Hand-history `PlayerEntry` gains `withdrawn: Option<f64>` with serde
  default + skip-if-none so pre-existing YAML files parse unchanged.

Files modified (6):
  - src/casino/player.rs — added pub withdrawn: Cell<usize>, populated in new/new_with_chips/random, added reload(&self, amount) -> usize
  method + doc test, 6 unit tests
  - src/casino/table_no_cell.rs — mirrored on PlayerNoCell: pub withdrawn: usize, reload(&mut self, amount) -> usize, 6 unit tests
  - src/hand_history.rs — added pub withdrawn: Option<f64> to PlayerEntry with #[serde(default, skip_serializing_if = "Option::is_none")],
  updated all ~14 existing PlayerEntry { … } literal sites (doc tests + test fixtures), added 3 round-trip tests
  - src/analysis/player_stats.rs — added withdrawn: None to its PlayerEntry test-fixture builder
  - examples/yaml_audit.rs, examples/replay_play.rs — drive-by: added both hole_cards_visibility: None (pre-existing gap) and withdrawn: None
   so their test modules compile cleanly under cargo test --examples
@folkengine folkengine merged commit 1025d6f into main May 25, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant