more minor bug fixes

This commit is contained in:
Yonokid
2025-08-16 11:11:14 -04:00
parent 1d235e1571
commit e3d24f00f9
5 changed files with 49 additions and 53 deletions

View File

@@ -1,14 +1,6 @@
import pyray as ray
from libs.texture import tex
from libs.utils import (
get_current_ms,
is_l_don_pressed,
is_l_kat_pressed,
is_r_don_pressed,
is_r_kat_pressed,
)
from scenes.game import KusudamaAnimation
from libs.utils import global_data, session_data
class DevScreen:
@@ -20,9 +12,10 @@ class DevScreen:
def on_screen_start(self):
if not self.screen_init:
self.screen_init = True
tex.load_screen_textures('game')
self.kusudama = None
self.count = 0
session_data.result_score = 961000
session_data.result_good = 100
session_data.result_max_combo = 20
session_data.result_total_drumroll = 40
def on_screen_end(self, next_screen: str):
self.screen_init = False
@@ -30,25 +23,12 @@ class DevScreen:
def update(self):
self.on_screen_start()
if self.kusudama is not None:
self.kusudama.update(get_current_ms(), self.count == 100)
if self.kusudama.is_finished:
self.kusudama = None
if is_l_kat_pressed() or is_r_kat_pressed():
self.kusudama = KusudamaAnimation(100)
self.count = 0
if is_l_don_pressed() or is_r_don_pressed():
if self.kusudama is not None:
self.count += 1
self.kusudama.update_count(self.count)
if ray.is_key_pressed(ray.KeyboardKey.KEY_ENTER):
return self.on_screen_end('RESULT')
def draw(self):
if self.kusudama is not None:
self.kusudama.draw()
pass
def draw_3d(self):
pass

View File

@@ -55,18 +55,18 @@ class ResultScreen:
self.state = None
self.high_score_indicator = None
self.score_animator = ScoreAnimator(session_data.result_score)
self.score = -1
self.good = -1
self.ok = -1
self.bad = -1
self.max_combo = -1
self.total_drumroll = -1
self.score = ''
self.good = ''
self.ok = ''
self.bad = ''
self.max_combo = ''
self.total_drumroll = ''
self.update_list = [['score', session_data.result_score],
['good', session_data.result_good],
['ok', session_data.result_ok],
['bad', session_data.result_bad],
['total_drumroll', session_data.result_total_drumroll],
['max_combo', session_data.result_max_combo]]
['max_combo', session_data.result_max_combo],
['total_drumroll', session_data.result_total_drumroll]]
self.update_index = 0
self.is_skipped = False
self.start_ms = get_current_ms()
@@ -163,27 +163,27 @@ class ResultScreen:
self.crown.update(get_current_ms())
def draw_score_info(self):
if self.good > -1:
if self.good:
for i in range(len(str(self.good))):
tex.draw_texture('score', 'judge_num', frame=int(str(self.good)[::-1][i]), x=943-(i*24), y=186)
if self.ok > -1:
if self.ok:
for i in range(len(str(self.ok))):
tex.draw_texture('score', 'judge_num', frame=int(str(self.ok)[::-1][i]), x=943-(i*24), y=227)
if self.bad > -1:
if self.bad:
for i in range(len(str(self.bad))):
tex.draw_texture('score', 'judge_num', frame=int(str(self.bad)[::-1][i]), x=943-(i*24), y=267)
if self.max_combo > -1:
if self.max_combo:
for i in range(len(str(self.max_combo))):
tex.draw_texture('score', 'judge_num', frame=int(str(self.max_combo)[::-1][i]), x=1217-(i*24), y=227)
if self.total_drumroll > -1:
tex.draw_texture('score', 'judge_num', frame=int(str(self.max_combo)[::-1][i]), x=1217-(i*24), y=186)
if self.total_drumroll:
for i in range(len(str(self.total_drumroll))):
tex.draw_texture('score', 'judge_num', frame=int(str(self.total_drumroll)[::-1][i]), x=1217-(i*24), y=186)
tex.draw_texture('score', 'judge_num', frame=int(str(self.total_drumroll)[::-1][i]), x=1217-(i*24), y=227)
def draw_total_score(self):
if not self.fade_in.is_finished:
return
tex.draw_texture('score', 'score_shinuchi')
if self.score > -1:
if self.score:
for i in range(len(str(self.score))):
tex.draw_texture('score', 'score_num', x=-(i*21), frame=int(str(self.score)[::-1][i]))
@@ -376,10 +376,10 @@ class ScoreAnimator:
self.digit_index = len(self.target_score) - 1
self.is_finished = False
def next_score(self):
def next_score(self) -> str:
if self.digit_index == -1:
self.is_finished = True
return int(''.join([str(item[0]) for item in self.current_score_list]))
return str(int(''.join([str(item[0]) for item in self.current_score_list])))
curr_digit, counter = self.current_score_list[self.digit_index]
if counter < 9:
self.current_score_list[self.digit_index][1] += 1
@@ -387,7 +387,13 @@ class ScoreAnimator:
else:
self.current_score_list[self.digit_index][0] = int(self.target_score[self.digit_index])
self.digit_index -= 1
return int(''.join([str(item[0]) for item in self.current_score_list]))
ret_val = ''.join([str(item[0]) for item in self.current_score_list])
if int(ret_val) == 0:
if not (len(self.target_score) - self.digit_index) > (len(self.target_score)):
return '0' * (len(self.target_score) - self.digit_index)
else:
return '0'
return str(int(ret_val))
class HighScoreIndicator:
def __init__(self, old_score: int, new_score: int):

View File

@@ -149,6 +149,9 @@ class SongSelectScreen:
self.state = State.SONG_SELECTED
if 4 not in selected_song.tja.metadata.course_data:
self.is_ura = False
elif (4 in selected_song.tja.metadata.course_data and
3 not in selected_song.tja.metadata.course_data):
self.is_ura = True
audio.play_sound(self.sound_don)
self.move_away.start()
self.diff_fade_out.start()
@@ -259,7 +262,10 @@ class SongSelectScreen:
if self.is_ura and self.selected_difficulty == 4:
self.diff_selector_move_1.start()
self.prev_diff = self.selected_difficulty
self.selected_difficulty = 2
if len(diffs) == 1:
self.selected_difficulty = -1
else:
self.selected_difficulty = diffs[-2]
elif self.selected_difficulty == -1 or self.selected_difficulty == -2:
self.diff_selector_move_2.start()
self.prev_diff = self.selected_difficulty
@@ -287,7 +293,7 @@ class SongSelectScreen:
self.selected_difficulty = 4
self.diff_selector_move_1.start()
if (self.selected_difficulty in [3, 4] and 4 in diffs):
if (self.selected_difficulty in [3, 4] and 4 in diffs and 3 in diffs):
self.ura_toggle = (self.ura_toggle + 1) % 10
if self.ura_toggle == 0:
self._toggle_ura_mode()
@@ -389,7 +395,7 @@ class SongSelectScreen:
fade = 0.5 if self.neiro_selector is not None else 1.0
direction = 1 if self.diff_select_move_right else -1
if self.selected_difficulty <= -1 or self.prev_diff == -1:
if self.prev_diff == -1 and self.selected_difficulty == 0:
if self.prev_diff == -1 and self.selected_difficulty >= 0:
if not self.diff_selector_move_2.is_finished:
tex.draw_texture('diff_select', f'{str(global_data.player_num)}p_balloon', x=((self.prev_diff+3) * 70) - 220 + (self.diff_selector_move_2.attribute * direction), fade=fade)
tex.draw_texture('diff_select', f'{str(global_data.player_num)}p_outline_back', x=((self.prev_diff+3) * 70) + (self.diff_selector_move_2.attribute * direction))
@@ -1512,6 +1518,9 @@ class FileNavigator:
temp_items.append(item)
content_items = random.sample(temp_items, 10)
if content_items == []:
self.go_back()
return
i = 1
for item in content_items:
if isinstance(item, SongFile):