From 30cd39dc5609a91d5eeee85f78495ffdbecdd157 Mon Sep 17 00:00:00 2001 From: Brooklyn Nicholson Date: Mon, 29 Jun 2026 22:53:38 -0500 Subject: [PATCH] refactor(desktop): collapse stroll-direction coin to a single draw DRY: the roomier-side bias computed its probability two ways (STROLL_TOWARD_ROOM and 1 - STROLL_TOWARD_ROOM). One draw XNOR'd against the roomier side says the same thing more plainly. --- apps/desktop/src/components/pet/roam-behavior.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/components/pet/roam-behavior.ts b/apps/desktop/src/components/pet/roam-behavior.ts index 01b3acf3b7a..054ceca605a 100644 --- a/apps/desktop/src/components/pet/roam-behavior.ts +++ b/apps/desktop/src/components/pet/roam-behavior.ts @@ -87,7 +87,8 @@ export function pickStrollTarget(ledge: Ledge, fromX: number, rng: Rng = Math.ra const roomLeft = fromX - ledge.left const roomRight = ledge.right - fromX - const goRight = roomRight >= roomLeft ? rng() < STROLL_TOWARD_ROOM : rng() < 1 - STROLL_TOWARD_ROOM + // Usually head to the roomier side; the long tail of the coin doubles back. + const goRight = (rng() < STROLL_TOWARD_ROOM) === (roomRight >= roomLeft) const room = Math.max(0, goRight ? roomRight : roomLeft) const minDist = Math.min(room, Math.max(span * STROLL_MIN_FRACTION, STROLL_MIN_PX)) const dist = minDist + rng() * Math.max(0, room - minDist)