[InlineData(Angle360InRads, HalfCornerTrackDistance * 3, Angle270InRads, Angle270InRads - 0.1f, HalfCornerTrackDistance)] // 270-360, beyond arc public void MoveCounterClockwise(double currentAngle, float distance, float maximumNewAngle, float expectedAngle, float expectedDistance) { (double newAngle, float newDistance) = TrainMovement.MoveCounterClockwise(currentAngle, distance, maximumNewAngle); Assert.Equal(expectedAngle, newAngle, 3); Assert.Equal(expectedDistance, newDistance, 3); }
public void AngleToPoints(double angle, float radius, float expectedX, float expectedY) { (float x, float y) = TrainMovement.AngleToPoints(angle, radius); Assert.Equal(expectedX, x, 3); Assert.Equal(expectedY, y, 3); }
private void Start() { wagon = GetComponent <Wagon>(); trainMovement = GetComponent <TrainMovement>(); sizeofcargo = 1; inventory = new List <int>(sizeofcargo); balance = 0; }
private void Start() { if (isFirst) { pickUp = GetComponent <TrainPickUpDrop>(); trainMovement = GetComponent <TrainMovement>(); } }
[InlineData(0.9f)] // Extreme public void MoveHorizontal_MovingRight_WithinCell_SnappingToCenter(float relativeTop) { var position = new TrainPosition(0.0f, relativeTop, 0, 0.5f); var expectedPos = new TrainPosition(0.5f, 0.5f, 0, 0.0f); TrainMovement.MoveHorizontal(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveLeftUp_ClockwiseFromTop_BeyondCell(float initalLeft, float initalTop, float initialAngle, float distance, float expectedDistance) { var position = new TrainPosition(initalLeft, initalTop, initialAngle, distance); var expectedPos = new TrainPosition(-0.1f, 0.5f, 180, expectedDistance); TrainMovement.MoveLeftUp(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
[InlineData(0.9f)] // Extreme public void MoveLeftUp_ClockwiseFromTop_WithinCell_SnappingToCenter(float relativeLeft) { var position = new TrainPosition(relativeLeft, 0.0f, 90, (float)HalfCornerTrackDistance); var expectedPos = new TrainPosition(Cos45ByRadius, Sin45ByRadius, 135, 0.0f); TrainMovement.MoveLeftUp(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveHorizontal_MovingRight_BeyondCell(float initalLeft, float distance, float expectedDistance) { var position = new TrainPosition(initalLeft, 0.5f, 0, distance); var expectedPos = new TrainPosition(1.1f, 0.5f, 0, expectedDistance); TrainMovement.MoveHorizontal(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveVertical_MovingUp_BeyondCell(float initalTop, float distance, float expectedDistance) { var position = new TrainPosition(0.5f, initalTop, 270, distance); var expectedPos = new TrainPosition(0.5f, -0.1f, 270, expectedDistance); TrainMovement.MoveVertical(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveHorizontal_MovingLeft_WithinCell_VariedDistance(float initalLeft, float distance, float expectedLeft) { var position = new TrainPosition(initalLeft, 0.5f, 180, distance); var expectedPos = new TrainPosition(expectedLeft, 0.5f, 180, 0.0f); TrainMovement.MoveHorizontal(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
[InlineData(0.9f)] // Extreme public void MoveVertical_MovingUp_WithinCell_SnappingToMiddle(float relativeLeft) { var position = new TrainPosition(relativeLeft, 1.0f, 270, 0.5f); var expectedPos = new TrainPosition(0.5f, 0.5f, 270, 0.0f); TrainMovement.MoveVertical(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveVertical_MovingUp_WithinCell_VariedDistance(float initalTop, float distance, float expectedTop) { var position = new TrainPosition(0.5f, initalTop, 270, distance); var expectedPos = new TrainPosition(0.5f, expectedTop, 270, 0.0f); TrainMovement.MoveVertical(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveRightDown_CounterClockwiseFromRight_WithinCell_VariedDistance(float initalLeft, float initalTop, float initialAngle, float distance, float expectedLeft, float expectedTop, float expectedAngle) { var position = new TrainPosition(initalLeft, initalTop, initialAngle, distance); var expectedPos = new TrainPosition(expectedLeft, expectedTop, expectedAngle, 0.0f); TrainMovement.MoveRightDown(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
[InlineData(285.0f)] // Extreme public void MoveVertical_MovingUp_WithinCell_VariedInitialAngles(float angle) { var position = new TrainPosition(0.5f, 1.0f, angle, 0.5f); var expectedPos = new TrainPosition(0.5f, 0.5f, 270, 0.0f); TrainMovement.MoveVertical(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
public void MoveRightDown_CounterClockwiseFromRight_BeyondCell(float initalLeft, float initalTop, float initialAngle, float distance, float expectedDistance) { var position = new TrainPosition(initalLeft, initalTop, initialAngle, distance); var expectedPos = new TrainPosition(0.5f, 1.1f, 90.0f, expectedDistance); TrainMovement.MoveRightDown(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
[InlineData(15.0f)] // Extreme public void MoveLeftDown_ClockwiseFromLeft_WithinCell_VariedInitialAngles(float angle) { var position = new TrainPosition(0.0f, 0.5f, angle, (float)HalfCornerTrackDistance); var expectedPos = new TrainPosition(Cos45ByRadius, 1.0f - Sin45ByRadius, 45, 0.0f); TrainMovement.MoveLeftDown(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
[InlineData(0.9f)] // Extreme public void MoveRightDown_CounterClockwiseFromRight_WithinCell_SnappingToCenter(float relativeTop) { var position = new TrainPosition(1.0f, relativeTop, 180.0f, (float)HalfCornerTrackDistance); var expectedPos = new TrainPosition(1.0f - Cos45ByRadius, 1.0f - Sin45ByRadius, 135.0f, 0.0f); TrainMovement.MoveRightDown(position); Assert.Equal(expectedPos.RelativeLeft, position.RelativeLeft, 3); Assert.Equal(expectedPos.RelativeTop, position.RelativeTop, 3); Assert.Equal(expectedPos.Angle, position.Angle, 3); Assert.Equal(expectedPos.Distance, position.Distance, 3); }
internal override void Move(TrainPosition position) { if ((position.Angle > 45.0f && position.Angle < 135.0f) || (position.Angle > 225.0f && position.Angle < 315.0f)) { TrainMovement.MoveVertical(position); } else { TrainMovement.MoveHorizontal(position); } }
public void GameOver(int i) { if (gameOver) { return; } Time.timeScale = 0.5f; gameOver = true; if (i == 0) { Instance.explotionps.Play(); } else { Instance.explotionfactory.Play(); } TrainMovement.StopMoving(); BlackFader.GoToScene("GameOver", UnityEngine.SceneManagement.LoadSceneMode.Single, 1.5f); // Reset static fields Wagon.upgradespeed = 1f; }
public void BetweenAngles_WithinAngle(float angle, float limit1, float limit2) => Assert.True(TrainMovement.BetweenAngles(angle, limit1, limit2));
private void SetTrainState() { switch (trainMovement) { case TrainMovement.Accelerating: { if (InputManager.Data.moveY > 0) { currentAccelerationTime = currentAccelerationTime >= maxAccelerationTime ? maxAccelerationTime : currentAccelerationTime + (Time.fixedDeltaTime * iceDecelerationMultiplier); } else if (currentAccelerationTime >= 0) { trainMovement = TrainMovement.Decelerating; } break; } case TrainMovement.Decelerating: { if (InputManager.Data.moveY > 0) { trainMovement = TrainMovement.Accelerating; } if (currentAccelerationTime > 0) { currentAccelerationTime = currentAccelerationTime <= 0 ? 0 : currentAccelerationTime - (Time.fixedDeltaTime / iceDecelerationMultiplier); if (rb.velocity.magnitude < wallHitVelocityThreshold) { currentAccelerationTime = 0; } } else { trainMovement = TrainMovement.Stopped; } break; } case TrainMovement.Stopped: { if (InputManager.Data.moveY > 0) { trainMovement = TrainMovement.Accelerating; } else if (InputManager.Data.moveY < 0) { trainMovement = TrainMovement.Reversing; } break; } case TrainMovement.Reversing: { if (InputManager.Data.moveY < 0) { reverseAccelerationTime = reverseAccelerationTime >= maxReverseAccelerationTime ? maxReverseAccelerationTime : reverseAccelerationTime + Time.fixedDeltaTime; } else if (reverseAccelerationTime > 0) { reverseAccelerationTime = reverseAccelerationTime <= 0 ? 0 : reverseAccelerationTime - Time.fixedDeltaTime * 2; } else { trainMovement = TrainMovement.Stopped; } break; } } }
public void PointsToAngle(float x, float y, double expected) => Assert.Equal(expected, TrainMovement.PointsToAngle(x, y), 1);
public void BetweenAngles_OutsideAngle(float angle, float limit1, float limit2) => Assert.False(TrainMovement.BetweenAngles(angle, limit1, limit2));
public void KeepWithin0and360(float angle, float expected) => Assert.Equal(expected, TrainMovement.KeepWithin0and360(angle), 1);
public void DegreeToRad(double angle, double expected) => Assert.Equal(expected, TrainMovement.DegreeToRad(angle), 1);
public void RadToDegree(double angle, double expected) => Assert.Equal(expected, TrainMovement.RadToDegree(angle), 1);