diff --git a/assets/images/bomb.png b/assets/images/bomb.png new file mode 100644 index 0000000..6e338f4 Binary files /dev/null and b/assets/images/bomb.png differ diff --git a/main.py b/main.py index 690c907..eebe450 100644 --- a/main.py +++ b/main.py @@ -30,6 +30,7 @@ def main(): "background_colour": (30, 30, 30), "foreground_colour": (100, 100, 100), "player_selected_colour": (255, 255, 0), + "bomb_image": pygame.image.load("assets/images/bomb.png"), } } diff --git a/render/info_renderer.py b/render/info_renderer.py index e4f1f17..4b3367d 100644 --- a/render/info_renderer.py +++ b/render/info_renderer.py @@ -12,7 +12,7 @@ class InfoRenderer: self.selected_player = None self.player_info_start_y = 100 - self.match_info_start_y = 400 + self.match_info_start_y = 500 # Private methods def _render_player_info(self): @@ -23,6 +23,7 @@ class InfoRenderer: else: player_info_title = f"Player: {self.selected_player.name}\n" player_info = f"Active Weapon: {self.selected_player.current_weapon}\n" + player_info += f"Inventory: \n - {"\n - ".join(self.selected_player.inventory)}\n" player_info += f"Health: {self.selected_player.health}\n" player_info += f"Armour: {self.selected_player.armour}\n" player_info += f"Kills: {self.selected_player.kills}\n" diff --git a/render/player_renderer.py b/render/player_renderer.py index afd45e3..b58aa2b 100644 --- a/render/player_renderer.py +++ b/render/player_renderer.py @@ -13,9 +13,14 @@ class PlayerRenderer: self.styling = styling self.player_font = pygame.font.Font(None, 15) + self.bomb_image = self.styling["bomb_image"] + self.player_radius = 5 self.hovered_radius = 10 + self.bomb_radius = 10 + self.bomb_hovered_radius = 15 + self.health_bar_foreground = (0, 255, 0) self.health_bar_background = (255, 0, 0) @@ -41,6 +46,10 @@ class PlayerRenderer: ## Private Methods def _render_circle(self, player: Player, team): + if player.has_bomb: + self._render_bomb(player) + return + if player.is_hovered: radius = self.hovered_radius else: @@ -49,6 +58,16 @@ class PlayerRenderer: x, y = self.map_coord_converter.map_to_screen(player.x, player.y) pygame.draw.circle(self.screen, team.colour, (x, y), radius) + def _render_bomb(self, player: Player): + if player.is_hovered: + radius = self.bomb_hovered_radius + else: + radius = self.bomb_radius + + x, y = self.map_coord_converter.map_to_screen(player.x, player.y) + bomb_image = pygame.transform.scale(self.bomb_image, (radius*2, radius*2)) + self.screen.blit(bomb_image, (x-radius, y-radius)) + def _render_text(self, player): if player.is_selected: text = self.player_font.render(player.name, True, self.styling["player_selected_colour"])