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