diff --git a/config.yaml b/config.yaml index ef651e9..8c5c3aa 100644 --- a/config.yaml +++ b/config.yaml @@ -23,9 +23,9 @@ engine: points-per-lines-completed: - 0 # 0 line - 40 # 1 line - - 80 # 2 lines - - 120 # 3 lines - - 400 # 4 lines + - 100 # 2 lines + - 300 # 3 lines + - 1200 # 4 lines color: window-bg: "#000000" @@ -33,7 +33,7 @@ color: piece-2: "#3DBBFC" piece-3: "#FFFFFF" piece-inner-border-1: "#1F37EC" - piece-border-1: "#000000" + piece-outer-border-1: "#000000" well-1: "#9BFCF0" well-border-1: "#000000" stack-1: "#747474" diff --git a/tetris/entity.py b/tetris/entity.py index 0b62382..55cc220 100644 --- a/tetris/entity.py +++ b/tetris/entity.py @@ -94,7 +94,6 @@ class Piece(Entity): self.piece_set_sound = mixer.Channel(2) self.previous_points = None self.previous_center = None - self.ghost_points = [] # TODO change name # Gravity self.gravity_time = ConfigurationManager.get("engine", "piece-gravity-time") @@ -136,14 +135,16 @@ class Piece(Entity): if game.well and self.collide(game.well) or game.stack and self.collide(game.stack): self.revert() - # handle soft drop movement + # handle soft drop movement and gravity based on level gravity_time = ConfigurationManager.get("engine", "piece-gravity-time") set_time = ConfigurationManager.get("engine", "piece-set-time") + gravity_increase = ConfigurationManager.get("engine", "piece-gravity-increase") + if Controller.key_pressed(pygame.K_DOWN): - self.gravity_time = max(1, gravity_time // 10) - self.set_time = max(1, set_time // 10) + self.gravity_time = max(10, (gravity_time - (game.get_level() * gravity_increase)) // 10) + self.set_time = max(10, set_time // 10) if not Controller.key_pressed(pygame.K_DOWN): - self.gravity_time = gravity_time + self.gravity_time = gravity_time - (game.get_level() * gravity_increase) self.set_time = set_time def draw(self, surface: pygame.Surface, well: Well, stack: "Stack") -> None: @@ -366,8 +367,8 @@ class PieceGenerator: if len(cls._bucket) == 0: cls._generate_bucket() - base_color, inner_border_color, border_color = cls._get_piece_color() - return Piece(cls._get_piece_shape(cls._bucket.pop()), position, base_color, inner_border_color, border_color) + base_color, inner_border_color, outer_border_color = cls._get_piece_color() + return Piece(cls._get_piece_shape(cls._bucket.pop()), position, base_color, inner_border_color, outer_border_color) @classmethod def _generate_bucket(cls) -> None: @@ -399,6 +400,6 @@ class PieceGenerator: base_color = ConfigurationManager.get("color", "piece-" + str(random_number)) inner_border_color = None if random_number != 3 else ConfigurationManager.get("color", "piece-inner-border-1") - border_color = ConfigurationManager.get("color", "piece-border-1") + outer_border_color = ConfigurationManager.get("color", "piece-outer-border-1") - return (base_color, inner_border_color, border_color) \ No newline at end of file + return (base_color, inner_border_color, outer_border_color) \ No newline at end of file