Example #1
0
    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);
 }
Example #3
0
    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);
        }
    }
Example #4
0
    //+++++ 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;
    }
Example #5
0
        private void AddItem(Weapon weapon)
        {
            WeaponView view = Instantiate(_weaponView, _itemsContainer.transform);

            view.Render(weapon);
            view.SellButtonClick += SellWeapon;
            _weaponViews.Add(view);
        }
Example #6
0
 private void TrySellWeapon(Gun gun, WeaponView view)
 {
     if (gun.Price <= _wallet.Money)
     {
         _wallet.BuyWeapon(gun);
         gun.Buy();
         view.SellButtonClick -= OnSellButtonClick;
     }
 }
Example #7
0
 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;
 }
Example #9
0
 private void TrySellWeapon(Weapon weapon, WeaponView view)
 {
     if (weapon.Price <= _player.Money)             // если у игрока достаточно денег
     {
         _player.BuyWeapon(weapon);                 // продаем ему оружие
         weapon.Buy();                              // устанавливает, что данное оружие продано
         view.SellButtonClick -= OnSellButtonClick; // отписываемся от события SellButtonClick при продаже оружия
     }
 }
Example #10
0
 private void TrySellWeapon(Weapon weapon, WeaponView view)
 {
     if (weapon.Price <= _player.Money && _player.IsWeaponInArsenal(weapon))
     {
         _player.BuyWeapon(weapon);
         weapon.Buy();
         view.SellButtonClick -= OnSellButtonClick;
     }
 }
Example #11
0
        private void UpdateShownWeapon(WeaponContext weapon)
        {
            if (_currentView != null)
            {
                _currentView.Hide();
            }

            _currentView = _weaponViews[weapon];
            _currentView.Show();
        }
Example #12
0
 // но для ясности мы передадим нажатие на кнопку другому методу
 // мы попытаемся продать оружие
 private void TrySellWeapon(Weapon weapon, WeaponView view)
 {
     if (weapon.Price <= _player.Money)
     {
         _player.BuyWeapon(weapon);
         weapon.Buy();                              // для того что бы мы явно видели, что оружие куплено
         // и тут надо отписаться от события нажатия на кнопку
         view.SellButtonClick -= OnSellButtonClick; // отписка на кнопку продажи
     }
 }
Example #13
0
    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);
    }
Example #14
0
    private bool TrySellWeapon(Weapon weapon, WeaponView weaponView)
    {
        if (_player.TryBuyWeapon(weapon))
        {
            weapon.Buy();
            weaponView.SellButtonClicked -= OnSellButtonClick;
            return(true);
        }

        return(false);
    }
Example #15
0
 public void ChangeWeapons()
 {
     if (Guns.Length > weapNum)
     {
         CurrentGun = Guns[weapNum++];
     }
     else
     {
         weapNum    = 0;
         CurrentGun = Guns[weapNum++];
     }
 }
Example #16
0
    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);
        }
    }
Example #17
0
 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);
        }
Example #19
0
 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);
		}
	}
Example #22
0
 private void OnSellButtonClick(Weapon weapon, WeaponView view)
 {
     TrySellWeapon(weapon, view);
 }
Example #23
0
        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;
                }
            }
        }
Example #24
0
 private void OnUseButtonClick(Weapon weapon, WeaponView weaponView)
 {
     TryUseWeapon(weapon, weaponView);
 }
Example #25
0
 private void SellWeapon(Weapon weapon, WeaponView view)
 {
     _playerWeapons.BuyWeapon(weapon);
     view.SellButtonClick -= SellWeapon;
 }
 public void SetView(WeaponView weaponView)
 {
     _view = weaponView;
 }
Example #27
0
 // метод, обработки нажатия кнопки покупки
 private void OnSellButtonClick(Weapon weapon, WeaponView view)
 {
     // для понимания, это кнопка, а что мы хотим сделать, после нажания на эту кнопку
     // мы хотим попытаться продать оружие
     TrySellWeapon(weapon, view);
 }