public bool AIfire(FactionName factionThatFiredShot, Vector3 barrelStart, Vector3 barrelEnd, bool isAiming = false) { if (enabled) { if (weapon.getCurrentFireMode().timeSinceLastShot > weapon.getCurrentFireMode().fireRate) { if ((Time.time - timeWhenLastSoundWasRemoved) > soundRemovalInterval && numSounds > 0) { timeWhenLastSoundWasRemoved = Time.time; numSounds -= 1; } if (fireSoundSource != null && fireSound != null && weapon.magazines.Count > 0 && weapon.magazines [weapon.currentMag] > 0 && numSounds < maxNumSounds) { fireSoundSource.PlayOneShot(fireSound); numSounds += 1; } } //barrelEnd.position +=startBarrelOffset; bool result = weapon.fire(barrelEnd, barrelStart, factionThatFiredShot, isAiming); //barrelStart.position-=startBarrelOffset; if (weapon.discardOnFire && weapon.stateOfWeapon != WeaponState.Dropped) { weapon.stateOfWeapon = WeaponState.Dropped; weapon.dropWeapon(barrelEnd); //gameObject.rem } return(result); } return(false); }