diff --git a/path.go b/path.go index d3268f7..e13894b 100644 --- a/path.go +++ b/path.go @@ -39,7 +39,7 @@ func (pp *playerPath) Neighbors(pos position) []position { if cld, ok := pp.game.Clouds[npos]; ok && cld == CloudFire && !(pp.game.WrongDoor[npos] || pp.game.WrongFoliage[npos]) { return false } - return npos.valid() && ((d.Cell(npos).T == FreeCell && !pp.game.WrongWall[pos] || d.Cell(npos).T == WallCell && pp.game.WrongWall[pos]) || pp.game.Player.HasStatus(StatusDig)) && + return npos.valid() && ((d.Cell(npos).T == FreeCell && !pp.game.WrongWall[npos] || d.Cell(npos).T == WallCell && pp.game.WrongWall[npos]) || pp.game.Player.HasStatus(StatusDig)) && d.Cell(npos).Explored } if pp.game.Player.HasStatus(StatusConfusion) { @@ -116,7 +116,7 @@ func (ap *autoexplorePath) Neighbors(pos position) []position { // XXX little info leak return false } - return npos.valid() && (d.Cell(npos).T == FreeCell && !ap.game.WrongWall[pos] || d.Cell(npos).T == WallCell && ap.game.WrongWall[pos]) && + return npos.valid() && (d.Cell(npos).T == FreeCell && !ap.game.WrongWall[npos] || d.Cell(npos).T == WallCell && ap.game.WrongWall[npos]) && !ap.game.ExclusionsMap[npos] } if ap.game.Player.HasStatus(StatusConfusion) {