public override AttackManager Attack(float damageMultiplier, List <IAttacker> owners)
        {
            if (GetAttack == null)
            {
                return(null);
            }

            AttackManager attack = base.Attack(damageMultiplier, owners);

            if (attack == null)
            {
                return(null);
            }

            IAmmo ammo = (IAmmo)attack;

            ammo.SetInitialWeaponDirection(DirectionalObject.Direction);
            ammo.SetIntialVelocity(FireVelocity);
            ammo.SetInitialWeaponPosition(WeaponPosition);
            owners.ForEach(t => t.ReceiveStoppingPower(stoppingPower));

            Instantiate(muzzleFlashEffect, WeaponPosition, transform.rotation, null);

            return(ammo.GetAttackManager);
        }
        public override AttackManager Attack(float damageMultiplier, List <IAttacker> owners)
        {
            AttackManager attack = base.Attack(damageMultiplier, owners);

            if (attack == null)
            {
                return(null);
            }

            IAmmo ammo = (IAmmo)attack;

            ammo.SetInitialWeaponPosition(weaponPivot.position);

            return(attack);
        }