diff --git a/src/door.py b/src/door.py index 63f4f44..6c055e5 100644 --- a/src/door.py +++ b/src/door.py @@ -1,8 +1,6 @@ import pygame from src.settings import ( - DOOR_WIDTH, - DOOR_HEIGHT, DOOR_BORDER_WIDTH, COLOR_DOOR_BEIGE, COLOR_DOOR_BORDER @@ -11,10 +9,12 @@ from src.settings import ( # using class to be able to reuse it # as we will have multiple rooms to go in class Door: - def __init__(self, x, y, hp_value): + def __init__(self, x, y, width, height, hp_value): # for each door we can set our own x/y position self.x = x self.y = y + self.width = width + self.height = height self.max_hp = hp_value self.current_hp = hp_value @@ -25,10 +25,14 @@ class Door: def draw(self, screen): # door - pygame.draw.rect(screen, self.door_color, (self.x, self.y, DOOR_WIDTH, DOOR_HEIGHT)) + pygame.draw.rect(screen, self.door_color, self.rect) # doorframe - pygame.draw.rect(screen, self.door_border_color, (self.x, self.y, DOOR_WIDTH, DOOR_HEIGHT), DOOR_BORDER_WIDTH) + pygame.draw.rect(screen, self.door_border_color, self.rect, DOOR_BORDER_WIDTH) + + @property + def rect(self): + return pygame.Rect(self.x, self.y, self.width, self.height) # when attacked and gets dmg reduces the health (if closed), door "breaks" when health = 0 def take_damage(self, amount): diff --git a/src/game.py b/src/game.py index 1b09a8b..bb04eb9 100644 --- a/src/game.py +++ b/src/game.py @@ -25,9 +25,7 @@ from src.settings import ( BEER_BOTTLE_ECTS_VALUE, COFFEE_HEAL_VALUE, DEMO_ACTOR_HEIGHT, - DOOR_HEIGHT, DOOR_HP, - DOOR_WIDTH, FPS, PLAYER_SPEED, ) @@ -338,15 +336,17 @@ class Game: door_tiles.append(tile_rect) if not door_tiles: - return Door(room_rect.centerx - DOOR_WIDTH // 2, room_rect.bottom, DOOR_HP) + return Door(room_rect.centerx - tile_size, room_rect.bottom, tile_size * 2, 10, DOOR_HP) door_area = door_tiles[0].copy() for tile_rect in door_tiles[1:]: door_area.union_ip(tile_rect) return Door( - door_area.centerx - DOOR_WIDTH // 2, - door_area.centery - DOOR_HEIGHT // 2, + door_area.x, + door_area.y, + door_area.width, + door_area.height, DOOR_HP, ) @@ -363,7 +363,7 @@ class Game: blockers = self.get_monster_spawn_blockers() if self.active_door is not None: - blockers.append(pygame.Rect(self.active_door.x, self.active_door.y, DOOR_WIDTH, DOOR_HEIGHT)) + blockers.append(self.active_door.rect) for monster in self.monsters.monsters: blockers.append(monster.rect) blockers.extend(item.rect for item in self.item_manager.items)