From 18c74cf15d7eaf6e571a6d9367222d98c6fac4a4 Mon Sep 17 00:00:00 2001 From: qwerdvd <105906879+qwerdvd@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:38:26 +0800 Subject: [PATCH] Client:2.1.21 Data:23-10-31-11-47-45-d410ff --- .../utils/models/gamedata/ActivityTable.py | 239 ++++++++++++++---- .../utils/models/gamedata/AudioData.py | 27 +- .../utils/models/gamedata/BattleEquipTable.py | 2 +- .../utils/models/gamedata/BuildingData.py | 58 ++--- .../utils/models/gamedata/CampaignTable.py | 32 +-- .../utils/models/gamedata/ChapterTable.py | 2 +- .../utils/models/gamedata/CharMetaTable.py | 10 +- .../utils/models/gamedata/CharPatchTable.py | 14 +- .../utils/models/gamedata/CharacterTable.py | 14 +- .../utils/models/gamedata/CharmTable.py | 10 +- .../utils/models/gamedata/CharwordTable.py | 8 +- .../utils/models/gamedata/CheckinTable.py | 10 +- .../utils/models/gamedata/ClimbTowerTable.py | 54 ++-- .../utils/models/gamedata/ClueData.py | 2 +- .../utils/models/gamedata/CrisisTable.py | 16 +- .../utils/models/gamedata/CrisisV2Table.py | 53 ++++ .../utils/models/gamedata/DisplayMetaTable.py | 12 +- .../models/gamedata/EnemyHandbookTable.py | 14 +- .../utils/models/gamedata/FavorTable.py | 2 +- .../utils/models/gamedata/GachaTable.py | 10 +- .../utils/models/gamedata/GamedataConst.py | 15 +- .../models/gamedata/HandbookInfoTable.py | 14 +- .../utils/models/gamedata/HandbookTable.py | 2 +- .../models/gamedata/HandbookTeamTable.py | 2 +- .../utils/models/gamedata/ItemTable.py | 16 +- .../utils/models/gamedata/MedalTable.py | 12 +- .../utils/models/gamedata/MissionTable.py | 26 +- .../utils/models/gamedata/OpenServerTable.py | 32 +-- .../models/gamedata/PlayerAvatarTable.py | 2 +- .../utils/models/gamedata/RangeTable.py | 8 +- .../utils/models/gamedata/ReplicateTable.py | 10 +- .../utils/models/gamedata/RetroTable.py | 48 ++-- .../utils/models/gamedata/RoguelikeTable.py | 32 +-- .../models/gamedata/RoguelikeTopicTable.py | 80 +++--- .../utils/models/gamedata/SandboxTable.py | 18 +- .../utils/models/gamedata/ShopClientTable.py | 10 +- .../utils/models/gamedata/SkillTable.py | 10 +- .../utils/models/gamedata/SkinTable.py | 2 +- .../utils/models/gamedata/StageTable.py | 21 +- .../models/gamedata/StoryReviewMetaTable.py | 42 ++- .../utils/models/gamedata/StoryReviewTable.py | 12 +- .../utils/models/gamedata/StoryTable.py | 14 +- .../utils/models/gamedata/TechBuffTable.py | 8 +- .../utils/models/gamedata/TipTable.py | 2 +- .../utils/models/gamedata/TokenTable.py | 14 +- .../utils/models/gamedata/UniequipData.py | 12 +- .../utils/models/gamedata/UniequipTable.py | 12 +- .../utils/models/gamedata/ZoneTable.py | 14 +- ArknightsUID/utils/models/gamedata/common.py | 78 ++++++ .../utils/resource/download_from_cos.py | 8 +- ArknightsUID/version.py | 4 +- 51 files changed, 763 insertions(+), 406 deletions(-) create mode 100644 ArknightsUID/utils/models/gamedata/CrisisV2Table.py create mode 100644 ArknightsUID/utils/models/gamedata/common.py diff --git a/ArknightsUID/utils/models/gamedata/ActivityTable.py b/ArknightsUID/utils/models/gamedata/ActivityTable.py index da12989..dfd2419 100644 --- a/ArknightsUID/utils/models/gamedata/ActivityTable.py +++ b/ArknightsUID/utils/models/gamedata/ActivityTable.py @@ -1,13 +1,14 @@ +from enum import Enum from typing import Any, Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ActivityTableBasicData(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") name: str startTime: int endTime: int @@ -31,16 +32,16 @@ class ActivityTableHomeActivityConfig(BaseStruct): class MissionDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int class MissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int description: str - type_: str = field(name='type') + type_: str = field(name="type") itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -58,9 +59,9 @@ class MissionData(BaseStruct): class MissionGroup(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: Union[str, None] - type_: str = field(name='type') + type_: str = field(name="type") preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: Union[List[MissionDisplayRewards], None] @@ -78,9 +79,9 @@ class DefaultZoneData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class DefaultShopData(BaseStruct): @@ -243,7 +244,7 @@ class Act3D0DataLimitedPoolDetailInfoPoolItemInfo(BaseStruct): perCount: int totalCount: int weight: int - type_: str = field(name='type') + type_: str = field(name="type") orderId: int @@ -258,7 +259,7 @@ class Act3D0DataInfinitePoolDetailInfoPoolItemInfo(BaseStruct): goodType: str perCount: int weight: int - type_: str = field(name='type') + type_: str = field(name="type") orderId: int @@ -491,7 +492,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: float mutexGroupKey: Union[str, None] description: str @@ -519,7 +520,7 @@ class Act5D1Data(BaseStruct): class ActivityCollectionDataCollectionInfo(BaseStruct): - id_: int = field(name='id') + id_: int = field(name="id") itemType: str itemId: str itemCnt: int @@ -732,7 +733,7 @@ class Act13SideDataLongTermMissionData(BaseStruct): class Act13SideDataDailyMissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int description: str missionName: str @@ -928,7 +929,7 @@ class Act17sideDataMainlineChapterData(BaseStruct): chapterDes: str chapterIcon: str unlockDes: str - id_: str = field(name='id') + id_: str = field(name="id") class Act17sideDataMainlineData(BaseStruct): @@ -1171,9 +1172,9 @@ class SharedCharData(BaseStruct): evolvePhase: int level: 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( - name='equip', + name="equip", default={}, ) skillIndex: Union[int, None] = None @@ -1181,6 +1182,7 @@ class SharedCharData(BaseStruct): skin: Union[str, None] = None skills: Union[List[SharedCharDataSharedCharSkillData], None] = None crisisRecord: Union[Dict[str, int], None] = None + crisisV2Record: Union[Dict[str, int], None] = None currentTmpl: Union[str, None] = None tmpl: Union[Dict[str, SharedCharDataTmplData], None] = None @@ -1239,8 +1241,8 @@ class ActivityBossRushDataBossRushStageAdditionData(BaseStruct): class ActivityBossRushDataDisplayDetailRewards(BaseStruct): occPercent: int dropCount: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -1328,6 +1330,7 @@ class ActivityBossRushData(BaseStruct): class ActivityFloatParadeDataConstData(BaseStruct): cityName: str + cityNamePic: str lowStandard: float variationTitle: str ruleDesc: str @@ -1345,15 +1348,15 @@ class ActivityFloatParadeDataDailyData(BaseStruct): class ActivityFloatParadeDataRewardPool(BaseStruct): grpId: str - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") name: str desc: Union[str, None] reward: ItemBundle class ActivityFloatParadeDataTactic(BaseStruct): - id_: int = field(name='id') + id_: int = field(name="id") name: str packName: str briefName: str @@ -1392,7 +1395,7 @@ class ActSandboxData(BaseStruct): class ActivityMainlineBuffDataMissionGroupData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") bindBanner: str sortId: int zoneId: str @@ -1408,7 +1411,7 @@ class ActivityMainlineBuffDataPeriodDataStepData(BaseStruct): class ActivityMainlineBuffDataPeriodData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") startTime: int endTime: int favorUpCharDesc: str @@ -1508,23 +1511,23 @@ class Act24SideDataMissionExtraData(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") dropType: str count: int weight: int class StageDataDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -1596,7 +1599,7 @@ class Act25SideDataArchiveItemData(BaseStruct): class Act25SideDataArchiveMapInfoData(BaseStruct): objectId: str - type_: int = field(name='type') + type_: int = field(name="type") numberId: str areaId: str sortId: int @@ -1619,7 +1622,7 @@ class Act25SideDataAreaInfoData(BaseStruct): class Act25SideDataAreaMissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") areaId: str preposedMissionId: Union[str, None] sortId: int @@ -1708,7 +1711,7 @@ class Act38D1DataAct38D1DimensionItemData(BaseStruct): class Act38D1DataAct38D1CommentData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int desc: str @@ -1743,7 +1746,7 @@ class Act38D1Data(BaseStruct): class Act27SideDataAct27SideGoodData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str typeDesc: str iconId: str @@ -1862,7 +1865,7 @@ class Act42D0DataEffectGroupInfoData(BaseStruct): class Act42D0DataEffectInfoRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: int mutexGroupKey: Union[str, None] description: str @@ -1946,6 +1949,155 @@ class Act42D0Data(BaseStruct): trackPointPeriodData: List[int] +class Act29SideFragData(BaseStruct): + fragId: str + sortId: int + fragName: str + fragIcon: str + fragStoreIcon: str + + +class Act29SideOrcheType(Enum): + ORCHE_1 = "ORCHE_1" + ORCHE_2 = "ORCHE_2" + ORCHE_3 = "ORCHE_3" + ENUM = "ENUM" + + +class Act29SideOrcheData(BaseStruct): + id_: str = field(name="id") + name: str + desc: str + icon: str + sortId: int + orcheType: Act29SideOrcheType + + +class Act29SideProductType(Enum): + PRODUCT_TYPE_1 = "PRODUCT_TYPE_1" + PRODUCT_TYPE_2 = "PRODUCT_TYPE_2" + PRODUCT_TYPE_3 = "PRODUCT_TYPE_3" + PRODUCT_TYPE_4 = "PRODUCT_TYPE_4" + PRODUCT_TYPE_5 = "PRODUCT_TYPE_5" + ENUM = "ENUM" + + +class Act29SideProductGroupData(BaseStruct): + groupId: str + groupName: str + groupIcon: str + groupDesc: str + defaultBgmSignal: str + productList: List[str] + groupEngName: str + groupSmallName: str + groupTypeIcon: str + groupStoreIconId: str + groupTypeBasePic: str + groupTypeEyeIcon: str + groupSortId: int + formList: List[str] + sheetId: str + sheetNum: int + sheetRotateSpd: float + productType: Act29SideProductType + productDescColor: str + playTintColor: str + confirmTintColor: str + confirmDescColor: str + bagThemeColor: str + + +class Act29SideProductData(BaseStruct): + id_: str = field(name="id") + orcheId: Union[str, None] + groupId: str + formId: Union[str, None] + musicId: str + + +class Act29SideFormData(BaseStruct): + formId: str + fragIdList: List[str] + formDesc: str + productIdDict: Dict[str, str] + withoutOrcheProductId: str + groupId: str + formSortId: int + + +class Act29SideInvestResultData(BaseStruct): + resultId: str + resultTitle: str + resultDesc1: str + resultDesc2: str + + +class Act29SideInvestType(Enum): + MAJOR = "MAJOR" + RARE = "RARE" + NORMAL = "NORMAL" + + +class Act29SideInvestData(BaseStruct): + investId: str + investType: Act29SideInvestType + investNpcName: str + storyId: str + investNpcPic: str + investNpcAvatarPic: str + majorNpcPic: Union[str, None] + majorNpcBlackPic: Union[str, None] + reward: Union[ItemBundle, None] + investSucResultId: Union[str, None] + investFailResultId: str + investRareResultId: Union[str, None] + + +class Act29SideConstData(BaseStruct): + majorInvestUnlockItemName: str + wrongTipsTriggerTime: int + majorInvestCompleteImgId: str + majorInvestUnknownAvatarId: str + majorInvestDetailDesc1: str + majorInvestDetailDesc2: str + majorInvestDetailDesc3: str + majorInvestDetailDesc4: str + hiddenInvestImgId: str + hiddenInvestHeadImgId: str + hiddenInvestNpcName: str + unlockLevelId: str + investResultHint: str + investUnlockText: str + noOrcheDesc: str + + +class Act29SideZoneAdditionData(BaseStruct): + zoneId: str + unlockText: str + + +class Act29SideMusicData(BaseStruct): + groupId: str + orcheId: Union[str, None] + musicId: str + + +class Act29SideData(BaseStruct): + fragDataMap: Dict[str, Act29SideFragData] + orcheDataMap: Dict[str, Act29SideOrcheData] + productGroupDataMap: Dict[str, Act29SideProductGroupData] + productDataMap: Dict[str, Act29SideProductData] + formDataMap: Dict[str, Act29SideFormData] + investResultDataMap: Dict[str, Act29SideInvestResultData] + investDataMap: Dict[str, Act29SideInvestData] + majorInvestIdList: List[str] + rareInvestIdList: List[str] + constData: Act29SideConstData + zoneAdditionDataMap: Dict[str, Act29SideZoneAdditionData] + musicDataMap: List[Act29SideMusicData] + + class ActivityTableActivityDetailTable(BaseStruct): DEFAULT: Dict[str, DefaultFirstData] CHECKIN_ONLY: Dict[str, DefaultCheckInData] @@ -1962,6 +2114,7 @@ class ActivityTableActivityDetailTable(BaseStruct): TYPE_ACT17SIDE: Dict[str, Act17sideData] TYPE_ACT20SIDE: Dict[str, Act20SideData] TYPE_ACT21SIDE: Dict[str, Act21SideData] + TYPE_ACT29SIDE: Dict[str, Act29SideData] LOGIN_ONLY: Dict[str, ActivityLoginData] SWITCH_ONLY: Dict[str, ActivitySwitchCheckinData] MINISTORY: Dict[str, ActivityMiniStoryData] @@ -1974,9 +2127,9 @@ class ActivityTableActivityDetailTable(BaseStruct): MAIN_BUFF: Dict[str, ActivityMainlineBuffData] TYPE_ACT24SIDE: Dict[str, Act24SideData] TYPE_ACT25SIDE: Dict[str, Act25SideData] - TYPE_ACT38D1: Dict[str, Act38D1Data] TYPE_ACT27SIDE: Dict[str, Act27SideData] TYPE_ACT42D0: Dict[str, Act42D0Data] + TYPE_ACT38D1: Union[Dict[str, Act38D1Data], None] = None # Remove in 2.1.21 class ActivityStageRewardData(BaseStruct): @@ -1989,8 +2142,8 @@ class ActivityThemeDataTimeNode(BaseStruct): class ActivityThemeData(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") funcId: str endTs: int sortId: int @@ -2212,7 +2365,7 @@ class AprilFoolTable(BaseStruct): class CartComponents(BaseStruct): compId: str sortId: int - type_: str = field(name='type') + type_: str = field(name="type") posList: List[str] posIdDict: Dict[str, List[str]] name: str @@ -2452,7 +2605,7 @@ class ActivityTableExtraData(BaseStruct): class ActivityTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" basicInfo: Dict[str, ActivityTableBasicData] homeActConfig: Dict[str, ActivityTableHomeActivityConfig] diff --git a/ArknightsUID/utils/models/gamedata/AudioData.py b/ArknightsUID/utils/models/gamedata/AudioData.py index 01786d7..8925c7e 100644 --- a/ArknightsUID/utils/models/gamedata/AudioData.py +++ b/ArknightsUID/utils/models/gamedata/AudioData.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class BGMBank(BaseStruct): name: str @@ -12,6 +12,7 @@ class BGMBank(BaseStruct): volume: float crossfade: float delay: float + fadeStyleId: Union[str, None] = None class SoundFXBankSoundFX(BaseStruct): @@ -61,7 +62,7 @@ class BattleVoiceOption(BaseStruct): class MusicData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str bank: str @@ -73,8 +74,24 @@ class BattleVoiceData(BaseStruct): voiceTypeOptions: List[BattleVoiceOption] +class AudioDataDucking(BaseStruct): + bank: str + volume: float + fadeTime: float + delay: float + fadeStyleId: Union[str, None] = None + + +class AudioDataFadeStyle(BaseStruct): + styleName: str + fadeinTime: float + fadeoutTime: float + fadeinType: str + fadeoutType: str + + class AudioData(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" bgmBanks: List[BGMBank] soundFXBanks: List[SoundFXBank] @@ -84,3 +101,5 @@ class AudioData(BaseStruct): musics: List[MusicData] soundFxVoiceLang: Dict[str, Dict[str, Dict[str, str]]] bankAlias: Dict[str, str] + duckings: List[AudioDataDucking] + fadeStyles: List[AudioDataFadeStyle] diff --git a/ArknightsUID/utils/models/gamedata/BattleEquipTable.py b/ArknightsUID/utils/models/gamedata/BattleEquipTable.py index 568ccf0..e823c57 100644 --- a/ArknightsUID/utils/models/gamedata/BattleEquipTable.py +++ b/ArknightsUID/utils/models/gamedata/BattleEquipTable.py @@ -78,6 +78,6 @@ class BattleEquipData(BaseStruct): class BattleEquipTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" equips: Dict[str, BattleEquipData] diff --git a/ArknightsUID/utils/models/gamedata/BuildingData.py b/ArknightsUID/utils/models/gamedata/BuildingData.py index 7531dd4..00b65a5 100644 --- a/ArknightsUID/utils/models/gamedata/BuildingData.py +++ b/ArknightsUID/utils/models/gamedata/BuildingData.py @@ -1,18 +1,18 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class BuildingDataRoomUnlockCondCondItem(BaseStruct): - type_: str = field(name='type') + type_: str = field(name="type") level: int count: int class BuildingDataRoomUnlockCond(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") number: Dict[str, BuildingDataRoomUnlockCondCondItem] @@ -22,9 +22,9 @@ class GridPosition(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class BuildingDataRoomDataBuildCost(BaseStruct): @@ -44,7 +44,7 @@ class BuildingDataRoomDataPhaseData(BaseStruct): class BuildingDataRoomData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str description: Union[str, None] defaultPrefabId: str @@ -56,7 +56,7 @@ class BuildingDataRoomData(BaseStruct): class BuildingDataLayoutDataRoomSlot(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") cleanCostId: str costLabor: int provideLabor: int @@ -71,26 +71,26 @@ class BuildingDataLayoutDataSlotCleanCostCountCost(BaseStruct): class BuildingDataLayoutDataSlotCleanCost(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") number: Dict[str, BuildingDataLayoutDataSlotCleanCostCountCost] class BuildingDataLayoutDataStoreyData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") yOffset: int unlockControlLevel: int - type_: str = field(name='type') + type_: str = field(name="type") class BuildingDataLayoutData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") slots: Dict[str, BuildingDataLayoutDataRoomSlot] cleanCosts: Dict[str, BuildingDataLayoutDataSlotCleanCost] storeys: Dict[str, BuildingDataLayoutDataStoreyData] class BuildingDataPrefabInfo(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") blueprintRoomOverrideId: Union[str, None] size: GridPosition floorGridSize: GridPosition @@ -98,45 +98,45 @@ class BuildingDataPrefabInfo(BaseStruct): obstacleId: Union[str, None] -class BuildingDataManufactPhase(BaseStruct, tag='BuildingDataManufactPhase'): +class BuildingDataManufactPhase(BaseStruct, tag="BuildingDataManufactPhase"): speed: Union[float, int] outputCapacity: int -class BuildingDataShopPhase(BaseStruct, tag='BuildingDataShopPhase'): +class BuildingDataShopPhase(BaseStruct, tag="BuildingDataShopPhase"): counterNum: int speed: Union[float, int] moneyCapacity: int -class BuildingDataHirePhase(BaseStruct, tag='BuildingDataHirePhase'): +class BuildingDataHirePhase(BaseStruct, tag="BuildingDataHirePhase"): economizeRate: float resSpeed: int refreshTimes: int -class BuildingDataDormPhase(BaseStruct, tag='BuildingDataDormPhase'): +class BuildingDataDormPhase(BaseStruct, tag="BuildingDataDormPhase"): manpowerRecover: int decorationLimit: int -class BuildingDataMeetingPhase(BaseStruct, tag='BuildingDataMeetingPhase'): +class BuildingDataMeetingPhase(BaseStruct, tag="BuildingDataMeetingPhase"): friendSlotInc: int maxVisitorNum: int gatheringSpeed: int -class BuildingDataTradingPhase(BaseStruct, tag='BuildingDataTradingPhase'): +class BuildingDataTradingPhase(BaseStruct, tag="BuildingDataTradingPhase"): orderSpeed: Union[float, int] orderLimit: int orderRarity: int -class BuildingDataWorkshopPhase(BaseStruct, tag='BuildingDataWorkshopPhase'): +class BuildingDataWorkshopPhase(BaseStruct, tag="BuildingDataWorkshopPhase"): manpowerFactor: Union[float, int] -class BuildingDataTrainingPhase(BaseStruct, tag='BuildingDataTrainingPhase'): +class BuildingDataTrainingPhase(BaseStruct, tag="BuildingDataTrainingPhase"): specSkillLvlLimit: int @@ -222,11 +222,11 @@ class BuildingDataBuildingBuff(BaseStruct): class BuildingDataCustomDataFurnitureData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int name: str iconId: str - type_: str = field(name='type') + type_: str = field(name="type") subType: str location: str category: str @@ -257,11 +257,11 @@ class BuildingDataCustomDataThemeQuickSetupItem(BaseStruct): furnitureId: str pos0: int pos1: int - dir_: int = field(name='dir') + dir_: int = field(name="dir") class BuildingDataCustomDataThemeData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int name: str themeType: str @@ -272,7 +272,7 @@ class BuildingDataCustomDataThemeData(BaseStruct): class BuildingDataCustomDataGroupData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int name: str themeId: str @@ -282,14 +282,14 @@ class BuildingDataCustomDataGroupData(BaseStruct): class BuildingDataCustomDataFurnitureTypeData(BaseStruct): - type_: str = field(name='type') + type_: str = field(name="type") name: str class BuildingDataCustomDataFurnitureSubTypeData(BaseStruct): subType: str name: str - type_: str = field(name='type') + type_: str = field(name="type") sortId: int @@ -423,7 +423,7 @@ class BuildingDataCreditFormula(BaseStruct): class BuildingData(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" controlSlotId: str meetingSlotId: str diff --git a/ArknightsUID/utils/models/gamedata/CampaignTable.py b/ArknightsUID/utils/models/gamedata/CampaignTable.py index 73c1385..ffbed87 100644 --- a/ArknightsUID/utils/models/gamedata/CampaignTable.py +++ b/ArknightsUID/utils/models/gamedata/CampaignTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class CampaignDataBreakRewardLadder(BaseStruct): @@ -18,16 +18,16 @@ class CampaignDataBreakRewardLadder(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") dropType: str count: int weight: int class StageDataDisplayRewards_(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -58,15 +58,15 @@ class CampaignDataGainLadder(BaseStruct): class StageDataDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -93,19 +93,19 @@ class CampaignGroupData(BaseStruct): class CampaignRegionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") isUnknwon: int class CampaignZoneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str regionId: str templateId: str class CampaignMissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int param: List[str] description: str @@ -145,7 +145,7 @@ class CampaignTrainingAllOpenTimeData(BaseStruct): class CampaignTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" campaigns: Dict[str, CampaignData] campaignGroups: Dict[str, CampaignGroupData] diff --git a/ArknightsUID/utils/models/gamedata/ChapterTable.py b/ArknightsUID/utils/models/gamedata/ChapterTable.py index e3cafe9..1ec54d9 100644 --- a/ArknightsUID/utils/models/gamedata/ChapterTable.py +++ b/ArknightsUID/utils/models/gamedata/ChapterTable.py @@ -15,6 +15,6 @@ class ChapterData(BaseStruct): class ChapterTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" chapters: Dict[str, ChapterData] diff --git a/ArknightsUID/utils/models/gamedata/CharMetaTable.py b/ArknightsUID/utils/models/gamedata/CharMetaTable.py index 94fc15c..ff33276 100644 --- a/ArknightsUID/utils/models/gamedata/CharMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/CharMetaTable.py @@ -1,14 +1,14 @@ from typing import Dict, List -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class SpCharMissionData(BaseStruct): @@ -21,7 +21,7 @@ class SpCharMissionData(BaseStruct): class CharMetaTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" spCharGroups: Dict[str, List[str]] spCharMissions: Dict[str, Dict[str, SpCharMissionData]] diff --git a/ArknightsUID/utils/models/gamedata/CharPatchTable.py b/ArknightsUID/utils/models/gamedata/CharPatchTable.py index 68aca0e..f555124 100644 --- a/ArknightsUID/utils/models/gamedata/CharPatchTable.py +++ b/ArknightsUID/utils/models/gamedata/CharPatchTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class CharPatchDataPatchInfo(BaseStruct): tmplIds: List[str] @@ -37,7 +37,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name='def') + def_: int = field(name="def") magicResistance: float cost: int blockCnt: int @@ -65,9 +65,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class CharacterDataPhaseData(BaseStruct): @@ -129,7 +129,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name='type') + type_: int = field(name="type") description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -191,7 +191,7 @@ class CharPatchDataPatchDetailInfo(BaseStruct): class CharPatchTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" infos: Dict[str, CharPatchDataPatchInfo] patchChars: Dict[str, CharacterData] diff --git a/ArknightsUID/utils/models/gamedata/CharacterTable.py b/ArknightsUID/utils/models/gamedata/CharacterTable.py index 28301c4..ac2ba3b 100644 --- a/ArknightsUID/utils/models/gamedata/CharacterTable.py +++ b/ArknightsUID/utils/models/gamedata/CharacterTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class CharacterDataUnlockCondition(BaseStruct): phase: int @@ -33,7 +33,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name='def') + def_: int = field(name="def") magicResistance: float cost: int blockCnt: int @@ -61,9 +61,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class CharacterDataPhaseData(BaseStruct): @@ -126,7 +126,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name='type') + type_: int = field(name="type") description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -175,7 +175,7 @@ class CharacterData(BaseStruct): class CharacterTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" chars: Dict[str, CharacterData] diff --git a/ArknightsUID/utils/models/gamedata/CharmTable.py b/ArknightsUID/utils/models/gamedata/CharmTable.py index edd1aac..6ebb74f 100644 --- a/ArknightsUID/utils/models/gamedata/CharmTable.py +++ b/ArknightsUID/utils/models/gamedata/CharmTable.py @@ -1,9 +1,9 @@ from typing import List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class RuneDataSelector(BaseStruct): professionMask: Union[int, str] @@ -31,7 +31,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: float mutexGroupKey: Union[str, None] description: str @@ -39,7 +39,7 @@ class RuneTablePackedRuneData(BaseStruct): class CharmItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sort: int name: str icon: str @@ -58,6 +58,6 @@ class CharmItemData(BaseStruct): class CharmTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" charmList: List[CharmItemData] diff --git a/ArknightsUID/utils/models/gamedata/CharwordTable.py b/ArknightsUID/utils/models/gamedata/CharwordTable.py index c017efa..794fecd 100644 --- a/ArknightsUID/utils/models/gamedata/CharwordTable.py +++ b/ArknightsUID/utils/models/gamedata/CharwordTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class CharWordUnlockParam(BaseStruct): valueStr: Union[str, None] @@ -36,7 +36,7 @@ class VoiceLangInfoData(BaseStruct): class VoiceLangData(BaseStruct): wordkeys: List[str] charId: str - dict_: Dict[str, VoiceLangInfoData] = field(name='dict') + dict_: Dict[str, VoiceLangInfoData] = field(name="dict") class VoiceLangTypeData(BaseStruct): @@ -55,7 +55,7 @@ class NewVoiceTimeData(BaseStruct): class CharwordTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" charWords: Dict[str, CharWordData] voiceLangDict: Dict[str, VoiceLangData] diff --git a/ArknightsUID/utils/models/gamedata/CheckinTable.py b/ArknightsUID/utils/models/gamedata/CheckinTable.py index 21a6efe..92861b9 100644 --- a/ArknightsUID/utils/models/gamedata/CheckinTable.py +++ b/ArknightsUID/utils/models/gamedata/CheckinTable.py @@ -1,14 +1,14 @@ from typing import Dict, List -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class MonthlySignInData(BaseStruct): @@ -36,7 +36,7 @@ class MonthlyDailyBonusGroup(BaseStruct): class CheckinTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" groups: Dict[str, MonthlySignInGroupData] monthlySubItem: Dict[str, List[MonthlyDailyBonusGroup]] diff --git a/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py b/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py index 0c1bc92..f6ea8b2 100644 --- a/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py +++ b/ArknightsUID/utils/models/gamedata/ClimbTowerTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct): @@ -17,7 +17,7 @@ class ClimbTowerSingleTowerDataClimbTowerTaskRewardData(BaseStruct): class ClimbTowerSingleTowerData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int stageNum: int name: str @@ -42,29 +42,29 @@ class ClimbTowerSingleTowerData(BaseStruct): class WeightItemBundle(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") dropType: str count: int weight: int class StageDataDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int class ClimbTowerDropDisplayInfo(BaseStruct): itemId: str - type_: int = field(name='type') + type_: int = field(name="type") maxCount: int minCount: int @@ -77,7 +77,7 @@ class ClimbTowerLevelDropInfo(BaseStruct): class ClimbTowerSingleLevelData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") levelId: str towerId: str layerNum: int @@ -90,7 +90,7 @@ class ClimbTowerSingleLevelData(BaseStruct): class ClimbTowerTacticalBuffData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str profession: str isDefaultActive: bool @@ -124,7 +124,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: float mutexGroupKey: Union[str, None] description: str @@ -132,8 +132,8 @@ class RuneTablePackedRuneData(BaseStruct): class ClimbTowerMainCardData(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") linkedTowerId: Union[str, None] sortId: int name: str @@ -144,7 +144,7 @@ class ClimbTowerMainCardData(BaseStruct): class ClimbTowerSubCardData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") mainCardId: str sortId: int name: str @@ -154,7 +154,7 @@ class ClimbTowerSubCardData(BaseStruct): class ClimbTowerCurseCardData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") towerIdList: List[str] name: str desc: str @@ -162,7 +162,7 @@ class ClimbTowerCurseCardData(BaseStruct): class ClimbTowerSeasonInfoData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str startTs: int endTs: int @@ -196,16 +196,16 @@ class ClimbTowerRewardInfo(BaseStruct): class MissionDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int class MissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int description: str - type_: str = field(name='type') + type_: str = field(name="type") itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -228,9 +228,9 @@ class ClimbTowerMissionData(MissionData): class MissionGroup(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: Union[str, None] - type_: str = field(name='type') + type_: str = field(name="type") preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: List[MissionDisplayRewards] @@ -240,7 +240,7 @@ class MissionGroup(BaseStruct): class ClimbTowerTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" towers: Dict[str, ClimbTowerSingleTowerData] levels: Dict[str, ClimbTowerSingleLevelData] diff --git a/ArknightsUID/utils/models/gamedata/ClueData.py b/ArknightsUID/utils/models/gamedata/ClueData.py index 4205a1e..076658c 100644 --- a/ArknightsUID/utils/models/gamedata/ClueData.py +++ b/ArknightsUID/utils/models/gamedata/ClueData.py @@ -21,7 +21,7 @@ class MeetingClueDataReceiveTimeBonus(BaseStruct): class ClueData(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" clues: List[MeetingClueDataClueData] clueTypes: List[MeetingClueDataClueTypeData] diff --git a/ArknightsUID/utils/models/gamedata/CrisisTable.py b/ArknightsUID/utils/models/gamedata/CrisisTable.py index b5021ec..e68974b 100644 --- a/ArknightsUID/utils/models/gamedata/CrisisTable.py +++ b/ArknightsUID/utils/models/gamedata/CrisisTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class StringKeyFrames(BaseStruct): @@ -34,12 +34,9 @@ class CrisisMapRankInfo(BaseStruct): class CrisisTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" seasonInfo: List[CrisisClientDataSeasonInfo] - tempAppraise: List[StringKeyFrames] - permAppraise: List[StringKeyFrames] - mapRankInfo: Dict[str, CrisisMapRankInfo] meta: str unlockCoinLv3: int hardPointPerm: int @@ -47,3 +44,6 @@ class CrisisTable(BaseStruct): voiceGrade: int crisisRuneCoinUnlockItemTitle: str crisisRuneCoinUnlockItemDesc: str + tempAppraise: Union[List[StringKeyFrames], None] = None # Removed in 2.1.21 + permAppraise: Union[List[StringKeyFrames], None] = None # Removed in 2.1.21 + mapRankInfo: Union[Dict[str, CrisisMapRankInfo], None] = None # Removed in 2.1.21 diff --git a/ArknightsUID/utils/models/gamedata/CrisisV2Table.py b/ArknightsUID/utils/models/gamedata/CrisisV2Table.py new file mode 100644 index 0000000..6a3d661 --- /dev/null +++ b/ArknightsUID/utils/models/gamedata/CrisisV2Table.py @@ -0,0 +1,53 @@ +from enum import Enum +from typing import Dict + +from ..common import BaseStruct + +from msgspec import field + + +class ItemBundle(BaseStruct): + id_: str = field(name="id") + count: int + type_: str = field(name="type") + + +class StringKeyFrames(BaseStruct): + level: int + data: str + + +class CrisisV2ConstData(BaseStruct): + sysStartTime: int + blackScoreThreshold: int + redScoreThreshold: int + detailBkgRedThreshold: int + voiceGrade: int + seasonButtonUnlockInfo: int + shopCoinId: str + hardBgmSwitchScore: int + stageId: str + hideTodoWhenStageFinish: bool + + +class appraiseType(Enum): + RANK_D = "RANK_D" + RANK_C = "RANK_C" + RANK_B = "RANK_B" + RANK_A = "RANK_A" + RANK_S = "RANK_S" + RANK_SS = "RANK_SS" + RANK_SSS = "RANK_SSS" + + +class CrisisV2ScoreLevelToAppraiseData(BaseStruct): + appraiseType: appraiseType + + +class CrisisV2Table(BaseStruct): + __version__ = "23-10-31-11-47-45-d410ff" + + seasonInfoDataMap: Dict + scoreLevelToAppraiseDataMap: Dict[str, CrisisV2ScoreLevelToAppraiseData] + constData: CrisisV2ConstData + battleCommentRuneData: Dict diff --git a/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py b/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py index 3287853..1d53f2f 100644 --- a/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/DisplayMetaTable.py @@ -1,9 +1,9 @@ from typing import Dict, List -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class PlayerAvatarPerData(BaseStruct): avatarId: str @@ -42,8 +42,8 @@ class HomeBackgroundSingleData(BaseStruct): class HomeBackgroundThemeData(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") sortId: int startTime: int tmName: str @@ -61,7 +61,7 @@ class ThemeLimitInfo(BaseStruct): class HomeBackgroundThemeLimitData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") limitInfos: List[ThemeLimitInfo] @@ -76,7 +76,7 @@ class HomeBackgroundData(BaseStruct): class DisplayMetaTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" playerAvatarData: PlayerAvatarData homeBackgroundData: HomeBackgroundData diff --git a/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py b/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py index c4416cf..d0c071f 100644 --- a/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py +++ b/ArknightsUID/utils/models/gamedata/EnemyHandbookTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class EnemyHandBookDataAbilty(BaseStruct): text: str @@ -31,14 +31,14 @@ class EnemyHandBookData(BaseStruct): class EnemyHandbookLevelInfoDataRangePair(BaseStruct): - min_: float = field(name='min') - max_: float = field(name='max') + min_: float = field(name="min") + max_: float = field(name="max") class EnemyHandbookLevelInfoData(BaseStruct): classLevel: str attack: EnemyHandbookLevelInfoDataRangePair - def_: EnemyHandbookLevelInfoDataRangePair = field(name='def') + def_: EnemyHandbookLevelInfoDataRangePair = field(name="def") magicRes: EnemyHandbookLevelInfoDataRangePair maxHP: EnemyHandbookLevelInfoDataRangePair moveSpeed: EnemyHandbookLevelInfoDataRangePair @@ -48,13 +48,13 @@ class EnemyHandbookLevelInfoData(BaseStruct): class EnemyHandbookRaceData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") raceName: str sortId: int class EnemyHandbookTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" levelInfoList: List[EnemyHandbookLevelInfoData] enemyData: Dict[str, EnemyHandBookData] diff --git a/ArknightsUID/utils/models/gamedata/FavorTable.py b/ArknightsUID/utils/models/gamedata/FavorTable.py index c4a50a2..901573b 100644 --- a/ArknightsUID/utils/models/gamedata/FavorTable.py +++ b/ArknightsUID/utils/models/gamedata/FavorTable.py @@ -15,7 +15,7 @@ class FavorDataFrames(BaseStruct): class FavorTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" maxFavor: int favorFrames: List[FavorDataFrames] diff --git a/ArknightsUID/utils/models/gamedata/GachaTable.py b/ArknightsUID/utils/models/gamedata/GachaTable.py index b40245a..302a56a 100644 --- a/ArknightsUID/utils/models/gamedata/GachaTable.py +++ b/ArknightsUID/utils/models/gamedata/GachaTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class GachaDataLinkageTenGachaTkt(BaseStruct): itemId: str @@ -32,9 +32,9 @@ class GachaDataCarouselData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class GachaDataRecruitRange(BaseStruct): @@ -131,7 +131,7 @@ class GachaDataFesGachaPoolRelateItem(BaseStruct): class GachaTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" gachaTags: List[GachaTag] carousel: List[GachaDataCarouselData] diff --git a/ArknightsUID/utils/models/gamedata/GamedataConst.py b/ArknightsUID/utils/models/gamedata/GamedataConst.py index d076bfc..e8c0fb2 100644 --- a/ArknightsUID/utils/models/gamedata/GamedataConst.py +++ b/ArknightsUID/utils/models/gamedata/GamedataConst.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class GameDataConstsCharAssistRefreshTimeState(BaseStruct): @@ -23,7 +23,7 @@ class TermDescriptionData(BaseStruct): class GamedataConst(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" addedRewardDisplayZone: str advancedGachaCrystalCost: int @@ -41,9 +41,11 @@ class GamedataConst(BaseStruct): commonPotentialLvlUpCount: int completeCrystalBonus: int completeGainBonus: float + continuousActionOpen: bool creditLimit: int - crisisUnlockStage: str dataVersion: str + defaultMinContinuousBattleTimes: int + defaultMaxContinuousBattleTimes: int defCDPrimColor: str defCDSecColor: str defMax: float @@ -117,3 +119,4 @@ class GamedataConst(BaseStruct): isVoucherClassicItemDistinguishable: Union[bool, None] = None operatorRecordsStartTime: Union[int, None] = None subProfessionDamageTypePairs: Union[Dict[str, int], None] = None + crisisUnlockStage: Union[str, None] = None # Removed in 2.1.21 diff --git a/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py b/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py index fcbe869..d668488 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookInfoTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class HandbookUnlockParam(BaseStruct): unlockType: int @@ -13,9 +13,9 @@ class HandbookUnlockParam(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class HandbookStageTimeData(BaseStruct): @@ -43,11 +43,11 @@ class HandbookStoryStageData(BaseStruct): class HandbookDisplayCondition(BaseStruct): charId: str conditionCharId: str - type_: str = field(name='type') + type_: str = field(name="type") class HandbookTeamMission(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sort: int powerId: str powerName: str @@ -122,7 +122,7 @@ class HandbookInfoData(BaseStruct): class HandbookInfoTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" handbookDict: Dict[str, HandbookInfoData] npcDict: Dict[str, NPCData] diff --git a/ArknightsUID/utils/models/gamedata/HandbookTable.py b/ArknightsUID/utils/models/gamedata/HandbookTable.py index d554dd7..c1e655b 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookTable.py @@ -40,6 +40,6 @@ class CharHandbook(BaseStruct): class HandbookTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" char_102_texas: CharHandbook diff --git a/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py b/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py index c7f5e62..bfc50bd 100644 --- a/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py +++ b/ArknightsUID/utils/models/gamedata/HandbookTeamTable.py @@ -15,6 +15,6 @@ class HandbookTeam(BaseStruct): class HandbookTeamTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" team: Dict[str, HandbookTeam] diff --git a/ArknightsUID/utils/models/gamedata/ItemTable.py b/ArknightsUID/utils/models/gamedata/ItemTable.py index 205acaa..9a17b52 100644 --- a/ArknightsUID/utils/models/gamedata/ItemTable.py +++ b/ArknightsUID/utils/models/gamedata/ItemTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemDataStageDropInfo(BaseStruct): stageId: str @@ -16,9 +16,9 @@ class ItemDataBuildingProductInfo(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class FavorCharacterInfo(BaseStruct): @@ -47,13 +47,13 @@ class UniCollectionInfo(BaseStruct): class ApSupplyFeature(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") ap: int hasTs: bool class ExpItemFeature(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") gainExp: int @@ -83,7 +83,7 @@ class ItemData(BaseStruct): class CharVoucherItemFeature(BaseStruct): displayType: int - id_: str = field(name='id') + id_: str = field(name="id") class ServerItemReminderMailData(BaseStruct): @@ -98,7 +98,7 @@ class ServerItemReminderInfo(BaseStruct): class ItemTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" activityPotentialCharacters: Dict[str, ActivityPotentialCharacterInfo] apSupplies: Dict[str, ApSupplyFeature] diff --git a/ArknightsUID/utils/models/gamedata/MedalTable.py b/ArknightsUID/utils/models/gamedata/MedalTable.py index ccc9624..49cd25b 100644 --- a/ArknightsUID/utils/models/gamedata/MedalTable.py +++ b/ArknightsUID/utils/models/gamedata/MedalTable.py @@ -1,20 +1,20 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class MedalExpireTime(BaseStruct): start: int end: int - type_: str = field(name='type') + type_: str = field(name="type") class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class MedalGroupData(BaseStruct): @@ -61,7 +61,7 @@ class MedalPerData(BaseStruct): class MedalTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" medalList: List[MedalPerData] medalTypeData: Dict[str, MedalTypeData] diff --git a/ArknightsUID/utils/models/gamedata/MissionTable.py b/ArknightsUID/utils/models/gamedata/MissionTable.py index a7ac5be..72387c4 100644 --- a/ArknightsUID/utils/models/gamedata/MissionTable.py +++ b/ArknightsUID/utils/models/gamedata/MissionTable.py @@ -1,13 +1,13 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class MissionDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int @@ -28,26 +28,26 @@ class MissionWeeklyRewardConf(BaseStruct): beginTime: int endTime: int groupId: str - id_: str = field(name='id') + id_: str = field(name="id") periodicalPointCost: int - type_: str = field(name='type') + type_: str = field(name="type") sortIndex: int rewards: List[MissionDisplayRewards] class MissionDailyRewardConf(BaseStruct): groupId: str - id_: str = field(name='id') + id_: str = field(name="id") periodicalPointCost: int - type_: str = field(name='type') + type_: str = field(name="type") sortIndex: int rewards: List[MissionDisplayRewards] class MissionGroup(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: Union[str, None] - type_: str = field(name='type') + type_: str = field(name="type") preMissionGroup: Union[str, None] period: Union[List[int], None] rewards: Union[List[MissionDisplayRewards], None] @@ -57,10 +57,10 @@ class MissionGroup(BaseStruct): class MissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int description: str - type_: str = field(name='type') + type_: str = field(name="type") itemBgType: str preMissionIds: Union[List[str], None] template: str @@ -78,7 +78,7 @@ class MissionData(BaseStruct): class MissionTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" missions: Dict[str, MissionData] missionGroups: Dict[str, MissionGroup] diff --git a/ArknightsUID/utils/models/gamedata/OpenServerTable.py b/ArknightsUID/utils/models/gamedata/OpenServerTable.py index 11a104a..8dcba55 100644 --- a/ArknightsUID/utils/models/gamedata/OpenServerTable.py +++ b/ArknightsUID/utils/models/gamedata/OpenServerTable.py @@ -1,26 +1,26 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class RewardItem(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int sortId: int class ItemBundle(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int class MissionDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") count: int @@ -42,7 +42,7 @@ class ReturnCheckinData(BaseStruct): class ReturnLongTermTaskData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int template: str param: List[str] @@ -53,7 +53,7 @@ class ReturnLongTermTaskData(BaseStruct): class ReturnDailyTaskData(BaseStruct): groupId: str - id_: str = field(name='id') + id_: str = field(name="id") groupSortId: int taskSortId: int template: str @@ -105,10 +105,10 @@ class ChainLoginData(BaseStruct): class MissionData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") sortId: int description: str - type_: str = field(name='type') + type_: str = field(name="type") itemBgType: str preMissionIds: None template: str @@ -126,9 +126,9 @@ class MissionData(BaseStruct): class MissionGroup(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: None - type_: str = field(name='type') + type_: str = field(name="type") preMissionGroup: None period: None rewards: None @@ -145,7 +145,7 @@ class OpenServerData(BaseStruct): class OpenServerScheduleItem(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") startTs: int endTs: int totalCheckinDescption: str @@ -269,7 +269,7 @@ class OpenServerNewbieCheckInPackage(BaseStruct): class OpenServerTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" schedule: List[OpenServerScheduleItem] dataMap: Dict[str, OpenServerData] diff --git a/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py b/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py index 84a18bb..f73248a 100644 --- a/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py +++ b/ArknightsUID/utils/models/gamedata/PlayerAvatarTable.py @@ -21,7 +21,7 @@ class PlayerAvatarPerData(BaseStruct): class PlayerAvatarTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" avatarList: List[PlayerAvatarPerData] avatarTypeData: Dict[str, PlayerAvatarGroupData] diff --git a/ArknightsUID/utils/models/gamedata/RangeTable.py b/ArknightsUID/utils/models/gamedata/RangeTable.py index ff0c7ef..eb75df4 100644 --- a/ArknightsUID/utils/models/gamedata/RangeTable.py +++ b/ArknightsUID/utils/models/gamedata/RangeTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class GridPosition(BaseStruct): row: int @@ -18,13 +18,13 @@ class ObscuredRect(BaseStruct): class Stage(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") direction: int grids: List[GridPosition] boundingBoxes: Union[List[ObscuredRect], None] = None class RangeTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" range_: Dict[str, Stage] diff --git a/ArknightsUID/utils/models/gamedata/ReplicateTable.py b/ArknightsUID/utils/models/gamedata/ReplicateTable.py index 142b854..8e75b2a 100644 --- a/ArknightsUID/utils/models/gamedata/ReplicateTable.py +++ b/ArknightsUID/utils/models/gamedata/ReplicateTable.py @@ -1,14 +1,14 @@ from typing import Dict, List -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class ReplicateData(BaseStruct): @@ -21,6 +21,6 @@ class ReplicateList(BaseStruct): class ReplicateTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" replicate: Dict[str, ReplicateList] diff --git a/ArknightsUID/utils/models/gamedata/RetroTable.py b/ArknightsUID/utils/models/gamedata/RetroTable.py index cd59b95..6cf06c0 100644 --- a/ArknightsUID/utils/models/gamedata/RetroTable.py +++ b/ArknightsUID/utils/models/gamedata/RetroTable.py @@ -1,19 +1,19 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class StageDataDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -32,8 +32,8 @@ class Act17sideDataChoiceNodeOptionData(BaseStruct): class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int CannotGetPercent: Union[float, None] = None GetPercent: Union[float, None] = None @@ -69,7 +69,7 @@ class Act17sideDataMainlineChapterData(BaseStruct): chapterDes: str chapterIcon: str unlockDes: str - id_: str = field(name='id') + id_: str = field(name="id") class RunesSelector(BaseStruct): @@ -92,7 +92,7 @@ class TechTreeBranchRunes(BaseStruct): class BranchRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: float mutexGroupKey: None description: str @@ -260,7 +260,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): description: str - id_: str = field(name='id') + id_: str = field(name="id") points: float runes: List[RuneData] mutexGroupKey: Union[str, None] = None @@ -285,11 +285,27 @@ class ActivityCustomDataAct20sideCustomData(BaseStruct): residentCartDatas: Dict[str, Dict[str, str]] +class Act21SideDataZoneAddtionData(BaseStruct): + zoneId: str + unlockText: str + stageUnlockText: Union[str, None] + entryId: str + + +class Act21SideDataConstData(BaseStruct): + lineConnectZone: str + + +class ActivityCustomDataAct21sideCustomData(BaseStruct): + zoneAdditionDataMap: Dict[str, Act21SideDataZoneAddtionData] + constData: Act21SideDataConstData + + class ActivityCustomData(BaseStruct): TYPE_ACT17SIDE: Dict[str, Act17sideData] TYPE_ACT25SIDE: Dict[str, ActivityCustomDataAct25sideCustomData] TYPE_ACT20SIDE: Dict[str, ActivityCustomDataAct20sideCustomData] - TYPE_ACT21SIDE: Dict[str, None] + TYPE_ACT21SIDE: Dict[str, ActivityCustomDataAct21sideCustomData] class RetroTrailRuleData(BaseStruct): @@ -300,8 +316,8 @@ class RetroTrailRuleData(BaseStruct): class WeightItemBundle(BaseStruct): count: int dropType: str - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") weight: int @@ -385,7 +401,7 @@ class RetroTrailData(BaseStruct): class RetroActData(BaseStruct): retroId: str - type_: int = field(name='type') + type_: int = field(name="type") linkedActId: List[str] startTime: int trailStartTime: int @@ -414,7 +430,7 @@ class RetroStageOverrideInfo(BaseStruct): class RetroTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" customData: ActivityCustomData initRetroCoin: int diff --git a/ArknightsUID/utils/models/gamedata/RoguelikeTable.py b/ArknightsUID/utils/models/gamedata/RoguelikeTable.py index 4f12c14..5c81268 100644 --- a/ArknightsUID/utils/models/gamedata/RoguelikeTable.py +++ b/ArknightsUID/utils/models/gamedata/RoguelikeTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class Blackboard(BaseStruct): key: str @@ -28,12 +28,12 @@ class RoguelikeOuterBuff(BaseStruct): class RoguelikeOutBuffData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") buffs: Dict[str, RoguelikeOuterBuff] class RoguelikeEndingData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") backgroundId: str name: str description: str @@ -43,7 +43,7 @@ class RoguelikeEndingData(BaseStruct): class RoguelikeModeData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str canUnlockItem: int scoreFactor: float @@ -56,24 +56,24 @@ class RoguelikeModeData(BaseStruct): class RoguelikeChoiceSceneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: str description: str background: str class RoguelikeChoiceData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: str description: Union[str, None] - type_: str = field(name='type') + type_: str = field(name="type") nextSceneId: Union[str, None] icon: Union[str, None] param: Dict[str, object] class RoguelikeZoneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str description: str endingDescription: str @@ -82,7 +82,7 @@ class RoguelikeZoneData(BaseStruct): class RoguelikeStageData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") linkedStageId: str levelId: str code: str @@ -96,12 +96,12 @@ class RoguelikeStageData(BaseStruct): class RoguelikeRelicFeature(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") buffs: List[RoguelikeBuff] class RoguelikeUpgradeTicketFeature(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") profession: int rarity: int professionList: List[str] @@ -109,7 +109,7 @@ class RoguelikeUpgradeTicketFeature(BaseStruct): class RoguelikeRecruitTicketFeature(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") profession: int rarity: int professionList: List[str] @@ -125,13 +125,13 @@ class RelicStableUnlockParam(BaseStruct): class RoguelikeItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str description: Union[str, None] usage: str obtainApproach: str iconId: str - type_: str = field(name='type') + type_: str = field(name="type") rarity: str value: int sortId: int @@ -193,7 +193,7 @@ class RoguelikeConstTable(BaseStruct): class RoguelikeTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" constTable: RoguelikeConstTable itemTable: RoguelikeItemTable diff --git a/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py b/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py index 45ead55..1471571 100644 --- a/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py +++ b/ArknightsUID/utils/models/gamedata/RoguelikeTopicTable.py @@ -21,7 +21,7 @@ class RoguelikeTopicConfig(BaseStruct): class RoguelikeTopicBasicData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str startTime: int disappearTimeOnMainScreen: int @@ -68,7 +68,7 @@ class RoguelikeTopicEnroll(BaseStruct): class RoguelikeTopicBP(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") level: int tokenNum: int nextTokenNum: int @@ -88,9 +88,9 @@ class RoguelikeTopicMilestoneUpdateData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class RoguelikeTopicBPGrandPrize(BaseStruct): @@ -111,7 +111,7 @@ class RoguelikeTopicBPGrandPrize(BaseStruct): class RoguelikeTopicMonthMission(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") taskName: str taskClass: str innerClassWeight: int @@ -122,7 +122,7 @@ class RoguelikeTopicMonthMission(BaseStruct): class RoguelikeTopicMonthSquad(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") teamName: str teamSubName: Union[str, None] teamFlavorDesc: Union[str, None] @@ -162,6 +162,7 @@ class RoguelikeTopicChallenge(BaseStruct): challengeTasks: Dict[str, RoguelikeTopicChallengeTask] defaultTaskId: str rewards: List[ItemBundle] + challengeStoryId: Union[str, None] = None class RoguelikeTopicDifficulty(BaseStruct): @@ -291,8 +292,8 @@ class ActArchiveBuffData(BaseStruct): class ActArchiveTotemItemData(BaseStruct): - id_: str = field(name='id') - type_: int = field(name='type') + id_: str = field(name="id") + type_: int = field(name="type") enrollConditionId: Union[str, None] sortId: int @@ -302,7 +303,7 @@ class ActArchiveTotemData(BaseStruct): class ActArchiveChaosItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") isHidden: bool enrollId: Union[str, None] sortId: int @@ -321,7 +322,7 @@ class RoguelikeArchiveComponentData(BaseStruct): buff: ActArchiveBuffData totem: Union[ActArchiveTotemData, None] chaos: Union[ActArchiveChaosData, None] - challengeBook: Dict[str, Dict[str, None]] + challengeBook: Union[Dict[str, Dict[str, None]], None] = None # Removed in 2.1.21 class RoguelikeArchiveUnlockCondDesc(BaseStruct): @@ -353,6 +354,10 @@ class RoguelikeTopicDetailConstCharUpgradeData(BaseStruct): skillSpecializeLevel: int +class RoguelikeTopicDetailConstPredefinedPlayerLevelData(BaseStruct): + levels: Dict[str, RoguelikeTopicDetailConstPlayerLevelData] + + class RoguelikeTopicDetailConst(BaseStruct): playerLevelTable: Dict[str, RoguelikeTopicDetailConstPlayerLevelData] charUpgradeTable: Dict[str, RoguelikeTopicDetailConstCharUpgradeData] @@ -384,6 +389,10 @@ class RoguelikeTopicDetailConst(BaseStruct): outerBuffTokenSum: int needAllFrontNode: bool showBlurBack: bool + predefinedLevelTable: Union[ + Dict[str, RoguelikeTopicDetailConstPredefinedPlayerLevelData], + None, + ] = None class RoguelikeGameInitData(BaseStruct): @@ -403,7 +412,7 @@ class RoguelikeGameInitData(BaseStruct): class RoguelikeGameStageData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") linkedStageId: str levelId: str code: str @@ -422,7 +431,7 @@ class RoguelikeGameStageData(BaseStruct): class RoguelikeGameZoneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str clockPerformance: Union[str, None] displayTime: Union[str, None] @@ -444,7 +453,7 @@ class RoguelikeGameTrapData(BaseStruct): class RoguelikeGameRecruitTicketData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") profession: int rarity: int professionList: List[str] @@ -455,7 +464,7 @@ class RoguelikeGameRecruitTicketData(BaseStruct): class RoguelikeGameUpgradeTicketData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") profession: int rarity: int professionList: List[str] @@ -463,7 +472,7 @@ class RoguelikeGameUpgradeTicketData(BaseStruct): class RoguelikeGameCustomTicketData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") subType: str discardText: str @@ -480,7 +489,7 @@ class RoguelikeBuff(BaseStruct): class RoguelikeGameRelicData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") buffs: List[RoguelikeBuff] @@ -491,13 +500,13 @@ class RoguelikeGameRelicCheckParam(BaseStruct): class RoguelikeGameRelicParamData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") checkCharBoxTypes: List[str] checkCharBoxParams: List[RoguelikeGameRelicCheckParam] class RoguelikeGameRecruitGrpData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") iconId: str name: str desc: str @@ -505,7 +514,7 @@ class RoguelikeGameRecruitGrpData(BaseStruct): class RoguelikeChoiceDisplayData(BaseStruct): - type_: str = field(name='type') + type_: str = field(name="type") funcIconId: Union[str, None] itemId: Union[str, None] taskId: Union[str, None] @@ -515,11 +524,11 @@ class RoguelikeChoiceDisplayData(BaseStruct): class RoguelikeGameChoiceData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: str description: Union[str, None] lockedCoverDesc: Union[str, None] - type_: str = field(name='type') + type_: str = field(name="type") leftDecoType: str nextSceneId: Union[str, None] icon: Union[str, None] @@ -528,7 +537,7 @@ class RoguelikeGameChoiceData(BaseStruct): class RoguelikeGameChoiceSceneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") title: str description: str background: Union[str, None] @@ -551,8 +560,8 @@ class RoguelikeGameNodeSubTypeData(BaseStruct): class RoguelikeGameVariationData(BaseStruct): - id_: str = field(name='id') - type_: str = field(name='type') + id_: str = field(name="id") + type_: str = field(name="type") outerName: str innerName: str functionDesc: str @@ -562,7 +571,7 @@ class RoguelikeGameVariationData(BaseStruct): class RoguelikeGameCharBuffData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") iconId: str outerName: str innerName: str @@ -572,7 +581,7 @@ class RoguelikeGameCharBuffData(BaseStruct): class RoguelikeGameSquadBuffData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") iconId: str outerName: str innerName: str @@ -654,7 +663,7 @@ class RoguelikeGameEndingDataLevelIcon(BaseStruct): class RoguelikeGameEndingData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") familyId: int name: str desc: str @@ -676,13 +685,13 @@ class TipData(BaseStruct): class RoguelikeGameItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str description: Union[str, None] usage: str obtainApproach: str iconId: str - type_: str = field(name='type') + type_: str = field(name="type") subType: str rarity: str value: int @@ -731,6 +740,12 @@ class RoguelikePredefinedStyleData(BaseStruct): styleConfig: int +class RoguelikeGameExploreToolData(BaseStruct): + itemId: str + trapId: str + trapDesc: str + + class RoguelikeTopicDetail(BaseStruct): updates: List[RoguelikeTopicUpdate] enrolls: Dict[str, RoguelikeTopicEnroll] @@ -779,6 +794,7 @@ class RoguelikeTopicDetail(BaseStruct): RoguelikeDifficultyUpgradeRelicGroupData, ] styleConfig: Dict[str, RoguelikePredefinedStyleData] + exploreTools: Union[Dict[str, RoguelikeGameExploreToolData], None] = None styles: Union[Dict[str, RoguelikePredefinedStyleData], None] = {} @@ -945,7 +961,7 @@ class RoguelikeVisionData(BaseStruct): class RoguelikeVisionModuleDataVisionChoiceConfig(BaseStruct): value: int - type_: int = field(name='type') + type_: int = field(name="type") class RoguelikeVisionModuleConsts(BaseStruct): @@ -1190,7 +1206,7 @@ class RL03DifficultyExt(BaseStruct): modeDifficulty: str grade: int totemProb: Union[int, float] - relicDevLevel: str + relicDevLevel: Union[str, None] buffs: Union[List[str], None] buffDesc: List[str] @@ -1211,7 +1227,7 @@ class RoguelikeTopicCustomizeData(BaseStruct): class RoguelikeTopicTable(BaseStruct): - __version__ = '23-04-23-15-07-53-24a81c' + __version__ = "23-04-23-15-07-53-24a81c" topics: Dict[str, RoguelikeTopicBasicData] constant: RoguelikeTopicConst diff --git a/ArknightsUID/utils/models/gamedata/SandboxTable.py b/ArknightsUID/utils/models/gamedata/SandboxTable.py index 5f773ef..02b62d2 100644 --- a/ArknightsUID/utils/models/gamedata/SandboxTable.py +++ b/ArknightsUID/utils/models/gamedata/SandboxTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class SandboxMapConstTable(BaseStruct): directionNames: List[str] @@ -240,7 +240,7 @@ class SandboxEventData(BaseStruct): class SandboxEventSceneData(BaseStruct): choiceSceneId: str - type_: str = field(name='type') + type_: str = field(name="type") title: str description: str choices: List[str] @@ -248,7 +248,7 @@ class SandboxEventSceneData(BaseStruct): class SandboxEventChoiceData(BaseStruct): choiceId: str - type_: str = field(name='type') + type_: str = field(name="type") costAction: int finishScene: bool title: str @@ -272,12 +272,12 @@ class SandboxMissionData(BaseStruct): class SandboxUnitData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str class SandboxDailyDescTemplateData(BaseStruct): - type_: str = field(name='type') + type_: str = field(name="type") templateDesc: List[str] @@ -296,7 +296,7 @@ class RushEnemyGroupConfig(BaseStruct): class RushEnemyGroupRushEnemyDBRef(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") level: int @@ -331,7 +331,7 @@ class RuneData(BaseStruct): class RuneTablePackedRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: Union[int, float] mutexGroupKey: Union[str, None] description: str @@ -398,7 +398,7 @@ class SandboxItemData(BaseStruct): class SandboxTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" sandboxActTables: Dict[str, SandboxActTable] itemDatas: Dict[str, SandboxItemData] diff --git a/ArknightsUID/utils/models/gamedata/ShopClientTable.py b/ArknightsUID/utils/models/gamedata/ShopClientTable.py index d9943c3..52e3fba 100644 --- a/ArknightsUID/utils/models/gamedata/ShopClientTable.py +++ b/ArknightsUID/utils/models/gamedata/ShopClientTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ShopRecommendData(BaseStruct): imgId: str @@ -20,7 +20,7 @@ class ShopRecommendGroup(BaseStruct): class ShopKeeperWord(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") text: str @@ -91,7 +91,7 @@ class ShopCreditUnlockItem(BaseStruct): class ShopCreditUnlockGroup(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") index: str startDateTime: int charDict: List[ShopCreditUnlockItem] @@ -144,7 +144,7 @@ class LMTGSShopOverlaySchedule(BaseStruct): class ShopClientTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" recommendList: List[ShopRecommendItem] creditUnlockGroup: Dict[str, ShopCreditUnlockGroup] diff --git a/ArknightsUID/utils/models/gamedata/SkillTable.py b/ArknightsUID/utils/models/gamedata/SkillTable.py index 4cd47d0..86a23f2 100644 --- a/ArknightsUID/utils/models/gamedata/SkillTable.py +++ b/ArknightsUID/utils/models/gamedata/SkillTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class SpData(BaseStruct): @@ -46,6 +46,6 @@ class SkillDataBundle(BaseStruct): class SkillTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" skills: Dict[str, SkillDataBundle] diff --git a/ArknightsUID/utils/models/gamedata/SkinTable.py b/ArknightsUID/utils/models/gamedata/SkinTable.py index 93e5bf4..da2e122 100644 --- a/ArknightsUID/utils/models/gamedata/SkinTable.py +++ b/ArknightsUID/utils/models/gamedata/SkinTable.py @@ -82,7 +82,7 @@ class SpecialSkinInfo(BaseStruct): class SkinTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" charSkins: Dict[str, CharSkinData] buildinEvolveMap: Dict[str, Dict[str, str]] diff --git a/ArknightsUID/utils/models/gamedata/StageTable.py b/ArknightsUID/utils/models/gamedata/StageTable.py index 6e36b91..da0d2ff 100644 --- a/ArknightsUID/utils/models/gamedata/StageTable.py +++ b/ArknightsUID/utils/models/gamedata/StageTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class StageDataConditionDesc(BaseStruct): stageId: str @@ -11,15 +11,15 @@ class StageDataConditionDesc(BaseStruct): class StageDataDisplayRewards(BaseStruct): - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int class StageDataDisplayDetailRewards(BaseStruct): occPercent: int - type_: str = field(name='type') - id_: str = field(name='id') + type_: str = field(name="type") + id_: str = field(name="id") dropType: int @@ -44,9 +44,9 @@ class ProgressInfo(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class ExtraInfo(BaseStruct): @@ -102,6 +102,7 @@ class StageData(BaseStruct): startButtonOverrideId: Union[str, None] isStagePatch: bool mainStageId: Union[str, None] + canContinuousBattle: Union[bool, None] = None canUseCharm: Union[bool, None] = None canUseTech: Union[bool, None] = None canUseTrapTool: Union[bool, None] = None @@ -138,7 +139,7 @@ class TileAppendInfo(BaseStruct): class WeeklyForceOpenTable(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") startTime: int endTime: int forceOpenList: List[str] @@ -240,7 +241,7 @@ class ApProtectZoneInfo(BaseStruct): class StageTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" stages: Dict[str, StageData] runeStageGroups: Dict[str, RuneStageGroupData] diff --git a/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py b/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py index 3ec0a70..93cd866 100644 --- a/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryReviewMetaTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class MiniActTrialDataRuleData(BaseStruct): ruleType: str @@ -11,9 +11,9 @@ class MiniActTrialDataRuleData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class MiniActTrialDataMiniActTrialRewardData(BaseStruct): @@ -38,23 +38,23 @@ class MiniActTrialData(BaseStruct): class ActArchiveResDataPicArchiveResItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str assetPath: str - type_: str = field(name='type') + type_: str = field(name="type") subType: Union[str, None] picDescription: str kvId: Union[str, None] class ActArchiveResDataAudioArchiveResItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str name: str class ActArchiveResDataAvgArchiveResItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str breifPath: Union[str, None] contentPath: str @@ -64,7 +64,7 @@ class ActArchiveResDataAvgArchiveResItemData(BaseStruct): class ActArchiveResDataStoryArchiveResItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str date: Union[str, None] pic: str @@ -86,7 +86,7 @@ class ActArchiveResDataActivityNewsLine(BaseStruct): class ActArchiveResDataNewsArchiveResItemData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") desc: str newsType: str newsFormat: ActArchiveResDataNewsFormatData @@ -111,6 +111,13 @@ class ActArchiveResDataLogArchiveResItemData(BaseStruct): logDesc: str +class ActArchiveResDataChallengeBookArchiveResItemData(BaseStruct): + storyId: str + titleName: str + storyName: str + textId: str + + class ActArchiveResData(BaseStruct): pics: Dict[str, ActArchiveResDataPicArchiveResItemData] audios: Dict[str, ActArchiveResDataAudioArchiveResItemData] @@ -119,6 +126,7 @@ class ActArchiveResData(BaseStruct): news: Dict[str, ActArchiveResDataNewsArchiveResItemData] landmarks: Dict[str, ActArchiveResDataLandmarkArchiveResItemData] logs: Dict[str, ActArchiveResDataLogArchiveResItemData] + challengeBooks: Dict[str, ActArchiveResDataChallengeBookArchiveResItemData] class ActArchiveTimelineItemData(BaseStruct): @@ -195,8 +203,17 @@ class ActArchiveChapterLogData(BaseStruct): chapterIcon: str +class ActArchiveChallengeBookItemData(BaseStruct): + storyId: str + sortId: int + + +class ActArchiveChallengeBookData(BaseStruct): + stories: Dict[str, ActArchiveChallengeBookItemData] + + class ActArchiveComponentData(BaseStruct): - pic: ActArchivePicData + pic: Union[ActArchivePicData, None] = None timeline: Union[ActArchiveTimelineData, None] = None music: Union[ActArchiveMusicData, None] = None story: Union[ActArchiveStoryData, None] = None @@ -204,6 +221,7 @@ class ActArchiveComponentData(BaseStruct): news: Union[ActArchiveNewsData, None] = None landmark: Union[Dict[str, ActArchiveLandmarkItemData], None] = None log: Union[Dict[str, ActArchiveChapterLogData], None] = None + challengeBook: Union[ActArchiveChallengeBookData, None] = None class ActArchiveComponentTable(BaseStruct): @@ -211,7 +229,7 @@ class ActArchiveComponentTable(BaseStruct): class StoryReviewMetaTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" miniActTrialData: MiniActTrialData actArchiveResData: ActArchiveResData diff --git a/ArknightsUID/utils/models/gamedata/StoryReviewTable.py b/ArknightsUID/utils/models/gamedata/StoryReviewTable.py index 4027bfa..6e1d431 100644 --- a/ArknightsUID/utils/models/gamedata/StoryReviewTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryReviewTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class StoryDataConditionStageCondition(BaseStruct): @@ -40,7 +40,7 @@ class StoryReviewInfoClientData(BaseStruct): class StoryReviewGroupClientData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") name: str entryType: str actType: str @@ -60,6 +60,6 @@ class StoryReviewGroupClientData(BaseStruct): class StoryReviewTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" storyreviewtable: Dict[str, StoryReviewGroupClientData] diff --git a/ArknightsUID/utils/models/gamedata/StoryTable.py b/ArknightsUID/utils/models/gamedata/StoryTable.py index de2e5d4..756bfa9 100644 --- a/ArknightsUID/utils/models/gamedata/StoryTable.py +++ b/ArknightsUID/utils/models/gamedata/StoryTable.py @@ -1,12 +1,12 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class StoryDataTrigger(BaseStruct): - type_: str = field(name='type') + type_: str = field(name="type") key: Union[str, None] useRegex: bool @@ -27,13 +27,13 @@ class StoryDataCondition(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class StoryData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") needCommit: bool repeatable: bool disabled: bool @@ -46,6 +46,6 @@ class StoryData(BaseStruct): class StoryTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" stories: Dict[str, StoryData] diff --git a/ArknightsUID/utils/models/gamedata/TechBuffTable.py b/ArknightsUID/utils/models/gamedata/TechBuffTable.py index 612cfe7..ba1c07c 100644 --- a/ArknightsUID/utils/models/gamedata/TechBuffTable.py +++ b/ArknightsUID/utils/models/gamedata/TechBuffTable.py @@ -1,9 +1,9 @@ from typing import List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class RuneDataSelector(BaseStruct): professionMask: int @@ -27,7 +27,7 @@ class RuneData(BaseStruct): class PackedRuneData(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") points: float mutexGroupKey: Union[str, None] description: str @@ -35,6 +35,6 @@ class PackedRuneData(BaseStruct): class TechBuffTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" runes: List[PackedRuneData] diff --git a/ArknightsUID/utils/models/gamedata/TipTable.py b/ArknightsUID/utils/models/gamedata/TipTable.py index 1fc3f67..ecd57e3 100644 --- a/ArknightsUID/utils/models/gamedata/TipTable.py +++ b/ArknightsUID/utils/models/gamedata/TipTable.py @@ -17,7 +17,7 @@ class WorldViewTip(BaseStruct): class TipTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" tips: List[TipData] worldViewTips: List[WorldViewTip] diff --git a/ArknightsUID/utils/models/gamedata/TokenTable.py b/ArknightsUID/utils/models/gamedata/TokenTable.py index 0decb25..3934afd 100644 --- a/ArknightsUID/utils/models/gamedata/TokenTable.py +++ b/ArknightsUID/utils/models/gamedata/TokenTable.py @@ -1,9 +1,9 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class CharacterDataUnlockCondition(BaseStruct): phase: int @@ -32,7 +32,7 @@ class CharacterDataTraitDataBundle(BaseStruct): class AttributesData(BaseStruct): maxHp: int atk: int - def_: int = field(name='def') + def_: int = field(name="def") magicResistance: float cost: int blockCnt: int @@ -60,9 +60,9 @@ class CharacterDataAttributesKeyFrame(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class CharacterDataPhaseData(BaseStruct): @@ -123,7 +123,7 @@ class ExternalBuff(BaseStruct): class CharacterDataPotentialRank(BaseStruct): - type_: int = field(name='type') + type_: int = field(name="type") description: str buff: Union[ExternalBuff, None] equivalentCost: Union[ItemBundle, None] @@ -170,6 +170,6 @@ class TokenCharacterData(BaseStruct): class TokenTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" tokens: Dict[str, TokenCharacterData] diff --git a/ArknightsUID/utils/models/gamedata/UniequipData.py b/ArknightsUID/utils/models/gamedata/UniequipData.py index 5554c63..7005384 100644 --- a/ArknightsUID/utils/models/gamedata/UniequipData.py +++ b/ArknightsUID/utils/models/gamedata/UniequipData.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class UnlockCondition(BaseStruct): @@ -39,7 +39,7 @@ class UniEquipData(BaseStruct): unlockFavorPercent: int missionList: List[str] itemCost: Union[List[ItemBundle], None] - type_: str = field(name='type') + type_: str = field(name="type") traitDescBundle: List[TraitDescBundle] @@ -59,7 +59,7 @@ class SubProfessionData(BaseStruct): class UniequipData(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" equipDict: Dict[str, UniEquipData] missionList: Dict[str, UniEquipMissionData] diff --git a/ArknightsUID/utils/models/gamedata/UniequipTable.py b/ArknightsUID/utils/models/gamedata/UniequipTable.py index fea6fbd..9aabf84 100644 --- a/ArknightsUID/utils/models/gamedata/UniequipTable.py +++ b/ArknightsUID/utils/models/gamedata/UniequipTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class UniEquipData(BaseStruct): @@ -29,7 +29,7 @@ class UniEquipData(BaseStruct): unlockFavorPoint: int missionList: List[str] itemCost: Union[Dict[str, List[ItemBundle]], None] - type_: str = field(name='type') + type_: str = field(name="type") uniEquipGetTime: int charEquipOrder: int @@ -61,7 +61,7 @@ class UniEquipTimeInfo(BaseStruct): class UniEquipTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" equipDict: Dict[str, UniEquipData] missionList: Dict[str, UniEquipMissionData] diff --git a/ArknightsUID/utils/models/gamedata/ZoneTable.py b/ArknightsUID/utils/models/gamedata/ZoneTable.py index b897f9e..218169f 100644 --- a/ArknightsUID/utils/models/gamedata/ZoneTable.py +++ b/ArknightsUID/utils/models/gamedata/ZoneTable.py @@ -1,14 +1,14 @@ from typing import Dict, List, Union -from msgspec import field - from ..common import BaseStruct +from msgspec import field + class ZoneData(BaseStruct): zoneID: str zoneIndex: int - type_: str = field(name='type') + type_: str = field(name="type") zoneNameFirst: Union[str, None] zoneNameSecond: Union[str, None] zoneNameTitleCurrent: Union[str, None] @@ -21,7 +21,7 @@ class ZoneData(BaseStruct): class WeeklyZoneData(BaseStruct): daysOfWeek: List[int] - type_: str = field(name='type') + type_: str = field(name="type") class ZoneValidInfo(BaseStruct): @@ -47,9 +47,9 @@ class MainlineZoneData(BaseStruct): class ItemBundle(BaseStruct): - id_: str = field(name='id') + id_: str = field(name="id") count: int - type_: str = field(name='type') + type_: str = field(name="type") class RecordRewardInfo(BaseStruct): @@ -101,7 +101,7 @@ class ZoneMetaData(BaseStruct): class ZoneTable(BaseStruct): - __version__ = '23-10-08-17-52-18-288259' + __version__ = "23-10-31-11-47-45-d410ff" zones: Dict[str, ZoneData] weeklyAdditionInfo: Dict[str, WeeklyZoneData] diff --git a/ArknightsUID/utils/models/gamedata/common.py b/ArknightsUID/utils/models/gamedata/common.py new file mode 100644 index 0000000..e71aa6b --- /dev/null +++ b/ArknightsUID/utils/models/gamedata/common.py @@ -0,0 +1,78 @@ +from __future__ import annotations + +from collections.abc import Callable, Iterable, Iterator +from copy import copy, deepcopy +from typing import Any, Dict, Tuple, TypeVar, Union +from typing_extensions import dataclass_transform + +from msgspec import ( + Struct, + UnsetType, + convert, + field, + json as mscjson, +) + +Model = TypeVar("Model", bound="BaseStruct") +T1 = TypeVar("T1") +T2 = TypeVar("T2") + + +def transUnset(v: Union[T1, UnsetType], d: T2 = None) -> Union[T1, T2]: + return v if not isinstance(v, UnsetType) else d + + +@dataclass_transform(field_specifiers=(field,)) +class BaseStruct( + Struct, + forbid_unknown_fields=True, + omit_defaults=True, + gc=False, +): + class Config: + encoder = mscjson.Encoder() + + @classmethod + def convert( + cls: type[Model], + obj: Any, + *, + strict: bool = True, + from_attributes: bool = False, + dec_hook: Union[Callable[[type, Any], Any], None] = None, + builtin_types: Union[Iterable[type], None] = None, + str_keys: bool = False, + ) -> Model: + if obj is None: + return None # type: ignore + if isinstance(obj, BaseStruct): + obj = obj.model_dump() + return convert( + obj=obj, + type=cls, + strict=strict, + from_attributes=from_attributes, + dec_hook=dec_hook, + builtin_types=builtin_types, + str_keys=str_keys, + ) + + def __iter__(self) -> Iterator[Tuple[str, Any]]: + for field_name in self.__struct_fields__: + yield field_name, getattr(self, field_name) + + def keys(self) -> Iterator[str]: + yield from self.__struct_fields__ + + def values(self) -> Iterator[Any]: + for field_name in self.__struct_fields__: + yield getattr(self, field_name) + + def model_dump(self) -> Dict[str, Any]: + return mscjson.decode(mscjson.encode(self)) + + def dump_child(self, target: str) -> Any: + return self.model_dump()[target] + + def model_copy(self: Model, *, deep: bool = False) -> Model: + return deepcopy(self) if deep else copy(self) diff --git a/ArknightsUID/utils/resource/download_from_cos.py b/ArknightsUID/utils/resource/download_from_cos.py index dd97b8a..b46355e 100644 --- a/ArknightsUID/utils/resource/download_from_cos.py +++ b/ArknightsUID/utils/resource/download_from_cos.py @@ -29,15 +29,15 @@ async def find_fastest_url(urls: Dict[str, str]): for tag in urls: tasks.append(asyncio.create_task(check_url(tag, urls[tag]))) - results: list[tuple[str, str, float]] = await asyncio.gather( - *tasks, return_exceptions=True - ) + results: list[ + Union[tuple[str, str, float], BaseException] + ] = await asyncio.gather(*tasks, return_exceptions=True) fastest_tag = '' fastest_url = None fastest_time = float('inf') for result in results: - if isinstance(result, Exception): + if isinstance(result, BaseException): continue tag, url, elapsed_time = result if elapsed_time < fastest_time: diff --git a/ArknightsUID/version.py b/ArknightsUID/version.py index 3398828..ca67c05 100644 --- a/ArknightsUID/version.py +++ b/ArknightsUID/version.py @@ -1,3 +1,3 @@ ArknightsUID_version = "0.1.0" -Arknights_Client_version = "2.1.01" -Arknights_Res_version = "23-10-08-17-52-18-288259" +Arknights_Client_version = "2.1.21" +Arknights_Res_version = "23-10-31-11-47-45-d410ff"