KELVINTAPH defiler strategy problem


#1

Hello, I don’t know how to beat this level. Can you give me a strategy?


#2

What area is it in I can’t find it anywhere(Dungeon, Forest, E.C.T.)


#3

Take a screen shot and I’ll help.


#4

It’s in the glacier, the level with the BOSS STAR IV


#5

Its helpful to know what you tried and what you didnt try. The hints help with forming a strategy. You need to find the prime numbers. Thats the strategy. Please respond with what you have and havent done.

Heres a site to try. http://www.puzzles9.com/how-to-find-prime-numbers-how-to-check-if-a-number-is-prime/

Im going to say for most of the levels on this map I had to use google a lot because the hints wernt enough. Use google as much as you need to find a strategy.

Its kind of hard to give a strategy for this map because all your doing is looking for the prime. Then figuring out how to keep on moving threw the map as you move on.

If you want to know what I did. I found all the prime mines saved their position then proceeded to walk to each mine. You might have to tweak yours and your friends walking because they might be a little low or high and hit the mines. I made sure the were right in line with the mine before anyone went forward.


#6

no I don’t speak from this level. I speak from the KELVINTAPH DEFILER, where you get the BOSS STAR IV. It’s on the other side of the map


#7

Well details can be helpful of what you tried, health, gear, coding, E.C.T.


#8

Sorry about that. I got distracted by the image but the title clearly states the level you were reffering to. :sweat_smile:

Yes defiler was a difficult level until I found out my friendly units can attack while being thrown in the air before the shamans casted fear on them. A huge game changer for me was when I found out I can kill a couple shamans while they fly past them. The strategy is all about timing and killing a few shamans using the freed units to kill the other shamans then going to go help your paladin. Once nalfar runs away hide your units so the yeti doesnt kill them then I used my hero to kill everything else.

Also dont kill the first shaman because you need him to fling your units. Its ok to kill him once all the units are flung except for the last guy in the line. You need him to stay back so he can kill the shaman once all your unit are flung.


#9

ok thank you I will try that


#10

I tried to do an attack with Brian, and he kill the first shaman, but then he can’t do anything


#11

Hum , I see that this strategy is wrong, that kill my minion
So I tried to do something else, but it not so good

I tried that my minions kills the shamans, but they can’t. Only Brian can kill the first shaman and I saw that he can’t do anything else.
Can you help me?


#12

Youhou!! I beat this level . It was very easy when I have seen the strategy!!


#13

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})

Could I get some help with my code? It does not seem to be working for me, and I have tried many different ways of coding, and this got the best result


#14

On your picture, I see that you paladin where be killed. All your allies (or just 4) must attack the wizard and than the wizard will don’t kill the wizard. If you do a good shield strategy, you can survive 50 secondes. So your paladins can wait 40 seconds, but the other minions must come and attack


#15

I do not know how to free my other soldiers and have them help the paladin. Could you give me a hint as to what I am doing wrong with my coding?


#16

To save your paladin you must attack the necromancer before he kills your paladin. You need 4 minions.
Than, the necromancer will stop his attack and your paladin will live.


#17

I don’t get how to beat this level. How do I kill the warlocks and the other ogres?


#18

Just stating things like “I need help with my code!” or “I can’t beat this level!” does not tell us anything. Can you please post your code so we can root out any code problems or bugs? :slightly_smiling_face:


#19

My code is:

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(33, 23)

paladin = getPaladin()
enemy = paladin.findNearest([e for e in hero.findEnemies() if e.id is “ULD’MAK”])
if enemy:
friends = self.findFriends()
for friend in friends:
hero.command(friend, “attack”, enemy)

while True:
commandPaladin(getPaladin())

def commandPaladin(paladin):
# Heal the paladin with the lowest health using lowestHealthPaladin()
# You can use paladin.canCast(“heal”) and command(paladin, “cast”, “heal”, target)
# Paladins can also shield: command(paladin, “shield”)
# And don’t forget, they can attack, too!
# self.command(paladin, “shield”)
if paladin:
if paladin.canCast(“heal”):
self.command(paladin, “cast”, “heal”, paladin)
else:
self.command(paladin, “shield”)

def getPaladin():
paladin = None
friends = self.findFriends()
for friend in friends:
if friend.type == “paladin”:
paladin = friend
continue

return paladin

I can get my paladin to shield and heal, but I don’t get why my troops are not attacking the ogres.


#20

Please format your code according to the FAQ by clicking the </> button and pasting your code there.