Vixen
caa30e12
csharp
public sealed class ProgressionSection

A character's level, professions, reputations and talents, as a profile section.

Read the guide page for this →

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 Version

    The format this reads and writes.

  • public ProfileSectionId Id

    What 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