namespace NeonSprawl.Server.Game.Skills;
///
/// NEO-42: E3.M2 craft/refine success should call so XP uses the same path as
/// POST …/skill-progression. Outcome is ignored on success paths (mirror gather interact); use
/// directly when callers need deny envelopes.
///
public static class RefineActivitySkillXpGrant
{
/// Applies one refine + activity grant if the catalog allowlist permits it.
/// Pass a normalized (e.g. route-trimmed), matching InteractionApi gather hook callers.
public static void GrantOnSuccessfulCraftOrRefine(
string playerId,
ISkillDefinitionRegistry registry,
IPlayerSkillProgressionStore xpStore,
ISkillLevelCurve levelCurve)
{
_ = SkillProgressionGrantOperations.TryApplyGrant(
playerId,
RefineSkillXpConstants.RefineSkillId,
RefineSkillXpConstants.ActivityXpPerCraftRefineCompletion,
RefineSkillXpConstants.ActivitySourceKind,
registry,
xpStore,
levelCurve);
}
}