This commit is contained in:
Anthony Samms
2025-10-24 00:08:53 -04:00
parent 21c90d8530
commit 8b7ba3acbd
13 changed files with 2597 additions and 2070 deletions

View File

@@ -13,6 +13,32 @@ class Modifiers:
inverse: bool = False
random: int = 0
@dataclass
class SessionData:
"""Data class for storing session data. Wiped after the result screen.
selected_difficulty: The difficulty level selected by the user.
song_title: The title of the song being played.
genre_index: The index of the genre being played.
result_score: The score achieved in the game.
result_good: The number of good notes achieved in the game.
result_ok: The number of ok notes achieved in the game.
result_bad: The number of bad notes achieved in the game.
result_max_combo: The maximum combo achieved in the game.
result_total_drumroll: The total drumroll achieved in the game.
result_gauge_length: The length of the gauge achieved in the game.
prev_score: The previous score pulled from the database."""
selected_difficulty: int = 0
song_title: str = ''
genre_index: int = 0
result_score: int = 0
result_good: int = 0
result_ok: int = 0
result_bad: int = 0
result_max_combo: int = 0
result_total_drumroll: int = 0
result_gauge_length: int = 0
prev_score: int = 0
@dataclass
class GlobalData:
"""
@@ -26,10 +52,11 @@ class GlobalData:
song_paths (dict[Path, str]): A dictionary mapping song paths to their hashes.
song_progress (float): The progress of the loading bar.
total_songs (int): The total number of songs.
hit_sound (int): The index of the hit sound currently used.
hit_sound (list[int]): The indices of the hit sounds currently used.
player_num (int): The player number. Either 1 or 2.
input_locked (int): The input lock status. 0 means unlocked, 1 or greater means locked.
modifiers (Modifiers): The modifiers for the game.
modifiers (list[Modifiers]): The modifiers for the game.
session_data (list[SessionData]): Session data for both players.
"""
selected_song: Path = Path()
songs_played: int = 0
@@ -38,9 +65,15 @@ class GlobalData:
song_paths: dict[Path, str] = field(default_factory=lambda: dict()) #path to hash
song_progress: float = 0.0
total_songs: int = 0
hit_sound: int = 0
hit_sound: list[int] = field(default_factory=lambda: [0, 0])
player_num: int = 1
input_locked: int = 0
modifiers: Modifiers = field(default_factory=lambda: Modifiers())
modifiers: list[Modifiers] = field(default_factory=lambda: [Modifiers(), Modifiers()])
session_data: list[SessionData] = field(default_factory=lambda: [SessionData(), SessionData()])
global_data = GlobalData()
def reset_session():
"""Reset the session data."""
global_data.session_data[0] = SessionData()
global_data.session_data[1] = SessionData()