Example #1
0
        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);
        }