💄 深境螺旋UI迭代

This commit is contained in:
BTMuli
2025-12-11 16:13:14 +08:00
parent 5cdedda127
commit abe34b8ee5
13 changed files with 410 additions and 248 deletions

View File

@@ -1,19 +1,18 @@
/**
* @file plugins/Sqlite/utils/transCharacter.ts
* @description Sqlite 数据转换
* @since Beta v0.6.0
* 深境螺旋数据转换
* @since Beta v0.9.0
*/
import { timestampToDate } from "@utils/toolFunc.js";
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* 转换角色数据
* @since Alpha v0.2.0
* @param {TGApp.Game.Abyss.CharacterData[]} data 深渊数据
* @returns {string} 转换后的深渊数据
* @param {Array<TGApp.Game.Abyss.CharacterData>} data 接口获取角色数据
* @returns {string} 转换后的角色数据
*/
export function transCharacterData(data: TGApp.Game.Abyss.CharacterData[]): string {
const res: TGApp.Sqlite.Abyss.Character[] = data.map((item) => ({
export function transCharacterData(data: Array<TGApp.Game.Abyss.CharacterData>): string {
const res: Array<TGApp.Sqlite.Abyss.CharacterData> = data.map((item) => ({
id: item.avatar_id,
value: item.value,
star: item.rarity,
@@ -22,27 +21,28 @@ export function transCharacterData(data: TGApp.Game.Abyss.CharacterData[]): stri
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Beta v0.3.9
* @param {TGApp.Game.Abyss.Floor} data 深渊数据
* @returns {string} 转换后的深渊数据
* 转换楼层数据
* @since Beta v0.9.0
* @param {Array<TGApp.Game.Abyss.Floor>} data 接口获取楼层数据
* @returns {string} 转换后的楼层数据
*/
export function transFloorData(data: TGApp.Game.Abyss.Floor[]): string {
export function transFloorData(data: Array<TGApp.Game.Abyss.Floor>): string {
const floor: TGApp.Sqlite.Abyss.Floor[] = data.map((item) => ({
id: item.index,
winStar: item.star,
maxStar: item.max_star,
isUnlock: item.is_unlock ? 1 : 0,
levels: item.levels.map((level) => transLevelData(level)),
levels: item.levels.map(transLevelData),
buff: item.ley_line_disorder,
}));
return JSON.stringify(floor);
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Beta v0.3.9
* @param {TGApp.Game.Abyss.Level} data 深渊数据
* @returns {TGApp.Sqlite.Abyss.Level} 转换后的深渊数据
* 转换关卡数据
* @since Beta v0.9.0
* @param {TGApp.Game.Abyss.Level} data 接口获取关卡数据
* @returns {TGApp.Sqlite.Abyss.Level} 转换后的关卡数据
*/
function transLevelData(data: TGApp.Game.Abyss.Level): TGApp.Sqlite.Abyss.Level {
const res: TGApp.Sqlite.Abyss.Level = {
@@ -51,19 +51,23 @@ function transLevelData(data: TGApp.Game.Abyss.Level): TGApp.Sqlite.Abyss.Level
maxStar: data.max_star,
};
for (const battle of data.battles) {
if (battle.index === 1) res.upBattle = transBattleData(battle);
else res.downBattle = transBattleData(battle);
if (battle.index === 1) res.upBattle = transBattleData(battle, data.top_half_floor_monster);
else res.downBattle = transBattleData(battle, data.bottom_half_floor_monster);
}
return res;
}
/**
* @description 将通过 api 获取到的深渊数据转换为数据库中的数据
* @since Beta v0.6.0
* @param {TGApp.Game.Abyss.Battle} data 深渊数据
* 转换战斗数据
* @since Beta v0.9.0
* @param {TGApp.Game.Abyss.Battle} data 接口获取战斗数据
* @param {Array<TGApp.Game.Abyss.MonsterInfo>} monsters 对应战斗怪物数据
* @returns {TGApp.Sqlite.Abyss.Battle} 转换后的深渊数据
*/
function transBattleData(data: TGApp.Game.Abyss.Battle): TGApp.Sqlite.Abyss.Battle {
function transBattleData(
data: TGApp.Game.Abyss.Battle,
monsters: Array<TGApp.Sqlite.Abyss.MonsterInfo>,
): TGApp.Sqlite.Abyss.Battle {
return {
time: timestampToDate(Number(data.timestamp) * 1000),
characters: data.avatars.map((item) => ({
@@ -71,5 +75,6 @@ function transBattleData(data: TGApp.Game.Abyss.Battle): TGApp.Sqlite.Abyss.Batt
level: item.level,
star: item.rarity,
})),
monsters: monsters,
};
}