My peasant couldn’t build the palisade… Can you guys heeeeeelllllllllllppppp? Thanks sooooo much
# Your goal is to protect the peasant and move to the right.
# Arryn Stonewall will defend the front, and command the soldiers.
# You need to cover the rear and command the peasant.
Arryn = hero.findByType("raider")[0]
peasant = hero.findByType("peasant")[0]
def chooseHeroStrategy():
# Return either "fight" or "advance".
# Try to stay 5m behind the peasant when not fighting.
# Don't get more than 15m away from the peasant.
enemy = hero.findNearestEnemy()
if hero.distanceTo(peasant) > 10:
return "advance"
elif enemy and hero.distanceTo(enemy) < 10:
return "fight"
pass
def heroFight():
# Stop the ogres from rushing past you to get to the peasant!
# Hint: try to slow them down if you can
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
elif hero.isReady("bash"):
hero.bash(enemy)
pass
def heroAdvance():
# Stay behind the peasant
hero.moveXY(peasant.pos.x - 5, peasant.pos.y)
pass
def choosePeasantStrategy():
# Return "follow", "build-above", or "build-below"
# Hint: use isPathClear() to determine where the hallways are
if peasant.distanceTo(Arryn) > 5:
return "follow"
if hero.isPathClear({'x':peasant.pos.x, 'y':peasant.pos.y}, {'x':peasant.pos.x, 'y':peasant.pos.y + 10}):
return "build-above"
if hero.isPathClear({'x':peasant.pos.x, 'y':peasant.pos.y}, {'x':peasant.pos.x, 'y':peasant.pos.y - 10}):
return "build-below"
pass
def peasantAdvance():
# Keep the peasant behind Arryn and her soldiers.
hero.command(peasant, "move", {'x': Arryn.pos.x - 15, 'y': Arryn.pos.y})
pass
def peasantBuild(x,y):
# Command the peasant to build a palisade.
hero.command(peasant, "buildXY", "palisade", x, y)
pass
while True:
heroStrategy = chooseHeroStrategy()
if heroStrategy == "fight":
heroFight()
elif heroStrategy == "advance":
heroAdvance()
peasantStrategy = choosePeasantStrategy()
if peasantStrategy == "build-above":
peasantBuild(peasant.pos.x, peasant.pos.y + 5)
elif peasantStrategy == "build-below":
peasantBuild(peasant.pos.x, peasant.pos.y - 5)
elif peasantStrategy == "follow":
peasantAdvance()