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

104 lines
4.2 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 IState CurrentState => GameManager.instance.stateMachine.currentState;
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();
}
//Смены состояний
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))
{
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 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();
}