Esempio n. 1
0
        private void WaitForPoint(List <IOneUnitController> units)
        {
            var unit = GetNearestUnit(_baseActionController.Position, units);

            if (unit.Position.GetAdjacentPoints().Contains(_baseActionController.Position))
            {
                _baseActionController.WaitPosition(unit.Position);
            }
            else
            {
                _baseActionController.Wait();
            }
        }
Esempio n. 2
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;
        }
Esempio n. 3
0
 public void Wait(IntVector2 position) => _baseActionController.WaitPosition(position);