74f3ab7c3f
- Added support for Card Maker 1.36.xx - Added cards importer to ONGEKI importer - Added 4 new 1.36 gachas (requires importing them from opt files) - Fixed version for Card Maker opt importer
71 lines
3.8 KiB
Python
71 lines
3.8 KiB
Python
from datetime import date, datetime, timedelta
|
|
from typing import Any, Dict
|
|
import pytz
|
|
import json
|
|
|
|
from core.config import CoreConfig
|
|
from titles.ongeki.base import OngekiBase
|
|
from titles.ongeki.bright import OngekiBright
|
|
from titles.ongeki.const import OngekiConstants
|
|
from titles.ongeki.config import OngekiConfig
|
|
|
|
|
|
class OngekiBrightMemory(OngekiBright):
|
|
def __init__(self, core_cfg: CoreConfig, game_cfg: OngekiConfig) -> None:
|
|
super().__init__(core_cfg, game_cfg)
|
|
self.version = OngekiConstants.VER_ONGEKI_BRIGHT_MEMORY
|
|
|
|
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
|
ret = super().handle_get_game_setting_api_request(data)
|
|
ret["gameSetting"]["dataVersion"] = "1.35.00"
|
|
ret["gameSetting"]["onlineDataVersion"] = "1.35.00"
|
|
ret["gameSetting"]["maxCountCharacter"] = 50
|
|
ret["gameSetting"]["maxCountCard"] = 300
|
|
ret["gameSetting"]["maxCountItem"] = 300
|
|
ret["gameSetting"]["maxCountMusic"] = 50
|
|
ret["gameSetting"]["maxCountMusicItem"] = 300
|
|
ret["gameSetting"]["maxCountRivalMusic"] = 300
|
|
return ret
|
|
|
|
def handle_get_user_memory_chapter_api_request(self, data: Dict) -> Dict:
|
|
memories = self.data.item.get_memorychapters(data["userId"])
|
|
if not memories:
|
|
return {"userId": data["userId"], "length":6, "userMemoryChapterList":[
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70001, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0},
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70002, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0},
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70003, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0},
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70004, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0},
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70005, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0},
|
|
{"gaugeId":0, "isClear": False, "gaugeNum": 0, "chapterId": 70099, "jewelCount": 0, "isBossWatched": False, "isStoryWatched": False, "isDialogWatched": False, "isEndingWatched": False, "lastPlayMusicId": 0, "lastPlayMusicLevel": 0, "lastPlayMusicCategory": 0}
|
|
]}
|
|
|
|
memory_chp = []
|
|
for chp in memories:
|
|
tmp = chp._asdict()
|
|
tmp.pop("id")
|
|
tmp.pop("user")
|
|
memory_chp.append(tmp)
|
|
|
|
return {
|
|
"userId": data["userId"],
|
|
"length": len(memory_chp),
|
|
"userMemoryChapterList": memory_chp
|
|
}
|
|
|
|
def handle_get_game_music_release_state_api_request(self, data: Dict) -> Dict:
|
|
return {
|
|
"techScore": 0,
|
|
"cardNum": 0
|
|
}
|
|
|
|
def handle_cm_get_user_data_api_request(self, data: Dict) -> Dict:
|
|
# check for a bright memory profile
|
|
user_data = super().handle_cm_get_user_data_api_request(data)
|
|
|
|
# hardcode Card Maker version for now
|
|
# Card Maker 1.34.00 = 1.30.01
|
|
# Card Maker 1.36.00 = 1.35.04
|
|
user_data["userData"]["compatibleCmVersion"] = "1.35.04"
|
|
|
|
return user_data
|