Please help with distracting dungeon

# Navigate the mountain maze with a peasant pal.
# Advanced while-loop usage is required!


def moveBothTo(point):
    while hero.distanceTo(point) > 1:
        hero.move(point)
        hero.command(peasant, "move", point)

peasant = hero.findNearest(hero.findFriends())
while True:
    # Command your friend to build a decoy towards x + 1:
    hero.command(peasant, "buildXY", "decoy", peasant.pos.x + 2, peasant.pos.y)
    nextPoint = {"x": hero.pos.x, "y": hero.pos.y + 28};
    moveBothTo(nextPoint)
    # Create a new x/y dict +28 units away in the x dir:
    nextPoint = {"x": hero.pos.x + 28, "y": hero.pos.y}
    # Find the nearest enemy:
    enemy = hero.findNearestEnemy()
    # While there is an enemy:
    while enemy:
        # While the enemy's health is > 0:
        while enemy.health > 0:
            if enemy.type != "yeti":
                # Attack the enemy:
                if hero.isReady("bash"):
                    hero.bash(enemy)
                else:
                    hero.attack(enemy)
        # Update the variable to the next nearest enemy:
        enemy = hero.findNearestEnemy()
    moveBothTo(nextPoint)

I then run out of time, and it says that my code is really slow or an infinite loop.

Welcome back @BlackNinja!
Can you send me the link to this level?
Lydia

Hmm, this is odd. Even if you complete the code exactly as it says it doesn’t work. Even the solution on the level editor doesn’t work… @Chaboi_3000 any idea why this is happening.
@BlackNinja in the meantime you might have to come up with a more creative solution if the one they set out isn’t working. The current problem with your one is it has “while enemy.health > 0:” but inside you have “if enemy.type != “yeti”:”. What if the enemy is a yeti? Your while loop won’t end. You could use break (exits out of one while or for loop, so you’d have to do it twice to get out of both.
I can’t remember what I normally do in this level, but at the moment I just chase the brawler.
Danny

I finally solved it by switching all the 'while’s to if statements. Then, at the end I did moveXY to the treasure at the top of the level.