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(); } }