mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 19:50:12 +01:00
more bug fixes because I messed up stuff
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
34
scenes/game_dan.py
Normal 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()
|
||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user