From 657fe72379f1504803c287c4d0e20b15a746c811 Mon Sep 17 00:00:00 2001 From: kittyegg Date: Sat, 6 Jun 2026 03:05:43 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D1=81=D0=BE=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D1=8F=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=B8=D0=B3?= =?UTF-8?q?=D1=80=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/AudioManager.cs | 12 ++++++++++++ Assets/Scripts/GameManager.cs | 4 +++- Assets/Scripts/WinLoseController.cs | 8 ++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/AudioManager.cs b/Assets/Scripts/AudioManager.cs index 94b656a..a59955e 100644 --- a/Assets/Scripts/AudioManager.cs +++ b/Assets/Scripts/AudioManager.cs @@ -6,6 +6,8 @@ public class AudioManager : MonoBehaviour [SerializeField] private GameManager _gameManager; [SerializeField] private AudioSource _levelBackgroundMusic; [SerializeField] private AudioSource _buildBackgroundMusic; + [SerializeField] private AudioSource _winMusic; + [SerializeField] private AudioSource _loseMusic; [SerializeField] private AudioSource[] _grassBlockDestroySound; [SerializeField] private AudioSource[] _moneyChangeSound; @@ -70,6 +72,16 @@ public class AudioManager : MonoBehaviour Stop(_levelBackgroundMusic); Play(_buildBackgroundMusic); break; + case GameManager.GameState.Win: + Stop(_levelBackgroundMusic); + Stop(_buildBackgroundMusic); + Play(_winMusic); + break; + case GameManager.GameState.Lose: + Stop(_levelBackgroundMusic); + Stop(_buildBackgroundMusic); + Play(_loseMusic); + break; } } diff --git a/Assets/Scripts/GameManager.cs b/Assets/Scripts/GameManager.cs index 3606970..7f7d06d 100644 --- a/Assets/Scripts/GameManager.cs +++ b/Assets/Scripts/GameManager.cs @@ -7,7 +7,9 @@ public class GameManager : MonoBehaviour { BuildingPath, BuildingTurrets, - Level + Level, + Win, + Lose } [SerializeField] private Level[] _levels; diff --git a/Assets/Scripts/WinLoseController.cs b/Assets/Scripts/WinLoseController.cs index 89ea29b..d3885ab 100644 --- a/Assets/Scripts/WinLoseController.cs +++ b/Assets/Scripts/WinLoseController.cs @@ -40,8 +40,11 @@ public class WinLoseController : MonoBehaviour private void OnLastEnemyDestroyed() { - if (_isLastLevel) - _onWin?.Invoke(); + if (!_isLastLevel) + return; + + _gameManager.CurrentState = GameManager.GameState.Win; + _onWin?.Invoke(); } private void OnLevelChanged(GameManager.OnLevelChangedEventArgs args) @@ -52,6 +55,7 @@ public class WinLoseController : MonoBehaviour private void OnDeath() { + _gameManager.CurrentState = GameManager.GameState.Lose; _onGameOver?.Invoke(new OnGameOverEventArgs(_currentLevel)); }