Skip to content

Family server: Family window info, juniors, Family Tree, login notices - #699

Merged
neeerp merged 2 commits into
masterfrom
v83/family
Oct 22, 2026
Merged

neeerp merged 2 commits into
masterfrom
v83/family

Conversation

@neeerp

@neeerp neeerp commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Family server, slice 1 (row 204, protocol RE b039, review b043).

What it does

  • New family_members table (db/src/family.rs). Each row holds the character's senior, the rep counters, and the leader's precepts.
  • Family window (INFO + privilege list): sent on entering the game and on OPEN_FAMILY. The client sends no family request other than OPEN_FAMILY/OPEN_FAMILY_PEDIGREE until INFO has arrived. The privilege list is empty for now.
  • Taking a junior (ADD_FAMILY / ACCEPT_FAMILY):
    • The server gives b039's refusals: not found/offline, another map, below level 10, not lower, more than 20 levels apart, already has a senior, same family, busy (another senior is asking), and the 1000-generation limit.
    • A second ask from the same senior while the card is up is ignored, because the client would decline the second card.
    • A yes is checked again (map and levels) and then made in a locked transaction.
    • On success the senior gets JOIN_REQUEST_RESULT, the junior gets JOIN_ACCEPTED, and the senior plus the junior's whole branch get INFO again.
  • Family Tree (OPEN_FAMILY_PEDIGREE): sends FAMILY_CHART_RESULT filling the window's 11 slots:
    • the leader, two seniors, self, sibling, juniors, and juniors' juniors;
    • head counts for the family, the seniors, and each junior's branch;
    • live online state, level, job and map from the world directory.
  • Login notices: the senior and juniors hear when a relative logs in or out. A channel change is held for the grace period, like guilds.
  • Two stale net unit tests on master fixed: the world route count (stale since the RPS server) and the default keymap (stale since party search's O key).

Not yet

  • Separating from a senior or junior.
  • Entitlements and summons.
  • The precepts editor.
  • Earning rep.
  • The client windows (next slice).

Verification

  • cargo test -p game -p net -p runtime: all pass.
  • Harness: families (new) 1/1, guilds 7/7, buddy_list 1/1.
  • A Sonnet review (b043) found nine items; F1–F6 are fixed in the second commit.

…vilege list on entering the game and OPEN_FAMILY, ADD_FAMILY/ACCEPT_FAMILY with b039's refusals (not found, other map, levels, has a senior, same family, busy, generations), the Family Tree (FAMILY_CHART_RESULT) with who is online, and relatives' login notices held through a channel change; fixes the net route-count and default-keymap unit tests
…red, a senior's requests end with them, a yes is checked again for the map and levels, relatives are read again on entering the game, a failed add refuses instead of disconnecting, and the tree hangs a far senior from the leader and counts a channel change as online
@neeerp
neeerp merged commit 1c786ac into master Oct 22, 2026
1 check passed
@neeerp
neeerp deleted the v83/family branch October 22, 2026 05:21
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