Kelvintaph Defiler - Help!


#1

Please help on Kelvintaph Defiler! The paladin keeps on dying before drain life wears off on her.

Here is my code:

step = 0


def choiseTarget(enemies):
    hero.say(enemies)
    for enemy in enemies:
        for att in attack:
            if att[0] == enemy.pos.x and att[1] == enemy.pos.y:
                return enemy
    return None


def commandTroops():
    for index, friend in enumerate(hero.findFriends()):
        if (step == 0 and friend.pos.y > 60 and (friend.type != 'archer' or hero.now() > 3.7)):
            enemy = friend.findNearestEnemy()
            if enemy:
                hero.command(friend, "attack", enemy)
        elif step == 4:
            hero.command(friend, "move", {'x': 42, 'y': 67})
        elif friend.type == 'archer':
            CommandArcher(friend)
        elif friend.type == 'paladin':
            CommandPaladin(friend)
        else:
            CommandSoldier(friend)


def CommandPaladin(soldier):
    if step < 4:
        if (soldier.canCast("heal") and hero.now() > 3):
            hero.command(soldier, "cast", "heal", soldier)
        elif hero.now() > 3 and soldier.health < soldier.maxHealth * 0.7:
            hero.command(soldier, "shield")


def CommandSoldier(soldier):
    if step < 4:
        if soldier.pos.x < 74:
            hero.command(soldier, "move", {'x': 76, 'y': 76})
        else:
            enemy = soldier.findNearestEnemy()
            if enemy:
                hero.command(soldier, "attack", enemy)


def CommandArcher(soldier):
    if step == 1:
        if soldier.pos.y > 60:
            hero.command(soldier, "move", {'x': 22, 'y': 55})
        else:
            enemies = soldier.findEnemies()
            for enemy in enemies:
                if enemy.type != 'yeti':
                    hero.command(soldier, "attack", enemy)
    elif step == 2:
        if soldier.pos.x > 14:
            hero.command(soldier, "move", {'x': 8, 'y': 77})
        else:
            enemy = soldier.findNearestEnemy()
            if enemy:
                hero.command(soldier, "attack", enemy)
    elif step == 3:
        if soldier.pos.x < 74:
            hero.command(soldier, "move", {'x': 76, 'y': 76})
        else:
            enemy = soldier.findNearestEnemy()
            if enemy:
                hero.command(soldier, "attack", enemy)


def moveTo(position, fast=True):
    if (hero.isReady("jump") and fast):
        hero.jumpTo(position)
    else:
        hero.move(position)


index = 0
route = [[33, 12, False], [34, 9, False], [32, 6, False]]


def moveHero():
    if len(route) > index:
        moveTo({'x': route[index][0], 'y': route[index][1]}, route[index][2])
        if (hero.pos.x == route[index][0] and hero.pos.y == route[index][1]):
            return True
        else:
            return False


def attack(target):
    if target:
        if (hero.distanceTo(target) > 10):
            moveTo(target.pos)
        elif (hero.isReady("bash")):
            hero.bash(target)
        else:
            hero.attack(target)


while True:
    if (hero.now() > 6 and hero.now() < 12):
        step = 1
    elif (hero.now() > 10 and hero.now() < 17):
        step = 2
    elif (hero.now() > 15 and hero.now() < 30):
        step = 3
    elif (hero.now() > 28 and hero.now() < 600):
        step = 4
    commandTroops()
    if step < 4:
        if moveHero():
            index = index + 1
    else:
        enemy = hero.findNearest(hero.findEnemies())
        if enemy:
            attack(enemy)
        else:
            moveTo({'x': 74, 'y': 44})

Here is my gear:

<img src="/uploads/codecombat/original/2X/7/7574990a4ca45f415a2d53b868768fe05200374b.PNG" width="366"height=“500”>

Please help!


How do you do the kelvintaph defiler
#2

The necromancer drain life the paladin forever until it die. Sorry I can’t really help because I haven’t figure out the solution yet.


#3

Sorry but using the git hub code is not very good. I prefer if you try using your own code. But one hint: damage nalfar enough and he will retreat. That is how I saved all allies and got the boss star 4


#4

Try killing all the shaman and get all your soldier and archer to attack the necromancer.


#5

Or a simple act of sending *** to nalfar and he will soon escape


#6

Can you explain a little bit clearer.


#7

You see the **** is: A commandable unit and it has to die and nalfar somehow escapes


#8

Ok thank for explaining it better.:slightly_smiling_face:


#9

Are you on kelvintaph defiler?


#10

Yes :slightly_smiling_face:
(20chararcters)


#11

Sorry I took so long.


#12

Sorry that I stop helping you. Here is one tip your units can attack in mid air but not while the shaman casting fear on them.


#13

I finished it long ago


#14

Congratulation. I haven’t so can you give me some tip please because I haven’t finish it.:slightly_smiling_face:


#15

@Chaboi_3000 im not getting this… what’s the **** u are talking about…?


#16

Check here:


#17

even with that hint i can’t figure it out :rofl::joy:


#18

A commandable unit would mean a unit on team human, but if a human dies, then u dont get the bonus, so it’s not on team human…
but how else could it be commandable…?


#19

Bonus is not neccecary.


#20

so… wut’s the ****? i still can’t figure it out
lol
rip me