Compare commits

...

4 Commits

9 changed files with 1199 additions and 18 deletions
File diff suppressed because it is too large Load Diff
+17 -9
View File
@@ -4,6 +4,7 @@ public class AudioManager : MonoBehaviour
{ {
[SerializeField] private Wallet _wallet; [SerializeField] private Wallet _wallet;
[SerializeField] private GameManager _gameManager; [SerializeField] private GameManager _gameManager;
[SerializeField] private TurretsShop _shop;
[SerializeField] private AudioSource _levelBackgroundMusic; [SerializeField] private AudioSource _levelBackgroundMusic;
[SerializeField] private AudioSource _buildBackgroundMusic; [SerializeField] private AudioSource _buildBackgroundMusic;
[SerializeField] private AudioSource _winMusic; [SerializeField] private AudioSource _winMusic;
@@ -22,14 +23,16 @@ public class AudioManager : MonoBehaviour
_money = _wallet.Money; _money = _wallet.Money;
_state = _gameManager.CurrentState; _state = _gameManager.CurrentState;
_wallet.OnMoneyChanged += OnMoneyChanged; //_wallet.OnMoneyChanged += OnMoneyChanged;
_gameManager.OnStateChanged += OnStateChanged; _gameManager.OnStateChanged += OnStateChanged;
_shop.OnTurretBought += OnTurretBought;
} }
private void OnDisable() private void OnDisable()
{ {
_wallet.OnMoneyChanged -= OnMoneyChanged; //_wallet.OnMoneyChanged -= OnMoneyChanged;
_gameManager.OnStateChanged -= OnStateChanged; _gameManager.OnStateChanged -= OnStateChanged;
_shop.OnTurretBought -= OnTurretBought;
} }
public void PlayBlockDestroySound(BlockScript block) public void PlayBlockDestroySound(BlockScript block)
@@ -43,17 +46,22 @@ public class AudioManager : MonoBehaviour
} }
} }
private void OnMoneyChanged(int money) private void OnTurretBought(TurretShopItem _)
{ {
var oldMoney = _money;
_money = money;
if (_moneyChangeSound.Length == 0 || oldMoney <= money)
return;
Play(_moneyChangeSound, ref _moneyChangeSoundIndex); Play(_moneyChangeSound, ref _moneyChangeSoundIndex);
} }
//private void OnMoneyChanged(int money)
//{
// var oldMoney = _money;
// _money = money;
// if (_moneyChangeSound.Length == 0 || oldMoney <= money)
// return;
// Play(_moneyChangeSound, ref _moneyChangeSoundIndex);
//}
private void OnStateChanged(GameManager.GameState newState) private void OnStateChanged(GameManager.GameState newState)
{ {
if (newState == _state || if (newState == _state ||
+8
View File
@@ -13,6 +13,7 @@ public class TurretsShop : MonoBehaviour
[SerializeField] private TurretShopItem[] _turretShopItems; [SerializeField] private TurretShopItem[] _turretShopItems;
[SerializeField] private UnityEvent<BlockScript> _onBlockSelected; [SerializeField] private UnityEvent<BlockScript> _onBlockSelected;
[SerializeField] private UnityEvent _onBlockDeselected; [SerializeField] private UnityEvent _onBlockDeselected;
[SerializeField] private UnityEvent<TurretShopItem> _onTurretBought;
public IReadOnlyCollection<TurretShopItem> TurretShopItems => _turretShopItems; public IReadOnlyCollection<TurretShopItem> TurretShopItems => _turretShopItems;
@@ -28,6 +29,12 @@ public class TurretsShop : MonoBehaviour
remove => _onBlockDeselected.RemoveListener(value); remove => _onBlockDeselected.RemoveListener(value);
} }
public event UnityAction<TurretShopItem> OnTurretBought
{
add => _onTurretBought.AddListener(value);
remove => _onTurretBought.RemoveListener(value);
}
private BlockScript _selectedBlock; private BlockScript _selectedBlock;
private void OnEnable() private void OnEnable()
@@ -77,6 +84,7 @@ public class TurretsShop : MonoBehaviour
_wallet.TakeMoney(item.Price); _wallet.TakeMoney(item.Price);
Instantiate(item.TurretPrefab, _selectedBlock.transform.position + Vector3.up, Quaternion.identity, _turretsHolder); Instantiate(item.TurretPrefab, _selectedBlock.transform.position + Vector3.up, Quaternion.identity, _turretsHolder);
_onTurretBought?.Invoke(item);
DeselectBlock(); DeselectBlock();
} }
+2
View File
@@ -5,6 +5,7 @@ public class GameMenuButtons : MonoBehaviour
{ {
[SerializeField] private GameManager _gameManager; [SerializeField] private GameManager _gameManager;
[SerializeField] private SandPathBuildService _sandPathBuildService; [SerializeField] private SandPathBuildService _sandPathBuildService;
[SerializeField] private Wallet _wallet;
[SerializeField] private Button _mainMenuButton; [SerializeField] private Button _mainMenuButton;
[SerializeField] private Button _nextLevelButton; [SerializeField] private Button _nextLevelButton;
[SerializeField] private Button _resetPathButton; [SerializeField] private Button _resetPathButton;
@@ -48,6 +49,7 @@ public class GameMenuButtons : MonoBehaviour
private void OnResetButtonClick() private void OnResetButtonClick()
{ {
_sandPathBuildService.ResetPath(); _sandPathBuildService.ResetPath();
_wallet.TakeMoney(_wallet.Money);
_gameManager.CurrentState = GameManager.GameState.BuildingPath; _gameManager.CurrentState = GameManager.GameState.BuildingPath;
} }
+21
View File
@@ -0,0 +1,21 @@
using UnityEngine;
using UnityEngine.UI;
public class TimeControlMenu : MonoBehaviour
{
[SerializeField] private Button _pauseBtn;
[SerializeField] private Button _resumeBtn;
[SerializeField] private Button _2xBtn;
private void Start()
{
_pauseBtn.onClick.AddListener(SwitchPause);
_resumeBtn.onClick.AddListener(() => Time.timeScale = 1f);
_2xBtn.onClick.AddListener(() => Time.timeScale = 2f);
}
public static void SwitchPause()
{
Time.timeScale = Time.timeScale > 0f ? 0f : 1f;
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 078c659d31556e94687a93d8cf5919d2
+1
View File
@@ -136,6 +136,7 @@ MonoBehaviour:
m_PrefilterReflectionProbeBlending: 0 m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0 m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 1 m_PrefilterReflectionProbeAtlas: 1
m_PrefilterPointSamplingUpsampling: 1
m_ShaderVariantLogLevel: 0 m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0 m_ShadowCascades: 0
m_Textures: m_Textures:
+1
View File
@@ -136,6 +136,7 @@ MonoBehaviour:
m_PrefilterReflectionProbeBlending: 0 m_PrefilterReflectionProbeBlending: 0
m_PrefilterReflectionProbeBoxProjection: 0 m_PrefilterReflectionProbeBoxProjection: 0
m_PrefilterReflectionProbeAtlas: 0 m_PrefilterReflectionProbeAtlas: 0
m_PrefilterPointSamplingUpsampling: 1
m_ShaderVariantLogLevel: 0 m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0 m_ShadowCascades: 0
m_Textures: m_Textures:
File diff suppressed because one or more lines are too long