from typing import Dict from core.config import CoreConfig from titles.mai2.buddiesplus import Mai2BuddiesPlus from titles.mai2.const import Mai2Constants from titles.mai2.config import Mai2Config class Mai2Prism(Mai2BuddiesPlus): def __init__(self, cfg: CoreConfig, game_cfg: Mai2Config) -> None: super().__init__(cfg, game_cfg) self.version = Mai2Constants.VER_MAIMAI_DX_PRISM async def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict: user_data = await super().handle_cm_get_user_preview_api_request(data) # hardcode lastDataVersion for CardMaker user_data["lastDataVersion"] = "1.50.00" return user_data async def handle_get_user_new_item_list_api_request(self, data: Dict) -> Dict: return { "user_id": data["userId"], "userItemList": [] } #seems to be used for downloading music scores online async def handle_get_game_music_score_api_request(self, data: Dict) -> Dict: return { "gameMusicScore": { "musicId": data["musicId"], "level": data["level"], "type": data["type"], "scoreData": "" } } async def handle_get_game_kaleidx_scope_api_request(self, data: Dict) -> Dict: return { "gameKaleidxScopeList": [ {"gateId": 1, "phaseId": 6}, {"gateId": 2, "phaseId": 6}, {"gateId": 3, "phaseId": 6}, {"gateId": 4, "phaseId": 6}, {"gateId": 5, "phaseId": 6}, {"gateId": 6, "phaseId": 6} ] } async def handle_get_user_kaleidx_scope_api_request(self, data: Dict) -> Dict: kaleidxscope = await self.data.score.get_user_kaleidxscope_list(data["userId"]) if kaleidxscope is None: return {"userId": data["userId"], "userKaleidxScopeList":[]} kaleidxscope_list = [] for kaleidxscope_data in kaleidxscope: tmp = kaleidxscope_data._asdict() tmp.pop("user") tmp.pop("id") kaleidxscope_list.append(tmp) return { "userId": data["userId"], "userKaleidxScopeList": kaleidxscope_list }