using TMPro; using UnityEngine; public class SettingsActions : MonoBehaviour { [SerializeField] GameObject IO_test; [SerializeField] AudioClip testSound; [SerializeField] GameObject ScreenTester; private GameManager gm => GameManager.instance; private void OnEnable() { SettingsManager.OnSettingsChanged?.AddListener(RefreshUI); ComWrapper.onCoinAdded?.AddListener(RefreshUI); ComWrapper.onCoinRemoved?.AddListener(RefreshUI); RefreshUI(); } private void OnDisable() { SettingsManager.OnSettingsChanged?.RemoveListener(RefreshUI); ComWrapper.onCoinAdded?.RemoveListener(RefreshUI); ComWrapper.onCoinRemoved?.RemoveListener(RefreshUI); } public void ResetCoinsCounter() { PlayerPrefs.SetInt(PrizeSystem.key_startsNul, 0); RefreshUI(); } public void ResetPrizes() { PlayerPrefs.SetInt(PrizeSystem.key_prizesgivenNul, 0); RefreshUI(); } //Панель1 public void EnterSpecialPrize() => gm.stateMachine.ChangeState(new EnterSpecialPrizeState()); public void EnterPvePrice() => gm.stateMachine.ChangeState(new EnterPricePVEState()); public void EnterPveRevengePrice() => gm.stateMachine.ChangeState(new EnterPricePVERevengeState()); public void EnterPvpPrice() => gm.stateMachine.ChangeState(new EnterPricePVPState()); public void EnterSupportNumber() => gm.stateMachine.ChangeState(new GetNumberState()); public void EnterPrizesAvailable() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); public void ResetPrizeError() => PlayerPrefs.SetInt(KeyVault.PRIZING_ERROR_REGISTRED, 0); public void EnterPrizesSettings() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); public void ConfigurePrizes() => gm.stateMachine.ChangeState(new EnterPrizesForCharactersState()); public void ConfigurePulsesToResetDifficulty() => gm.stateMachine.ChangeState(new EnterPulsesToResetDifficulty()); public void ConfigureValutaPerPulse() => gm.stateMachine.ChangeState(new EnterValutaPerImpulse()); public void EnterValutaName() => gm.stateMachine.ChangeState(new EnterValutaNameState()); //Панель2 public void EnterIO_test() => gm.stateMachine.ChangeState(new IoTestState(IO_test)); public void HopperTest() => PrizeSystem.GivePrize(new Prize(PrizeType.Hopper, 1)); public void SoundTest() => SoundManager.instance.playClip(testSound); public void ScreenTest() => ScreenTester.SetActive(true); public void QrTest() => gm.stateMachine.ChangeState(new CheckQrState()); public void ResetBalance() { ComWrapper.Balance = 0; PlayerPrefs.SetInt("CoinsCount", 0); SettingsManager.OnSettingsChanged?.Invoke(); } string PRIZE_BASE = "Счетчик призов "; string STARTS_BASE = "Выручка "; string NULLABLE = "(обнуляемый)"; string UNNULLABLE = "(глобальный)"; public TextMeshProUGUI starts, startsNul, prize, prizeNul; void RefreshUI() { starts.text = STARTS_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_starts); startsNul.text = STARTS_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_startsNul); prize.text = PRIZE_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgiven); prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgivenNul); } void RefreshUI(int a) => RefreshUI(); }