public override void Shoot()
 {
     if (WeaponCollision.IsColliding() || IsReloading)
     {
         IsShooting = false;
     }
     else
     {
         IsShooting = true;
     }
 }
Beispiel #2
0
        public override void Shoot()
        {
            if (Time.time > CooldownCollapsed && !IsReloading && !WeaponCollision.IsColliding())
            {
                PhotonView.RPC("ShootEffectRpc", RpcTarget.All, WeaponSocket.transform.forward);
                PushBack();
                ReduceAmmo();
                CameraShake.StartShake(Weapon.ShakeProfile);

                CooldownCollapsed = Time.time + Weapon.FireRate;
            }
        }
Beispiel #3
0
        /// <summary>Activate Charging.</summary>
        public override void Shoot()
        {
            if (WeaponCollision.IsColliding() || !HasAmmo)
            {
                return;
            }

            if (Time.time > CooldownCollapsed && !m_charge)
            {
                m_charge = true;
                PhotonView.RPC("ChargeEffect", RpcTarget.AllViaServer);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Checks if Weapon is able to Shoot, applies Damage, Reduce ammo, Camera Shake and Push back.
        /// </summary>
        public override void Shoot()
        {
            if (WeaponCollision.IsColliding() || IsReloading)
            {
                IsShooting = false;
                return;
            }

            IsShooting = true;

            if (Time.time <= CooldownCollapsed)
            {
                return;
            }


            if (m_target != null && PlayerHelper.ValidateTarget(m_target))
            {
                var hitted = m_target.GetComponent <IDamageable>().ApplyDamage(Weapon.Damage);
                if (hitted)
                {
                    HitEvent.Invoke();
                    ScriptableTextDisplay.Instance.InitializeStackingScriptableText(5, m_target.transform.position,
                                                                                    Weapon.Damage.ToString(),
                                                                                    m_target.name);
                }
            }


            //PushBack
            PushBack();

            //Ammo
            ReduceAmmo();

            //Camera Shake
            CameraShake.StartShake(Weapon.ShakeProfile);

            CooldownCollapsed = Time.time + Weapon.FireRate;
        }