Table of Contents

Class Cartography

Namespace
FishMMO.Client
Assembly
FishMMO.Client.dll

The one place the map subsystem asks how good the player's maps are.

public static class Cartography
Inheritance
Cartography
Inherited Members

Remarks

Why a seam rather than a number. Cartography is going to scale half a dozen unrelated things — how far the fog lifts as you walk, how much of the world map you can see at once, whether region names and coordinates are shown, how many notes you may keep. Each of those is a different formula in a different file, and hard-coding today's constants into them means finding all six again later. Every one of them reads a property here instead, so wiring up the real skill is a single registration.

Why the default is the maximum. The skill does not exist, so there is nothing for a player to level and no way to earn a better map. Shipping a crippled map that unlocks against a system nobody can interact with would be a bug, not a preview. When the profession arrives, the starting tier becomes whatever it grants a new character, and that change belongs in the provider — not here.

Where the skill must be earned. Not from the fog file. See FogOfWarStore: exploration progress is on the player's disk and is forgeable, so Cartography experience has to be awarded by the server from the positions it already receives. The fog file decides what the map looks like and nothing else.

Fields

MaximumDetailTier

The highest tier the map subsystem understands.

public const int MaximumDetailTier = 4

Field Value

int

Properties

DetailFraction

The tier as a fraction of the maximum, for anything that scales smoothly.

public static float DetailFraction { get; }

Property Value

float

DetailTier

The local character's Cartography tier, clamped into range.

public static int DetailTier { get; }

Property Value

int

MaximumWorldMapExtent

The largest fraction of a scene the world map will show at once.

public static float MaximumWorldMapExtent { get; }

Property Value

float

Remarks

One at full skill: the whole zone fits on screen. Below that the map is a window that has to be panned, which is the difference between owning a map of the province and owning a sketch of the road you are on.

MinimapResolution

The edge length, in pixels, the minimap's render texture is created at.

public static int MinimapResolution { get; }

Property Value

int

Remarks

Sharper maps at higher skill, and a real cost saved at low skill: the texture is re-rendered thirty times a second, so a quarter of the pixels is a quarter of the fill. Powers of two because the renderer rounds to one anyway.

NoteCapacity

How many notes the player may keep per scene.

public static int NoteCapacity { get; }

Property Value

int

Remarks

A cap at all because notes are written to disk and drawn every frame the map is open; a cap that grows because "room for more annotations" is a natural reward for a map-making profession.

RevealRadius

How far, in metres, walking reveals the fog around the character.

public static float RevealRadius { get; }

Property Value

float

Remarks

The most directly felt effect of the skill: a novice clears a narrow corridor along the path they walked, an expert clears the valley they walked through. Deliberately smaller than the minimap's own view at every tier, so the map always shows terrain the player has not yet permanently revealed — a fog radius larger than the view would make the mechanic invisible.

ShowsCoordinates

Whether the maps show numeric coordinates.

public static bool ShowsCoordinates { get; }

Property Value

bool

ShowsGrid

Whether the world map draws a measured grid over the terrain.

public static bool ShowsGrid { get; }

Property Value

bool

VisibleContentTier

The detail tier above which authored region labels and landmarks stay hidden.

public static int VisibleContentTier { get; }

Property Value

int

Remarks

Authored content carries its own tier — continents at zero, hamlets at three — so this is the cut-off the world map applies against it. A novice sees the provinces; an expert sees the farmsteads.

Methods

SetProvider(ICartographyProvider)

Installs the provider that answers for the local character.

public static void SetProvider(ICartographyProvider value)

Parameters

value ICartographyProvider

The provider, or null to fall back to the default.