Event Leaderboards #

Read more about the Event Leaderboards system in Hiro here.

Initializing the event leaderboards system #

The event leaderboards system relies on the Nakama System which must be passed in as dependency via the constructor.

1
2
var eventLeaderboardsSystem = new EventLeaderboardsSystem(logger, nakamaSystem);
systems.Add(eventLeaderboardsSystem);

Subscribing to changes in the event leaderboards system #

You can listen for changes in the event leaderboards system so that you can respond appropriately, such as updating the UI, by implementing the appropriate interface.

1
2
3
4
5
var disposer = SystemObserver<EventLeaderboardsSystem>.Create(eventLeaderboardsSystem, system => {
  Instance.Logger.Info($"System updated.");

  // Update UI elements etc as necessary here...
});

Getting an individual event leaderboard #

You can get an individual event leaderboard, including it’s records and information on it’s rewards.

1
var eventLeaderboard = await eventLeaderboardsSystem.GetEventLeaderboardAsync("<leaderboardId>");

Submitting an event leaderboard score #

You can submit an event leaderboard score for the user.

1
2
3
var score = 100;
var subscore = 10;
var eventLeaderboard =await eventLeaderboardsSystem.UpdateEventLeaderboardAsync("<leaderboardId>", score, subscore);

Claiming rewards #

You can claim event leaderboard rewards for the user.

1
var eventLeaderboard = await eventLeaderboardsSystem.ClaimEventRewardsAsync("<leaderboardId>");

Re-rolling an event leaderboard #

You can re-roll the cohort the user is in for a specific event leaderboard. A re-roll would occur when a user has previously joined an event leaderboard and claimed their reward but would now like to re-join again for another chance at claiming a reward, or to play against a different set of opponents.

1
await eventLeaderboardsSystem.RollEventLeaderboardAsync("<leaderboardId>");