public CombinedTargetPickerTest()
        {
            var pickers = new List <ITargetPicker> {
                _p1.Object, _p2.Object
            };

            _picker = new CombinedTargetPicker(pickers);
        }
        public CombinedTargetPickerTest()
        {
            _p1 = new Mock <ITargetPicker>();
            _p2 = new Mock <ITargetPicker>();

            _p1.Setup(p => p.FilterTargets(It.IsAny <IEnumerable <PotentialTarget> >())).Returns(ReturnedTargetsP1);
            _p2.Setup(p => p.FilterTargets(It.IsAny <IEnumerable <PotentialTarget> >())).Returns(ReturnedTargetsP2);
            var pickers = new List <ITargetPicker> {
                _p1.Object, _p2.Object
            };

            _picker = new CombinedTargetPicker(pickers);
        }
    private void Initialise()
    {
        _thisSpaceship = GetComponent <Rigidbody>();
        var _detector = new MultiTagTargetDetector()
        {
            EnemyTags = EnemyTags
        };

        var torqueApplier = new MultiTorquerTorqueAplier(_thisSpaceship, _torquers, TorqueMultiplier, AngularDragForTorquers);

        _pilot = new SpaceshipPilot(torqueApplier, _thisSpaceship, _engines, ShootAngle, Fuel)
        {
            StartDelay               = StartDelay,
            SlowdownWeighting        = SlowdownWeighting,
            TangentialSpeedWeighting = TangentialSpeedWeighting,
            LocationAimWeighting     = LocationAimWeighting,
            VectorArrow              = VectorArrow,
            MaxRange             = MaxRange,
            MinRange             = MinRange,
            MaxTangentialSpeed   = MaxTangentialVelocity,
            MinTangentialSpeed   = MinTangentialVelocity,
            RadialSpeedThreshold = RadialSpeedThreshold
        };

        var pickers = new List <ITargetPicker>
        {
            new ProximityTargetPicker(_thisSpaceship)
            {
                DistanceMultiplier = PickerDistanceMultiplier
            }
        };

        if (MinimumMass > 0 || PickerMasMultiplier != 0)
        {
            pickers.Add(new MassTargetPicker
            {
                MinMass          = MinimumMass,
                MassMultiplier   = PickerMasMultiplier,
                OverMinMassBonus = PickerOverMinMassBonus
            });
        }

        var picker = new CombinedTargetPicker(pickers);

        _runner = new SpaceshipRunner(_detector, picker, _pilot, this);

        foreach (var engine in _engines)
        {
            engine.tag = tag;
        }
    }