mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 03:30:13 +01:00
player number enum
This commit is contained in:
@@ -3,7 +3,7 @@ import pyray as ray
|
||||
|
||||
from libs.animation import Animation
|
||||
from libs.chara_2d import Chara2D
|
||||
from libs.global_data import reset_session
|
||||
from libs.global_data import PlayerNum, reset_session
|
||||
from libs.audio import audio
|
||||
from libs.global_objects import AllNetIcon, CoinOverlay, Nameplate
|
||||
from libs.screen import Screen
|
||||
@@ -28,11 +28,11 @@ class DanResultScreen(Screen):
|
||||
self.coin_overlay = CoinOverlay()
|
||||
self.allnet_indicator = AllNetIcon()
|
||||
self.start_ms = get_current_ms()
|
||||
self.background = Background('4', 1280)
|
||||
self.background = Background(PlayerNum.DAN, 1280)
|
||||
self.player = DanResultPlayer(global_data.player_num)
|
||||
self.is_result_2 = False
|
||||
self.result_2_fade_in = tex.get_animation(1)
|
||||
self.gauge = DanGauge(str(global_data.player_num), global_data.session_data[global_data.player_num-1].dan_result_data.gauge_length)
|
||||
self.gauge = DanGauge(global_data.player_num, global_data.session_data[global_data.player_num-1].dan_result_data.gauge_length)
|
||||
self.song_names = [OutlinedText(song.song_title, 40, ray.WHITE) for song in global_data.session_data[global_data.player_num-1].dan_result_data.songs]
|
||||
self.hori_name = OutlinedText(global_data.session_data[global_data.player_num-1].dan_result_data.dan_title, 40, ray.WHITE)
|
||||
self.exam_info = global_data.session_data[global_data.player_num-1].dan_result_data.exams
|
||||
@@ -204,7 +204,7 @@ class DanResultScreen(Screen):
|
||||
self.draw_overlay()
|
||||
|
||||
class DanResultPlayer:
|
||||
def __init__(self, player_num: int):
|
||||
def __init__(self, player_num: PlayerNum):
|
||||
plate_info = global_data.config[f'nameplate_{player_num}p']
|
||||
self.nameplate = Nameplate(plate_info['name'], plate_info['title'], player_num, plate_info['dan'], plate_info['gold'], plate_info['rainbow'], plate_info['title_bg'])
|
||||
self.chara = Chara2D(player_num-1, 100)
|
||||
@@ -219,7 +219,7 @@ class DanResultPlayer:
|
||||
|
||||
class DanGauge(Gauge):
|
||||
"""The player's gauge"""
|
||||
def __init__(self, player_num: str, gauge_length: float):
|
||||
def __init__(self, player_num: PlayerNum, gauge_length: float):
|
||||
self.player_num = player_num
|
||||
self.gauge_length = gauge_length
|
||||
self.visual_length = int(self.gauge_length * 8)
|
||||
|
||||
@@ -3,7 +3,7 @@ import logging
|
||||
import pyray as ray
|
||||
|
||||
from libs.audio import audio
|
||||
from libs.global_data import global_data
|
||||
from libs.global_data import PlayerNum, global_data
|
||||
from libs.texture import tex
|
||||
from libs.chara_2d import Chara2D
|
||||
from libs.global_objects import AllNetIcon, CoinOverlay, Indicator, Nameplate, Timer
|
||||
@@ -24,7 +24,7 @@ class DanSelectScreen(Screen):
|
||||
self.allnet_indicator = AllNetIcon()
|
||||
self.timer = Timer(60, get_current_ms(), self.navigator.select_current_item)
|
||||
self.indicator = Indicator(Indicator.State.SELECT)
|
||||
self.player = DanSelectPlayer(str(global_data.player_num))
|
||||
self.player = DanSelectPlayer(global_data.player_num)
|
||||
self.state = State.BROWSING
|
||||
self.transition = Transition('', '')
|
||||
self.last_moved = 0
|
||||
@@ -32,7 +32,7 @@ class DanSelectScreen(Screen):
|
||||
audio.play_sound('dan_select', 'voice')
|
||||
|
||||
def on_screen_end(self, next_screen: str):
|
||||
session_data = global_data.session_data[global_data.player_num-1]
|
||||
session_data = global_data.session_data[global_data.player_num]
|
||||
current_item = self.navigator.get_current_item()
|
||||
if isinstance(current_item, DanCourse):
|
||||
session_data.selected_song = current_item.charts[0]
|
||||
@@ -118,7 +118,7 @@ class DanSelectScreen(Screen):
|
||||
self.allnet_indicator.draw()
|
||||
|
||||
class DanSelectPlayer:
|
||||
def __init__(self, player_num: str):
|
||||
def __init__(self, player_num: PlayerNum):
|
||||
self.player_num = player_num
|
||||
self.selected_difficulty = -3
|
||||
self.prev_diff = -3
|
||||
@@ -135,7 +135,7 @@ class DanSelectPlayer:
|
||||
self.chara = Chara2D(int(self.player_num) - 1, 100)
|
||||
plate_info = global_data.config[f'nameplate_{self.player_num}p']
|
||||
self.nameplate = Nameplate(plate_info['name'], plate_info['title'],
|
||||
int(self.player_num), plate_info['dan'], plate_info['gold'], plate_info['rainbow'], plate_info['title_bg'])
|
||||
self.player_num, plate_info['dan'], plate_info['gold'], plate_info['rainbow'], plate_info['title_bg'])
|
||||
|
||||
def update(self, current_time):
|
||||
"""Update player state"""
|
||||
@@ -210,7 +210,7 @@ class DanSelectPlayer:
|
||||
return None
|
||||
|
||||
def draw(self):
|
||||
if self.player_num == '1':
|
||||
if self.player_num == PlayerNum.P1:
|
||||
self.nameplate.draw(30, 640)
|
||||
self.chara.draw(x=-50, y=410)
|
||||
else:
|
||||
|
||||
@@ -6,7 +6,7 @@ from libs.animation import Animation
|
||||
from libs.audio import audio
|
||||
from libs.background import Background
|
||||
from libs.file_navigator import Exam
|
||||
from libs.global_data import DanResultExam, DanResultSong, global_data
|
||||
from libs.global_data import DanResultExam, DanResultSong, PlayerNum, global_data
|
||||
from libs.global_objects import AllNetIcon
|
||||
from libs.tja import TJAParser
|
||||
from libs.transition import Transition
|
||||
@@ -45,7 +45,7 @@ class DanGameScreen(GameScreen):
|
||||
logger.info("Loaded nijiiro notes textures")
|
||||
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)
|
||||
self.hori_name = OutlinedText(global_data.session_data[global_data.player_num-1].song_title, 40, ray.WHITE)
|
||||
self.hori_name = OutlinedText(global_data.session_data[global_data.player_num].song_title, 40, ray.WHITE)
|
||||
self.init_dan()
|
||||
self.background = Background(global_data.player_num, self.bpm, scene_preset='DAN')
|
||||
self.transition = Transition('', '', is_second=True)
|
||||
@@ -53,11 +53,11 @@ class DanGameScreen(GameScreen):
|
||||
self.dan_transition = DanTransition()
|
||||
self.dan_transition.start()
|
||||
self.allnet_indicator = AllNetIcon()
|
||||
self.result_transition = ResultTransition(4)
|
||||
self.result_transition = ResultTransition(PlayerNum.DAN)
|
||||
self.load_hitsounds()
|
||||
|
||||
def init_dan(self):
|
||||
session_data = global_data.session_data[global_data.player_num-1]
|
||||
session_data = global_data.session_data[global_data.player_num]
|
||||
songs = copy.deepcopy(session_data.selected_dan)
|
||||
self.exams = copy.deepcopy(session_data.selected_dan_exam)
|
||||
self.total_notes = 0
|
||||
@@ -75,7 +75,7 @@ class DanGameScreen(GameScreen):
|
||||
self.init_tja(song.file_path)
|
||||
self.color = session_data.dan_color
|
||||
self.player_1.is_dan = True
|
||||
self.player_1.gauge = DanGauge(str(global_data.player_num), self.total_notes)
|
||||
self.player_1.gauge = DanGauge(global_data.player_num, self.total_notes)
|
||||
self.song_info = SongInfo(song.metadata.title.get(global_data.config["general"]["language"], "en"), genre_index)
|
||||
self.bpm = self.tja.metadata.bpm
|
||||
logger.info(f"TJA initialized for song: {song.file_path}")
|
||||
@@ -85,7 +85,7 @@ class DanGameScreen(GameScreen):
|
||||
self.exam_failed = [False] * len(self.exams)
|
||||
|
||||
def change_song(self):
|
||||
session_data = global_data.session_data[global_data.player_num-1]
|
||||
session_data = global_data.session_data[global_data.player_num]
|
||||
songs = session_data.selected_dan
|
||||
song, genre_index, difficulty, level = songs[self.song_index]
|
||||
session_data.selected_difficulty = difficulty
|
||||
@@ -174,7 +174,7 @@ class DanGameScreen(GameScreen):
|
||||
|
||||
@override
|
||||
def spawn_ending_anims(self):
|
||||
if sum(song.bad for song in global_data.session_data[global_data.player_num-1].dan_result_data.songs) == 0:
|
||||
if sum(song.bad for song in global_data.session_data[global_data.player_num].dan_result_data.songs) == 0:
|
||||
self.player_1.ending_anim = FCAnimation(self.player_1.is_2p)
|
||||
if self.player_1.gauge.is_clear and not any(self.exam_failed):
|
||||
self.player_1.ending_anim = ClearAnimation(self.player_1.is_2p)
|
||||
@@ -205,7 +205,7 @@ class DanGameScreen(GameScreen):
|
||||
logger.info("Result transition finished, moving to RESULT screen")
|
||||
return self.on_screen_end('DAN_RESULT')
|
||||
elif self.current_ms >= self.player_1.end_time + 1000:
|
||||
session_data = global_data.session_data[global_data.player_num-1]
|
||||
session_data = global_data.session_data[global_data.player_num]
|
||||
if len(session_data.selected_dan) > len(session_data.dan_result_data.songs):
|
||||
song_info = DanResultSong()
|
||||
song_info.song_title = self.song_info.song_name
|
||||
@@ -359,7 +359,7 @@ class DanTransition:
|
||||
|
||||
class DanGauge(Gauge):
|
||||
"""The player's gauge"""
|
||||
def __init__(self, player_num: str, total_notes: int):
|
||||
def __init__(self, player_num: PlayerNum, total_notes: int):
|
||||
self.player_num = player_num
|
||||
self.string_diff = "_hard"
|
||||
self.gauge_length = 0
|
||||
|
||||
Reference in New Issue
Block a user