private void OptionsFire()
 {
     if (!optionFire)
     {
         return;
     }
     GradiusOption.instance.FireForAllOptions(characterBody, (option, behavior, _t, direction) =>
     {
         Transform oTransform   = option.transform;
         GameObject searchLaser = Object.Instantiate(PsyDrone.searchLaserPrefab, oTransform.position, Util.QuaternionSafeLookRotation(direction));
         SearchLaserController laserController = searchLaser.GetOrAddComponent <SearchLaserController>();
         laserController.owner           = characterBody;
         laserController.damage          = damageStat * GradiusOption.instance.damageMultiplier;
         laserController.force           = SearchLaserController.BaseForce * GradiusOption.instance.damageMultiplier;
         laserController.acceleration    = .02f;
         laserController.smoothCurveRate = .003f;
         laserController.maximumSpeed    = .8f;
     });
 }
        public override void FixedUpdate()
        {
            base.FixedUpdate();
            fireTimer += Time.fixedDeltaTime;
            float computedInterval = FireInterval / attackSpeedStat;

            if (fireTimer >= computedInterval)
            {
                GameObject searchLaser = Object.Instantiate(PsyDrone.searchLaserPrefab, aimOrigin.position, aimOrigin.rotation);
                AkSoundEngine.PostEvent(FireSoundEffect, searchLaser);
                SearchLaserController laserController = searchLaser.GetOrAddComponent <SearchLaserController>();
                laserController.owner = characterBody;
                fireTimer            -= computedInterval;
                OptionsFire();
                optionFire = !optionFire;
            }

            if (fixedAge >= Duration)
            {
                outer.SetNextStateToMain();
            }
        }