Changelog:
v2.7.0: 8 December 2024
MAJOR ADDITIONS
- BN options selection interface (@catloversg)
- Support JSX, TS, TSX script files (@catloversg)
UI
- Tweak Hacknet summary (@catloversg)
- Only show relevant changes in "Purchased Augmentations" table (@catloversg)
- Fix: Correctly show remaining grafting/programming time left when cycles are skipped. (@tom.prince)
- Fix: Misleading favor numbers (@catloversg)
- Always show description of faction price multiplier (@catloversg)
- Add apostrophe to stanek's gift strings (@Faenre)
- Notify players about documentation tab after getting SF1.1 (@catloversg)
- Remove extra "label=" text from SmartSupply interface (@gmcew)
- Show more information about documentation in last step of tutorial (@catloversg)
- Change description of Documentation button in Script Editor (@catloversg)
- Fix: Wrong size of table cell in Import Save Comparison UI (@catloversg)
- Remove hacknet servers from hash upgrade server dropdowns (@yichizhng)
- Fix: Import paths cannot be resolved in script editor (@lucebac)
- Fix: Missing tooltip when doing faction work (@catloversg)
- Remove unnecessary newlines when augmentation does not have stats (@catloversg)
- Disable font ligatures by default (@catloversg)
- Fix: Crash in theme editor modal (@catloversg)
- Add the ability to change the font size (@G4mingJon4s)
- Change order of information in stats progress bar (@catloversg)
- Auto focus hashnet upgrade modal (@catloversg)
- Show error popup when there are errors instead of only writing to console (@catloversg)
DOCUMENTATION
- Remove obsolete description of killall (@catloversg)
- Update description of source files (@catloversg)
- Add link to NS API documentation (@catloversg)
- Fix a typo in the hamming code problem statement (@Jazzybones)
- Fix broken link in README.md (@ngcthao)
- Remove " "s from .getDescription() result (@gmcew)
- Typo in ns2 migration doc (@mctylr-gh)
- Remove unmaintained VS Code extension from docs (@catloversg)
- Fix link to non-existing page (@BaxoPlenty)
- Add help text for changelog command (@catloversg)
- Clarify deprecation warning of ns.getTimeSinceLastAug() (@catloversg)
- Fix typos in NetscriptDefinitions.d.ts (@catloversg)
- Add GoAnalysis and GoCheat doc namespaces (@catloversg)
- Hamming Code parity sentence clarification, "Find All Valid Math Expressions" missing line breaks added, example formatting made consistent (@gmcew)
- Outdated formula of favor in tooltip (@catloversg)
- Add scoring rules explanations to how to play page and score modal (@ficocelliguy)
- Fix wrong description of ns.singularity.applyToCompany (@catloversg)
- Fix errors and warnings shown by api-extractor (@catloversg)
- Remove wrong information in ns.weaken (@catloversg)
- Make small tweaks in TSDoc of Corporation APIs (@catloversg)
- Add types for parameters of gym-university-bladeburner API (@catloversg)
- Correct function signature for hashUpgradeCost (@Faenre)
- Fix wrong description of ns.corporation.createCorporation (@catloversg)
- Clarify experience gain of sleeves (@bupjae)
- Make small changes (capitalization) in index page of documentation (@catloversg)
- Improve ns.enableLog docs (@Fireball5939)
- Update description of multipliers in BitNodeMultipliers in NetscriptDefinitions.d.ts (@nobody0)
- Fix mangled NS API TSDoc (@catloversg)
- Fix incorrect description of "HammingCodes: Integer to Encoded Binary" contract (@zorbathut)
- Clarify condition of ns.corporation.bribe (@catloversg)
- Clarify "completion" property of GraftingTask (@catloversg)
- Clarify cyclesWorked of Task (@catloversg)
- Clarify ns.hackAnalyzeThreads (@JMack6490)
- Clarify ns.bladeburner.getSkillUpgradeCost and fix typo in BaseTask (@catloversg)
- Fix typo in Corporation documentation (@catloversg)
- Add more information for deprecated nFormat API (@catloversg)
- Clarify FactionWorkRepGain multiplier (@catloversg)
MISC
- Fix: Wrong money source when traveling (@catloversg)
- Use ramOverride() to set compiled script RAM (@d0sboots)
- Provide type definitions for `React` and `ReactDOM` in in-game editor. (@tom.prince)
- Fix: "Router called before initialization" race (@d0sboots)
- Always include stack trace in Recovery Mode (@d0sboots)
- Don't spin forever if IDB can't be loaded (@d0sboots)
- Fix: Prevent runtime NotAllowedError on Safari (@robofinch)
- Enable strict typechecking of typescript, and several other typescript improvements in script editor (@tom.prince)
- Minor bugfix for minesweeper game: made rounding behavior for height, width and mine count consistent (@mmjr-x)
- Fix: Crash when accessing nonexistent files with file protocol in Electron app (@catloversg)
- Stop terminal scp from revealing and copying to unreachable servers (@yichizhng)
- Fix: Tab completion uses wrong command list (@catloversg)
- Fix: Prompt does not reset text value (@catloversg)
- Fix: Duplicated program in edge case (@catloversg)
- Improve rep calculation accuracy (@d0sboots)
- Fix: NaN Total Assets caused by bug in bulkPurchase API (@catloversg)
- Cancel infiltration when player is hospitalized (@catloversg)
- Fix: Block hacking-related actions on player-owned servers (@catloversg)
- Rework disableLog for efficiency (@d0sboots)
- Improve several things relating to PID lookups (@d0sboots)
- Fix: ns.singularity.donateToFaction being able to donate to SoA (@Fireball5939)
- Throw error when player passes invalid hostname to some APIs (grow, weaken, singularity.installBackdoor) (@catloversg)
- Fix: upgradePurchasedServer API prints wrong error message (@Nolshine)
- Reduced RAM cost for ns.getPurchasedServers (@Faenre)
- Fix: Autocomplete shows error popup in some cases (missing error handler when calling libarg) (@catloversg)
- Reduce cost of static information NS APIs to 0 (@Faenre)
- Add ns.self() as a free info function (@G4mingJon4s)
- Change generation rate of CCTs for offline bonus (@catloversg)
- Add new Square Root coding contract (@d0sboots)
- Remove mention of Hacking Mission (@catloversg)
- Fix: Scripts are killed too late when prestiging (@catloversg)
- Fix: Typos in description of augmentations (@egg362)
- Fix: Typo in field work description (@Pimvgd)
- Fix: Fix dynamicRamUsage returned by getRunningScript() (@d0sboots)
- Add warning when installing backdoor on backdoored server (@catloversg)
- Expose more information of HiveMind augmentation (@catloversg)
- Improve tutorial, documentation and discoverability of NS API documentation (@catloversg)
- Improve exception alert (@catloversg)
- Improve built-in print APIs when printing Promise objects (@catloversg)
- Improve built-in print APIs when printing objects containing Map or Set (@catloversg)
- Validate hostname and port of RFA (@catloversg)
- Update blood donation (@hydroflame, @catloversg)
- Include React component stack in Recovery Mode report (@catloversg)
- Always add script's earnings to its parent (@catloversg)
- nano and vim use wrong template for text files (@catloversg)
- Add error cause to exception alert and Recovery mode UI (@catloversg)
- Fix ramOverride check (@jonhartnett)
- Accept "noscript" as parameter for skipping loading scripts (@catloversg)
- Fix: Multiple issues with migrating older savegames (@catloversg)
SPOILER CHANGES
- Change formula of Bladeburner skill cost (@catloversg)
- Fix: Wrong behavior of ns.bladeburner.getSkillUpgradeCost (@catloversg)
- Disable rumor of Bladeburners in BN8 (@catloversg)
- Fix: Stop current work when starting a program with Singularity (@TheAimMan)
- Fix: Cap Gang recruit member calculation (@TheAimMan)
- Fix: Allow upgrading Bladeburner skill level over max safe integer (@catloversg)
- Fix: Wrong countdown of remaining time for Bladeburner action (@catloversg)
- Fix: Duplicated augmentation when buying after grafting (@catloversg)
- Fix: Wrong success range of Bladeburner general action (@catloversg)
- Add buyAmount and importAmount to Corporation Material API (@yichizhng)
- Add success chance of Bladeburner action to Sleeves UI (@catloversg)
- Allow filtering graftable augmentations (@catloversg)
- Fix: Wrong error message when failing to recruit gang member (@catloversg)
- Add API to calculate max upgrade count of Bladeburner skill (@catloversg)
- Fix: Bladeburner city chaos reaching Infinity/NaN (@Faenre)
- Use indirect eval for terminal expr and corporation sell prices/amounts (@yichizhng)
- Fix: Wrong skill multipliers in Bladeburner (@catloversg)
- Fix: Crash in b1tflum3 and destroyW0r1dD43m0n API (@catloversg)
- Bladeburner: Est. pop improvement actions always improve est. pop by at least 1 (@Faenre)
- Fix: Typo in description of Stanek's Gift (@Tahvohck)
- Prevent issues caused by resetting the board while the go AI is in flight (@ficocelliguy)
- Bladeburner: Use "grow" semantics for population estimate (@d0sboots)
- Fix: Wrong team size when all team members die in Bladeburner's action (@catloversg)
- Fix: Wrong parameter requirement of ns.bladeburner.setTeamSize (@catloversg)
- Make condition of ns.singularity.donateToFaction consistent (@catloversg)
- Fix: Wrong calculation in team casualties of Bladeburner action (@catloversg)
- Bladeburner UI shows tooltips on action success chance to indicate which stat it scales with (@Alpheus)
- Improve discoverability of Corporation documentation (@catloversg)
- Change type of skill name parameter of ns.formulas.bladeburner.skillMaxUpgradeCount API (@catloversg)
- Uncheck the 'show prior move' feature when a new Go game is started (@ficocelliguy)
- Add optional board state argument to the go analysis functions (@ficocelliguy)
- Add ns.go.cheat.getCheatCount (@ballardrog)
- Fix: Typo in Covenant's shop (@catloversg)
- Disable "+1" button when Bladeburner skill level reaches max safe integer and refactor some checks (@catloversg)
- Show confirmation popup if player enables territory clashes while being too weak (@catloversg)
- Expose valuation via ns.corporation.getCorporation (@catloversg)
- Return active SF levels in ns.singularity.getOwnedSourceFiles and ResetInfo.ownedSF (@catloversg)
- Fix: Negative stored material in Corporation (@catloversg)
- Remove WD from Hashnet server list if TRP not installed (@gmcew)
- Deduct karma when successfully completing action involving killing (@catloversg)
- Fix: Hashserver UI shows wrong server list when purchasing upgrades (@catloversg)
- Fix wrong initial productionMult of new division (@catloversg)
CODEBASE/REFACTOR
- Update monaco-editor to 0.50.0 and work around a bug (@tom.prince, @catloversg)
- Sync UI updates to game updates. (@tom.prince)
- Use Autocomplete instead of Select in devmenu augmentation tool (@catloversg)
- Update caniuse-lite to latest version (@tom.prince)
- Remove redundant type of CONSTANTS (@catloversg)
- Add a type annotation to webpack configuration function. (@tom.prince)
- Remove testing code in ScriptTransformer (@catloversg)
- Use mathjax from npm, rather than vendored copy. Also fix mathjax path. (@tom.prince)
- Remove unused attributes of internal `ScriptDeath`. (@tom.prince)
- Add some more types to `webpack.config.js`. (@tom.prince)
- Refactor Person.ts and Sleeve.ts (@catloversg)
- Remove unnecessary dependency in Person class (@catloversg)
- Remove js-sha256 (@catloversg)
- Small change in devmenu augmentation tool (@catloversg)
- Update Electron to v29 (@catloversg)
- Update Node version in CI workflows (@catloversg)
- Increase minimum Node version (@catloversg)
- Rename getRandomArbitrary (@catloversg)
- Expose internal data in dev build (@catloversg)
- Don't make dynamicLoadedFns entries for free functions (@yichizhng)
- Use Autocomplete instead of Select in more devmenu tools (@catloversg)
- Reduce number of random tests for testing calculateMaxUpgradeCount (@cmfrydos)
- Improve performance of Jest tests by removing barrels (@cmfrydos)
- Refactor Bladeburner Identifier Lookup (@Alpheus)
- Refactor coding contracts for type safety (@d0sboots)
- Update version of babel-plugin-transform-barrels (@cmfrydos)
- Move Bladeburner team losses to Casualties (@Alpheus)
- Add tests to cover Bladeburner console commands (@Alpheus)
- Remove google analytics config (@shyguy1412)
- Add stopFlag check before running main (@Caldwell-74)
- Update ScriptDeath to extend Error (@alainbryden)
- Add tests to cover Bladeburner action completion (@Alpheus)
- Reset other gangs when leaving gang by using devmenu (@catloversg)
- Fix lint errors (@catloversg, @ficocelliguy)
- Remove duplicate getRecruitmentSuccessChance in Bladeburner code (@catloversg)
- Change sleeveSize from property to getter (@catloversg)
- Minor code change in SkillElem.tsx (@catloversg)
- Add generic type as returned type for action and checking (@catloversg)
- Add proper type check to AST walking code (@catloversg)
- Update monaco-editor to 0.52.0 (using this version fixes "loadForeignModule" error) (@catloversg)
- Rewrite validation code for strings of price and quantity (@catloversg)
- Add comments to Generic_fromJSON (@catloversg)
- Better casting in JSONReviver.ts (@d0sboots)
- Remove duplicate usages of special server's hostname (@catloversg)
- Recheck all usages of typecasting with JSON.parse (@catloversg)
- Fix: Missing migration code for v0.56.0 (@catloversg)
- Fix: Wrong usage of delete operator in Settings.load (@catloversg)
- Mitigate cyclic dependency between Jsonable classes (@catloversg)
- Fix: Generic Reviver does not handle Message class (@catloversg)
- Add tests for b1tflum3 and destroyW0r1dD43m0n API (@catloversg)
- Multiple large refactors to savegame loading for better validation and safety (@catloversg)