Beispiel #1
0
        private IAbilitiesController ConfigureAbilityController(
            Transform placeForUi,
            IAbilityActivator abilityActivator, ProfilePlayer profilePlayer)
        {
            var abilityItemsConfigCollection
                = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath
            {
                PathResource = "DataSource/Ability/AbilityItemConfigDataSource"
            });
            var abilityRepository
                = new AbilityRepository(abilityItemsConfigCollection);
            var abilityCollectionViewPath
                = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
                };
            var abilityCollectionView
                = ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi,
                                                                                  false);

            AddGameObjects(abilityCollectionView.gameObject);

            var abilitiesController = new AbilitiesController(abilityRepository, profilePlayer.InventoryModel,
                                                              abilityCollectionView, abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }
Beispiel #2
0
        public void Apply(IAbilityActivator activator)
        {
            var activatorGO        = activator.GetViewObject();
            var activatorGORigid2D = activatorGO.GetComponent <Rigidbody2D>();

            activatorGORigid2D.AddForce(activatorGO.transform.up * _config.Value, ForceMode2D.Impulse);
        }
        public AbilitiesController(
            [NotNull] IRepository <int, IAbility> abilityRepository,
            [NotNull] IInventoryModel inventoryModel,
            [NotNull] IAbilityCollectionView abilityCollectionView,
            [NotNull] IAbilityActivator abilityActivator)
        {
            _abilityActivator      = abilityActivator ?? throw new ArgumentNullException(nameof(abilityActivator));
            _inventoryModel        = inventoryModel ?? throw new ArgumentNullException(nameof(inventoryModel));
            _abilityRepository     = abilityRepository ?? throw new ArgumentNullException(nameof(abilityRepository));
            _abilityCollectionView = abilityCollectionView ?? throw new ArgumentNullException(nameof(abilityCollectionView));

            SetupView(_abilityCollectionView);
        }
        public void Apply(IAbilityActivator activator)
        {
            GunAbilityView projectile = null;

            if (_gunPull.TryGetValue())
            {
                projectile = _gunPull.Get(activator);
            }

            if (projectile != null)
            {
                projectile.Rigidbody2D
                .AddForce(activator.GetViewObject().transform.right *_abilityItemConfig.Value, ForceMode2D.Force);
            }
        }
        private BaseController ConfigureAbilityController(Transform placeForUi, IAbilityActivator abilityActivator)
        {
            var abilityItemsConfigCollection
                = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath {
                PathResource = "DataSource/Ability/AbilityItemConfigDataSource"
            });

            var abilityRepository
                = new AbilityRepository(abilityItemsConfigCollection);

            var abilityCollectionViewPath
                = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
                };
            var abilityCollectionView =
                ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi, false);

            AddGameObjects(abilityCollectionView.gameObject);

            var abilityItemsRepository
                = new ItemsRepository(abilityItemsConfigCollection.Select(value => value.ItemConfig).ToList());

            var inventoryModel = new InventoryModel();

            foreach (var item in abilityItemsRepository.Collection.Values)
            {
                inventoryModel.EquipItem(item);
            }

            var abilitiesController = new AbilitiesController(abilityRepository, inventoryModel, abilityCollectionView,
                                                              abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }
Beispiel #6
0
        public void Apply(IAbilityActivator activator)
        {
            var projectile = Object.Instantiate(_config.view).GetComponent <Rigidbody2D>();

            projectile.AddForce(activator.GetViewObject().transform.right *_config.value, ForceMode2D.Force);
        }
Beispiel #7
0
 public void Apply(IAbilityActivator activator)
 {
 }
Beispiel #8
0
        private IAbilitiesController ConfigureAbilityController(Transform placeForUi, IAbilityActivator abilityActivator, IReadOnlyList <IItem> items)
        {
            var abilityItemsConfigCollection = ContentDataSourceLoader.LoadAbilityItemConfigs(new ResourcePath {
                PathResource = "DataSource/Abilities/AbilityItemConfigDataSource"
            });
            var abilityRepository         = new AbilityRepository(abilityItemsConfigCollection);
            var abilityCollectionViewPath = new ResourcePath {
                PathResource = $"Prefabs/{nameof(AbilityCollectionView)}"
            };
            var abilityCollectionView = ResourceLoader.LoadAndInstantiateObject <AbilityCollectionView>(abilityCollectionViewPath, placeForUi, false);

            AddGameObjects(abilityCollectionView.gameObject);

            // загрузить в модель экипированные предметы можно любым способом
            var inventoryModel = new InventoryModel();

            inventoryModel.EquipItems(items);

            var abilitiesController = new AbilitiesController(abilityRepository, inventoryModel, abilityCollectionView, abilityActivator);

            AddController(abilitiesController);

            return(abilitiesController);
        }
Beispiel #9
0
 public void Apply(IAbilityActivator activator)
 {
     _projectile = Object.Instantiate(_config.view);
     //_projectile.AddForce(activator.GetViewObject().transform.right * _config.value, ForceMode2D.Force);
 }
Beispiel #10
0
 public void Apply(IAbilityActivator activator)
 {
     activator.GetProfilePlayer().CurrentCar.Speed.Value += _config.value;
 }
Beispiel #11
0
 public GunAbilityView Get(IAbilityActivator abilityActivator)
 {
     _pullObject.transform.position = abilityActivator.GetViewObject().transform.up;
     _pullObject.gameObject.SetActive(true);
     return(_pullObject);
 }