Помогите, пожалуйста. Не могу понять, почему не использует сhain-lighting. И после того, как герой телепортируется для регенерации, не могу вернуть его на поле боя.
def shouldRun():
if hero.health<hero.maxHealth/3:
return True
else:
return False
def attackEnemy():
enemys=hero.findEnemies()
enemy=hero.findNearestEnemy()
if enemy:
distance = hero.distanceTo(enemy)
if distance < 30:
indexEnemy=0
besideEnemy=0
while indexEnemy<len(enemys):
if hero.distanceTo(enemys[indexEnemy])<20:
besideEnemy+=1
indexEnemy+=1
enemy=hero.findNearest(enemys)
if hero.canCast("drain-life", enemys) and besideEnemy>3:
hero.cast("drain-life", enemys)
#if hero.canCast("lighting-bolt", enemy):
# hero.cast("lighting-bolt", enemy)
if besideEnemy>5 and hero.canCast("chain-lighting", enemys):
hero.cast("chain-lighting", enemys)
hero.attack(enemy)
while True:
if shouldRun():
hero.cast("regen", hero)
hero.moveXY(32, 31)
else:
attackEnemy()
Hello and welcome to codecombat discourse! This is a cozy forum where you can share ideas, share fan art, get assistance for code, etc! Before you proceed, we hope that you review this topic, which shows all essentials of this board! Thanks!
Ваш герой телепортируется, только если его здоровье равно единице. Это означает, что вы умираете, поэтому вам понадобится лучший код.
while True:
enemys=hero.findEnemies()
enemy=hero.findNearestEnemy()
item = hero.findNearestItem()
if item=="shell":
hero.moveXY(hero.pos.x, hero.pos.y-5)
if enemy:
distance = hero.distanceTo(enemy)
if hero.distanceTo(enemy) < 30:
indexEnemy=0
besideEnemy=0
while indexEnemy<len(enemys):
if hero.distanceTo(enemys[indexEnemy])<30:
besideEnemy+=1
indexEnemy+=1
if besideEnemy>5 and enemy.type=="scout" and hero.canCast("chain-lightning", enemy):
hero.cast("chain-lightning", enemy)
if besideEnemy>5 and enemy.type=="munchkin" and hero.isReady("lightning-bolt", enemy):
hero.cast("lightning-bolt", enemy)
hero.attack(enemy)
if hero.canCast("regen", hero) and hero.distanceTo(enemy)>15:
hero.cast("regen", hero)
Переписала код, но опять застряла. Не могу сообразить, как увернуться от снаряда катапульты. Пробовала через тип врага и через тип предмета. Тип прописывала СНАРЯД, ОГНЕННЫЙ ШАР и КАТАПУЛЬТА. Может, кто-то сможет подсказать, как правильно обозвать)?
Отдайте приоритет уничтожению катапульты, поставив код первым
if enemy.type=="catapult" and hero.canCast("lightning-bolt", enemy):
hero.cast("lightning-bolt", enemy)
Затем замените все следующие if на elif и в качестве последнего условия поставьте else для простой атаки. Я закончил уровень в своем python аккаунт, взяв за основу ваш код.