feat(mai2): Add PRiSM version support

- Add Mai2Prism class inheriting from Mai2BuddiesPlus, implementing basic functionality for PRiSM version
- Add Mai2Prism reference and version check logic in index.py
- Implement API request handling methods for new features in PRiSM version
This commit is contained in:
2025-01-08 19:26:07 +08:00
parent 14714e695c
commit 8a15b04adb
2 changed files with 52 additions and 2 deletions

View File

@ -24,6 +24,7 @@ from .base import Mai2Base
from .finale import Mai2Finale
from .dx import Mai2DX
from .dxplus import Mai2DXPlus
from .prism import Mai2Prism
from .splash import Mai2Splash
from .splashplus import Mai2SplashPlus
from .universe import Mai2Universe
@ -67,7 +68,8 @@ class Mai2Servlet(BaseServlet):
Mai2Festival,
Mai2FestivalPlus,
Mai2Buddies,
Mai2BuddiesPlus
Mai2BuddiesPlus,
Mai2Prism
]
self.logger = logging.getLogger("mai2")
@ -307,8 +309,10 @@ class Mai2Servlet(BaseServlet):
internal_ver = Mai2Constants.VER_MAIMAI_DX_FESTIVAL_PLUS
elif version >= 140 and version < 145: # BUDDiES
internal_ver = Mai2Constants.VER_MAIMAI_DX_BUDDIES
elif version >= 145: # BUDDiES PLUS
elif version >= 145 and version < 150: # BUDDiES PLUS
internal_ver = Mai2Constants.VER_MAIMAI_DX_BUDDIES_PLUS
elif version >= 150: # PRiSM
internal_ver = Mai2Constants.VER_MAIMAI_DX_PRISM
elif game_code == "SDGA": # Int
if version < 105: # 1.0
internal_ver = Mai2Constants.VER_MAIMAI_DX

46
titles/mai2/prism.py Normal file
View File

@ -0,0 +1,46 @@
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_game_kaleidx_scope_api_request(self, data: Dict) -> Dict:
return {
"gameKaleidxScopeList": []
}
async def handle_get_user_kaleidx_scope_api_request(self, data: Dict) -> Dict:
return {
"userId": data["userId"],
"gameKaleidxScopeList": []
}
async def handle_get_game_music_score_api_request(self, data: Dict) -> Dict:
return {
"gameMusicScore": {
"musicId": 0,
"level": 0,
"type": 0,
"scoreData": ""
}
}
async def handle_get_user_new_item_list_api_request(self, data: Dict) -> Dict:
return {
"userId": data["userId"],
"userItemList": []
}