From 2b656412d5f7679cc88aa48697ddef0f1f8e7bd7 Mon Sep 17 00:00:00 2001 From: ThomasCharester Date: Wed, 3 Dec 2025 14:04:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B7=D0=B2=D1=83?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2,=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=B0=D0=BA=D0=BA=D1=83=D1=80=D0=B0=D1=82=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Звуки от 0.01 до 1 ставим, иначе +уши --- .../AssetGroups/Default Local Group.asset | 15 + .../Assets/Code/App/BootstrapInstaller.cs | 3 + .../Assets/Code/Audio/AudioService.cs | 102 +- .../CourierOld/Assets/Code/Audio/MusicType.cs | 5 +- .../Configs/DefaultAudioSettingsConfig.cs | 27 + .../DefaultAudioSettingsConfig.cs.meta | 3 + .../Assets/Code/Constants/StringPaths.cs | 2 +- .../Code/Gameplay/Enemies/EnemyAudio.cs | 4 +- .../Code/Gameplay/Enemies/EnemyFactory.cs | 7 +- .../Code/StaticData/IStaticDataService.cs | 1 + .../Code/StaticData/StaticDataService.cs | 2 + .../Assets/Code/UI/Panels/SettingsPanel.cs | 21 +- Game/CourierOld/Assets/Plugins.meta | 8 + .../Assets/Plugins/SerializedCollections.meta | 8 + .../Plugins/SerializedCollections/Editor.meta | 8 + ...wpaper.SerializedCollections.Editor.asmdef | 17 + ...r.SerializedCollections.Editor.asmdef.meta | 14 + .../SerializedCollections/Editor/Assets.meta | 8 + .../Editor/Assets/BurgerMenu@2x.png | 3 + .../Editor/Assets/BurgerMenu@2x.png.meta | 177 + .../Assets/KeysGeneratorSelectorWindow.uss | 110 + .../KeysGeneratorSelectorWindow.uss.meta | 18 + .../Assets/KeysGeneratorSelectorWindow.uxml | 26 + .../KeysGeneratorSelectorWindow.uxml.meta | 17 + .../SerializedCollections/Editor/Scripts.meta | 8 + .../Editor/Scripts/Data.meta | 8 + .../Editor/Scripts/Data/ElementData.cs | 23 + .../Editor/Scripts/Data/ElementData.cs.meta | 18 + .../Editor/Scripts/Data/ElementSettings.cs | 15 + .../Scripts/Data/ElementSettings.cs.meta | 18 + .../Editor/Scripts/Data/PropertyData.cs | 44 + .../Editor/Scripts/Data/PropertyData.cs.meta | 18 + .../Editor/Scripts/DisplayType.cs | 13 + .../Editor/Scripts/DisplayType.cs.meta | 18 + .../Editor/Scripts/KeyListGenerators.meta | 8 + .../KeyListGenerators/Implementors.meta | 8 + .../Implementors/EnumGenerator.cs | 15 + .../Implementors/EnumGenerator.cs.meta | 18 + .../Implementors/IntRangeGenerator.cs | 24 + .../Implementors/IntRangeGenerator.cs.meta | 18 + .../Implementors/IntSteppingGenerator.cs | 26 + .../Implementors/IntSteppingGenerator.cs.meta | 18 + .../KeyListGenerators/KeyListGenerator.cs | 11 + .../KeyListGenerator.cs.meta | 18 + .../KeyListGeneratorAttribute.cs | 19 + .../KeyListGeneratorAttribute.cs.meta | 18 + .../KeyListGeneratorCache.cs | 36 + .../KeyListGeneratorCache.cs.meta | 18 + .../KeyListGenerators/KeyListGeneratorData.cs | 20 + .../KeyListGeneratorData.cs.meta | 18 + .../KeyListGeneratorEditor.cs | 26 + .../KeyListGeneratorEditor.cs.meta | 18 + .../KeyListGeneratorSelectorWindow.cs | 182 + .../KeyListGeneratorSelectorWindow.cs.meta | 18 + .../KeyListGenerators/ModificationType.cs | 10 + .../ModificationType.cs.meta | 18 + .../Editor/Scripts/PagingElement.cs | 68 + .../Editor/Scripts/PagingElement.cs.meta | 18 + .../Editor/Scripts/Search.meta | 8 + .../Editor/Scripts/Search/Matchers.meta | 8 + .../Scripts/Search/Matchers/EnumMatcher.cs | 21 + .../Search/Matchers/EnumMatcher.cs.meta | 18 + .../Editor/Scripts/Search/Matchers/Matcher.cs | 20 + .../Scripts/Search/Matchers/Matcher.cs.meta | 18 + .../Scripts/Search/Matchers/Matchers.cs | 30 + .../Scripts/Search/Matchers/Matchers.cs.meta | 18 + .../Scripts/Search/Matchers/NumericMatcher.cs | 109 + .../Search/Matchers/NumericMatcher.cs.meta | 18 + .../Scripts/Search/Matchers/StringMatcher.cs | 15 + .../Search/Matchers/StringMatcher.cs.meta | 18 + .../Scripts/Search/PropertySearchResult.cs | 22 + .../Search/PropertySearchResult.cs.meta | 18 + .../Editor/Scripts/Search/SearchQuery.cs | 66 + .../Editor/Scripts/Search/SearchQuery.cs.meta | 18 + .../Scripts/Search/SearchResultEntry.cs | 31 + .../Scripts/Search/SearchResultEntry.cs.meta | 18 + .../Scripts/SerializedDictionaryDrawer.cs | 65 + .../SerializedDictionaryDrawer.cs.meta | 18 + .../SerializedDictionaryInstanceDrawer.cs | 728 + ...SerializedDictionaryInstanceDrawer.cs.meta | 18 + .../Editor/Scripts/Settings.meta | 8 + .../Scripts/Settings/EditorUserSettings.cs | 60 + .../Settings/EditorUserSettings.cs.meta | 18 + .../Settings/EditorUserSettingsProvider.cs | 82 + .../EditorUserSettingsProvider.cs.meta | 18 + .../Editor/Scripts/States.meta | 8 + .../Editor/Scripts/States/DefaultListState.cs | 55 + .../Scripts/States/DefaultListState.cs.meta | 18 + .../Editor/Scripts/States/ListState.cs | 34 + .../Editor/Scripts/States/ListState.cs.meta | 18 + .../Editor/Scripts/States/SearchListState.cs | 109 + .../Scripts/States/SearchListState.cs.meta | 18 + .../Editor/Scripts/Utility.meta | 8 + .../Editor/Scripts/Utility/GUIEnabledScope.cs | 23 + .../Scripts/Utility/GUIEnabledScope.cs.meta | 18 + .../Editor/Scripts/Utility/LabelWidth.cs | 24 + .../Editor/Scripts/Utility/LabelWidth.cs.meta | 18 + .../Editor/Scripts/Utility/RectUtility.cs | 41 + .../Scripts/Utility/RectUtility.cs.meta | 18 + .../Editor/Scripts/Utility/SCEditorUtility.cs | 245 + .../Scripts/Utility/SCEditorUtility.cs.meta | 18 + .../Editor/Scripts/Utility/SCEnumUtility.cs | 98 + .../Scripts/Utility/SCEnumUtility.cs.meta | 18 + .../Plugins/SerializedCollections/Readme.pdf | 3 + .../SerializedCollections/Readme.pdf.meta | 14 + .../SerializedCollections/Runtime.meta | 8 + .../AYellowpaper.SerializedCollections.asmdef | 13 + ...lowpaper.SerializedCollections.asmdef.meta | 14 + .../Runtime/LookupTables.meta | 8 + .../LookupTables/DictionaryLookupTable.cs | 88 + .../DictionaryLookupTable.cs.meta | 18 + .../Runtime/LookupTables/IKeyable.cs | 20 + .../Runtime/LookupTables/IKeyable.cs.meta | 18 + .../Runtime/Scripts.meta | 8 + .../Runtime/Scripts/AssemblyInfo.cs | 3 + .../Runtime/Scripts/AssemblyInfo.cs.meta | 18 + .../Scripts/SerializedCollectionsUtility.cs | 27 + .../SerializedCollectionsUtility.cs.meta | 18 + .../Runtime/Scripts/SerializedDictionary.cs | 176 + .../Scripts/SerializedDictionary.cs.meta | 18 + .../Scripts/SerializedDictionaryAttribute.cs | 21 + .../SerializedDictionaryAttribute.cs.meta | 18 + .../Runtime/Scripts/SerializedKeyValuePair.cs | 19 + .../Scripts/SerializedKeyValuePair.cs.meta | 18 + .../Plugins/SerializedCollections/Sample.meta | 8 + .../Sample/SerializedDictionarySample.cs | 20 + .../Sample/SerializedDictionarySample.cs.meta | 18 + .../Sample/SerializedDictionarySampleThree.cs | 12 + .../SerializedDictionarySampleThree.cs.meta | 18 + .../Sample/SerializedDictionarySampleTwo.cs | 19 + .../SerializedDictionarySampleTwo.cs.meta | 18 + .../Assets/Resources/Audio/MainMixer.mixer | 16 +- .../Audio/CourierSoundListConfig.asset | 5 + .../Audio/DefaultAudioSettingsConfig.asset | 86 + .../DefaultAudioSettingsConfig.asset.meta | 8 + .../Models/Enemies/Grandpa/ded_running.anim | 164586 ++++++++++++++- .../Assets/Resources/Scenes/MainMenu.unity | 544 +- .../UI/Fonts/ClearSansInfanity-Bold SDF.asset | 1970 +- .../UI/Fonts/VCR_OSD_MONO_1.001 SDF.asset | 116 +- .../Audio/Enemies/bc_bite2.wav | 3 + .../Audio/Enemies/bc_bite2.wav.meta | 23 + .../Resources_moved/Audio/SFX/pl_pain2.wav | 3 + .../Audio/SFX/pl_pain2.wav.meta | 23 + .../Resources_moved/Audio/SFX/pl_pain5.wav | 3 + .../Audio/SFX/pl_pain5.wav.meta | 23 + .../Audio/UI/buttonclickrelease.wav | 3 + .../Audio/UI/buttonclickrelease.wav.meta | 23 + .../Prefabs/Enemies/Cockroach.prefab | 14 - .../Prefabs/Enemies/DrunkenGrandpa.prefab | 14 - Game/CourierOld/Packages/packages-lock.json | 14 +- .../ProjectSettings/ProjectVersion.txt | 4 +- 151 files changed, 171596 insertions(+), 264 deletions(-) create mode 100644 Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs create mode 100644 Game/CourierOld/Assets/Code/Configs/DefaultAudioSettingsConfig.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/AYellowpaper.SerializedCollections.Editor.asmdef.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/BurgerMenu@2x.png.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uss.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uxml create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Assets/KeysGeneratorSelectorWindow.uxml.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/ElementData.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/ElementData.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/ElementSettings.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/ElementSettings.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/PropertyData.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Data/PropertyData.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/DisplayType.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/DisplayType.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/EnumGenerator.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/EnumGenerator.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/IntRangeGenerator.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/IntRangeGenerator.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/IntSteppingGenerator.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/Implementors/IntSteppingGenerator.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGenerator.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGenerator.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorAttribute.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorAttribute.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorCache.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorCache.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorData.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorData.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorEditor.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorEditor.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorSelectorWindow.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/KeyListGeneratorSelectorWindow.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/ModificationType.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/KeyListGenerators/ModificationType.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/PagingElement.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/PagingElement.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/EnumMatcher.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/EnumMatcher.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/Matcher.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/Matcher.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/Matchers.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/Matchers.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/NumericMatcher.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/NumericMatcher.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/StringMatcher.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/Matchers/StringMatcher.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/PropertySearchResult.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/PropertySearchResult.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/SearchQuery.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/SearchQuery.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/SearchResultEntry.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Search/SearchResultEntry.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/SerializedDictionaryDrawer.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/SerializedDictionaryDrawer.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/SerializedDictionaryInstanceDrawer.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/SerializedDictionaryInstanceDrawer.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Settings.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Settings/EditorUserSettings.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Settings/EditorUserSettings.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Settings/EditorUserSettingsProvider.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Settings/EditorUserSettingsProvider.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/DefaultListState.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/DefaultListState.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/ListState.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/ListState.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/SearchListState.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/States/SearchListState.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/GUIEnabledScope.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/GUIEnabledScope.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/LabelWidth.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/LabelWidth.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/RectUtility.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/RectUtility.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/SCEditorUtility.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/SCEditorUtility.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/SCEnumUtility.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Editor/Scripts/Utility/SCEnumUtility.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Readme.pdf create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Readme.pdf.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/AYellowpaper.SerializedCollections.asmdef create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/AYellowpaper.SerializedCollections.asmdef.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/LookupTables.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/LookupTables/DictionaryLookupTable.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/LookupTables/DictionaryLookupTable.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/LookupTables/IKeyable.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/LookupTables/IKeyable.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/AssemblyInfo.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/AssemblyInfo.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedCollectionsUtility.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedCollectionsUtility.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedDictionary.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedDictionary.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedDictionaryAttribute.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedDictionaryAttribute.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedKeyValuePair.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Runtime/Scripts/SerializedKeyValuePair.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySample.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySample.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySampleThree.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySampleThree.cs.meta create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySampleTwo.cs create mode 100644 Game/CourierOld/Assets/Plugins/SerializedCollections/Sample/SerializedDictionarySampleTwo.cs.meta create mode 100644 Game/CourierOld/Assets/Resources/Configs/Audio/DefaultAudioSettingsConfig.asset create mode 100644 Game/CourierOld/Assets/Resources/Configs/Audio/DefaultAudioSettingsConfig.asset.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/Enemies/bc_bite2.wav create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/Enemies/bc_bite2.wav.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/SFX/pl_pain2.wav create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/SFX/pl_pain2.wav.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/SFX/pl_pain5.wav create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/SFX/pl_pain5.wav.meta create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/UI/buttonclickrelease.wav create mode 100644 Game/CourierOld/Assets/Resources_moved/Audio/UI/buttonclickrelease.wav.meta 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 @@ + +