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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 3 deletions

@ -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. 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.

@ -214,7 +214,11 @@ export function NetscriptBladeburner(): InternalAPI<INetscriptBladeburner> {
const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName"); const skillName = getEnumHelper("BladeSkillName").nsGetMember(ctx, _skillName, "skillName");
const count = helpers.positiveInteger(ctx, "count", _count ?? 1); const count = helpers.positiveInteger(ctx, "count", _count ?? 1);
const currentLevel = bladeburner.getSkillLevel(skillName); 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) => { upgradeSkill: (ctx) => (_skillName, _count) => {
const bladeburner = getBladeburner(ctx); const bladeburner = getBladeburner(ctx);

@ -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. * 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 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. * @param count - Number of times to upgrade the skill. Defaults to 1 if not specified.