[solved] Distracting Dungeon Help!

I need help, and I have been stuck on it for so long. @kinasharma01
This is my code:

peasant = hero.findNearest(hero.findFriends())
while True:
    # Command your friend to build a decoy towards x + 1:
    hero.command(peasant, "buildXY", "decoy", hero.pos.x+1, hero.pos.y)
    tDest = {"x": hero.pos.x, "y": hero.pos.y + 28};
    while hero.distanceTo(tDest) > 1:
        hero.move(tDest)
        hero.command(peasant, "move", tDest)
    # Create a new x/y dict +28 units away in the x dir:
    tDest = {"x": hero.pos.x + 28, "y": hero.pos.y};
    # Find the nearest enemy:
    enemy = hero.findNearest(hero.findEnemies())
    while enemy:
        while enemy.health > 0: 
            if enemy.type == "brawler": 
                hero.attack(enemy)
            else:
                if hero.canCast("chain-lightning", enemy): 
                    hero.cast("chain-lightning", enemy)
                else: 
                    hero.attack(enemy)
        else: 
            hero.attack(enemy)
        
        enemy = hero.findNearest(hero.findEnemies())
    while peasant.distanceTo(tDest) > 1:
        hero.move(tDest)
        hero.command(peasant, "move", tDest)

I messaged you on some pointers on how to complete it. Hope that helps out!

1 Like

Don’t attack brawlers. Your little peasant friend might get killed :frowning:
Try using the decoys to draw away the brawlers, as the level instructs you to do, or you can summon some soldiers to stall the brawlers, and kill the scouts yourself.

I attacked the brawlers and still won.

… okay then… xd

Please help me on this. here is my code.

Navigate the mountain maze with a peasant pal.

Advanced while-loop usage is required!

peasant = hero.findNearest(hero.findFriends())
while hero.pos.x<96:
# Command your friend to build a decoy towards x + 1:
hero.command(peasant, ‘buildXY’, ‘decoy’, hero.pos.x+1, hero.pos.y)
tDest = {“x”: hero.pos.x, “y”: hero.pos.y + 28};
while hero.distanceTo(tDest) > 1:
hero.move(tDest)
hero.command(peasant, “move”, tDest)
# Create a new x/y object +28 units away in the x dir:
tDest = {“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:
# Attack the enemy:
hero.attack(enemy)
# Update the variable to the next nearest enemy:
enemy = hero.findNearestEnemy()
# While friend’s distance to the new x/y object > 1:
hero.say(peasant.distanceTo(tDest))
while peasant.distanceTo(tDest)>1:
# Move the hero and peasant towards the x/y dict:
hero.command(peasant, ‘move’, tDest)
hero.wait(3)

can you please format your code using three backticks (is that what they’re called?) and then pasting your code inside so we can read it better?

1 Like

This article will help with that: [Essentials] How To Post/Format Your Code Correctly

1 Like