diff --git a/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset b/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset index 8aa2299..e519b6e 100644 --- a/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset +++ b/Game/CourierOld/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset @@ -112,6 +112,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: 4b279429428a13040b6d1713122cd0de + m_Address: Assets/Resources_moved/Audio/SFX/pl_pain5.wav + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: 4bd64d1fcecc9c6b09d81e78b7dcfebe m_Address: Audio/Dispatcher/take_damage1 m_ReadOnly: 0 @@ -188,6 +193,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: aa138b2e21adfbf4bbbfa5bf9d54b8f2 + m_Address: Assets/Resources_moved/Audio/UI/buttonclickrelease.wav + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: ab5926b5200bedc49aec36c0afe6b028 m_Address: Prefabs/Rooms/Level3_Big m_ReadOnly: 0 @@ -218,6 +228,11 @@ MonoBehaviour: m_ReadOnly: 0 m_SerializedLabels: [] FlaggedDuringContentUpdateRestriction: 0 + - m_GUID: c5a0ad8a615841547ac2ee613af526d8 + m_Address: Assets/Resources_moved/Audio/SFX/pl_pain2.wav + m_ReadOnly: 0 + m_SerializedLabels: [] + FlaggedDuringContentUpdateRestriction: 0 - m_GUID: c938de3174f184741925c407a43a47f2 m_Address: Prefabs/Rooms/Level1 m_ReadOnly: 0 diff --git a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs index 54f32b2..e83328a 100644 --- a/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs +++ b/Game/CourierOld/Assets/Code/App/BootstrapInstaller.cs @@ -67,6 +67,7 @@ namespace Code.App containerBuilder.AddSingleton(infrastructureUnit.AddComponent()); } + // TODO Часть в сцены private void InstallStaticData(ContainerBuilder containerBuilder, out IStaticDataService staticDataService) { staticDataService = new StaticDataService(); @@ -97,6 +98,8 @@ namespace Code.App containerBuilder.AddSingleton(staticDataService.DispatcherSoundListConfig, typeof(DispatcherSoundListConfig)); containerBuilder.AddSingleton(staticDataService.EnemiesSoundListConfig, typeof(EnemiesSoundListConfig)); containerBuilder.AddSingleton(staticDataService.AudioSourceSettingsConfigs, typeof(Dictionary)); + + containerBuilder.AddSingleton(staticDataService.DefaultAudioSettingsConfig, typeof(DefaultAudioSettingsConfig)); containerBuilder.AddSingleton(staticDataService.OrderServiceConfig, typeof(OrderServiceConfig)); containerBuilder.AddSingleton(staticDataService.OrderBoxConfig, typeof(OrderBoxConfig)); diff --git a/Game/CourierOld/Assets/Code/Audio/AudioService.cs b/Game/CourierOld/Assets/Code/Audio/AudioService.cs index 33526b4..ebf5287 100644 --- a/Game/CourierOld/Assets/Code/Audio/AudioService.cs +++ b/Game/CourierOld/Assets/Code/Audio/AudioService.cs @@ -22,23 +22,31 @@ namespace Code.Audio private AudioSource _actionMusicSource; private AudioSource _peacefulMusicSource; - private Dictionary _audioMixerGroups = new (); + private Dictionary _audioMixerGroups = new(); private readonly AudioSourcePool _audioSourcePool; - private Dictionary _snapshots = new(); + // private Dictionary _snapshots = new(); + // Юнити не может - говнокод поможет. + private Dictionary> _snapshotsVolumes = new(); private Dictionary _settings; - public AudioService(IAudioFactory audioFactory, Dictionary settings) + public AudioService(IAudioFactory audioFactory, + Dictionary settings, + DefaultAudioSettingsConfig defaultAudioSettingsConfig) { _audioFactory = audioFactory; _audioSourcePool = new(settings); _settings = settings; + + _snapshotsVolumes.Add(AudioSnapshotState.None,defaultAudioSettingsConfig.noneVolume); + _snapshotsVolumes.Add(AudioSnapshotState.Menu,defaultAudioSettingsConfig.menuVolume); + _snapshotsVolumes.Add(AudioSnapshotState.Action,defaultAudioSettingsConfig.actionVolume); + _snapshotsVolumes.Add(AudioSnapshotState.Peaceful,defaultAudioSettingsConfig.peacefulVolume); } - // TODO Грязно, убрать снапшоты НАХУЙ public float GetSetting(AudioType type) { - _snapshots[AudioSnapshotState.Peaceful].audioMixer.GetFloat(_audioMixerGroups[type].name, out float value); + _mixer.GetFloat(_audioMixerGroups[type].name, out float value); value = Mathf.Pow(10f, value / 20); @@ -51,26 +59,30 @@ namespace Code.Audio switch (type) { case AudioType.Master: - _snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); - _snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); - _snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); + _snapshotsVolumes[AudioSnapshotState.Menu][type] = value; + _snapshotsVolumes[AudioSnapshotState.Action][type] = value; + _snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value; + _mixer.SetFloat(_audioMixerGroups[type].name, volume); break; case AudioType.ActionMusic: - _snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); + _snapshotsVolumes[AudioSnapshotState.Action][type] = value; + _mixer.SetFloat(_audioMixerGroups[type].name, volume); break; case AudioType.PeacefulMusic: - _snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); + _snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value; + _mixer.SetFloat(_audioMixerGroups[type].name, volume); break; case AudioType.MenuMusic: - _snapshots[AudioSnapshotState.Menu].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); - break; - case AudioType.Creatures: - case AudioType.SFX: - case AudioType.DispatcherSounds: + _snapshotsVolumes[AudioSnapshotState.Menu][type] = value; + _mixer.SetFloat(_audioMixerGroups[type].name, volume); + break; + case AudioType.SFX: + case AudioType.Dispatcher: case AudioType.Courier: case AudioType.Enemies: - _snapshots[AudioSnapshotState.Peaceful].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); - _snapshots[AudioSnapshotState.Action].audioMixer.SetFloat(_audioMixerGroups[type].name, volume); + _snapshotsVolumes[AudioSnapshotState.Action][type] = value; + _snapshotsVolumes[AudioSnapshotState.Peaceful][type] = value; + _mixer.SetFloat(_audioMixerGroups[type].name, volume); break; } } @@ -90,26 +102,20 @@ namespace Code.Audio _musicAudioSources.Add(MusicType.Menu, null); _musicAudioSources.Add(MusicType.Action, null); _musicAudioSources.Add(MusicType.Peaceful, null); - + _audioMixerGroups.Add(AudioType.Master, _mixer.FindMatchingGroups(AudioGroups.MasterGroup)[0]); - _audioMixerGroups.Add(AudioType.SFX, _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]); - _audioMixerGroups.Add(AudioType.Creatures, _mixer.FindMatchingGroups(AudioGroups.CreaturesGroup)[0]); - _audioMixerGroups.Add(AudioType.DispatcherSounds, _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]); + _audioMixerGroups.Add(AudioType.SFX, _mixer.FindMatchingGroups(AudioGroups.SFXGroup)[0]); + _audioMixerGroups.Add(AudioType.Dispatcher, _mixer.FindMatchingGroups(AudioGroups.DispatcherMusicGroup)[0]); _audioMixerGroups.Add(AudioType.Courier, _mixer.FindMatchingGroups(AudioGroups.CourierGroup)[0]); - _audioMixerGroups.Add(AudioType.Enemies, _mixer.FindMatchingGroups(AudioGroups.EnemiesMusicGroup)[0]); + _audioMixerGroups.Add(AudioType.Enemies, _mixer.FindMatchingGroups(AudioGroups.EnemiesGroup)[0]); _audioMixerGroups.Add(AudioType.MenuMusic, _musicAudioGroups[MusicType.Menu]); _audioMixerGroups.Add(AudioType.ActionMusic, _musicAudioGroups[MusicType.Action]); _audioMixerGroups.Add(AudioType.PeacefulMusic, _musicAudioGroups[MusicType.Peaceful]); - _snapshots[AudioSnapshotState.None] = _mixer.FindSnapshot(AudioGroups.NoneSnapshot); - _snapshots[AudioSnapshotState.Menu] = _mixer.FindSnapshot(AudioGroups.MenuSnapshot); - _snapshots[AudioSnapshotState.Action] = _mixer.FindSnapshot(AudioGroups.ActionSnapshot); - _snapshots[AudioSnapshotState.Peaceful] = _mixer.FindSnapshot(AudioGroups.PeacefulSnapshot); await _audioFactory.LoadAudioSourcePrefab(_audioSourcePool.Initialize); } -#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed private Dictionary _cancellationTokenSources = new(); private Dictionary _musicAudioSources = new(); private Dictionary _musicAudioGroups = new(); @@ -129,14 +135,11 @@ namespace Code.Audio _musicAudioSources[musicType].Play(); - // await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType], - // _ => !_musicAudioSources[musicType].isPlaying, - // cancellationToken: _cancellationTokenSources[musicType].Token); await UniTask.NextFrame(); var (isCanceled, _) = await UniTask.WaitUntilValueChanged(_musicAudioSources[musicType], _ => !_musicAudioSources[musicType].isPlaying, cancellationToken: _cancellationTokenSources[musicType].Token).SuppressCancellationThrow(); - + Debug.LogError("Music skipping"); if (isCanceled) { _cancellationTokenSources[musicType].Dispose(); @@ -148,13 +151,13 @@ namespace Code.Audio return; } - PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(musicType); + PlayRandomMusicUntilHumanityWillBeDestroyedForTheySins(musicType).Forget(); } public async UniTaskVoid GladlyAskToStopMusic(MusicType musicType, AudioSnapshotState audioSnapshotState = AudioSnapshotState.None, float time = 1f, Action callback = null) { - TransitToSnapshot(audioSnapshotState, time); + // TransitToSnapshot(audioSnapshotState, time); await UniTask.WaitForSeconds(time); @@ -162,7 +165,6 @@ namespace Code.Audio callback?.Invoke(); } -#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed public void StopMusic() { @@ -172,29 +174,39 @@ namespace Code.Audio public void GladlyAskToStopMusic(Action callback = null) { - TransitToSnapshot(AudioSnapshotState.None); + // TransitToSnapshot(AudioSnapshotState.None); _peacefulMusicSource.Stop(); _actionMusicSource.Stop(); callback?.Invoke(); } - public void TransitToSnapshot(AudioSnapshotState state, float time = 1f) + public void TransitToSnapshot(AudioSnapshotState state, float time = 1) { - _snapshots[state].TransitionTo(time); + foreach (var key in _audioMixerGroups.Keys) + _mixer.DOSetFloat(_audioMixerGroups[key].name, Mathf.Log10(_snapshotsVolumes[state][key]) * 20, time); } + public void PlaySFX(SFXSounds sfxId, Vector3 position) { - _audioSourcePool.PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _audioMixerGroups[AudioType.SFX]).Forget(); + _audioSourcePool + .PlayOneShot(_audioFactory.SFXAudios[(int)sfxId], position, _audioMixerGroups[AudioType.SFX]).Forget(); } public void PlayEnemy(EnemiesSounds enemySoundId, Vector3 position) { - _audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position, _audioMixerGroups[AudioType.Enemies]).Forget(); + _audioSourcePool.PlayOneShot(_audioFactory.EnemiesAudios[(int)enemySoundId], position, + _audioMixerGroups[AudioType.Enemies]).Forget(); + } + + public AudioSource GetSourceOfGroup(AudioType group) + { + AudioSource source = _audioSourcePool.GetSource(); + source.outputAudioMixerGroup = _audioMixerGroups[group]; + return source; } - public AudioSource GetSourceOfGroup(AudioType group) => _audioSourcePool.GetSource(); public void ReleaseSourceOfGroup(AudioSource source) => _audioSourcePool.ReleaseSource(source); // Чинить долго и дорого пусть Артёмов будет много, ведь он наш друг @@ -204,18 +216,21 @@ namespace Code.Audio public void PlayDispatcher(DispatcherSounds dispatcherSoundId) { OnDispatcherStarted?.Invoke(); - _audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], _audioMixerGroups[AudioType.DispatcherSounds], + _audioSourcePool.PlayOneShot(_audioFactory.DispatcherAudios[(int)dispatcherSoundId], + _audioMixerGroups[AudioType.Dispatcher], AudioSourceType.NoBlend, () => OnDispatcherEnded?.Invoke()).Forget(); } private CancellationTokenSource _testClipCancellationTokenSource = new(); private void ResetCurrentTestAudioSource() => _currentTestClipAudioType = AudioType.Master; + private AudioType _currentTestClipAudioType; + // TODO Засунуть в словарь public void PlayTestClip(AudioType audioType) { - if(_currentTestClipAudioType == audioType) return; - + if (_currentTestClipAudioType == audioType) return; + _testClipCancellationTokenSource.Cancel(); _testClipCancellationTokenSource = new(); @@ -225,6 +240,5 @@ namespace Code.Audio _audioMixerGroups[audioType], _testClipCancellationTokenSource, AudioSourceType.NoBlend, ResetCurrentTestAudioSource).Forget(); } - } } \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Audio/MusicType.cs b/Game/CourierOld/Assets/Code/Audio/MusicType.cs index 89972a3..93098eb 100644 --- a/Game/CourierOld/Assets/Code/Audio/MusicType.cs +++ b/Game/CourierOld/Assets/Code/Audio/MusicType.cs @@ -9,9 +9,8 @@ namespace Code.Audio public enum AudioType { Master, - MenuMusic, - Creatures, - DispatcherSounds, + MenuMusic, + Dispatcher, SFX, Courier, Enemies, diff --git a/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs b/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs new file mode 100644 index 0000000..a46af0f --- /dev/null +++ b/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs @@ -0,0 +1,27 @@ +using System.Collections.Generic; +using AYellowpaper.SerializedCollections; +using UnityEngine; +using AudioType = Code.Audio.AudioType; + +namespace Code.Configs +{ + [CreateAssetMenu(fileName = "DefaultAudioSettingsConfig", menuName = "Audio/DefaultAudioSettings")] + public class DefaultAudioSettingsConfig : ScriptableObject + { + [Header("Menu")] + [SerializedDictionary("AudioType", "Volume")] + public SerializedDictionary menuVolume = new(); + + [Header("Action")] + [SerializedDictionary("AudioType", "Volume")] + public SerializedDictionary actionVolume = new(); + + [Header("Peaceful")] + [SerializedDictionary("AudioType", "Volume")] + public SerializedDictionary peacefulVolume = new(); + + [Header("None")] + [SerializedDictionary("AudioType", "Volume")] + public SerializedDictionary noneVolume = new(); + } +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs.meta b/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs.meta new file mode 100644 index 0000000..5ca1683 --- /dev/null +++ b/Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 36d35c52933d4d4ba836f75b05c4810f +timeCreated: 1764754933 \ No newline at end of file diff --git a/Game/CourierOld/Assets/Code/Constants/StringPaths.cs b/Game/CourierOld/Assets/Code/Constants/StringPaths.cs index 9362fff..72a1686 100644 --- a/Game/CourierOld/Assets/Code/Constants/StringPaths.cs +++ b/Game/CourierOld/Assets/Code/Constants/StringPaths.cs @@ -20,7 +20,7 @@ namespace Code.Constants public const string ActionMusicGroup = "Action"; public const string DispatcherMusicGroup = "Dispatcher"; public const string CourierGroup = "Courier"; - public const string EnemiesMusicGroup = "Enemies"; + public const string EnemiesGroup = "Enemies"; public const string PeacefulSnapshot = "Peaceful"; public const string ActionSnapshot = "Action"; diff --git a/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyAudio.cs b/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyAudio.cs index 981562f..a5542b2 100644 --- a/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyAudio.cs +++ b/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyAudio.cs @@ -8,7 +8,7 @@ namespace Code.Gameplay.Enemies { private IAudioService _audioService; private IAudioFactory _audioFactory; - private AudioSource _audioSource; + [SerializeField] private AudioSource _audioSource; [SerializeField] private EnemiesSounds stepId; [Inject] @@ -17,7 +17,7 @@ namespace Code.Gameplay.Enemies _audioService = audioService; _audioSource = audioService.GetSourceOfGroup(Audio.AudioType.Enemies); _audioSource.transform.position = transform.position; - + _audioSource.spatialBlend = 0; _audioFactory = audioFactory; } diff --git a/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyFactory.cs b/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyFactory.cs index 0b4ec63..d8eb39c 100644 --- a/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyFactory.cs +++ b/Game/CourierOld/Assets/Code/Gameplay/Enemies/EnemyFactory.cs @@ -3,9 +3,11 @@ using Code.Configs; using Cysharp.Threading.Tasks; using Reflex.Attributes; using Reflex.Core; +using Reflex.Extensions; using Reflex.Injectors; using UnityEngine; using UnityEngine.AddressableAssets; +using UnityEngine.SceneManagement; namespace Code.Gameplay.Enemies { @@ -27,15 +29,14 @@ namespace Code.Gameplay.Enemies ) .ToUniTask(); - // Работает, пока не трогаю - AttributeInjector.Inject(enemyObj, Container.ProjectContainer); + GameObjectInjector.InjectRecursive(enemyObj, SceneManager.GetActiveScene().GetSceneContainer()); return enemyObj.GetComponent(); } public void ReleaseEnemy(BaseEnemy enemy) { - if (enemy == null) return; + if (!enemy) return; enemy.gameObject.SetActive(false); diff --git a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs index b170648..7526bdd 100644 --- a/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/IStaticDataService.cs @@ -34,6 +34,7 @@ namespace Code.StaticData AudioTestClipsConfig AudioTestClipsConfig { get; } GeneratorConfig GeneratorConfig { get; } CourierSoundListConfig CourierSoundListConfig { get; } + DefaultAudioSettingsConfig DefaultAudioSettingsConfig { get; } void Load(); Task InstantiateAsset(AssetReference assetReference) where T : Behaviour; } diff --git a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs index d75f76d..03ee120 100644 --- a/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs +++ b/Game/CourierOld/Assets/Code/StaticData/StaticDataService.cs @@ -30,6 +30,7 @@ namespace Code.StaticData public EnemiesSoundListConfig EnemiesSoundListConfig { get; private set; } public AudioTestClipsConfig AudioTestClipsConfig { get; private set; } public CourierSoundListConfig CourierSoundListConfig { get; private set; } + public DefaultAudioSettingsConfig DefaultAudioSettingsConfig { get; private set; } public DrunkenGrandpaConfig DrunkenGrandpaConfig {get; private set;} public CockroachConfig CockroachConfig { get; private set; } @@ -67,6 +68,7 @@ namespace Code.StaticData private void LoadAudioConfigs() { AudioMixerConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Audio", "AudioMixerConfig")); + DefaultAudioSettingsConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Audio", "DefaultAudioSettingsConfig")); SoundtrackListConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Audio", "SoundtrackListConfig")); AudioTestClipsConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Audio", "AudioTestClipsConfig")); SFXListConfig = Resources.Load(string.Format(StringPaths.ConfigSingle, "Audio", "SFXListConfig")); diff --git a/Game/CourierOld/Assets/Code/UI/Panels/SettingsPanel.cs b/Game/CourierOld/Assets/Code/UI/Panels/SettingsPanel.cs index 897470e..6155a44 100644 --- a/Game/CourierOld/Assets/Code/UI/Panels/SettingsPanel.cs +++ b/Game/CourierOld/Assets/Code/UI/Panels/SettingsPanel.cs @@ -14,6 +14,7 @@ namespace Code.UI [SerializeField] private Slider master; [SerializeField] private Slider sfx; [SerializeField] private Slider dispatcher; + [SerializeField] private Slider courier; [SerializeField] private Slider creatures; [SerializeField] private Slider menuMusic; [SerializeField] private Slider gameplayMusic; @@ -28,10 +29,13 @@ namespace Code.UI sfx.value = _audioService.GetSetting(AudioType.SFX); sfx.onValueChanged.AddListener(OnSFXUpdate); - dispatcher.value = _audioService.GetSetting(AudioType.DispatcherSounds); + dispatcher.value = _audioService.GetSetting(AudioType.Dispatcher); dispatcher.onValueChanged.AddListener(OnDispatcherUpdate); - creatures.value = _audioService.GetSetting(AudioType.Creatures); + courier.value = _audioService.GetSetting(AudioType.Courier); + courier.onValueChanged.AddListener(OnCourierUpdate); + + creatures.value = _audioService.GetSetting(AudioType.Enemies); creatures.onValueChanged.AddListener(OnEnemiesUpdate); menuMusic.value = _audioService.GetSetting(AudioType.MenuMusic); @@ -51,15 +55,20 @@ namespace Code.UI _audioService.ChangeSetting(AudioType.SFX, value); _audioService.PlayTestClip(AudioType.SFX); } + private void OnCourierUpdate(float value) + { + _audioService.ChangeSetting(AudioType.Courier, value); + _audioService.PlayTestClip(AudioType.Courier); + } private void OnDispatcherUpdate(float value) { - _audioService.ChangeSetting(AudioType.DispatcherSounds, value); - _audioService.PlayTestClip(AudioType.DispatcherSounds); + _audioService.ChangeSetting(AudioType.Dispatcher, value); + _audioService.PlayTestClip(AudioType.Dispatcher); } private void OnEnemiesUpdate(float value) { - _audioService.ChangeSetting(AudioType.Creatures, value); - _audioService.PlayTestClip(AudioType.Creatures); + _audioService.ChangeSetting(AudioType.Enemies, value); + _audioService.PlayTestClip(AudioType.Enemies); } private void OnMenuMusicUpdate(float value) { diff --git a/Game/CourierOld/Assets/Plugins.meta b/Game/CourierOld/Assets/Plugins.meta new file mode 100644 index 0000000..d1ba2f0 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 45b4aa0e7c33e934493bb7d2a15a9add +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections.meta new file mode 100644 index 0000000..3ab3009 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 767316a9a37abc34694c3086d846f668 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor.meta new file mode 100644 index 0000000..11e759b --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 43bd94852ddc6b34dbe9fec318fb54d8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef new file mode 100644 index 0000000..723ecca --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef @@ -0,0 +1,17 @@ +{ + "name": "AYellowpaper.SerializedCollections.Editor", + "references": [ + "GUID:d525ad6bd40672747bde77962f1c401e" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef.meta new file mode 100644 index 0000000..642344b --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 234340c04eed5674a988bc6ebde7d248 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 243052 + packageName: Serialized Dictionary + packageVersion: 1.0.13 + assetPath: Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef + uploadId: 632226 diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets.meta new file mode 100644 index 0000000..d638068 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edb739dfb1824234681f6480c75cd523 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png new file mode 100644 index 0000000..59da325 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cce2e98853b03bb1146e0fea2eee75b9a66c02db0ca985d01a52201fb8fd2b77 +size 1747 diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png.meta new file mode 100644 index 0000000..b05cb72 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png.meta @@ -0,0 +1,177 @@ +fileFormatVersion: 2 +guid: 8deddfed9f39d7740879d2cb0fcf7ce0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: iPhone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 243052 + packageName: Serialized Dictionary + packageVersion: 1.0.13 + assetPath: Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png + uploadId: 632226 diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss new file mode 100644 index 0000000..002c4ac --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss @@ -0,0 +1,110 @@ +.sc-close-button { + background-image: resource('d_winbtn_win_close@2x'); + width: 16px; + height: 16px; + position: absolute; + right: 2px; + top: 2px; + background-color: rgba(0, 0, 0, 0); + border-left-width: 0; + border-right-width: 0; + border-top-width: 0; + border-bottom-width: 0; +} + +.sc-close-button:hover { + background-color: rgba(80, 80, 80, 255); +} + +.sc-close-button:active { + background-color: rgba(0, 0, 0, 0); +} + +.sc-text-toggle { + margin: 0; + padding: 0; + justify-content: center; +} + +.sc-text-toggle:checked { + -unity-font-style: bold; +} + +.sc-text-toggle > Label { + min-width: auto; + width: 100%; + height: 100%; +} + +.sc-text-toggle > .unity-radio-button__input { + display: none; +} + +.sc-title { + background-color: rgba(40, 40, 40, 0.35); + padding-left: 4px; + padding-right: 3px; + padding-top: 3px; + padding-bottom: 3px; + border-left-color: rgb(25, 25, 25); + border-right-color: rgb(25, 25, 25); + border-top-color: rgb(25, 25, 25); + border-bottom-color: rgb(25, 25, 25); + border-bottom-width: 1px; + -unity-font-style: bold; +} + +.sc-generator-toggle { + padding-left: 3px; + padding-right: 3px; + padding-top: 3px; + padding-bottom: 3px; +} + +.sc-generator-toggle:hover { + background-color: rgb(48, 48, 48); +} + +.sc-generator-toggle:checked { + background-color: rgb(77, 77, 77); +} + +.sc-modification-toggle { + flex-basis: 100%; + flex-shrink: 1; + border-left-color: rgb(41, 41, 41); + border-right-color: rgb(41, 41, 41); + border-top-color: rgb(41, 41, 41); + border-bottom-color: rgb(41, 41, 41); + border-left-width: 1px; + border-right-width: 1px; + border-top-width: 1px; + border-bottom-width: 1px; + -unity-font-style: normal; + -unity-text-align: middle-center; + padding-left: 2px; + padding-right: 2px; + padding-top: 2px; + padding-bottom: 2px; +} + +.sc-modification-toggle:hover { + background-color: rgb(70, 70, 70); +} + +.sc-modification-toggle:checked { + background-color: rgb(80, 80, 80); +} + +.sc-radio-button-group { + padding: 0; + margin: 0; +} + +.sc-radio-button-group > Label { + display: none; +} + +#generators-group { + flex-direction: column; +} diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss.meta b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss.meta new file mode 100644 index 0000000..2d297dc --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss.meta @@ -0,0 +1,18 @@ +fileFormatVersion: 2 +guid: df6c2ef835e40c94c976442569324029 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 +AssetOrigin: + serializedVersion: 1 + productId: 243052 + packageName: Serialized Dictionary + packageVersion: 1.0.13 + assetPath: Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss + uploadId: 632226 diff --git a/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uxml b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uxml new file mode 100644 index 0000000..657d0c8 --- /dev/null +++ b/Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uxml @@ -0,0 +1,26 @@ + +