How do you do the kelvintaph defiler


#1

Can you guys help me with kelvintaph defiler


#2

Please post your code so we can help. Also provide a detailed explanation of the issue.


#3

ok thanks for telling me


#4

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


#5

and can you help with the bonus because i am close to the next achievment


#6

Here’s your formatted code:


same code :rofl:


If you put forth an effort into making your own solution, I’ll offer you help.


#7

what do you mean i don’t get it


#8

Do you know what the code you posted does? Can you understand most of it?

If you don’t, I suggest you to erase the code you have now. Write your own program from scratch. There’s a lot that goes on in this level, and you’ll have an easier time coding your own program instead of looking at someone else’s program.


#9

Its @RobAnybody’s code.


#10

lol :rofl: . thats all i can say.


#11

Yep, I’ve seen the same code in about 100 different places. You can look up codecombat + level name + solution and there is a github page by vadim-job-hg with code solution. HaHaHa…


#12

someone should copyright this… XD :rofl::joy:


#13

I know right…
(Twenty charecters limit can be annoying, so I post this with short posts,
which works.)


#14

i know it is really annoying


#15

we should ask leaders to remove 20 character limit and instead just warn all the members that should they spam short posts, they would lose their privileges or something.


#16

LOL tbh i just stole @RobAnybody’s code and modified it greatly and finished the level.
Thank you, RobAnybody, for your code, since i don’t want to spend hours typing out the base portion of it.


#17

Great job, I am still stuck on it. Can you give me any tips?


#18

This is the most publicized tip of the world, but in case you didn’t know, Your units can attack mid-air if not in fear.
Second hint deleted since @Chaboi_3000 says it gives away too much.


#19

I didn’t say it was too long. I just said it gave away too much.


#20

done! :slight_smile: I’ll give more hints, but that’s the best i can do now.