mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-16 09:58:13 +08:00
🌱 添加 wiki 角色类型相关
This commit is contained in:
@@ -1,11 +1,9 @@
|
|||||||
/**
|
/**
|
||||||
* @file data index
|
* @file src/data/index.ts
|
||||||
* @description data index
|
* @description 数据文件入口
|
||||||
* @author BTMuli<bt-muli@outlook.com>
|
* @since Beta v0.3.8
|
||||||
* @since Alpha v0.1.5
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Data
|
|
||||||
import achievements from "./app/achievements.json";
|
import achievements from "./app/achievements.json";
|
||||||
import achievementSeries from "./app/achievementSeries.json";
|
import achievementSeries from "./app/achievementSeries.json";
|
||||||
import calendar from "./app/calendar.json";
|
import calendar from "./app/calendar.json";
|
||||||
@@ -26,11 +24,15 @@ const wikiFiles = import.meta.glob("./wiki/**/*.json");
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 动态读取wiki文件
|
* @description 动态读取wiki文件
|
||||||
* @since Alpha v0.1.5
|
* @since Beta v0.3.8
|
||||||
* @param {string} dir 目录
|
* @param {string} dir 目录
|
||||||
* @param {string} name 文件名
|
* @param {string} name 文件名
|
||||||
* @returns {Promise<any>} 文件内容
|
* @returns {Promise<any>} 文件内容
|
||||||
*/
|
*/
|
||||||
|
export async function getWikiData(
|
||||||
|
dir: "Character",
|
||||||
|
name: string,
|
||||||
|
): Promise<{ default: TGApp.App.Character.WikiItem } | undefined>;
|
||||||
export async function getWikiData(dir: string, name: string): Promise<any> {
|
export async function getWikiData(dir: string, name: string): Promise<any> {
|
||||||
return await wikiFiles[`./wiki/${dir}/${name}.json`]();
|
return await wikiFiles[`./wiki/${dir}/${name}.json`]();
|
||||||
}
|
}
|
||||||
|
|||||||
29
src/plugins/Hutao/types/Base.d.ts
vendored
29
src/plugins/Hutao/types/Base.d.ts
vendored
@@ -1,13 +1,12 @@
|
|||||||
/**
|
/**
|
||||||
* @file src plugins Hutao types Base.d.ts
|
* @file src/plugins/Hutao/types/Base.d.ts
|
||||||
* @description Hutao 插件基础类型定义文件
|
* @description Hutao 插件基础类型定义文件
|
||||||
* @author BTMuli <bt-muli@outlook.com>
|
* @since Beta v0.3.8
|
||||||
* @since Alpha v0.2.1
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description Hutao 插件基础类型
|
* @description Hutao 插件基础类型
|
||||||
* @since Alpha v0.2.1
|
* @since Beta v0.3.8
|
||||||
* @namespace Base
|
* @namespace Base
|
||||||
* @return Base
|
* @return Base
|
||||||
*/
|
*/
|
||||||
@@ -21,9 +20,29 @@ declare namespace TGApp.Plugins.Hutao.Base {
|
|||||||
* @property {any} data 数据
|
* @property {any} data 数据
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
export interface Response {
|
interface Response {
|
||||||
retcode?: number;
|
retcode?: number;
|
||||||
message?: string;
|
message?: string;
|
||||||
data?: any;
|
data?: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 武器类型枚举,英文-中文对照
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Base
|
||||||
|
* @enum {string}
|
||||||
|
* @property {string} sword 单手剑
|
||||||
|
* @property {string} claymore 双手剑
|
||||||
|
* @property {string} pole 长柄武器
|
||||||
|
* @property {string} bow 弓
|
||||||
|
* @property {string} catalyst 法器
|
||||||
|
* @return WeaponTypeEnum
|
||||||
|
*/
|
||||||
|
const enum WeaponType {
|
||||||
|
sword = "单手剑",
|
||||||
|
claymore = "双手剑",
|
||||||
|
pole = "长柄武器",
|
||||||
|
bow = "弓",
|
||||||
|
catalyst = "法器",
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
257
src/plugins/Hutao/types/Character.d.ts
vendored
Normal file
257
src/plugins/Hutao/types/Character.d.ts
vendored
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
/**
|
||||||
|
* @file plugins/Hutao/types/Character.d.ts
|
||||||
|
* @description 角色类型定义
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 角色类型 namespace
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @namespace TGApp.Plugins.Hutao.Character
|
||||||
|
* @memberof TGApp.Plugins.Hutao
|
||||||
|
*/
|
||||||
|
declare namespace TGApp.Plugins.Hutao.Character {
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem => Rhi
|
||||||
|
* @property {number} Id 角色编号
|
||||||
|
* @property {number} PromoteId 未知
|
||||||
|
* @property {number} Sort 排序
|
||||||
|
* @property {number} Body 未知
|
||||||
|
* @property {string} Icon 角色头像
|
||||||
|
* @property {string} SideIcon 角色侧面头像
|
||||||
|
* @property {string} Name 角色名称
|
||||||
|
* @property {string} Description 角色简介
|
||||||
|
* @property {string} BeginTime 上线时间 // 2021-03-02T16:00:00+08:00
|
||||||
|
* @property {number} Quality 角色星级
|
||||||
|
* @property {TGApp.Plugins.Hutao.Base.WeaponType} Weapon 武器类型
|
||||||
|
* @property {RhiBaseValue} BaseValue 角色基础属性
|
||||||
|
* @property {RhiGrowCurve[]} GrowCurves 未知
|
||||||
|
* @property {RhiSkillDepot} SkillDepot 角色技能
|
||||||
|
* @property {RhiFetterInfo} FetterInfo 好感信息
|
||||||
|
* @property {RhiCostume[]} Costumes 角色皮肤
|
||||||
|
* @property {number[]} CultivationItems 角色培养材料
|
||||||
|
* @return RawHutaoItem
|
||||||
|
*/
|
||||||
|
interface RawHutaoItem {
|
||||||
|
Id: number;
|
||||||
|
PromoteId: number;
|
||||||
|
Sort: number;
|
||||||
|
Body: number;
|
||||||
|
Icon: string;
|
||||||
|
SideIcon: string;
|
||||||
|
Name: string;
|
||||||
|
Description: string;
|
||||||
|
BeginTime: string;
|
||||||
|
Quality: number;
|
||||||
|
Weapon: TGApp.Plugins.Hutao.Base.WeaponType;
|
||||||
|
BaseValue: RhiBaseValue;
|
||||||
|
GrowCurves: RhiGrowCurve[];
|
||||||
|
SkillDepot: RhiSkillDepot;
|
||||||
|
FetterInfo: RhiFetterInfo;
|
||||||
|
Costumes: RhiCostume[];
|
||||||
|
CultivationItems: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-基础属性
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.BaseValue => Rhi.BaseValue
|
||||||
|
* @property {number} HpBase 生命值
|
||||||
|
* @property {number} AttackBase 攻击力
|
||||||
|
* @property {number} DefenseBase 防御力
|
||||||
|
* @return RhiBaseValue
|
||||||
|
*/
|
||||||
|
interface RhiBaseValue {
|
||||||
|
HpBase: number;
|
||||||
|
AttackBase: number;
|
||||||
|
DefenseBase: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-成长曲线
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.GrowCurves => Rhi.GrowCurves
|
||||||
|
* @property {number} Type 未知
|
||||||
|
* @property {number} Value 未知
|
||||||
|
* @return RhiGrowCurve
|
||||||
|
*/
|
||||||
|
interface RhiGrowCurve {
|
||||||
|
Type: number;
|
||||||
|
Value: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-技能
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.SkillDepot => Rhi.SkillDepot
|
||||||
|
* @property {number} Arkhe 未知
|
||||||
|
* @property {RhisdSkill[]} Skills 角色技能
|
||||||
|
* @property {RhisdSkill} EnergySkill 角色元素爆发
|
||||||
|
* @property {RhisdSkill[]} Inherents 角色天赋
|
||||||
|
* @property {RhisdTalent[]} Talents 角色天赋
|
||||||
|
* @return RhiSkillDepot
|
||||||
|
*/
|
||||||
|
interface RhiSkillDepot {
|
||||||
|
Arkhe: number;
|
||||||
|
Skills: RhisdSkill[];
|
||||||
|
EnergySkill: RhisdSkill;
|
||||||
|
Inherents: RhisdSkill[];
|
||||||
|
Talents: RhisdTalent[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-技能
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.SkillDepot.Skill => RhisdSkill
|
||||||
|
* @property {number} GroupId 技能组编号
|
||||||
|
* @property {string[]} Proud.Description 技能描述
|
||||||
|
* @property {RhiParameter[]} Proud.Parameters 技能参数
|
||||||
|
* @property {number} Id 技能编号
|
||||||
|
* @property {string} Name 技能名称
|
||||||
|
* @property {string} Description 技能描述
|
||||||
|
* @property {string} Icon 技能图标
|
||||||
|
* @return RhisdSkill
|
||||||
|
*/
|
||||||
|
interface RhisdSkill {
|
||||||
|
GroupId: number;
|
||||||
|
Proud: {
|
||||||
|
Description: string[];
|
||||||
|
Parameters: RhiParameter[];
|
||||||
|
};
|
||||||
|
Id: number;
|
||||||
|
Name: string;
|
||||||
|
Description: string;
|
||||||
|
Icon: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-技能-参数
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.SkillDepot.Skill.Proud.Parameters => RhiParameter
|
||||||
|
* @property {number} Level 技能等级
|
||||||
|
* @property {number[]} Parameters 技能参数
|
||||||
|
* @return RhiParameter
|
||||||
|
*/
|
||||||
|
interface RhiParameter {
|
||||||
|
Level: number;
|
||||||
|
Parameters: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-技能-天赋
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.SkillDepot.Talents => RhisdTalent
|
||||||
|
* @property {number} Id 天赋编号
|
||||||
|
* @property {string} Name 天赋名称
|
||||||
|
* @property {string} Description 天赋描述
|
||||||
|
* @property {string} Icon 天赋图标
|
||||||
|
* @return RhisdTalent
|
||||||
|
*/
|
||||||
|
interface RhisdTalent {
|
||||||
|
Id: number;
|
||||||
|
Name: string;
|
||||||
|
Description: string;
|
||||||
|
Icon: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-好感信息
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.FetterInfo => RhiFetterInfo
|
||||||
|
* @property {string} Title 角色称号
|
||||||
|
* @property {string} Detail 角色简介
|
||||||
|
* @property {number} Association 角色地区
|
||||||
|
* @property {string} Native 角色地区
|
||||||
|
* @property {number} BirthMonth 角色生日-月
|
||||||
|
* @property {number} BirthDay 角色生日-日
|
||||||
|
* @property {string} VisionBefore 角色元素类型
|
||||||
|
* @property {string} VisionAfter 未知
|
||||||
|
* @property {string} ConstellationBefore 角色星座
|
||||||
|
* @property {string} ConstellationAfter 未知
|
||||||
|
* @property {string} CvChinese 角色声优-中文
|
||||||
|
* @property {string} CvJapanese 角色声优-日文
|
||||||
|
* @property {string} CvEnglish 角色声优-英文
|
||||||
|
* @property {string} CvKorean 角色声优-韩文
|
||||||
|
* @property {number} CookBonus.OriginItemId 角色特殊料理编号
|
||||||
|
* @property {number} CookBonus.ItemId 角色特殊料理编号
|
||||||
|
* @property {number[]} CookBonus.InputList 角色特殊料理材料
|
||||||
|
* @property {RhiFetter[]} Fetters 角色语音
|
||||||
|
* @property {RhiFetter[]} FetterStories 角色好感故事
|
||||||
|
* @return RhiFetterInfo
|
||||||
|
*/
|
||||||
|
interface RhiFetterInfo {
|
||||||
|
Title: string;
|
||||||
|
Detail: string;
|
||||||
|
Association: number;
|
||||||
|
Native: string;
|
||||||
|
BirthMonth: number;
|
||||||
|
BirthDay: number;
|
||||||
|
VisionBefore: string;
|
||||||
|
VisionAfter: string;
|
||||||
|
ConstellationBefore: string;
|
||||||
|
ConstellationAfter: string;
|
||||||
|
CvChinese: string;
|
||||||
|
CvJapanese: string;
|
||||||
|
CvEnglish: string;
|
||||||
|
CvKorean: string;
|
||||||
|
CookBonus: {
|
||||||
|
OriginItemId: number;
|
||||||
|
ItemId: number;
|
||||||
|
InputList: number[];
|
||||||
|
};
|
||||||
|
Fetters: RhiFetter[];
|
||||||
|
FetterStories: RhiFetter[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-好感信息-语音
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.FetterInfo.Fetters => RhiFetter
|
||||||
|
* @property {string} Title 语音标题
|
||||||
|
* @property {string} Context 语音内容
|
||||||
|
* @return RhiFetter
|
||||||
|
*/
|
||||||
|
interface RhiFetter {
|
||||||
|
Title: string;
|
||||||
|
Context: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description 元数据-胡桃-皮肤
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @description RawHutaoItem.Costumes => RhiCostume
|
||||||
|
* @property {number} Id 皮肤编号
|
||||||
|
* @property {string} Name 皮肤名称
|
||||||
|
* @property {string} Description 皮肤描述
|
||||||
|
* @property {boolean} IsDefault 是否默认皮肤
|
||||||
|
* @property {string} [FrontIcon] 非默认皮肤头像
|
||||||
|
* @property {string} [SideIcon] 非默认皮肤侧面头像
|
||||||
|
* @return RhiCostume
|
||||||
|
*/
|
||||||
|
type RhiCostume = {
|
||||||
|
Id: number;
|
||||||
|
Name: string;
|
||||||
|
Description: string;
|
||||||
|
} & (
|
||||||
|
| {
|
||||||
|
FrontIcon: string;
|
||||||
|
SideIcon: string;
|
||||||
|
IsDefault: false;
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
IsDefault: true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
64
src/types/App/Character.d.ts
vendored
64
src/types/App/Character.d.ts
vendored
@@ -1,8 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* @file types App Character.d.ts
|
* @file types/App/Character.d.ts
|
||||||
* @description 角色相关类型定义文件
|
* @description 角色相关类型定义文件
|
||||||
* @author BTMuli <bt-muli@outlook.com>
|
* @since Beta v0.3.8
|
||||||
* @since Alpha v0.2.2
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare namespace TGApp.App.Character {
|
declare namespace TGApp.App.Character {
|
||||||
@@ -32,4 +31,63 @@ declare namespace TGApp.App.Character {
|
|||||||
weapon: string;
|
weapon: string;
|
||||||
nameCard: string;
|
nameCard: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description Wiki 详细数据
|
||||||
|
* @since Beta v0.3.8
|
||||||
|
* @interface WikiItem
|
||||||
|
* @memberof TGApp.Plugins.Hutao.Character
|
||||||
|
* @property {number} id 角色编号
|
||||||
|
* @property {string} name 角色名称
|
||||||
|
* @property {string} title 角色称号
|
||||||
|
* @property {string} description 角色简介
|
||||||
|
* @property {object} brief 角色简介
|
||||||
|
* @property {string} brief.camp 角色地区
|
||||||
|
* @property {string} brief.constellation 角色星座
|
||||||
|
* @property {string} brief.birth 角色生日
|
||||||
|
* @property {object} brief.cv 角色声优
|
||||||
|
* @property {string} brief.cv.cn 角色声优-中文
|
||||||
|
* @property {string} brief.cv.jp 角色声优-日文
|
||||||
|
* @property {string} brief.cv.en 角色声优-英文
|
||||||
|
* @property {string} brief.cv.kr 角色声优-韩文
|
||||||
|
* @property {number} star 角色星级
|
||||||
|
* @property {string} element 角色元素类型
|
||||||
|
* @property {TGApp.Plugins.Hutao.Base.WeaponType} weapon 角色武器类型
|
||||||
|
* @property {TGApp.App.Calendar.Material[]} materials 角色培养材料
|
||||||
|
* @property {object} skills 角色技能
|
||||||
|
* @property {TGApp.Plugins.Hutao.Character.RhisdSkill[]} skills.normal 正常技能-普攻、战技、元素爆发
|
||||||
|
* @property {TGApp.Plugins.Hutao.Character.RhisdSkill[]} skills.special 特殊技能
|
||||||
|
* @property {TGApp.Plugins.Hutao.Character.RhisdTalent[]} constellation 角色命座
|
||||||
|
* @property {TGApp.Plugins.Hutao.Character.RhiFetter[]} talks 闲聊
|
||||||
|
* @property {TGApp.Plugins.Hutao.Character.RhiFetter[]} stories 故事
|
||||||
|
* @return WikiItem
|
||||||
|
*/
|
||||||
|
interface WikiItem {
|
||||||
|
id: number;
|
||||||
|
name: string;
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
brief: {
|
||||||
|
camp: string;
|
||||||
|
constellation: string;
|
||||||
|
birth: string;
|
||||||
|
cv: {
|
||||||
|
cn: string;
|
||||||
|
jp: string;
|
||||||
|
en: string;
|
||||||
|
kr: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
star: number;
|
||||||
|
element: string;
|
||||||
|
weapon: TGApp.Plugins.Hutao.Base.WeaponType;
|
||||||
|
materials: TGApp.App.Calendar.Material[];
|
||||||
|
skills: {
|
||||||
|
normal: TGApp.Plugins.Hutao.Character.RhisdSkill[];
|
||||||
|
special: TGApp.Plugins.Hutao.Character.RhisdSkill[];
|
||||||
|
};
|
||||||
|
constellation: TGApp.Plugins.Hutao.Character.RhisdTalent[];
|
||||||
|
talks: TGApp.Plugins.Hutao.Character.RhiFetter[];
|
||||||
|
stories: TGApp.Plugins.Hutao.Character.RhiFetter[];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,29 @@
|
|||||||
<template />
|
<template>
|
||||||
|
{{ data }}
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { onMounted, ref } from "vue";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
|
||||||
|
import showSnackbar from "../../components/func/snackbar";
|
||||||
|
import { getWikiData } from "../../data";
|
||||||
|
|
||||||
|
const id = <string>useRoute().params.id;
|
||||||
|
const data = ref<TGApp.App.Character.WikiItem>();
|
||||||
|
|
||||||
|
onMounted(async () => {
|
||||||
|
try {
|
||||||
|
const res = await getWikiData("Character", id);
|
||||||
|
if (res !== undefined) {
|
||||||
|
data.value = res.default;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
showSnackbar({
|
||||||
|
text: "Wiki 数据获取失败",
|
||||||
|
color: "error",
|
||||||
|
});
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user