ADD bomb asset & ADD inventory to game info tab

This commit is contained in:
2025-05-01 13:43:05 +02:00
parent 98e44a6cf8
commit cd4bfff5e7
4 changed files with 22 additions and 1 deletions

BIN
assets/images/bomb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

View File

@@ -30,6 +30,7 @@ def main():
"background_colour": (30, 30, 30), "background_colour": (30, 30, 30),
"foreground_colour": (100, 100, 100), "foreground_colour": (100, 100, 100),
"player_selected_colour": (255, 255, 0), "player_selected_colour": (255, 255, 0),
"bomb_image": pygame.image.load("assets/images/bomb.png"),
} }
} }

View File

@@ -12,7 +12,7 @@ class InfoRenderer:
self.selected_player = None self.selected_player = None
self.player_info_start_y = 100 self.player_info_start_y = 100
self.match_info_start_y = 400 self.match_info_start_y = 500
# Private methods # Private methods
def _render_player_info(self): def _render_player_info(self):
@@ -23,6 +23,7 @@ class InfoRenderer:
else: else:
player_info_title = f"Player: {self.selected_player.name}\n" player_info_title = f"Player: {self.selected_player.name}\n"
player_info = f"Active Weapon: {self.selected_player.current_weapon}\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"Health: {self.selected_player.health}\n"
player_info += f"Armour: {self.selected_player.armour}\n" player_info += f"Armour: {self.selected_player.armour}\n"
player_info += f"Kills: {self.selected_player.kills}\n" player_info += f"Kills: {self.selected_player.kills}\n"

View File

@@ -13,9 +13,14 @@ class PlayerRenderer:
self.styling = styling self.styling = styling
self.player_font = pygame.font.Font(None, 15) self.player_font = pygame.font.Font(None, 15)
self.bomb_image = self.styling["bomb_image"]
self.player_radius = 5 self.player_radius = 5
self.hovered_radius = 10 self.hovered_radius = 10
self.bomb_radius = 10
self.bomb_hovered_radius = 15
self.health_bar_foreground = (0, 255, 0) self.health_bar_foreground = (0, 255, 0)
self.health_bar_background = (255, 0, 0) self.health_bar_background = (255, 0, 0)
@@ -41,6 +46,10 @@ class PlayerRenderer:
## Private Methods ## Private Methods
def _render_circle(self, player: Player, team): def _render_circle(self, player: Player, team):
if player.has_bomb:
self._render_bomb(player)
return
if player.is_hovered: if player.is_hovered:
radius = self.hovered_radius radius = self.hovered_radius
else: else:
@@ -49,6 +58,16 @@ class PlayerRenderer:
x, y = self.map_coord_converter.map_to_screen(player.x, player.y) x, y = self.map_coord_converter.map_to_screen(player.x, player.y)
pygame.draw.circle(self.screen, team.colour, (x, y), radius) 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): def _render_text(self, player):
if player.is_selected: if player.is_selected:
text = self.player_font.render(player.name, True, self.styling["player_selected_colour"]) text = self.player_font.render(player.name, True, self.styling["player_selected_colour"])