public void ReloadShipController(GameObject provider, bool isRequired) { if (isRequired) { var newProvider = _providersPool.Pop(); var newModel = new ShipModel(new ShipData() { Provider = newProvider, Speed = _data.Speed, Acceleration = _data.Acceleration, HP = _data.HP, Force = _data.Force }); var moveImplementation = new AccelerationMove(newProvider.transform, newModel.Speed, newModel.Acceleration); var rotationImplementation = new RotationShip(newProvider.transform); GetShip.ReloadShip(moveImplementation, rotationImplementation, newModel); newProvider.GetComponent <IView>().ProviderDestroyed += GetShip.WatchToProviderDestroyed; } else { provider.GetComponent <IView>().ProviderDestroyed -= GetShip.WatchToProviderDestroyed; _providersPool.Push(provider); } }
private void StartMove() { _camera = Camera.main; moveTransform = new AccelerationMove(_transform, _speed, _acceleration); rotation = new RotationShip(_transform); _ship = new Ship(moveTransform, rotation); }
private void Start() { _camera = Camera.main; var moveTransform = new AccelerationMove(transform, _speed, _acceleration, GetComponent <Rigidbody2D>()); var rotation = new RotationShip(transform); ShootShip shoot = new ShootShip(_bullet, _barrel, _force); _ship = new Ship(moveTransform, rotation, shoot); }
public InputController(AccelerationMove moveTransform, RotationShip rotation, Camera camera, IWeapon weapon, MainControllers mainControllers, Data data, Transform playerTransform) { _ship = new Ship(moveTransform, rotation); _camera = camera; _weapon = weapon; _mainControllers = mainControllers; _mainControllers.Add(this); _data = data; _playerTransform = playerTransform; }
private void Start() { _camera = Camera.main; var moveTransform = new AccelerationMove(transform, _speed, _acceleration); var rotation = new RotationShip(transform); _ship = new Ship(moveTransform, rotation); _inputController = new InputController(_camera, transform, _ship, _barrel, _force, _bullet); _detectCollision.InjectDependencies(new Health(100)); }
private void Start() { _hpController = new HpController(_hp); _hpController.Damage = _damage; _hpController.OnPlayerDead += DestroyPlayer; //Стоит вынести метод в отдельный класс? _hpController.OnHpChanged += _hpController._hpModel.ReduceHp; //НЕ ЗНАЮ, ИМЕЕТ ЛИ СМЫСЛ ИСПОЛЬЗОВАТЬ ДЛЯ ЭТОГО СОБЫТИЕ. //И, где должен быть метод уменьшения хп? В модели или контроллере? //Имеет ли смысл добавлять методы в событие в классе, где оно объявлено (HpController), или это будет неправильным использоованием события? _camera = Camera.main; var moveTransform = new AccelerationMove(transform, _speed, _acceleration); var rotation = new RotationShip(transform); _ship = new Ship(moveTransform, rotation); }
private void Start() { _player = new Player(_speed, _acceleration, _hp, this); _barrel = this.transform.Find("Barrel").gameObject; _fire = _barrel.gameObject.AddComponent <Fire>(); _camera = Camera.main; var moveTransform = new AccelerationMove(transform, _player.speed, _player.acceleration); var rotation = new RotationShip(transform); _ship = new Ship(moveTransform, rotation); _inputController = new InputController(_ship, _fire); _shipController = new ShipController(_ship, _camera, this.gameObject); _executes = new IExecute[] { _inputController, _shipController }; }
private void InitializePlayer(Health health) { _health = health; _player = Object.Instantiate(_data.Player.PlayerPrefab); _data.Player.PlayerGO = _player.gameObject; _player.SetHealth(_health); _health.OnDeath += _player.Death; _playerTransform = _player.transform; _camera = Camera.main; _camera.transform.position = _playerTransform.position + new Vector3(0, 0, _data.Player.CameraOffset); var moveTranform = new AccelerationMove(_playerTransform, _data.Player.Speed, _data.Player.Acceleration); var rotation = new RotationShip(_playerTransform); _weapon = new Weapon(_data, _playerTransform); var inputController = new InputController(moveTranform, rotation, _camera, _weapon, _mainControllers, _data, _playerTransform); }
public IController CreateShipFromData(ShipData data) { var spawnedShip = _providersPool.Pop(); var shipModel = new ShipModel( new ShipData() { Provider = spawnedShip, Speed = data.Speed, Acceleration = data.Acceleration, HP = data.HP, Force = data.Force }); var moveImplementation = new AccelerationMove(spawnedShip.transform, shipModel.Speed, shipModel.Acceleration); var rotationImplementation = new RotationShip(spawnedShip.transform); GetShip = new Ship(moveImplementation, rotationImplementation, _weapon, shipModel); spawnedShip.GetComponent <IView>().ProviderDestroyed += GetShip.WatchToProviderDestroyed; GetShip.ReloadRequired += ReloadShipController; return(GetShip); }