neon-sprawl/server/NeonSprawl.Server/Game/Skills/SkillProgressionGrantApplyO...

23 lines
1.1 KiB
C#

namespace NeonSprawl.Server.Game.Skills;
/// <summary>Result of <see cref="SkillProgressionGrantOperations.TryApplyGrant"/> (NEO-38 / NEO-41 shared path).</summary>
public enum SkillProgressionGrantApplyKind
{
/// <summary>Structured deny — <see cref="SkillProgressionGrantApplyOutcome.Response"/> is populated.</summary>
Denied,
/// <summary><see cref="IPlayerSkillProgressionStore.TryApplyXpDelta"/> returned false (e.g. player missing from progression store).</summary>
ProgressionStoreMissing,
/// <summary>XP applied — <see cref="SkillProgressionGrantApplyOutcome.Response"/> is success envelope.</summary>
Granted,
}
/// <summary>
/// Outcome of <see cref="SkillProgressionGrantOperations.TryApplyGrant"/> apply step (NEO-38 / NEO-41 shared path).
/// <see cref="Response"/> is deny or success JSON envelope; null only when <see cref="Kind"/> is <see cref="SkillProgressionGrantApplyKind.ProgressionStoreMissing"/>.
/// </summary>
public readonly record struct SkillProgressionGrantApplyOutcome(
SkillProgressionGrantApplyKind Kind,
SkillProgressionGrantResponse? Response);