コード例 #1
0
        public void UpdatePlatforms()
        {
            // We need to duplicate everything to control updates of the launch data manually.
            LaunchingSegment = new TurnData(_currentTurn.CurrentTurn.Turn, _currentTurn.CurrentTurn.Impulse);

            LaunchingUnitPosition = _hexVectorUtility.CloneHexVector <HexGridCoordinate>(_launchingUnit.Position);
            TargetUnitPosition    = _hexVectorUtility.CloneHexVector <HexGridCoordinate>(_targetUnit.Position);

            LaunchingUnitVelocity = _hexVectorUtility.CloneHexVector <RawHexVector>(_launchingUnit.Vectors);
            TargetUnitVelocity    = _hexVectorUtility.CloneHexVector <RawHexVector>(_targetUnit.Vectors);

            CrossingVector = _hexGridCalculator.GetCrossingVector(LaunchingUnitVelocity, TargetUnitVelocity);

            TargetDistance = _hexGridCalculator.GetDistance(LaunchingUnitPosition, TargetUnitPosition);
            CourseOffset   = 0;
            if (AvidVector.IsNullOrZero(TargetDistance))
            {
                TargetDistance = _hexGridCalculator.GetVectorFromBacktracking(LaunchingUnitVelocity, TargetUnitVelocity);
                OnVerificationRequired();
            }
            else
            {
                SubmitBearingVerificationResult(TargetDistance);
            }
        }
コード例 #2
0
        public void CheckBacktracking1()
        {
            var observerVelocity = new HexVector
            {
                PrimaryComponent   = new HexVectorComponent(HexAxis.A, 6),
                SecondaryComponent = HexVectorComponent.Zero,
                VerticalComponent  = HexVectorComponent.Zero
            };

            var observedVelocity = new HexVector
            {
                PrimaryComponent   = new HexVectorComponent(HexAxis.B, 5),
                SecondaryComponent = HexVectorComponent.Zero,
                VerticalComponent  = HexVectorComponent.Zero
            };
            var window = _calculator.GetVectorFromBacktracking(observerVelocity, observedVelocity);

            TestChecksUtility.CheckAvidWindow(window, AvidDirection.F, AvidRing.Ember, true);
        }