enka-network-api
Version:
Enka-network API wrapper for Genshin Impact.
52 lines (51 loc) • 2.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.UpgradableSkill = void 0;
const config_file_js_1 = require("config_file.js");
const SkillAttributeAssets_1 = require("../../assets/SkillAttributeAssets");
const TextAssets_1 = require("../../assets/TextAssets");
const UpgradeCost_1 = require("../../material/UpgradeCost");
const Skill_1 = require("./Skill");
const ts_utils_1 = require("../../../utils/ts_utils");
const ExcelTransformer_1 = require("../../../client/ExcelTransformer");
class UpgradableSkill extends Skill_1.Skill {
getSkillAttributes(level) {
const proudSkillGroupId = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, this._data).getAsNumber("proudSkillGroupId");
if (!proudSkillGroupId)
return [];
const leveledSkillData = this.enka.cachedAssetsManager.getExcelData("ProudSkillExcelConfigData", proudSkillGroupId, level);
if (!leveledSkillData)
return [];
const json = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, leveledSkillData);
const paramDescList = json.has("paramDescList") ? json.get("paramDescList").mapArray((_, p) => p.getAsNumber()) : undefined;
if (!paramDescList)
return [];
return paramDescList.map(id => {
// TODO: better filter
try {
new TextAssets_1.TextAssets(id, this.enka).get("en");
}
catch (_a) {
return null;
}
return new SkillAttributeAssets_1.SkillAttributeAssets(id, json.has("paramList") ? json.get("paramList").mapArray((_, p) => p.getAsNumber()) : [], this.enka);
}).filter(ts_utils_1.nonNullable);
}
/**
* @param level the base level you want to upgrade to. (Do not add extra levels.)
*/
getUpgradeCost(level) {
const proudSkillGroupId = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, this._data).getAsNumber("proudSkillGroupId");
if (!proudSkillGroupId)
return null;
const leveledSkillData = this.enka.cachedAssetsManager.getExcelData("ProudSkillExcelConfigData", proudSkillGroupId, level);
if (!leveledSkillData)
return null;
const json = new config_file_js_1.JsonReader(ExcelTransformer_1.excelJsonOptions, leveledSkillData);
return new UpgradeCost_1.UpgradeCost(json.getAsNumberWithDefault(0, "coinCost"), json.has("costItems") ? json.get("costItems").mapArray((_, p) => p.getAsJsonObject()) : [], this.enka);
}
static getById(id, enka) {
return new UpgradableSkill(this._getJsonObjectById(id, enka), enka);
}
}
exports.UpgradableSkill = UpgradableSkill;
;