feat(client): death onboarding — tell the player to reach an ankh #153

Merged
marco merged 1 commit from feat/death-feedback into main 2026-07-22 17:38:07 +02:00
Owner

Summary

Fixes the "confused grey ghost" the arena review (#109) flagged: on death the screen greys out but nothing tells a newcomer what happened or what to do. Now, the moment you become a ghost, a journal line appears:

You are dead. Walk to a glowing ankh and double-click it to return to life.

  • New catalogued SystemMessageId.YouAreDead + its template in SystemMessageCatalog (client owns the copy; localization-ready like the rest).
  • The client shows it on the self ghost transition (!wasGhost && IsGhost) in ServerMessageDispatcher — presented off the already-known ghost state, so it's a one-liner with no new wire message.
  • ProtocolVersion bumped 9 → 10 per the invariant (a SystemMessageId value was added — same as the v5 bump for new cues).

Part of the arena UX-onboarding bundle; the ankh-beacon (make the ankh pop in ghost view) and the "click a foe to attack" HUD hint are separate follow-ups.

How it was tested

  • New test SystemMessageCatalogTests.YouAreDead_TellsThePlayerToReachAnAnkh (the copy mentions "dead" + "ankh"); the existing Format_KnowsEverySystemMessageId completeness test already enforces the template exists.
  • just lint (zero warnings) + just test (423 tests) green; whole solution builds.

No screenshot: triggering death needs combat, which the single-client debug harness can't drive (no chat//kill); the behaviour is covered by the tests + the deterministic ghost-transition hook. It'll be visible in the arena playtest.

Checklist

  • just lint passes (zero warnings)
  • just test is green
  • The whole solution builds
  • Multi-platform preserved (client + shared string; no OS-specific code)
  • Protocol versioned — bumped 9 → 10 for the new SystemMessageId
  • User-facing text via the string catalog (no loose literal)
  • Tests added/updated
## Summary Fixes the "confused grey ghost" the arena review (#109) flagged: on death the screen greys out but nothing tells a newcomer *what happened* or *what to do*. Now, the moment you become a ghost, a journal line appears: > **You are dead. Walk to a glowing ankh and double-click it to return to life.** - New catalogued `SystemMessageId.YouAreDead` + its template in `SystemMessageCatalog` (client owns the copy; localization-ready like the rest). - The client shows it on the **self ghost transition** (`!wasGhost && IsGhost`) in `ServerMessageDispatcher` — presented off the already-known ghost state, so it's a one-liner with no new wire message. - `ProtocolVersion` bumped 9 → 10 per the invariant (a `SystemMessageId` value was added — same as the v5 bump for new cues). Part of the arena UX-onboarding bundle; the ankh-beacon (make the ankh pop in ghost view) and the "click a foe to attack" HUD hint are separate follow-ups. ## How it was tested - **New test** `SystemMessageCatalogTests.YouAreDead_TellsThePlayerToReachAnAnkh` (the copy mentions "dead" + "ankh"); the existing `Format_KnowsEverySystemMessageId` completeness test already enforces the template exists. - `just lint` (zero warnings) + `just test` (**423 tests**) green; whole solution builds. > No screenshot: triggering death needs combat, which the single-client debug harness can't drive (no chat/`/kill`); the behaviour is covered by the tests + the deterministic ghost-transition hook. It'll be visible in the arena playtest. ## Checklist - [x] `just lint` passes (zero warnings) - [x] `just test` is green - [x] The whole solution builds - [x] Multi-platform preserved (client + shared string; no OS-specific code) - [x] Protocol versioned — bumped 9 → 10 for the new `SystemMessageId` - [x] User-facing text via the string catalog (no loose literal) - [x] Tests added/updated
feat(client): death onboarding — 'You are dead, reach an ankh' on becoming a ghost
All checks were successful
ci / Lint & Test (pull_request) Successful in 1m39s
eba6008407
marco merged commit 6fa1acc05a into main 2026-07-22 17:38:07 +02:00
marco deleted branch feat/death-feedback 2026-07-22 17:38:07 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo!153
No description provided.