PR corrections
This commit is contained in:
parent
e4fe735fe5
commit
c57417a583
@ -36,10 +36,12 @@ public class WaveConfig : ScriptableObject
|
|||||||
return _nestedGroupSpawn;
|
return _nestedGroupSpawn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public float GetInterval()
|
public float Interval
|
||||||
{
|
{
|
||||||
float interval = _gameDuration * 60.0f / (_enemySum > 0 ? _enemySum.ToFloat() : SumCount());
|
get {
|
||||||
return interval;
|
float interval = _gameDuration * 60.0f / (_enemySum > 0 ? _enemySum.ToFloat() : SumCount());
|
||||||
|
return interval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Returns the updated game interval after adjusting to enemies spawned at the start
|
* Returns the updated game interval after adjusting to enemies spawned at the start
|
||||||
|
|||||||
@ -14,23 +14,21 @@ public class WaveObserver : Singleton<WaveObserver>
|
|||||||
private List<int> _intervalTiming = new List<int>();
|
private List<int> _intervalTiming = new List<int>();
|
||||||
private bool _once = true;
|
private bool _once = true;
|
||||||
private int _currentGroupIndex = 0;
|
private int _currentGroupIndex = 0;
|
||||||
public WaveConfig LevelConfig
|
|
||||||
|
public void SetLevelConfig(WaveConfig config)
|
||||||
{
|
{
|
||||||
set
|
_levelConfig = config;
|
||||||
|
_copyConstantSpawn = new List<int>();
|
||||||
|
_copyGroupSpawn = new List<GroupList>();
|
||||||
|
_groupSpawnTimers = new List<float>();
|
||||||
|
foreach (EnemyType enemy in _levelConfig.ConstantSpawn)
|
||||||
{
|
{
|
||||||
_levelConfig = value;
|
_copyConstantSpawn.Add(enemy.Count);
|
||||||
_copyConstantSpawn = new List<int>();
|
}
|
||||||
_copyGroupSpawn = new List<GroupList>();
|
for (int index = 0; index < _levelConfig.NestedGroupSpawn.Count; index++)
|
||||||
_groupSpawnTimers = new List<float>();
|
{
|
||||||
foreach (EnemyType enemy in _levelConfig.ConstantSpawn)
|
_copyGroupSpawn.Add(_levelConfig.NestedGroupSpawn[index]);
|
||||||
{
|
_groupSpawnTimers.Add(_levelConfig.NestedGroupSpawn[index].triggerTime);
|
||||||
_copyConstantSpawn.Add(enemy.Count);
|
|
||||||
}
|
|
||||||
for (int index = 0; index < _levelConfig.NestedGroupSpawn.Count; index++)
|
|
||||||
{
|
|
||||||
_copyGroupSpawn.Add(_levelConfig.NestedGroupSpawn[index]);
|
|
||||||
_groupSpawnTimers.Add(_levelConfig.NestedGroupSpawn[index].triggerTime);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +47,7 @@ public class WaveObserver : Singleton<WaveObserver>
|
|||||||
if (_once)
|
if (_once)
|
||||||
{
|
{
|
||||||
_once = false;
|
_once = false;
|
||||||
spawnerSubject.GroupSpawnTimers = _groupSpawnTimers;
|
spawnerSubject.SetGroupSpawnTimers(_groupSpawnTimers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +58,7 @@ public class WaveObserver : Singleton<WaveObserver>
|
|||||||
public void NotifySpawned(SpawnerTile spawnerSubject)
|
public void NotifySpawned(SpawnerTile spawnerSubject)
|
||||||
{
|
{
|
||||||
GameObject paramPrefab = spawnerSubject.Prefab;
|
GameObject paramPrefab = spawnerSubject.Prefab;
|
||||||
spawnerSubject.ChangeSpawnSpeed(_levelConfig.GetInterval() * _spawnerTiming);
|
spawnerSubject.ChangeSpawnSpeed(_levelConfig.Interval * _spawnerTiming);
|
||||||
if (paramPrefab.Equals(_levelConfig.ConstantSpawn[0].GetEnemyObject()))
|
if (paramPrefab.Equals(_levelConfig.ConstantSpawn[0].GetEnemyObject()))
|
||||||
{
|
{
|
||||||
int currentCount = 0;
|
int currentCount = 0;
|
||||||
@ -152,7 +150,7 @@ public class WaveObserver : Singleton<WaveObserver>
|
|||||||
{
|
{
|
||||||
index = rand.Next(_subjects.Count);
|
index = rand.Next(_subjects.Count);
|
||||||
} while (_intervalTiming.Count <= index);
|
} while (_intervalTiming.Count <= index);
|
||||||
spawnerTile.ChangeSpawnSpeed(_levelConfig.GetInterval() * _intervalTiming[index]);
|
spawnerTile.ChangeSpawnSpeed(_levelConfig.Interval * _intervalTiming[index]);
|
||||||
_intervalTiming.Remove(index);
|
_intervalTiming.Remove(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -166,7 +166,7 @@ public class LevelManager : Singleton<LevelManager>
|
|||||||
|
|
||||||
_currentLevel = level;
|
_currentLevel = level;
|
||||||
_waveObserver = WaveObserver.Instance;
|
_waveObserver = WaveObserver.Instance;
|
||||||
_waveObserver.LevelConfig = _currentLevel.WaveConfig;
|
_waveObserver.SetLevelConfig(_currentLevel.WaveConfig);
|
||||||
Grid grid = Object.FindObjectOfType<Grid>();
|
Grid grid = Object.FindObjectOfType<Grid>();
|
||||||
//create new grid if there is none
|
//create new grid if there is none
|
||||||
if (!grid)
|
if (!grid)
|
||||||
|
|||||||
@ -17,11 +17,12 @@ public class SpawnerTile : LevelTile
|
|||||||
private bool _stopped = false;
|
private bool _stopped = false;
|
||||||
private bool _cooldownEnded = false;
|
private bool _cooldownEnded = false;
|
||||||
private List<float> _groupSpawnTimers = new List<float>();
|
private List<float> _groupSpawnTimers = new List<float>();
|
||||||
public List<float> GroupSpawnTimers
|
|
||||||
|
public void SetGroupSpawnTimers(List<float> groupSpawnTimers)
|
||||||
{
|
{
|
||||||
set
|
for (int i = 0; i < groupSpawnTimers.Count-1; i++)
|
||||||
{
|
{
|
||||||
_groupSpawnTimers = value;
|
_groupSpawnTimers.Add(groupSpawnTimers[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user