BLADEBURNER: Fix wrong behavior of ns.bladeburner.getSkillUpgradeCost (#1471)

This commit is contained in:
catloversg
2024-07-08 04:49:23 +07:00
committed by GitHub
parent 1613eb38ed
commit 2b6ec5cd33
3 changed files with 7 additions and 3 deletions

View File

@@ -31,5 +31,5 @@ RAM cost: 4 GB
This function returns the number of skill points needed to upgrade the specified skill the specified number of times.
The function returns -1 if an invalid skill name is passed in, and Infinity if the count overflows the maximum level.
The function returns Infinity if the sum of the current level and count exceeds the maximum level.

View File

@@ -214,7 +214,11 @@ export function NetscriptBladeburner(): InternalAPI<INetscriptBladeburner> {
const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName");
const count = helpers.positiveInteger(ctx, "count", _count ?? 1);
const currentLevel = bladeburner.getSkillLevel(skillName);
return Skills[skillName].calculateCost(currentLevel, count);
const skill = Skills[skillName];
if (currentLevel + count > skill.maxLvl) {
return Infinity;
}
return skill.calculateCost(currentLevel, count);
},
upgradeSkill: (ctx) => (_skillName, _count) => {
const bladeburner = getBladeburner(ctx);

View File

@@ -3325,7 +3325,7 @@ export interface Bladeburner {
*
* This function returns the number of skill points needed to upgrade the specified skill the specified number of times.
*
* The function returns -1 if an invalid skill name is passed in, and Infinity if the count overflows the maximum level.
* The function returns Infinity if the sum of the current level and count exceeds the maximum level.
*
* @param skillName - Name of skill. Case-sensitive and must be an exact match.
* @param count - Number of times to upgrade the skill. Defaults to 1 if not specified.