public Unit StartLevel(UnitsManager unitsManager, ProjectilesManager projectilesManager) { var positions = RandomHelper.ShuffleList(_spawnPositions); var nextPosIdx = 0; Unit player = null; foreach (var ally in _allias) { var unit = CreateUnit(ally, positions[nextPosIdx++], unitsManager, projectilesManager); unit.Fraction = 0; unitsManager.Add(unit); if (ally.OnlyOne) { player = unit; } } foreach (var enemy in _enemies) { var unit = CreateUnit(enemy, positions[nextPosIdx++], unitsManager, projectilesManager); unit.Fraction = 1; unitsManager.Add(unit); } unitsManager.UnitKilled += OnUnitKilled; return(player); }