UPDATE: New monster data
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 1m20s

This commit is contained in:
2026-03-17 00:45:23 +07:00
parent d27b96d023
commit 319ad79233
125 changed files with 2718 additions and 917593 deletions

View File

@@ -1,6 +0,0 @@
export type AffixDetail = {
property: string;
base: number;
step: number;
step_num: number;
}

View File

@@ -1,70 +1,124 @@
import { ChallengeDetail, EventStageDetail } from "./mocDetail"
import { BuffDetail, OptionDetail } from "./pfDetail"
import { ExtraEffect } from "./avatarDetail";
import { InfiniteWave, MazeBuff } from "./pfDetail";
export interface ASDetail {
Id: number
Name: string
Buff?: BuffDetail
BuffList1: OptionDetail[]
BuffList2: OptionDetail[]
BeginTime: string
EndTime: string
Level: ASLevel[]
export interface ASGroupDetail {
ID: number;
ChallengeGroupType: string;
Name: Record<string, string>;
Image: ASGroupImage;
BeginTime: string;
EndTime: string;
BuffList1: ASBuff[];
BuffList2: ASBuff[];
Level: ASLevel[];
}
export interface ASGroupImage {
BackGroundPath: string;
TabPicPath: string;
TabPicSelectPath: string;
ThemePicPath: string;
}
export interface ASBuff {
ID: number;
Param: number[];
Icon: string;
Name: Record<string, string>;
Desc: Record<string, string>;
ExtraList?: ExtraEffect[];
}
export interface ASLevel {
Id: number
Name: string
Challenge: ChallengeDetail[]
DamageType1: string[]
DamageType2: string[]
MazeGroupID1: number
MazeGroupID2: number
BossMonsterID1: number
BossMonsterID2: number
BossMonsterID1SkillList: number[]
BossMonsterID2SkillList: number[]
BossMonsterConfig1: BossMonsterConfig
BossMonsterConfig2: BossMonsterConfig
EventIDList1: EventStageDetail[]
EventIDList2: EventStageDetail[]
Floor: number;
ID: number;
StageNum: number;
Name: Record<string, string>;
Target: ASTarget[];
DamageType1: string[];
DamageType2: string[];
MazeBuff: MazeBuff[];
TurnLimit: number;
EventList1: ASEvent[];
EventList2: ASEvent[];
Monster1: ASMonster;
Monster2: ASMonster;
}
export interface BossMonsterConfig {
Difficulty: number
DifficultyList: number[]
TagList: BossTag[]
DifficultyGuideList: BossDifficultyGuide[]
TextGuideList: string[]
PhaseList: BossPhase[]
export interface ASTarget {
ID: number;
Name: Record<string, string>;
Param: number[];
}
export interface BossTag {
Name: string
Desc: string
Param: number[]
SkillID?: number | null
ParamFix: number[]
Child: BossChildTag[]
export interface ASEvent {
ID: number;
Name: Record<string, string>;
HardLevelGroup: number;
EliteGroup: number;
Level: number;
Release: boolean;
MonsterList: number[][];
Infinite: InfiniteWave[] | null;
}
export interface BossChildTag {
Name: string
Desc: string
Param: number[]
export interface ASMonster {
ID: number;
Tag: ASTag[];
Phase: ASPhase[];
DifficultyGuide: ASDifficultyGuide[];
TextGuide: ASTextGuide[];
}
export interface BossDifficultyGuide {
Desc: string
Param: number[]
SkillID?: number | null
ParamFix: number[]
export interface ASTag {
ID: number;
Name: Record<string, string>;
BriefDescription: Record<string, string>;
Param: number[];
SkillID: number | null;
Effect: ASEffect[];
}
export interface BossPhase {
Name: string
Desc: string
Answer: string
Difficulty: number
SkillList: number[]
export interface ASEffect {
ID: number;
Desc: Record<string, string>;
Name: Record<string, string>;
Icon: string;
Param: number[];
EffectType: number;
}
export interface ASPhase {
ID: number;
Name: Record<string, string>;
Answer: Record<string, string>;
Description: Record<string, string>;
SkillList: ASSkillList[];
}
export interface ASSkillList {
ID: number;
SkillType: string;
Name: Record<string, string>;
TextList: ASTextList[];
}
export interface ASTextList {
ID: number;
Description: Record<string, string>;
Param: number[];
Effect: ASEffect[];
}
export interface ASDifficultyGuide {
ID: number;
Description: Record<string, string>;
Param: number[];
SkillID: number | null;
}
export interface ASTextGuide {
ID: number;
Description: Record<string, string>;
Param: number[];
}

225
src/types/avatarDetail.ts Normal file
View File

@@ -0,0 +1,225 @@
export interface AvatarDetail {
ID: number;
BaseType: string;
DamageType: string;
Name: Record<string, string>;
Image: AvatarImage;
Release: boolean;
MaxPromotion: number;
MaxRank: number;
SPNeed: number | null;
Rarity: string;
BGDesc: Record<string, string>;
Lightcones: number[];
Stats: Record<string, StatLevel>;
Skins: Record<string, AvatarSkin>;
Ranks: Record<string, RankDetail>;
Skills: Record<string, SkillDetail>;
Memosprite: Memosprite | null;
SkillTrees: Record<string, Record<string, SkillTreePoint>>;
Relics: Relics;
Teams: AvatarTeams;
Enhanced: Record<string, EnhancedData> | null;
Unique: Record<string, GlobalBuff> | null;
MazeBuff: number[];
}
export interface AvatarImage {
DefaultAvatarHeadIconPath: string;
AvatarSideIconPath: string;
AvatarMiniIconPath: string;
AvatarGachaResultImgPath: string;
ActionAvatarHeadIconPath: string;
SideAvatarHeadIconPath: string;
WaitingAvatarHeadIconPath: string;
AvatarCutinImgPath: string;
AvatarCutinBgImgPath: string;
AvatarCutinFrontImgPath: string;
AvatarIconPath: string;
}
export interface StatLevel {
Promotion: number;
MaxLevel: number;
WorldLevelRequirement: number;
PlayerLevelRequirement: number;
AttackBase: number;
AttackAdd: number;
DefenceBase: number;
DefenceAdd: number;
HPBase: number;
HPAdd: number;
SpeedBase: number;
CriticalChance: number;
CriticalDamage: number;
BaseAggro: number;
}
export interface AvatarSkin {
ID: number;
Type: string;
PlayerCardID: number;
Name: Record<string, string>;
PlayerCardTitleText: Record<string, string>;
AvatarNameOnDropSkin: Record<string, string>;
AvatarSkinSynopsis: Record<string, string>;
Image: AvatarSkinImage;
}
export interface AvatarSkinImage {
AvatarCutinFrontImgPath: string;
DefaultAvatarHeadIconPath: string;
AdventureDefaultAvatarHeadIconPath: string;
WaitingAvatarHeadIconPath: string;
ActionAvatarHeadIconPath: string;
SideAvatarHeadIconPath: string;
AvatarSideIconPath: string;
AvatarCutinImgPath: string;
AvatarCutinBgImgPath: string;
AvatarMiniIconPath: string;
DressIconPath: string;
}
export interface RankDetail {
Rank: number;
Name: Record<string, string>;
Desc: Record<string, string>;
RankAbility: string[];
SkillAddLevelList: Record<string, number>;
Icon: string;
Image: string;
Param: number[];
Extra: Record<string, ExtraEffect>;
}
export interface ExtraEffect {
ID: number;
Desc: Record<string, string>;
Name: Record<string, string>;
Icon: string;
Param: number[];
EffectType: number;
}
export interface SkillDetail {
ID: number;
Name: Record<string, string>;
Tag: Record<string, string>;
TypeDesc: Record<string, string>;
MaxLevel: number;
Level: Record<string, SkillLevel>;
Icon: string;
Desc: Record<string, string>;
RatedSkillTreeID: number[];
RatedRankID: number[];
Extra: Record<string, ExtraEffect>;
SPBase: number | null;
StanceDamageDisplay: number;
SPMultipleRatio: number | null;
BPNeed: number | null;
BPAdd: number | null;
StanceDamageType: string | null;
AttackType: string | null;
SkillEffect: string;
}
export interface SkillLevel {
Level: number;
Param: number[];
}
export interface Memosprite {
ID: number;
Name: Record<string, string>;
Image: MemospriteImage;
Skills: Record<string, SkillDetail>;
HPBase?: number | null;
HPInherit?: number | null;
HPSkill?: number | null;
SpeedBase?: number | null;
SpeedInherit?: number | null;
SpeedSkill?: number | null;
Aggro?: number | null;
}
export interface MemospriteImage {
HeadIcon: string;
UnCreateHeadIconPath: string;
WaitingServantHeadIconPath: string;
ActionServantHeadIconPath: string;
ServantSideIconPath: string;
ServantMiniIconPath: string;
}
export interface SkillTreePoint {
PointID: number;
PointType: number;
AnchorType: string;
Level: number;
MaxLevel: number;
PrePoint: number[];
StatusAddList: StatusAdd[];
LevelUpSkillID: number[];
Icon: string;
PointName: Record<string, string>;
PointDesc: Record<string, string>;
Extra: Record<string, ExtraEffect>;
Param: number[];
}
export interface StatusAdd {
PropertyType: string;
Value: number;
}
export interface Relics {
Set4IDList: number[];
Set2IDList: number[];
PropertyList3: string[];
PropertyList4: string[];
PropertyList5: string[];
PropertyList6: string[];
PropertyList: RelicProperty[];
SubAffixPropertyList: string[];
ScoreRankList: number[];
LocalCriticalChance: { Value: number };
}
export interface RelicProperty {
RelicType: string;
PropertyType: string;
}
export interface AvatarTeams {
TeamID: number;
Position: number;
MemberList: number[];
BackupList1: number[];
BackupList2: number[];
BackupList3: number[];
BackupGroupList1: number[];
BackupGroupList2: number[];
BackupGroupList3: number[];
}
export interface EnhancedData {
EnhancedID: number;
SPNeed: number | null;
Ranks: Record<string, RankDetail>;
Skills: Record<string, SkillDetail>;
SkillTrees: Record<string, Record<string, SkillTreePoint>> | null;
}
export interface GlobalBuff {
ID: number;
AvatarID: number;
Name: Record<string, string>;
Tag: Record<string, string>;
Desc: Record<string, string>;
Param: number[];
Extra: Record<string, ExtraEffect>;
MazeBuffID: number | null;
}

View File

@@ -1,8 +0,0 @@
export interface CharacterBasic {
id: string;
icon: string;
rank: string;
baseType: string;
damageType: string;
lang: Record<string, string>;
}

View File

@@ -1,180 +0,0 @@
export interface CharacterDetail {
Name: string;
Desc: string;
CharaInfo: CharacterInfo;
Rarity: string;
AvatarVOTag: string;
SPNeed: number | null;
BaseType: string;
DamageType: string;
Ranks: Record<string, RankType>;
Skills: Record<string, SkillType>;
SkillTrees: Record<string, Record<string, SkillTreePoint>>;
Memosprite: Memosprite;
Unique: Record<string, UniqueAbility>;
Stats: Record<string, Stat>;
Relics: Relics;
Enhanced: Record<string, EnhancedType>;
RankIcon: string[];
}
export interface EnhancedType {
Descs: string[];
ChangeRankList: unknown;
ChangeSkillTreeList: unknown;
Ranks: Record<string, RankType>;
Skills: Record<string, SkillType>;
SkillTrees: Record<string, Record<string, SkillTreePoint>>;
}
export interface CharacterInfo {
Camp: string | null;
VA: VoiceActors;
Stories: Record<string, string | null>;
Voicelines: string[];
}
export interface VoiceActors {
Chinese: string | null;
Japanese: string | null;
Korean: string | null;
English: string | null;
}
export interface RankType {
Id: number;
Name: string;
Desc: string;
Icon: string;
ParamList: number[];
}
export interface SkillType {
Id: number;
Name: string;
Desc: string | null;
SimpleDesc: string;
Type: string;
Tag: string;
SPBase: number | null;
BPNeed: number;
BPAdd: number;
ShowStanceList: number[];
SkillComboValueDelta: number | null;
Level: Record<string, LevelParams>;
}
export interface LevelParams {
Level: number;
ParamList: number[];
}
export type StatusAddType = {
$type: string;
PropertyType: string;
Value: number;
Name: string;
};
export interface SkillTreePoint {
Anchor: string;
AvatarPromotionLimit: number | null;
AvatarLevelLimit: number | null;
DefaultUnlock: boolean;
Icon: string;
LevelUpSkillID: number[];
MaterialList: ItemConfigRow[];
MaxLevel: number;
ParamList: number[];
PointID: number;
PointName: string | null;
PointDesc: string | null;
PointTriggerKey: number;
PointType: number;
PrePoint: string[];
StatusAddList: StatusAddType[];
}
export interface ItemConfigRow {
$type: string;
ItemID: number;
ItemNum: number;
Rarity: string;
}
export interface Memosprite {
Name: string;
Icon: string;
HPBase: string;
HPInherit: string;
HPSkill: number | null;
SpeedBase: string;
SpeedInherit: string;
SpeedSkill: number;
Aggro: number;
Skills: Record<string, SpriteSkill>;
Talent: Record<string, unknown>;
}
export interface SpriteSkill {
Name: string;
Desc: string | null;
SimpleDesc: string;
Type: string | null;
Tag: string;
SPBase: number | null;
BPNeed: number;
BPAdd: number | null;
ShowStanceList: number[];
SkillComboValueDelta: number | null;
Extra: Record<string, Extra>;
Level: Record<string, LevelParams>;
}
export interface UniqueAbility {
Tag: string;
Name: string;
Desc: string;
Param: number[];
Extra: Record<string, Extra>;
}
export interface Extra {
name: string;
desc: string;
param: number[];
}
export interface Stat {
AttackBase: number;
AttackAdd: number;
DefenceBase: number;
DefenceAdd: number;
HPBase: number;
HPAdd: number;
SpeedBase: number;
CriticalChance: number;
CriticalDamage: number;
BaseAggro: number;
Cost: ItemConfigRow[];
}
export interface Relics {
AvatarID: number;
Set4IDList: number[];
Set2IDList: number[];
PropertyList3: string[];
PropertyList4: string[];
PropertyList5: string[];
PropertyList6: string[];
PropertyList: RelicRecommendProperty[];
SubAffixPropertyList: string[];
ScoreRankList: number[];
}
export interface RelicRecommendProperty {
$type: string;
RelicType: string;
PropertyType: string;
}

View File

@@ -1,42 +0,0 @@
export type ASConfigMaze = {
buff_1: number[];
buff_2: number[];
maze_buff: number;
}
export type PFConfigMaze = {
buff: number[];
maze_buff: number;
}
export type MOCConfigMaze = {
maze_buff: number;
}
export type AvatarConfigMaze = {
maze_buff: number[];
}
export type StageConfigMaze = {
stage_id: number;
stage_type: string;
level: number;
monster_list: Array<Record<string, number>>;
};
export type SkillConfigMaze = {
max_level: number;
index_slot: number;
}
export type ConfigMaze = {
Avatar: Record<string, AvatarConfigMaze>;
MOC: Record<string, MOCConfigMaze>;
AS: Record<string, ASConfigMaze>;
PF: Record<string, PFConfigMaze>;
Stage: Record<string, StageConfigMaze>;
Skill: Record<string, SkillConfigMaze>;
};

View File

@@ -1,8 +0,0 @@
export interface EventBasic {
id: string;
begin: string;
end: string;
lang: Record<string, string>;
}

View File

@@ -1,17 +1,10 @@
export * from "./characterBasic"
export * from "./characterDetail"
export * from "./avatarDetail"
export * from "./srtools"
export * from "./filter"
export * from "./mics"
export * from "./config_maze"
export * from "./lightconeBasic"
export * from "./lightconeDetail"
export * from "./relicDetail"
export * from "./affix"
export * from "./enka"
export * from "./card"
export * from "./eventBasic"
export * from "./monsterBasic"
export * from "./pfDetail"
export * from "./asDetail"
export * from "./mocDetail"
@@ -20,4 +13,8 @@ export * from "./extraData"
export * from "./showcase"
export * from "./srtools"
export * from "./changelog"
export * from "./modelConfig"
export * from "./modelConfig"
export * from "./metaData"
export * from "./monsterDetail"
export * from "./filter"
export * from "./metaData"

View File

@@ -1,8 +0,0 @@
export interface LightConeBasic {
id: string;
rank: string;
thumbnail: string
image: string,
baseType: string;
lang: Record<string, string>;
}

View File

@@ -1,27 +1,47 @@
export interface LightConeDetail {
Name: string;
Desc: string;
ID: number;
Release: boolean;
Name: Record<string, string>;
Desc: Record<string, string>;
Rarity: string;
BaseType: string;
Refinements: RefinementDetail;
Stats: StatEntryDetail[];
Bonus: Record<string, { type: string, value: number }[]>
MaxPromotionLevel: number;
MaxRank: number;
Skills: LightconeSkill;
Image: LightconeImage;
Stats: Record<string, LightconeStatLevel>;
}
interface RefinementDetail {
Name: string;
Desc: string;
Level: Record<string, {
ParamList: number[];
}>;
export interface LightconeSkill {
ID: number;
Name: Record<string, string>;
Desc: Record<string, string>;
AbilityName: string;
Level: Record<string, LightconeSkillLevel>;
}
interface StatEntryDetail {
EquipmentID: number;
Promotion?: number;
PromotionCostList: PromotionCost[];
PlayerLevelRequire?: number;
WorldLevelRequire?: number;
export interface LightconeSkillLevel {
Level: number;
Param: number[];
Bonus: LightconeSkillBonus[];
}
export interface LightconeSkillBonus {
PropertyType: string;
Value: number;
}
export interface LightconeImage {
ThumbnailPath: string;
ImagePath: string;
IconPath: string;
FigureIconPath: string;
}
export interface LightconeStatLevel {
Promotion: number;
PlayerLevelRequire: number;
WorldLevelRequire: number;
MaxLevel: number;
BaseHP: number;
BaseHPAdd: number;
@@ -29,11 +49,4 @@ interface StatEntryDetail {
BaseAttackAdd: number;
BaseDefence: number;
BaseDefenceAdd: number;
}
interface PromotionCost {
$type: string;
ItemID: number;
ItemNum: number;
Rarity: string;
}
}

59
src/types/metaData.ts Normal file
View File

@@ -0,0 +1,59 @@
export interface Metadata {
BaseType: Record<string, BaseTypeData>;
DamageType: Record<string, DamageTypeData>;
MainAffix: Record<string, Record<string, MainAffixData>>;
SubAffix: Record<string, Record<string, SubAffixData>>;
SkillConfig: Record<string, SkillMaxLevelData>;
Stage: Record<string, StageData>;
HardLevelConfig: Record<string, Record<string, HardLevelData>>;
EliteConfig: Record<string, EliteData>;
}
export interface HardLevelData {
AttackRatio: number
DefenceRatio: number
HPRatio: number
SpeedRatio: number
StanceRatio: number
}
export interface EliteData {
AttackRatio: number
DefenceRatio: number
HPRatio: number
SpeedRatio: number
StanceRatio: number
}
export interface StageData {
ID: number;
Name: Record<string, string>;
}
export interface BaseTypeData {
Text: Record<string, string>;
Icon: string;
}
export interface DamageTypeData {
Name: Record<string, string>;
Icon: string;
}
export interface MainAffixData {
Property: string;
BaseValue: number;
LevelAdd: number;
}
export interface SubAffixData {
Property: string;
BaseValue: number;
StepValue: number;
StepNum: number;
}
export interface SkillMaxLevelData {
MaxLevel: number;
IndexSlot: number;
}

View File

@@ -1,50 +1,49 @@
export interface MocDetail {
Id: number
Name: string
GroupName: string
Desc: string
Param: number[]
Challenge: ChallengeDetail[]
Countdown: number
DamageType1: string[]
DamageType2: string[]
MazeGroupID1: number
MazeGroupID2: number
NpcMonsterIDList1: number[]
NpcMonsterIDList2: number[]
EventIDList1: EventStageDetail[]
EventIDList2: EventStageDetail[]
BeginTime: string
EndTime: string
import { InfiniteWave, MazeBuff } from "./pfDetail";
export interface MOCGroupDetail {
ID: number;
ChallengeGroupType: string;
Name: Record<string, string>;
Image: MoCImage;
BeginTime: string;
EndTime: string;
Level: MoCLevel[];
}
export interface ChallengeDetail {
Name: string
Param?: number | null
export interface MoCImage {
BackGroundPath: string;
TabPicPath: string;
TabPicSelectPath: string;
ThemePicPath: string;
}
export interface EventStageDetail {
StageID: number
StageType: string
StageName: number
HardLevelGroup: number
Level: number
EliteGroup?: number
LevelGraphPath: string
StageAbilityConfig: unknown[]
BattleScoringGroup?: number | null
SubLevelGraphs: unknown[]
StageConfigData: StageConfig[]
MonsterList: Record<string, number>[]
LevelLoseCondition: string[]
LevelWinCondition: string[]
Release: boolean
ForbidExitBattle: boolean
MonsterWarningRatio?: number | null
TrialAvatarList: unknown[]
}
export interface StageConfig {
$type: string
[key: string]: string
export interface MoCLevel {
Floor: number;
ID: number;
StageNum: number;
Name: Record<string, string>;
Target: MoCTarget[];
TurnLimit: number;
DamageType1: string[];
DamageType2: string[];
MazeBuff: MazeBuff[];
EventList1: MoCEvent[];
EventList2: MoCEvent[];
}
export interface MoCTarget {
ID: number;
Name: Record<string, string>;
Param: number[];
}
export interface MoCEvent {
ID: number;
Name: Record<string, string>;
HardLevelGroup: number;
EliteGroup: number;
Level: number;
Release: boolean;
MonsterList: number[][];
Infinite: InfiniteWave[] | null;
}

View File

@@ -1,12 +0,0 @@
export interface MonsterBasic {
id: string;
rank: string;
icon: string;
image: string;
weak: string[];
desc: Record<string, string>;
lang: Record<string, string>;
}

View File

@@ -0,0 +1,45 @@
export interface MonsterDetail {
ID: number;
Name: Record<string, string>;
EliteGroup: number;
HardLevelGroup: number;
StanceWeakList: string[];
Modify: MonsterModify;
Rank: string;
StanceCount: number;
StanceType: string;
Image: MonsterImage;
Base: MonsterBase;
}
export interface MonsterModify {
AttackModifyRatio: number;
DefenceModifyRatio: number;
HPModifyRatio: number;
SpeedModifyRatio: number;
StanceModifyRatio: number;
SpeedModifyValue: number;
StanceModifyValue: number;
}
export interface MonsterImage {
IconPath: string;
RoundIconPath: string;
ImagePath: string;
ManikinImagePath: string;
}
export interface MonsterBase {
AttackBase: number;
DefenceBase: number;
HPBase: number;
SpeedBase: number;
StanceBase: number;
CriticalDamageBase: number;
StatusResistanceBase: number;
SpeedModifyValue: number;
StanceModifyValue: number;
InitialDelayRatio: number;
}

View File

@@ -1,37 +1,49 @@
import { EventStageDetail } from "./mocDetail";
import { InfiniteWave } from "./pfDetail";
import { BattleTarget, InfiniteWave, MazeBuff } from "./pfDetail";
export interface PeakDetail {
Id: number;
Name: string;
PreLevel: PeakLevel[];
BossLevel: PeakLevel;
BossConfig: BossConfig;
export interface PeakGroupDetail {
ID: number;
ChallengeGroupType: string;
Name: Record<string, string>;
Image: PeakGroupImage;
PreLevel: PeakMazeConfig[];
BossLevel: PeakMazeConfig | null;
BossConfig: PeakBossConfig | null;
}
export interface PeakLevel {
Id: number;
Name: string;
export interface PeakGroupImage {
ThemePosterTabPicPath: string;
ThemeIconPicPath: string;
HandBookPanelBannerPath: string;
RankIconPathList: string[];
}
export interface PeakMazeConfig {
ID: number;
Name: Record<string, string>;
BattleTarget: BattleTarget[];
DamageType: string[];
MazeGroupID: number;
NpcMonsterIDList: number[];
EventIDList: EventStageDetail[];
TagList: ChallengeTag[];
InfiniteList: Record<string, InfiniteWave>;
MazeBuff: MazeBuff[];
TurnLimit: number;
EventList: PeakEvent[];
}
export interface BossConfig {
HardName: string;
BuffList: ChallengeTag[];
EventIDList: EventStageDetail[];
TagList: ChallengeTag[];
InfiniteList: Record<string, InfiniteWave>;
}
export interface ChallengeTag {
Id: number;
Name: string;
Desc: string;
Param: number[];
export interface PeakBossConfig {
ID: number;
Name: Record<string, string>;
BuffList: MazeBuff[];
BattleTarget: BattleTarget[];
MazeBuff: MazeBuff[];
TurnLimit: number;
EventList: PeakEvent[];
}
export interface PeakEvent {
ID: number;
Name: Record<string, string>;
HardLevelGroup: number;
EliteGroup: number;
Level: number;
Release: boolean;
MonsterList: number[][];
Infinite: InfiniteWave[] | null;
}

View File

@@ -1,51 +1,72 @@
import { ChallengeDetail, EventStageDetail } from "./mocDetail"
export interface PFDetail {
Id: number
Name: string
Buff: BuffDetail
Option: OptionDetail[]
SubOption: OptionDetail[]
BeginTime: string
EndTime: string
Level: PFLevel[]
export interface PFGroupDetail {
ID: number;
ChallengeGroupType: string;
Name: Record<string, string>;
Image: PFGroupImage;
BeginTime: string;
EndTime: string;
SubOption: MazeBuff[];
Option: MazeBuff[];
Level: LevelData[];
}
export interface BuffDetail {
Name?: string | null
Desc?: string | null
Param: number[]
export interface PFGroupImage {
BackGroundPath: string;
TabPicPath: string;
TabPicSelectPath: string;
ThemePicPath: string;
}
export interface OptionDetail {
Name: string
Desc: string
Param: number[]
export interface MazeBuff {
ID: number;
Param: number[];
Icon: string;
Name: Record<string, string>;
Desc: Record<string, string>;
}
export interface PFLevel {
Id: number
Name: string
Challenge: ChallengeDetail[]
DamageType1: string[]
DamageType2: string[]
MazeGroupID1: number
MazeGroupID2: number
NpcMonsterIDList1: number[]
NpcMonsterIDList2: number[]
EventIDList1: EventStageDetail[]
EventIDList2: EventStageDetail[]
InfiniteList1: Record<string, InfiniteWave>
InfiniteList2: Record<string, InfiniteWave>
export interface LevelData {
Floor: number;
ID: number;
StageNum: number;
Name: Record<string, string>;
Target: StoryTarget[];
DamageType1: string[];
DamageType2: string[];
MazeBuff: MazeBuff[];
EventList1: StageConfig[];
EventList2: StageConfig[];
TurnLimit: number;
BattleTarget: BattleTarget[];
ClearScore: number;
}
export interface StoryTarget {
ID: number;
Name: Record<string, string>;
Param: number[];
}
export interface BattleTarget {
ID: number;
Param: number[];
Name: Record<string, string>;
}
export interface StageConfig {
ID: number;
Name: Record<string, string>;
HardLevelGroup: number;
EliteGroup: number;
Level: number;
Release: boolean;
MonsterList: number[][];
Infinite?: InfiniteWave[] | null;
}
export interface InfiniteWave {
InfiniteWaveID: number
MonsterGroupIDList: number[]
MaxMonsterCount: number
MaxTeammateCount: number
Ability: string
ParamList: number[]
ClearPreviousAbility: boolean
EliteGroup: number
}
ID: number;
MaxMonsterCount: number;
MonsterList: number[];
EliteGroup: number;
}

View File

@@ -1,19 +1,59 @@
export interface PartData {
Name: string;
Desc: string;
Story: string;
}
export interface RequireBonus {
Desc: string;
ParamList: number[];
}
export interface RelicDetail {
Name: string;
Icon: string;
Parts: Record<string, PartData>;
RequireNum: Record<string, RequireBonus>;
Bonus: Record<string, { type: string, value: number }[]>
export interface RelicSetDetail {
ID: number;
Name: Record<string, string>;
Image: RelicSetImage;
Release: boolean;
ReleaseVersion: string;
IsPlanarSuit: boolean;
DisplayItemID: number;
DisplayItemIDRarity4: number;
SkillList: number[];
Skills: Record<string, RelicSkill>;
Parts: Record<string, RelicPart>;
}
export interface RelicSetImage {
SetIconPath: string;
SetIconFigurePath: string;
}
export interface RelicSkill {
RequireNum: number;
Desc: Record<string, string>;
AbilityName: string;
Param: number[];
Bonus: RelicSkillBonus[];
}
export interface RelicSkillBonus {
PropertyType: string;
Value: number;
}
export interface RelicPart {
Type: string;
Image: RelicPartImage;
Name: Record<string, string>;
Desc: Record<string, string>;
Data: Record<string, RelicPartData> | null;
}
export interface RelicPartImage {
IconPath: string;
ItemFigureIconPath: string;
}
export interface RelicPartData {
ID: number;
SetID: number;
Type: string;
Rarity: string;
MainAffixGroup: number;
SubAffixGroup: number;
MaxLevel: number;
ExpType: number;
ExpProvide: number;
CoinCost: number;
Mode: string;
}