diff --git a/bemani/backend/jubeat/base.py b/bemani/backend/jubeat/base.py index 5fffa20..acf4bc3 100644 --- a/bemani/backend/jubeat/base.py +++ b/bemani/backend/jubeat/base.py @@ -4,8 +4,8 @@ from typing_extensions import Final from bemani.backend.base import Base from bemani.backend.core import CoreHandler, CardManagerHandler, PASELIHandler -from bemani.common import DBConstants, GameConstants, ValidatedDict, Profile -from bemani.data import Score, UserID +from bemani.common import DBConstants, GameConstants, ValidatedDict, Model, Profile +from bemani.data import Data, Score, UserID, Config from bemani.protocol import Node @@ -40,6 +40,19 @@ class JubeatBase(CoreHandler, CardManagerHandler, PASELIHandler, Base): CHART_TYPE_HARD_ADVANCED: Final[int] = 4 CHART_TYPE_HARD_EXTREME: Final[int] = 5 + def __init__(self, data: Data, config: Config, model: Model) -> None: + super().__init__(data, config, model) + if model.rev == 'X' or model.rev == 'Y': + self.omnimix = True + else: + self.omnimix = False + + @property + def music_version(self) -> int: + if self.omnimix: + return DBConstants.OMNIMIX_VERSION_BUMP + self.version + return self.version + def previous_version(self) -> Optional['JubeatBase']: """ Returns the previous version of the game, based on this game. Should @@ -145,7 +158,7 @@ class JubeatBase(CoreHandler, CardManagerHandler, PASELIHandler, Base): return None userid = self.data.remote.user.from_extid(self.game, self.version, extid) - scores = self.data.remote.music.get_scores(self.game, self.version, userid) + scores = self.data.remote.music.get_scores(self.game, self.music_version, userid) if scores is None: return None profile = self.get_profile(userid) @@ -184,7 +197,7 @@ class JubeatBase(CoreHandler, CardManagerHandler, PASELIHandler, Base): oldscore = self.data.local.music.get_score( self.game, - self.version, + self.music_version, userid, songid, chart, @@ -246,7 +259,7 @@ class JubeatBase(CoreHandler, CardManagerHandler, PASELIHandler, Base): # Write the new score back self.data.local.music.put_score( self.game, - self.version, + self.music_version, userid, songid, chart, @@ -260,7 +273,7 @@ class JubeatBase(CoreHandler, CardManagerHandler, PASELIHandler, Base): # Save the history of this score too self.data.local.music.put_attempt( self.game, - self.version, + self.music_version, userid, songid, chart, diff --git a/bemani/backend/jubeat/clan.py b/bemani/backend/jubeat/clan.py index 4665db4..3564a72 100644 --- a/bemani/backend/jubeat/clan.py +++ b/bemani/backend/jubeat/clan.py @@ -1318,8 +1318,8 @@ class JubeatClan( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') - today_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time) - whim_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('whim', -1), timelimit=start_time) + today_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time) + whim_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('whim', -1), timelimit=start_time) fc_challenge = Node.void('fc_challenge') player.add_child(fc_challenge) diff --git a/bemani/backend/jubeat/common.py b/bemani/backend/jubeat/common.py index a73fd3a..347b0c4 100644 --- a/bemani/backend/jubeat/common.py +++ b/bemani/backend/jubeat/common.py @@ -42,7 +42,7 @@ class JubeatDemodataGetHitchartHandler(JubeatBase): data.add_child(hitchart_lic) hitchart_lic.set_attribute('count', '0') - songs = self.data.local.music.get_hit_chart(self.game, self.version, 10) + songs = self.data.local.music.get_hit_chart(self.game, self.music_version, 10) hitchart_org = Node.void('hitchart_org') data.add_child(hitchart_org) hitchart_org.set_attribute('count', str(len(songs))) diff --git a/bemani/backend/jubeat/festo.py b/bemani/backend/jubeat/festo.py index dc40f41..69d0d9b 100644 --- a/bemani/backend/jubeat/festo.py +++ b/bemani/backend/jubeat/festo.py @@ -718,10 +718,10 @@ class JubeatFesto( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') today_attempts = self.data.local.music.get_all_attempts( - self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time + self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time ) whim_attempts = self.data.local.music.get_all_attempts( - self.game, self.version, userid, entry.get_int('whim', -1), timelimit=start_time + self.game, self.music_version, userid, entry.get_int('whim', -1), timelimit=start_time ) # TODO: Are these still the right state constants? diff --git a/bemani/backend/jubeat/prop.py b/bemani/backend/jubeat/prop.py index 3a0c00a..6b2b213 100644 --- a/bemani/backend/jubeat/prop.py +++ b/bemani/backend/jubeat/prop.py @@ -916,8 +916,8 @@ class JubeatProp( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') - today_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time) - whim_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('whim', -1), timelimit=start_time) + today_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time) + whim_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('whim', -1), timelimit=start_time) fc_challenge = Node.void('fc_challenge') player.add_child(fc_challenge) diff --git a/bemani/backend/jubeat/qubell.py b/bemani/backend/jubeat/qubell.py index 02217b8..1fb270e 100644 --- a/bemani/backend/jubeat/qubell.py +++ b/bemani/backend/jubeat/qubell.py @@ -549,7 +549,7 @@ class JubeatQubell( # Looks to be set to true when there's an old profile, stops tutorial from # happening on first load. - info.add_child(Node.bool('inherit', profile.get_bool('has_old_version') and not profile.get_bool('saved'))) + info.add_child(Node.bool('inherit', profile.get_bool('has_old_version'))) # Not saved, but loaded info.add_child(Node.s32('mtg_entry_cnt', 123)) @@ -643,8 +643,8 @@ class JubeatQubell( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') - today_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time) - whim_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('whim', -1), timelimit=start_time) + today_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time) + whim_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('whim', -1), timelimit=start_time) fc_challenge = Node.void('fc_challenge') player.add_child(fc_challenge) @@ -925,7 +925,6 @@ class JubeatQubell( def unformat_profile(self, userid: UserID, request: Node, oldprofile: Profile) -> Profile: newprofile = oldprofile.clone() - newprofile.replace_bool('saved', True) data = request.child('data') # Grab system information diff --git a/bemani/backend/jubeat/saucer.py b/bemani/backend/jubeat/saucer.py index 2db01cc..01d543d 100644 --- a/bemani/backend/jubeat/saucer.py +++ b/bemani/backend/jubeat/saucer.py @@ -319,7 +319,7 @@ class JubeatSaucer( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') - today_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time) + today_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time) challenge = Node.void('challenge') player.add_child(challenge) diff --git a/bemani/backend/jubeat/saucerfulfill.py b/bemani/backend/jubeat/saucerfulfill.py index ea310f2..64233c1 100644 --- a/bemani/backend/jubeat/saucerfulfill.py +++ b/bemani/backend/jubeat/saucerfulfill.py @@ -493,8 +493,8 @@ class JubeatSaucerFulfill( # Figure out if we've played these songs start_time, end_time = self.data.local.network.get_schedule_duration('daily') - today_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('today', -1), timelimit=start_time) - whim_attempts = self.data.local.music.get_all_attempts(self.game, self.version, userid, entry.get_int('whim', -1), timelimit=start_time) + today_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('today', -1), timelimit=start_time) + whim_attempts = self.data.local.music.get_all_attempts(self.game, self.music_version, userid, entry.get_int('whim', -1), timelimit=start_time) challenge = Node.void('challenge') player.add_child(challenge)