genshin-manager
Version:
<div align="center"> <p> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https://img.shields.io/npm/v/genshin-manager.svg?maxAge=3600" alt="npm version" /></a> <a href="https://www.npmjs.com/package/genshin-manager"><img src="https:
56 lines (55 loc) • 2.22 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CharacterSkillAscension = void 0;
const Client_1 = require("../../client/Client");
const OutOfRangeError_1 = require("../../errors/OutOfRangeError");
const StatProperty_1 = require("../../models/StatProperty");
/**
* Class of character skill ascension
*/
class CharacterSkillAscension {
/**
* Create a character skill ascension
* @param skillId Skill ID
* @param level skill level (1-15). Default: 1
*/
constructor(skillId, level = 1) {
var _b;
this.id = skillId;
this.level = level;
if (this.level < 1 || this.level > 15)
throw new OutOfRangeError_1.OutOfRangeError('level', this.level, 1, 15);
const skillJson = Client_1.Client._getJsonFromCachedExcelBinOutput('AvatarSkillExcelConfigData', this.id);
const proudSkillGroupId = skillJson.proudSkillGroupId;
if (proudSkillGroupId === 0) {
this.costItems = [];
this.costMora = 0;
this.addProps = [];
return;
}
const proudSkillJson = Client_1.Client._getJsonFromCachedExcelBinOutput('ProudSkillExcelConfigData', proudSkillGroupId)[this.level];
this.costItems = proudSkillJson.costItems
.map((costItem) => {
return {
id: costItem.id,
count: costItem.count,
};
})
.filter((costItem) => costItem.id !== undefined && costItem.count !== undefined);
this.costMora = (_b = proudSkillJson.coinCost) !== null && _b !== void 0 ? _b : 0;
this.addProps = proudSkillJson.addProps
.filter((addProp) => addProp.propType !== undefined &&
addProp.propType !== 'FIGHT_PROP_NONE' &&
addProp.value !== undefined)
.map((addProp) => {
var _b;
return new StatProperty_1.StatProperty(addProp.propType, ((_b = addProp.value) !== null && _b !== void 0 ? _b : 0));
});
}
}
exports.CharacterSkillAscension = CharacterSkillAscension;
_a = CharacterSkillAscension;
(() => {
Client_1.Client._addExcelBinOutputKeyFromClassPrototype(_a.prototype);
})();