-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScoreHandler.cs
49 lines (41 loc) · 1.15 KB
/
ScoreHandler.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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ScoreHandler : MonoBehaviour
{
[SerializeField] private Player _player;
[SerializeField] private EndChecker _endChecker;
public delegate void AccountEventHandler(int currentScore);
public event AccountEventHandler OnAcountChange;
public event AccountEventHandler OnStart;
private int _account;
private int _bestAccount;
private void OnEnable()
{
_player.OnAccent += AddScore;
_endChecker.OnFinish += SaveProgress;
}
private void OnDisable()
{
_player.OnAccent -= AddScore;
_endChecker.OnFinish -= SaveProgress;
}
private void Start()
{
_bestAccount = PlayerPrefs.GetInt("Score", 0);
OnStart?.Invoke(_bestAccount);
}
private void AddScore(int score)
{
if(score < 1) return;
_account += score;
OnAcountChange?.Invoke(_account);
}
private void SaveProgress()
{
if(_bestAccount < _account)
{
PlayerPrefs.SetInt("Score", _account);
}
}
}