# Kelvintaph Burgler HELP

HELP! I’ve been stuck for a long time. I noticed the my friends are acting strangely. the paladin only goes to the “x”, the soldiers dont attack, and the archers immediately die when they reach the chieftain.

``````

hero.cast("invisibility", hero)
def getPos(obj):
return obj.pos.x, obj.pos.y

def toPos(x, y):
return {'x': x, 'y': y}

def rushTo(xy):
hero.jumpTo(xy)
hero.move(xy)

def exclude(units, exceps):
return [u for u in units if u.type not in exceps]

def farthest(enemies):
farthestD = 0
for enemy in enemies:
d = hero.distanceTo(enemy)
if d > farthestD and enemy.health > 0:
farthestD = d
farthest = enemy
return farthest

def nearby(enemies, dis):
return sum([hero.distanceTo(e) < dis for e in enemies])

def selfDying(self):
if self.health < self.maxHealth / 2:
hero.command(self, "move", {'x': self.pos.x - 1, 'y': self.pos.y})

x, y = getPos(hero)
orbs = hero.findEnemyMissiles()
if len(orbs):
orb = hero.findNearest(orbs)
if hero.distanceTo(orb) < 3:
if y > 14:
hero.moveXY(x, y - 7)
else:
hero.moveXY(x, y + 7)

def lowHP():
friends = hero.findFriends()
lowest = 9999
dying = None
if len(friends):
for friend in friends:
hp = friend.health
if hp < friend.maxHealth / 3 and hp < lowest and hp > 0:
lowest = hp
dying = friend
return dying

def soldierAtk(soldier):
enemies = hero.findByType("ogre")
if not len(enemies):
enemy = soldier.findNearestEnemy()
else:
enemy = enemies[0]
if enemy:
hero.command(soldier, "attack", enemy)
else:
hero.command(soldier, "move", soldier.pos)

def archerAtk(archer):
enemies = hero.findByType("ogre")
if not len(enemies):
enemy = archer.findNearestEnemy()
else:
enemy = enemies[0]
if enemy and archer.pos.x > 53 and archer.pos.y < 40:
hero.command(archer, "attack", enemy)
elif hero.time > 6:
hero.command(archer, "move", dest)

def riderAtk(rider):
enemies = hero.findByType("robot-walker")
if len(enemies):
hero.command(rider, "move", {'x': enemies[0].pos.x / 2 + enemies[1].pos.x / 2,'y': enemies[0].pos.y / 2 + enemies[1].pos.y / 2})

def palaAtk(pala):
selfDying(pala)
dying = lowHP()
enemies = hero.findByType("witch")
if not len(enemies):
enemy = pala.findNearestEnemy()
else:
enemy = enemies[0]
if dying and pala.canCast('heal'):
hero.command(pala, "cast", 'heal', dying)
else:
hero.command(pala, "move", dest)
if pala.canCast('heal') and hero.health < 2 * hero.maxHealth / 3:
hero.command(pala, "cast", 'heal', hero)
if pala.pos == dest:
hero.command(pala, "shield")
hero.command(pala, "attack", enemy)

def summon(soldier):
while hero.gold >= hero.costOf(soldier):
hero.summon(soldier)

def command():
for unit in hero.findFriends():
t = unit.type
if t == 'griffin-rider':
riderAtk(unit)
elif t == 'soldier':
soldierAtk(unit)
palaAtk(unit)
elif t == 'archer':
archerAtk(unit)

def atk():
if hero.gold > hero.costOf('griffin-rider'):
hero.summon('griffin-rider')
command()

enemies = hero.findByType("robot-walker")
if len(enemies):
pass
else:
enemy = hero.findNearest([e for e in hero.findEnemies() if e.type not in ['ice-yak', 'cow']])
if enemy:
command()
if hero.canCast("chain-lightning", enemy) and hero.time > 7:
hero.cast("chain-lightning", enemy)
elif not len(enemies):
hero.move({'x': 78, 'y': 14})
return True

def run():
while True:
friends = hero.findFriends()
for soldier in friends:
soldierAtk(soldier)
atk()

run()

``````
1 Like

Sorry, but I have not played that level yet.

All you did was define functions and didnt even use them.

hello, what do you need to do? Could you send me the link of the level to check if I did it please

maybe i could give you ideas

1 Like

Welcome to this forum sry I have not played this level

there is an ice yak lure the chieftain into the ice yak because the yak has 900 health and OP damige