mirror of
https://github.com/baiqwerdvd/ArknightsUID.git
synced 2025-05-04 11:07:35 +08:00
ruff format
This commit is contained in:
parent
16cb44591c
commit
7653a3b705
@ -53,9 +53,7 @@ async def get_ap_img(bot_id: str, user_id: str):
|
|||||||
return '请先绑定一个可用CRED & UID再来查询哦~'
|
return '请先绑定一个可用CRED & UID再来查询哦~'
|
||||||
# 开始绘图任务
|
# 开始绘图任务
|
||||||
task = []
|
task = []
|
||||||
img = Image.new(
|
img = Image.new('RGBA', (based_w * len(useable_uid_list), based_h), (0, 0, 0, 0))
|
||||||
'RGBA', (based_w * len(useable_uid_list), based_h), (0, 0, 0, 0)
|
|
||||||
)
|
|
||||||
for uid_index, uid in enumerate(useable_uid_list):
|
for uid_index, uid in enumerate(useable_uid_list):
|
||||||
task.append(_draw_all_ap_img(img, uid, uid_index))
|
task.append(_draw_all_ap_img(img, uid, uid_index))
|
||||||
await asyncio.gather(*task)
|
await asyncio.gather(*task)
|
||||||
@ -514,7 +512,6 @@ async def draw_ap_img(uid: str) -> Image.Image:
|
|||||||
)
|
)
|
||||||
img.paste(blue_bar_bg1_img, (-20, 1570), blue_bar_bg1_img)
|
img.paste(blue_bar_bg1_img, (-20, 1570), blue_bar_bg1_img)
|
||||||
|
|
||||||
|
|
||||||
img_draw = ImageDraw.Draw(img)
|
img_draw = ImageDraw.Draw(img)
|
||||||
img_draw.text(
|
img_draw.text(
|
||||||
(425, 1710),
|
(425, 1710),
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from gsuid_core.gss import gss
|
from gsuid_core.gss import gss
|
||||||
from gsuid_core.logger import logger
|
from gsuid_core.logger import logger
|
||||||
|
|
||||||
@ -52,7 +53,8 @@ async def all_check(
|
|||||||
if arkconfig.get_config('CrazyNotice').data:
|
if arkconfig.get_config('CrazyNotice').data:
|
||||||
if not await check(mode, raw_data, push_data[f'{mode}_value']):
|
if not await check(mode, raw_data, push_data[f'{mode}_value']):
|
||||||
await ArknightsPush.update_push_data(
|
await ArknightsPush.update_push_data(
|
||||||
uid, {f'{mode}_is_push': False}
|
uid,
|
||||||
|
{f'{mode}_is_push': False},
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
# 准备推送
|
# 准备推送
|
||||||
|
@ -11,5 +11,5 @@ def seconds2hours_zhcn(seconds: int) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def now_ap(ap: PlayerStatusAp) -> int:
|
def now_ap(ap: PlayerStatusAp) -> int:
|
||||||
_ap = ap.current + math.floor((datetime.now().timestamp() - ap.lastApAddTime) / 360)
|
_ap = ap.current + math.floor((datetime.now().timestamp() - ap.lastApAddTime) / 360)
|
||||||
return _ap if _ap <= ap.max else ap.max
|
return _ap if _ap <= ap.max else ap.max
|
||||||
|
@ -9,7 +9,7 @@ from gsuid_core.utils.error_reply import UID_HINT
|
|||||||
from ..utils.database.models import ArknightsBind
|
from ..utils.database.models import ArknightsBind
|
||||||
from .set_config import set_config_func, set_push_value
|
from .set_config import set_config_func, set_push_value
|
||||||
|
|
||||||
sv_self_config = SV("ark配置")
|
sv_self_config = SV('ark配置')
|
||||||
|
|
||||||
|
|
||||||
# @sv_self_config.on_fullmatch(("ark配置", "方舟配置"))
|
# @sv_self_config.on_fullmatch(("ark配置", "方舟配置"))
|
||||||
@ -19,46 +19,46 @@ sv_self_config = SV("ark配置")
|
|||||||
# await bot.send(im)
|
# await bot.send(im)
|
||||||
|
|
||||||
|
|
||||||
@sv_self_config.on_prefix(("ark设置")) # noqa: UP034
|
@sv_self_config.on_prefix(('ark设置')) # noqa: UP034
|
||||||
async def send_config_ev(bot: Bot, ev: Event):
|
async def send_config_ev(bot: Bot, ev: Event):
|
||||||
logger.info("开始执行[设置阈值信息]")
|
logger.info('开始执行[设置阈值信息]')
|
||||||
|
|
||||||
uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id)
|
uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id)
|
||||||
if uid is None:
|
if uid is None:
|
||||||
return await bot.send(UID_HINT)
|
return await bot.send(UID_HINT)
|
||||||
|
|
||||||
func = "".join(re.findall("[\u4e00-\u9fa5]", ev.text.replace("阈值", "")))
|
func = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text.replace('阈值', '')))
|
||||||
value = re.findall(r"\d+", ev.text)
|
value = re.findall(r'\d+', ev.text)
|
||||||
value = value[0] if value else None
|
value = value[0] if value else None
|
||||||
|
|
||||||
if value is None:
|
if value is None:
|
||||||
return await bot.send("请输入正确的阈值数字...")
|
return await bot.send('请输入正确的阈值数字...')
|
||||||
|
|
||||||
logger.info(f"[设置阈值信息]func: {func}, value: {value}")
|
logger.info(f'[设置阈值信息]func: {func}, value: {value}')
|
||||||
im = await set_push_value(ev.bot_id, func, uid, int(value))
|
im = await set_push_value(ev.bot_id, func, uid, int(value))
|
||||||
await bot.send(im)
|
await bot.send(im)
|
||||||
|
|
||||||
|
|
||||||
# 开启 自动签到 功能
|
# 开启 自动签到 功能
|
||||||
@sv_self_config.on_prefix(("ark开启", "ark关闭"))
|
@sv_self_config.on_prefix(('ark开启', 'ark关闭'))
|
||||||
async def open_switch_func(bot: Bot, ev: Event):
|
async def open_switch_func(bot: Bot, ev: Event):
|
||||||
user_id = ev.user_id
|
user_id = ev.user_id
|
||||||
config_name = ev.text
|
config_name = ev.text
|
||||||
|
|
||||||
logger.info(f"[{user_id}]尝试[{ev.command[2:]}]了[{ev.text}]功能")
|
logger.info(f'[{user_id}]尝试[{ev.command[2:]}]了[{ev.text}]功能')
|
||||||
|
|
||||||
if ev.command == "ark开启":
|
if ev.command == 'ark开启':
|
||||||
query = True
|
query = True
|
||||||
gid = ev.group_id if ev.group_id else "on"
|
gid = ev.group_id if ev.group_id else 'on'
|
||||||
else:
|
else:
|
||||||
query = False
|
query = False
|
||||||
gid = "off"
|
gid = 'off'
|
||||||
|
|
||||||
is_admin = ev.user_pm <= 2
|
is_admin = ev.user_pm <= 2
|
||||||
if ev.at and is_admin:
|
if ev.at and is_admin:
|
||||||
user_id = ev.at
|
user_id = ev.at
|
||||||
elif ev.at:
|
elif ev.at:
|
||||||
return await bot.send("你没有权限...")
|
return await bot.send('你没有权限...')
|
||||||
|
|
||||||
uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id)
|
uid = await ArknightsBind.get_uid_by_game(ev.user_id, bot.bot_id)
|
||||||
if uid is None:
|
if uid is None:
|
||||||
|
@ -7,12 +7,13 @@ from .ark_config import arkconfig
|
|||||||
from .config_default import CONIFG_DEFAULT
|
from .config_default import CONIFG_DEFAULT
|
||||||
|
|
||||||
PUSH_MAP = {
|
PUSH_MAP = {
|
||||||
"理智": "ap",
|
'理智': 'ap',
|
||||||
"训练室": "train",
|
'训练室': 'train',
|
||||||
|
'版本更新': 'version',
|
||||||
}
|
}
|
||||||
PRIV_MAP = {
|
PRIV_MAP = {
|
||||||
"自动签到": "sign",
|
'自动签到': 'sign',
|
||||||
"推送": "push",
|
'推送': 'push',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -20,20 +21,20 @@ async def set_push_value(bot_id: str, func: str, uid: str, value: int):
|
|||||||
if func in PUSH_MAP:
|
if func in PUSH_MAP:
|
||||||
status = PUSH_MAP[func]
|
status = PUSH_MAP[func]
|
||||||
else:
|
else:
|
||||||
return "该配置项不存在!"
|
return '该配置项不存在!'
|
||||||
logger.info(f"[设置推送阈值]func: {status}, value: {value}")
|
logger.info(f'[设置推送阈值]func: {status}, value: {value}')
|
||||||
if await ArknightsPush.update_push_data(uid, {f"{status}_value": value}):
|
if await ArknightsPush.update_push_data(uid, {f'{status}_value': value}):
|
||||||
return f"设置成功!\n当前{func}推送阈值:{value}"
|
return f'设置成功!\n当前{func}推送阈值:{value}'
|
||||||
else:
|
else:
|
||||||
return "设置失败!\n请检查参数是否正确!"
|
return '设置失败!\n请检查参数是否正确!'
|
||||||
|
|
||||||
|
|
||||||
async def set_config_func(
|
async def set_config_func(
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
config_name: str = "",
|
config_name: str = '',
|
||||||
uid: str = "0",
|
uid: str = '0',
|
||||||
user_id: str = "",
|
user_id: str = '',
|
||||||
option: str = "0",
|
option: str = '0',
|
||||||
query: Optional[bool] = None,
|
query: Optional[bool] = None,
|
||||||
is_admin: bool = False,
|
is_admin: bool = False,
|
||||||
):
|
):
|
||||||
@ -45,17 +46,17 @@ async def set_config_func(
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
logger.info(
|
logger.info(
|
||||||
f"uid: {uid}, option: {option}, config_name: {config_name}"
|
f'uid: {uid}, option: {option}, config_name: {config_name}',
|
||||||
)
|
)
|
||||||
if config_name in PRIV_MAP:
|
if config_name in PRIV_MAP:
|
||||||
# 执行设置
|
# 执行设置
|
||||||
await ArknightsUser.update_user_data(
|
await ArknightsUser.update_user_data(
|
||||||
uid,
|
uid,
|
||||||
{
|
{
|
||||||
f"{PRIV_MAP[config_name]}_switch": option,
|
f'{PRIV_MAP[config_name]}_switch': option,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
elif config_name.replace("推送", "") in PUSH_MAP:
|
elif config_name.replace('推送', '') in PUSH_MAP:
|
||||||
await ArknightsPush.update_push_data(
|
await ArknightsPush.update_push_data(
|
||||||
uid,
|
uid,
|
||||||
{
|
{
|
||||||
@ -63,24 +64,24 @@ async def set_config_func(
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
return "该配置项不存在!"
|
return '该配置项不存在!'
|
||||||
|
|
||||||
if option == "on":
|
if option == 'on':
|
||||||
succeed_msg = "开启至私聊消息!"
|
succeed_msg = '开启至私聊消息!'
|
||||||
elif option == "off":
|
elif option == 'off':
|
||||||
succeed_msg = "关闭!"
|
succeed_msg = '关闭!'
|
||||||
else:
|
else:
|
||||||
succeed_msg = f"开启至群{option}"
|
succeed_msg = f'开启至群{option}'
|
||||||
return f"{config_name}已{succeed_msg}"
|
return f'{config_name}已{succeed_msg}'
|
||||||
|
|
||||||
if is_admin:
|
if is_admin:
|
||||||
logger.info(f"config_name:{config_name},query:{query}")
|
logger.info(f'config_name:{config_name},query:{query}')
|
||||||
# 执行设置
|
# 执行设置
|
||||||
if query is not None:
|
if query is not None:
|
||||||
arkconfig.set_config(name, query)
|
arkconfig.set_config(name, query)
|
||||||
im = "成功设置{}为{}。".format(config_name, "开" if query else "关")
|
im = '成功设置{}为{}。'.format(config_name, '开' if query else '关')
|
||||||
else:
|
else:
|
||||||
im = "未传入参数query!"
|
im = '未传入参数query!'
|
||||||
else:
|
else:
|
||||||
im = "只有管理员才能设置群服务。"
|
im = '只有管理员才能设置群服务。'
|
||||||
return im
|
return im
|
||||||
|
@ -18,7 +18,8 @@ async def get_help_data() -> Union[Dict[str, PluginHelp], None]:
|
|||||||
if HELP_DATA.exists():
|
if HELP_DATA.exists():
|
||||||
async with aiofiles.open(HELP_DATA, 'rb') as file:
|
async with aiofiles.open(HELP_DATA, 'rb') as file:
|
||||||
return msgjson.decode(
|
return msgjson.decode(
|
||||||
await file.read(), type=Dict[str, PluginHelp],
|
await file.read(),
|
||||||
|
type=Dict[str, PluginHelp],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -37,7 +38,8 @@ async def get_core_help() -> Union[bytes, str]:
|
|||||||
Image.open(TEXT_PATH / 'banner.png'),
|
Image.open(TEXT_PATH / 'banner.png'),
|
||||||
Image.open(TEXT_PATH / 'button.png'),
|
Image.open(TEXT_PATH / 'button.png'),
|
||||||
source_han_sans_cn_origin,
|
source_han_sans_cn_origin,
|
||||||
extra_message = [f'Client Version:{Arknights_Client_version} '
|
extra_message=[
|
||||||
f' Res version: {Arknights_Res_version}'],
|
f'Client Version:{Arknights_Client_version} ' f' Res version: {Arknights_Res_version}'
|
||||||
|
],
|
||||||
)
|
)
|
||||||
return img
|
return img
|
||||||
|
137
ArknightsUID/arknightsuid_mind/__init__.py
Normal file
137
ArknightsUID/arknightsuid_mind/__init__.py
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# import asyncio
|
||||||
|
# import json
|
||||||
|
# from typing import Dict
|
||||||
|
|
||||||
|
# import aiohttp
|
||||||
|
# from gsuid_core.aps import scheduler
|
||||||
|
# from gsuid_core.bot import Bot
|
||||||
|
# from gsuid_core.gss import gss
|
||||||
|
# from gsuid_core.logger import logger
|
||||||
|
# from gsuid_core.models import Event
|
||||||
|
# from gsuid_core.segment import MessageSegment
|
||||||
|
# from gsuid_core.sv import SV
|
||||||
|
# from msgspec import Struct, convert
|
||||||
|
|
||||||
|
# from ..utils.ark_prefix import PREFIX
|
||||||
|
# from ..utils.database.models import (
|
||||||
|
# ArknightsPush,
|
||||||
|
# ArknightsUser,
|
||||||
|
# )
|
||||||
|
# from ..version import Arknights_Client_version, Arknights_Res_version
|
||||||
|
|
||||||
|
# sv_get_version = SV('ark查询版本')
|
||||||
|
# sv_get_version_admin = SV('ark推送版本更新', pm=1)
|
||||||
|
|
||||||
|
|
||||||
|
# @sv_get_version_admin.on_fullmatch((f'{PREFIX}开启推送版本更新')) # noqa: UP034
|
||||||
|
# async def force_version_job(bot: Bot, ev: Event):
|
||||||
|
# await bot.logger.info('开始执行[ark推送版本更新]')
|
||||||
|
# await ark_version_job()
|
||||||
|
|
||||||
|
|
||||||
|
# class ArkVersion(Struct):
|
||||||
|
# clientVersion: str
|
||||||
|
# resVersion: str
|
||||||
|
|
||||||
|
|
||||||
|
# async def get_notice_list(im: list[str]) -> Dict[str, Dict[str, Dict]]:
|
||||||
|
# msg_dict: Dict[str, Dict[str, Dict]] = {}
|
||||||
|
# for _bot_id in gss.active_bot:
|
||||||
|
# user_list = await ArknightsUser.get_all_push_user_list()
|
||||||
|
# print(user_list)
|
||||||
|
# for user in user_list:
|
||||||
|
# if user.uid is not None:
|
||||||
|
# push_data = await ArknightsPush.select_push_data(user.uid)
|
||||||
|
# print(push_data)
|
||||||
|
# if push_data is None:
|
||||||
|
# continue
|
||||||
|
|
||||||
|
# if push_data.version_push is False:
|
||||||
|
# pass
|
||||||
|
# else:
|
||||||
|
# if user.bot_id not in msg_dict:
|
||||||
|
# msg_dict[user.bot_id] = {'direct': {}, 'group': {}}
|
||||||
|
# if push_data.version_push:
|
||||||
|
# # 添加私聊信息
|
||||||
|
# if user.user_id not in msg_dict[user.bot_id]['direct']:
|
||||||
|
# msg_dict[user.bot_id]['direct'][user.user_id] = im
|
||||||
|
# else:
|
||||||
|
# msg_dict[user.bot_id]['direct'][user.user_id] += im
|
||||||
|
# await ArknightsPush.update_push_data(
|
||||||
|
# user.uid, {'version_is_push': True}
|
||||||
|
# )
|
||||||
|
# # 群号推送到群聊
|
||||||
|
# else:
|
||||||
|
# # 初始化
|
||||||
|
# gid = push_data.version_push
|
||||||
|
# if gid not in msg_dict[user.bot_id]['group']:
|
||||||
|
# msg_dict[user.bot_id]['group'][gid] = {}
|
||||||
|
|
||||||
|
# if (
|
||||||
|
# user.user_id
|
||||||
|
# not in msg_dict[user.bot_id]['group'][gid]
|
||||||
|
# ):
|
||||||
|
# msg_dict[user.bot_id]['group'][gid][
|
||||||
|
# user.user_id
|
||||||
|
# ] = im
|
||||||
|
# else:
|
||||||
|
# msg_dict[user.bot_id]['group'][gid][
|
||||||
|
# user.user_id
|
||||||
|
# ] += im
|
||||||
|
# await ArknightsPush.update_push_data(
|
||||||
|
# user.uid, {'version_is_push': True}
|
||||||
|
# )
|
||||||
|
# return msg_dict
|
||||||
|
|
||||||
|
|
||||||
|
# async def get_resVersion():
|
||||||
|
# async with aiohttp.ClientSession() as session:
|
||||||
|
# async with session.get(
|
||||||
|
# "https://ak-conf.hypergryph.com/config/prod/official/Android/version"
|
||||||
|
# ) as response:
|
||||||
|
# version = convert(json.loads(await response.text()), ArkVersion)
|
||||||
|
# if (
|
||||||
|
# version.clientVersion != Arknights_Client_version
|
||||||
|
# and version.resVersion != Arknights_Res_version
|
||||||
|
# ):
|
||||||
|
# im = []
|
||||||
|
# im.append(MessageSegment.text("检测到明日方舟版本更新!"))
|
||||||
|
# im.append(
|
||||||
|
# MessageSegment.text(f"客户端版本号:{version.clientVersion}")
|
||||||
|
# )
|
||||||
|
# im.append(MessageSegment.text(f"资源版本号:{version.resVersion}"))
|
||||||
|
# return im
|
||||||
|
# logger.info("Version no update")
|
||||||
|
|
||||||
|
|
||||||
|
# @scheduler.scheduled_job('interval', seconds=3)
|
||||||
|
# async def ark_version_job():
|
||||||
|
# im = await get_resVersion()
|
||||||
|
# im = ['test']
|
||||||
|
# if im is not None:
|
||||||
|
# result = await get_notice_list(im)
|
||||||
|
# logger.info('[ark更新检查]完成!等待消息推送中...')
|
||||||
|
# logger.debug(result)
|
||||||
|
|
||||||
|
# # 执行私聊推送
|
||||||
|
# for bot_id in result:
|
||||||
|
# for BOT_ID in gss.active_bot:
|
||||||
|
# bot = gss.active_bot[BOT_ID]
|
||||||
|
# for user_id in result[bot_id]['direct']:
|
||||||
|
# msg = result[bot_id]['direct'][user_id]
|
||||||
|
# await bot.target_send(
|
||||||
|
# msg, 'direct', user_id, bot_id, '', ''
|
||||||
|
# )
|
||||||
|
# await asyncio.sleep(0.5)
|
||||||
|
# logger.info('[ark更新检查] 私聊推送完成')
|
||||||
|
# for gid in result[bot_id]['group']:
|
||||||
|
# msg_list = []
|
||||||
|
# for user_id in result[bot_id]['group'][gid]:
|
||||||
|
# msg_list.append(MessageSegment.at(user_id))
|
||||||
|
# msg = result[bot_id]['group'][gid][user_id]
|
||||||
|
# msg_list.append(MessageSegment.text(msg))
|
||||||
|
# await bot.target_send(
|
||||||
|
# msg_list, 'group', gid, bot_id, '', ''
|
||||||
|
# )
|
||||||
|
# await asyncio.sleep(0.5)
|
||||||
|
# logger.info('[ark更新检查] 群聊推送完成')
|
@ -13,27 +13,25 @@ from gsuid_core.sv import SV
|
|||||||
from .constants import Excel
|
from .constants import Excel
|
||||||
from .memoryStore import store
|
from .memoryStore import store
|
||||||
|
|
||||||
sv_download_config = SV("下载资源", pm=2)
|
sv_download_config = SV('下载资源', pm=2)
|
||||||
|
|
||||||
|
|
||||||
@sv_download_config.on_fullmatch(("ark下载全部资源")) # noqa: UP034
|
@sv_download_config.on_fullmatch(('ark下载全部资源')) # noqa: UP034
|
||||||
async def send_download_resource_msg(bot: Bot, ev: Event):
|
async def send_download_resource_msg(bot: Bot, ev: Event):
|
||||||
await bot.send("正在开始下载~可能需要较久的时间!")
|
await bot.send('正在开始下载~可能需要较久的时间!')
|
||||||
im = await download_all_resource()
|
im = await download_all_resource()
|
||||||
await bot.send(im)
|
await bot.send(im)
|
||||||
|
|
||||||
|
|
||||||
async def startup():
|
async def startup():
|
||||||
logger.info("[资源文件下载] 正在检查与下载缺失的资源文件, 可能需要较长时间, 请稍等")
|
logger.info('[资源文件下载] 正在检查与下载缺失的资源文件, 可能需要较长时间, 请稍等')
|
||||||
await download_all_resource()
|
await download_all_resource()
|
||||||
logger.info("[资源文件下载] 检查完毕, 正在加载 gamedata")
|
logger.info('[资源文件下载] 检查完毕, 正在加载 gamedata')
|
||||||
|
|
||||||
TASK = []
|
TASK = []
|
||||||
for file_path in Path(
|
for file_path in Path(get_res_path(['ArknightsUID', 'resource', 'gamedata'])).glob('*.json'):
|
||||||
get_res_path(["ArknightsUID", "resource", "gamedata"])
|
|
||||||
).glob("*.json"):
|
|
||||||
TASK.append(store.get_file(file_path))
|
TASK.append(store.get_file(file_path))
|
||||||
asyncio.gather(*TASK)
|
asyncio.gather(*TASK)
|
||||||
|
|
||||||
await Excel.preload_table()
|
await Excel.preload_table()
|
||||||
logger.info("[资源文件下载] gamedata 加载完毕")
|
logger.info('[资源文件下载] gamedata 加载完毕')
|
||||||
|
@ -103,18 +103,14 @@ class ExcelTableManager:
|
|||||||
zone_table_: ZoneTable
|
zone_table_: ZoneTable
|
||||||
|
|
||||||
async def activity_table(self) -> None:
|
async def activity_table(self) -> None:
|
||||||
self.activity_table_ = ActivityTable.convert(
|
self.activity_table_ = ActivityTable.convert(await store.get_excel('activity_table'))
|
||||||
await store.get_excel("activity_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ACTIVITY_TABLE(self) -> ActivityTable:
|
def ACTIVITY_TABLE(self) -> ActivityTable:
|
||||||
return self.activity_table_
|
return self.activity_table_
|
||||||
|
|
||||||
async def audio_data(self) -> None:
|
async def audio_data(self) -> None:
|
||||||
self.audio_data_ = AudioData.convert(
|
self.audio_data_ = AudioData.convert(await store.get_excel('audio_data'))
|
||||||
await store.get_excel("audio_data")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def AUDIO_DATA(self) -> AudioData:
|
def AUDIO_DATA(self) -> AudioData:
|
||||||
@ -122,7 +118,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def battle_equip_table(self) -> None:
|
async def battle_equip_table(self) -> None:
|
||||||
self.battle_equip_table_ = BattleEquipTable.convert(
|
self.battle_equip_table_ = BattleEquipTable.convert(
|
||||||
{"equips": await store.get_excel("battle_equip_table")}
|
{'equips': await store.get_excel('battle_equip_table')}
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -130,124 +126,98 @@ class ExcelTableManager:
|
|||||||
return self.battle_equip_table_
|
return self.battle_equip_table_
|
||||||
|
|
||||||
async def building_data(self) -> None:
|
async def building_data(self) -> None:
|
||||||
self.building_data_ = BuildingData.convert(
|
self.building_data_ = BuildingData.convert(await store.get_excel('building_data'))
|
||||||
await store.get_excel("building_data")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def BUILDING_DATA(self) -> BuildingData:
|
def BUILDING_DATA(self) -> BuildingData:
|
||||||
return self.building_data_
|
return self.building_data_
|
||||||
|
|
||||||
async def campaign_table(self) -> None:
|
async def campaign_table(self) -> None:
|
||||||
self.campaign_table_ = CampaignTable.convert(
|
self.campaign_table_ = CampaignTable.convert(await store.get_excel('campaign_table'))
|
||||||
await store.get_excel("campaign_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CAMPAIGN_TABLE(self) -> CampaignTable:
|
def CAMPAIGN_TABLE(self) -> CampaignTable:
|
||||||
return self.campaign_table_
|
return self.campaign_table_
|
||||||
|
|
||||||
async def chapter_table(self) -> None:
|
async def chapter_table(self) -> None:
|
||||||
self.chapter_table_ = ChapterTable.convert(
|
self.chapter_table_ = ChapterTable.convert({'chapters': await store.get_excel('chapter_table')})
|
||||||
{"chapters": await store.get_excel("chapter_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHAPTER_TABLE(self) -> ChapterTable:
|
def CHAPTER_TABLE(self) -> ChapterTable:
|
||||||
return self.chapter_table_
|
return self.chapter_table_
|
||||||
|
|
||||||
async def character_table(self) -> None:
|
async def character_table(self) -> None:
|
||||||
self.character_table_ = CharacterTable.convert(
|
self.character_table_ = CharacterTable.convert({'chars': await store.get_excel('character_table')})
|
||||||
{"chars": await store.get_excel("character_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHARATER_TABLE(self) -> CharacterTable:
|
def CHARATER_TABLE(self) -> CharacterTable:
|
||||||
return self.character_table_
|
return self.character_table_
|
||||||
|
|
||||||
async def char_meta_table(self) -> None:
|
async def char_meta_table(self) -> None:
|
||||||
self.char_meta_table_ = CharMetaTable.convert(
|
self.char_meta_table_ = CharMetaTable.convert(await store.get_excel('char_meta_table'))
|
||||||
await store.get_excel("char_meta_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHAR_META_TABLE(self) -> CharMetaTable:
|
def CHAR_META_TABLE(self) -> CharMetaTable:
|
||||||
return self.char_meta_table_
|
return self.char_meta_table_
|
||||||
|
|
||||||
async def charm_table(self) -> None:
|
async def charm_table(self) -> None:
|
||||||
self.charm_table_ = CharmTable.convert(
|
self.charm_table_ = CharmTable.convert(await store.get_excel('charm_table'))
|
||||||
await store.get_excel("charm_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHARM_TABLE(self) -> CharmTable:
|
def CHARM_TABLE(self) -> CharmTable:
|
||||||
return self.charm_table_
|
return self.charm_table_
|
||||||
|
|
||||||
async def char_patch_table(self) -> None:
|
async def char_patch_table(self) -> None:
|
||||||
self.char_patch_table_ = CharPatchTable.convert(
|
self.char_patch_table_ = CharPatchTable.convert(await store.get_excel('char_patch_table'))
|
||||||
await store.get_excel("char_patch_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHAR_PATH_TABLE(self) -> CharPatchTable:
|
def CHAR_PATH_TABLE(self) -> CharPatchTable:
|
||||||
return self.char_patch_table_
|
return self.char_patch_table_
|
||||||
|
|
||||||
async def charword_table(self) -> None:
|
async def charword_table(self) -> None:
|
||||||
self.charword_table_ = CharwordTable.convert(
|
self.charword_table_ = CharwordTable.convert(await store.get_excel('charword_table'))
|
||||||
await store.get_excel("charword_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHARWORD_TABLE(self) -> CharwordTable:
|
def CHARWORD_TABLE(self) -> CharwordTable:
|
||||||
return self.charword_table_
|
return self.charword_table_
|
||||||
|
|
||||||
async def checkin_table(self) -> None:
|
async def checkin_table(self) -> None:
|
||||||
self.checkin_table_ = CheckinTable.convert(
|
self.checkin_table_ = CheckinTable.convert(await store.get_excel('checkin_table'))
|
||||||
await store.get_excel("checkin_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CHECKIN_TABLE(self) -> CheckinTable:
|
def CHECKIN_TABLE(self) -> CheckinTable:
|
||||||
return self.checkin_table_
|
return self.checkin_table_
|
||||||
|
|
||||||
async def climb_tower_table(self) -> None:
|
async def climb_tower_table(self) -> None:
|
||||||
self.climb_tower_table_ = ClimbTowerTable.convert(
|
self.climb_tower_table_ = ClimbTowerTable.convert(await store.get_excel('climb_tower_table'))
|
||||||
await store.get_excel("climb_tower_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CLIMB_TOWER_TABLE(self) -> ClimbTowerTable:
|
def CLIMB_TOWER_TABLE(self) -> ClimbTowerTable:
|
||||||
return self.climb_tower_table_
|
return self.climb_tower_table_
|
||||||
|
|
||||||
async def clue_data(self) -> None:
|
async def clue_data(self) -> None:
|
||||||
self.clue_data_ = ClueData.convert(await store.get_excel("clue_data"))
|
self.clue_data_ = ClueData.convert(await store.get_excel('clue_data'))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CLUE_DATA(self) -> ClueData:
|
def CLUE_DATA(self) -> ClueData:
|
||||||
return self.clue_data_
|
return self.clue_data_
|
||||||
|
|
||||||
async def crisis_table(self) -> None:
|
async def crisis_table(self) -> None:
|
||||||
self.crisis_table_ = CrisisTable.convert(
|
self.crisis_table_ = CrisisTable.convert(await store.get_excel('crisis_table'))
|
||||||
await store.get_excel("crisis_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CRISIS_TABLE(self) -> CrisisTable:
|
def CRISIS_TABLE(self) -> CrisisTable:
|
||||||
return self.crisis_table_
|
return self.crisis_table_
|
||||||
|
|
||||||
async def crisis_v2_table(self) -> None:
|
async def crisis_v2_table(self) -> None:
|
||||||
self.crisis_v2_table_ = CrisisV2Table.convert(
|
self.crisis_v2_table_ = CrisisV2Table.convert(await store.get_excel('crisis_v2_table'))
|
||||||
await store.get_excel("crisis_v2_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def CRISIS_V2_TABLE(self) -> CrisisV2Table:
|
def CRISIS_V2_TABLE(self) -> CrisisV2Table:
|
||||||
return self.crisis_v2_table_
|
return self.crisis_v2_table_
|
||||||
|
|
||||||
async def display_meta_table(self) -> None:
|
async def display_meta_table(self) -> None:
|
||||||
self.display_meta_table_ = DisplayMetaTable.convert(
|
self.display_meta_table_ = DisplayMetaTable.convert(await store.get_excel('display_meta_table'))
|
||||||
await store.get_excel("display_meta_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def DISPLAY_META_TABLE(self) -> DisplayMetaTable:
|
def DISPLAY_META_TABLE(self) -> DisplayMetaTable:
|
||||||
@ -255,7 +225,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def enemy_handbook_table(self) -> None:
|
async def enemy_handbook_table(self) -> None:
|
||||||
self.enemy_handbook_table_ = EnemyHandbookTable.convert(
|
self.enemy_handbook_table_ = EnemyHandbookTable.convert(
|
||||||
await store.get_excel("enemy_handbook_table")
|
await store.get_excel('enemy_handbook_table')
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -263,45 +233,35 @@ class ExcelTableManager:
|
|||||||
return self.enemy_handbook_table_
|
return self.enemy_handbook_table_
|
||||||
|
|
||||||
async def favor_table(self) -> None:
|
async def favor_table(self) -> None:
|
||||||
self.favor_table_ = FavorTable.convert(
|
self.favor_table_ = FavorTable.convert(await store.get_excel('favor_table'))
|
||||||
await store.get_excel("favor_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def FAVOR_TABLE(self) -> FavorTable:
|
def FAVOR_TABLE(self) -> FavorTable:
|
||||||
return self.favor_table_
|
return self.favor_table_
|
||||||
|
|
||||||
async def gacha_table(self) -> None:
|
async def gacha_table(self) -> None:
|
||||||
self.gacha_table_ = GachaTable.convert(
|
self.gacha_table_ = GachaTable.convert(await store.get_excel('gacha_table'))
|
||||||
await store.get_excel("gacha_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def GACHA_TABLE(self) -> GachaTable:
|
def GACHA_TABLE(self) -> GachaTable:
|
||||||
return self.gacha_table_
|
return self.gacha_table_
|
||||||
|
|
||||||
async def gamedata_const(self) -> None:
|
async def gamedata_const(self) -> None:
|
||||||
self.gamedata_const_ = GamedataConst.convert(
|
self.gamedata_const_ = GamedataConst.convert(await store.get_excel('gamedata_const'))
|
||||||
await store.get_excel("gamedata_const")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def GAMEDATA_CONST(self) -> GamedataConst:
|
def GAMEDATA_CONST(self) -> GamedataConst:
|
||||||
return self.gamedata_const_
|
return self.gamedata_const_
|
||||||
|
|
||||||
async def handbook_info_table(self) -> None:
|
async def handbook_info_table(self) -> None:
|
||||||
self.handbook_info_table_ = HandbookInfoTable.convert(
|
self.handbook_info_table_ = HandbookInfoTable.convert(await store.get_excel('handbook_info_table'))
|
||||||
await store.get_excel("handbook_info_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def HANDBOOK_INFO_TABLE(self) -> HandbookInfoTable:
|
def HANDBOOK_INFO_TABLE(self) -> HandbookInfoTable:
|
||||||
return self.handbook_info_table_
|
return self.handbook_info_table_
|
||||||
|
|
||||||
async def handbook_table(self) -> None:
|
async def handbook_table(self) -> None:
|
||||||
self.handbook_table_ = HandbookTable.convert(
|
self.handbook_table_ = HandbookTable.convert(await store.get_excel('handbook_table'))
|
||||||
await store.get_excel("handbook_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def HANDBOOK_TABLE(self) -> HandbookTable:
|
def HANDBOOK_TABLE(self) -> HandbookTable:
|
||||||
@ -309,7 +269,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def handbook_team_table(self) -> None:
|
async def handbook_team_table(self) -> None:
|
||||||
self.handbook_team_table_ = HandbookTeamTable.convert(
|
self.handbook_team_table_ = HandbookTeamTable.convert(
|
||||||
{"team": await store.get_excel("handbook_team_table")}
|
{'team': await store.get_excel('handbook_team_table')}
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -317,54 +277,42 @@ class ExcelTableManager:
|
|||||||
return self.handbook_team_table_
|
return self.handbook_team_table_
|
||||||
|
|
||||||
async def item_table(self) -> None:
|
async def item_table(self) -> None:
|
||||||
self.item_table_ = ItemTable.convert(
|
self.item_table_ = ItemTable.convert(await store.get_excel('item_table'))
|
||||||
await store.get_excel("item_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ITEM_TABLE(self) -> ItemTable:
|
def ITEM_TABLE(self) -> ItemTable:
|
||||||
return self.item_table_
|
return self.item_table_
|
||||||
|
|
||||||
async def medal_table(self) -> None:
|
async def medal_table(self) -> None:
|
||||||
self.medal_table_ = MedalTable.convert(
|
self.medal_table_ = MedalTable.convert(await store.get_excel('medal_table'))
|
||||||
await store.get_excel("medal_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def MEDAL_TABLE(self) -> MedalTable:
|
def MEDAL_TABLE(self) -> MedalTable:
|
||||||
return self.medal_table_
|
return self.medal_table_
|
||||||
|
|
||||||
async def mission_table(self) -> None:
|
async def mission_table(self) -> None:
|
||||||
self.mission_table_ = MissionTable.convert(
|
self.mission_table_ = MissionTable.convert(await store.get_excel('mission_table'))
|
||||||
await store.get_excel("mission_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def MISSION_TABLE(self) -> MissionTable:
|
def MISSION_TABLE(self) -> MissionTable:
|
||||||
return self.mission_table_
|
return self.mission_table_
|
||||||
|
|
||||||
async def open_server_table(self) -> None:
|
async def open_server_table(self) -> None:
|
||||||
self.open_server_table_ = OpenServerTable.convert(
|
self.open_server_table_ = OpenServerTable.convert(await store.get_excel('open_server_table'))
|
||||||
await store.get_excel("open_server_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def OPEN_SERVER_TABLE(self) -> OpenServerTable:
|
def OPEN_SERVER_TABLE(self) -> OpenServerTable:
|
||||||
return self.open_server_table_
|
return self.open_server_table_
|
||||||
|
|
||||||
async def player_avatar_table(self) -> None:
|
async def player_avatar_table(self) -> None:
|
||||||
self.player_avatar_table_ = PlayerAvatarTable.convert(
|
self.player_avatar_table_ = PlayerAvatarTable.convert(await store.get_excel('player_avatar_table'))
|
||||||
await store.get_excel("player_avatar_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def PLAYER_AVATAR_TABLE(self) -> PlayerAvatarTable:
|
def PLAYER_AVATAR_TABLE(self) -> PlayerAvatarTable:
|
||||||
return self.player_avatar_table_
|
return self.player_avatar_table_
|
||||||
|
|
||||||
async def range_table(self) -> None:
|
async def range_table(self) -> None:
|
||||||
self.range_table_ = RangeTable.convert(
|
self.range_table_ = RangeTable.convert({'range_': await store.get_excel('range_table')})
|
||||||
{"range_": await store.get_excel("range_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def RANGE_TABLE(self) -> RangeTable:
|
def RANGE_TABLE(self) -> RangeTable:
|
||||||
@ -372,7 +320,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def replicate_table(self) -> None:
|
async def replicate_table(self) -> None:
|
||||||
self.replicate_table_ = ReplicateTable.convert(
|
self.replicate_table_ = ReplicateTable.convert(
|
||||||
{"replicate": await store.get_excel("replicate_table")}
|
{'replicate': await store.get_excel('replicate_table')}
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -380,18 +328,14 @@ class ExcelTableManager:
|
|||||||
return self.replicate_table_
|
return self.replicate_table_
|
||||||
|
|
||||||
async def retro_table(self) -> None:
|
async def retro_table(self) -> None:
|
||||||
self.retro_table_ = RetroTable.convert(
|
self.retro_table_ = RetroTable.convert(await store.get_excel('retro_table'))
|
||||||
await store.get_excel("retro_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def RETRO_TABLE(self) -> RetroTable:
|
def RETRO_TABLE(self) -> RetroTable:
|
||||||
return self.retro_table_
|
return self.retro_table_
|
||||||
|
|
||||||
async def roguelike_table(self) -> None:
|
async def roguelike_table(self) -> None:
|
||||||
self.roguelike_table_ = RoguelikeTable.convert(
|
self.roguelike_table_ = RoguelikeTable.convert(await store.get_excel('roguelike_table'))
|
||||||
await store.get_excel("roguelike_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ROGUELIKE_TABLE(self) -> RoguelikeTable:
|
def ROGUELIKE_TABLE(self) -> RoguelikeTable:
|
||||||
@ -399,7 +343,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def roguelike_topic_table(self) -> None:
|
async def roguelike_topic_table(self) -> None:
|
||||||
self.roguelike_topic_table_ = RoguelikeTopicTable.convert(
|
self.roguelike_topic_table_ = RoguelikeTopicTable.convert(
|
||||||
await store.get_excel("roguelike_topic_table")
|
await store.get_excel('roguelike_topic_table')
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -407,45 +351,35 @@ class ExcelTableManager:
|
|||||||
return self.roguelike_topic_table_
|
return self.roguelike_topic_table_
|
||||||
|
|
||||||
async def sandbox_table(self) -> None:
|
async def sandbox_table(self) -> None:
|
||||||
self.sandbox_table_ = SandboxTable.convert(
|
self.sandbox_table_ = SandboxTable.convert(await store.get_excel('sandbox_table'))
|
||||||
await store.get_excel("sandbox_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def SANDBOX_TABLE(self) -> SandboxTable:
|
def SANDBOX_TABLE(self) -> SandboxTable:
|
||||||
return self.sandbox_table_
|
return self.sandbox_table_
|
||||||
|
|
||||||
async def shop_client_table(self) -> None:
|
async def shop_client_table(self) -> None:
|
||||||
self.shop_client_table_ = ShopClientTable.convert(
|
self.shop_client_table_ = ShopClientTable.convert(await store.get_excel('shop_client_table'))
|
||||||
await store.get_excel("shop_client_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def SHOP_CLIENT_TABLE(self) -> ShopClientTable:
|
def SHOP_CLIENT_TABLE(self) -> ShopClientTable:
|
||||||
return self.shop_client_table_
|
return self.shop_client_table_
|
||||||
|
|
||||||
async def skill_table(self) -> None:
|
async def skill_table(self) -> None:
|
||||||
self.skill_table_ = SkillTable.convert(
|
self.skill_table_ = SkillTable.convert({'skills': await store.get_excel('skill_table')})
|
||||||
{"skills": await store.get_excel("skill_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def SKILL_TABLE(self) -> SkillTable:
|
def SKILL_TABLE(self) -> SkillTable:
|
||||||
return self.skill_table_
|
return self.skill_table_
|
||||||
|
|
||||||
async def skin_table(self) -> None:
|
async def skin_table(self) -> None:
|
||||||
self.skin_table_ = SkinTable.convert(
|
self.skin_table_ = SkinTable.convert(await store.get_excel('skin_table'))
|
||||||
await store.get_excel("skin_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def SKIN_TABLE(self) -> SkinTable:
|
def SKIN_TABLE(self) -> SkinTable:
|
||||||
return self.skin_table_
|
return self.skin_table_
|
||||||
|
|
||||||
async def stage_table(self) -> None:
|
async def stage_table(self) -> None:
|
||||||
self.stage_table_ = StageTable.convert(
|
self.stage_table_ = StageTable.convert(await store.get_excel('stage_table'))
|
||||||
await store.get_excel("stage_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def STAGE_TABLE(self) -> StageTable:
|
def STAGE_TABLE(self) -> StageTable:
|
||||||
@ -453,7 +387,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def story_review_meta_table(self) -> None:
|
async def story_review_meta_table(self) -> None:
|
||||||
self.story_review_meta_table_ = StoryReviewMetaTable.convert(
|
self.story_review_meta_table_ = StoryReviewMetaTable.convert(
|
||||||
await store.get_excel("story_review_meta_table")
|
await store.get_excel('story_review_meta_table')
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -462,7 +396,7 @@ class ExcelTableManager:
|
|||||||
|
|
||||||
async def story_review_table(self) -> None:
|
async def story_review_table(self) -> None:
|
||||||
self.story_review_table_ = StoryReviewTable.convert(
|
self.story_review_table_ = StoryReviewTable.convert(
|
||||||
{"storyreviewtable": await store.get_excel("story_review_table")}
|
{'storyreviewtable': await store.get_excel('story_review_table')}
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -470,61 +404,49 @@ class ExcelTableManager:
|
|||||||
return self.story_review_table_
|
return self.story_review_table_
|
||||||
|
|
||||||
async def story_table(self) -> None:
|
async def story_table(self) -> None:
|
||||||
self.story_table_ = StoryTable.convert(
|
self.story_table_ = StoryTable.convert({'stories': await store.get_excel('story_table')})
|
||||||
{"stories": await store.get_excel("story_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def STORY_TABLE(self) -> StoryTable:
|
def STORY_TABLE(self) -> StoryTable:
|
||||||
return self.story_table_
|
return self.story_table_
|
||||||
|
|
||||||
async def tech_buff_table(self) -> None:
|
async def tech_buff_table(self) -> None:
|
||||||
self.tech_buff_table_ = TechBuffTable.convert(
|
self.tech_buff_table_ = TechBuffTable.convert(await store.get_excel('tech_buff_table'))
|
||||||
await store.get_excel("tech_buff_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def TECH_BUFF_TABLE(self) -> TechBuffTable:
|
def TECH_BUFF_TABLE(self) -> TechBuffTable:
|
||||||
return self.tech_buff_table_
|
return self.tech_buff_table_
|
||||||
|
|
||||||
async def tip_table(self) -> None:
|
async def tip_table(self) -> None:
|
||||||
self.tip_table_ = TipTable.convert(await store.get_excel("tip_table"))
|
self.tip_table_ = TipTable.convert(await store.get_excel('tip_table'))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def TIP_TABLE(self) -> TipTable:
|
def TIP_TABLE(self) -> TipTable:
|
||||||
return self.tip_table_
|
return self.tip_table_
|
||||||
|
|
||||||
async def token_table(self) -> None:
|
async def token_table(self) -> None:
|
||||||
self.token_table_ = TokenTable.convert(
|
self.token_table_ = TokenTable.convert({'tokens': await store.get_excel('token_table')})
|
||||||
{"tokens": await store.get_excel("token_table")}
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def TOKEN_TABLE(self) -> TokenTable:
|
def TOKEN_TABLE(self) -> TokenTable:
|
||||||
return self.token_table_
|
return self.token_table_
|
||||||
|
|
||||||
async def uniequip_data(self) -> None:
|
async def uniequip_data(self) -> None:
|
||||||
self.uniequip_data_ = UniequipData.convert(
|
self.uniequip_data_ = UniequipData.convert(await store.get_excel('uniequip_data'))
|
||||||
await store.get_excel("uniequip_data")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def UNIEQUIP_DATA(self) -> UniequipData:
|
def UNIEQUIP_DATA(self) -> UniequipData:
|
||||||
return self.uniequip_data_
|
return self.uniequip_data_
|
||||||
|
|
||||||
async def uniequip_table(self) -> None:
|
async def uniequip_table(self) -> None:
|
||||||
self.uniequip_table_ = UniEquipTable.convert(
|
self.uniequip_table_ = UniEquipTable.convert(await store.get_excel('uniequip_table'))
|
||||||
await store.get_excel("uniequip_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def UNIEQUIP_TABLE(self) -> UniEquipTable:
|
def UNIEQUIP_TABLE(self) -> UniEquipTable:
|
||||||
return self.uniequip_table_
|
return self.uniequip_table_
|
||||||
|
|
||||||
async def zone_table(self) -> None:
|
async def zone_table(self) -> None:
|
||||||
self.zone_table_ = ZoneTable.convert(
|
self.zone_table_ = ZoneTable.convert(await store.get_excel('zone_table'))
|
||||||
await store.get_excel("zone_table")
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ZONE_TABLE(self) -> ZoneTable:
|
def ZONE_TABLE(self) -> ZoneTable:
|
||||||
@ -535,9 +457,9 @@ class ExcelTableManager:
|
|||||||
for name, method in inspect.getmembers(self):
|
for name, method in inspect.getmembers(self):
|
||||||
if not inspect.iscoroutinefunction(method):
|
if not inspect.iscoroutinefunction(method):
|
||||||
continue
|
continue
|
||||||
if name.startswith("__"):
|
if name.startswith('__'):
|
||||||
continue
|
continue
|
||||||
if name != "preload_table" and name != 'CHARATER_TABLE':
|
if name != 'preload_table' and name != 'CHARATER_TABLE':
|
||||||
task.append(method())
|
task.append(method())
|
||||||
await asyncio.gather(*task)
|
await asyncio.gather(*task)
|
||||||
|
|
||||||
|
@ -24,10 +24,10 @@ def read_json(file_path: Path, **kwargs) -> dict:
|
|||||||
Read a JSON file and return its contents as a dictionary.
|
Read a JSON file and return its contents as a dictionary.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
with Path.open(file_path, encoding="UTF-8", **kwargs) as file:
|
with Path.open(file_path, encoding='UTF-8', **kwargs) as file:
|
||||||
return json.load(file)
|
return json.load(file)
|
||||||
except (FileNotFoundError, json.JSONDecodeError) as e:
|
except (FileNotFoundError, json.JSONDecodeError) as e:
|
||||||
logger.error(f"Error reading JSON file: {e}")
|
logger.error(f'Error reading JSON file: {e}')
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ class StorageObject(Struct):
|
|||||||
|
|
||||||
|
|
||||||
class StoreService(Store):
|
class StoreService(Store):
|
||||||
__slots__ = ("store", "lock", "path")
|
__slots__ = ('store', 'lock', 'path')
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.path: anyioPath = anyioPath('data')
|
self.path: anyioPath = anyioPath('data')
|
||||||
@ -102,7 +102,7 @@ class StoreService(Store):
|
|||||||
|
|
||||||
def _write_sync(self, target_file: anyioPath) -> None:
|
def _write_sync(self, target_file: anyioPath) -> None:
|
||||||
try:
|
try:
|
||||||
tmp_file_fd, tmp_file_name = mkstemp(dir=self.path, prefix=f"{target_file.name}.cache")
|
tmp_file_fd, tmp_file_name = mkstemp(dir=self.path, prefix=f'{target_file.name}.cache')
|
||||||
renamed = False
|
renamed = False
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
@ -122,7 +122,7 @@ class StoreService(Store):
|
|||||||
|
|
||||||
async def set(self, key: str, value: Any, expires_in: int | timedelta | None = None) -> None:
|
async def set(self, key: str, value: Any, expires_in: int | timedelta | None = None) -> None:
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
value = value.encode("UTF-8")
|
value = value.encode('UTF-8')
|
||||||
async with self.lock:
|
async with self.lock:
|
||||||
self.store_[key] = StorageObject.new(data=value, expires_in=expires_in)
|
self.store_[key] = StorageObject.new(data=value, expires_in=expires_in)
|
||||||
|
|
||||||
|
@ -34,9 +34,7 @@ async def get_role_img(uid: str):
|
|||||||
secretary_skinId = secretary.skinId.replace('@', '_')
|
secretary_skinId = secretary.skinId.replace('@', '_')
|
||||||
|
|
||||||
secretary_char_img = (
|
secretary_char_img = (
|
||||||
Image.open(SKIN_PATH / f'{secretary_skinId}b.png')
|
Image.open(SKIN_PATH / f'{secretary_skinId}b.png').resize((768, 768)).convert('RGBA')
|
||||||
.resize((768, 768))
|
|
||||||
.convert('RGBA')
|
|
||||||
)
|
)
|
||||||
char_info.paste(secretary_char_img, (0, -20), secretary_char_img)
|
char_info.paste(secretary_char_img, (0, -20), secretary_char_img)
|
||||||
|
|
||||||
@ -48,12 +46,11 @@ async def get_role_img(uid: str):
|
|||||||
player_info.status.name,
|
player_info.status.name,
|
||||||
(255, 255, 255),
|
(255, 255, 255),
|
||||||
sans_font_28,
|
sans_font_28,
|
||||||
'lm'
|
'lm',
|
||||||
)
|
)
|
||||||
|
|
||||||
# 放入职信息
|
# 放入职信息
|
||||||
|
|
||||||
|
|
||||||
base_info.resize((475, 400)).convert('RGBA')
|
base_info.resize((475, 400)).convert('RGBA')
|
||||||
char_info.paste(base_info, (200, 0), base_info)
|
char_info.paste(base_info, (200, 0), base_info)
|
||||||
|
|
||||||
|
@ -82,9 +82,7 @@ async def single_daily_sign(bot_id: str, ark_uid: str, gid: str, qid: str):
|
|||||||
if gid == 'on':
|
if gid == 'on':
|
||||||
if qid not in private_msg_list:
|
if qid not in private_msg_list:
|
||||||
private_msg_list[qid] = []
|
private_msg_list[qid] = []
|
||||||
private_msg_list[qid].append(
|
private_msg_list[qid].append({'bot_id': bot_id, 'uid': ark_uid, 'msg': im})
|
||||||
{'bot_id': bot_id, 'uid': ark_uid, 'msg': im}
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
# 向群消息推送列表添加这个群
|
# 向群消息推送列表添加这个群
|
||||||
if gid not in group_msg_list:
|
if gid not in group_msg_list:
|
||||||
|
@ -8,4 +8,5 @@ async def all_start():
|
|||||||
await startup()
|
await startup()
|
||||||
await ark_adapter()
|
await ark_adapter()
|
||||||
|
|
||||||
|
|
||||||
asyncio.run(all_start())
|
asyncio.run(all_start())
|
||||||
|
@ -25,9 +25,7 @@ ark_skd_cred_add = SV('森空岛cred绑定')
|
|||||||
# await bot.send(uid_list)
|
# await bot.send(uid_list)
|
||||||
|
|
||||||
|
|
||||||
@sv_user_info.on_command(
|
@sv_user_info.on_command((f'{PREFIX}绑定uid', f'{PREFIX}切换uid', f'{PREFIX}删除uid', f'{PREFIX}解绑uid'))
|
||||||
(f'{PREFIX}绑定uid', f'{PREFIX}切换uid', f'{PREFIX}删除uid', f'{PREFIX}解绑uid')
|
|
||||||
)
|
|
||||||
async def send_link_uid_msg(bot: Bot, ev: Event):
|
async def send_link_uid_msg(bot: Bot, ev: Event):
|
||||||
await bot.logger.info('开始执行[绑定/解绑用户信息]')
|
await bot.logger.info('开始执行[绑定/解绑用户信息]')
|
||||||
qid = ev.user_id
|
qid = ev.user_id
|
||||||
|
@ -3,9 +3,7 @@ import re
|
|||||||
from ..utils.ark_api import ark_skd_api
|
from ..utils.ark_api import ark_skd_api
|
||||||
from ..utils.database.models import ArknightsBind, ArknightsPush, ArknightsUser
|
from ..utils.database.models import ArknightsBind, ArknightsPush, ArknightsUser
|
||||||
|
|
||||||
ERROR_HINT = (
|
ERROR_HINT = '添加失败, 格式为: skd添加cred Cred 例如: skd添加cred VropL583Sb1hClS5buQ4nSASkDlL8tMT'
|
||||||
'添加失败, 格式为: skd添加cred Cred 例如: skd添加cred VropL583Sb1hClS5buQ4nSASkDlL8tMT'
|
|
||||||
)
|
|
||||||
UID_HINT = '添加失败, 请先绑定明日方舟UID'
|
UID_HINT = '添加失败, 请先绑定明日方舟UID'
|
||||||
|
|
||||||
|
|
||||||
@ -22,7 +20,8 @@ async def deal_skd_cred(bot_id: str, cred: str, user_id: str) -> str:
|
|||||||
token = await ark_skd_api.refresh_token(match.group())
|
token = await ark_skd_api.refresh_token(match.group())
|
||||||
|
|
||||||
check_cred = await ark_skd_api.check_cred_valid(
|
check_cred = await ark_skd_api.check_cred_valid(
|
||||||
cred=match.group(), token=token
|
cred=match.group(),
|
||||||
|
token=token,
|
||||||
)
|
)
|
||||||
|
|
||||||
if isinstance(check_cred, bool):
|
if isinstance(check_cred, bool):
|
||||||
|
@ -21,13 +21,9 @@ async def text2pic(text: str, max_size: int = 800, font_size: int = 20):
|
|||||||
if text.endswith('\n'):
|
if text.endswith('\n'):
|
||||||
text = text[:-1]
|
text = text[:-1]
|
||||||
|
|
||||||
img = Image.new(
|
img = Image.new('RGB', (max_size, len(text) * font_size // 5), (228, 222, 210))
|
||||||
'RGB', (max_size, len(text) * font_size // 5), (228, 222, 210)
|
|
||||||
)
|
|
||||||
img_draw = ImageDraw.ImageDraw(img)
|
img_draw = ImageDraw.ImageDraw(img)
|
||||||
y = draw_center_text_by_line(
|
y = draw_center_text_by_line(img_draw, (25, 0), text, sans_font_20, 'black', 750, True)
|
||||||
img_draw, (25, 0), text, sans_font_20, 'black', 750, True
|
|
||||||
)
|
|
||||||
img = img.crop((0, 0, 800, int(y + 30)))
|
img = img.crop((0, 0, 800, int(y + 30)))
|
||||||
return await convert_img(img)
|
return await convert_img(img)
|
||||||
|
|
||||||
@ -50,6 +46,7 @@ async def send_role_wiki_pic(bot: Bot, ev: Event):
|
|||||||
img = await get_wiki_info(char_id=char_id)
|
img = await get_wiki_info(char_id=char_id)
|
||||||
await bot.send(await text2pic(img))
|
await bot.send(await text2pic(img))
|
||||||
|
|
||||||
|
|
||||||
@sv_sr_wiki.on_prefix('ark模组图鉴')
|
@sv_sr_wiki.on_prefix('ark模组图鉴')
|
||||||
async def send_equip_wiki_pic(bot: Bot, ev: Event):
|
async def send_equip_wiki_pic(bot: Bot, ev: Event):
|
||||||
char_name = ' '.join(re.findall('[\u4e00-\u9fa5]+', ev.text))
|
char_name = ' '.join(re.findall('[\u4e00-\u9fa5]+', ev.text))
|
||||||
|
@ -3,24 +3,21 @@ import re
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
from gsuid_core.data_store import get_res_path
|
|
||||||
from gsuid_core.plugins.ArknightsUID.ArknightsUID.arknightsuid_resource.memoryStore import store
|
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
from PIL import Image, ImageDraw
|
from PIL import Image, ImageDraw
|
||||||
|
|
||||||
# from rich import print
|
|
||||||
from ..arknightsuid_resource.constants import Excel
|
from ..arknightsuid_resource.constants import Excel
|
||||||
from ..utils.fonts.source_han_sans import (
|
from ..utils.fonts.source_han_sans import (
|
||||||
sans_font_18,
|
# sans_font_18,
|
||||||
sans_font_26,
|
# sans_font_26,
|
||||||
sans_font_34,
|
# sans_font_34,
|
||||||
sans_font_50,
|
# sans_font_50,
|
||||||
sans_font_120,
|
sans_font_120,
|
||||||
)
|
)
|
||||||
|
|
||||||
TEXTURE2D_PATH = Path(__file__).parent / 'texture2D'
|
TEXTURE2D_PATH = Path(__file__).parent / 'texture2D'
|
||||||
|
|
||||||
bg_img =Image.open(TEXTURE2D_PATH / 'bg.jpg')
|
bg_img = Image.open(TEXTURE2D_PATH / 'bg.jpg')
|
||||||
title_img = Image.open(TEXTURE2D_PATH / 'title.png')
|
title_img = Image.open(TEXTURE2D_PATH / 'title.png')
|
||||||
vvan_img = Image.open(TEXTURE2D_PATH / 'char_4098_vvana_2b.png').resize((2000, 2000))
|
vvan_img = Image.open(TEXTURE2D_PATH / 'char_4098_vvana_2b.png').resize((2000, 2000))
|
||||||
|
|
||||||
@ -30,36 +27,36 @@ red_color = (235, 61, 75)
|
|||||||
black_color = (0, 0, 0)
|
black_color = (0, 0, 0)
|
||||||
|
|
||||||
profession_en_to_cn = {
|
profession_en_to_cn = {
|
||||||
"WARRIOR": "近卫",
|
'WARRIOR': '近卫',
|
||||||
"SNIPER": "狙击",
|
'SNIPER': '狙击',
|
||||||
"TANK": "重装",
|
'TANK': '重装',
|
||||||
"MEDIC": "医疗",
|
'MEDIC': '医疗',
|
||||||
"SUPPORT": "辅助",
|
'SUPPORT': '辅助',
|
||||||
"CASTER": "术师",
|
'CASTER': '术师',
|
||||||
"SPECIAL": "特种",
|
'SPECIAL': '特种',
|
||||||
"PIONEER": "先锋",
|
'PIONEER': '先锋',
|
||||||
"TOKEN": "召唤物",
|
'TOKEN': '召唤物',
|
||||||
"TRAP": "陷阱",
|
'TRAP': '陷阱',
|
||||||
}
|
}
|
||||||
|
|
||||||
char_position_en_to_cn = {
|
char_position_en_to_cn = {
|
||||||
"MELEE": "近战",
|
'MELEE': '近战',
|
||||||
"RANGED": "远程",
|
'RANGED': '远程',
|
||||||
"ALL": "近战/远程",
|
'ALL': '近战/远程',
|
||||||
"NONE": "无",
|
'NONE': '无',
|
||||||
}
|
}
|
||||||
|
|
||||||
attr_en_to_cn = {
|
attr_en_to_cn = {
|
||||||
"maxHp": "生命",
|
'maxHp': '生命',
|
||||||
"atk": "攻击",
|
'atk': '攻击',
|
||||||
"def_": "防御",
|
'def_': '防御',
|
||||||
"magicResistance": "法抗",
|
'magicResistance': '法抗',
|
||||||
"cost": "部署费用",
|
'cost': '部署费用',
|
||||||
"blockCnt": "阻挡",
|
'blockCnt': '阻挡',
|
||||||
# "moveSpeed": "移动速度",
|
# "moveSpeed": "移动速度",
|
||||||
"attackSpeed": "攻击速度",
|
'attackSpeed': '攻击速度',
|
||||||
"baseAttackTime": "攻击间隔",
|
'baseAttackTime': '攻击间隔',
|
||||||
"respawnTime": "再部署时间",
|
'respawnTime': '再部署时间',
|
||||||
# "hpRecoveryPerSec": "生命回复",
|
# "hpRecoveryPerSec": "生命回复",
|
||||||
# "spRecoveryPerSec": "技力回复",
|
# "spRecoveryPerSec": "技力回复",
|
||||||
# "maxDeployCount": "部署数量上限",
|
# "maxDeployCount": "部署数量上限",
|
||||||
@ -75,19 +72,18 @@ attr_en_to_cn = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
potential_id_to_cn = {
|
potential_id_to_cn = {
|
||||||
0: "潜能2",
|
0: '潜能2',
|
||||||
1: "潜能3",
|
1: '潜能3',
|
||||||
2: "潜能4",
|
2: '潜能4',
|
||||||
3: "潜能5",
|
3: '潜能5',
|
||||||
4: "潜能6",
|
4: '潜能6',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def render_template(template_str, data):
|
def render_template(template_str, data):
|
||||||
# Extract placeholders and formatting options from the template using regular expression
|
|
||||||
matches = re.finditer(r'\{([^}:]+)\}', template_str)
|
matches = re.finditer(r'\{([^}:]+)\}', template_str)
|
||||||
matches_1 = re.finditer(r'\{([^{}]+):([^{}]+)\}', template_str)
|
matches_1 = re.finditer(r'\{([^{}]+):([^{}]+)\}', template_str)
|
||||||
|
|
||||||
# Create a dictionary with placeholder names, formatting options, and corresponding values
|
|
||||||
placeholder_data = {}
|
placeholder_data = {}
|
||||||
for match in matches:
|
for match in matches:
|
||||||
placeholder = match.groups()
|
placeholder = match.groups()
|
||||||
@ -95,16 +91,17 @@ def render_template(template_str, data):
|
|||||||
placeholder_data[placeholder[0]] = (formatting_option, data.get(placeholder[0], ''))
|
placeholder_data[placeholder[0]] = (formatting_option, data.get(placeholder[0], ''))
|
||||||
for match in matches_1:
|
for match in matches_1:
|
||||||
placeholder, formatting_option = match.groups()
|
placeholder, formatting_option = match.groups()
|
||||||
# placeholder = placeholder.replace('-', '')
|
|
||||||
placeholder_data[placeholder] = (formatting_option, data.get(placeholder.replace('-', ''), ''))
|
placeholder_data[placeholder] = (formatting_option, data.get(placeholder.replace('-', ''), ''))
|
||||||
# Replace the placeholders in the template with the formatted values
|
|
||||||
for placeholder, (formatting_option, value) in placeholder_data.items():
|
for placeholder, (formatting_option, value) in placeholder_data.items():
|
||||||
if formatting_option == '':
|
if formatting_option == '':
|
||||||
template_str = template_str.replace(f'{{{placeholder}}}', f"{value}")
|
template_str = template_str.replace(f'{{{placeholder}}}', f'{value}')
|
||||||
else:
|
else:
|
||||||
template_str = template_str.replace(f'{{{placeholder}:{formatting_option}}}', f"{value:{formatting_option}}")
|
template_str = template_str.replace(
|
||||||
|
f'{{{placeholder}:{formatting_option}}}', f'{value:{formatting_option}}'
|
||||||
|
)
|
||||||
|
|
||||||
# Render the template
|
|
||||||
template = Template(template_str)
|
template = Template(template_str)
|
||||||
rendered_text = template.render()
|
rendered_text = template.render()
|
||||||
|
|
||||||
@ -112,7 +109,6 @@ def render_template(template_str, data):
|
|||||||
|
|
||||||
|
|
||||||
async def get_equip_info(char_id: str):
|
async def get_equip_info(char_id: str):
|
||||||
|
|
||||||
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
||||||
BATTLE_EQUIP_TABLE = Excel.BATTLE_EQUIP_TABLE
|
BATTLE_EQUIP_TABLE = Excel.BATTLE_EQUIP_TABLE
|
||||||
|
|
||||||
@ -225,9 +221,7 @@ async def get_equip_info(char_id: str):
|
|||||||
return im
|
return im
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async def get_wiki_info(char_id: str):
|
async def get_wiki_info(char_id: str):
|
||||||
|
|
||||||
CHARACTER_TABLE = Excel.CHARATER_TABLE
|
CHARACTER_TABLE = Excel.CHARATER_TABLE
|
||||||
SKILL_TABLE = Excel.SKILL_TABLE
|
SKILL_TABLE = Excel.SKILL_TABLE
|
||||||
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
||||||
@ -290,8 +284,10 @@ async def get_wiki_info(char_id: str):
|
|||||||
if len(potential.buff.attributes.attributeModifiers) == 1:
|
if len(potential.buff.attributes.attributeModifiers) == 1:
|
||||||
potential_add_attribute_type = potential_add_attribute[0].attributeType
|
potential_add_attribute_type = potential_add_attribute[0].attributeType
|
||||||
potential_add_attribute_value = potential_add_attribute[0].value
|
potential_add_attribute_value = potential_add_attribute[0].value
|
||||||
potential_add_dict[potential_id] = (potential_add_attribute_type, potential_add_attribute_value)
|
potential_add_dict[potential_id] = (
|
||||||
# im += f"{potential_add_attribute_type}: {potential_add_attribute_value}"
|
potential_add_attribute_type,
|
||||||
|
potential_add_attribute_value,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
im += '-----------------\n'
|
im += '-----------------\n'
|
||||||
@ -316,7 +312,7 @@ async def get_wiki_info(char_id: str):
|
|||||||
skill_data = SKILL_TABLE.skills[skill]
|
skill_data = SKILL_TABLE.skills[skill]
|
||||||
skill_level_data = skill_data.levels[-1]
|
skill_level_data = skill_data.levels[-1]
|
||||||
skill_name = skill_level_data.name
|
skill_name = skill_level_data.name
|
||||||
im += f"技能名: {skill_name}\n"
|
im += f'技能名: {skill_name}\n'
|
||||||
skill_type = skill_level_data.skillType
|
skill_type = skill_level_data.skillType
|
||||||
skill_description = skill_level_data.description
|
skill_description = skill_level_data.description
|
||||||
skill_sp_data = skill_level_data.spData
|
skill_sp_data = skill_level_data.spData
|
||||||
@ -331,7 +327,6 @@ async def get_wiki_info(char_id: str):
|
|||||||
elif skill_sp_type == 8:
|
elif skill_sp_type == 8:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print(skill_name, skill_sp_type)
|
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
if skill_type == 1:
|
if skill_type == 1:
|
||||||
@ -341,13 +336,11 @@ async def get_wiki_info(char_id: str):
|
|||||||
elif skill_type == 0:
|
elif skill_type == 0:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print(skill_name, skill_type)
|
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
skill_duration = skill_level_data.duration
|
skill_duration = skill_level_data.duration
|
||||||
im += f'消耗: {skill_sp_data.spCost} '
|
im += f'消耗: {skill_sp_data.spCost} '
|
||||||
im += f'初始: {skill_sp_data.initSp} '
|
im += f'初始: {skill_sp_data.initSp} '
|
||||||
# im += f'持续: {skill_sp_data.increment}\n'
|
|
||||||
im += f'持续: {str(skill_duration)}\n'
|
im += f'持续: {str(skill_duration)}\n'
|
||||||
skill_blackboard_data = skill_level_data.blackboard
|
skill_blackboard_data = skill_level_data.blackboard
|
||||||
black_board_dict: dict[str, Union[Union[int, float], None]] = {}
|
black_board_dict: dict[str, Union[Union[int, float], None]] = {}
|
||||||
@ -356,45 +349,21 @@ async def get_wiki_info(char_id: str):
|
|||||||
if skill_description:
|
if skill_description:
|
||||||
skill_description = skill_description.replace(':0.0', '')
|
skill_description = skill_description.replace(':0.0', '')
|
||||||
skill_description = re.sub(r'<[^>]+>', '', skill_description)
|
skill_description = re.sub(r'<[^>]+>', '', skill_description)
|
||||||
# print(skill_description)
|
|
||||||
# [max_hp].max_hp [atk].atk [def].def
|
|
||||||
# skill_description = re.sub(r'\[max_hp].max_hp', '', skill_description)
|
|
||||||
# skill_description = re.sub(r'\[atk].atk', '', skill_description)
|
|
||||||
# skill_description = re.sub(r'\[def].def', '', skill_description)
|
|
||||||
# print(skill_description)
|
|
||||||
# print(black_board_dict)
|
|
||||||
# print(skill_description)
|
|
||||||
skill_description = render_template(skill_description, black_board_dict).replace('--', '-')
|
skill_description = render_template(skill_description, black_board_dict).replace('--', '-')
|
||||||
# skill_description = template.render(**black_board_dict)
|
|
||||||
|
|
||||||
# skill_description = skill_description.format(**black_board_dict)
|
|
||||||
last_skill_description = re.sub(r'.000000', '', skill_description)
|
last_skill_description = re.sub(r'.000000', '', skill_description)
|
||||||
print()
|
|
||||||
if '{' in last_skill_description:
|
if '{' in last_skill_description:
|
||||||
print(last_skill_description)
|
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
# re 匹配 '\n'
|
|
||||||
skill_desc = re.findall(r'[^\\n]+', last_skill_description)
|
skill_desc = re.findall(r'[^\\n]+', last_skill_description)
|
||||||
for skill_desc_line in skill_desc:
|
for skill_desc_line in skill_desc:
|
||||||
im += f'{skill_desc_line}\n'
|
im += f'{skill_desc_line}\n'
|
||||||
im += '-----------------\n'
|
im += '-----------------\n'
|
||||||
im = im[:-19]
|
im = im[:-19]
|
||||||
|
|
||||||
print(im)
|
|
||||||
return im
|
return im
|
||||||
|
|
||||||
|
|
||||||
async def draw_wiki(char_id: str):
|
async def draw_wiki(char_id: str):
|
||||||
|
|
||||||
# TASK = []
|
|
||||||
# for file_path in Path(
|
|
||||||
# get_res_path(["ArknightsUID", "resource", "gamedata"])
|
|
||||||
# ).glob("*.json"):
|
|
||||||
# TASK.append(store.get_file(file_path))
|
|
||||||
# asyncio.gather(*TASK)
|
|
||||||
|
|
||||||
# await Excel.preload_table()
|
|
||||||
|
|
||||||
CHARACTER_TABLE = Excel.CHARATER_TABLE
|
CHARACTER_TABLE = Excel.CHARATER_TABLE
|
||||||
SKILL_TABLE = Excel.SKILL_TABLE
|
SKILL_TABLE = Excel.SKILL_TABLE
|
||||||
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
UNIEQUIP_TABLE = Excel.UNIEQUIP_TABLE
|
||||||
@ -445,7 +414,10 @@ async def draw_wiki(char_id: str):
|
|||||||
if len(potential.buff.attributes.attributeModifiers) == 1:
|
if len(potential.buff.attributes.attributeModifiers) == 1:
|
||||||
potential_add_attribute_type = potential_add_attribute[0].attributeType
|
potential_add_attribute_type = potential_add_attribute[0].attributeType
|
||||||
potential_add_attribute_value = potential_add_attribute[0].value
|
potential_add_attribute_value = potential_add_attribute[0].value
|
||||||
potential_add_dict[potential_id] = (potential_add_attribute_type, potential_add_attribute_value)
|
potential_add_dict[potential_id] = (
|
||||||
|
potential_add_attribute_type,
|
||||||
|
potential_add_attribute_value,
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
@ -487,8 +459,5 @@ async def draw_wiki(char_id: str):
|
|||||||
return img
|
return img
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import asyncio
|
|
||||||
|
|
||||||
asyncio.run(draw_wiki(char_id='char_4098_vvana'))
|
asyncio.run(draw_wiki(char_id='char_4098_vvana'))
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from copy import deepcopy
|
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import hmac
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
import hmac
|
from copy import deepcopy
|
||||||
from typing import Any, Dict, Literal, Tuple, Union, cast
|
from typing import Any, Dict, Literal, Tuple, Union, cast
|
||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
@ -25,19 +25,19 @@ ssl_verify = core_plugins_config.get_config('MhySSLVerify').data
|
|||||||
|
|
||||||
|
|
||||||
_HEADER: Dict[str, str] = {
|
_HEADER: Dict[str, str] = {
|
||||||
'Host': 'zonai.skland.com',
|
'Host': 'zonai.skland.com',
|
||||||
'platform': '1',
|
'platform': '1',
|
||||||
'Origin': 'https://www.skland.com',
|
'Origin': 'https://www.skland.com',
|
||||||
'Referer': 'https://www.skland.com/',
|
'Referer': 'https://www.skland.com/',
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
'User-Agent': 'Skland/1.5.1 (com.hypergryph.skland; build:100501001; Android 33; ) Okhttp/4.11.0',
|
'User-Agent': 'Skland/1.5.1 (com.hypergryph.skland; build:100501001; Android 33; ) Okhttp/4.11.0',
|
||||||
'vName': '1.5.1',
|
'vName': '1.5.1',
|
||||||
'vCode': '100501001',
|
'vCode': '100501001',
|
||||||
'nId': '1',
|
'nId': '1',
|
||||||
'os': '33',
|
'os': '33',
|
||||||
'manufacturer': 'Xiaomi',
|
'manufacturer': 'Xiaomi',
|
||||||
'Connection': 'close'
|
'Connection': 'close',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TokenExpiredError(Exception):
|
class TokenExpiredError(Exception):
|
||||||
@ -69,7 +69,7 @@ class BaseArkApi:
|
|||||||
return validate, ch
|
return validate, ch
|
||||||
|
|
||||||
async def get_game_player_info(self, uid: str) -> Union[int, ArknightsPlayerInfoModel]:
|
async def get_game_player_info(self, uid: str) -> Union[int, ArknightsPlayerInfoModel]:
|
||||||
cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(uid=uid, attr='cred')
|
cred: Union[str, None] = await ArknightsUser.get_user_attr_by_uid(uid=uid, attr='cred')
|
||||||
if cred is None:
|
if cred is None:
|
||||||
return -60
|
return -60
|
||||||
is_vaild = await self.check_cred_valid(cred)
|
is_vaild = await self.check_cred_valid(cred)
|
||||||
@ -104,14 +104,11 @@ class BaseArkApi:
|
|||||||
return -61
|
return -61
|
||||||
header = deepcopy(_HEADER)
|
header = deepcopy(_HEADER)
|
||||||
header['cred'] = cred
|
header['cred'] = cred
|
||||||
data = {
|
data = {'uid': uid, 'gameId': 1}
|
||||||
'uid': uid,
|
|
||||||
'gameId': 1
|
|
||||||
}
|
|
||||||
header = await self.set_sign(
|
header = await self.set_sign(
|
||||||
ARK_SKD_SIGN,
|
ARK_SKD_SIGN,
|
||||||
header=header,
|
header=header,
|
||||||
data=data
|
data=data,
|
||||||
)
|
)
|
||||||
header['Content-Type'] = 'application/json'
|
header['Content-Type'] = 'application/json'
|
||||||
header['Content-Length'] = str(len(json.dumps(data)))
|
header['Content-Length'] = str(len(json.dumps(data)))
|
||||||
@ -146,7 +143,7 @@ class BaseArkApi:
|
|||||||
header=header,
|
header=header,
|
||||||
params={
|
params={
|
||||||
'uid': uid,
|
'uid': uid,
|
||||||
'gameId': 1
|
'gameId': 1,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
raw_data = await self.ark_request(
|
raw_data = await self.ark_request(
|
||||||
@ -154,7 +151,7 @@ class BaseArkApi:
|
|||||||
method='GET',
|
method='GET',
|
||||||
params={
|
params={
|
||||||
'uid': uid,
|
'uid': uid,
|
||||||
'gameId': 1
|
'gameId': 1,
|
||||||
},
|
},
|
||||||
header=header,
|
header=header,
|
||||||
)
|
)
|
||||||
@ -212,21 +209,22 @@ class BaseArkApi:
|
|||||||
self,
|
self,
|
||||||
url: str,
|
url: str,
|
||||||
header: Dict[str, Any],
|
header: Dict[str, Any],
|
||||||
data: Union[Dict[str, Any], None ]= None,
|
data: Union[Dict[str, Any], None] = None,
|
||||||
params: Union[Dict[str, Any], None] = None,
|
params: Union[Dict[str, Any], None] = None,
|
||||||
token: Union[str, None] = None,
|
token: Union[str, None] = None,
|
||||||
) -> Dict:
|
) -> Dict:
|
||||||
parsed_url = urlparse(url)
|
parsed_url = urlparse(url)
|
||||||
path = parsed_url.path
|
path = parsed_url.path
|
||||||
timestamp = str(int(time.time()) - 2)
|
timestamp = str(int(time.time()) - 2)
|
||||||
dId = hashlib.sha256(header["cred"].encode('utf-8')).hexdigest()[0:16]
|
dId = hashlib.sha256(header['cred'].encode('utf-8')).hexdigest()[0:16]
|
||||||
str1=json.dumps(
|
str1 = json.dumps(
|
||||||
{
|
{
|
||||||
'platform': header.get('platform', '1'),
|
'platform': header.get('platform', '1'),
|
||||||
'timestamp': timestamp,
|
'timestamp': timestamp,
|
||||||
'dId': dId,
|
'dId': dId,
|
||||||
'vName': header.get('vName', '')
|
'vName': header.get('vName', ''),
|
||||||
}, separators=(',', ':')
|
},
|
||||||
|
separators=(',', ':'),
|
||||||
)
|
)
|
||||||
s2 = ''
|
s2 = ''
|
||||||
if params:
|
if params:
|
||||||
@ -241,13 +239,13 @@ class BaseArkApi:
|
|||||||
logger.debug(f'cred {header["cred"]} token {token} token_ {token_}')
|
logger.debug(f'cred {header["cred"]} token {token} token_ {token_}')
|
||||||
token = token if token else token_
|
token = token if token else token_
|
||||||
if token is None:
|
if token is None:
|
||||||
raise Exception("token is None")
|
raise Exception('token is None')
|
||||||
encode_token = token.encode('utf-8')
|
encode_token = token.encode('utf-8')
|
||||||
hex_s = hmac.new(encode_token, str2.encode('utf-8'), hashlib.sha256).hexdigest()
|
hex_s = hmac.new(encode_token, str2.encode('utf-8'), hashlib.sha256).hexdigest()
|
||||||
sign = hashlib.md5(hex_s.encode('utf-8')).hexdigest().encode('utf-8').decode('utf-8')
|
sign = hashlib.md5(hex_s.encode('utf-8')).hexdigest().encode('utf-8').decode('utf-8')
|
||||||
header["sign"] = sign
|
header['sign'] = sign
|
||||||
header["timestamp"] = timestamp
|
header['timestamp'] = timestamp
|
||||||
header["dId"] = dId
|
header['dId'] = dId
|
||||||
logger.debug(header)
|
logger.debug(header)
|
||||||
return header
|
return header
|
||||||
|
|
||||||
@ -288,13 +286,11 @@ class BaseArkApi:
|
|||||||
url: str,
|
url: str,
|
||||||
method: Literal['GET', 'POST'] = 'GET',
|
method: Literal['GET', 'POST'] = 'GET',
|
||||||
header: Dict[str, Any] = _HEADER,
|
header: Dict[str, Any] = _HEADER,
|
||||||
params: Union[Dict[str, Any], None ]= None,
|
params: Union[Dict[str, Any], None] = None,
|
||||||
data: Union[Dict[str, Any], None] = None,
|
data: Union[Dict[str, Any], None] = None,
|
||||||
use_proxy: Union[bool, None] = False,
|
use_proxy: Union[bool, None] = False,
|
||||||
) -> Union[Dict, Union[int, None]]:
|
) -> Union[Dict, Union[int, None]]:
|
||||||
async with ClientSession(
|
async with ClientSession(connector=TCPConnector(verify_ssl=ssl_verify)) as client:
|
||||||
connector=TCPConnector(verify_ssl=ssl_verify)
|
|
||||||
) as client:
|
|
||||||
raw_data = {}
|
raw_data = {}
|
||||||
if 'cred' not in header:
|
if 'cred' not in header:
|
||||||
return 10001
|
return 10001
|
||||||
|
@ -13,7 +13,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
from sqlmodel import Field
|
from sqlmodel import Field
|
||||||
|
|
||||||
T_ARK_User = TypeVar("T_ARK_User", bound="ArknightsUser")
|
T_ARK_User = TypeVar('T_ARK_User', bound='ArknightsUser')
|
||||||
|
|
||||||
|
|
||||||
class ArknightsBind(Bind, table=True):
|
class ArknightsBind(Bind, table=True):
|
||||||
@ -29,7 +29,9 @@ class ArknightsUser(User, table=True):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def select_data_by_cred(
|
async def select_data_by_cred(
|
||||||
cls, session: AsyncSession, cred: str
|
cls,
|
||||||
|
session: AsyncSession,
|
||||||
|
cred: str,
|
||||||
) -> Union[BaseModel, None]:
|
) -> Union[BaseModel, None]:
|
||||||
sql = select(cls).where(cls.cred == cred)
|
sql = select(cls).where(cls.cred == cred)
|
||||||
result = await session.execute(sql)
|
result = await session.execute(sql)
|
||||||
@ -38,10 +40,8 @@ class ArknightsUser(User, table=True):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def get_all_user(
|
async def get_all_user(cls: Type[T_ARK_User], session: AsyncSession) -> List[T_ARK_User]:
|
||||||
cls: Type[T_ARK_User], session: AsyncSession
|
sql = select(cls).where(cls.cred is not None, cls.cred != '')
|
||||||
) -> List[T_ARK_User]:
|
|
||||||
sql = select(cls).where(cls.cred is not None, cls.cred != "")
|
|
||||||
result = await session.execute(sql)
|
result = await session.execute(sql)
|
||||||
data: List[T_ARK_User] = result.scalars().all()
|
data: List[T_ARK_User] = result.scalars().all()
|
||||||
return data
|
return data
|
||||||
@ -66,7 +66,10 @@ class ArknightsUser(User, table=True):
|
|||||||
retcode = -1
|
retcode = -1
|
||||||
if await cls.data_exist(uid=uid):
|
if await cls.data_exist(uid=uid):
|
||||||
retcode = await cls.update_data_by_uid(
|
retcode = await cls.update_data_by_uid(
|
||||||
uid, cls.bot_id, None, **{attr: value}
|
uid,
|
||||||
|
cls.bot_id,
|
||||||
|
None,
|
||||||
|
**{attr: value},
|
||||||
)
|
)
|
||||||
return not bool(retcode)
|
return not bool(retcode)
|
||||||
|
|
||||||
@ -83,13 +86,9 @@ class ArknightsPush(Push, table=True):
|
|||||||
ap_is_push: Union[bool, None] = Field(default=False, title='理智是否已经推送')
|
ap_is_push: Union[bool, None] = Field(default=False, title='理智是否已经推送')
|
||||||
training_push: Union[bool, None] = Field(default=False, title='训练室推送')
|
training_push: Union[bool, None] = Field(default=False, title='训练室推送')
|
||||||
training_value: Union[int, None] = Field(default=30, title='训练室推送阈值')
|
training_value: Union[int, None] = Field(default=30, title='训练室推送阈值')
|
||||||
training_is_push: Union[bool, None] = Field(
|
training_is_push: Union[bool, None] = Field(default=False, title='训练室是否已经推送')
|
||||||
default=False, title='训练室是否已经推送'
|
|
||||||
)
|
|
||||||
version_push: Union[bool, None] = Field(default=False, title='版本更新推送')
|
version_push: Union[bool, None] = Field(default=False, title='版本更新推送')
|
||||||
version_is_push: Union[bool, None] = Field(
|
version_is_push: Union[bool, None] = Field(default=False, title='版本更新是否已经推送')
|
||||||
default=False, title='版本更新是否已经推送'
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def insert_push_data(cls, bot_id: str, uid: str, skd_uid: str):
|
async def insert_push_data(cls, bot_id: str, uid: str, skd_uid: str):
|
||||||
@ -122,7 +121,10 @@ class ArknightsPush(Push, table=True):
|
|||||||
retcode = -1
|
retcode = -1
|
||||||
if await cls.data_exist(uid=uid):
|
if await cls.data_exist(uid=uid):
|
||||||
retcode = await cls.update_data_by_uid(
|
retcode = await cls.update_data_by_uid(
|
||||||
uid, cls.bot_id, None, **data
|
uid,
|
||||||
|
cls.bot_id,
|
||||||
|
None,
|
||||||
|
**data,
|
||||||
)
|
)
|
||||||
return not bool(retcode)
|
return not bool(retcode)
|
||||||
|
|
||||||
@ -136,9 +138,7 @@ class ArknightsPush(Push, table=True):
|
|||||||
await cls.update_push_data(uid, {f'{mode}_is_push': status})
|
await cls.update_push_data(uid, {f'{mode}_is_push': status})
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def select_push_data(
|
async def select_push_data(cls: Type[T_BaseIDModel], uid: str) -> Union[T_BaseIDModel, None]:
|
||||||
cls: Type[T_BaseIDModel], uid: str
|
|
||||||
) -> Union[T_BaseIDModel, None]:
|
|
||||||
return await cls.base_select_data(uid=uid)
|
return await cls.base_select_data(uid=uid)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -3,6 +3,7 @@ from typing import Union
|
|||||||
|
|
||||||
UID_HINT = '添加失败, 请先绑定明日方舟UID'
|
UID_HINT = '添加失败, 请先绑定明日方舟UID'
|
||||||
|
|
||||||
|
|
||||||
def get_error(retcode: Union[int, str]) -> str:
|
def get_error(retcode: Union[int, str]) -> str:
|
||||||
if retcode == 10000:
|
if retcode == 10000:
|
||||||
return '请求异常, 请检查具体实现代码...'
|
return '请求异常, 请检查具体实现代码...'
|
||||||
|
@ -7,7 +7,7 @@ from msgspec import json as mscjson
|
|||||||
from typing_extensions import dataclass_transform
|
from typing_extensions import dataclass_transform
|
||||||
|
|
||||||
Model = TypeVar('Model', bound='BaseStruct')
|
Model = TypeVar('Model', bound='BaseStruct')
|
||||||
T = TypeVar("T")
|
T = TypeVar('T')
|
||||||
|
|
||||||
|
|
||||||
def transUnset(v: Union[T, UnsetType], d: Any = None) -> Union[T, Any]:
|
def transUnset(v: Union[T, UnsetType], d: Any = None) -> Union[T, Any]:
|
||||||
@ -16,7 +16,10 @@ def transUnset(v: Union[T, UnsetType], d: Any = None) -> Union[T, Any]:
|
|||||||
|
|
||||||
@dataclass_transform(field_specifiers=(field,))
|
@dataclass_transform(field_specifiers=(field,))
|
||||||
class BaseStruct(
|
class BaseStruct(
|
||||||
Struct, forbid_unknown_fields=True, omit_defaults=True, gc=False
|
Struct,
|
||||||
|
forbid_unknown_fields=True,
|
||||||
|
omit_defaults=True,
|
||||||
|
gc=False,
|
||||||
):
|
):
|
||||||
class Config:
|
class Config:
|
||||||
encoder = mscjson.Encoder()
|
encoder = mscjson.Encoder()
|
||||||
|
@ -7,8 +7,8 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ActivityTableBasicData(BaseStruct):
|
class ActivityTableBasicData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
name: str
|
name: str
|
||||||
startTime: int
|
startTime: int
|
||||||
endTime: int
|
endTime: int
|
||||||
@ -32,16 +32,16 @@ class ActivityTableHomeActivityConfig(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionDisplayRewards(BaseStruct):
|
class MissionDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
class MissionData(BaseStruct):
|
class MissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
description: str
|
description: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
itemBgType: str
|
itemBgType: str
|
||||||
preMissionIds: Union[List[str], None]
|
preMissionIds: Union[List[str], None]
|
||||||
template: str
|
template: str
|
||||||
@ -59,9 +59,9 @@ class MissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionGroup(BaseStruct):
|
class MissionGroup(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: Union[str, None]
|
title: Union[str, None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
preMissionGroup: Union[str, None]
|
preMissionGroup: Union[str, None]
|
||||||
period: Union[List[int], None]
|
period: Union[List[int], None]
|
||||||
rewards: Union[List[MissionDisplayRewards], None]
|
rewards: Union[List[MissionDisplayRewards], None]
|
||||||
@ -79,9 +79,9 @@ class DefaultZoneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class DefaultShopData(BaseStruct):
|
class DefaultShopData(BaseStruct):
|
||||||
@ -244,7 +244,7 @@ class Act3D0DataLimitedPoolDetailInfoPoolItemInfo(BaseStruct):
|
|||||||
perCount: int
|
perCount: int
|
||||||
totalCount: int
|
totalCount: int
|
||||||
weight: int
|
weight: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
orderId: int
|
orderId: int
|
||||||
|
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ class Act3D0DataInfinitePoolDetailInfoPoolItemInfo(BaseStruct):
|
|||||||
goodType: str
|
goodType: str
|
||||||
perCount: int
|
perCount: int
|
||||||
weight: int
|
weight: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
orderId: int
|
orderId: int
|
||||||
|
|
||||||
|
|
||||||
@ -492,7 +492,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RuneTablePackedRuneData(BaseStruct):
|
class RuneTablePackedRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -520,7 +520,7 @@ class Act5D1Data(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActivityCollectionDataCollectionInfo(BaseStruct):
|
class ActivityCollectionDataCollectionInfo(BaseStruct):
|
||||||
id_: int = field(name="id")
|
id_: int = field(name='id')
|
||||||
itemType: str
|
itemType: str
|
||||||
itemId: str
|
itemId: str
|
||||||
itemCnt: int
|
itemCnt: int
|
||||||
@ -733,7 +733,7 @@ class Act13SideDataLongTermMissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act13SideDataDailyMissionData(BaseStruct):
|
class Act13SideDataDailyMissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
description: str
|
description: str
|
||||||
missionName: str
|
missionName: str
|
||||||
@ -929,7 +929,7 @@ class Act17sideDataMainlineChapterData(BaseStruct):
|
|||||||
chapterDes: str
|
chapterDes: str
|
||||||
chapterIcon: str
|
chapterIcon: str
|
||||||
unlockDes: str
|
unlockDes: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
|
|
||||||
|
|
||||||
class Act17sideDataMainlineData(BaseStruct):
|
class Act17sideDataMainlineData(BaseStruct):
|
||||||
@ -1172,9 +1172,9 @@ class SharedCharData(BaseStruct):
|
|||||||
evolvePhase: int
|
evolvePhase: int
|
||||||
level: int
|
level: int
|
||||||
favorPoint: int
|
favorPoint: int
|
||||||
currentEquip: Union[str, None] = field(name="currentEquip", default=None)
|
currentEquip: Union[str, None] = field(name='currentEquip', default=None)
|
||||||
equips: Union[Dict[str, SharedCharDataCharEquipInfo], None] = field(
|
equips: Union[Dict[str, SharedCharDataCharEquipInfo], None] = field(
|
||||||
name="equip",
|
name='equip',
|
||||||
default={},
|
default={},
|
||||||
)
|
)
|
||||||
skillIndex: Union[int, None] = None
|
skillIndex: Union[int, None] = None
|
||||||
@ -1241,8 +1241,8 @@ class ActivityBossRushDataBossRushStageAdditionData(BaseStruct):
|
|||||||
class ActivityBossRushDataDisplayDetailRewards(BaseStruct):
|
class ActivityBossRushDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
dropCount: int
|
dropCount: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -1348,15 +1348,15 @@ class ActivityFloatParadeDataDailyData(BaseStruct):
|
|||||||
|
|
||||||
class ActivityFloatParadeDataRewardPool(BaseStruct):
|
class ActivityFloatParadeDataRewardPool(BaseStruct):
|
||||||
grpId: str
|
grpId: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
name: str
|
name: str
|
||||||
desc: Union[str, None]
|
desc: Union[str, None]
|
||||||
reward: ItemBundle
|
reward: ItemBundle
|
||||||
|
|
||||||
|
|
||||||
class ActivityFloatParadeDataTactic(BaseStruct):
|
class ActivityFloatParadeDataTactic(BaseStruct):
|
||||||
id_: int = field(name="id")
|
id_: int = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
packName: str
|
packName: str
|
||||||
briefName: str
|
briefName: str
|
||||||
@ -1395,7 +1395,7 @@ class ActSandboxData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActivityMainlineBuffDataMissionGroupData(BaseStruct):
|
class ActivityMainlineBuffDataMissionGroupData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
bindBanner: str
|
bindBanner: str
|
||||||
sortId: int
|
sortId: int
|
||||||
zoneId: str
|
zoneId: str
|
||||||
@ -1411,7 +1411,7 @@ class ActivityMainlineBuffDataPeriodDataStepData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActivityMainlineBuffDataPeriodData(BaseStruct):
|
class ActivityMainlineBuffDataPeriodData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
startTime: int
|
startTime: int
|
||||||
endTime: int
|
endTime: int
|
||||||
favorUpCharDesc: str
|
favorUpCharDesc: str
|
||||||
@ -1511,23 +1511,23 @@ class Act24SideDataMissionExtraData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class WeightItemBundle(BaseStruct):
|
class WeightItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
dropType: str
|
dropType: str
|
||||||
count: int
|
count: int
|
||||||
weight: int
|
weight: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards(BaseStruct):
|
class StageDataDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayDetailRewards(BaseStruct):
|
class StageDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -1599,7 +1599,7 @@ class Act25SideDataArchiveItemData(BaseStruct):
|
|||||||
|
|
||||||
class Act25SideDataArchiveMapInfoData(BaseStruct):
|
class Act25SideDataArchiveMapInfoData(BaseStruct):
|
||||||
objectId: str
|
objectId: str
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
numberId: str
|
numberId: str
|
||||||
areaId: str
|
areaId: str
|
||||||
sortId: int
|
sortId: int
|
||||||
@ -1622,7 +1622,7 @@ class Act25SideDataAreaInfoData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act25SideDataAreaMissionData(BaseStruct):
|
class Act25SideDataAreaMissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
areaId: str
|
areaId: str
|
||||||
preposedMissionId: Union[str, None]
|
preposedMissionId: Union[str, None]
|
||||||
sortId: int
|
sortId: int
|
||||||
@ -1711,7 +1711,7 @@ class Act38D1DataAct38D1DimensionItemData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act38D1DataAct38D1CommentData(BaseStruct):
|
class Act38D1DataAct38D1CommentData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
desc: str
|
desc: str
|
||||||
|
|
||||||
@ -1746,7 +1746,7 @@ class Act38D1Data(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act27SideDataAct27SideGoodData(BaseStruct):
|
class Act27SideDataAct27SideGoodData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
typeDesc: str
|
typeDesc: str
|
||||||
iconId: str
|
iconId: str
|
||||||
@ -1865,7 +1865,7 @@ class Act42D0DataEffectGroupInfoData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act42D0DataEffectInfoRuneData(BaseStruct):
|
class Act42D0DataEffectInfoRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: int
|
points: int
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -1958,14 +1958,14 @@ class Act29SideFragData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act29SideOrcheType(Enum):
|
class Act29SideOrcheType(Enum):
|
||||||
ORCHE_1 = "ORCHE_1"
|
ORCHE_1 = 'ORCHE_1'
|
||||||
ORCHE_2 = "ORCHE_2"
|
ORCHE_2 = 'ORCHE_2'
|
||||||
ORCHE_3 = "ORCHE_3"
|
ORCHE_3 = 'ORCHE_3'
|
||||||
ENUM = "ENUM"
|
ENUM = 'ENUM'
|
||||||
|
|
||||||
|
|
||||||
class Act29SideOrcheData(BaseStruct):
|
class Act29SideOrcheData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
desc: str
|
desc: str
|
||||||
icon: str
|
icon: str
|
||||||
@ -1974,12 +1974,12 @@ class Act29SideOrcheData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act29SideProductType(Enum):
|
class Act29SideProductType(Enum):
|
||||||
PRODUCT_TYPE_1 = "PRODUCT_TYPE_1"
|
PRODUCT_TYPE_1 = 'PRODUCT_TYPE_1'
|
||||||
PRODUCT_TYPE_2 = "PRODUCT_TYPE_2"
|
PRODUCT_TYPE_2 = 'PRODUCT_TYPE_2'
|
||||||
PRODUCT_TYPE_3 = "PRODUCT_TYPE_3"
|
PRODUCT_TYPE_3 = 'PRODUCT_TYPE_3'
|
||||||
PRODUCT_TYPE_4 = "PRODUCT_TYPE_4"
|
PRODUCT_TYPE_4 = 'PRODUCT_TYPE_4'
|
||||||
PRODUCT_TYPE_5 = "PRODUCT_TYPE_5"
|
PRODUCT_TYPE_5 = 'PRODUCT_TYPE_5'
|
||||||
ENUM = "ENUM"
|
ENUM = 'ENUM'
|
||||||
|
|
||||||
|
|
||||||
class Act29SideProductGroupData(BaseStruct):
|
class Act29SideProductGroupData(BaseStruct):
|
||||||
@ -2009,7 +2009,7 @@ class Act29SideProductGroupData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act29SideProductData(BaseStruct):
|
class Act29SideProductData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
orcheId: Union[str, None]
|
orcheId: Union[str, None]
|
||||||
groupId: str
|
groupId: str
|
||||||
formId: Union[str, None]
|
formId: Union[str, None]
|
||||||
@ -2034,9 +2034,9 @@ class Act29SideInvestResultData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Act29SideInvestType(Enum):
|
class Act29SideInvestType(Enum):
|
||||||
MAJOR = "MAJOR"
|
MAJOR = 'MAJOR'
|
||||||
RARE = "RARE"
|
RARE = 'RARE'
|
||||||
NORMAL = "NORMAL"
|
NORMAL = 'NORMAL'
|
||||||
|
|
||||||
|
|
||||||
class Act29SideInvestData(BaseStruct):
|
class Act29SideInvestData(BaseStruct):
|
||||||
@ -2142,8 +2142,8 @@ class ActivityThemeDataTimeNode(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActivityThemeData(BaseStruct):
|
class ActivityThemeData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
funcId: str
|
funcId: str
|
||||||
endTs: int
|
endTs: int
|
||||||
sortId: int
|
sortId: int
|
||||||
@ -2365,7 +2365,7 @@ class AprilFoolTable(BaseStruct):
|
|||||||
class CartComponents(BaseStruct):
|
class CartComponents(BaseStruct):
|
||||||
compId: str
|
compId: str
|
||||||
sortId: int
|
sortId: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
posList: List[str]
|
posList: List[str]
|
||||||
posIdDict: Dict[str, List[str]]
|
posIdDict: Dict[str, List[str]]
|
||||||
name: str
|
name: str
|
||||||
@ -2605,7 +2605,7 @@ class ActivityTableExtraData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActivityTable(BaseStruct):
|
class ActivityTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
basicInfo: Dict[str, ActivityTableBasicData]
|
basicInfo: Dict[str, ActivityTableBasicData]
|
||||||
homeActConfig: Dict[str, ActivityTableHomeActivityConfig]
|
homeActConfig: Dict[str, ActivityTableHomeActivityConfig]
|
||||||
|
@ -62,7 +62,7 @@ class BattleVoiceOption(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MusicData(BaseStruct):
|
class MusicData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
bank: str
|
bank: str
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ class AudioDataFadeStyle(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class AudioData(BaseStruct):
|
class AudioData(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
bgmBanks: List[BGMBank]
|
bgmBanks: List[BGMBank]
|
||||||
soundFXBanks: List[SoundFXBank]
|
soundFXBanks: List[SoundFXBank]
|
||||||
|
@ -78,6 +78,6 @@ class BattleEquipData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BattleEquipTable(BaseStruct):
|
class BattleEquipTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
equips: Dict[str, BattleEquipData]
|
equips: Dict[str, BattleEquipData]
|
||||||
|
@ -6,13 +6,13 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataRoomUnlockCondCondItem(BaseStruct):
|
class BuildingDataRoomUnlockCondCondItem(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
level: int
|
level: int
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataRoomUnlockCond(BaseStruct):
|
class BuildingDataRoomUnlockCond(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
number: Dict[str, BuildingDataRoomUnlockCondCondItem]
|
number: Dict[str, BuildingDataRoomUnlockCondCondItem]
|
||||||
|
|
||||||
|
|
||||||
@ -22,9 +22,9 @@ class GridPosition(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataRoomDataBuildCost(BaseStruct):
|
class BuildingDataRoomDataBuildCost(BaseStruct):
|
||||||
@ -44,7 +44,7 @@ class BuildingDataRoomDataPhaseData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataRoomData(BaseStruct):
|
class BuildingDataRoomData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
description: Union[str, None]
|
description: Union[str, None]
|
||||||
defaultPrefabId: str
|
defaultPrefabId: str
|
||||||
@ -56,7 +56,7 @@ class BuildingDataRoomData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataLayoutDataRoomSlot(BaseStruct):
|
class BuildingDataLayoutDataRoomSlot(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
cleanCostId: str
|
cleanCostId: str
|
||||||
costLabor: int
|
costLabor: int
|
||||||
provideLabor: int
|
provideLabor: int
|
||||||
@ -71,26 +71,26 @@ class BuildingDataLayoutDataSlotCleanCostCountCost(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataLayoutDataSlotCleanCost(BaseStruct):
|
class BuildingDataLayoutDataSlotCleanCost(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
number: Dict[str, BuildingDataLayoutDataSlotCleanCostCountCost]
|
number: Dict[str, BuildingDataLayoutDataSlotCleanCostCountCost]
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataLayoutDataStoreyData(BaseStruct):
|
class BuildingDataLayoutDataStoreyData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
yOffset: int
|
yOffset: int
|
||||||
unlockControlLevel: int
|
unlockControlLevel: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataLayoutData(BaseStruct):
|
class BuildingDataLayoutData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
slots: Dict[str, BuildingDataLayoutDataRoomSlot]
|
slots: Dict[str, BuildingDataLayoutDataRoomSlot]
|
||||||
cleanCosts: Dict[str, BuildingDataLayoutDataSlotCleanCost]
|
cleanCosts: Dict[str, BuildingDataLayoutDataSlotCleanCost]
|
||||||
storeys: Dict[str, BuildingDataLayoutDataStoreyData]
|
storeys: Dict[str, BuildingDataLayoutDataStoreyData]
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataPrefabInfo(BaseStruct):
|
class BuildingDataPrefabInfo(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
blueprintRoomOverrideId: Union[str, None]
|
blueprintRoomOverrideId: Union[str, None]
|
||||||
size: GridPosition
|
size: GridPosition
|
||||||
floorGridSize: GridPosition
|
floorGridSize: GridPosition
|
||||||
@ -98,45 +98,45 @@ class BuildingDataPrefabInfo(BaseStruct):
|
|||||||
obstacleId: Union[str, None]
|
obstacleId: Union[str, None]
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataManufactPhase(BaseStruct, tag="BuildingDataManufactPhase"):
|
class BuildingDataManufactPhase(BaseStruct, tag='BuildingDataManufactPhase'):
|
||||||
speed: Union[float, int]
|
speed: Union[float, int]
|
||||||
outputCapacity: int
|
outputCapacity: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataShopPhase(BaseStruct, tag="BuildingDataShopPhase"):
|
class BuildingDataShopPhase(BaseStruct, tag='BuildingDataShopPhase'):
|
||||||
counterNum: int
|
counterNum: int
|
||||||
speed: Union[float, int]
|
speed: Union[float, int]
|
||||||
moneyCapacity: int
|
moneyCapacity: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataHirePhase(BaseStruct, tag="BuildingDataHirePhase"):
|
class BuildingDataHirePhase(BaseStruct, tag='BuildingDataHirePhase'):
|
||||||
economizeRate: float
|
economizeRate: float
|
||||||
resSpeed: int
|
resSpeed: int
|
||||||
refreshTimes: int
|
refreshTimes: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataDormPhase(BaseStruct, tag="BuildingDataDormPhase"):
|
class BuildingDataDormPhase(BaseStruct, tag='BuildingDataDormPhase'):
|
||||||
manpowerRecover: int
|
manpowerRecover: int
|
||||||
decorationLimit: int
|
decorationLimit: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataMeetingPhase(BaseStruct, tag="BuildingDataMeetingPhase"):
|
class BuildingDataMeetingPhase(BaseStruct, tag='BuildingDataMeetingPhase'):
|
||||||
friendSlotInc: int
|
friendSlotInc: int
|
||||||
maxVisitorNum: int
|
maxVisitorNum: int
|
||||||
gatheringSpeed: int
|
gatheringSpeed: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataTradingPhase(BaseStruct, tag="BuildingDataTradingPhase"):
|
class BuildingDataTradingPhase(BaseStruct, tag='BuildingDataTradingPhase'):
|
||||||
orderSpeed: Union[float, int]
|
orderSpeed: Union[float, int]
|
||||||
orderLimit: int
|
orderLimit: int
|
||||||
orderRarity: int
|
orderRarity: int
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataWorkshopPhase(BaseStruct, tag="BuildingDataWorkshopPhase"):
|
class BuildingDataWorkshopPhase(BaseStruct, tag='BuildingDataWorkshopPhase'):
|
||||||
manpowerFactor: Union[float, int]
|
manpowerFactor: Union[float, int]
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataTrainingPhase(BaseStruct, tag="BuildingDataTrainingPhase"):
|
class BuildingDataTrainingPhase(BaseStruct, tag='BuildingDataTrainingPhase'):
|
||||||
specSkillLvlLimit: int
|
specSkillLvlLimit: int
|
||||||
|
|
||||||
|
|
||||||
@ -222,11 +222,11 @@ class BuildingDataBuildingBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomDataFurnitureData(BaseStruct):
|
class BuildingDataCustomDataFurnitureData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
name: str
|
name: str
|
||||||
iconId: str
|
iconId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
subType: str
|
subType: str
|
||||||
location: str
|
location: str
|
||||||
category: str
|
category: str
|
||||||
@ -257,11 +257,11 @@ class BuildingDataCustomDataThemeQuickSetupItem(BaseStruct):
|
|||||||
furnitureId: str
|
furnitureId: str
|
||||||
pos0: int
|
pos0: int
|
||||||
pos1: int
|
pos1: int
|
||||||
dir_: int = field(name="dir")
|
dir_: int = field(name='dir')
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomDataThemeData(BaseStruct):
|
class BuildingDataCustomDataThemeData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
name: str
|
name: str
|
||||||
themeType: str
|
themeType: str
|
||||||
@ -272,7 +272,7 @@ class BuildingDataCustomDataThemeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomDataGroupData(BaseStruct):
|
class BuildingDataCustomDataGroupData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
name: str
|
name: str
|
||||||
themeId: str
|
themeId: str
|
||||||
@ -282,14 +282,14 @@ class BuildingDataCustomDataGroupData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomDataFurnitureTypeData(BaseStruct):
|
class BuildingDataCustomDataFurnitureTypeData(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomDataFurnitureSubTypeData(BaseStruct):
|
class BuildingDataCustomDataFurnitureSubTypeData(BaseStruct):
|
||||||
subType: str
|
subType: str
|
||||||
name: str
|
name: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
sortId: int
|
sortId: int
|
||||||
|
|
||||||
|
|
||||||
@ -318,9 +318,7 @@ class BuildingDataCustomDataDiyUISortTemplateListData(BaseStruct):
|
|||||||
expandState: str
|
expandState: str
|
||||||
defaultTemplateIndex: int
|
defaultTemplateIndex: int
|
||||||
defaultTemplateOrder: str
|
defaultTemplateOrder: str
|
||||||
templates: List[
|
templates: List[BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData]
|
||||||
BuildingDataCustomDataDiyUISortTemplateListDataDiyUISortTemplateData
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class BuildingDataCustomData(BaseStruct):
|
class BuildingDataCustomData(BaseStruct):
|
||||||
@ -423,7 +421,7 @@ class BuildingDataCreditFormula(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BuildingData(BaseStruct):
|
class BuildingData(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
controlSlotId: str
|
controlSlotId: str
|
||||||
meetingSlotId: str
|
meetingSlotId: str
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class CampaignDataBreakRewardLadder(BaseStruct):
|
class CampaignDataBreakRewardLadder(BaseStruct):
|
||||||
@ -18,16 +18,16 @@ class CampaignDataBreakRewardLadder(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class WeightItemBundle(BaseStruct):
|
class WeightItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
dropType: str
|
dropType: str
|
||||||
count: int
|
count: int
|
||||||
weight: int
|
weight: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards_(BaseStruct):
|
class StageDataDisplayRewards_(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -58,15 +58,15 @@ class CampaignDataGainLadder(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards(BaseStruct):
|
class StageDataDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayDetailRewards(BaseStruct):
|
class StageDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -93,19 +93,19 @@ class CampaignGroupData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CampaignRegionData(BaseStruct):
|
class CampaignRegionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
isUnknwon: int
|
isUnknwon: int
|
||||||
|
|
||||||
|
|
||||||
class CampaignZoneData(BaseStruct):
|
class CampaignZoneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
regionId: str
|
regionId: str
|
||||||
templateId: str
|
templateId: str
|
||||||
|
|
||||||
|
|
||||||
class CampaignMissionData(BaseStruct):
|
class CampaignMissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
param: List[str]
|
param: List[str]
|
||||||
description: str
|
description: str
|
||||||
@ -145,7 +145,7 @@ class CampaignTrainingAllOpenTimeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CampaignTable(BaseStruct):
|
class CampaignTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
campaigns: Dict[str, CampaignData]
|
campaigns: Dict[str, CampaignData]
|
||||||
campaignGroups: Dict[str, CampaignGroupData]
|
campaignGroups: Dict[str, CampaignGroupData]
|
||||||
|
@ -15,6 +15,6 @@ class ChapterData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ChapterTable(BaseStruct):
|
class ChapterTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
chapters: Dict[str, ChapterData]
|
chapters: Dict[str, ChapterData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class SpCharMissionData(BaseStruct):
|
class SpCharMissionData(BaseStruct):
|
||||||
@ -21,7 +21,7 @@ class SpCharMissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharMetaTable(BaseStruct):
|
class CharMetaTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
spCharGroups: Dict[str, List[str]]
|
spCharGroups: Dict[str, List[str]]
|
||||||
spCharMissions: Dict[str, Dict[str, SpCharMissionData]]
|
spCharMissions: Dict[str, Dict[str, SpCharMissionData]]
|
||||||
|
@ -37,7 +37,7 @@ class CharacterDataTraitDataBundle(BaseStruct):
|
|||||||
class AttributesData(BaseStruct):
|
class AttributesData(BaseStruct):
|
||||||
maxHp: int
|
maxHp: int
|
||||||
atk: int
|
atk: int
|
||||||
def_: int = field(name="def")
|
def_: int = field(name='def')
|
||||||
magicResistance: float
|
magicResistance: float
|
||||||
cost: int
|
cost: int
|
||||||
blockCnt: int
|
blockCnt: int
|
||||||
@ -65,9 +65,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class CharacterDataPhaseData(BaseStruct):
|
class CharacterDataPhaseData(BaseStruct):
|
||||||
@ -129,7 +129,7 @@ class ExternalBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharacterDataPotentialRank(BaseStruct):
|
class CharacterDataPotentialRank(BaseStruct):
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
description: str
|
description: str
|
||||||
buff: Union[ExternalBuff, None]
|
buff: Union[ExternalBuff, None]
|
||||||
equivalentCost: Union[ItemBundle, None]
|
equivalentCost: Union[ItemBundle, None]
|
||||||
@ -191,7 +191,7 @@ class CharPatchDataPatchDetailInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharPatchTable(BaseStruct):
|
class CharPatchTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
infos: Dict[str, CharPatchDataPatchInfo]
|
infos: Dict[str, CharPatchDataPatchInfo]
|
||||||
patchChars: Dict[str, CharacterData]
|
patchChars: Dict[str, CharacterData]
|
||||||
|
@ -33,7 +33,7 @@ class CharacterDataTraitDataBundle(BaseStruct):
|
|||||||
class AttributesData(BaseStruct):
|
class AttributesData(BaseStruct):
|
||||||
maxHp: int
|
maxHp: int
|
||||||
atk: int
|
atk: int
|
||||||
def_: int = field(name="def")
|
def_: int = field(name='def')
|
||||||
magicResistance: float
|
magicResistance: float
|
||||||
cost: int
|
cost: int
|
||||||
blockCnt: int
|
blockCnt: int
|
||||||
@ -61,9 +61,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class CharacterDataPhaseData(BaseStruct):
|
class CharacterDataPhaseData(BaseStruct):
|
||||||
@ -126,7 +126,7 @@ class ExternalBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharacterDataPotentialRank(BaseStruct):
|
class CharacterDataPotentialRank(BaseStruct):
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
description: str
|
description: str
|
||||||
buff: Union[ExternalBuff, None]
|
buff: Union[ExternalBuff, None]
|
||||||
equivalentCost: Union[ItemBundle, None]
|
equivalentCost: Union[ItemBundle, None]
|
||||||
@ -175,7 +175,7 @@ class CharacterData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharacterTable(BaseStruct):
|
class CharacterTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
chars: Dict[str, CharacterData]
|
chars: Dict[str, CharacterData]
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RuneTablePackedRuneData(BaseStruct):
|
class RuneTablePackedRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -39,7 +39,7 @@ class RuneTablePackedRuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharmItemData(BaseStruct):
|
class CharmItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sort: int
|
sort: int
|
||||||
name: str
|
name: str
|
||||||
icon: str
|
icon: str
|
||||||
@ -58,6 +58,6 @@ class CharmItemData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharmTable(BaseStruct):
|
class CharmTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
charmList: List[CharmItemData]
|
charmList: List[CharmItemData]
|
||||||
|
@ -36,7 +36,7 @@ class VoiceLangInfoData(BaseStruct):
|
|||||||
class VoiceLangData(BaseStruct):
|
class VoiceLangData(BaseStruct):
|
||||||
wordkeys: List[str]
|
wordkeys: List[str]
|
||||||
charId: str
|
charId: str
|
||||||
dict_: Dict[str, VoiceLangInfoData] = field(name="dict")
|
dict_: Dict[str, VoiceLangInfoData] = field(name='dict')
|
||||||
|
|
||||||
|
|
||||||
class VoiceLangTypeData(BaseStruct):
|
class VoiceLangTypeData(BaseStruct):
|
||||||
@ -55,7 +55,7 @@ class NewVoiceTimeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharwordTable(BaseStruct):
|
class CharwordTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
charWords: Dict[str, CharWordData]
|
charWords: Dict[str, CharWordData]
|
||||||
voiceLangDict: Dict[str, VoiceLangData]
|
voiceLangDict: Dict[str, VoiceLangData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class MonthlySignInData(BaseStruct):
|
class MonthlySignInData(BaseStruct):
|
||||||
@ -36,7 +36,7 @@ class MonthlyDailyBonusGroup(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CheckinTable(BaseStruct):
|
class CheckinTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
groups: Dict[str, MonthlySignInGroupData]
|
groups: Dict[str, MonthlySignInGroupData]
|
||||||
monthlySubItem: Dict[str, List[MonthlyDailyBonusGroup]]
|
monthlySubItem: Dict[str, List[MonthlyDailyBonusGroup]]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct):
|
class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct):
|
||||||
@ -17,7 +17,7 @@ class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerSingleTowerData(BaseStruct):
|
class ClimbTowerSingleTowerData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
stageNum: int
|
stageNum: int
|
||||||
name: str
|
name: str
|
||||||
@ -42,29 +42,29 @@ class ClimbTowerSingleTowerData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class WeightItemBundle(BaseStruct):
|
class WeightItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
dropType: str
|
dropType: str
|
||||||
count: int
|
count: int
|
||||||
weight: int
|
weight: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards(BaseStruct):
|
class StageDataDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayDetailRewards(BaseStruct):
|
class StageDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
class ClimbTowerDropDisplayInfo(BaseStruct):
|
class ClimbTowerDropDisplayInfo(BaseStruct):
|
||||||
itemId: str
|
itemId: str
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
maxCount: int
|
maxCount: int
|
||||||
minCount: int
|
minCount: int
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ class ClimbTowerLevelDropInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerSingleLevelData(BaseStruct):
|
class ClimbTowerSingleLevelData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
levelId: str
|
levelId: str
|
||||||
towerId: str
|
towerId: str
|
||||||
layerNum: int
|
layerNum: int
|
||||||
@ -90,7 +90,7 @@ class ClimbTowerSingleLevelData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerTacticalBuffData(BaseStruct):
|
class ClimbTowerTacticalBuffData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
profession: str
|
profession: str
|
||||||
isDefaultActive: bool
|
isDefaultActive: bool
|
||||||
@ -124,7 +124,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RuneTablePackedRuneData(BaseStruct):
|
class RuneTablePackedRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -132,8 +132,8 @@ class RuneTablePackedRuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerMainCardData(BaseStruct):
|
class ClimbTowerMainCardData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
linkedTowerId: Union[str, None]
|
linkedTowerId: Union[str, None]
|
||||||
sortId: int
|
sortId: int
|
||||||
name: str
|
name: str
|
||||||
@ -144,7 +144,7 @@ class ClimbTowerMainCardData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerSubCardData(BaseStruct):
|
class ClimbTowerSubCardData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
mainCardId: str
|
mainCardId: str
|
||||||
sortId: int
|
sortId: int
|
||||||
name: str
|
name: str
|
||||||
@ -154,7 +154,7 @@ class ClimbTowerSubCardData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerCurseCardData(BaseStruct):
|
class ClimbTowerCurseCardData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
towerIdList: List[str]
|
towerIdList: List[str]
|
||||||
name: str
|
name: str
|
||||||
desc: str
|
desc: str
|
||||||
@ -162,7 +162,7 @@ class ClimbTowerCurseCardData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerSeasonInfoData(BaseStruct):
|
class ClimbTowerSeasonInfoData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
startTs: int
|
startTs: int
|
||||||
endTs: int
|
endTs: int
|
||||||
@ -196,16 +196,16 @@ class ClimbTowerRewardInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionDisplayRewards(BaseStruct):
|
class MissionDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
class MissionData(BaseStruct):
|
class MissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
description: str
|
description: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
itemBgType: str
|
itemBgType: str
|
||||||
preMissionIds: Union[List[str], None]
|
preMissionIds: Union[List[str], None]
|
||||||
template: str
|
template: str
|
||||||
@ -228,9 +228,9 @@ class ClimbTowerMissionData(MissionData):
|
|||||||
|
|
||||||
|
|
||||||
class MissionGroup(BaseStruct):
|
class MissionGroup(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: Union[str, None]
|
title: Union[str, None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
preMissionGroup: Union[str, None]
|
preMissionGroup: Union[str, None]
|
||||||
period: Union[List[int], None]
|
period: Union[List[int], None]
|
||||||
rewards: List[MissionDisplayRewards]
|
rewards: List[MissionDisplayRewards]
|
||||||
@ -240,7 +240,7 @@ class MissionGroup(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClimbTowerTable(BaseStruct):
|
class ClimbTowerTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
towers: Dict[str, ClimbTowerSingleTowerData]
|
towers: Dict[str, ClimbTowerSingleTowerData]
|
||||||
levels: Dict[str, ClimbTowerSingleLevelData]
|
levels: Dict[str, ClimbTowerSingleLevelData]
|
||||||
|
@ -21,7 +21,7 @@ class MeetingClueDataReceiveTimeBonus(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ClueData(BaseStruct):
|
class ClueData(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
clues: List[MeetingClueDataClueData]
|
clues: List[MeetingClueDataClueData]
|
||||||
clueTypes: List[MeetingClueDataClueTypeData]
|
clueTypes: List[MeetingClueDataClueTypeData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class StringKeyFrames(BaseStruct):
|
class StringKeyFrames(BaseStruct):
|
||||||
@ -34,7 +34,7 @@ class CrisisMapRankInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CrisisTable(BaseStruct):
|
class CrisisTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
seasonInfo: List[CrisisClientDataSeasonInfo]
|
seasonInfo: List[CrisisClientDataSeasonInfo]
|
||||||
meta: str
|
meta: str
|
||||||
|
@ -7,9 +7,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class StringKeyFrames(BaseStruct):
|
class StringKeyFrames(BaseStruct):
|
||||||
@ -31,13 +31,13 @@ class CrisisV2ConstData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class appraiseType(Enum):
|
class appraiseType(Enum):
|
||||||
RANK_D = "RANK_D"
|
RANK_D = 'RANK_D'
|
||||||
RANK_C = "RANK_C"
|
RANK_C = 'RANK_C'
|
||||||
RANK_B = "RANK_B"
|
RANK_B = 'RANK_B'
|
||||||
RANK_A = "RANK_A"
|
RANK_A = 'RANK_A'
|
||||||
RANK_S = "RANK_S"
|
RANK_S = 'RANK_S'
|
||||||
RANK_SS = "RANK_SS"
|
RANK_SS = 'RANK_SS'
|
||||||
RANK_SSS = "RANK_SSS"
|
RANK_SSS = 'RANK_SSS'
|
||||||
|
|
||||||
|
|
||||||
class CrisisV2ScoreLevelToAppraiseData(BaseStruct):
|
class CrisisV2ScoreLevelToAppraiseData(BaseStruct):
|
||||||
@ -45,7 +45,7 @@ class CrisisV2ScoreLevelToAppraiseData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CrisisV2Table(BaseStruct):
|
class CrisisV2Table(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
seasonInfoDataMap: Dict
|
seasonInfoDataMap: Dict
|
||||||
scoreLevelToAppraiseDataMap: Dict[str, CrisisV2ScoreLevelToAppraiseData]
|
scoreLevelToAppraiseDataMap: Dict[str, CrisisV2ScoreLevelToAppraiseData]
|
||||||
|
@ -42,8 +42,8 @@ class HomeBackgroundSingleData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class HomeBackgroundThemeData(BaseStruct):
|
class HomeBackgroundThemeData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
sortId: int
|
sortId: int
|
||||||
startTime: int
|
startTime: int
|
||||||
tmName: str
|
tmName: str
|
||||||
@ -61,7 +61,7 @@ class ThemeLimitInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class HomeBackgroundThemeLimitData(BaseStruct):
|
class HomeBackgroundThemeLimitData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
limitInfos: List[ThemeLimitInfo]
|
limitInfos: List[ThemeLimitInfo]
|
||||||
|
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ class HomeBackgroundData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class DisplayMetaTable(BaseStruct):
|
class DisplayMetaTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
playerAvatarData: PlayerAvatarData
|
playerAvatarData: PlayerAvatarData
|
||||||
homeBackgroundData: HomeBackgroundData
|
homeBackgroundData: HomeBackgroundData
|
||||||
|
@ -31,14 +31,14 @@ class EnemyHandBookData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class EnemyHandbookLevelInfoDataRangePair(BaseStruct):
|
class EnemyHandbookLevelInfoDataRangePair(BaseStruct):
|
||||||
min_: float = field(name="min")
|
min_: float = field(name='min')
|
||||||
max_: float = field(name="max")
|
max_: float = field(name='max')
|
||||||
|
|
||||||
|
|
||||||
class EnemyHandbookLevelInfoData(BaseStruct):
|
class EnemyHandbookLevelInfoData(BaseStruct):
|
||||||
classLevel: str
|
classLevel: str
|
||||||
attack: EnemyHandbookLevelInfoDataRangePair
|
attack: EnemyHandbookLevelInfoDataRangePair
|
||||||
def_: EnemyHandbookLevelInfoDataRangePair = field(name="def")
|
def_: EnemyHandbookLevelInfoDataRangePair = field(name='def')
|
||||||
magicRes: EnemyHandbookLevelInfoDataRangePair
|
magicRes: EnemyHandbookLevelInfoDataRangePair
|
||||||
maxHP: EnemyHandbookLevelInfoDataRangePair
|
maxHP: EnemyHandbookLevelInfoDataRangePair
|
||||||
moveSpeed: EnemyHandbookLevelInfoDataRangePair
|
moveSpeed: EnemyHandbookLevelInfoDataRangePair
|
||||||
@ -48,13 +48,13 @@ class EnemyHandbookLevelInfoData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class EnemyHandbookRaceData(BaseStruct):
|
class EnemyHandbookRaceData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
raceName: str
|
raceName: str
|
||||||
sortId: int
|
sortId: int
|
||||||
|
|
||||||
|
|
||||||
class EnemyHandbookTable(BaseStruct):
|
class EnemyHandbookTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
levelInfoList: List[EnemyHandbookLevelInfoData]
|
levelInfoList: List[EnemyHandbookLevelInfoData]
|
||||||
enemyData: Dict[str, EnemyHandBookData]
|
enemyData: Dict[str, EnemyHandBookData]
|
||||||
|
@ -15,7 +15,7 @@ class FavorDataFrames(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class FavorTable(BaseStruct):
|
class FavorTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
maxFavor: int
|
maxFavor: int
|
||||||
favorFrames: List[FavorDataFrames]
|
favorFrames: List[FavorDataFrames]
|
||||||
|
@ -32,9 +32,9 @@ class GachaDataCarouselData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class GachaDataRecruitRange(BaseStruct):
|
class GachaDataRecruitRange(BaseStruct):
|
||||||
@ -131,7 +131,7 @@ class GachaDataFesGachaPoolRelateItem(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class GachaTable(BaseStruct):
|
class GachaTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
gachaTags: List[GachaTag]
|
gachaTags: List[GachaTag]
|
||||||
carousel: List[GachaDataCarouselData]
|
carousel: List[GachaDataCarouselData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class GameDataConstsCharAssistRefreshTimeState(BaseStruct):
|
class GameDataConstsCharAssistRefreshTimeState(BaseStruct):
|
||||||
@ -23,7 +23,7 @@ class TermDescriptionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class GamedataConst(BaseStruct):
|
class GamedataConst(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
addedRewardDisplayZone: str
|
addedRewardDisplayZone: str
|
||||||
advancedGachaCrystalCost: int
|
advancedGachaCrystalCost: int
|
||||||
|
@ -13,9 +13,9 @@ class HandbookUnlockParam(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class HandbookStageTimeData(BaseStruct):
|
class HandbookStageTimeData(BaseStruct):
|
||||||
@ -43,11 +43,11 @@ class HandbookStoryStageData(BaseStruct):
|
|||||||
class HandbookDisplayCondition(BaseStruct):
|
class HandbookDisplayCondition(BaseStruct):
|
||||||
charId: str
|
charId: str
|
||||||
conditionCharId: str
|
conditionCharId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class HandbookTeamMission(BaseStruct):
|
class HandbookTeamMission(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sort: int
|
sort: int
|
||||||
powerId: str
|
powerId: str
|
||||||
powerName: str
|
powerName: str
|
||||||
@ -122,7 +122,7 @@ class HandbookInfoData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class HandbookInfoTable(BaseStruct):
|
class HandbookInfoTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
handbookDict: Dict[str, HandbookInfoData]
|
handbookDict: Dict[str, HandbookInfoData]
|
||||||
npcDict: Dict[str, NPCData]
|
npcDict: Dict[str, NPCData]
|
||||||
|
@ -40,6 +40,6 @@ class CharHandbook(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class HandbookTable(BaseStruct):
|
class HandbookTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
char_102_texas: CharHandbook
|
char_102_texas: CharHandbook
|
||||||
|
@ -15,6 +15,6 @@ class HandbookTeam(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class HandbookTeamTable(BaseStruct):
|
class HandbookTeamTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
team: Dict[str, HandbookTeam]
|
team: Dict[str, HandbookTeam]
|
||||||
|
@ -16,9 +16,9 @@ class ItemDataBuildingProductInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class FavorCharacterInfo(BaseStruct):
|
class FavorCharacterInfo(BaseStruct):
|
||||||
@ -47,13 +47,13 @@ class UniCollectionInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ApSupplyFeature(BaseStruct):
|
class ApSupplyFeature(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
ap: int
|
ap: int
|
||||||
hasTs: bool
|
hasTs: bool
|
||||||
|
|
||||||
|
|
||||||
class ExpItemFeature(BaseStruct):
|
class ExpItemFeature(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
gainExp: int
|
gainExp: int
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ class ItemData(BaseStruct):
|
|||||||
|
|
||||||
class CharVoucherItemFeature(BaseStruct):
|
class CharVoucherItemFeature(BaseStruct):
|
||||||
displayType: int
|
displayType: int
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
|
|
||||||
|
|
||||||
class ServerItemReminderMailData(BaseStruct):
|
class ServerItemReminderMailData(BaseStruct):
|
||||||
@ -98,7 +98,7 @@ class ServerItemReminderInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemTable(BaseStruct):
|
class ItemTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
activityPotentialCharacters: Dict[str, ActivityPotentialCharacterInfo]
|
activityPotentialCharacters: Dict[str, ActivityPotentialCharacterInfo]
|
||||||
apSupplies: Dict[str, ApSupplyFeature]
|
apSupplies: Dict[str, ApSupplyFeature]
|
||||||
|
@ -8,13 +8,13 @@ from msgspec import field
|
|||||||
class MedalExpireTime(BaseStruct):
|
class MedalExpireTime(BaseStruct):
|
||||||
start: int
|
start: int
|
||||||
end: int
|
end: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class MedalGroupData(BaseStruct):
|
class MedalGroupData(BaseStruct):
|
||||||
@ -61,7 +61,7 @@ class MedalPerData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MedalTable(BaseStruct):
|
class MedalTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
medalList: List[MedalPerData]
|
medalList: List[MedalPerData]
|
||||||
medalTypeData: Dict[str, MedalTypeData]
|
medalTypeData: Dict[str, MedalTypeData]
|
||||||
|
@ -6,8 +6,8 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class MissionDisplayRewards(BaseStruct):
|
class MissionDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
@ -28,26 +28,26 @@ class MissionWeeklyRewardConf(BaseStruct):
|
|||||||
beginTime: int
|
beginTime: int
|
||||||
endTime: int
|
endTime: int
|
||||||
groupId: str
|
groupId: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
periodicalPointCost: int
|
periodicalPointCost: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
sortIndex: int
|
sortIndex: int
|
||||||
rewards: List[MissionDisplayRewards]
|
rewards: List[MissionDisplayRewards]
|
||||||
|
|
||||||
|
|
||||||
class MissionDailyRewardConf(BaseStruct):
|
class MissionDailyRewardConf(BaseStruct):
|
||||||
groupId: str
|
groupId: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
periodicalPointCost: int
|
periodicalPointCost: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
sortIndex: int
|
sortIndex: int
|
||||||
rewards: List[MissionDisplayRewards]
|
rewards: List[MissionDisplayRewards]
|
||||||
|
|
||||||
|
|
||||||
class MissionGroup(BaseStruct):
|
class MissionGroup(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: Union[str, None]
|
title: Union[str, None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
preMissionGroup: Union[str, None]
|
preMissionGroup: Union[str, None]
|
||||||
period: Union[List[int], None]
|
period: Union[List[int], None]
|
||||||
rewards: Union[List[MissionDisplayRewards], None]
|
rewards: Union[List[MissionDisplayRewards], None]
|
||||||
@ -57,10 +57,10 @@ class MissionGroup(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionData(BaseStruct):
|
class MissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
description: str
|
description: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
itemBgType: str
|
itemBgType: str
|
||||||
preMissionIds: Union[List[str], None]
|
preMissionIds: Union[List[str], None]
|
||||||
template: str
|
template: str
|
||||||
@ -78,7 +78,7 @@ class MissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionTable(BaseStruct):
|
class MissionTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
missions: Dict[str, MissionData]
|
missions: Dict[str, MissionData]
|
||||||
missionGroups: Dict[str, MissionGroup]
|
missionGroups: Dict[str, MissionGroup]
|
||||||
|
@ -6,21 +6,21 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class RewardItem(BaseStruct):
|
class RewardItem(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
sortId: int
|
sortId: int
|
||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
class MissionDisplayRewards(BaseStruct):
|
class MissionDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
|
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ class ReturnCheckinData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ReturnLongTermTaskData(BaseStruct):
|
class ReturnLongTermTaskData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
template: str
|
template: str
|
||||||
param: List[str]
|
param: List[str]
|
||||||
@ -53,7 +53,7 @@ class ReturnLongTermTaskData(BaseStruct):
|
|||||||
|
|
||||||
class ReturnDailyTaskData(BaseStruct):
|
class ReturnDailyTaskData(BaseStruct):
|
||||||
groupId: str
|
groupId: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
groupSortId: int
|
groupSortId: int
|
||||||
taskSortId: int
|
taskSortId: int
|
||||||
template: str
|
template: str
|
||||||
@ -105,10 +105,10 @@ class ChainLoginData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionData(BaseStruct):
|
class MissionData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
sortId: int
|
sortId: int
|
||||||
description: str
|
description: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
itemBgType: str
|
itemBgType: str
|
||||||
preMissionIds: None
|
preMissionIds: None
|
||||||
template: str
|
template: str
|
||||||
@ -126,9 +126,9 @@ class MissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class MissionGroup(BaseStruct):
|
class MissionGroup(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: None
|
title: None
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
preMissionGroup: None
|
preMissionGroup: None
|
||||||
period: None
|
period: None
|
||||||
rewards: None
|
rewards: None
|
||||||
@ -145,7 +145,7 @@ class OpenServerData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class OpenServerScheduleItem(BaseStruct):
|
class OpenServerScheduleItem(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
startTs: int
|
startTs: int
|
||||||
endTs: int
|
endTs: int
|
||||||
totalCheckinDescption: str
|
totalCheckinDescption: str
|
||||||
@ -269,7 +269,7 @@ class OpenServerNewbieCheckInPackage(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class OpenServerTable(BaseStruct):
|
class OpenServerTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
schedule: List[OpenServerScheduleItem]
|
schedule: List[OpenServerScheduleItem]
|
||||||
dataMap: Dict[str, OpenServerData]
|
dataMap: Dict[str, OpenServerData]
|
||||||
|
@ -21,7 +21,7 @@ class PlayerAvatarPerData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class PlayerAvatarTable(BaseStruct):
|
class PlayerAvatarTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
avatarList: List[PlayerAvatarPerData]
|
avatarList: List[PlayerAvatarPerData]
|
||||||
avatarTypeData: Dict[str, PlayerAvatarGroupData]
|
avatarTypeData: Dict[str, PlayerAvatarGroupData]
|
||||||
|
@ -18,13 +18,13 @@ class ObscuredRect(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class Stage(BaseStruct):
|
class Stage(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
direction: int
|
direction: int
|
||||||
grids: List[GridPosition]
|
grids: List[GridPosition]
|
||||||
boundingBoxes: Union[List[ObscuredRect], None] = None
|
boundingBoxes: Union[List[ObscuredRect], None] = None
|
||||||
|
|
||||||
|
|
||||||
class RangeTable(BaseStruct):
|
class RangeTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
range_: Dict[str, Stage]
|
range_: Dict[str, Stage]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ReplicateData(BaseStruct):
|
class ReplicateData(BaseStruct):
|
||||||
@ -21,6 +21,6 @@ class ReplicateList(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ReplicateTable(BaseStruct):
|
class ReplicateTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
replicate: Dict[str, ReplicateList]
|
replicate: Dict[str, ReplicateList]
|
||||||
|
@ -6,14 +6,14 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards(BaseStruct):
|
class StageDataDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -32,8 +32,8 @@ class Act17sideDataChoiceNodeOptionData(BaseStruct):
|
|||||||
|
|
||||||
class StageDataDisplayDetailRewards(BaseStruct):
|
class StageDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
CannotGetPercent: Union[float, None] = None
|
CannotGetPercent: Union[float, None] = None
|
||||||
GetPercent: Union[float, None] = None
|
GetPercent: Union[float, None] = None
|
||||||
@ -69,7 +69,7 @@ class Act17sideDataMainlineChapterData(BaseStruct):
|
|||||||
chapterDes: str
|
chapterDes: str
|
||||||
chapterIcon: str
|
chapterIcon: str
|
||||||
unlockDes: str
|
unlockDes: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
|
|
||||||
|
|
||||||
class RunesSelector(BaseStruct):
|
class RunesSelector(BaseStruct):
|
||||||
@ -92,7 +92,7 @@ class TechTreeBranchRunes(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class BranchRuneData(BaseStruct):
|
class BranchRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
mutexGroupKey: None
|
mutexGroupKey: None
|
||||||
description: str
|
description: str
|
||||||
@ -260,7 +260,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
class RuneTablePackedRuneData(BaseStruct):
|
class RuneTablePackedRuneData(BaseStruct):
|
||||||
description: str
|
description: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
runes: List[RuneData]
|
runes: List[RuneData]
|
||||||
mutexGroupKey: Union[str, None] = None
|
mutexGroupKey: Union[str, None] = None
|
||||||
@ -316,8 +316,8 @@ class RetroTrailRuleData(BaseStruct):
|
|||||||
class WeightItemBundle(BaseStruct):
|
class WeightItemBundle(BaseStruct):
|
||||||
count: int
|
count: int
|
||||||
dropType: str
|
dropType: str
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
weight: int
|
weight: int
|
||||||
|
|
||||||
|
|
||||||
@ -401,7 +401,7 @@ class RetroTrailData(BaseStruct):
|
|||||||
|
|
||||||
class RetroActData(BaseStruct):
|
class RetroActData(BaseStruct):
|
||||||
retroId: str
|
retroId: str
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
linkedActId: List[str]
|
linkedActId: List[str]
|
||||||
startTime: int
|
startTime: int
|
||||||
trailStartTime: int
|
trailStartTime: int
|
||||||
@ -430,7 +430,7 @@ class RetroStageOverrideInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RetroTable(BaseStruct):
|
class RetroTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
customData: ActivityCustomData
|
customData: ActivityCustomData
|
||||||
initRetroCoin: int
|
initRetroCoin: int
|
||||||
|
@ -28,12 +28,12 @@ class RoguelikeOuterBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeOutBuffData(BaseStruct):
|
class RoguelikeOutBuffData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
buffs: Dict[str, RoguelikeOuterBuff]
|
buffs: Dict[str, RoguelikeOuterBuff]
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeEndingData(BaseStruct):
|
class RoguelikeEndingData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
backgroundId: str
|
backgroundId: str
|
||||||
name: str
|
name: str
|
||||||
description: str
|
description: str
|
||||||
@ -43,7 +43,7 @@ class RoguelikeEndingData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeModeData(BaseStruct):
|
class RoguelikeModeData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
canUnlockItem: int
|
canUnlockItem: int
|
||||||
scoreFactor: float
|
scoreFactor: float
|
||||||
@ -56,24 +56,24 @@ class RoguelikeModeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeChoiceSceneData(BaseStruct):
|
class RoguelikeChoiceSceneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: str
|
title: str
|
||||||
description: str
|
description: str
|
||||||
background: str
|
background: str
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeChoiceData(BaseStruct):
|
class RoguelikeChoiceData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: str
|
title: str
|
||||||
description: Union[str, None]
|
description: Union[str, None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
nextSceneId: Union[str, None]
|
nextSceneId: Union[str, None]
|
||||||
icon: Union[str, None]
|
icon: Union[str, None]
|
||||||
param: Dict[str, object]
|
param: Dict[str, object]
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeZoneData(BaseStruct):
|
class RoguelikeZoneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
description: str
|
description: str
|
||||||
endingDescription: str
|
endingDescription: str
|
||||||
@ -82,7 +82,7 @@ class RoguelikeZoneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeStageData(BaseStruct):
|
class RoguelikeStageData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
linkedStageId: str
|
linkedStageId: str
|
||||||
levelId: str
|
levelId: str
|
||||||
code: str
|
code: str
|
||||||
@ -96,12 +96,12 @@ class RoguelikeStageData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeRelicFeature(BaseStruct):
|
class RoguelikeRelicFeature(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
buffs: List[RoguelikeBuff]
|
buffs: List[RoguelikeBuff]
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeUpgradeTicketFeature(BaseStruct):
|
class RoguelikeUpgradeTicketFeature(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
profession: int
|
profession: int
|
||||||
rarity: int
|
rarity: int
|
||||||
professionList: List[str]
|
professionList: List[str]
|
||||||
@ -109,7 +109,7 @@ class RoguelikeUpgradeTicketFeature(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeRecruitTicketFeature(BaseStruct):
|
class RoguelikeRecruitTicketFeature(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
profession: int
|
profession: int
|
||||||
rarity: int
|
rarity: int
|
||||||
professionList: List[str]
|
professionList: List[str]
|
||||||
@ -125,13 +125,13 @@ class RelicStableUnlockParam(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeItemData(BaseStruct):
|
class RoguelikeItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
description: Union[str, None]
|
description: Union[str, None]
|
||||||
usage: str
|
usage: str
|
||||||
obtainApproach: str
|
obtainApproach: str
|
||||||
iconId: str
|
iconId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
rarity: str
|
rarity: str
|
||||||
value: int
|
value: int
|
||||||
sortId: int
|
sortId: int
|
||||||
@ -193,7 +193,7 @@ class RoguelikeConstTable(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTable(BaseStruct):
|
class RoguelikeTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
constTable: RoguelikeConstTable
|
constTable: RoguelikeConstTable
|
||||||
itemTable: RoguelikeItemTable
|
itemTable: RoguelikeItemTable
|
||||||
|
@ -21,7 +21,7 @@ class RoguelikeTopicConfig(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicBasicData(BaseStruct):
|
class RoguelikeTopicBasicData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
startTime: int
|
startTime: int
|
||||||
disappearTimeOnMainScreen: int
|
disappearTimeOnMainScreen: int
|
||||||
@ -68,7 +68,7 @@ class RoguelikeTopicEnroll(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicBP(BaseStruct):
|
class RoguelikeTopicBP(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
level: int
|
level: int
|
||||||
tokenNum: int
|
tokenNum: int
|
||||||
nextTokenNum: int
|
nextTokenNum: int
|
||||||
@ -88,9 +88,9 @@ class RoguelikeTopicMilestoneUpdateData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicBPGrandPrize(BaseStruct):
|
class RoguelikeTopicBPGrandPrize(BaseStruct):
|
||||||
@ -111,7 +111,7 @@ class RoguelikeTopicBPGrandPrize(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicMonthMission(BaseStruct):
|
class RoguelikeTopicMonthMission(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
taskName: str
|
taskName: str
|
||||||
taskClass: str
|
taskClass: str
|
||||||
innerClassWeight: int
|
innerClassWeight: int
|
||||||
@ -122,7 +122,7 @@ class RoguelikeTopicMonthMission(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicMonthSquad(BaseStruct):
|
class RoguelikeTopicMonthSquad(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
teamName: str
|
teamName: str
|
||||||
teamSubName: Union[str, None]
|
teamSubName: Union[str, None]
|
||||||
teamFlavorDesc: Union[str, None]
|
teamFlavorDesc: Union[str, None]
|
||||||
@ -292,8 +292,8 @@ class ActArchiveBuffData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActArchiveTotemItemData(BaseStruct):
|
class ActArchiveTotemItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
enrollConditionId: Union[str, None]
|
enrollConditionId: Union[str, None]
|
||||||
sortId: int
|
sortId: int
|
||||||
|
|
||||||
@ -303,7 +303,7 @@ class ActArchiveTotemData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActArchiveChaosItemData(BaseStruct):
|
class ActArchiveChaosItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
isHidden: bool
|
isHidden: bool
|
||||||
enrollId: Union[str, None]
|
enrollId: Union[str, None]
|
||||||
sortId: int
|
sortId: int
|
||||||
@ -412,7 +412,7 @@ class RoguelikeGameInitData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameStageData(BaseStruct):
|
class RoguelikeGameStageData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
linkedStageId: str
|
linkedStageId: str
|
||||||
levelId: str
|
levelId: str
|
||||||
code: str
|
code: str
|
||||||
@ -431,7 +431,7 @@ class RoguelikeGameStageData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameZoneData(BaseStruct):
|
class RoguelikeGameZoneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
clockPerformance: Union[str, None]
|
clockPerformance: Union[str, None]
|
||||||
displayTime: Union[str, None]
|
displayTime: Union[str, None]
|
||||||
@ -453,7 +453,7 @@ class RoguelikeGameTrapData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameRecruitTicketData(BaseStruct):
|
class RoguelikeGameRecruitTicketData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
profession: int
|
profession: int
|
||||||
rarity: int
|
rarity: int
|
||||||
professionList: List[str]
|
professionList: List[str]
|
||||||
@ -464,7 +464,7 @@ class RoguelikeGameRecruitTicketData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameUpgradeTicketData(BaseStruct):
|
class RoguelikeGameUpgradeTicketData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
profession: int
|
profession: int
|
||||||
rarity: int
|
rarity: int
|
||||||
professionList: List[str]
|
professionList: List[str]
|
||||||
@ -472,7 +472,7 @@ class RoguelikeGameUpgradeTicketData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameCustomTicketData(BaseStruct):
|
class RoguelikeGameCustomTicketData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
subType: str
|
subType: str
|
||||||
discardText: str
|
discardText: str
|
||||||
|
|
||||||
@ -489,7 +489,7 @@ class RoguelikeBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameRelicData(BaseStruct):
|
class RoguelikeGameRelicData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
buffs: List[RoguelikeBuff]
|
buffs: List[RoguelikeBuff]
|
||||||
|
|
||||||
|
|
||||||
@ -500,13 +500,13 @@ class RoguelikeGameRelicCheckParam(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameRelicParamData(BaseStruct):
|
class RoguelikeGameRelicParamData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
checkCharBoxTypes: List[str]
|
checkCharBoxTypes: List[str]
|
||||||
checkCharBoxParams: List[RoguelikeGameRelicCheckParam]
|
checkCharBoxParams: List[RoguelikeGameRelicCheckParam]
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeGameRecruitGrpData(BaseStruct):
|
class RoguelikeGameRecruitGrpData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
iconId: str
|
iconId: str
|
||||||
name: str
|
name: str
|
||||||
desc: str
|
desc: str
|
||||||
@ -514,7 +514,7 @@ class RoguelikeGameRecruitGrpData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeChoiceDisplayData(BaseStruct):
|
class RoguelikeChoiceDisplayData(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
funcIconId: Union[str, None]
|
funcIconId: Union[str, None]
|
||||||
itemId: Union[str, None]
|
itemId: Union[str, None]
|
||||||
taskId: Union[str, None]
|
taskId: Union[str, None]
|
||||||
@ -524,11 +524,11 @@ class RoguelikeChoiceDisplayData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameChoiceData(BaseStruct):
|
class RoguelikeGameChoiceData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: str
|
title: str
|
||||||
description: Union[str, None]
|
description: Union[str, None]
|
||||||
lockedCoverDesc: Union[str, None]
|
lockedCoverDesc: Union[str, None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
leftDecoType: str
|
leftDecoType: str
|
||||||
nextSceneId: Union[str, None]
|
nextSceneId: Union[str, None]
|
||||||
icon: Union[str, None]
|
icon: Union[str, None]
|
||||||
@ -537,7 +537,7 @@ class RoguelikeGameChoiceData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameChoiceSceneData(BaseStruct):
|
class RoguelikeGameChoiceSceneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
title: str
|
title: str
|
||||||
description: str
|
description: str
|
||||||
background: Union[str, None]
|
background: Union[str, None]
|
||||||
@ -560,8 +560,8 @@ class RoguelikeGameNodeSubTypeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameVariationData(BaseStruct):
|
class RoguelikeGameVariationData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
outerName: str
|
outerName: str
|
||||||
innerName: str
|
innerName: str
|
||||||
functionDesc: str
|
functionDesc: str
|
||||||
@ -571,7 +571,7 @@ class RoguelikeGameVariationData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameCharBuffData(BaseStruct):
|
class RoguelikeGameCharBuffData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
iconId: str
|
iconId: str
|
||||||
outerName: str
|
outerName: str
|
||||||
innerName: str
|
innerName: str
|
||||||
@ -581,7 +581,7 @@ class RoguelikeGameCharBuffData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameSquadBuffData(BaseStruct):
|
class RoguelikeGameSquadBuffData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
iconId: str
|
iconId: str
|
||||||
outerName: str
|
outerName: str
|
||||||
innerName: str
|
innerName: str
|
||||||
@ -663,7 +663,7 @@ class RoguelikeGameEndingDataLevelIcon(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameEndingData(BaseStruct):
|
class RoguelikeGameEndingData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
familyId: int
|
familyId: int
|
||||||
name: str
|
name: str
|
||||||
desc: str
|
desc: str
|
||||||
@ -685,13 +685,13 @@ class TipData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeGameItemData(BaseStruct):
|
class RoguelikeGameItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
description: Union[str, None]
|
description: Union[str, None]
|
||||||
usage: str
|
usage: str
|
||||||
obtainApproach: str
|
obtainApproach: str
|
||||||
iconId: str
|
iconId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
subType: str
|
subType: str
|
||||||
rarity: str
|
rarity: str
|
||||||
value: int
|
value: int
|
||||||
@ -961,7 +961,7 @@ class RoguelikeVisionData(BaseStruct):
|
|||||||
|
|
||||||
class RoguelikeVisionModuleDataVisionChoiceConfig(BaseStruct):
|
class RoguelikeVisionModuleDataVisionChoiceConfig(BaseStruct):
|
||||||
value: int
|
value: int
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class RoguelikeVisionModuleConsts(BaseStruct):
|
class RoguelikeVisionModuleConsts(BaseStruct):
|
||||||
@ -1227,7 +1227,7 @@ class RoguelikeTopicCustomizeData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RoguelikeTopicTable(BaseStruct):
|
class RoguelikeTopicTable(BaseStruct):
|
||||||
__version__ = "23-04-23-15-07-53-24a81c"
|
__version__ = '23-04-23-15-07-53-24a81c'
|
||||||
|
|
||||||
topics: Dict[str, RoguelikeTopicBasicData]
|
topics: Dict[str, RoguelikeTopicBasicData]
|
||||||
constant: RoguelikeTopicConst
|
constant: RoguelikeTopicConst
|
||||||
|
@ -240,7 +240,7 @@ class SandboxEventData(BaseStruct):
|
|||||||
|
|
||||||
class SandboxEventSceneData(BaseStruct):
|
class SandboxEventSceneData(BaseStruct):
|
||||||
choiceSceneId: str
|
choiceSceneId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
title: str
|
title: str
|
||||||
description: str
|
description: str
|
||||||
choices: List[str]
|
choices: List[str]
|
||||||
@ -248,7 +248,7 @@ class SandboxEventSceneData(BaseStruct):
|
|||||||
|
|
||||||
class SandboxEventChoiceData(BaseStruct):
|
class SandboxEventChoiceData(BaseStruct):
|
||||||
choiceId: str
|
choiceId: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
costAction: int
|
costAction: int
|
||||||
finishScene: bool
|
finishScene: bool
|
||||||
title: str
|
title: str
|
||||||
@ -272,12 +272,12 @@ class SandboxMissionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class SandboxUnitData(BaseStruct):
|
class SandboxUnitData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class SandboxDailyDescTemplateData(BaseStruct):
|
class SandboxDailyDescTemplateData(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
templateDesc: List[str]
|
templateDesc: List[str]
|
||||||
|
|
||||||
|
|
||||||
@ -296,7 +296,7 @@ class RushEnemyGroupConfig(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RushEnemyGroupRushEnemyDBRef(BaseStruct):
|
class RushEnemyGroupRushEnemyDBRef(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
level: int
|
level: int
|
||||||
|
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class RuneTablePackedRuneData(BaseStruct):
|
class RuneTablePackedRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: Union[int, float]
|
points: Union[int, float]
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -398,7 +398,7 @@ class SandboxItemData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class SandboxTable(BaseStruct):
|
class SandboxTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
sandboxActTables: Dict[str, SandboxActTable]
|
sandboxActTables: Dict[str, SandboxActTable]
|
||||||
itemDatas: Dict[str, SandboxItemData]
|
itemDatas: Dict[str, SandboxItemData]
|
||||||
|
@ -20,7 +20,7 @@ class ShopRecommendGroup(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ShopKeeperWord(BaseStruct):
|
class ShopKeeperWord(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
text: str
|
text: str
|
||||||
|
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ class ShopCreditUnlockItem(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ShopCreditUnlockGroup(BaseStruct):
|
class ShopCreditUnlockGroup(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
index: str
|
index: str
|
||||||
startDateTime: int
|
startDateTime: int
|
||||||
charDict: List[ShopCreditUnlockItem]
|
charDict: List[ShopCreditUnlockItem]
|
||||||
@ -144,7 +144,7 @@ class LMTGSShopOverlaySchedule(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ShopClientTable(BaseStruct):
|
class ShopClientTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
recommendList: List[ShopRecommendItem]
|
recommendList: List[ShopRecommendItem]
|
||||||
creditUnlockGroup: Dict[str, ShopCreditUnlockGroup]
|
creditUnlockGroup: Dict[str, ShopCreditUnlockGroup]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class SpData(BaseStruct):
|
class SpData(BaseStruct):
|
||||||
@ -46,6 +46,6 @@ class SkillDataBundle(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class SkillTable(BaseStruct):
|
class SkillTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
skills: Dict[str, SkillDataBundle]
|
skills: Dict[str, SkillDataBundle]
|
||||||
|
@ -82,7 +82,7 @@ class SpecialSkinInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class SkinTable(BaseStruct):
|
class SkinTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
charSkins: Dict[str, CharSkinData]
|
charSkins: Dict[str, CharSkinData]
|
||||||
buildinEvolveMap: Dict[str, Dict[str, str]]
|
buildinEvolveMap: Dict[str, Dict[str, str]]
|
||||||
|
@ -11,15 +11,15 @@ class StageDataConditionDesc(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StageDataDisplayRewards(BaseStruct):
|
class StageDataDisplayRewards(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
class StageDataDisplayDetailRewards(BaseStruct):
|
class StageDataDisplayDetailRewards(BaseStruct):
|
||||||
occPercent: int
|
occPercent: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
dropType: int
|
dropType: int
|
||||||
|
|
||||||
|
|
||||||
@ -44,9 +44,9 @@ class ProgressInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ExtraInfo(BaseStruct):
|
class ExtraInfo(BaseStruct):
|
||||||
@ -139,7 +139,7 @@ class TileAppendInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class WeeklyForceOpenTable(BaseStruct):
|
class WeeklyForceOpenTable(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
startTime: int
|
startTime: int
|
||||||
endTime: int
|
endTime: int
|
||||||
forceOpenList: List[str]
|
forceOpenList: List[str]
|
||||||
@ -241,7 +241,7 @@ class ApProtectZoneInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StageTable(BaseStruct):
|
class StageTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
stages: Dict[str, StageData]
|
stages: Dict[str, StageData]
|
||||||
runeStageGroups: Dict[str, RuneStageGroupData]
|
runeStageGroups: Dict[str, RuneStageGroupData]
|
||||||
|
@ -11,9 +11,9 @@ class MiniActTrialDataRuleData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class MiniActTrialDataMiniActTrialRewardData(BaseStruct):
|
class MiniActTrialDataMiniActTrialRewardData(BaseStruct):
|
||||||
@ -38,23 +38,23 @@ class MiniActTrialData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActArchiveResDataPicArchiveResItemData(BaseStruct):
|
class ActArchiveResDataPicArchiveResItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
assetPath: str
|
assetPath: str
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
subType: Union[str, None]
|
subType: Union[str, None]
|
||||||
picDescription: str
|
picDescription: str
|
||||||
kvId: Union[str, None]
|
kvId: Union[str, None]
|
||||||
|
|
||||||
|
|
||||||
class ActArchiveResDataAudioArchiveResItemData(BaseStruct):
|
class ActArchiveResDataAudioArchiveResItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class ActArchiveResDataAvgArchiveResItemData(BaseStruct):
|
class ActArchiveResDataAvgArchiveResItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
breifPath: Union[str, None]
|
breifPath: Union[str, None]
|
||||||
contentPath: str
|
contentPath: str
|
||||||
@ -64,7 +64,7 @@ class ActArchiveResDataAvgArchiveResItemData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActArchiveResDataStoryArchiveResItemData(BaseStruct):
|
class ActArchiveResDataStoryArchiveResItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
date: Union[str, None]
|
date: Union[str, None]
|
||||||
pic: str
|
pic: str
|
||||||
@ -86,7 +86,7 @@ class ActArchiveResDataActivityNewsLine(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ActArchiveResDataNewsArchiveResItemData(BaseStruct):
|
class ActArchiveResDataNewsArchiveResItemData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
desc: str
|
desc: str
|
||||||
newsType: str
|
newsType: str
|
||||||
newsFormat: ActArchiveResDataNewsFormatData
|
newsFormat: ActArchiveResDataNewsFormatData
|
||||||
@ -229,7 +229,7 @@ class ActArchiveComponentTable(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StoryReviewMetaTable(BaseStruct):
|
class StoryReviewMetaTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
miniActTrialData: MiniActTrialData
|
miniActTrialData: MiniActTrialData
|
||||||
actArchiveResData: ActArchiveResData
|
actArchiveResData: ActArchiveResData
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class StoryDataConditionStageCondition(BaseStruct):
|
class StoryDataConditionStageCondition(BaseStruct):
|
||||||
@ -40,7 +40,7 @@ class StoryReviewInfoClientData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StoryReviewGroupClientData(BaseStruct):
|
class StoryReviewGroupClientData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
name: str
|
name: str
|
||||||
entryType: str
|
entryType: str
|
||||||
actType: str
|
actType: str
|
||||||
@ -60,6 +60,6 @@ class StoryReviewGroupClientData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StoryReviewTable(BaseStruct):
|
class StoryReviewTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
storyreviewtable: Dict[str, StoryReviewGroupClientData]
|
storyreviewtable: Dict[str, StoryReviewGroupClientData]
|
||||||
|
@ -6,7 +6,7 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class StoryDataTrigger(BaseStruct):
|
class StoryDataTrigger(BaseStruct):
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
key: Union[str, None]
|
key: Union[str, None]
|
||||||
useRegex: bool
|
useRegex: bool
|
||||||
|
|
||||||
@ -27,13 +27,13 @@ class StoryDataCondition(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class StoryData(BaseStruct):
|
class StoryData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
needCommit: bool
|
needCommit: bool
|
||||||
repeatable: bool
|
repeatable: bool
|
||||||
disabled: bool
|
disabled: bool
|
||||||
@ -46,6 +46,6 @@ class StoryData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class StoryTable(BaseStruct):
|
class StoryTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
stories: Dict[str, StoryData]
|
stories: Dict[str, StoryData]
|
||||||
|
@ -27,7 +27,7 @@ class RuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class PackedRuneData(BaseStruct):
|
class PackedRuneData(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
points: float
|
points: float
|
||||||
mutexGroupKey: Union[str, None]
|
mutexGroupKey: Union[str, None]
|
||||||
description: str
|
description: str
|
||||||
@ -35,6 +35,6 @@ class PackedRuneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class TechBuffTable(BaseStruct):
|
class TechBuffTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
runes: List[PackedRuneData]
|
runes: List[PackedRuneData]
|
||||||
|
@ -17,7 +17,7 @@ class WorldViewTip(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class TipTable(BaseStruct):
|
class TipTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
tips: List[TipData]
|
tips: List[TipData]
|
||||||
worldViewTips: List[WorldViewTip]
|
worldViewTips: List[WorldViewTip]
|
||||||
|
@ -32,7 +32,7 @@ class CharacterDataTraitDataBundle(BaseStruct):
|
|||||||
class AttributesData(BaseStruct):
|
class AttributesData(BaseStruct):
|
||||||
maxHp: int
|
maxHp: int
|
||||||
atk: int
|
atk: int
|
||||||
def_: int = field(name="def")
|
def_: int = field(name='def')
|
||||||
magicResistance: float
|
magicResistance: float
|
||||||
cost: int
|
cost: int
|
||||||
blockCnt: int
|
blockCnt: int
|
||||||
@ -60,9 +60,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class CharacterDataPhaseData(BaseStruct):
|
class CharacterDataPhaseData(BaseStruct):
|
||||||
@ -123,7 +123,7 @@ class ExternalBuff(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class CharacterDataPotentialRank(BaseStruct):
|
class CharacterDataPotentialRank(BaseStruct):
|
||||||
type_: int = field(name="type")
|
type_: int = field(name='type')
|
||||||
description: str
|
description: str
|
||||||
buff: Union[ExternalBuff, None]
|
buff: Union[ExternalBuff, None]
|
||||||
equivalentCost: Union[ItemBundle, None]
|
equivalentCost: Union[ItemBundle, None]
|
||||||
@ -170,6 +170,6 @@ class TokenCharacterData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class TokenTable(BaseStruct):
|
class TokenTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
tokens: Dict[str, TokenCharacterData]
|
tokens: Dict[str, TokenCharacterData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class UnlockCondition(BaseStruct):
|
class UnlockCondition(BaseStruct):
|
||||||
@ -39,7 +39,7 @@ class UniEquipData(BaseStruct):
|
|||||||
unlockFavorPercent: int
|
unlockFavorPercent: int
|
||||||
missionList: List[str]
|
missionList: List[str]
|
||||||
itemCost: Union[List[ItemBundle], None]
|
itemCost: Union[List[ItemBundle], None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
traitDescBundle: List[TraitDescBundle]
|
traitDescBundle: List[TraitDescBundle]
|
||||||
|
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ class SubProfessionData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class UniequipData(BaseStruct):
|
class UniequipData(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
equipDict: Dict[str, UniEquipData]
|
equipDict: Dict[str, UniEquipData]
|
||||||
missionList: Dict[str, UniEquipMissionData]
|
missionList: Dict[str, UniEquipMissionData]
|
||||||
|
@ -6,9 +6,9 @@ from msgspec import field
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class UniEquipData(BaseStruct):
|
class UniEquipData(BaseStruct):
|
||||||
@ -29,7 +29,7 @@ class UniEquipData(BaseStruct):
|
|||||||
unlockFavorPoint: int
|
unlockFavorPoint: int
|
||||||
missionList: List[str]
|
missionList: List[str]
|
||||||
itemCost: Union[Dict[str, List[ItemBundle]], None]
|
itemCost: Union[Dict[str, List[ItemBundle]], None]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
uniEquipGetTime: int
|
uniEquipGetTime: int
|
||||||
charEquipOrder: int
|
charEquipOrder: int
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ class UniEquipTimeInfo(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class UniEquipTable(BaseStruct):
|
class UniEquipTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
equipDict: Dict[str, UniEquipData]
|
equipDict: Dict[str, UniEquipData]
|
||||||
missionList: Dict[str, UniEquipMissionData]
|
missionList: Dict[str, UniEquipMissionData]
|
||||||
|
@ -8,7 +8,7 @@ from msgspec import field
|
|||||||
class ZoneData(BaseStruct):
|
class ZoneData(BaseStruct):
|
||||||
zoneID: str
|
zoneID: str
|
||||||
zoneIndex: int
|
zoneIndex: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
zoneNameFirst: Union[str, None]
|
zoneNameFirst: Union[str, None]
|
||||||
zoneNameSecond: Union[str, None]
|
zoneNameSecond: Union[str, None]
|
||||||
zoneNameTitleCurrent: Union[str, None]
|
zoneNameTitleCurrent: Union[str, None]
|
||||||
@ -21,7 +21,7 @@ class ZoneData(BaseStruct):
|
|||||||
|
|
||||||
class WeeklyZoneData(BaseStruct):
|
class WeeklyZoneData(BaseStruct):
|
||||||
daysOfWeek: List[int]
|
daysOfWeek: List[int]
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ZoneValidInfo(BaseStruct):
|
class ZoneValidInfo(BaseStruct):
|
||||||
@ -47,9 +47,9 @@ class MainlineZoneData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ItemBundle(BaseStruct):
|
class ItemBundle(BaseStruct):
|
||||||
id_: str = field(name="id")
|
id_: str = field(name='id')
|
||||||
count: int
|
count: int
|
||||||
type_: str = field(name="type")
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class RecordRewardInfo(BaseStruct):
|
class RecordRewardInfo(BaseStruct):
|
||||||
@ -101,7 +101,7 @@ class ZoneMetaData(BaseStruct):
|
|||||||
|
|
||||||
|
|
||||||
class ZoneTable(BaseStruct):
|
class ZoneTable(BaseStruct):
|
||||||
__version__ = "23-10-31-11-47-45-d410ff"
|
__version__ = '23-10-31-11-47-45-d410ff'
|
||||||
|
|
||||||
zones: Dict[str, ZoneData]
|
zones: Dict[str, ZoneData]
|
||||||
weeklyAdditionInfo: Dict[str, WeeklyZoneData]
|
weeklyAdditionInfo: Dict[str, WeeklyZoneData]
|
||||||
|
@ -2,23 +2,25 @@ from __future__ import annotations
|
|||||||
|
|
||||||
from collections.abc import Callable, Iterable, Iterator
|
from collections.abc import Callable, Iterable, Iterator
|
||||||
from copy import copy, deepcopy
|
from copy import copy, deepcopy
|
||||||
from typing import Any, Dict, Tuple, TypeVar, Union
|
from typing import Any, TypeVar
|
||||||
from typing_extensions import dataclass_transform
|
|
||||||
|
|
||||||
from msgspec import (
|
from msgspec import (
|
||||||
Struct,
|
Struct,
|
||||||
UnsetType,
|
UnsetType,
|
||||||
convert,
|
convert,
|
||||||
field,
|
field,
|
||||||
|
)
|
||||||
|
from msgspec import (
|
||||||
json as mscjson,
|
json as mscjson,
|
||||||
)
|
)
|
||||||
|
from typing_extensions import dataclass_transform
|
||||||
|
|
||||||
Model = TypeVar("Model", bound="BaseStruct")
|
Model = TypeVar('Model', bound='BaseStruct')
|
||||||
T1 = TypeVar("T1")
|
T1 = TypeVar('T1')
|
||||||
T2 = TypeVar("T2")
|
T2 = TypeVar('T2')
|
||||||
|
|
||||||
|
|
||||||
def transUnset(v: Union[T1, UnsetType], d: T2 = None) -> Union[T1, T2]:
|
def transUnset(v: T1 | UnsetType, d: T2 = None) -> T1 | T2:
|
||||||
return v if not isinstance(v, UnsetType) else d
|
return v if not isinstance(v, UnsetType) else d
|
||||||
|
|
||||||
|
|
||||||
@ -39,8 +41,8 @@ class BaseStruct(
|
|||||||
*,
|
*,
|
||||||
strict: bool = True,
|
strict: bool = True,
|
||||||
from_attributes: bool = False,
|
from_attributes: bool = False,
|
||||||
dec_hook: Union[Callable[[type, Any], Any], None] = None,
|
dec_hook: Callable[[type, Any], Any] | None = None,
|
||||||
builtin_types: Union[Iterable[type], None] = None,
|
builtin_types: Iterable[type] | None = None,
|
||||||
str_keys: bool = False,
|
str_keys: bool = False,
|
||||||
) -> Model:
|
) -> Model:
|
||||||
if obj is None:
|
if obj is None:
|
||||||
@ -57,7 +59,7 @@ class BaseStruct(
|
|||||||
str_keys=str_keys,
|
str_keys=str_keys,
|
||||||
)
|
)
|
||||||
|
|
||||||
def __iter__(self) -> Iterator[Tuple[str, Any]]:
|
def __iter__(self) -> Iterator[tuple[str, Any]]:
|
||||||
for field_name in self.__struct_fields__:
|
for field_name in self.__struct_fields__:
|
||||||
yield field_name, getattr(self, field_name)
|
yield field_name, getattr(self, field_name)
|
||||||
|
|
||||||
@ -68,7 +70,7 @@ class BaseStruct(
|
|||||||
for field_name in self.__struct_fields__:
|
for field_name in self.__struct_fields__:
|
||||||
yield getattr(self, field_name)
|
yield getattr(self, field_name)
|
||||||
|
|
||||||
def model_dump(self) -> Dict[str, Any]:
|
def model_dump(self) -> dict[str, Any]:
|
||||||
return mscjson.decode(mscjson.encode(self))
|
return mscjson.decode(mscjson.encode(self))
|
||||||
|
|
||||||
def dump_child(self, target: str) -> Any:
|
def dump_child(self, target: str) -> Any:
|
||||||
|
@ -42,19 +42,22 @@ class ArknightsAttendanceAward(Struct):
|
|||||||
count: int
|
count: int
|
||||||
type_: str = field(name='type')
|
type_: str = field(name='type')
|
||||||
|
|
||||||
|
|
||||||
class ArknightsAttendanceModel(Struct):
|
class ArknightsAttendanceModel(Struct):
|
||||||
ts: str
|
ts: str
|
||||||
awards: List[ArknightsAttendanceAward]
|
awards: List[ArknightsAttendanceAward]
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
# ArknightsAttendance End
|
# ArknightsAttendance End
|
||||||
################
|
################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
# ArknightsUserMeModel Start
|
# ArknightsUserMeModel Start
|
||||||
################
|
################
|
||||||
|
|
||||||
|
|
||||||
class UserMeInfoApply(Struct):
|
class UserMeInfoApply(Struct):
|
||||||
nickname: str
|
nickname: str
|
||||||
profile: str
|
profile: str
|
||||||
@ -137,16 +140,17 @@ class ArknightsUserMeModel(Struct, omit_defaults=True):
|
|||||||
moderator: UserMeModerator
|
moderator: UserMeModerator
|
||||||
userInfoApply: UserMeInfoApply
|
userInfoApply: UserMeInfoApply
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
# ArknightsUserMeModel End
|
# ArknightsUserMeModel End
|
||||||
################
|
################
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
||||||
# ArknightsPlayerInfoModel Start
|
# ArknightsPlayerInfoModel Start
|
||||||
################
|
################
|
||||||
|
|
||||||
|
|
||||||
class PlayerManufactureFormulaInfo(Struct):
|
class PlayerManufactureFormulaInfo(Struct):
|
||||||
id_: str = field(name='id')
|
id_: str = field(name='id')
|
||||||
itemId: str
|
itemId: str
|
||||||
@ -539,8 +543,8 @@ class PlayerInfoChar(Struct):
|
|||||||
evolvePhase: int
|
evolvePhase: int
|
||||||
potentialRank: int
|
potentialRank: int
|
||||||
mainSkillLvl: int
|
mainSkillLvl: int
|
||||||
skills: Union[List[PlayerInfoCharSkill] , None]
|
skills: Union[List[PlayerInfoCharSkill], None]
|
||||||
equip: Union[List[PlayerInfoCharEquip] , None]
|
equip: Union[List[PlayerInfoCharEquip], None]
|
||||||
favorPercent: int
|
favorPercent: int
|
||||||
defaultSkillId: str
|
defaultSkillId: str
|
||||||
gainTime: int
|
gainTime: int
|
||||||
|
@ -12,6 +12,7 @@ RESOURCE_PATH = MAIN_PATH / 'resource'
|
|||||||
GAMEDATA_PATH = RESOURCE_PATH / 'gamedata'
|
GAMEDATA_PATH = RESOURCE_PATH / 'gamedata'
|
||||||
SKIN_PATH = RESOURCE_PATH / 'skin'
|
SKIN_PATH = RESOURCE_PATH / 'skin'
|
||||||
|
|
||||||
|
|
||||||
def init_dir():
|
def init_dir():
|
||||||
for i in [
|
for i in [
|
||||||
MAIN_PATH,
|
MAIN_PATH,
|
||||||
@ -19,7 +20,7 @@ def init_dir():
|
|||||||
PLAYER_PATH,
|
PLAYER_PATH,
|
||||||
RESOURCE_PATH,
|
RESOURCE_PATH,
|
||||||
GAMEDATA_PATH,
|
GAMEDATA_PATH,
|
||||||
SKIN_PATH
|
SKIN_PATH,
|
||||||
]:
|
]:
|
||||||
i.mkdir(parents=True, exist_ok=True)
|
i.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
ArknightsUID_version = "0.1.0"
|
ArknightsUID_version = '0.1.0'
|
||||||
Arknights_Client_version = "2.1.21"
|
Arknights_Client_version = '2.1.21'
|
||||||
Arknights_Res_version = "23-10-31-11-47-45-d410ff"
|
Arknights_Res_version = '23-10-31-11-47-45-d410ff'
|
||||||
|
@ -4,14 +4,13 @@
|
|||||||
<a href="https://github.com/qwerdvd/ArknightsUID"><img src="https://s2.loli.net/2023/10/30/eFZmkfrni9bBjdV.png" width="256" height="256" alt="ArknightsUID"></a>
|
<a href="https://github.com/qwerdvd/ArknightsUID"><img src="https://s2.loli.net/2023/10/30/eFZmkfrni9bBjdV.png" width="256" height="256" alt="ArknightsUID"></a>
|
||||||
</p>
|
</p>
|
||||||
<h1 align = "center">ArknightsUID 0.1</h1>
|
<h1 align = "center">ArknightsUID 0.1</h1>
|
||||||
<h4 align = "center">🚧支持OneBot(QQ)、QQ频道、微信、开黑啦、Telegram的全功能星铁Bot插件🚧</h4>
|
<h4 align = "center">🚧支持OneBot(QQ)、QQ频道、微信、开黑啦、Telegram的全功能明日方舟Bot插件🚧</h4>
|
||||||
<div align = "center">
|
<div align = "center">
|
||||||
<a href="https://docs.sayu-bot.com/" target="_blank">安装文档</a> ·
|
<a href="https://docs.sayu-bot.com/" target="_blank">安装文档</a> ·
|
||||||
<a href="https://docs.sayu-bot.com/插件帮助/ArknightsUID.html" target="_blank">指令列表</a> ·
|
<a href="https://docs.sayu-bot.com/插件帮助/ArknightsUID.html" target="_blank">指令列表</a> ·
|
||||||
<a href="https://docs.sayu-bot.com/常见问题/">常见问题</a>
|
<a href="https://docs.sayu-bot.com/常见问题/">常见问题</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## 丨安装提醒
|
## 丨安装提醒
|
||||||
|
|
||||||
> **注意:该插件为[早柚核心(gsuid_core)](https://github.com/Genshin-bots/gsuid_core)的扩展,具体安装方式可参考[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID)**
|
> **注意:该插件为[早柚核心(gsuid_core)](https://github.com/Genshin-bots/gsuid_core)的扩展,具体安装方式可参考[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID)**
|
||||||
@ -27,7 +26,7 @@
|
|||||||
## 丨功能
|
## 丨功能
|
||||||
|
|
||||||
<details><summary>ark每日 - 命令: arkmr</summary><p>
|
<details><summary>ark每日 - 命令: arkmr</summary><p>
|
||||||
<img src="https://s2.loli.net/2023/10/30/atoCVXFJisMZIAu.jpg"/>
|
<img src="https://s2.loli.net/2023/10/30/atoCVXFJisMZIAu.jpg"/>
|
||||||
</p></details>
|
</p></details>
|
||||||
|
|
||||||
以及签到 & 体力推送等..
|
以及签到 & 体力推送等..
|
||||||
|
@ -57,7 +57,9 @@ pythonPlatform = "All"
|
|||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
select = ["E", "W", "F", "UP", "C", "T", "PYI", "PT", "Q"]
|
select = ["E", "W", "F", "UP", "C", "T", "PYI", "PT", "Q"]
|
||||||
ignore = ["C901", "Q000"]
|
ignore = ["C901", "Q000", "Q003"]
|
||||||
|
|
||||||
line-length = 108
|
line-length = 108
|
||||||
target-version = "py38"
|
target-version = "py38"
|
||||||
|
|
||||||
|
[tool.ruff.format]
|
||||||
|
quote-style = "single"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user