UNPKG

enka-network-api

Version:

Enka-network API wrapper for Genshin Impact.

36 lines (35 loc) 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArtifactData = void 0; const config_file_js_1 = require("config_file.js"); const AssetsNotFoundError_1 = require("../../errors/AssetsNotFoundError"); const ImageAssets_1 = require("../assets/ImageAssets"); const TextAssets_1 = require("../assets/TextAssets"); const ArtifactSet_1 = require("./ArtifactSet"); const ExcelTransformer_1 = require("../../client/ExcelTransformer"); class ArtifactData { constructor(data, enka, setData) { this.enka = enka; this._data = data; const json = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, this._data); this.id = json.getAsNumber("id"); this.name = new TextAssets_1.TextAssets(json.getAsNumber("nameTextMapHash"), enka); this.description = new TextAssets_1.TextAssets(json.getAsNumber("descTextMapHash"), enka); this.equipType = json.getAsString("equipType"); const equipTypeJson = enka.cachedAssetsManager.getExcelData("ManualTextMapConfigData", this.equipType); if (!equipTypeJson) throw new AssetsNotFoundError_1.AssetsNotFoundError("Artifact Equip Type", this.equipType); this._equipTypeData = equipTypeJson; this.equipTypeName = new TextAssets_1.TextAssets(new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, equipTypeJson).getAsNumber("textMapContentTextMapHash"), enka); this.icon = new ImageAssets_1.ImageAssets(json.getAsString("icon"), enka); this.stars = json.getAsNumber("rankLevel"); this.set = setData ? new ArtifactSet_1.ArtifactSet(setData, enka) : ArtifactSet_1.ArtifactSet.getById(json.getAsNumber("setId"), enka); } static getById(id, enka, setData) { const data = enka.cachedAssetsManager.getExcelData("ReliquaryExcelConfigData", id); if (!data) throw new AssetsNotFoundError_1.AssetsNotFoundError("Artifact", id); return new ArtifactData(data, enka, setData); } } exports.ArtifactData = ArtifactData;