enka-network-api
Version:
Enka-network API wrapper for Genshin Impact.
36 lines (35 loc) • 2.06 kB
JavaScript
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;
;