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); }
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); }
public void Apply(IAbilityActivator activator) { var projectile = Object.Instantiate(_config.view).GetComponent <Rigidbody2D>(); projectile.AddForce(activator.GetViewObject().transform.right *_config.value, ForceMode2D.Force); }
public void Apply(IAbilityActivator activator) { }
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); }
public void Apply(IAbilityActivator activator) { _projectile = Object.Instantiate(_config.view); //_projectile.AddForce(activator.GetViewObject().transform.right * _config.value, ForceMode2D.Force); }
public void Apply(IAbilityActivator activator) { activator.GetProfilePlayer().CurrentCar.Speed.Value += _config.value; }
public GunAbilityView Get(IAbilityActivator abilityActivator) { _pullObject.transform.position = abilityActivator.GetViewObject().transform.up; _pullObject.gameObject.SetActive(true); return(_pullObject); }