public sealed class ProgressionSectionA character's level, professions, reputations and talents, as a profile section.
Remarks
Every one of these is a counter, so all of it goes in the profile. A level written twice is still that level and a reputation written twice is still that reputation — see CheckpointPolicy for why that is the whole storage decision. Nothing here can be duplicated by being written twice, which is what would send it to the ledger.
⚠ It writes what the character has, not what this build understands. A profession or a tree the running build has no definition for is carried through byte for byte. Doc 27 § Upgrades has an old realm and a new realm writing the same character during a rollout, and a codec that dropped what it did not recognise would delete a new profession every time somebody zoned onto an old shard — silently, and only for some players.
⚠ Loading goes through ProgressionState's seating methods and never its rules. SetLevel zeroes experience, Train clamps to a track and Allocate re-validates a build — right for play, wrong for a load. See ProgressionState.Seat.
Fields and properties (2)
public const int VersionThe format this reads and writes.
public ProfileSectionId IdWhat names it.
Methods (4)
public ProgressionSection(ProgressionState state, CheckpointPolicy? checkpoint = null)Makes one over a character's progression.
public void Touch()Says something moved, so the next checkpoint writes.
public ReadOnlyMemory<byte> Save()Writes what it holds.
public void Load(ReadOnlyMemory<byte> bytes)Reads what it held.
Used by (1)
- ProgressionSectionTestsVixen.Live.Gameplay.Tests