Ejemplo n.º 1
0
    private void ShootThing()
    {
        if (m_Player.PInput.Shoot && m_ShootCooldown == 0)
        {
            Vector3    angle = new Vector3(TankBarrel.eulerAngles.x, m_TankHead.eulerAngles.y, m_Player.transform.eulerAngles.z);
            Quaternion projectileRotation = Quaternion.Euler(angle);

            ProjectileBehaviour p = Instantiate(m_EquippedWeapon.ProjectilePrefab, FirePosition(), projectileRotation).GetComponent <ProjectileBehaviour>();

            //p.Initalize(m_Player, m_EquippedWeapon, TankBarrel.forward);

            p.Initalize(m_Player, m_EquippedWeapon, TankBarrel.forward);

            m_ShootCooldown      = m_EquippedWeapon.Cooldown;
            m_Player.Camera.Bump = (-TankBarrel.forward * m_EquippedWeapon.CameraImpact);
            m_Player.AddForce(-TankBarrel.forward * m_EquippedWeapon.TankForce);

            AddSpread(m_EquippedWeapon.SpreadAngle);

            // Reset the timer which makes the animation play
            m_BarrelAnimationTimer = 0;

            // Check if the weapon does not have infinite ammo
            if (m_EquippedWeapon.StartingAmmo > 0)
            {
                m_CurrentAmmo--;

                if (m_CurrentAmmo <= 0)
                {
                    ResetWeapon();
                }
            }
        }
    }