Пример #1
0
        public void CycleWeapons(Player Target)
        {
            var LoadedArmament = Armament.Where(x => x.Status == WeaponStatus.loaded && x.EffectiveDepths.Contains(Target.Depth) && x.Range.Min <DistanceToPlayer && x.Range.Max> DistanceToPlayer);

            foreach (var Armament in LoadedArmament)
            {
                double profile = Math.Max(AcousticalDetectionCalculation(this, Target), VisualDetectionCalculation(this, Target));
                int    damage  = Armament.FireWeapon(profile);
                if (PlayerCanSee)
                {
                    Program.CurrentLog.WriteToLog(String.Format("{0} has fired {1}!", UIName, Armament.UIName));
                }
                else
                {
                    Program.CurrentLog.WriteToLog(String.Format("Incoming {0} fire from unknown vessel!", Armament.Type.ToString().Replace('_', ' ')));
                }
                Armament.Status = WeaponStatus.reloading;
                Target.SetDamage(damage);
            }
            ReloadGuns();
        }