X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=erdslangetjie%2Flevel.py;h=f430f5dd53a27e2def6254aaca778917dd32f7aa;hb=1f3785002aba3ffe7e905d4f7b86c0782f1ca15c;hp=fc23cc626238bb965d69eea370098cffad96293f;hpb=fc96c547809f3929f08f963435fc3f90ecc6e88c;p=erdslangetjie.git diff --git a/erdslangetjie/level.py b/erdslangetjie/level.py index fc23cc6..f430f5d 100644 --- a/erdslangetjie/level.py +++ b/erdslangetjie/level.py @@ -228,8 +228,7 @@ class Level(object): if tile == WALL or tile == ENTRY: return True if tile == GATE: - print tile, pos, self._gates[pos] - if self._gates[pos] != -1: + if self._gates[pos] > 0: return True return False @@ -237,11 +236,20 @@ class Level(object): return abs(pos1[0] - pos2[0]) + abs(pos1[1] - pos2[1]) def is_gate(self, pos): + if not self._in_limits(pos): + return False return self._data[pos[1]][pos[0]] == GATE def is_button(self, pos): + if not self._in_limits(pos): + return False return self._data[pos[1]][pos[0]] == BUTTON + def is_wall(self, pos): + if not self._in_limits(pos): + return True + return self._data[pos[1]][pos[0]] == WALL + def trigger_button(self, pos): if not self.is_button(pos): return False @@ -256,20 +264,18 @@ class Level(object): gate_pos = cand mindist = dist if gate_pos: - self._buttons[pos] == 'pressed' + self._buttons[pos] = 'pressed' self._gates[gate_pos] = 3 # Raise gate self._fix_tile(pos) self._fix_tile(gate_pos) def damage_gate(self, pos): if not self.is_gate(pos): - return False + return if self._gates[pos] == -1 or self._gates[pos] == 0: - return False + return self._gates[pos] = self._gates[pos] - 1 - self._fix_gate_tile(pos) - self._changed.append((pos, self.get_single_tile(pos))) - return True + self._fix_tile(pos) def get_changed_tiles(self): ret = self._changed[:]