private void WaitUnitOnPosition(IntVector2 position) { _targetUnit = _occupatedPossitionsMap.GetUnitOnPosition(position); if (Equals(_targetUnit.DynamicInfo.WaitPosition, _baseActionController.Position)) { IntVector2 newPosition = _movingRandomizer.GetRandomPoint(_baseActionController.Position); _baseActionController.MoveToPosition(newPosition); return; } _baseActionController.WaitPosition(_targetUnit.Position); _unitInfo.SetWaitPosition(position); _targetUnit.UnitEvents.PositionChanged += TargetUnitPositionChanged; }
public void MoveToPosition_ShouldRiseMoveToPositionCompleteCorrect(IntVector2 attackPosition, IntVector2 returnedFreePoint, bool expectedCall) { // Aggange bool moveToPositionCompleteCalled = false; _wayHostileController.MoveToPositionComplete += () => moveToPositionCompleteCalled = true; Mock.Arrange(() => _wayHostileControllerParameters.AttackPosition).Returns(attackPosition); Mock.Arrange(() => _freePointToGoResolver.GetFreePoint(Arg.IsAny <IntVector2>())).Returns(returnedFreePoint); Mock.Arrange(() => _baseActionController.MoveToPosition(Arg.IsAny <IntVector2>())).DoNothing(); // Act _wayHostileController.MoveToPosition(attackPosition); Mock.Raise(() => _baseActionController.MovePathComplete += null); // Assert Assert.True(expectedCall == moveToPositionCompleteCalled); }
private void NoWayToAttackPointHandler(IntVector2 position) { IntVector2 freePosition = GetFirstFreePositionInUnitRange(GetAttackTargetPosition()); if (_baseActionController.Destination.Equals(freePosition)) { freePosition = GetFirstFreePositionInUnitRange(GetAttackTargetPosition(), 2); _baseActionController.Wait(); } _baseActionController.MoveToPosition(freePosition); }
private void BaseMoveToPosition(IntVector2 position) { _baseActionController.MovePathComplete += MovePathCompleteHandler; _baseActionController.MoveToPosition(position); }
public void MoveTo(IntVector2 position) { _baseActionController.MoveToPosition(position); }