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(); }
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(); }
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); } }