logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Namespace Serenity.Achievements.Application.Conditions

    Classes

    AchievementCondition

    One node of an authored unlock rule. A condition answers whether the rule it represents is satisfied right now, describes how far along it is, and — when it counts something across sessions — serializes that count into a string the achievement's progress row carries.

    AchievementConditionPhrasing

    Formatting knowledge shared by more than one condition node's Describe(bool) override: how a quantity prints, how an optional name reads when nothing was authored, how a signal type's short name is derived, how a composite brackets itself once nested, and how a composite joins its children into one line.

    AchievementConditionStateCodec

    Packs a node's own counter and its children's captured states into the single string an achievement's progress row carries, unpacks it again, and reads the numbers back out of it.

    AchievementConditionSummary

    Turns an authored condition tree into the one line that says what it actually demands, such as "Signal EnemyKilled ×100 AND Score kills ≥ 10".

    AchievementConditionTree

    The structural view of a condition tree: what a node's children are, and whether the graph hanging off a node is actually a tree at all.

    Structs

    AchievementConditionProgress

    How far along a condition is: the numerator and denominator to show, plus the 0..1 fraction they represent. Immutable value object.

    AchievementEvaluationContext

    Everything a condition tree is allowed to read during one evaluation: the score metrics, the global progress, how much time passed, the signal that caused the evaluation, and the resolver a CustomCondition reaches its project-supplied rule through.

    Interfaces

    IAchievementCondition

    The code escape hatch of the condition model: a rule a project writes itself, reached from an authored tree through a CustomCondition node.

    In this article
    © 2026 Serenity. All Rights Reserved