private void fire()
        {
            if (!LaunchEnable && Time.timeScale != 0)
            {
                LaunchEnable = true;
                StartCoroutine(Launch(BulletParticleEffectEvent));
            }

            void BulletParticleEffectEvent()
            {
                fireBaseMethod((bullet) =>
                {
                    var message = FireMessage.CreateMessage(BlockBehaviour, Rigidbody.velocity, bullet.GetComponent <RayBulletScript>().Guid.ToString());
                    ModNetworking.SendToAll(message);
                });
            }
        }
        void fire()
        {
            if (!LaunchEnable && Time.timeScale != 0)
            {
                LaunchEnable = true;
                StartCoroutine(Launch(BulletParticleEffectEvent));
            }

            void BulletParticleEffectEvent()
            {
                var bullet = (GameObject)Instantiate(BulletObject, transform.TransformPoint(SpawnPoint + Direction), transform.rotation);

                bullet.SetActive(true);

                var bs = bullet.GetComponent <BulletScript>();

                bs.Fire(null, (value) =>
                {
                    bs.gameObject.AddComponent <ExplodeScript>().Explodey(ExplodeScript.explosionType.Small, bullet.transform.position, bulletPowerSlider.Value, 3f);
                    bs.GetComponent <TimedSelfDestruct>().Begin(5f);
                }
                        );


                if (StatMaster.isMP && Modding.Common.Player.GetAllPlayers().Count > 1)
                {
                    var message = FireMessage.CreateMessage(BlockBehaviour, Rigidbody.velocity, bs.Guid.ToString());
                    ModNetworking.SendToAll(message);
                }

                fireAudioSource.PlayOneShot(fireAudioSource.clip);
                fireAudioSource.pitch = UnityEngine.Random.Range(0.8f, 1.2f);

                EffectsObject.SetActive(true);
                EffectsObject.GetComponent <Reactivator>().Switch = true;
            }
        }