init
All checks were successful
Gitea Auto Deploy / Deploy-Container (push) Successful in 1m31s

This commit is contained in:
2025-07-01 09:33:43 +07:00
parent 3a26f09a01
commit 331aba4489
156 changed files with 1206219 additions and 146 deletions

6
src/types/affix.ts Normal file
View File

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

25
src/types/card.ts Normal file
View File

@@ -0,0 +1,25 @@
import { LightconeStore, RelicStore } from "./mics";
export interface CharacterInfoCardType {
key: number;
avatar_id: number;
rank: number;
level: number;
lightcone: {
level: number;
rank: number;
item_id: number;
};
relics: {
level: number;
relic_id: number;
relic_set_id: number;
}[];
}
export interface AvatarProfileCardType {
key: number;
profile_name: string,
lightcone: LightconeStore | null,
relics: Record<string, RelicStore>
}

View File

@@ -0,0 +1,23 @@
export interface CharacterBasicRaw {
release: number;
icon: string;
rank: string;
baseType: string;
damageType: string;
en: string;
desc: string;
kr: string;
cn: string;
jp: string;
}
export interface CharacterBasic {
id: string;
release?: number;
icon: string;
rank: string;
baseType: string;
damageType: string;
desc: string;
lang: Map<string, string>;
}

View File

@@ -0,0 +1,160 @@
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>;
}
export interface EnhancedType {
Descs: string[];
ChangeRankList: any;
ChangeSkillTreeList: any;
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;
ParamList: number[];
}
export interface SkillType {
Id: number;
Name: string;
Desc: 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 interface SkillTreePoint {
Anchor: string;
AvatarPromotionLimit: number | null;
AvatarLevelLimit: number | null;
DefaultUnlock: boolean;
Icon: string;
LevelUpSkillID: number[];
MaterialList: ItemConfigRow[];
MaxLevel: number;
ParamList: any[];
PointID: number;
PointName: string | null;
PointDesc: string | null;
PointTriggerKey: number;
PointType: number;
PrePoint: string[];
StatusAddList: any[];
}
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, any>;
}
export interface SpriteSkill {
Name: string;
Desc: string | null;
Type: string | null;
Tag: string;
SPBase: number | null;
BPNeed: number;
BPAdd: number | null;
ShowStanceList: number[];
SkillComboValueDelta: number | null;
Level: Record<string, LevelParams>;
}
export interface UniqueAbility {
Tag: string;
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;
}

26
src/types/config_maze.ts Normal file
View File

@@ -0,0 +1,26 @@
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 ConfigMaze = {
Avatar: Record<string, AvatarConfigMaze>;
MOC: Record<string, MOCConfigMaze>;
AS: Record<string, ASConfigMaze>;
PF: Record<string, PFConfigMaze>;
};

100
src/types/enka.ts Normal file
View File

@@ -0,0 +1,100 @@
interface PrivacySettingInfo {
displayCollection: boolean
displayRecord: boolean
displayRecordTeam: boolean
displayOnlineStatus: boolean
displayDiary: boolean
}
interface ChallengeInfo {
// Thêm các field cụ thể nếu có
}
interface RecordInfo {
achievementCount: number
bookCount: number
avatarCount: number
equipmentCount: number
musicCount: number
relicCount: number
challengeInfo: ChallengeInfo
maxRogueChallengeScore: number
}
interface SubAffix {
affixId: number
cnt: number
step?: number
}
interface FlatProp {
type: string
value: number
}
interface RelicFlat {
props: FlatProp[]
setName: string
setID: number
}
interface Relic {
mainAffixId: number
subAffixList: SubAffix[]
tid: number
type: number
level: number
_flat: RelicFlat
}
interface SkillTree {
pointId: number
level: number
}
interface EquipmentFlat {
props: FlatProp[]
name: string
}
interface Equipment {
rank: number
tid: number
promotion: number
level: number
_flat: EquipmentFlat
}
export interface AvatarEnkaDetail {
relicList: Relic[]
level: number
promotion: number
rank?: number
skillTreeList: SkillTree[]
equipment: Equipment
avatarId: number
_assist?: boolean
}
interface DetailInfo {
worldLevel: number
privacySettingInfo: PrivacySettingInfo
headIcon: number
signature: string
avatarDetailList: AvatarEnkaDetail[]
platform: string
recordInfo: RecordInfo
uid: number
level: number
nickname: string
isDisplayAvatar: boolean
friendCount: number
personalCardId: number
}
export interface EnkaResponse {
detailInfo: DetailInfo
ttl: number
uid: string
}

20
src/types/filter.ts Normal file
View File

@@ -0,0 +1,20 @@
export interface FilterAvatarType {
name: string;
path: string[];
element: string[];
rarity: string[];
locale: string;
}
export interface FilterLightconeType {
path: string[];
rarity: string[];
locale: string;
name: string;
}
export interface FilterRelicType {
locale: string;
name: string;
}

13
src/types/index.ts Normal file
View File

@@ -0,0 +1,13 @@
export * from "./characterBasic"
export * from "./characterDetail"
export * from "./srtools"
export * from "./filter"
export * from "./mics"
export * from "./config_maze"
export * from "./lightconeBasic"
export * from "./lightconeDetail"
export * from "./relicBasic"
export * from "./relicDetail"
export * from "./affix"
export * from "./enka"
export * from "./card"

View File

@@ -0,0 +1,17 @@
export interface LightConeBasicRaw {
rank: string;
baseType: string;
en: string;
desc: string;
kr: string;
cn: string;
jp: string;
}
export interface LightConeBasic {
id: string;
rank: string;
baseType: string;
desc: string;
lang: Map<string, string>;
}

View File

@@ -0,0 +1,38 @@
export interface LightConeDetail {
Name: string;
Desc: string;
Rarity: string;
BaseType: string;
Refinements: RefinementDetail;
Stats: StatEntryDetail[];
}
interface RefinementDetail {
Name: string;
Desc: string;
Level: Record<string, {
ParamList: number[];
}>;
}
interface StatEntryDetail {
EquipmentID: number;
Promotion?: number;
PromotionCostList: PromotionCost[];
PlayerLevelRequire?: number;
WorldLevelRequire?: number;
MaxLevel: number;
BaseHP: number;
BaseHPAdd: number;
BaseAttack: number;
BaseAttackAdd: number;
BaseDefence: number;
BaseDefenceAdd: number;
}
interface PromotionCost {
$type: string;
ItemID: number;
ItemNum: number;
Rarity: string;
}

71
src/types/mics.ts Normal file
View File

@@ -0,0 +1,71 @@
export type AvatarDataStore = {
rank: number,
skills: { [key: string]: number }
}
export type LightconeStore = {
level: number;
item_id: number;
rank: number;
promotion: number;
}
export type SubAffixStore = {
sub_affix_id: number;
count: number;
step: number;
}
export type RelicStore = {
level: number;
relic_id: number;
relic_set_id: number;
main_affix_id: number;
sub_affixes: SubAffixStore[];
}
export type AvatarProfileStore = {
profile_name: string,
lightcone: LightconeStore | null,
relics: Record<string, RelicStore>
}
export type AvatarStore = {
owner_uid: number;
avatar_id: number;
data: AvatarDataStore;
level: number;
promotion: number;
techniques: number[];
sp_value: number;
sp_max: number;
can_change_sp: boolean;
enhanced: string;
profileSelect: number;
profileList: AvatarProfileStore[]
}
export type MonsterStore = {
monster_id: number;
level: number;
amount: number;
}
export type DynamicKeyStore = {
key: string;
value: number;
}
export type BattleBuffStore = {
level: number;
id: number;
dynamic_key?: DynamicKeyStore;
}
export type BattleConfigStore = {
battle_type: string;
blessings: BattleBuffStore[]
custom_stats: SubAffixStore[];
cycle_count: number;
stage_id: number;
path_resonance_id: number;
monsters: MonsterStore[][];
}

28
src/types/relicBasic.ts Normal file
View File

@@ -0,0 +1,28 @@
export interface RelicBasicRawEffect {
en: string;
ParamList: number[];
kr: string;
cn: string;
jp: string;
}
export interface RelicBasicRaw {
icon: string;
en: string;
kr: string;
cn: string;
jp: string;
set: Map<string, RelicBasicRawEffect>;
}
export interface RelicBasicEffect {
ParamList: number[];
lang: Map<string, string>;
}
export interface RelicBasic {
id: string;
icon: string;
lang: Map<string, string>;
set: Map<string, RelicBasicEffect>;
}

18
src/types/relicDetail.ts Normal file
View File

@@ -0,0 +1,18 @@
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>;
}

79
src/types/srtools.ts Normal file
View File

@@ -0,0 +1,79 @@
export interface SubAffix {
sub_affix_id: number;
count: number;
step: number;
}
export interface RelicJson {
level: number;
relic_id: number;
relic_set_id: number;
main_affix_id: number;
sub_affixes: SubAffix[];
internal_uid: number;
equip_avatar: number;
}
export interface LightconeJson {
level: number;
item_id: number;
equip_avatar: number;
rank: number;
promotion: number;
internal_uid: number;
}
export interface AvatarData {
rank: number,
skills: { [key: string]: number }
}
export interface AvatarJson {
owner_uid: number;
avatar_id: number;
data: AvatarData;
level: number;
promotion: number;
techniques: number[];
sp_value: number;
sp_max: number;
}
export interface MonsterJson {
monster_id: number;
level: number;
amount: number;
}
export interface DynamicKeyJson {
key: string;
value: number;
}
//BattleBuff
export interface BattleBuffJson {
level: number;
id: number;
dynamic_key?: DynamicKeyJson;
}
export interface BattleConfigJson {
battle_type: string;
blessings: BattleBuffJson[]
custom_stats: SubAffix[];
cycle_count: number;
stage_id: number;
path_resonance_id: number;
monsters: MonsterJson[][];
}
export interface FreeSRJson {
lightcones: LightconeJson[];
relics: RelicJson[];
avatars: { [key: string]: AvatarJson };
battle_config: BattleConfigJson;
}
export interface PSResponse {
status: number;
message: string;
}