Пример #1
0
Файл: Game.cs Проект: L4fter/Orb
    private void CreateCelestialSystemFromScene()
    {
        celestialSystem = resolver.Resolve <CelestialSystem>();
        var planets     = planetFactory.CollectAllAvailablePlanets();
        var centralStar = planets.OrderByDescending(planet => planet.SimulatedEntity.Mass).First();

        celestialSystem.AddCentralStar(centralStar);
        celestialSystem.Add(planets);

        var allAvailableWeapons = weaponFactory.GetAllAvailableTypes();

        var onlyPlanets = planets.Except(new[] { centralStar }).ToList();
        var randomIndex = Random.Range(0, onlyPlanets.Count);

        var randomPlanet = onlyPlanets.Skip(randomIndex).First();
        var randomWeapon = allAvailableWeapons[Random.Range(0, allAvailableWeapons.Count)];

        weaponFactory.AddWeapon(randomWeapon, randomPlanet);
        inputPlanetController.Control(randomPlanet, randomPlanet.Weapon);
        playerStatsProvider.SetPlayerPlanet(randomPlanet);

        onlyPlanets.Remove(randomPlanet);

        randomIndex  = Random.Range(0, onlyPlanets.Count);
        randomPlanet = onlyPlanets.Skip(randomIndex).First();
        randomWeapon = allAvailableWeapons[Random.Range(0, allAvailableWeapons.Count)];
        weaponFactory.AddWeapon(randomWeapon, randomPlanet);
        aiPlanetController.Control(randomPlanet, randomPlanet.Weapon);
    }