152 lines
3.8 KiB
C#

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();
}
}