示例#1
0
    public void Reload()
    {
        if (m_noammosign != null)
        {
            Destroy(m_noammosign.gameObject);
            m_noammosign = null;
        }

        if (m_ammunition.Count <= m_maxammodisplay)
        {
            int t_reloadamount;

            if (m_player.m_Muzzle.m_MaxAmmoCount < m_maxammodisplay)
            {
                t_reloadamount = m_player.m_Muzzle.m_MaxAmmoCount - m_ammunition.Count;
            }
            else
            {
                t_reloadamount = m_maxammodisplay - m_ammunition.Count;
            }

            for (int i = 0; i < t_reloadamount; i++)
            {
                LoadNewAmmo();
            }
        }
        else
        {
            HideLastAmmos();
        }

        OrganizeAmmo();
    }
示例#2
0
 void DisplayNoAmmo()
 {
     LoadNewAmmo().m_NewLocalPosition = new Vector2(PlayerManager.m_Instance.m_Player.GetComponent <SpriteRenderer>().bounds.size.x / 2, 0);
     m_noammosign = Instantiate(AssetManager.m_Instance.GetPrefab("NoAmmoSign")).GetComponent <NoAmmo>();
     m_noammosign.transform.SetParent(m_ammunition[0].transform);
     m_noammosign.transform.localScale    = new Vector2(1f, 1f);
     m_noammosign.transform.localPosition = Vector2.zero;
     m_noammosign.m_ammoref = m_ammunition[0].GetComponent <Ammo>();
 }
示例#3
0
    private void Shoot()
    {
        if (_ammo <= 0)
        {
            if (NoAmmo != null)
            {
                NoAmmo.Invoke(this, EventArgs.Empty);
            }
            return;
        }

        _ammo--;

        var shootAngle = CannonAi.GetShootAngle();

        StartCoroutine(PrepareShoot((float)shootAngle));
    }