public readonly record struct HouseOwnerWho a plot belongs to: one player, or one guild.
Remarks
⚠ An opaque key rather than a GuildId, because doc 28's spine forbids the edge. Only Items and Combat may be depended on horizontally, so housing cannot reference Vixen.Gameplay.Social. The guild half is a Guid because that is what a GuildId wraps, and a game converts at the edge.
Doc 28 says guild housing is "the same thing with an IGuildGrain owner and a permission matrix instead of a single owner", and that is exactly what happens here: a guild plot has no implicit owner, so TierOf answers from the explicit grants alone. Mapping a guild rank onto a house tier is the guild's matrix, and it is applied by whoever owns the guild — not by this library, which would have to guess.
Fields and properties (5)
public PlayerId PlayerWhose it is, or None for a guild's.
public Guid GuildWhich guild's it is, or Empty for a player's.
public static HouseOwner NoneNobody's. An unsold plot.
public bool IsSomeWhether it belongs to anybody.
public bool IsGuildWhether a guild owns it.
Methods (4)
public HouseOwner(PlayerId Player, Guid Guild)Who a plot belongs to: one player, or one guild.
public static HouseOwner Of(PlayerId player)Makes a player's.
public static HouseOwner OfGuild(Guid guild)Makes a guild's.
public override string ToString()Returns the fully qualified type name of this instance.
Used by (2)
- HousePlotVixen.Gameplay.Housing
- HousingTestsVixen.Gameplay.Housing.Tests