using PrizeSystem; using UnityEngine; public class SettingFunctions : MonoBehaviour { [SerializeField] private TextInput _textInputPrefab; [SerializeField] private RectTransform _canvas; [SerializeField] private SettingsScreen _settingsScreen; [SerializeField] private CharacterPrizeConfigurator _prizesConfigurator; [SerializeField] private QrTestPanel _qrTestPanelPrefab; [SerializeField] private AudioClip _qrTestUnavailableClip; private QrTestPanel _activeQrTestPanel; private void Awake() { _prizesConfigurator.OnClosed += ReturnToSettings; } private void OnDestroy() { _prizesConfigurator.OnClosed -= ReturnToSettings; if (_activeQrTestPanel != null) _activeQrTestPanel.OnClosed -= CloseQrTest; } public void ResetBalance() => PaymentSystem.ResetBalance(); public void ResetPrizeError() => PrizeSystemManager.SetPrizingError(false); public void ConfigurePrizes() { _prizesConfigurator.Open(); ControlsPerformer.Instance.SetControlable(_prizesConfigurator); } public void EnterNumberAdmin() { string oldNumber = PlayerPrefs.GetString(PrefsKeyVault.NUMBER_ADMIN); var textInput = Instantiate(_textInputPrefab, _canvas); textInput.Initialize(11, Alphabets.DIGITS, oldNumber); ControlsPerformer.Instance.SetControlable(textInput); textInput.OnComplete += (result) => { PlayerPrefs.SetString(PrefsKeyVault.NUMBER_ADMIN, result); SettingsManager.TriggerSettingsChanged(); _settingsScreen.BlockControls(); ControlsPerformer.Instance.SetControlable(_settingsScreen); Destroy(textInput.gameObject); }; } public void EnterNumberSupport() { string oldNumber = PlayerPrefs.GetString(PrefsKeyVault.NUMBER_SUPPORT); var textInput = Instantiate(_textInputPrefab, _canvas); textInput.Initialize(11, Alphabets.DIGITS, oldNumber); ControlsPerformer.Instance.SetControlable(textInput); textInput.OnComplete += (result) => { PlayerPrefs.SetString(PrefsKeyVault.NUMBER_SUPPORT, result); SettingsManager.TriggerSettingsChanged(); _settingsScreen.BlockControls(); ControlsPerformer.Instance.SetControlable(_settingsScreen); Destroy(textInput.gameObject); }; } public void ScreenTest() { } public void InputTest() { } public void SoundTest() { } public void HopperTest() { var prize = PrizeUtils.CreatePrize(CountablePrizeType.Hopper, 1); PrizeSystemManager.GivePrize(prize); } public void QrTest() { if (_activeQrTestPanel != null) return; _activeQrTestPanel = Instantiate(_qrTestPanelPrefab, _canvas); if (_activeQrTestPanel.Initialize() == false) { Destroy(_activeQrTestPanel.gameObject); _activeQrTestPanel = null; if (SoundManager.instance != null) SoundManager.instance.playClip(_qrTestUnavailableClip); return; } _activeQrTestPanel.OnClosed += CloseQrTest; _settingsScreen.BlockControls(); ControlsPerformer.Instance.SetControlable(_activeQrTestPanel); } public void SetPassword() { } public void ResetPassword() { } public void OpenCounters() { } public void OpenPrizesRest() { } private void ReturnToSettings() { _settingsScreen.BlockControls(); ControlsPerformer.Instance.SetControlable(_settingsScreen); } private void CloseQrTest() { _activeQrTestPanel.OnClosed -= CloseQrTest; Destroy(_activeQrTestPanel.gameObject); _activeQrTestPanel = null; ReturnToSettings(); } }