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(); } }
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 Wait(IntVector2 position) => _baseActionController.WaitPosition(position);