OASIS distance problems

why can the self.distanceTo(enemy) not work in this level !?

it works for me… post some code.

loop:
if self.distanceTo(self.findEnemies)<10:
pass

else:
    pass

Thats because self.findEnemies returns an array of enemies. You need to get a single enemy and pass it into distanceTo

loop:
    if self.distanceTo(self.findNearest(self.findEnemies())) < 10:
        pass
    else:
        pass

should work. but i dont know python so just a guess

I keep getting a really stupid error that says find distance to target unit
(using python)

not stupid likely there’s no enemy around at the time. try breaking it apart and using an if enemy

loop:
    enemy = self.findNearest(self.findEnemies())
    if enemy:
    	if self.distanceTo(enemy) < 10:
       		pass
    	else:
        	pass

This is the lesson that was supposedly learned in Patrol Buster. In general, if you are struggling with something in a level, go back and look at earlier levels for keys to the code.

I think I had that issue in one of the desert levels. It just kept complaining about distance like crazy on specific line.

1 Like

that is my problem to

Having the same issue ever since I unlocked the desert world.

loop:
    nearest_yaks = self.findNearest(self.findEnemies())
    for yak in nearest_yaks:
        if self.distanceTo(yak) < 10:  # Error: Find the distance to a target unit.
            x = self.pos.x + 10
            y = self.pos.y
            self.moveXY(x, y)

While trying to debug, I printed yak with self.say(yak) and it outputs the string “distance”. So either yak is a string in my case or it’s an object (like I expect it to be) and has a method like __str__ overridden to return “distance”, but that doesn’t make much sense.

It’s because you are passing findEnemies through findNearest findNearest returns only the nearest single enemy. Your code looks like it’s expecting the results from findEnemies which returns all the enemies.

You’re very right! Another pair of eyes definitely helps when you have tunnel vision, thanks.