more bug fixes because I messed up stuff

This commit is contained in:
Anthony Samms
2025-10-29 23:52:39 -04:00
parent e009c4be88
commit 3024b7d412
5 changed files with 62 additions and 7 deletions

View File

@@ -501,7 +501,18 @@ class DanBox:
self.songs = songs self.songs = songs
self.exams = exams self.exams = exams
self.song_text: list[tuple[OutlinedText, OutlinedText]] = [] self.song_text: list[tuple[OutlinedText, OutlinedText]] = []
self.total_notes = 0
for song, genre_index, difficulty in self.songs:
notes, branch_m, branch_e, branch_n = song.notes_to_position(difficulty)
self.total_notes += len(notes.play_notes)
for branch in branch_m:
self.total_notes += len(branch.play_notes)
for branch in branch_e:
self.total_notes += len(branch.play_notes)
for branch in branch_n:
self.total_notes += len(branch.play_notes)
self.name = None self.name = None
self.hori_name = None
self.yellow_box = None self.yellow_box = None
def move_box(self): def move_box(self):
@@ -533,14 +544,15 @@ class DanBox:
def get_text(self): def get_text(self):
if self.name is None: if self.name is None:
self.name = OutlinedText(self.title, 40, ray.WHITE, outline_thickness=5, vertical=True) self.name = OutlinedText(self.title, 40, ray.WHITE, vertical=True)
self.hori_name = OutlinedText(self.title, 40, ray.WHITE)
if self.is_open and not self.song_text: if self.is_open and not self.song_text:
for song, genre, difficulty in self.songs: for song, genre, difficulty in self.songs:
title = song.metadata.title.get(global_data.config["general"]["language"], song.metadata.title["en"]) title = song.metadata.title.get(global_data.config["general"]["language"], song.metadata.title["en"])
subtitle = song.metadata.subtitle.get(global_data.config["general"]["language"], "") subtitle = song.metadata.subtitle.get(global_data.config["general"]["language"], "")
title_text = OutlinedText(title, 40, ray.WHITE, outline_thickness=5, vertical=True) title_text = OutlinedText(title, 40, ray.WHITE, vertical=True)
font_size = 30 if len(subtitle) < 30 else 20 font_size = 30 if len(subtitle) < 30 else 20
subtitle_text = OutlinedText(subtitle, font_size, ray.WHITE, outline_thickness=5, vertical=True) subtitle_text = OutlinedText(subtitle, font_size, ray.WHITE, vertical=True)
self.song_text.append((title_text, subtitle_text)) self.song_text.append((title_text, subtitle_text))
def update(self, is_diff_select: bool): def update(self, is_diff_select: bool):
@@ -579,6 +591,16 @@ class DanBox:
title.draw(outline_color=ray.BLACK, x=665+x, y=127, y2=min(title.texture.height, 400)-title.texture.height) title.draw(outline_color=ray.BLACK, x=665+x, y=127, y2=min(title.texture.height, 400)-title.texture.height)
subtitle.draw(outline_color=ray.BLACK, x=620+x, y=525-min(subtitle.texture.height, 400), y2=min(subtitle.texture.height, 400)-subtitle.texture.height) subtitle.draw(outline_color=ray.BLACK, x=620+x, y=525-min(subtitle.texture.height, 400), y2=min(subtitle.texture.height, 400)-subtitle.texture.height)
tex.draw_texture('yellow_box', 'total_notes_bg')
tex.draw_texture('yellow_box', 'total_notes')
counter = str(self.total_notes)
for i in range(len(counter)):
tex.draw_texture('yellow_box', 'total_notes_counter', frame=int(counter[i]), x=(i * 25))
tex.draw_texture('yellow_box', 'frame', frame=self.color)
if self.hori_name is not None:
self.hori_name.draw(outline_color=ray.BLACK, x=434 - (self.hori_name.texture.width//2), y=84, x2=min(self.hori_name.texture.width, 275)-self.hori_name.texture.width)
def draw(self, x: int, y: int, is_ura: bool): def draw(self, x: int, y: int, is_ura: bool):
if self.is_open: if self.is_open:
self._draw_open(x, y, is_ura) self._draw_open(x, y, is_ura)

View File

@@ -69,6 +69,8 @@ class Transition:
if self.is_second: if self.is_second:
offset = self.chara_down.attribute - self.mini_up.attribute//3 offset = self.chara_down.attribute - self.mini_up.attribute//3
chara_offset = 408 chara_offset = 408
if self.title == '' and self.subtitle == '':
return
global_tex.draw_texture('rainbow_transition', 'chara_left', x=-self.mini_up.attribute//2 - chara_offset, y=-self.mini_up.attribute + offset - total_offset) global_tex.draw_texture('rainbow_transition', 'chara_left', x=-self.mini_up.attribute//2 - chara_offset, y=-self.mini_up.attribute + offset - total_offset)
global_tex.draw_texture('rainbow_transition', 'chara_right', x=self.mini_up.attribute//2 + chara_offset, y=-self.mini_up.attribute + offset - total_offset) global_tex.draw_texture('rainbow_transition', 'chara_right', x=self.mini_up.attribute//2 + chara_offset, y=-self.mini_up.attribute + offset - total_offset)
global_tex.draw_texture('rainbow_transition', 'chara_center', y=-self.rainbow_up.attribute + offset - total_offset) global_tex.draw_texture('rainbow_transition', 'chara_center', y=-self.rainbow_up.attribute + offset - total_offset)

View File

@@ -52,10 +52,8 @@ class GameScreen(Screen):
self.end_ms = 0 self.end_ms = 0
self.start_delay = 1000 self.start_delay = 1000
self.song_started = False self.song_started = False
self.screen_init = True
self.movie = None self.movie = None
self.song_music = None self.song_music = None
logger.info("Game screen textures loaded")
if global_data.config["general"]["nijiiro_notes"]: if global_data.config["general"]["nijiiro_notes"]:
# drop original # drop original
if "notes" in tex.textures: if "notes" in tex.textures:
@@ -65,7 +63,6 @@ class GameScreen(Screen):
tex.load_zip("game", "notes_nijiiro") tex.load_zip("game", "notes_nijiiro")
tex.textures["notes"] = tex.textures.pop("notes_nijiiro") tex.textures["notes"] = tex.textures.pop("notes_nijiiro")
logger.info("Loaded nijiiro notes textures") logger.info("Loaded nijiiro notes textures")
logger.info("Game screen sounds loaded")
ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture0"), tex.textures['balloon']['rainbow_mask'].texture) ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture0"), tex.textures['balloon']['rainbow_mask'].texture)
ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture1"), tex.textures['balloon']['rainbow'].texture) ray.set_shader_value_texture(self.mask_shader, ray.get_shader_location(self.mask_shader, "texture1"), tex.textures['balloon']['rainbow'].texture)
session_data = global_data.session_data[global_data.player_num-1] session_data = global_data.session_data[global_data.player_num-1]

34
scenes/game_dan.py Normal file
View File

@@ -0,0 +1,34 @@
import logging
from libs.audio import audio
from libs.background import Background
from libs.global_data import global_data
from libs.transition import Transition
from scenes.game import GameScreen, SongInfo
logger = logging.getLogger(__name__)
class DanGameScreen(GameScreen):
JUDGE_X = 414
def on_screen_start(self):
super().on_screen_start()
self.init_tja(global_data.selected_song)
logger.info(f"TJA initialized for song: {global_data.selected_song}")
self.song_info = SongInfo(session_data.song_title, session_data.genre_index)
self.background = Background(global_data.player_num, self.bpm, scene_preset='DAN')
self.transition = Transition('', '', is_second=True)
self.transition.start()
def update(self):
super().update()
current_time = get_current_ms()
self.transition.update(current_time)
self.current_ms = current_time - self.start_ms
self.start_song(current_time)
self.update_background(current_time)
if self.song_music is not None:
audio.update_music_stream(self.song_music)
self.player_1.update(self.current_ms, current_time, self.background)
self.song_info.update(current_time)
return self.global_keys()

View File

@@ -72,7 +72,7 @@ class ResultScreen(Screen):
def draw_song_info(self): def draw_song_info(self):
tex.draw_texture('song_info', 'song_num', frame=global_data.songs_played%4) tex.draw_texture('song_info', 'song_num', frame=global_data.songs_played%4)
self.song_info.draw(x=1252 - self.song_info.texture.width, y=35 - self.song_info.texture.height / 2) self.song_info.draw(outline_color=ray.BLACK, x=1252 - self.song_info.texture.width, y=35 - self.song_info.texture.height / 2)
def draw(self): def draw(self):
self.background.draw() self.background.draw()