private void OnEnable() { _weapons = _player.Weapons; List <Transform> weaponViews = GetChildredItemContainer(); if (weaponViews.Count == 0) { for (int i = 0; i < _weapons.Count; i++) { AddItem(_weapons[i]); } } else { for (int i = 0; i < _weapons.Count; i++) { bool isInView = weaponViews.Where(wv => wv.GetComponent <WeaponView>().Label == _weapons[i].GetLabel).FirstOrDefault(); if (isInView == false) { AddItem(_weapons[i]); } weaponViews = GetChildredItemContainer(); WeaponView weaponView = weaponViews.Where(wv => wv.GetComponent <WeaponView>().Label == _weapons[i].GetLabel).FirstOrDefault().GetComponent <WeaponView>(); weaponView.Render(_weapons[i]); weaponView.UseButtonClick += OnUseButtonClick; } } }
public TankMainWeapon(WeaponView view, IWeaponHolder weaponHolder, TankView tankView) { this.view = weaponFactory.Create("MainWeapon"); view.Transform.position = tankView.TurretSpawnPoint.position; this.weaponHolder = weaponHolder; weaponHolder.AddWeapon(this); }
public override void Execute() { string viewName = (string)evt.data; IweaponHealhPackModel itemModel = injectionBinder.GetBinding(viewName).value as IweaponHealhPackModel; if (myPlayer.armed == false) { GameObject goItem = GameObject.Instantiate(Resources.Load(itemModel.name)) as GameObject; goItem.name = itemModel.name; goItem.AddComponent <WeaponView>(); WeaponView wv = goItem.GetComponent <WeaponView> (); wv.updatePower(itemModel.itemPower); goItem.transform.SetParent(contextView.GetComponentInChildren <PlayerView>().transform); goItem.transform.localPosition = Vector3.right; myPlayer.armed = true; } else { GameObject player = GameObject.Find("Player"); dispatcher.Dispatch(GameEvents.TO_DESTROY_ITEM, player.transform.GetChild(0).name); dispatcher.Dispatch(GameEvents.READY_TO_INSTANTIATE_ITEM, player.transform.GetChild(0).name); myPlayer.armed = false; dispatcher.Dispatch(GameEvents.ON_EQUIP_WEAPON, itemModel.name); } }
//+++++ net public void InitWithParams(WeaponParams rpgParams, int currentClipAmmo, int backpackAmmo, bool isSwitch = false) { IsCanFire = true; ShowModel(rpgParams); if (rpgParams != playerController.rpgParams.StartWeapon && playerController.isLocalPlayer && _mainWeaponRpgParams != null && !isSwitch) { playerController.TrySpawnMainWeapon(); } WeaponView targetView; if (rpgParams == playerController.rpgParams.StartWeapon) { _baseWeaponRpgParams = rpgParams; _baseWeaponView = _currentActiveGO.GetComponent <WeaponView>(); targetView = _baseWeaponView; } else { _mainWeaponRpgParams = rpgParams; _mainWeaponView = _currentActiveGO.GetComponent <WeaponView>(); targetView = _mainWeaponView; } targetView.backpackAmmo = Mathf.Min(backpackAmmo, rpgParams.MaxAmmo); targetView.currentClipAmmo = Mathf.Min(currentClipAmmo, rpgParams.ClipSize); _lastSet = rpgParams; }
private void AddItem(Weapon weapon) { WeaponView view = Instantiate(_weaponView, _itemsContainer.transform); view.Render(weapon); view.SellButtonClick += SellWeapon; _weaponViews.Add(view); }
private void TrySellWeapon(Gun gun, WeaponView view) { if (gun.Price <= _wallet.Money) { _wallet.BuyWeapon(gun); gun.Buy(); view.SellButtonClick -= OnSellButtonClick; } }
private void TrySellWeapon(Weapon weapon, WeaponView view) { if (weapon.Price <= _player.Money) { //_player.BuyWeapon(weapon); weapon.Buy(); view.SellButtonClick -= OnSellButtonClick; } }
// Start is called before the first frame update void Awake() { this.weaponController = GetComponentInChildren <WeaponController>(); weaponModel = new WeaponModel(); weaponController.weaponModel = weaponModel; weaponView = GetComponentInChildren <WeaponView>(); weaponController.weaponView = weaponView; weaponView.weaponModel = weaponModel; }
private void TrySellWeapon(Weapon weapon, WeaponView view) { if (weapon.Price <= _player.Money) // если у игрока достаточно денег { _player.BuyWeapon(weapon); // продаем ему оружие weapon.Buy(); // устанавливает, что данное оружие продано view.SellButtonClick -= OnSellButtonClick; // отписываемся от события SellButtonClick при продаже оружия } }
private void TrySellWeapon(Weapon weapon, WeaponView view) { if (weapon.Price <= _player.Money && _player.IsWeaponInArsenal(weapon)) { _player.BuyWeapon(weapon); weapon.Buy(); view.SellButtonClick -= OnSellButtonClick; } }
private void UpdateShownWeapon(WeaponContext weapon) { if (_currentView != null) { _currentView.Hide(); } _currentView = _weaponViews[weapon]; _currentView.Show(); }
// но для ясности мы передадим нажатие на кнопку другому методу // мы попытаемся продать оружие private void TrySellWeapon(Weapon weapon, WeaponView view) { if (weapon.Price <= _player.Money) { _player.BuyWeapon(weapon); weapon.Buy(); // для того что бы мы явно видели, что оружие куплено // и тут надо отписаться от события нажатия на кнопку view.SellButtonClick -= OnSellButtonClick; // отписка на кнопку продажи } }
private void TryUseWeapon(Weapon weapon, WeaponView weaponView) { Weapon playerWeapon = _player.CurrenUseWeapon; _player.Equip(weapon); List <Transform> weaponViews = GetChildredItemContainer(); WeaponView elem = weaponViews.Where(wv => wv.GetComponent <WeaponView>().Label == playerWeapon.GetLabel).FirstOrDefault().GetComponent <WeaponView>(); elem.Render(playerWeapon); }
private bool TrySellWeapon(Weapon weapon, WeaponView weaponView) { if (_player.TryBuyWeapon(weapon)) { weapon.Buy(); weaponView.SellButtonClicked -= OnSellButtonClick; return(true); } return(false); }
public void ChangeWeapons() { if (Guns.Length > weapNum) { CurrentGun = Guns[weapNum++]; } else { weapNum = 0; CurrentGun = Guns[weapNum++]; } }
public void SetupGraphics(GameObject rhWeaponResource, GameObject lhWeaponResource, GameObject headArmorResource, GameObject bodyArmorResource) { float scaleFix = transform.localScale.x / _defaultModelScaleFactor; //weapon if (_weaponBoneRight != null && rhWeaponResource != null) { GameObject weaponInstance = GameObject.Instantiate(rhWeaponResource) as GameObject; weaponInstance.transform.parent = _weaponBoneRight; weaponInstance.transform.localPosition = Vector3.zero; weaponInstance.transform.localRotation = Quaternion.identity; weaponInstance.transform.localScale *= scaleFix; _weaponViewRH = weaponInstance.GetComponent <WeaponView>(); } if (_weaponBoneLeft != null && lhWeaponResource != null) { GameObject weaponInstance = GameObject.Instantiate(lhWeaponResource) as GameObject; weaponInstance.transform.parent = _weaponBoneLeft; weaponInstance.transform.localPosition = Vector3.zero; weaponInstance.transform.localRotation = Quaternion.identity; weaponInstance.transform.localScale *= scaleFix; _weaponViewLH = weaponInstance.GetComponent <WeaponView>(); } //armor //TODO: maybe armor will need scale fixes if (_headArmorMeshRenderer != null && headArmorResource != null) { GameObject headArmorInstance = GameObject.Instantiate(headArmorResource) as GameObject; SwitchMesh(headArmorInstance.GetComponent <MeshFilter>().mesh, headArmorInstance.GetComponent <MeshRenderer>().material, _headArmorMeshRenderer); GameObject.Destroy(headArmorInstance); } if (_bodyArmorMeshRenderer != null && bodyArmorResource != null) { GameObject bodyArmorInstance = GameObject.Instantiate(bodyArmorResource) as GameObject; SwitchMesh(bodyArmorInstance.GetComponent <MeshFilter>().mesh, bodyArmorInstance.GetComponent <MeshRenderer>().material, _bodyArmorMeshRenderer); GameObject.Destroy(bodyArmorInstance); } }
private void OnSellButtonClick(Gun gun, WeaponView view) { TrySellWeapon(gun, view); }
public void AddWeapon(Entity player, WeaponView weaponView) { var weaponsComponent = player.getComponent <WeaponsComponent>(); weaponsComponent.Weapons.Add(weaponView); }
private void OnSellButtonClick(Weapon weapon, WeaponView view) // Если кто-то нажал на кнопку происходит обработка покупки SellButtonClick { TrySellWeapon(weapon, view); }
public void SetView(WeaponView weaponView) { _view = weaponView; }
public void SetupGraphics(GameObject rhWeaponResource, GameObject lhWeaponResource, GameObject headArmorResource, GameObject bodyArmorResource) { float scaleFix = transform.localScale.x / _defaultModelScaleFactor; //weapon if (_weaponBoneRight != null && rhWeaponResource != null) { GameObject weaponInstance = GameObject.Instantiate(rhWeaponResource) as GameObject; weaponInstance.transform.parent = _weaponBoneRight; weaponInstance.transform.localPosition = Vector3.zero; weaponInstance.transform.localRotation = Quaternion.identity; weaponInstance.transform.localScale *= scaleFix; _weaponViewRH = weaponInstance.GetComponent<WeaponView>(); } if (_weaponBoneLeft != null && lhWeaponResource != null) { GameObject weaponInstance = GameObject.Instantiate(lhWeaponResource) as GameObject; weaponInstance.transform.parent = _weaponBoneLeft; weaponInstance.transform.localPosition = Vector3.zero; weaponInstance.transform.localRotation = Quaternion.identity; weaponInstance.transform.localScale *= scaleFix; _weaponViewLH = weaponInstance.GetComponent<WeaponView>(); } //armor //TODO: maybe armor will need scale fixes if (_headArmorMeshRenderer != null && headArmorResource != null) { GameObject headArmorInstance = GameObject.Instantiate(headArmorResource) as GameObject; SwitchMesh(headArmorInstance.GetComponent<MeshFilter>().mesh, headArmorInstance.GetComponent<MeshRenderer>().material, _headArmorMeshRenderer); GameObject.Destroy(headArmorInstance); } if (_bodyArmorMeshRenderer != null && bodyArmorResource != null) { GameObject bodyArmorInstance = GameObject.Instantiate(bodyArmorResource) as GameObject; SwitchMesh(bodyArmorInstance.GetComponent<MeshFilter>().mesh, bodyArmorInstance.GetComponent<MeshRenderer>().material, _bodyArmorMeshRenderer); GameObject.Destroy(bodyArmorInstance); } }
private void OnSellButtonClick(Weapon weapon, WeaponView view) { TrySellWeapon(weapon, view); }
private void GainLoot_Click(object sender, EventArgs e) { if (lootList.SelectedIndex != -1) { Item item = reward[lootList.SelectedIndex]; switch (item) { case Spell s: player.spells.Add(s); lootList.Items.Remove(s); reward.Remove(s); break; case Weapon w: WeaponView weaponView = new WeaponView(w, true); weaponView.ShowDialog(); if (weaponView.decision) { player.troop.weapons.Add(w); lootList.Items.Remove(w); reward.Remove(w); } break; case Coin c: player.Money.RawValue += c.amount; lootList.Items.Remove(c); reward.Remove(c); Render(); break; case Armour a: player.troop.armours.Add(a); lootList.Items.Remove(a); reward.Remove(a); break; case Jewelry j: player.troop.jewelries.Add(j); lootList.Items.Remove(j); reward.Remove(j); break; case SellableItem s: player.troop.items.Add(s); reward.Remove(s); lootList.Items.Remove(s); break; default: throw new NotImplementedException($"Reward must be spell, coin or weapon not: {item.GetType()}"); } if (lootList.Items.Count != 0) { lootList.SelectedIndex = 0; } else { gainAllLoot.Enabled = false; } } }
private void OnUseButtonClick(Weapon weapon, WeaponView weaponView) { TryUseWeapon(weapon, weaponView); }
private void SellWeapon(Weapon weapon, WeaponView view) { _playerWeapons.BuyWeapon(weapon); view.SellButtonClick -= SellWeapon; }
// метод, обработки нажатия кнопки покупки private void OnSellButtonClick(Weapon weapon, WeaponView view) { // для понимания, это кнопка, а что мы хотим сделать, после нажания на эту кнопку // мы хотим попытаться продать оружие TrySellWeapon(weapon, view); }