Files
Darklings-FightingGame/Assets/_Project/Scripts/PlayerPreferences.cs
2023-12-29 13:54:08 +02:00

177 lines
9.9 KiB
C#

using System;
using System.Runtime.InteropServices;
using TMPro;
using UnityEngine;
public class PlayerPreferences : MonoBehaviour
{
[SerializeField] private bool _checkOnline = default;
[SerializeField] private bool _checkStage = default;
[SerializeField] private bool _checkOptions = default;
[SerializeField] private bool _checkTraining = default;
[SerializeField] private ChangeStageMenu _changeStageMenu = default;
[SerializeField] private OnlineSetupMenu _onlineSetupMenu = default;
[SerializeField] private HomeMenu _homeMenu = default;
[Header("ONLINE")]
[SerializeField] private string _playerNameInputFieldInitial = "Demon";
[SerializeField] private TMP_InputField _playerNameInputField = default;
[SerializeField] private int _characterSelectorInitial = default;
[SerializeField] private BaseSelector _charactersAssistSelector = default;
[SerializeField] private int _characterAssistSelectorInitial = default;
[SerializeField] private BaseSelector _characterColorSelector = default;
[SerializeField] private int _characterColorSelectorInitial = default;
[SerializeField] private BaseSelector _stageOnlineSelector = default;
[SerializeField] private int _stageOnlineInitial = default;
[SerializeField] private BaseSelector _musicOnlineSelector = default;
[SerializeField] private int _musicOnlineInitial = default;
[SerializeField] private BaseSelector _stageStyleOnlineSelector = default;
[SerializeField] private int _stageStyleOnlineInitial = default;
[Header("STAGE")]
[SerializeField] private BaseSelector _stageSelector = default;
[SerializeField] private int _stageSelectorInitial = default;
[SerializeField] private BaseSelector _stageMusicSelector = default;
[SerializeField] private int _stageMusicSelectorInitial = default;
[SerializeField] private BaseSelector _stageStyleSelector = default;
[SerializeField] private int _stageStyleSelectorInitial = default;
[Header("OPTIONS")]
[Header("Graphics")]
[SerializeField] private BaseSelector _resolutionSelector = default;
[SerializeField] private int _resolutionSelectorInitial = default;
[SerializeField] private BaseSelector _displaySelector = default;
[SerializeField] private int _displaySelectorInitial = default;
[Header("Audio")]
[SerializeField] private DemonSlider _sfxSlider = default;
[Range(0, 100)]
[SerializeField] private int _sfxSelectorInitial = default;
[SerializeField] private DemonSlider _uiSlider = default;
[Range(0, 100)]
[SerializeField] private int _uiSelectorInitial = default;
[SerializeField] private DemonSlider _musicSlider = default;
[Range(0, 100)]
[SerializeField] private int _musicSelectorInitial = default;
[Header("TRAINING")]
[Header("General")]
[SerializeField] private BaseSelector _healthSelector = default;
[SerializeField] private int _healthSelectorInitial = default;
[SerializeField] private BaseSelector _arcanaSelector = default;
[SerializeField] private int _arcanaSelectorInitial = default;
[SerializeField] private BaseSelector _assistSelector = default;
[SerializeField] private int _assistSelectorInitial = default;
[Header("CPU")]
[SerializeField] private BaseSelector _cpuSelector = default;
[SerializeField] private int _cpuSelectorInitial = default;
[SerializeField] private BaseSelector _blockSelector = default;
[SerializeField] private int _blockSelectorInitial = default;
[SerializeField] private BaseSelector _blockCountSelector = default;
[SerializeField] private int _blockCountSelectorInitial = default;
[SerializeField] private BaseSelector _onHitSelector = default;
[SerializeField] private int _onHitSelectorInitial = default;
[SerializeField] private BaseSelector _stanceSelector = default;
[SerializeField] private int _stanceSelectorInitial = default;
[Header("Misc")]
[SerializeField] private BaseSelector _hitboxesSelector = default;
[SerializeField] private int _hitboxesSelectorInitial = default;
[SerializeField] private BaseSelector _framedataSelector = default;
[SerializeField] private int _framedataSelectorInitial = default;
[SerializeField] private BaseSelector _slowdownSelector = default;
[SerializeField] private int _slowdownSelectorInitial = default;
[SerializeField] private BaseSelector _inputSelector = default;
[SerializeField] private int _inputSelectorInitial = default;
[SerializeField] private BaseSelector _framedataMeterSelector = default;
[SerializeField] private int _framedataMeterSelectorInitial = default;
[SerializeField] private BaseSelector _inputDisplaySelector = default;
[SerializeField] private int _inputDisplaySelectorInitial = default;
[SerializeField] private BaseSelector _uiCanvasSelector = default;
[SerializeField] private int _uiCanvasSelectorInitial = default;
void Start()
{
if (_checkOnline)
LoadOnlinePreferences();
if (_checkStage)
{
_onlineSetupMenu.SetMusicSelectorValues();
_onlineSetupMenu.SetStageSelectorValues();
_changeStageMenu.SetMusicSelectorValues();
_changeStageMenu.SetStageSelectorValues();
LoadStagePreferences();
}
if (_checkOptions)
LoadOptionPreferences();
if (_checkTraining)
if (GameplayManager.Instance.IsTrainingMode)
LoadTrainingPreferences();
}
private void LoadOnlinePreferences()
{
_playerNameInputField.text = DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString());
_charactersAssistSelector.SetValue(int.Parse(DemonicsSaver.Load("characterassist", _characterAssistSelectorInitial.ToString())));
_characterColorSelector.SetValue(int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())));
_onlineSetupMenu.SetCharacter(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())));
_onlineSetupMenu.SetDemonData(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())),
int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())),
DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString()));
_homeMenu.SetCharacter(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())),
int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())),
DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString()));
}
private void LoadStagePreferences()
{
_stageOnlineSelector.SetValue(int.Parse(DemonicsSaver.Load("stageonline", _stageOnlineInitial.ToString())));
_musicOnlineSelector.SetValue(int.Parse(DemonicsSaver.Load("stagemusiconline", _musicOnlineInitial.ToString())));
_stageStyleOnlineSelector.SetValue(int.Parse(DemonicsSaver.Load("stagestyleonline", _stageStyleOnlineInitial.ToString())));
_stageSelector.SetValue(int.Parse(DemonicsSaver.Load("stage", _stageSelectorInitial.ToString())));
_stageMusicSelector.SetValue(int.Parse(DemonicsSaver.Load("stagemusic", _stageMusicSelectorInitial.ToString())));
_stageStyleSelector.SetValue(int.Parse(DemonicsSaver.Load("stagestyle", _stageStyleSelectorInitial.ToString())));
}
private void LoadOptionPreferences()
{
_resolutionSelector.SetValue(int.Parse(DemonicsSaver.Load("resolution", _resolutionSelectorInitial.ToString())));
_displaySelector.SetValue(int.Parse(DemonicsSaver.Load("display", _displaySelectorInitial.ToString())));
_sfxSlider.SetValue(int.Parse(DemonicsSaver.Load("sfx", _sfxSelectorInitial.ToString())));
_uiSlider.SetValue(int.Parse(DemonicsSaver.Load("ui", _uiSelectorInitial.ToString())));
_musicSlider.SetValue(int.Parse(DemonicsSaver.Load("music", _musicSelectorInitial.ToString())));
}
private void LoadTrainingPreferences()
{
//General
_healthSelector.SetValue(int.Parse(DemonicsSaver.Load("health", _healthSelectorInitial.ToString())));
_arcanaSelector.SetValue(int.Parse(DemonicsSaver.Load("arcana", _arcanaSelectorInitial.ToString())));
_assistSelector.SetValue(int.Parse(DemonicsSaver.Load("shadow", _assistSelectorInitial.ToString())));
//Cpu
_cpuSelector.SetValue(int.Parse(DemonicsSaver.Load("cpu", _cpuSelectorInitial.ToString())));
_blockSelector.SetValue(int.Parse(DemonicsSaver.Load("block", _blockSelectorInitial.ToString())));
_blockCountSelector.SetValue(int.Parse(DemonicsSaver.Load("blockCount", _blockCountSelectorInitial.ToString())));
_onHitSelector.SetValue(int.Parse(DemonicsSaver.Load("onhit", _onHitSelectorInitial.ToString())));
//_stanceSelector.SetValue(int.Parse(DemonicsSaver.Load("stance", _stanceSelectorInitial.ToString())));
//Misc
_hitboxesSelector.SetValue(int.Parse(DemonicsSaver.Load("hitboxes", _hitboxesSelectorInitial.ToString())));
_framedataSelector.SetValue(int.Parse(DemonicsSaver.Load("framedata", _framedataSelectorInitial.ToString())));
_framedataMeterSelector.SetValue(int.Parse(DemonicsSaver.Load("framedataMeter", _framedataMeterSelectorInitial.ToString())));
_inputDisplaySelector.SetValue(int.Parse(DemonicsSaver.Load("inputDisplay", _inputDisplaySelectorInitial.ToString())));
_slowdownSelector.SetValue(int.Parse(DemonicsSaver.Load("slowdown", _slowdownSelectorInitial.ToString())));
_inputSelector.SetValue(int.Parse(DemonicsSaver.Load("input", _inputSelectorInitial.ToString())));
_uiCanvasSelector.SetValue(int.Parse(DemonicsSaver.Load("uicanvas", _uiCanvasSelectorInitial.ToString())));
}
public void SavePreference(string key, int value)
{
DemonicsSaver.Save(key, value.ToString());
}
public void RestoreToDefault()
{
PlayerPrefs.DeleteAll();
LoadTrainingPreferences();
}
}