public void EquipWeapon(Weapon_Base weapon)
 {
     weapon.transform.SetParent(WeaponSlot);
     weapon.transform.localPosition = Vector3.zero;
     weapon.transform.localRotation = Quaternion.identity;
     Weapon.OnEquip(character);
 }
Exemplo n.º 2
0
    private void UI_UpdateHandDisplays()
    {
        for (uint i = 0; i < (uint)EPlayerHand.MAX; ++i)
        {
            EPlayerHand hand        = (EPlayerHand)i;
            bool        displayAmmo = false;

            if (m_player.m_playerWeaponHolder.IsHoldingWeaponInHand(hand))
            {
                Item item = m_player.m_playerWeaponHolder.GetWeaponInHand(hand);
                if (item)
                {
                    if (item.GetItemSprite())
                    {
                        m_handDisplays[i].sprite = item.GetItemSprite();
                    }

                    Weapon_Base baseWeapon = item as Weapon_Base;
                    if (baseWeapon.GetWeaponType() == EWeaponType.RANGED)
                    {
                        Weapon_Ranged rangedWeapon = baseWeapon as Weapon_Ranged;
                        if (rangedWeapon)
                        {
                            //set the fill amount to ration of ammo
                            float ammoRatio = rangedWeapon.GetCurrentAmmo() / rangedWeapon.AccessWeaponStat(EWeaponStat.RANGED_CLIP_SIZE).GetCurrent();
                            m_handDisplaysAmmo[i].fillAmount = ammoRatio;

                            //set ammo text
                            m_handDisplaysAmmoText[i].text = rangedWeapon.GetCurrentAmmo().ToString();

                            //reload effect
                            if (rangedWeapon.IsReloading())
                            {
                                m_handDisplaysAmmo[i].color      = Color.green;
                                m_handDisplaysAmmo[i].fillAmount = 1 - (rangedWeapon.GetCurrentReloadTime() / rangedWeapon.AccessWeaponStat(EWeaponStat.RANGED_RELOAD_TIME).GetCurrent());
                                m_handDisplaysAmmoText[i].text   = "R";
                            }
                            else
                            {
                                m_handDisplaysAmmo[i].color = Color.white;
                            }
                        }

                        displayAmmo = true;
                    }
                }
            }
            else
            {
                m_handDisplays[i].sprite = m_defaultHandSprite;
            }

            m_handDisplaysAmmo[i].transform.parent.gameObject.SetActive(displayAmmo);
        }
    }
 private void Start()
 {
     if (character == null)
     {
         character = GetComponent <Character_Base>();
     }
     if (DefaultWeapon != null)
     {
         GameObject g = Instantiate(DefaultWeapon);
         Weapon = g.GetComponent <Weapon_Base>();
         EquipWeapon(Weapon);
     }
 }
Exemplo n.º 4
0
 public void InitUpgradeMenuData(Weapon_Base newWeapon, in bool weaponWasEquipped, in EPlayerHand weaponHandWasEquipped)
Exemplo n.º 5
0
 public void SetParentWeapon(Weapon_Base newWeapon)
 {
     m_parentWeapon = newWeapon;
 }