diff --git a/Songs/15 Recently Played/song_list.txt b/Songs/15 Recently Played/song_list.txt new file mode 100644 index 0000000..53feb7d --- /dev/null +++ b/Songs/15 Recently Played/song_list.txt @@ -0,0 +1,2 @@ +61506649d1a0f78c7759ffd83b010e58ab0e167bdeb06b11584933d7a7409f35|Dogbite|t+pazolite +74ee9547980a5a16d7de54004b8422fd1655e079d51cfe7fa554787604ecb654|TRIPLE HELIX|Yonokid diff --git a/config.toml b/config.toml index 7c3bf8f..7d769f8 100644 --- a/config.toml +++ b/config.toml @@ -9,6 +9,7 @@ nijiiro_notes = false log_level = 30 fake_online = false practice_mode_bar_delay = 1 +score_method = "gen3" [nameplate_1p] name = 'どんちゃん' diff --git a/libs/audio/audio.o b/libs/audio/audio.o new file mode 100644 index 0000000..1855af2 Binary files /dev/null and b/libs/audio/audio.o differ diff --git a/scenes/game.py b/scenes/game.py index ae9880d..ed8dbb2 100644 --- a/scenes/game.py +++ b/scenes/game.py @@ -314,6 +314,7 @@ class Player: self.player_num = player_num self.difficulty = difficulty self.visual_offset = global_data.config["general"]["visual_offset"] + self.score_method = global_data.config["general"]["score_method"] self.modifiers = modifiers self.tja = tja @@ -405,7 +406,25 @@ class Player: for section in self.branch_m: self.total_notes += len([note for note in section.play_notes if 0 < note.type < 5]) total_notes += section - self.base_score = calculate_base_score(total_notes) + self.base_score = 0 + self.score_init = 0 + self.score_diff = 0 + if self.score_method =="shinuchi": + self.base_score = calculate_base_score(total_notes) + elif self.score_method == "gen3": + self.score_diff = self.tja.metadata.course_data[self.difficulty].scorediff + if self.score_diff <= 0: + logger.warning("Error: No scorediff specified or scorediff less than 0 | Using shinuchi scoring method instead") + self.score_diff = 0 + + score_init_list = self.tja.metadata.course_data[self.difficulty].scoreinit + if len(score_init_list) <= 0: + logger.warning("Error: No scoreinit specified or scoreinit less than 0 | Using shinuchi scoring method instead") + self.score_init = calculate_base_score(total_notes) + self.score_diff = 0 # in case there is a diff but not an init. + else: + self.score_init = score_init_list[0] + logger.debug(f"debug | score init: {self.score_init} | score diff: {self.score_diff}") #Note management self.timeline = notes.timeline @@ -858,6 +877,17 @@ class Player: ok_window_ms = Player.TIMING_OK bad_window_ms = Player.TIMING_BAD + if self.score_method == "gen3": + self.base_score = self.score_init + if 9 < self.combo and self.combo < 30: + self.base_score = math.floor(self.score_init + 1 * self.score_diff) + elif 29 < self.combo and self.combo < 50: + self.base_score = math.floor(self.score_init + 2 * self.score_diff) + elif 49 < self.combo and self.combo < 100: + self.base_score = math.floor(self.score_init + 4 * self.score_diff) + elif 99 < self.combo: + self.base_score = math.floor(self.score_init + 8 * self.score_diff) + curr_note = self.other_notes[0] if self.other_notes else None if self.is_drumroll: self.check_drumroll(drum_type, background, current_time) @@ -936,6 +966,10 @@ class Player: else: background.add_chibi(True, 1) + if self.combo % 100 == 0 and self.score_method == "gen3": + self.score += 10000 + self.base_score_list.append(ScoreCounterAnimation(self.player_num, 10000, self.is_2p)) + def drumroll_counter_manager(self, current_time: float): """Manages drumroll counter behavior""" if self.is_drumroll and self.curr_drumroll_count > 0 and self.drumroll_counter is None: @@ -953,6 +987,9 @@ class Player: self.chara.set_animation('balloon_popping') self.balloon_anim.update(current_time, self.curr_balloon_count, not self.is_balloon) if self.balloon_anim.is_finished: + if self.score_method == "gen3": + self.score += 5000 + self.base_score_list.append(ScoreCounterAnimation(self.player_num, 5000, self.is_2p)) self.balloon_anim = None self.chara.set_animation('balloon_pop') if self.kusudama_anim is not None: