Commit Graph

140 Commits

Author SHA1 Message Date
catloversg
23f193c8eb MISC: Remove unnecessary dependency in Person class (#1534) 2024-08-04 00:04:06 -07:00
catloversg
06677a1306 MISC: Refactor Person.ts and Sleeve.ts (#1532) 2024-08-01 22:59:41 -07:00
Snarling
b597746343 TRAVEL: Unify implementation for Player and Sleeves (and some followup for #1365) (#1439) 2024-06-26 20:46:50 -04:00
catloversg
a354867fc4 MISC: Refactor code of traveling and going to location (#1365) 2024-06-08 13:52:10 -07:00
Yichi Zhang
e674a177d6 BUGFIX: Check that the augmentation is available before installing it on a sleeve. (#1320) 2024-05-27 15:34:19 -07:00
gmcew
7f8757b536 SLEEVE: Add funds check for sleeve travel (#1298)
This makes it consistent with player behaviour. This also makes the function description more truthful in that it is now possible to return false.
2024-05-23 01:46:55 -07:00
Snarling
6669c4da6a BLADEBURNER: Typesafety / refactoring (#1154) 2024-03-28 21:52:37 -04:00
Sphyxis
79b0f83b5f DEVMENU: Easier to add/remove sleeves (#908) 2023-12-04 14:36:00 -05:00
Snarling
38f693e2c1 ENUMS: Followup for #859 (#868) 2023-10-17 07:19:32 -04:00
Zelow79
99e5c5e6b0 Added BB Training to sleeve actions (#713) 2023-09-12 05:07:36 -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
omuretsu
993f234f48 Fix sleeve faction work from ui
Bandaid fix. I have a much better fix in mind for this, but it will need to wait until 2.4 since it will include some breaking changes.
2023-07-11 11:03:49 -04:00
Snarling
e2655793f4 TYPESAFETY: CompanyName (#650) 2023-07-11 09:23:17 -04:00
Snarling
9a0a843ffc TYPESAFETY: FactionName (#644) 2023-06-25 22:53:35 -04:00
Snarling
a4b826683e TYPESAFETY: Strict internal typing for AugmentationName (#608) 2023-06-16 17:52:42 -04:00
Aleksei Bezrodnov
61c8026bd0 fix sleeve university job (#604) 2023-06-12 15:19:35 -04:00
Snarling
6732549196 ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling
04d49e3a6d SCRIPTS: Script modules are reused when they are imported (#461)
Also corrects some compile race conditions.
2023-04-07 00:33:51 -04:00
Snarling
401bfe9f31 Sleeve work type changes (#412) 2023-03-07 18:03:13 -05:00
Snarling
e74dfe9b79 NETSCRIPTSLEEVE: Add cyclesWorked to ns.sleeve.getTask return (#409) 2023-03-07 05:30:15 -05:00
tyasuh.taeragan@gmail.com
7963158470 Requested Correction 2023-02-20 21:40:47 -05:00
tyasuh.taeragan@gmail.com
b6433786e3 formatter 2023-02-19 05:27:09 -05:00
tyasuh.taeragan@gmail.com
012c5d4f86 Int Buff to shock recovery speed 2023-02-19 01:43:38 -05:00
Snarling
b4074328ec UI: Added new locale-aware and configurable number formatting (#354) 2023-02-11 13:18:50 -05:00
omuretsu
7c6d7206dd Fix broken HP 2023-01-03 02:14:00 -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
5ff2cd5357 VERSION: Update game version to 2.2 (#240)
Includes some bug fixes:
* Fix sleeve shock internal/display discrepancy (0-100 vs 0-100)
* Special error message if ns function called without a this
* Change whitespace to pre-wrap for dialog box.
* Fix bug where idle sleeves do not consume cycles but still recover shock from those cycles. Now they do not recover during idle.
* attempted to tag commit as v2.2.0
2022-12-01 16:07:46 -05:00
Snarling
e7fc0fbb03 Fix documentation for ns.sleeve (#227) 2022-11-24 08:19:51 -05:00
Snarling
65cd14e33b DOC: Add ns documentation for possible sleeve tasks (#217)
* Add specific types for sleeve tasks
* Moved LocationName enum to overall enums file
* Add LocationName enum to those provided to player
* remove trailing s on CompanyPosNames enum (now CompanyPosName, in line with LocationName)
* Also regenerated all ns documentation. This leads to an expected error when checking for generated files, because PRs should not normally touch markdown files. Also leads to a lint failure in generated file bitburner.d.ts
* also removed some exporting from NetscriptDefinitions.d.ts for anything that wasn't imported somewhere else.
2022-11-20 12:07:22 -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
omuretsu
e42b1c2edd lint 2022-11-03 08:46:01 -04: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
Olivier Gagnon
cbb7f58231 Make the main player object an alias, makes it easier to import 2022-10-09 18:42:14 -04:00
Olivier Gagnon
f6f023eeb4 Fix tons of typos 2022-10-09 01:25:31 -04:00
Snarling
aa80cf6451 See description
Reverted ToastVariant back to an enum internally. Still exposed to player as just possible strings.
Changed all 1-line documentation comments to actually be 1-line. Moved some because they were not providing documentation for the thing they were trying to.
2022-10-04 06:40:10 -04:00
Snarling
a4b7128e6c Sleeve bladeburner fix 2022-09-27 16:36:37 -04:00
Snarling
16fac67257 fix broken rebase 2022-09-27 16:23:53 -04:00
Snarling
38063f62a7 build fix, lint, remove some instanceof checks 2022-09-27 16:09:32 -04:00
Snarling
8a9515f154 More classes as types 2022-09-27 16:08:16 -04:00
Snarling
0dbe80a841 Player is now a Person
Use correct class inheritance, use class as type and remove IPlayer
2022-09-27 16:07:58 -04:00
Snarling
c510e47885 Player is now a Person
Use correct class inheritance, use class as type and remove IPlayer
2022-09-27 15:35:41 -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
Olivier Gagnon
fb197be206 Fix hostname generation being weird about dash 0 added 2022-09-23 12:04:21 -04:00
hydroflame
944ee71ab9 Merge pull request #4065 from Snarling/sleeveBladeContractFix
SLEEVES: FIX #4063 fix crash when player tries to assign more than 3 sleeves to Bladeburner contracts
2022-09-23 00:59:46 -03:00
Noah Kantrowitz
232dcab5cd Reset sleeves to max HP when starting a new node. 2022-09-10 17:44:50 -07:00
Noah Kantrowitz
596a04515d Allow using the regeneration chamber with sleeves to heal them.
This also allows using sleeves to generate stamina faster even if at full HP.
2022-09-10 17:39:40 -07:00