using RR.Common.UI; using RR.Game2D.Core.Managers; using UnityEngine; namespace RR.Common.Behaviour.ScriptableObjects { [CreateAssetMenu(fileName = "GameSettings", menuName = "Game/GameSettings")] public class GameSettings : ScriptableObject { // General settings public bool isFullscreen; // ATTENTION: Music between 0f and 1f public float musicVolume; public float sfxVolume; // Payment settings public bool isFreeGame; public bool isGivingPrizes; // Player settings public int startLivesCount; public int livesIncreasedByCredits; public bool setLivesToDefaultAfterFirstLose; public void SetDefaultValues() { isFullscreen = true; musicVolume = 1f; sfxVolume = 1f; isFreeGame = false; isGivingPrizes = true; setLivesToDefaultAfterFirstLose = true; startLivesCount = 3; livesIncreasedByCredits = 1; } public void ValidateSettings() { if (musicVolume < 0f || musicVolume > 1f) musicVolume = Mathf.Clamp01(musicVolume); if (sfxVolume < 0f || sfxVolume > 1f) sfxVolume = Mathf.Clamp01(sfxVolume); if (startLivesCount < 1) startLivesCount = 3; if (livesIncreasedByCredits < 0) livesIncreasedByCredits = 0; } public void ApplySettings() { if (isFullscreen) FullscreenToggle.SetFullscreen(isFullscreen); if (GameManager.Instance != null) { if (!setLivesToDefaultAfterFirstLose) GameManager.Instance.ResetLives = true; GameManager.Instance.Audio.SetMusicVolume(musicVolume); GameManager.Instance.Audio.SetSfxVolume(sfxVolume); } } } }