From 3ee2c5de446b4d13572173664f765405a1750f7f Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Sun, 16 Mar 2025 17:25:32 +0100 Subject: [PATCH] ADD: colours to players on teams --- main.py | 3 ++- models/match.py | 13 ++++++++----- models/renderer.py | 18 ++++++++++-------- models/team.py | 15 ++++++++++++--- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/main.py b/main.py index f170950..5018c8b 100644 --- a/main.py +++ b/main.py @@ -12,7 +12,8 @@ def main(): map_name = header_info['map_name'] players = demo_parser.parse_player_info() - team_1 = Team(is_ct=True) + team_1 = Team() + team_1.set_ct() team_2 = Team() m = Match(map_name, game_info, team_1, team_2) m.tick = 1800 diff --git a/models/match.py b/models/match.py index 3da2961..f6dc430 100644 --- a/models/match.py +++ b/models/match.py @@ -39,13 +39,13 @@ class Match: self.round = self.current_tick["team_rounds_total"].values[0] if self.round >= 8: - self.team_1.is_ct = False - self.team_2.is_ct = True + self.team_1.set_t() + self.team_2.set_ct() self.team_1.score = int(self.current_tick[self.current_tick["team_num"] == 3]["team_rounds_total"].values[0]) self.team_2.score = int(self.current_tick[self.current_tick["team_num"] == 2]["team_rounds_total"].values[0]) else: - self.team_1.is_ct = True - self.team_2.is_ct = False + self.team_1.set_ct() + self.team_2.set_t() self.team_1.score = int(self.current_tick[self.current_tick["team_num"] == 2]["team_rounds_total"].values[0]) self.team_2.score = int(self.current_tick[self.current_tick["team_num"] == 3]["team_rounds_total"].values[0]) @@ -56,4 +56,7 @@ class Match: self._update_round() def get_players(self) -> list[Player]: - return self.team_1.players + self.team_2.players \ No newline at end of file + return self.team_1.players + self.team_2.players + + def get_teams(self) -> list[Team]: + return [self.team_1, self.team_2] \ No newline at end of file diff --git a/models/renderer.py b/models/renderer.py index 5cddacc..8d1a9bb 100644 --- a/models/renderer.py +++ b/models/renderer.py @@ -38,15 +38,17 @@ class Renderer: def render_players(self): """Draws everything on screen.""" self.map_coord_controller.update_screen_size(self.screen.get_width(), self.screen.get_height()) - for player in self.match.get_players(): - if player.dead: - continue - mapped_x, mapped_y = self.map_coord_controller.map_to_screen(player.x, player.y) - pygame.draw.circle(self.screen, (255, 255, 255), (mapped_x, mapped_y), 5) - # Draw player name - text = self.small_font.render(player.name, True, (255, 255, 255)) - self.screen.blit(text, (mapped_x + 10, mapped_y)) + for team in self.match.get_teams(): + for player in team.players: + if player.dead: + continue + mapped_x, mapped_y = self.map_coord_controller.map_to_screen(player.x, player.y) + pygame.draw.circle(self.screen, team.colour, (mapped_x, mapped_y), 5) + + # Draw player name + text = self.small_font.render(player.name, True, (255, 255, 255)) + self.screen.blit(text, (mapped_x + 10, mapped_y)) pygame.display.flip() # Update display diff --git a/models/team.py b/models/team.py index 8b1c78b..315573d 100644 --- a/models/team.py +++ b/models/team.py @@ -1,13 +1,22 @@ from models.player import Player class Team: - def __init__(self, is_ct=False): + def __init__(self): self.players = [] - self.is_ct = is_ct + self.is_ct = False + self.colour = 'brown' self.score = 0 def add_player(self, player: Player): self.players.append(player) def remove_player(self, player: Player): - self.players.remove(player) \ No newline at end of file + self.players.remove(player) + + def set_ct(self): + self.is_ct = True + self.colour = 'blue' + + def set_t(self): + self.is_ct = False + self.colour = 'brown' \ No newline at end of file