示例#1
0
 void Construct(RocketViewController.Factory rocketFactory,
                Hud.Factory hudFactory,
                List <SettingsSO.RocketSettings> rocketSettingList,
                SettingsSO.GameSettings gameSettings
                )
 {
     _rocketFactory         = rocketFactory;
     _hudFactory            = hudFactory;
     _rocketSettingsList    = rocketSettingList;
     _currentRocketSettings = rocketSettingList[0];
     _gameSettings          = gameSettings;
     ConfigureUpdatePosition();
 }
示例#2
0
 void Construct(
     PlanetViewController.Factory planetFactory,
     SettingsSO.GameSettings gameSettings,
     List <SettingsSO.RocketSettings> rocketSettings,
     RocketAmmoPanel ammoPanel,
     LocalSaveController localSaveController,
     RocketViewController.Factory rocketFactory,
     AISystem aiSystem,
     MainMenuView mainMenuView
     )
 {
     _planetFactory              = planetFactory;
     _rocketFactory              = rocketFactory;
     _gameSettings               = gameSettings;
     _rocketSettings             = rocketSettings;
     _ammoPanel                  = ammoPanel;
     _aiSystem                   = aiSystem;
     _localSaveController        = localSaveController;
     _mainMenuView               = mainMenuView;
     Application.targetFrameRate = 60;
     ConfigureInput();
     SubscribeToUpdateAiSystem();
 }
示例#3
0
        public void CreateRandomizedState(SettingsSO.GameSettings gameSettings,
                                          List <SettingsSO.RocketSettings> rocketSettings)
        {
            var   playerIndex   = Random.Range(0, gameSettings.initialPlanetAmount);
            float previousOrbit = gameSettings.MinimumOrbitRadius;

            ClearPlanetStates();
            for (int i = 0; i < gameSettings.initialPlanetAmount; i++)
            {
                var randomPlanetSetting = new SettingsSO.PlanetSettings();
                randomPlanetSetting.planetScale =
                    Random.Range(gameSettings.MinPlanetScale, gameSettings.MaxPlanetScale);
                randomPlanetSetting.orbitRadius =
                    previousOrbit + randomPlanetSetting.planetScale / 2 + Random.Range(2, 7);
                previousOrbit = randomPlanetSetting.orbitRadius + randomPlanetSetting.planetScale / 2;
                randomPlanetSetting.clockwise            = Random.value > 0.5f;
                randomPlanetSetting.solarAngularVelocity = Random.Range(gameSettings.SolarAngularVelocityMin,
                                                                        gameSettings.SolarAngularVelocityMax);
                randomPlanetSetting.selfRotationVelocity = Random.Range(gameSettings.SelfRotationVelocityMin,
                                                                        gameSettings.SelfRotationVelocityMax);
                var randomColor      = new Color(Random.Range(0.2f, 1f), Random.Range(0.2f, 1f), Random.Range(0.2f, 1f));
                var randomAngleToSun = Random.Range(0, Mathf.PI * 2);
                var isPlayer         = playerIndex == i;
                var planetModel      = new PlanetModel(randomPlanetSetting,
                                                       gameSettings.initialPlanetHP,
                                                       isPlayer,
                                                       randomAngleToSun,
                                                       randomColor
                                                       );
                foreach (var rocket in rocketSettings)
                {
                    planetModel.AddRocketAmmo(rocket.rocketType, Random.Range(rocket.minAmmo, rocket.maxAmmo));
                }

                planetModels.Add(planetModel);
            }
        }