mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-12 09:18:14 +08:00
fix(dev): 数据解析功能实现,开始测试
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
<v-list-item @click="initDev()" prepend-icon="mdi-refresh">
|
||||
<v-list-item-title>初始化开发</v-list-item-title>
|
||||
</v-list-item>
|
||||
<v-list-item @click="parseAchievement()" prepend-icon="mdi-export">
|
||||
<v-list-item-title>解析成就数据</v-list-item-title>
|
||||
</v-list-item>
|
||||
</v-list>
|
||||
</v-card>
|
||||
</template>
|
||||
@@ -12,15 +15,160 @@
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "vue";
|
||||
import useDevStore from "../store/modules/dev";
|
||||
import useAppStore from "../store/modules/app";
|
||||
import { fs } from "@tauri-apps/api";
|
||||
import { SnapHutaoData } from "../plugins/Snap.Hutao";
|
||||
import {
|
||||
Achievement as HutaoAchievement,
|
||||
AchievementGoal as HutaoAchievementGoal,
|
||||
} from "../plugins/Snap.Hutao/interface/achievement";
|
||||
import { PaimonMoeData } from "../plugins/Paimon.moe";
|
||||
import {
|
||||
AchievementJson as PaimonAchievementJson,
|
||||
AchievementSeries as PaimonAchievementSeries,
|
||||
} from "../plugins/Paimon.moe/interface/achievement";
|
||||
import {
|
||||
Achievement as TGAchievement,
|
||||
AchievementSeries as TGAchievementSeries,
|
||||
} from "../interface/achievements";
|
||||
|
||||
export default defineComponent({
|
||||
name: "Dev",
|
||||
data() {
|
||||
return {
|
||||
originRaw: {
|
||||
Hutao: "" as string,
|
||||
Paimon: "" as string,
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
initDev() {
|
||||
const devStore = useDevStore();
|
||||
devStore.showDev = false;
|
||||
devStore.magicCount = 0;
|
||||
},
|
||||
async parseAchievement() {
|
||||
const appStore = useAppStore();
|
||||
const appDataDir = appStore.dataPath.app;
|
||||
await console.log("正在读取原始数据...");
|
||||
// 读取原始数据
|
||||
await console.log("正在读取 Snap.Hutao 数据库...");
|
||||
const hutaoAchievementData: HutaoAchievement[] = SnapHutaoData.Achievement.data;
|
||||
await console.log("读取胡桃成就数据成功!");
|
||||
const hutaoAchievementGoalData: HutaoAchievementGoal[] =
|
||||
SnapHutaoData.AchievementGoal.data;
|
||||
await console.log("读取胡桃成就系列数据成功!");
|
||||
await console.log("正在读取 Paimon.moe 数据库...");
|
||||
const paimonAchievementJsonData: PaimonAchievementJson = PaimonMoeData.Achievement.data;
|
||||
await console.log("读取 Paimon.moe 成就数据成功!");
|
||||
// 新建目标数据
|
||||
await console.log("正在生成目标数据...");
|
||||
const achievementSeries: TGAchievementSeries[] = [];
|
||||
const achievement: TGAchievement[] = [];
|
||||
// 先解析 Hutao 的成就数据
|
||||
await console.log("正在解析胡桃成就系列数据...");
|
||||
hutaoAchievementGoalData.map(hutaoAchievementGoal => {
|
||||
const achievementSeriesItem: TGAchievementSeries = {
|
||||
id: hutaoAchievementGoal.Id,
|
||||
order: hutaoAchievementGoal.Order,
|
||||
name: hutaoAchievementGoal.Name,
|
||||
card: hutaoAchievementGoal?.FinishReward?.ID,
|
||||
};
|
||||
achievementSeries.push(achievementSeriesItem);
|
||||
});
|
||||
await console.log("解析胡桃成就系列数据成功!");
|
||||
await console.log("正在解析胡桃成就数据...");
|
||||
hutaoAchievementData.map(hutaoAchievement => {
|
||||
const achievementItem: TGAchievement = {
|
||||
id: hutaoAchievement.Id,
|
||||
series: hutaoAchievement.Goal,
|
||||
order: hutaoAchievement.Order,
|
||||
name: hutaoAchievement.Title,
|
||||
description: hutaoAchievement.Description,
|
||||
reward: hutaoAchievement.FinishReward.ID,
|
||||
version: "",
|
||||
progress: hutaoAchievement.Progress,
|
||||
};
|
||||
achievement.push(achievementItem);
|
||||
});
|
||||
await console.log("解析胡桃成就数据成功!");
|
||||
// 再解析 Paimon.moe 的成就数据
|
||||
await console.log("正在解析 Paimon.moe 成就数据...");
|
||||
for (let paimonAchievementJsonDataKey in paimonAchievementJsonData) {
|
||||
const paimonSeries: PaimonAchievementSeries =
|
||||
paimonAchievementJsonData[paimonAchievementJsonDataKey];
|
||||
// 寻找成就系列中名称相同的成就系列
|
||||
const achievementSeriesItem: TGAchievementSeries | undefined =
|
||||
achievementSeries.find(
|
||||
achievementSeriesItem => achievementSeriesItem.name === paimonSeries.name
|
||||
);
|
||||
// 成就版本-暂存
|
||||
let achievementVersion: string = "";
|
||||
paimonSeries.achievements.map(paimonAchievementItem => {
|
||||
// 判断是不是数组
|
||||
if (Array.isArray(paimonAchievementItem)) {
|
||||
paimonAchievementItem.map(paimonAchievement => {
|
||||
// 查找成就中 id 相同的成就
|
||||
const achievementItem: TGAchievement | undefined = achievement.find(
|
||||
achievementItem => achievementItem.id === paimonAchievement.id
|
||||
);
|
||||
if (achievementItem) {
|
||||
// 更新数据
|
||||
achievementItem.version = paimonAchievement.ver;
|
||||
if (achievementSeriesItem) {
|
||||
if (achievementVersion === "") {
|
||||
achievementVersion = paimonAchievement.ver;
|
||||
} else {
|
||||
// 比较 v1.1 和 v1.2 的大小
|
||||
if (achievementVersion < paimonAchievement.ver) {
|
||||
achievementVersion = paimonAchievement.ver;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// 查找成就中 id 相同的成就
|
||||
const achievementItem: TGAchievement | undefined = achievement.find(
|
||||
achievementItem => achievementItem.id === paimonAchievementItem.id
|
||||
);
|
||||
if (achievementItem) {
|
||||
// 更新数据
|
||||
achievementItem.version = paimonAchievementItem.ver;
|
||||
if (achievementSeriesItem) {
|
||||
if (achievementVersion === "") {
|
||||
achievementVersion = paimonAchievementItem.ver;
|
||||
} else {
|
||||
// 比较 v1.1 和 v1.2 的大小
|
||||
if (achievementVersion < paimonAchievementItem.ver) {
|
||||
achievementVersion = paimonAchievementItem.ver;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
// 更新成就系列版本
|
||||
if (achievementSeriesItem && achievementVersion !== "") {
|
||||
achievementSeriesItem.version = achievementVersion;
|
||||
}
|
||||
}
|
||||
await console.log("解析 Paimon.moe 成就数据成功!");
|
||||
// 输出数据
|
||||
await console.log("正在输出目标数据...");
|
||||
// 输出成就系列数据
|
||||
await console.log("正在输出成就系列数据...");
|
||||
await fs.writeFile(
|
||||
`${appDataDir}\\achievement.json`,
|
||||
JSON.stringify(achievementSeries)
|
||||
);
|
||||
await console.log("输出成就系列数据成功!");
|
||||
// 输出成就数据
|
||||
await console.log("正在输出成就数据...");
|
||||
await fs.writeFile(`${appDataDir}\\achievements.json`, JSON.stringify(achievement));
|
||||
await console.log("输出成就数据成功!");
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
||||
6879
src/plugins/Paimon.moe/data/Achievement.json
Normal file
6879
src/plugins/Paimon.moe/data/Achievement.json
Normal file
File diff suppressed because it is too large
Load Diff
9
src/plugins/Paimon.moe/index.ts
Normal file
9
src/plugins/Paimon.moe/index.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import Achievement from "./data/Achievement.json";
|
||||
import { AchievementJson } from "./interface/achievement";
|
||||
|
||||
export const PaimonMoeData = {
|
||||
Achievement: {
|
||||
name: "Achievement.json",
|
||||
data: Achievement as unknown as AchievementJson,
|
||||
},
|
||||
};
|
||||
49
src/plugins/Paimon.moe/interface/achievement.ts
Normal file
49
src/plugins/Paimon.moe/interface/achievement.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* @file plugins Paimon.moe Interface Achievement
|
||||
* @description plugins Paimon.moe Interface Achievement
|
||||
* @author BTMuli<bt-muli@outlook.com>
|
||||
* @see https://github.com/MadeBaruna/paimon-moe/blob/main/src/data/achievement/zh.json
|
||||
* @version v3.5
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description Paimon.moe Achievement json data interface
|
||||
* @interface AchievementJson
|
||||
* @example [key: string]: { AchievementSeries }
|
||||
* @return {AchievementJson}
|
||||
*/
|
||||
export interface AchievementJson {
|
||||
[key: string]: AchievementSeries;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Paimon.moe Achievement series
|
||||
* @interface AchievementSeries
|
||||
* @property {string} name - Achievement series name
|
||||
* @property {(Achievement|Achievement[])[]} achievements - Achievement list
|
||||
* @property {number} order - Achievement series order
|
||||
* @return {AchievementSeries}
|
||||
*/
|
||||
export interface AchievementSeries {
|
||||
name: string;
|
||||
achievements: (Achievement | Achievement[])[];
|
||||
order: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Paimon.moe Achievement
|
||||
* @interface Achievement
|
||||
* @property {number} id - Achievement id
|
||||
* @property {string} name - Achievement name
|
||||
* @property {string} desc - Achievement description
|
||||
* @property {number} reward - Achievement reward
|
||||
* @property {string} ver - Achievement version
|
||||
* @return {Achievement}
|
||||
*/
|
||||
interface Achievement {
|
||||
id: number;
|
||||
name: string;
|
||||
desc: string;
|
||||
reward: number;
|
||||
ver: string;
|
||||
}
|
||||
10859
src/plugins/Snap.Hutao/data/Achievement.json
Normal file
10859
src/plugins/Snap.Hutao/data/Achievement.json
Normal file
File diff suppressed because it is too large
Load Diff
384
src/plugins/Snap.Hutao/data/AchievementGoal.json
Normal file
384
src/plugins/Snap.Hutao/data/AchievementGoal.json
Normal file
@@ -0,0 +1,384 @@
|
||||
[
|
||||
{
|
||||
"Id": 0,
|
||||
"Order": 1,
|
||||
"Name": "天地万象",
|
||||
"Icon": "UI_AchievementIcon_O001"
|
||||
},
|
||||
{
|
||||
"Id": 17,
|
||||
"Order": 2,
|
||||
"Name": "心跳的记忆",
|
||||
"Icon": "UI_AchievementIcon_E001"
|
||||
},
|
||||
{
|
||||
"Id": 1,
|
||||
"Order": 3,
|
||||
"Name": "尘世巡游·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210021,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A001"
|
||||
},
|
||||
{
|
||||
"Id": 22,
|
||||
"Order": 4,
|
||||
"Name": "尘世巡游·第二辑",
|
||||
"FinishReward": {
|
||||
"Id": 210087,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A001_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 32,
|
||||
"Order": 5,
|
||||
"Name": "尘世巡游·第三辑",
|
||||
"FinishReward": {
|
||||
"Id": 210128,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A001_Part3"
|
||||
},
|
||||
{
|
||||
"Id": 2,
|
||||
"Order": 6,
|
||||
"Name": "冒险手艺",
|
||||
"FinishReward": {
|
||||
"Id": 210022,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A002"
|
||||
},
|
||||
{
|
||||
"Id": 3,
|
||||
"Order": 7,
|
||||
"Name": "英雄之旅",
|
||||
"FinishReward": {
|
||||
"Id": 210023,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A003"
|
||||
},
|
||||
{
|
||||
"Id": 4,
|
||||
"Order": 8,
|
||||
"Name": "蒙德·风与牧歌的城邦",
|
||||
"FinishReward": {
|
||||
"Id": 210024,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A004"
|
||||
},
|
||||
{
|
||||
"Id": 5,
|
||||
"Order": 9,
|
||||
"Name": "璃月·岩与契约的海港",
|
||||
"FinishReward": {
|
||||
"Id": 210025,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A005"
|
||||
},
|
||||
{
|
||||
"Id": 6,
|
||||
"Order": 10,
|
||||
"Name": "元素专家·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210026,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B001"
|
||||
},
|
||||
{
|
||||
"Id": 36,
|
||||
"Order": 11,
|
||||
"Name": "元素专家·第二辑",
|
||||
"FinishReward": {
|
||||
"Id": 210137,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B001_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 7,
|
||||
"Order": 12,
|
||||
"Name": "神射手",
|
||||
"FinishReward": {
|
||||
"Id": 210027,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B002"
|
||||
},
|
||||
{
|
||||
"Id": 8,
|
||||
"Order": 13,
|
||||
"Name": "挑战者·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210028,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004"
|
||||
},
|
||||
{
|
||||
"Id": 14,
|
||||
"Order": 14,
|
||||
"Name": "挑战者·第二辑",
|
||||
"FinishReward": {
|
||||
"Id": 210041,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 15,
|
||||
"Order": 15,
|
||||
"Name": "挑战者·第三辑",
|
||||
"FinishReward": {
|
||||
"Id": 210051,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004_Part3"
|
||||
},
|
||||
{
|
||||
"Id": 20,
|
||||
"Order": 16,
|
||||
"Name": "挑战者·第四辑",
|
||||
"FinishReward": {
|
||||
"Id": 210088,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004_Part4"
|
||||
},
|
||||
{
|
||||
"Id": 29,
|
||||
"Order": 17,
|
||||
"Name": "挑战者·第五辑",
|
||||
"FinishReward": {
|
||||
"Id": 210116,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004_Part5"
|
||||
},
|
||||
{
|
||||
"Id": 34,
|
||||
"Order": 18,
|
||||
"Name": "挑战者·第六辑",
|
||||
"FinishReward": {
|
||||
"Id": 210139,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B004_Part6"
|
||||
},
|
||||
{
|
||||
"Id": 9,
|
||||
"Order": 20,
|
||||
"Name": "秘境与深境螺旋·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210029,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_B005"
|
||||
},
|
||||
{
|
||||
"Id": 10,
|
||||
"Order": 21,
|
||||
"Name": "Olah!第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210030,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_C001"
|
||||
},
|
||||
{
|
||||
"Id": 11,
|
||||
"Order": 22,
|
||||
"Name": "至冬国不相信眼泪·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210031,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_C002"
|
||||
},
|
||||
{
|
||||
"Id": 12,
|
||||
"Order": 23,
|
||||
"Name": "岩港往事·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210032,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_C003"
|
||||
},
|
||||
{
|
||||
"Id": 13,
|
||||
"Order": 24,
|
||||
"Name": "异世相逢·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210033,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_D001"
|
||||
},
|
||||
{
|
||||
"Id": 21,
|
||||
"Order": 25,
|
||||
"Name": "异世相逢·第二辑",
|
||||
"FinishReward": {
|
||||
"Id": 210086,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_D001_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 33,
|
||||
"Order": 26,
|
||||
"Name": "异世相逢·第三辑",
|
||||
"FinishReward": {
|
||||
"Id": 210129,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_D001_Part3"
|
||||
},
|
||||
{
|
||||
"Id": 16,
|
||||
"Order": 27,
|
||||
"Name": "雪山上的来客",
|
||||
"FinishReward": {
|
||||
"Id": 210052,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A006"
|
||||
},
|
||||
{
|
||||
"Id": 18,
|
||||
"Order": 28,
|
||||
"Name": "世外洞天·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210072,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A007"
|
||||
},
|
||||
{
|
||||
"Id": 19,
|
||||
"Order": 29,
|
||||
"Name": "世外洞天·第二辑",
|
||||
"FinishReward": {
|
||||
"Id": 210075,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A007_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 23,
|
||||
"Order": 30,
|
||||
"Name": "世外洞天·第三辑",
|
||||
"FinishReward": {
|
||||
"Id": 210089,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A007_Part3"
|
||||
},
|
||||
{
|
||||
"Id": 24,
|
||||
"Order": 31,
|
||||
"Name": "稻妻·雷与永恒的群岛·其之一",
|
||||
"FinishReward": {
|
||||
"Id": 210090,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A008"
|
||||
},
|
||||
{
|
||||
"Id": 26,
|
||||
"Order": 32,
|
||||
"Name": "稻妻·雷与永恒的群岛·其之二",
|
||||
"FinishReward": {
|
||||
"Id": 210097,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A008_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 27,
|
||||
"Order": 33,
|
||||
"Name": "雾海纪行",
|
||||
"FinishReward": {
|
||||
"Id": 210103,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A008_Part3"
|
||||
},
|
||||
{
|
||||
"Id": 25,
|
||||
"Order": 34,
|
||||
"Name": "提瓦特钓鱼指南·第一辑",
|
||||
"FinishReward": {
|
||||
"Id": 210098,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A009"
|
||||
},
|
||||
{
|
||||
"Id": 28,
|
||||
"Order": 35,
|
||||
"Name": "白昼之光",
|
||||
"FinishReward": {
|
||||
"Id": 210109,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A010"
|
||||
},
|
||||
{
|
||||
"Id": 30,
|
||||
"Order": 36,
|
||||
"Name": "岩窟流明",
|
||||
"FinishReward": {
|
||||
"Id": 210117,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A011"
|
||||
},
|
||||
{
|
||||
"Id": 31,
|
||||
"Order": 37,
|
||||
"Name": "须弥·玄识深藏的雨林",
|
||||
"FinishReward": {
|
||||
"Id": 210130,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A012"
|
||||
},
|
||||
{
|
||||
"Id": 35,
|
||||
"Order": 38,
|
||||
"Name": "须弥·饰金砂原·其之一",
|
||||
"FinishReward": {
|
||||
"Id": 210138,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A013"
|
||||
},
|
||||
{
|
||||
"Id": 38,
|
||||
"Order": 39,
|
||||
"Name": "须弥·饰金砂原·其之二",
|
||||
"FinishReward": {
|
||||
"Id": 210151,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A013_Part2"
|
||||
},
|
||||
{
|
||||
"Id": 37,
|
||||
"Order": 40,
|
||||
"Name": "七圣召唤",
|
||||
"FinishReward": {
|
||||
"Id": 210145,
|
||||
"Count": 1
|
||||
},
|
||||
"Icon": "UI_AchievementIcon_A014"
|
||||
}
|
||||
]
|
||||
17
src/plugins/Snap.Hutao/index.ts
Normal file
17
src/plugins/Snap.Hutao/index.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import {
|
||||
Achievement as TypeAchievement,
|
||||
AchievementGoal as TypeAchievementGoal,
|
||||
} from "./interface/achievement";
|
||||
import Achievement from "./data/Achievement.json";
|
||||
import AchievementGoal from "./data/AchievementGoal.json";
|
||||
|
||||
export const SnapHutaoData = {
|
||||
Achievement: {
|
||||
name: "Achievement.json",
|
||||
data: Achievement as unknown as TypeAchievement[],
|
||||
},
|
||||
AchievementGoal: {
|
||||
name: "AchievementGoal.json",
|
||||
data: AchievementGoal as unknown as TypeAchievementGoal[],
|
||||
},
|
||||
};
|
||||
61
src/plugins/Snap.Hutao/interface/achievement.ts
Normal file
61
src/plugins/Snap.Hutao/interface/achievement.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* @file plugins Snap.Hutao Interface Achievement
|
||||
* @description plugins Snap.Hutao Interface Achievement
|
||||
* @author BTMuli<bt-muli@outlook.com>
|
||||
* @see https://github.com/DGP-Studio/Snap.Metadata/blob/main/Output/CHS/Achievement.json
|
||||
* @version v3.5
|
||||
*/
|
||||
|
||||
/**
|
||||
* @description Snap.Hutao Achievement data interface
|
||||
* @interface Achievement
|
||||
* @property {number} Id - 成就ID
|
||||
* @property {number} Goal - 成就系列对应顺序
|
||||
* @property {number} Order - 成就对应顺序
|
||||
* @property {string} Title - 成就标题
|
||||
* @property {string} Description - 成就描述
|
||||
* @property FinishReward - 成就完成奖励
|
||||
* @property {number} FinishReward.ID - 物品ID,201为原石
|
||||
* @property {number} FinishReward.Count - 物品数量
|
||||
* @property {number} Progress - 成就进度
|
||||
* @property {string|undefined} Icon - 成就图标
|
||||
* @return Achievement
|
||||
*/
|
||||
export interface Achievement {
|
||||
Id: number;
|
||||
Goal: number;
|
||||
Order: number;
|
||||
Title: string;
|
||||
Description: string;
|
||||
FinishReward: {
|
||||
ID: number;
|
||||
Count: number;
|
||||
};
|
||||
Progress: number;
|
||||
Icon?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description Snap.Hutao AchievementGoal data interface
|
||||
* @see https://github.com/DGP-Studio/Snap.Metadata/blob/main/Output/CHS/AchievementGoal.json
|
||||
* @interface AchievementGoal
|
||||
* @property {number} Id - 成就系列ID
|
||||
* @property {number} Order - 成就系列对应顺序
|
||||
* @property {string} Name - 成就系列名称
|
||||
* @property FinishReward - 成就系列完成奖励
|
||||
* @description 某些成就系列没有完成奖励,这边的FinishReward可能为undefined
|
||||
* @property {number} FinishReward.ID - 物品ID,这边指的应该是成就名片ID
|
||||
* @property {number} FinishReward.Count - 物品数量
|
||||
* @property {string} Icon - 成就系列图标
|
||||
* @return AchievementGoal
|
||||
*/
|
||||
export interface AchievementGoal {
|
||||
Id: number;
|
||||
Order: number;
|
||||
Name: string;
|
||||
FinishReward?: {
|
||||
ID: number;
|
||||
Count: number;
|
||||
};
|
||||
Icon: string;
|
||||
}
|
||||
Reference in New Issue
Block a user