-
Notifications
You must be signed in to change notification settings - Fork 3
/
StatsHandler.cs
101 lines (87 loc) · 3.06 KB
/
StatsHandler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System;
using System.Collections;
using System.Collections.Generic;
using AccelByte.Api;
using AccelByte.Core;
using AccelByte.Models;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class StatsHandler : MenuCanvas
{
[SerializeField] private TMP_Text singlePlayerStatValueText;
[SerializeField] private TMP_Text eliminationStatValueText;
[SerializeField] private TMP_Text teamDeathmatchStatValueText;
[SerializeField] private Button backButton;
// statcodes' name configured in Admin Portal
private const string SINGLEPLAYER_STATCODE = "unity-highestscore-singleplayer";
private const string ELIMINATION_STATCODE = "unity-highestscore-elimination";
private const string TEAMDEATHMATCH_STATCODE = "unity-highestscore-teamdeathmatch";
private StatsEssentialsWrapper _statsWrapper;
// Start is called before the first frame update
void Start()
{
// get stats' wrapper
_statsWrapper = TutorialModuleManager.Instance.GetModuleClass<StatsEssentialsWrapper>();
// uncomment to Reset Stat Item's value
// _statsWrapper.ResetUserStatsFromClient(SINGLEPLAYER_STATCODE, null, null);
// UI initialization
backButton.onClick.AddListener(OnBackButtonClicked);
// set default values
singlePlayerStatValueText.text = "0";
eliminationStatValueText.text = "0";
teamDeathmatchStatValueText.text = "0";
DisplayStats();
}
void OnEnable()
{
if (gameObject.activeSelf && _statsWrapper != null)
{
DisplayStats();
}
}
private void DisplayStats()
{
// trying to get the stats values
string[] statCodes =
{
SINGLEPLAYER_STATCODE,
ELIMINATION_STATCODE,
TEAMDEATHMATCH_STATCODE
};
_statsWrapper.GetUserStatsFromClient(statCodes, null, OnGetUserStatsCompleted);
}
private void OnGetUserStatsCompleted(Result<PagedStatItems> result)
{
if (!result.IsError){
foreach (StatItem statItem in result.Value.data)
{
Debug.Log("[STATS]" + statItem.statCode + " - " + statItem.value);
switch (statItem.statCode)
{
case SINGLEPLAYER_STATCODE:
singlePlayerStatValueText.text = statItem.value.ToString();
break;
case ELIMINATION_STATCODE:
eliminationStatValueText.text = statItem.value.ToString();
break;
case TEAMDEATHMATCH_STATCODE:
teamDeathmatchStatValueText.text = statItem.value.ToString();
break;
}
}
}
}
private void OnBackButtonClicked()
{
MenuManager.Instance.OnBackPressed();
}
public override GameObject GetFirstButton()
{
return backButton.gameObject;
}
public override AssetEnum GetAssetEnum()
{
return AssetEnum.StatsProfileMenuCanvas;
}
}