105 lines
4.3 KiB
C#
105 lines
4.3 KiB
C#
using TMPro;
|
||
using UnityEngine;
|
||
using PrizeSystem;
|
||
|
||
public class SettingsActions : MonoBehaviour
|
||
{
|
||
[SerializeField] GameObject IO_test;
|
||
[SerializeField] AudioClip testSound;
|
||
[SerializeField] GameObject ScreenTester;
|
||
|
||
[SerializeField] AudioClip prizingDisabled;
|
||
private GameManager gm => GameManager.instance;
|
||
|
||
|
||
private IState CurrentState => GameManager.instance.stateMachine.currentState;
|
||
private void OnEnable()
|
||
{
|
||
SettingsManager.OnSettingsChanged?.AddListener(RefreshUI);
|
||
SingleWallet.onCoinAdded?.AddListener(RefreshUI);
|
||
SingleWallet.onCoinRemoved?.AddListener(RefreshUI);
|
||
|
||
RefreshUI();
|
||
}
|
||
private void OnDisable()
|
||
{
|
||
SettingsManager.OnSettingsChanged?.RemoveListener(RefreshUI);
|
||
SingleWallet.onCoinAdded?.RemoveListener(RefreshUI);
|
||
SingleWallet.onCoinRemoved?.RemoveListener(RefreshUI);
|
||
}
|
||
|
||
public void ResetCoinsCounter()
|
||
{
|
||
PlayerPrefs.SetInt(PrizeSystemManager.key_cashNul, 0);
|
||
RefreshUI();
|
||
}
|
||
public void ResetPrizes()
|
||
{
|
||
PrizeSystemManager.ResetPrizeCounters();
|
||
RefreshUI();
|
||
}
|
||
|
||
//Смены состояний
|
||
public void EnterSpecialPrize() => gm.stateMachine.ChangeState(new EnterSpecialPrizeState(CurrentState));
|
||
public void EnterPvePrice() => gm.stateMachine.ChangeState(new EnterPricePVEState(CurrentState));
|
||
public void EnterPveRevengePrice() => gm.stateMachine.ChangeState(new EnterPricePVERevengeState(CurrentState));
|
||
public void EnterPvpPrice() => gm.stateMachine.ChangeState(new EnterPricePVPState(CurrentState));
|
||
public void EnterSupportNumber() => gm.stateMachine.ChangeState(new GetNumberState(CurrentState));
|
||
public void EnterPrizesAvailable() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState(CurrentState));
|
||
public void ResetPrizeError() => PlayerPrefs.SetInt(KeyVault.PRIZING_ERROR_REGISTRED, 0);
|
||
public void EnterPrizesSettings() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState(CurrentState));
|
||
public void ConfigurePrizes() => gm.stateMachine.ChangeState(new EnterPrizesForCharactersState(CurrentState));
|
||
public void ConfigurePulsesToResetDifficulty() => gm.stateMachine.ChangeState(new EnterPulsesToResetDifficulty(CurrentState));
|
||
public void ConfigureValutaPerPulse() => gm.stateMachine.ChangeState(new EnterValutaPerImpulse(CurrentState));
|
||
public void EnterValutaName() => gm.stateMachine.ChangeState(new EnterValutaNameState(CurrentState));
|
||
public void QrTest() => gm.stateMachine.ChangeState(new CheckQrState(CurrentState));
|
||
public void EnterIO_test() => gm.stateMachine.ChangeState(new IoTestState(IO_test, CurrentState));
|
||
|
||
//Панель2
|
||
public void HopperTest()
|
||
{
|
||
if(SettingsManager.GetBool("Prizing", false))
|
||
{
|
||
PrizeSystemManager.GivePrize(PrizeUtils.CreatePrize(CountablePrizeType.Hopper, 1));
|
||
}
|
||
else
|
||
{
|
||
SoundManager.instance.playClip(prizingDisabled);
|
||
}
|
||
}
|
||
public void SoundTest() => SoundManager.instance.playClip(testSound);
|
||
public void ScreenTest() => ScreenTester.SetActive(true);
|
||
public void ResetBalance()
|
||
{
|
||
SingleWallet.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()
|
||
{
|
||
string valutaName = PlayerPrefs.GetString("ValutaName", "руб.");
|
||
|
||
starts.text = STARTS_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystemManager.key_cash) + " " + valutaName;
|
||
startsNul.text = STARTS_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystemManager.key_cashNul) + " " + valutaName;
|
||
|
||
//prize.text = PRIZE_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgiven);
|
||
//prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgivenNul);
|
||
prize.text = PRIZE_BASE + UNNULLABLE + ": " + PrizeSystemManager.GetPrizesCounterString();
|
||
prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PrizeSystemManager.GetPrizesCounterNullableString();
|
||
}
|
||
|
||
void RefreshUI(int a) => RefreshUI();
|
||
|
||
}
|