Play Home Contribute Github Join Us! Discourse Staff Members Github Contribution Guides Team

Mountain Mercenaries Python

while True:
    # Move to the nearest coin.
    # Use move instead of moveXY so you can command constantly.
    coin = hero.findNearestItem()
    hero.move(coin.pos)
    
    # If you have funds for a soldier, summon one.
    if hero.gold > hero.costOf("soldier"):
        hero.summon("soldier")
        
    enemy = hero.findNearest(hero.findEnemies())
    if enemy:
        soldiers = hero.findFriends()
        soldierIndex = 0
        soldier = soldiers[soldierIndex]
        # Loop over all your soldiers and order them to attack.
        if soldierIndex < len(soldiers):
            # Use the 'attack' command to make your soldiers attack.
            #hero.command(soldier, "attack", enemy)
            hero.command(soldier, "attack", enemy)
            soldierIndex += 1

I know I’m doing something wrong, but I can’t figure out what. My hero moves around fine, grabs coins, and he summons soldiers without a problem. The problem is that the soldiers won’t attack and I can’t figure out what I’m doing wrong.

On line 17, you should put while instead of if.

Thanks.
That didn’t actually solve the issue (I’ve restarted the code a few times, so I messed up on that), BUT it did solve it when I also moved the soldier = soldiers[soldierIndex] into the loop. So thank you

1 Like

Glad I could help! :wink:

1 Like