Progression #

Read more about the Progression system in Hiro here.

Functions #

Get #

Get all, or an optionally-filtered set of progressions for the given user.

1
2
3
4
5
6
7
userId := "userId"
lastKnownProgressions := map[string]*hiro.Progression{}

progressions, deltas, err := systems.GetProgressionSystem().Get(ctx, logger, nk, userId, lastKnownProgressions)
if err != nil {
  return err
}

Purchase #

Permanently unlock a specified progression, if that progression supports this operation.

1
2
3
4
5
6
7
userId := "userId"
progressionId := "progressionId"

progressions, err := systems.GetProgressionSystem().Purchase(ctx, logger, nk, userId, progressionId)
if err != nil {
  return err
}

Update #

Update a specified progression, if that progression supports this operation.

1
2
3
4
5
6
7
8
userId := "userId"
progressionId := "progressionId"
counts := map[string]int64{"rank": 2, "xp": 5}

progressions, err := systems.GetProgressionSystem().Update(ctx, logger, nk, userId, progressionId, counts)
if err != nil {
  return err
}

Reset #

Reset one or more progressions to clear their progress. Only applies to progression counts and unlock costs.

1
2
3
4
5
6
7
userId := "userId"
progressionIds := []string{"progressionId_001", "progressionId_002"}

progressions, err := systems.GetProgressionSystem().Reset(ctx, logger, nk, userId, progressionIds)
if err != nil {
  return err
}