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

96 lines
3.9 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;
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);
PaymentSystem.onCoinAdded += RefreshUI;
PaymentSystem.onCoinRemoved += RefreshUI;
RefreshUI();
}
private void OnDisable()
{
SettingsManager.OnSettingsChanged?.RemoveListener(RefreshUI);
PaymentSystem.onCoinAdded -= RefreshUI;
PaymentSystem.onCoinRemoved -= RefreshUI;
}
public void ResetCoinsCounter()
{
PlayerPrefs.SetInt(PrizeSystemManager.key_cashNul, 0);
RefreshUI();
}
public void ResetPrizes()
{
PrizeSystemManager.ResetPrizeCounters();
RefreshUI();
}
//Смены состояний
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 EnterIO_test() => gm.stateMachine.ChangeState(new IoTestState(IO_test, CurrentState));
public void EnterNumberTech() => gm.stateMachine.ChangeState(new EnterNumberTech(CurrentState));
//Панель2
public void HopperTest()
{
if (SettingsManager.GetBool("Prizing", false))
{
PrizeSystemManager.GivePrize(new CountablePrize(CountablePrizeType.Hopper, 1));
}
else
{
SoundManager.instance.playClip(prizingDisabled);
}
}
public void SoundTest() => SoundManager.instance.playClip(testSound);
public void ScreenTest() => ScreenTester.SetActive(true);
public void ResetBalance()
{
PaymentSystem.ResetBalance();
SettingsManager.OnSettingsChanged?.Invoke();
}
string PRIZE_BASE = "Счетчик призов ";
string STARTS_BASE = "Выручка ";
string NULLABLE = "(обнуляемый)";
string UNNULLABLE = "(глобальный)";
public TextMeshProUGUI starts, startsNul, prize, prizeNul;
void RefreshUI()
{
var valutaName = PaymentSystem.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 + ": " + PrizeSystemManager.GetPrizesCounterString();
prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PrizeSystemManager.GetPrizesCounterNullableString();
}
void RefreshUI(int a) => RefreshUI();
}