UNPKG

enka-network-api

Version:

Enka-network API wrapper for Genshin Impact.

32 lines (31 loc) 1.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WeaponRefinement = void 0; const config_file_js_1 = require("config_file.js"); const TextAssets_1 = require("../assets/TextAssets"); const StatProperty_1 = require("../StatProperty"); const AssetsNotFoundError_1 = require("../../errors/AssetsNotFoundError"); const ExcelTransformer_1 = require("../../client/ExcelTransformer"); class WeaponRefinement { 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("id"); this.level = json.getAsNumberWithDefault(0, "level") + 1; this.name = new TextAssets_1.TextAssets(json.getAsNumber("nameTextMapHash"), enka); this.description = new TextAssets_1.TextAssets(json.getAsNumber("descTextMapHash"), enka); this.addProps = StatProperty_1.StatProperty.parseAddProps(json.get("addProps"), enka); this.paramList = json.get("paramList").mapArray((_, p) => p.getAsNumber()); } /** * @param level refinement rank (1-5) */ static getById(id, level, enka) { const data = enka.cachedAssetsManager.getExcelData("EquipAffixExcelConfigData", id, level); if (!data) throw new AssetsNotFoundError_1.AssetsNotFoundError("WeaponRefinement", id); return new WeaponRefinement(data, enka); } } exports.WeaponRefinement = WeaponRefinement;