Files
Darklings-FightingGame/Assets/_Project/Scripts/PlayerPreferences.cs

177 lines
9.9 KiB
C#
Raw Permalink Normal View History

2022-01-20 03:01:55 +01:00
using System;
2022-11-21 18:08:37 +02:00
using System.Runtime.InteropServices;
2022-01-19 23:33:02 +01:00
using TMPro;
using UnityEngine;
public class PlayerPreferences : MonoBehaviour
{
2022-11-18 23:59:40 +02:00
[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;
2023-08-09 09:48:11 +03:00
[SerializeField] private HomeMenu _homeMenu = default;
2022-11-18 23:59:40 +02:00
[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;
2022-11-18 23:59:40 +02:00
[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")]
2023-12-04 09:55:55 +02:00
[Header("Graphics")]
[SerializeField] private BaseSelector _resolutionSelector = default;
[SerializeField] private int _resolutionSelectorInitial = default;
[SerializeField] private BaseSelector _displaySelector = default;
[SerializeField] private int _displaySelectorInitial = default;
2022-11-18 23:59:40 +02:00
[Header("Audio")]
[SerializeField] private DemonSlider _sfxSlider = default;
[Range(0, 100)]
[SerializeField] private int _sfxSelectorInitial = default;
[SerializeField] private DemonSlider _uiSlider = default;
[Range(0, 100)]
2022-11-18 23:59:40 +02:00
[SerializeField] private int _uiSelectorInitial = default;
[SerializeField] private DemonSlider _musicSlider = default;
[Range(0, 100)]
2022-11-18 23:59:40 +02:00
[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;
2022-11-18 23:59:40 +02:00
[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;
2022-11-18 23:59:40 +02:00
[SerializeField] private BaseSelector _uiCanvasSelector = default;
[SerializeField] private int _uiCanvasSelectorInitial = default;
2022-11-18 23:59:40 +02:00
void Start()
{
if (_checkOnline)
LoadOnlinePreferences();
if (_checkStage)
{
_onlineSetupMenu.SetMusicSelectorValues();
_onlineSetupMenu.SetStageSelectorValues();
2022-11-18 23:59:40 +02:00
_changeStageMenu.SetMusicSelectorValues();
_changeStageMenu.SetStageSelectorValues();
LoadStagePreferences();
}
if (_checkOptions)
LoadOptionPreferences();
if (_checkTraining)
2022-12-04 21:35:31 +02:00
if (GameplayManager.Instance.IsTrainingMode)
2022-11-18 23:59:40 +02:00
LoadTrainingPreferences();
}
2022-11-18 23:59:40 +02:00
private void LoadOnlinePreferences()
{
2022-12-08 17:39:21 +02:00
_playerNameInputField.text = DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString());
2022-11-21 21:15:05 +02:00
_charactersAssistSelector.SetValue(int.Parse(DemonicsSaver.Load("characterassist", _characterAssistSelectorInitial.ToString())));
_characterColorSelector.SetValue(int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())));
2023-09-25 18:01:16 +03:00
_onlineSetupMenu.SetCharacter(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())));
2023-12-29 13:54:08 +02:00
_onlineSetupMenu.SetDemonData(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())),
int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())),
DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString()));
2023-09-25 18:01:16 +03:00
_homeMenu.SetCharacter(int.Parse(DemonicsSaver.Load("character", _characterSelectorInitial.ToString())),
int.Parse(DemonicsSaver.Load("charactercolor", _characterColorSelectorInitial.ToString())),
DemonicsSaver.Load("playerName", _playerNameInputFieldInitial.ToString()));
2022-11-18 23:59:40 +02:00
}
2022-01-19 23:33:02 +01:00
2022-11-18 23:59:40 +02:00
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())));
2022-11-21 21:15:05 +02:00
_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())));
2022-11-18 23:59:40 +02:00
}
2022-06-15 01:53:35 +02:00
2022-11-18 23:59:40 +02:00
private void LoadOptionPreferences()
{
2023-12-04 09:55:55 +02:00
_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())));
2022-11-18 23:59:40 +02:00
}
2022-01-10 21:50:04 +01:00
2022-11-18 23:59:40 +02:00
private void LoadTrainingPreferences()
{
//General
2022-11-21 21:15:05 +02:00
_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())));
2022-04-12 21:24:28 +02:00
2022-11-18 23:59:40 +02:00
//Cpu
2022-11-21 21:15:05 +02:00
_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())));
2022-11-21 21:15:05 +02:00
_onHitSelector.SetValue(int.Parse(DemonicsSaver.Load("onhit", _onHitSelectorInitial.ToString())));
2023-10-10 16:16:19 +03:00
//_stanceSelector.SetValue(int.Parse(DemonicsSaver.Load("stance", _stanceSelectorInitial.ToString())));
2022-04-12 21:24:28 +02:00
2022-11-18 23:59:40 +02:00
//Misc
2022-11-21 21:15:05 +02:00
_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())));
2022-11-21 21:15:05 +02:00
_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())));
2022-11-18 23:59:40 +02:00
}
2022-11-18 23:59:40 +02:00
public void SavePreference(string key, int value)
{
2022-11-21 18:08:37 +02:00
DemonicsSaver.Save(key, value.ToString());
2022-11-18 23:59:40 +02:00
}
2022-11-18 23:59:40 +02:00
public void RestoreToDefault()
{
PlayerPrefs.DeleteAll();
LoadTrainingPreferences();
}
}