X-Git-Url: https://git.ctpug.org.za/?p=erdslangetjie.git;a=blobdiff_plain;f=erdslangetjie%2Flevel.py;h=092ef7bb874840420d44854a438ea8725ae76676;hp=fc23cc626238bb965d69eea370098cffad96293f;hb=2e932873c18650931184e250da07f522af920ac9;hpb=fc96c547809f3929f08f963435fc3f90ecc6e88c diff --git a/erdslangetjie/level.py b/erdslangetjie/level.py index fc23cc6..092ef7b 100644 --- a/erdslangetjie/level.py +++ b/erdslangetjie/level.py @@ -229,7 +229,7 @@ class Level(object): 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 +237,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 +265,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[:]