Tanoda
StatisticManager.cs
Go to the documentation of this file.
1using System.Collections;
2using System.Collections.Generic;
3using UnityEngine;
4
5public class StatisticManager : MonoBehaviour
6{
8
9 private readonly Dictionary<string, StageStats> stageCompleteTime = new Dictionary<string, StageStats>();
10 private readonly Dictionary<string, QuizStat> quizStats = new Dictionary<string, QuizStat>();
11
12 private void Awake()
13 {
14 instance = this;
15 }
16
17 public void FinishedStage(string stage, float time, bool success)
18 {
19 if (stageCompleteTime.ContainsKey(stage))
20 {
21 stageCompleteTime[stage].stageTimes.Add(time);
22 stageCompleteTime[stage].timesStarted++;
23 if (success)
24 stageCompleteTime[stage].completed++;
25 else
26 stageCompleteTime[stage].failed++;
27 }
28 else
29 {
30 var stageStats = new StageStats { stageName = stage, timesStarted = 1, completed = success ? 1u : 0, failed = !success ? 1u : 0 };
31 stageStats.stageTimes.Add(time);
32 stageCompleteTime.Add(stage, stageStats);
33 }
34 }
35
36 public void QuizAnswered(string quiz, float time, bool success)
37 {
38 if (quizStats.ContainsKey(quiz))
39 {
40 quizStats[quiz].allTrys++;
41 if (success)
42 quizStats[quiz].goodTrys++;
43 else
44 quizStats[quiz].badTrys++;
45
46 quizStats[quiz].quizTimes.Add(time);
47 }
48 else
49 {
50 var quizStat = new QuizStat {quizName = quiz, allTrys = 1, goodTrys = success ? 1u : 0, badTrys = !success ? 1u : 0 };
51 quizStat.quizTimes.Add(time);
52
53 quizStats.Add(quiz, quizStat);
54 }
55 }
56
57 public class StageStats
58 {
59 public string stageName;
60 public List<float> stageTimes = new List<float>();
61 public uint timesStarted;
62 public uint completed;
63 public uint failed;
64 }
65
66 public class QuizStat
67 {
68 public string quizName;
69 public List<float> quizTimes = new List<float>();
70 public uint allTrys;
71 public uint goodTrys;
72 public uint badTrys;
73 }
74}
void QuizAnswered(string quiz, float time, bool success)
void FinishedStage(string stage, float time, bool success)
StatisticManager instance