From 98e44a6cf87c7b5e01fbb375299ab63f4d017b25 Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Thu, 1 May 2025 13:14:46 +0200 Subject: [PATCH] REFACTOR assets --- assets/{ => images}/arrow.png | Bin assets/{ => images}/logo.png | Bin assets/{ => images}/pause-button.png | Bin assets/{ => images}/play-button.png | Bin assets/{ => images}/setting.png | Bin {maps => assets/maps/config}/cs_office.json | 2 +- assets/maps/config/de_ancient.json | 8 ++++ {maps => assets/maps/config}/de_anubis.json | 2 +- {maps => assets/maps/config}/de_dust2.json | 2 +- {maps => assets/maps/config}/de_inferno.json | 2 +- {maps => assets/maps/config}/de_mirage.json | 2 +- assets/maps/config/de_overpass.json | 8 ++++ {maps => assets/maps/overview}/cs_office.png | Bin {maps => assets/maps/overview}/de_ancient.png | Bin {maps => assets/maps/overview}/de_anubis.png | Bin {maps => assets/maps/overview}/de_dust2.png | Bin {maps => assets/maps/overview}/de_inferno.png | Bin {maps => assets/maps/overview}/de_mirage.png | Bin .../maps/overview}/de_overpass.png | Bin maps/de_ancient.json | 8 ---- maps/de_overpass.json | 8 ---- models/match.py | 36 +++++++++++------- models/player.py | 5 +++ render/gui_renderer.py | 4 +- render/settings_menu_renderer.py | 2 +- states/game.py | 4 +- states/start_menu.py | 4 +- 27 files changed, 55 insertions(+), 42 deletions(-) rename assets/{ => images}/arrow.png (100%) rename assets/{ => images}/logo.png (100%) rename assets/{ => images}/pause-button.png (100%) rename assets/{ => images}/play-button.png (100%) rename assets/{ => images}/setting.png (100%) rename {maps => assets/maps/config}/cs_office.json (54%) create mode 100644 assets/maps/config/de_ancient.json rename {maps => assets/maps/config}/de_anubis.json (55%) rename {maps => assets/maps/config}/de_dust2.json (58%) rename {maps => assets/maps/config}/de_inferno.json (57%) rename {maps => assets/maps/config}/de_mirage.json (88%) create mode 100644 assets/maps/config/de_overpass.json rename {maps => assets/maps/overview}/cs_office.png (100%) rename {maps => assets/maps/overview}/de_ancient.png (100%) rename {maps => assets/maps/overview}/de_anubis.png (100%) rename {maps => assets/maps/overview}/de_dust2.png (100%) rename {maps => assets/maps/overview}/de_inferno.png (100%) rename {maps => assets/maps/overview}/de_mirage.png (100%) rename {maps => assets/maps/overview}/de_overpass.png (100%) delete mode 100644 maps/de_ancient.json delete mode 100644 maps/de_overpass.json diff --git a/assets/arrow.png b/assets/images/arrow.png similarity index 100% rename from assets/arrow.png rename to assets/images/arrow.png diff --git a/assets/logo.png b/assets/images/logo.png similarity index 100% rename from assets/logo.png rename to assets/images/logo.png diff --git a/assets/pause-button.png b/assets/images/pause-button.png similarity index 100% rename from assets/pause-button.png rename to assets/images/pause-button.png diff --git a/assets/play-button.png b/assets/images/play-button.png similarity index 100% rename from assets/play-button.png rename to assets/images/play-button.png diff --git a/assets/setting.png b/assets/images/setting.png similarity index 100% rename from assets/setting.png rename to assets/images/setting.png diff --git a/maps/cs_office.json b/assets/maps/config/cs_office.json similarity index 54% rename from maps/cs_office.json rename to assets/maps/config/cs_office.json index 889ccd8..8469587 100644 --- a/maps/cs_office.json +++ b/assets/maps/config/cs_office.json @@ -1,6 +1,6 @@ { - "material": "maps/cs_office.png", + "material": "assets/maps/overview/cs_office.png", "pos_x": -1838, "pos_y": 1858, "scale": 4.1, diff --git a/assets/maps/config/de_ancient.json b/assets/maps/config/de_ancient.json new file mode 100644 index 0000000..92620e9 --- /dev/null +++ b/assets/maps/config/de_ancient.json @@ -0,0 +1,8 @@ + +{ + "material": "assets/maps/overview/de_ancient.png", + "pos_x": -2953, + "pos_y": 2164, + "scale": 5 +} + diff --git a/maps/de_anubis.json b/assets/maps/config/de_anubis.json similarity index 55% rename from maps/de_anubis.json rename to assets/maps/config/de_anubis.json index 494c08f..80f71a0 100644 --- a/maps/de_anubis.json +++ b/assets/maps/config/de_anubis.json @@ -1,5 +1,5 @@ { - "material": "maps/de_anubis.png", + "material": "assets/maps/overview/de_anubis.png", "pos_x": -2796.000000, "pos_y": 3328.000000, "scale": 5.220000 diff --git a/maps/de_dust2.json b/assets/maps/config/de_dust2.json similarity index 58% rename from maps/de_dust2.json rename to assets/maps/config/de_dust2.json index 4e16746..f9db39e 100644 --- a/maps/de_dust2.json +++ b/assets/maps/config/de_dust2.json @@ -1,6 +1,6 @@ { - "material": "maps/de_dust2.png" , + "material": "assets/maps/overview/de_dust2.png" , "pos_x": -2476 , "pos_y": 3239, "scale": 4.4 , diff --git a/maps/de_inferno.json b/assets/maps/config/de_inferno.json similarity index 57% rename from maps/de_inferno.json rename to assets/maps/config/de_inferno.json index e3a66a0..def0553 100644 --- a/maps/de_inferno.json +++ b/assets/maps/config/de_inferno.json @@ -1,6 +1,6 @@ { - "material": "maps/de_inferno.png", + "material": "assets/maps/overview/de_inferno.png", "pos_x": -2087 , "pos_y" : 3870, "scale": 4.9, diff --git a/maps/de_mirage.json b/assets/maps/config/de_mirage.json similarity index 88% rename from maps/de_mirage.json rename to assets/maps/config/de_mirage.json index 20e6914..34dd43a 100644 --- a/maps/de_mirage.json +++ b/assets/maps/config/de_mirage.json @@ -1,5 +1,5 @@ { - "material": "maps/de_mirage.png", + "material": "assets/maps/overview/de_mirage.png", "pos_x": -3230, "pos_y": 1713, "scale": 5.00, diff --git a/assets/maps/config/de_overpass.json b/assets/maps/config/de_overpass.json new file mode 100644 index 0000000..6a1245d --- /dev/null +++ b/assets/maps/config/de_overpass.json @@ -0,0 +1,8 @@ + +{ + "material": "assets/maps/overview/de_overpass.png", + "pos_x": -4831, + "pos_y": 1781, + "scale": 5.2 + +} \ No newline at end of file diff --git a/maps/cs_office.png b/assets/maps/overview/cs_office.png similarity index 100% rename from maps/cs_office.png rename to assets/maps/overview/cs_office.png diff --git a/maps/de_ancient.png b/assets/maps/overview/de_ancient.png similarity index 100% rename from maps/de_ancient.png rename to assets/maps/overview/de_ancient.png diff --git a/maps/de_anubis.png b/assets/maps/overview/de_anubis.png similarity index 100% rename from maps/de_anubis.png rename to assets/maps/overview/de_anubis.png diff --git a/maps/de_dust2.png b/assets/maps/overview/de_dust2.png similarity index 100% rename from maps/de_dust2.png rename to assets/maps/overview/de_dust2.png diff --git a/maps/de_inferno.png b/assets/maps/overview/de_inferno.png similarity index 100% rename from maps/de_inferno.png rename to assets/maps/overview/de_inferno.png diff --git a/maps/de_mirage.png b/assets/maps/overview/de_mirage.png similarity index 100% rename from maps/de_mirage.png rename to assets/maps/overview/de_mirage.png diff --git a/maps/de_overpass.png b/assets/maps/overview/de_overpass.png similarity index 100% rename from maps/de_overpass.png rename to assets/maps/overview/de_overpass.png diff --git a/maps/de_ancient.json b/maps/de_ancient.json deleted file mode 100644 index cfef678..0000000 --- a/maps/de_ancient.json +++ /dev/null @@ -1,8 +0,0 @@ - -{ - "material": "maps/de_ancient.png", - "pos_x": -2953, - "pos_y": 2164, - "scale": 5 -} - diff --git a/maps/de_overpass.json b/maps/de_overpass.json deleted file mode 100644 index a4baac7..0000000 --- a/maps/de_overpass.json +++ /dev/null @@ -1,8 +0,0 @@ - -{ - "material": "maps/de_overpass.png", - "pos_x": -4831, - "pos_y": 1781, - "scale": 5.2 - -} \ No newline at end of file diff --git a/models/match.py b/models/match.py index d1fd914..fbf3cbc 100644 --- a/models/match.py +++ b/models/match.py @@ -17,18 +17,7 @@ class Match: self.game_info = game_info.sort_values(by=["tick", "player_steamid"]) # pd dataframe sorted by tick self.tick_rate = tick_rate - def _update_player_positions(self) -> None: - # inefficient, might need to change - - # empty tick - if self.current_tick.empty: - return - - # # check if current tick has NaN values - # if self.current_tick.isnull().values.any(): - # return - - for player in self.get_players(): + def _update_player(self, player: Player) -> None: player.x = self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["X"].values[0] player.y = self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["Y"].values[0] player.z = self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["Z"].values[0] @@ -42,6 +31,25 @@ class Match: player.kills = int(self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["kills_total"].values[0]) player.deaths = int(self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["deaths_total"].values[0]) player.assists = int(self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["assists_total"].values[0]) + player.inventory = self.current_tick[self.current_tick["player_steamid"] == player.steam_id]["inventory"].values[0] + + if "C4 Explosive" in player.inventory: + player.has_bomb = True + else: + player.has_bomb = False + + if "Defuse Kit" in player.inventory: + player.has_defuser = True + else: + player.has_defuser = False + + def _update_players(self) -> None: + # empty tick + if self.current_tick.empty: + return + + for player in self.get_players(): + self._update_player(player) def _update_round(self) -> None: if self.current_tick.empty: @@ -69,14 +77,14 @@ class Match: def next_tick(self) -> None: self.tick += 1 self.current_tick = self.game_info[self.game_info["tick"] == self.tick] - self._update_player_positions() + self._update_players() self._update_team_ids() self._update_round() def set_tick(self, tick: int) -> None: self.tick = tick self.current_tick = self.game_info[self.game_info["tick"] == self.tick] - self._update_player_positions() + self._update_players() self._update_round() def get_players(self) -> list[Player]: diff --git a/models/player.py b/models/player.py index 4368c22..d742faf 100644 --- a/models/player.py +++ b/models/player.py @@ -13,6 +13,11 @@ class Player: self.dead = False self.is_shooting = False self.current_weapon = None + self.has_bomb = False + self.is_planting = False + self.has_defuser = False + self.is_defusing = False + self.inventory = [] self.kills = 0 self.deaths = 0 diff --git a/render/gui_renderer.py b/render/gui_renderer.py index 988daf4..f271b1c 100644 --- a/render/gui_renderer.py +++ b/render/gui_renderer.py @@ -10,10 +10,10 @@ class GUIRenderer: # Buttons self.settings_button = Button(self.screen.get_width()-40, 10, 30, 30, None) - self.settings_button.set_image("assets/setting.png") + self.settings_button.set_image("assets/images/setting.png") self.back_button = Button(self.screen.get_width()-80, 10, 30, 30, None) - self.back_button.set_image("assets/arrow.png") + self.back_button.set_image("assets/images/arrow.png") self.colour = (255, 255, 255) diff --git a/render/settings_menu_renderer.py b/render/settings_menu_renderer.py index bc04d01..dc70580 100644 --- a/render/settings_menu_renderer.py +++ b/render/settings_menu_renderer.py @@ -21,7 +21,7 @@ class SettingsMenuRenderer: self.back_button.set_colour(self.styling["button_colour"]) self.back_button.set_font(self.styling["font"]) self.back_button.set_pressed_colour(self.styling["pressed_button_colour"]) - self.back_button.set_image("assets/arrow.png") + self.back_button.set_image("assets/images/arrow.png") # Switches self.show_yaw_button = Switch(self.widget_start_x, 100, 100, self.show_yaw_text.get_rect().height, self.options["show_yaw"]) diff --git a/states/game.py b/states/game.py index cbd29f4..b6fc5f2 100644 --- a/states/game.py +++ b/states/game.py @@ -15,8 +15,8 @@ class Game(GameState): def __init__(self, switch_state_callback, context): super().__init__(switch_state_callback, context) - match_data_path = f"maps/{self.match.map_name}.json" - match_image_path = f"maps/{self.match.map_name}.png" + match_data_path = f"assets/maps/config/{self.match.map_name}.json" + match_image_path = f"assets/maps/overview/{self.match.map_name}.png" # Screen Areas self.info_box = pygame.Surface((350, self.screen.get_height()), pygame.SRCALPHA) diff --git a/states/start_menu.py b/states/start_menu.py index 54cb984..46d4279 100644 --- a/states/start_menu.py +++ b/states/start_menu.py @@ -17,7 +17,7 @@ class StartMenu(GameState): self.default_button_width = self.screen.get_width() * 0.8 # logo - self.logo = pygame.image.load("assets/logo.png").convert_alpha() + self.logo = pygame.image.load("assets/images/logo.png").convert_alpha() self.logo_scale = 0.7 self.logo = pygame.transform.smoothscale(self.logo, (self.logo.get_rect().size[0] * self.logo_scale, self.logo.get_rect().size[1] * self.logo_scale)) @@ -84,7 +84,7 @@ class StartMenu(GameState): demo_parser = demoparser2.DemoParser(demo_file) game_info = demo_parser.parse_ticks(["X", "Y", "Z", "pitch", "yaw", "is_alive", "team", "player_steamid", "team_rounds_total", "team_num", "total_rounds_played", "shots_fired", - "kills_total", "deaths_total", "assists_total", + "kills_total", "deaths_total", "assists_total", "inventory", "health", "armor_value", "active_weapon_name"]) header_info = demo_parser.parse_header() map_name = header_info['map_name']