From c8d2e4332629c0f92ee9ccd1680cde81b529f4bc Mon Sep 17 00:00:00 2001 From: craftwill Date: Mon, 13 Nov 2023 20:03:28 -0500 Subject: [PATCH] Add timed victory and config changes --- Assets/Design/Levels/Level1.asset | 4 ++-- Assets/Design/Levels/Level2.asset | 4 ++-- Assets/Design/Levels/Level3.asset | 4 ++-- Assets/Design/Levels/Level4.asset | 4 ++-- Assets/Design/Levels/Level5.asset | 6 ++++-- Assets/Design/Levels/Level6.asset | 4 ++-- Assets/Scripts/LevelConfig/WaveConfig.cs | 1 + Assets/Scripts/LevelConfig/WaveObserver.cs | 13 ++++++++++++- Assets/Scripts/LevelManager/LevelManager.cs | 2 +- 9 files changed, 28 insertions(+), 14 deletions(-) diff --git a/Assets/Design/Levels/Level1.asset b/Assets/Design/Levels/Level1.asset index 6705b55..23e574f 100644 --- a/Assets/Design/Levels/Level1.asset +++ b/Assets/Design/Levels/Level1.asset @@ -249,7 +249,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: d8140ae36f1b7fd4fb1a57ab3dc69de4, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Design/Levels/Level2.asset b/Assets/Design/Levels/Level2.asset index 9f4a4ba..7c89056 100644 --- a/Assets/Design/Levels/Level2.asset +++ b/Assets/Design/Levels/Level2.asset @@ -193,7 +193,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: e9e134bb6a24e4647a27955d3d276bd2, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Design/Levels/Level3.asset b/Assets/Design/Levels/Level3.asset index 13c89a7..fd01a7b 100644 --- a/Assets/Design/Levels/Level3.asset +++ b/Assets/Design/Levels/Level3.asset @@ -195,7 +195,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: c22ff5f49b21f9844a4d9693dc06777c, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Design/Levels/Level4.asset b/Assets/Design/Levels/Level4.asset index 3033302..50684b7 100644 --- a/Assets/Design/Levels/Level4.asset +++ b/Assets/Design/Levels/Level4.asset @@ -225,7 +225,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: 5ccff833a19a71f4499a3b3d786f4d11, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Design/Levels/Level5.asset b/Assets/Design/Levels/Level5.asset index 70cb095..d4222a4 100644 --- a/Assets/Design/Levels/Level5.asset +++ b/Assets/Design/Levels/Level5.asset @@ -148,6 +148,8 @@ MonoBehaviour: _position: {x: -10, y: -1, z: 0} - _tile: {fileID: 11400000, guid: e0b1d2d816ae5624c99b09a2bebb2a39, type: 2} _position: {x: -10, y: 0, z: 0} + - _tile: {fileID: 11400000, guid: 3723ba09738ef6245947ae3ba7978b21, type: 2} + _position: {x: -10, y: 1, z: 0} - _tile: {fileID: 11400000, guid: e0b1d2d816ae5624c99b09a2bebb2a39, type: 2} _position: {x: -9, y: -1, z: 0} - _tile: {fileID: 11400000, guid: e0b1d2d816ae5624c99b09a2bebb2a39, type: 2} @@ -195,7 +197,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: 2462ecbf554cf1d4883dea95b2504a9f, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Design/Levels/Level6.asset b/Assets/Design/Levels/Level6.asset index 1e61549..f455d8e 100644 --- a/Assets/Design/Levels/Level6.asset +++ b/Assets/Design/Levels/Level6.asset @@ -207,7 +207,7 @@ MonoBehaviour: _position: {x: 0, y: 0} _scale: {x: 1, y: 1} _waveConfig: {fileID: 11400000, guid: eee8fc46b43d8144ca603169dc9f26d6, type: 2} - _startPopulation: 5 - _startFood: 30 + _startPopulation: 10 + _startFood: 40 _startWood: 0 _startRock: 0 diff --git a/Assets/Scripts/LevelConfig/WaveConfig.cs b/Assets/Scripts/LevelConfig/WaveConfig.cs index afee1dd..3671260 100644 --- a/Assets/Scripts/LevelConfig/WaveConfig.cs +++ b/Assets/Scripts/LevelConfig/WaveConfig.cs @@ -43,6 +43,7 @@ public class WaveConfig : ScriptableObject return interval; } } + public float GameDuration { get { return _gameDuration; } } /** * Returns the updated game interval after adjusting to enemies spawned at the start */ diff --git a/Assets/Scripts/LevelConfig/WaveObserver.cs b/Assets/Scripts/LevelConfig/WaveObserver.cs index 5c1de7e..2ab3d1c 100644 --- a/Assets/Scripts/LevelConfig/WaveObserver.cs +++ b/Assets/Scripts/LevelConfig/WaveObserver.cs @@ -1,3 +1,5 @@ +using GatherAndDefend.Events; +using System.Threading.Tasks; using System.Collections.Generic; using UnityEngine; @@ -15,7 +17,7 @@ public class WaveObserver : Singleton private bool _once = true; private int _currentGroupIndex = 0; - public void SetLevelConfig(WaveConfig config) + public void Init(WaveConfig config) { _levelConfig = Object.Instantiate(config); _copyConstantSpawn = new List(); @@ -39,6 +41,15 @@ public class WaveObserver : Singleton } _groupSpawnTimers.Add(_levelConfig.NestedGroupSpawn[index].triggerTime); } + + // Start game timer, at the end, player wins. + GameTimer(); + } + + private async void GameTimer() + { + await Task.Delay((int) _levelConfig.GameDuration * 60 * 1000); + EventAggregator.Instance.GetEvent().Invoke(); } /** diff --git a/Assets/Scripts/LevelManager/LevelManager.cs b/Assets/Scripts/LevelManager/LevelManager.cs index 940bd8f..c1b1ea7 100644 --- a/Assets/Scripts/LevelManager/LevelManager.cs +++ b/Assets/Scripts/LevelManager/LevelManager.cs @@ -166,7 +166,7 @@ public class LevelManager : Singleton _currentLevel = level; _waveObserver = WaveObserver.Instance; - _waveObserver.SetLevelConfig(_currentLevel.WaveConfig); + _waveObserver.Init(_currentLevel.WaveConfig); Grid grid = Object.FindObjectOfType(); //create new grid if there is none if (!grid)