chip-game/Assets/Scripts/Combinator/SettingsActions.cs

102 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using TMPro;
using UnityEngine;
public class SettingsActions : MonoBehaviour
{
[SerializeField] GameObject IO_test;
[SerializeField] AudioClip testSound;
[SerializeField] GameObject ScreenTester;
[SerializeField] AudioClip prizingDisabled;
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()
{
PrizeSystem.ResetPrizeCounters();
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()
{
if(SettingsManager.GetBool("Prizing", false))
{
PrizeSystem.GivePrize(new Prize(PrizeType.Hopper, 1));
}
else
{
SoundManager.instance.playClip(prizingDisabled);
}
}
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()
{
string valutaName = PlayerPrefs.GetString("ValutaName", "руб.");
starts.text = STARTS_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_starts) + " " + valutaName;
startsNul.text = STARTS_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_startsNul) + " " + 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 + ": " + PrizeSystem.GetPrizesCounterString();
prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PrizeSystem.GetPrizesCounterNullableString();
}
void RefreshUI(int a) => RefreshUI();
}