using System.Collections.Generic; using Code.UI; using TMPro; using UnityEngine; namespace Code.GameplayServices { public class PlayerScoreService : MonoBehaviour { [SerializeField] private ScoreTable scoreTable; public void ShowScoreTable() { scoreTable.gameObject.SetActive(true); } [SerializeField] private TMP_Text scoreText; [SerializeField] private TMP_Text playerNameText; private List _scores = new(); public List Scores => _scores; private int _score; private string _playerName; public static PlayerScoreService Instance { get; private set; } public int Score => _score; private void Awake() { Instance = this; } public void AddScore(int score) { _score += BonusService.Instance.CoinBoost ? score * 2 : score; UpdateScoreTextWithScoreValue(); } private void UpdateScoreTextWithScoreValue() { scoreText.text = _score.ToString(); } public void ResetScore() { _scores.Add(new ScoreData(_playerName, _score)); _score = 0; // _playerName = string.Empty; scoreText.text = _score.ToString(); } public void SetPlayerName(string playerName) { _playerName = playerName; playerNameText.text = _playerName; } } public struct ScoreData { public string name; public int score; public ScoreData(string name, int score) { this.name = name; this.score = score; } } }