Commit Graph

80 Commits

Author SHA1 Message Date
catloversg 1cc0288cd8 BUGFIX: Sleeve takes on contracts without checking availability (#1946) 2025-02-01 21:41:07 -08:00
catloversg cacecda72f API: Add types for parameters of gym-university-bladeburner API (Fix merging error) (#1596)
* API: Add types for parameters of gym-university-bladeburner API
* Fix merging error
2024-08-17 14:08:55 -07:00
David Walker 79bb0d289a Revert "API: Add types for parameters of gym-university-bladeburner API (#1591)" (#1592)
This reverts commit da8870ed79.
2024-08-16 13:45:54 -07:00
catloversg da8870ed79 API: Add types for parameters of gym-university-bladeburner API (#1591) 2024-08-16 13:29:24 -07:00
catloversg 783120c886 FEATURE: BitNode options (#1411) 2024-07-14 14:30:30 -07:00
catloversg 960fe5aa8b BUGFIX: Wrong success chance in ns.bladeburner.getActionEstimatedSuccessChance (#1450) 2024-07-02 15:07:56 -07:00
Sphyxis 61ec7dde80 API: Get Sleeve Success at BB tasks through existing commands (#1428) 2024-06-28 19:49:52 -07:00
catloversg a354867fc4 MISC: Refactor code of traveling and going to location (#1365) 2024-06-08 13:52:10 -07:00
Snarling 3afafe4454 SLEEVE: Editorial followup on #1314 (#1347) 2024-06-04 09:49:23 -04:00
Sphyxis bed66f980f BUGFIX: BB Sleeves cannot be assigned to contract programmatically (#1314) 2024-05-27 18:32:21 -07:00
Snarling 6669c4da6a BLADEBURNER: Typesafety / refactoring (#1154) 2024-03-28 21:52:37 -04:00
Snarling 373ced2efe GO: Various changes before 2.6.0 (#1120) 2024-02-26 08:05:10 -05:00
LJ fd5b0f8241 MISC: Use structuredClone() for deep cloning (#1077) 2024-02-10 04:10:19 -05:00
Snarling 4ca598defb API: Fix removed functions (#720) 2023-08-07 02:38:38 -04:00
omuretsu 888e5f9c8a Fix bug with sleeve.setToFactionWork
Function was not checking that the player was actually in the faction, which allowed sleeves to work for factions the player was not part of.
2023-07-31 10:36:24 -04:00
Snarling e2655793f4 TYPESAFETY: CompanyName (#650) 2023-07-11 09:23:17 -04:00
Snarling a4b826683e TYPESAFETY: Strict internal typing for AugmentationName (#608) 2023-06-16 17:52:42 -04:00
Snarling 6732549196 ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling e74dfe9b79 NETSCRIPTSLEEVE: Add cyclesWorked to ns.sleeve.getTask return (#409) 2023-03-07 05:30:15 -05:00
Zelow79 028199aa7d SLEEVE: Add sleeve.setToIdle function (#374) 2023-02-19 00:13:23 -05:00
omuretsu 0ec4ef31ab 2.2 2023-01-02 13:20:25 -05:00
zerbosh 7d98c680e5 SLEEVE: added storedCycles to getSleeve() (#279) 2023-01-02 09:45:51 -05:00
Snarling fb1f95c26e VARIOUS: Various changes prior to release 2.2 (#271)
See PR #271 description
2022-12-29 20:28:53 -05:00
Snarling e7fc0fbb03 Fix documentation for ns.sleeve (#227) 2022-11-24 08:19:51 -05:00
Snarling 88d51e9a7e MISC: A bunch of enums stuff. (#212)
* Some game enums moved to utils/enums. Others can eventually be moved there as well.
* findEnumMember function for performing fuzzy matching of player input with enum members, without needing separate fuzzy functions for every enum.
* Also used findEnumMember for safely loading save games (allows case changes in enum values)
* Changed capitalization on some enums.
* BREAKING: removed classGains work formulas function
* Split ClassType enum into UniversityClassType and GymType.
* Added universityGains and gymGains work formulas functions
* Provided the new split enums to the player on ns.enums.
2022-11-20 08:37:11 -05:00
Snarling 426ad5f296 Sleeve criming fix (#209)
Also simplify usage of findCrime
2022-11-10 11:05:42 -05:00
Snarling 8e0e0eaa88 NETSCRIPT: ns.sleeve.getSleeve added. getPlayer and getSleeve can both be used for formulas. (#200)
* BREAKING CHANGE: Removed getSleeveStats and getSleeveInformation because this info is provided by getSleeve in a more usable form.
* BREAKING CHANGE: Removed tor, inBladeburner, and hasCorporation fields from ns.getPlayer. Functionality still exists via added functions ns.hasTorRouter, ns.corporation.hasCorporation, and ns.bladeburner.inBladeburner.
* Separated ns definitions for Person, Sleeve, and Player interfaces with both Player and Sleeve just extending Person.
Added getSleeve, which provides a Sleeve object similar to getPlayer.
* Renamed the sleeve ns layer's interface as sleeve lowercase because of name conflict. todo: May move all the ns layers interface names to lowercase for consistency
* Added ns.formulas.work.crimeSuccessChance and reworked to allow both sleeve and player calculations.
* Removed internal Person.getIntelligenceBonus function which was just a wrapper for calculateIntelligenceBonus. Any use of the former in formulas creates a conflict where ns-provided Person objects throw an error.
* Renamed helpers.player to helpers.person for netscript person validation. Reduced number of fields validated due to Person being a smaller interface.
* Fixed bug in bladeburner where Player multipliers and int were being used no matter which person was performing the task
* Fixed leak of Player.jobs at ns.getPlayer
* Person / Player / Sleeve classes now implement the netscript equivalent interfaces. Netscript helper for person no longer asserts that it's a real Person class member, only that it's a Person interface. Functions that use netscript persons have been changed to expect just a person interface to prevent needing this incorrect type assertion.
2022-11-09 07:26:26 -05:00
Snarling 9e869bc876 NETSCRIPT: Add ns.formulas.work.companyGains function (#195)
* added ns.formulas.work.companyGains.
* Removed Work/Formulas folder, added Work/Formulas.ts
* CompanyPosition.calculateJobPerformance now takes in a Person instead of taking in a full set of stats, and it takes INT into account.
* formulas.crimeGains takes in a person object.
* Renamed ns Player type to Person.
* added multWorkStats, which multiplies a WorkStats object with a multipliers object.
* Remove unused types in NetscriptDefinitons.d.ts
* reuse formulas code in other parts of game
* getSleeveInformation also returns skills

Co-authored-by: Alexey <alexey.kozhemiakin@gmail.com>
2022-11-06 17:27:04 -05:00
omuretsu b057e2e5f2 Fix sleeves unable to commit crime 2022-11-03 08:39:34 -04:00
Snarling d74c380e42 WIP: Crimes streamlining. (#138)
* streamline crimes

* Crimes object is now indexed by CrimeType enum instead of an entirely new set of keys that aren't used for anything else. This eliminated a lot of instances of iterating to find the right crime for a given CrimeType.
* Removed unused `None` CrimeType which allowed typing Crimes as a Record<CrimeType, Crime>.
* Added slums tooltip text as a crime property, to allow streamlining slums.
* Refactor slums location - removed repetitive code, rerenders 1/sec to update chances
* Fix bugged descriptive text when sleeve is committing a crime (was "is attempting to DRUGS", now uses correct text e.g. "to deal drugs").
* Remove unused and now unneeded NewCrimeType enum. Values were identical to existing CrimeType values after removing unused None.

* Add CrimeType enum in NetscriptDefinition.d.ts

* Also update broken ToastVariant type. Better support for enums in player scripts.
* Still todo is modifying some NS functions to expect CrimeType as input (rough crime names will continue to work to avoid breaking scripts)

* Expect enum use for crime functions

Affected functions:
* ns.singularity.commitCrime
* ns.singularity.getCrimeChance
* ns.singularity.getCrimeStats
* ns.sleeve.setToCommitCrime
* formulas.work.crimeGains (param type only)

- Affected functions still will fall back to rough names, except formulas.work.crimeGains which already only accepted the enum members.
- Some documentation changes:
  * examples updated to use uppercase expected form.
  * Note on sleeve.setToCommitCrime that it only accepts exact matches removed. It already, and still does, accept any rough crime name (but the enum is expected input).
  * note about needing to use isBusy to schedule crimes remove - crimes autoloop now.
  * Since expected string inputs are documented directly on the type, removed list of crimes from sleeve.setToCommitCrimes
2022-10-21 11:57:37 -04:00
omuretsu 7a384d53f4 typefix netscriptFunctions (see desc)
* Types for InternalFunction and ExternalFunction have been modified to actually typecheck ns functions against docs.
* Internal functions are required to use unknown for any params on the inner function.
* Return types for internal function inner-function must match the respective external function.
* Added new typecheck assertion function for asserting dynamic object types, to allow unknownifying params that were previously hardcoded objec structures.
* Because type assertion for parameter types and return types is enforced by InternalAPI, removed all duplicate type declarations on NetscriptFunction params and returns.
2022-10-12 08:49:27 -04:00
Olivier Gagnon cbb7f58231 Make the main player object an alias, makes it easier to import 2022-10-09 18:42:14 -04:00
Snarling 475a8812bb findSleevePurchasableAugs as a class member 2022-09-27 15:35:41 -04:00
Snarling 83d357e758 commit1 2022-09-27 15:35:40 -04:00
Snarling 931ea730a5 Move entire ns object to top-level 2022-08-09 18:09:26 -04:00
Snarling 01e63b10a1 move ctx.log to NetscriptHelpers 2022-08-09 18:09:26 -04:00
Snarling 208495e269 Initial commit 2022-08-09 18:09:24 -04:00
Olivier Gagnon 3b35b07860 remove unused fields on sleeves 2022-07-28 03:08:39 -04:00
Olivier Gagnon 4549b0d467 finish sleeve rework 2022-07-28 02:46:34 -04:00
Olivier Gagnon 32bd629317 lint 2022-07-27 00:08:07 -04:00
Olivier Gagnon 326d9fd7ef Move player skills and exp to their struct 2022-07-26 23:54:17 -04:00
Olivier Gagnon 6498a720bb Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-07-21 02:42:52 -04:00
Olivier Gagnon 693baf26df add sleeve aug price and rep function 2022-07-21 02:42:48 -04:00
hydroflame 68ecc9613c Merge pull request #3739 from borisflagell/FIX#3732-v2
API: FIX#3732  Cannot assign two sleeve on "Take on contracts" regardless of contract type.
2022-07-21 02:31:12 -04:00
hydroflame 2fd3451780 Merge pull request #3724 from borisflagell/FIX#3661
API: Fix #3661 Add missing memory property to Sleeve API
2022-07-21 02:26:55 -04:00
Olivier Gagnon 5629c16def extract multipliers in its own type 2022-07-14 18:43:33 -04:00
Olivier Gagnon f7805c4a51 convert faction work to new work system 2022-07-12 01:54:19 -04:00
borisflagell c5b68610a1 fix typo in thrown error message 2022-05-27 17:59:37 +02:00
borisflagell 0abd760d35 API FIX:#3732 Cannot assign two sleeve on "Take on contracts" regardless of contract type.
ns.sleeve.setToBladeburnerAction() was not testing the contract value.
2022-05-24 15:38:05 +02:00
borisflagell ff75097149 API: Fix #3661 Add missing memory property to Sleeve API
fixes #3661

Add the missing memory stat to NS.SleeveSkills Interface.
Update ns.Sleeve.GetSleeveStats accordingly.
(fixing commit issue)
2022-05-24 15:09:22 +02:00