Kelvintaph Defiler Feedback

You must be faster …

me either :worried::confused:

please dont necro posts

Here is the question that how do your hero escape from the first arcade .

I think you should chose an another character …

no i used ritic and pender but it did not work

I am super annoyed with that level.

It is so hard.
I can’t do anything.
I get killed in the first second

If you don’t use move XY (use move instead), then you won’t get killed. (read the hints and stuff)

The level is eh not really hard.

Pretty bashy step by step commanding and checking coordinates and stuff (and exploiting)

2 Likes

this is my code can somebody help me pls!

step = 0

def findEnemy(name, friend):
    enemies = friend.findEnemies()
    id = name
    i = 0
    for i in range(len(enemies)):
        enemy = enemies[i]
        if id == enemy.id:
            return i
        else:
            i += 1

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:
        target = findEnemy("Drun", soldier)
        if "Drun".health > 0:
            hero.command(soldier, "attack", "Drun")
        elif soldier.pos.x < 74:
            moveStep = 0
            if moveStep == 0:
                hero.command(soldier, "move", {"x": 6, "y": 74})
                moveStep += 1
                target = findEnemy("Drun", soldier)
                if target:
                    while target.health > 0:
                        hero.command(soldier, "attack", target)
            if moveStep == 1:
                hero.command(soldier, "move", {"x": 22, "y": 67})
                moveStep += 1
                target = findEnemy("Drun", soldier)
                if target:
                    while target.health > 0:
                        hero.command(soldier, "attack", target)
            if moveStep == 2:
                hero.command(soldier, "move", {"x": 39, "y": 62})
                moveStep += 1
                target = findEnemy("Drun", soldier)
                if target:
                    while target.health > 0:
                        hero.command(soldier, "attack", target)
        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})

I have been stuck on kelvintaph difiler for 1 year!
It is so hard for me

That’s the GitHub code, try using your own code please.

I tried but it wouldn’t work

Did you check out the exploits? (The attack while in air exploit)

Yeah you need that to win.

Everything is really technical in this level. nothing fancy tbh. I don’t like this level. very annoying.

My archers never managed to be able to attack midair, as it was constantly on ‘fear’ mode.

They only get fear after they’re stop being flung around. While they are getting flung around, they can attack.