Vixen
c7401864
csharp
public sealed class Guild

A guild: a roster, a ladder, and a permission matrix that is a tag query per action.

Read the guide page for this →

Remarks

Durable state, and doc 28 says it lives in a grain — IGuildGrain, which doc 27 explicitly hands to this document. What is here is the rules; keeping it is ISocialStore's.

⚠ A guild always has exactly one member at rank zero. Every operation that could remove the last one is refused with WouldStrand: a guild whose leader left, demoted themselves or was somehow removed is a guild that cannot invite, cannot promote and cannot be disbanded, and the only fix is an operator with database access. The leader has to hand it over first, which is one extra click and no support tickets.

⚠ Nobody may act on somebody at or above their own rank. Without it an officer can kick the leader, and every guild in the game is one disgruntled officer from being emptied.

Fields and properties (7)

  • public GuildId Id

    Its id.

  • public string Name

    What it is called.

  • public GuildCharter Charter

    What it started as.

  • public IReadOnlyList<GuildRank> Ranks

    Its ladder, highest first.

  • public IReadOnlyDictionary<PlayerId, int> Roster

    Its roster, as a player and the index of their rank.

  • public int Count

    How many are in it.

  • public PlayerId Leader

    Who runs it, or None for a guild with nobody left.

Methods (10)

Used by (6)

  • GuildTestsVixen.Gameplay.Social.Tests
  • ISocialStoreVixen.Gameplay.Social
  • MemorySocialStoreVixen.Gameplay.Social
  • SocialBridgeVixen.Live.Gameplay
  • SocialBridgeTestsVixen.Live.Gameplay.Tests
  • SocialLibraryTestsVixen.Gameplay.Social.Tests