aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-10-01 18:36:36 -0400
committerhistoria <[not public]>2026-10-01 18:36:36 -0400
commit8a94f21bd47c0a00bc415395232dba22fa958837 (patch)
tree3dc9492913315ac98b6eddaec4605e4344cde7d6 /internal
parent4e2a95503e4ea4c830510f5aea23fac7948ddc41 (diff)
downloadthehouseoficarus-8a94f21bd47c0a00bc415395232dba22fa958837.tar.gz
remove: slop docs
Diffstat (limited to 'internal')
-rw-r--r--internal/casino/core.go4
-rw-r--r--internal/casino/video_poker_config.go2
-rw-r--r--internal/casino/video_poker_rules.go3
-rw-r--r--internal/game/act_burn.go2
-rw-r--r--internal/game/hacking/liars_dice_test.go1
-rw-r--r--internal/game/hardening_tick_lifecycle_test.go3
-rw-r--r--internal/game/money.go5
-rw-r--r--internal/game/sys_triggers.go3
-rw-r--r--internal/game/tick_systems.go6
-rw-r--r--internal/game/tick_systems_test.go11
-rw-r--r--internal/game/wallet_test.go3
11 files changed, 18 insertions, 25 deletions
diff --git a/internal/casino/core.go b/internal/casino/core.go
index 8ab44f5..f51dde3 100644
--- a/internal/casino/core.go
+++ b/internal/casino/core.go
@@ -156,8 +156,8 @@ func resolveStakeIDs(w Wallet, ids []string) {
// settleStakeOutcome applies one wager's outcome through the wallet and
// reports whether the settlement could NOT be made durable. It carries the
-// money-critical ordering shared by every table game (documented in
-// dev_guide/concurrency.md): compute the payout, pay it via PayCredits
+// money-critical ordering shared by every table game: compute the payout,
+// pay it via PayCredits
// BEFORE announcing the win — that one save credits the payout and resolves
// the stakes it returns, so a crash can never pay the payout AND refund the
// same stake — and only then stand the hand down. On a persistence failure
diff --git a/internal/casino/video_poker_config.go b/internal/casino/video_poker_config.go
index 0a39913..88fcbc4 100644
--- a/internal/casino/video_poker_config.go
+++ b/internal/casino/video_poker_config.go
@@ -56,7 +56,7 @@ var cabinetGames = map[string][]string{
// Each tuple is low, normal, full. These are named published schedules, not
// interpolated payouts. Full means the highest offered on this cabinet, not
-// a promise of identical RTP across games. Sources: dev_guide/video_poker.md.
+// a promise of identical RTP across games.
var cabinetSchedules = map[string]map[string][3]string{
CabinetClassic: {
"jacks_or_better": {"7/5", "8/5", "9/6"},
diff --git a/internal/casino/video_poker_rules.go b/internal/casino/video_poker_rules.go
index bfff0c4..29ab5c3 100644
--- a/internal/casino/video_poker_rules.go
+++ b/internal/casino/video_poker_rules.go
@@ -14,8 +14,7 @@ type pokerSchedule struct {
var pokerCategories = []string{"Natural royal flush", "Royal flush", "Four deuces", "Five of a kind", "Wild royal flush", "Straight flush", "Four aces with 2-4 kicker", "Four 2s-4s with A-4 kicker", "Four aces", "Four 2s-4s", "Four 5s-Ks", "Four of a kind", "Full house", "Flush", "Straight", "Three of a kind", "Two pair", "Jacks or better", "Kings or better"}
// pokerPayTable resolves the per-coin (five-coin) rates for a resolved
-// game/pay-table pair. Every listed schedule is a published one; see
-// dev_guide/video_poker.md for the sources.
+// game/pay-table pair. Every listed schedule is a published one.
func pokerPayTable(c VideoPokerConfig) (pokerSchedule, bool) {
c = c.Normalize()
if c.Variant == "" {
diff --git a/internal/game/act_burn.go b/internal/game/act_burn.go
index 706d0a7..4b3b437 100644
--- a/internal/game/act_burn.go
+++ b/internal/game/act_burn.go
@@ -424,7 +424,7 @@ func (g *Game) broadcastDrop(p *player.Player, itemID, itemName string) {
func (g *Game) FireTick() {
// Mandatory tick-system guard: the master per-tick subscriber can fire
// before SetHub during startup, and burning out a fire reaches
- // cancelStokers -> g.Hub.PlayersInRoom. See dev_guide/tick_order.md.
+ // cancelStokers -> g.Hub.PlayersInRoom.
if g.Hub == nil {
return
}
diff --git a/internal/game/hacking/liars_dice_test.go b/internal/game/hacking/liars_dice_test.go
index 83bed93..03f2b8d 100644
--- a/internal/game/hacking/liars_dice_test.go
+++ b/internal/game/hacking/liars_dice_test.go
@@ -10,7 +10,6 @@ import (
// "illegal use of non-zero Builder copied by value" on ordinary input — a
// forced challenge resolves on the very first bid. A panic here runs on the
// game owner goroutine, which has no recovery, so it terminated the server.
-// See dev_guide/concurrency.md for the owner's no-recovery guarantee.
func TestLiarsDiceForcedChallengeDoesNotPanic(t *testing.T) {
g := NewLiarsDiceGame()
diff --git a/internal/game/hardening_tick_lifecycle_test.go b/internal/game/hardening_tick_lifecycle_test.go
index d16c2c8..d9a348a 100644
--- a/internal/game/hardening_tick_lifecycle_test.go
+++ b/internal/game/hardening_tick_lifecycle_test.go
@@ -50,8 +50,7 @@ func TestFireTickNilHubIsSafe(t *testing.T) {
// TestSequenceTickFiresInDeterministicOrder guards the sorted iteration over
// g.sequences: map iteration randomly chose which simultaneous sequence
-// advanced first, contradicting the determinism contract in
-// dev_guide/tick_order.md.
+// advanced first, contradicting the deterministic-order contract.
func TestSequenceTickFiresInDeterministicOrder(t *testing.T) {
g := escapeTestGame()
g.sequences = make(map[string]*sequence)
diff --git a/internal/game/money.go b/internal/game/money.go
index 4c3316e..6317df8 100644
--- a/internal/game/money.go
+++ b/internal/game/money.go
@@ -6,8 +6,7 @@ package game
// economy journal and no two-phase recovery: startup simply refunds any stake
// still listed as pending, because a listed stake means the process died
// before the round resolved. Two-phase journal recovery was deliberately
-// removed as out of scope for a game this size; see
-// dev_guide/concurrency.md ("Durable money") before reintroducing it.
+// removed as out of scope for a game this size.
import (
"crypto/rand"
@@ -128,7 +127,7 @@ func addCreditsChecked(a, b int) (int, error) {
// same save that settled them.
//
// This is intentionally the entire recovery story. Two-phase journal recovery
-// is out of scope for this game (see dev_guide/concurrency.md).
+// is out of scope for this game.
func (g *Game) recoverPendingWagers() {
names, err := g.AccountStore.ListCharacterNames()
if err != nil {
diff --git a/internal/game/sys_triggers.go b/internal/game/sys_triggers.go
index d1ce336..790eb12 100644
--- a/internal/game/sys_triggers.go
+++ b/internal/game/sys_triggers.go
@@ -101,8 +101,7 @@ func (g *Game) startSequence(sess *net.Session, p *player.Player, steps []behavi
func (g *Game) SequenceTick() {
g.seqMu.Lock()
// g.sequences is a map: collect its keys and sort them so the per-tick
- // order in which simultaneous sequences advance is reproducible (the
- // determinism contract in dev_guide/tick_order.md).
+ // order in which simultaneous sequences advance is reproducible.
keys := make([]string, 0, len(g.sequences))
for key := range g.sequences {
keys = append(keys, key)
diff --git a/internal/game/tick_systems.go b/internal/game/tick_systems.go
index f85cdfa..8311ccf 100644
--- a/internal/game/tick_systems.go
+++ b/internal/game/tick_systems.go
@@ -1,15 +1,15 @@
package game
// tickSystem is one step of the canonical per-tick system sequence. Name is
-// the human-readable identifier also encoded in dev_guide/tick_order.md;
-// Run invokes the underlying system. The slice tickSystemOrder is the single
+// the human-readable identifier for the step; Run invokes the underlying
+// system. The slice tickSystemOrder is the single
// executable source of truth for the order in which per-tick systems fire.
//
// The order is what callers like the master subscriber in cmd/thoi/main.go
// (registered as engine subscription ID 1, which the engine fires before all
// dynamically-registered combat/aggro/respawn callbacks per processTick's
// registration-ID sort) depend on. Reordering this slice is a breaking change
-// to game behavior; keep dev_guide/tick_order.md in sync.
+// to game behavior.
type tickSystem struct {
Name string
Run func(*Game)
diff --git a/internal/game/tick_systems_test.go b/internal/game/tick_systems_test.go
index 82028d6..a701fd7 100644
--- a/internal/game/tick_systems_test.go
+++ b/internal/game/tick_systems_test.go
@@ -13,8 +13,8 @@ import (
)
// expectedTickSystemOrder is the canonical per-tick system sequence. It MUST
-// stay in sync with tickSystemOrder in tick_systems.go and with
-// dev_guide/tick_order.md. Updating one without the others is a bug.
+// stay in sync with tickSystemOrder in tick_systems.go. Updating one without
+// the other is a bug.
//
// The list is intentionally spelled out here (rather than derived from
// tickSystemOrder) so the test fails loudly when someone reorders, adds, or
@@ -48,17 +48,16 @@ var expectedTickSystemOrder = []string{
// TestTickSystemOrder asserts the canonical per-tick system sequence matches
// the documented order exactly. This is the regression guard referenced in
-// dev_guide/tick_order.md and in the master subscriber doc comment in
-// cmd/thoi/main.go.
+// the master subscriber doc comment in cmd/thoi/main.go.
func TestTickSystemOrder(t *testing.T) {
got := TickSystemOrder()
if len(got) != len(expectedTickSystemOrder) {
- t.Fatalf("tick system count changed: got %d, want %d (update expectedTickSystemOrder and dev_guide/tick_order.md)",
+ t.Fatalf("tick system count changed: got %d, want %d (update expectedTickSystemOrder)",
len(got), len(expectedTickSystemOrder))
}
for i, want := range expectedTickSystemOrder {
if got[i].Name != want {
- t.Errorf("tick system %d: got %q, want %q (reordered? update dev_guide/tick_order.md)",
+ t.Errorf("tick system %d: got %q, want %q (reordered?)",
i, got[i].Name, want)
}
}
diff --git a/internal/game/wallet_test.go b/internal/game/wallet_test.go
index a74ccd5..56789d8 100644
--- a/internal/game/wallet_test.go
+++ b/internal/game/wallet_test.go
@@ -3,8 +3,7 @@ package game
// Single-file money wallet regressions: a wager debits and records a pending
// stake in one atomic character save, a settlement credits and clears the
// stakes it returns in one save, a failed save reverts, and startup refunds
-// anything left in flight. See internal/game/money.go for the design and
-// dev_guide/concurrency.md for why two-phase recovery is out of scope.
+// anything left in flight. See internal/game/money.go for the design.
import (
"os"