void EditSet(object obj) { EnemyWaveSet set = (EnemyWaveSet)obj; EnemyWaveSetEditor w = EditorWindow.GetWindow(typeof(EnemyWaveSetEditor), true) as EnemyWaveSetEditor; w.SetEditor(set); }
public void SetEditor(EnemyWaveSet waveSet) { this.titleContent = new GUIContent("Enemy Wave Set Editor"); target = waveSet; refTarget = new EnemyWaveSet(waveSet); rolist = new ReorderableList(refTarget.wave.enemys, typeof(SpawnSequence), true, true, true, true); #if (DEBUG) Debug.Log("Open"); #endif }
private GameObject CreateEnemy(EnemyWaveSet set) { if (_difficultyManager.CanCreateEnemy(set.Mode)) { _difficultyManager.NotifyEnemyTypeSelected(set.EnemyType, set.Mode); var position = ScreenHelper.GetRandomScreenPoint(y: _defaultSpawnPoint.transform.position.y); return(_enemyFactory.Create(set.EnemyType, position)); } return(null); }
public void AddEnemyCreate(Enemy enemy, EnemyWaveSet set) { EnemiesCreated++; if (!_enemies.ContainsKey(set)) { _enemies.Add(set, new List <Enemy>()); } _enemies[set].Add(enemy); }
private void InvertPath(EnemyWaveSet set) { // TODO: Improve to dont create many multiple inverted paths unecessarily var invertedPath = GameObject.Instantiate(set.Path); var creator = invertedPath.GetComponent <PathCreator>(); var totalPoints = creator.bezierPath.NumPoints; var points = totalPoints / 2; for (int i = 0; i < points; i++) { var i2 = totalPoints - i - 1; var pt1 = creator.bezierPath[i]; var pt2 = creator.bezierPath[i2]; creator.bezierPath.SetPoint(i, pt2, true); creator.bezierPath.SetPoint(i2, pt1, true); } creator.bezierPath.NotifyPathModified(); set.Path = invertedPath; }
// helper private void SetMovementMode(Enemy enemy, EnemyWaveSet set) { enemy.Spawn(_difficultyManager.Difficulty, set.ToEnemyMode()); }
public bool IsSetFullyCreated(EnemyWaveSet set) => _enemies.ContainsKey(set) && _enemies[set].Count >= set.EnemyCount;