TimberTurncoat.py


#1

What’s wrong with my code??? My allies can’t kill at least one enemy.

while True:

coin = hero.findNearestItem()
if coin:
    hero.move(coin.pos)
if  hero.gold > hero.costOf("soldier"):
    hero.summon("soldier")

for friend in hero.findFriends():
    if friend.type == "soldier":
        distance = hero.distanceTo(friend)
        if distance < 20:
            if friend.health < friend.maxHealth:
                if hero.canCast("regen", friend):
                    hero.cast("regen", friend)
        enemy = hero.findNearestEnemy()
        if enemy and enemy.health > 0:
            hero.command(friend, "attack", enemy)
        if friend.health < friend.maxHealth*0.3:
            hero.command(friend, "move", {"x": 24, "y": 46})
        else:
            hero.command(friend, "move", {"x": 80, "y": 46})

#2

The code you’ve written is good. It’s just not structured properly. I used your exact code - I changed none of the actual writing - and just moved it around and tabbed it over properly and it successfully completed the level on the first run.

Think about the order of what you need to do. You currently have the section dealing with regen before your attack. Also, your if statement with the retreat command should be tabbed over after the attack command.

Keep messing with it and you’ll get it. It’s just a structure problem.