Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        private void NoWayToAttackPointHandler(IntVector2 position)
        {
            IntVector2 freePosition = GetFirstFreePositionInUnitRange(GetAttackTargetPosition());

            if (_baseActionController.Destination.Equals(freePosition))
            {
                freePosition = GetFirstFreePositionInUnitRange(GetAttackTargetPosition(), 2);
                _baseActionController.Wait();
            }

            _baseActionController.MoveToPosition(freePosition);
        }
Exemplo n.º 4
0
 private void BaseMoveToPosition(IntVector2 position)
 {
     _baseActionController.MovePathComplete += MovePathCompleteHandler;
     _baseActionController.MoveToPosition(position);
 }
Exemplo n.º 5
0
 public void MoveTo(IntVector2 position)
 {
     _baseActionController.MoveToPosition(position);
 }