public record class ShardCandidateA shard as placement sees it: a few numbers, and no roster.
Remarks
⚠ The affinity counts are inputs, not something this layer computes. Which of a player's friends are on a shard is a question only the thing holding the fleet's roster can answer — IMapGrain — and asking it here would make the scoring function need a database. So the grain counts and the director scores, which is what makes the scoring a pure function that a property test can hammer a million times.
Age rather than a start time, so that a test does not have to construct a clock to say "this shard is old".
Fields and properties (14)
public ShardId ShardWhich shard.
public ShardKey KeyWhat it is for.
public ShardState StateWhere it is in its life. Only Ready is placeable.
public RealmEndpoint EndpointWhere clients reach it.
public int PopulationHow many are on it.
public ShardCapacity CapacityHow many it will take.
public TimeSpan AgeHow long it has been up.
public ShardKind KindWho is admitted.
public bool AdmitsWhether this shard's access list admits the requester — always true for a public one.
public int PartyMembersHow many of the requester's party are already here.
public int GuildMembersHow many of their guild.
public int FriendsHow many of their friends.
public string LocaleThe language most of this shard is speaking.
public double FillPercentHow full it is, as a percentage of its soft cap.
Methods (1)
public override string ToString()Returns a string that represents the current object.
Used by (7)
- FleetSimulationVixen.Live.Orchestrator.Tests
- MapCoordinatorVixen.Live.Orchestrator
- MapFleetVixen.Live.Orchestrator
- MapFleetTestsVixen.Live.Orchestrator.Tests
- PlacementDirectorVixen.Live.Orchestrator
- PlacementDirectorTestsVixen.Live.Orchestrator.Tests
- PlacementWeightsTestsVixen.Live.Orchestrator.Tests