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

Kelvintaph Defiler Error but No Error Message

Hi! My code doesn’t seem to do anything at all. I’m getting the X underneath my hero, but the duck doesn’t say why. The duck isn’t even there at all. Can someone check and see if something is wrong?
Code:

# The ogres are trapping you with their dark rituals!
# Your hero can't do anything besides command and move without angering the warlocks.
# Beware ice, robots, traps, antigravity fields, and other dark magic.
# Somehow, you'll need to defeat Nalfar and save your paladin.
# The great treasure of Kelvintaph awaits your victory.
hero.moveXY(34, 15)
hero.moveXY(34, 7)
def commandSoldiers():
    soldiers = hero.findByType("soldiers")
    for soldier in soldiers:
        enemy = soldier.findNearestEnemy()
        hero.command(archer, "move", {'x': 75, 'y': 73})
        necro = hero.findNearest(hero.findByType("necromancer"))
        if necro:
            hero.command(soldier, "attack", necro)
        elif enemy:
            hero.command(soldier, "attack", enemy)
def commandArchers():
    archers = hero.findByType("archer")
    for archer in archers:
        hero.command(archer, "move", {'x': 75, 'y': 73})
        enemy = hero.findNearest(hero.findByType("necromancer"))
        if necro:
            hero.command(archer, "attack", necro)
        elif enemy:
            hero.command(archer, "attack", enemy)
def commandPaladins():
    paladin = hero.findFriends()
    enemy = hero.findByType("necromancer")
    if enemy and paladin:
        hero.command(paladin, "shield")
        if paladin.health <= 400:
            hero.command(paladin, "heal", paladin)
while True:
    commandSoldiers()
    commandPaladins()
    commandArchers()

i think that maybe the necro and enemy variables for necromancers are clashing?

but the different variables in different functions don’t overlap, I already forgot that and had to re-add them in each function

wait I have an error in the archers function haha

Think it’s cuz you’re defining the necro variable in a diff function. happened to me before maybe define necro before all functions as well? or define it in archer function?

ok now that i fixed that, i’m getting an error on line 31, or hero.command(paladin, "shield"). It says I need something to command? and is it a bug that the duck appears half on the screen and half off?

YOu need a target to shield upon. Ex:

hero.command(paladin,"shield",#target whatever it is)

hmmm, couldn’t I just write hero.command(paladin, "shield", paladin)?

eggsactly that is what you should do if you wanna it to shield itself

i just wrote that, but then I still get the same error?

and you shouldn’t do that paladin is find friends, cuz that includes the archers

Don’t think the archers can shield

oopsie didn’t add hero.findByType("paladin") inside

1 Like

yup, forgot to mention that too :man_facepalming:

1 Like

Aha! but, i can’t heal my paladin???

1 Like

OK, now that I have most of this sorted, my paladin is finally shielding. But, the paladin can’t kill Nalfar, right? So I need my troops to go over there, but they have fear spells and antigravity spells and fling spells being casted on them. How do i get rid of that?

The paladin isn’t supposed to. Just stall time i guess. keep healing herself as nalfar does his thing

So she stays alive while you’re doing your own thing

but I don’t think that i can heal and shield and stay alive. Even so, how do I get my troops out of the shamans’ spells?

i don’t think you’re supposed to heal and shield at the same time.