diff --git a/tetri5/entity.py b/tetri5/entity.py index f408ecf..f54d084 100644 --- a/tetri5/entity.py +++ b/tetri5/entity.py @@ -206,6 +206,24 @@ class Piece(Entity): else: # successful kick to the right return True + + # trying kick from top + self.move((0, self._tile_size)) + self._rotate(True) + if well and self.collide(well) or stack and self.collide(stack): + self.revert() + else: + # successful kick from top + return True + + # trying kick 2 tiles from top + self.move((0, self._tile_size * 2)) + self._rotate(True) + if well and self.collide(well) or stack and self.collide(stack): + self.revert() + else: + # successful kick 2 tiles from top + return True else: return True diff --git a/tetri5/scene.py b/tetri5/scene.py index 7e61da5..b139bc3 100644 --- a/tetri5/scene.py +++ b/tetri5/scene.py @@ -157,7 +157,7 @@ class SinglePlayerScene(Scene): SoundManager.play_level_up_sfx() def _get_level(self) -> int: - return 0 if not self._stack else self._stack.total_lines // self._lines_per_level + return 0 if self._stack is None else self._stack.total_lines // self._lines_per_level def _clear_current_piece(self) -> None: self._current_piece = None