Hey all,
I’m having an issue with Salted Earth. I’m not sure if it’s the syntex but on the 7th line i’m getting an error ‘Typeerror: Cannot read property of ‘type’ of null’ for some reason.
here’s my code
# Ogres are attacking a nearby settlement!
# Be careful, though, for the ogres have sown the ground with poison.
# Gather coins and defeat the ogres, but avoid the burls and poison!
while True:
enemy = hero.findNearestEnemy()
if enemy.type == "munchkin" or enemy.type == "thrower":
hero.attack(enemy)
item = hero.findNearestItem()
# Check the item type to make sure the hero doesn't pick up poison!
# If the item's type is "gem" or "coin":
pos = item.pos
x = pos.x
y = pos.y
if item.type == "gem" or "coin":
# Then move and pick it up:
hero.moveXY(x, y)
Try checking for the existence of items or enemies before checking type. You’re telling the code to check the type of something that may not exist, thus null.
Got it, I fixed the issue. It shows the issue was line seven but it was actually my item checking that was wrong. I don’t know why is said the issue was on another line.
// Ogres are attacking a nearby settlement!
// Be careful, though, for the ogres have sown the ground with poison.
// Gather coins and defeat the ogres, but avoid the burls and poison!
while(true) {
var enemy = hero.findNearestEnemy();
if(enemy.type == "munchkin" || enemy.type == "thrower") {
hero.attack(enemy);
}
var item = hero.findNearestItem();
// Check the item type to make sure the hero doesn't pick up poison!
// If the item's type is "gem" or "coin":
if (item.type == "gem" || item.type == "coin") {
// Then move and pick it up:
hero.moveXY(item.x item.y);
}
}
while(true) {
var enemy = hero.findNearestEnemy();
if(enemy.type == "munchkin" || enemy.type == "thrower") {
hero.attack(enemy);
}
var item = hero.findNearestItem();
// Check the item type to make sure the hero doesn't pick up poison!
// If the item's type is "gem" or "coin":
if (item.type == "gem" || item.type == "coin") {
// Then move and pick it up:
hero.moveXY(item.pos.x item.pos.y);
}
}