UNPKG

enka-network-api

Version:

Enka-network API wrapper for Genshin Impact.

32 lines (31 loc) 1.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PassiveTalent = 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 StatProperty_1 = require("../../StatProperty"); const ExcelTransformer_1 = require("../../../client/ExcelTransformer"); class PassiveTalent { constructor(data, enka) { this._data = data; this.enka = enka; const json = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, this._data); this.id = json.getAsNumber("proudSkillId"); this.name = new TextAssets_1.TextAssets(json.getAsNumber("nameTextMapHash"), enka); this.description = new TextAssets_1.TextAssets(json.getAsNumber("descTextMapHash"), enka); this.icon = json.has("icon") ? new ImageAssets_1.ImageAssets(json.getAsString("icon"), enka) : null; this.requiredAscension = json.getAsNumberWithDefault(0, "breakLevel"); this.addProps = StatProperty_1.StatProperty.parseAddProps(json.get("addProps"), enka); this.isHidden = json.getAsBooleanWithDefault(false, "isHideLifeProudSkill"); } static getById(id, enka) { // TODO: better way to get the data const data = enka.cachedAssetsManager.getExcelData("ProudSkillExcelConfigData", Math.floor(id / 100), id % 100); if (!data) throw new AssetsNotFoundError_1.AssetsNotFoundError("Talent", id); return new PassiveTalent(data, enka); } } exports.PassiveTalent = PassiveTalent;