Commit Graph

668 Commits

Author SHA1 Message Date
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
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
omuretsu
8837c01d21 Tolerate & recover from null player money 2022-10-25 14:56:47 -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
c3b2c6396c lint and made a some code more robust to older save file 2022-10-16 14:25:42 -04:00
hydroflame
14914eb190
Merge pull request #4229 from borisflagell/wxsQDSSQF
SLEEVE: Fix #4194 Bladeburner Contract in Sleeve were not giving proper reward.
2022-10-12 23:54:15 -04:00
Jakob002
c2ed9067e0
MISC: message formatting
Replaced someArray.toString() with someArray.join(", "). This will return "foo, bar, baz" (with spaces) instead of "foo,bar,baz" (no spaces).
2022-10-12 15:16:10 +02:00
borisflagell
f3becee15b Fix Bladeburner Contract in Sleeve 2022-10-11 15:25:16 +03: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
f4668b21ca functions to generate dummy contracts 2022-10-09 02:56:11 -04:00
Olivier Gagnon
f6f023eeb4 Fix tons of typos 2022-10-09 01:25:31 -04:00
hydroflame
87ad634859
Merge pull request #4201 from stalefishies/has-augmentation-fix
MISC: Fix bug in person.hasAugmentation
2022-10-09 00:27:05 -04:00
hydroflame
c930487c21
Merge pull request #4215 from borisflagell/crime-sleeve
SLEEVE: Fixes 2 issues in Sleeve's implementation of crime work
2022-10-09 00:25:13 -04:00
borisflagell
6d86852969 FIX crime by sleeve
Bitnode multiplier was applied twice in th UI.
Sleeve's multiplier weren't applied (neither in UI, nor engine).
2022-10-08 17:19:20 +03:00
Staszek Welsh
ad8c7b7ffe Fix change in behaviour of person.hasAugmentation 2022-10-04 22:55:35 +01: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
50f14b4f58 Commit1 2022-10-03 12:12:16 -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
25be5c2990 Remove unused augmentationStats interface
All augmentations have all multipliers
2022-09-27 16:20:26 -04:00
Snarling
3d4d02a573 remove unnecessary function 2022-09-27 16:15:11 -04:00
Snarling
38063f62a7 build fix, lint, remove some instanceof checks 2022-09-27 16:09:32 -04:00
Snarling
81412db02e format & lint fix 2022-09-27 16:09:32 -04:00
Snarling
b364cdf734 Rebase fix, move hasAugmentation to Person 2022-09-27 16:08:52 -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
6e3a6be106 Remove some redundant typing 2022-09-27 15:35:42 -04:00
Snarling
bc7c15ad77 corp: classes are types 2022-09-27 15:35:42 -04:00
Snarling
557bc12562 More classes as types 2022-09-27 15:35:42 -04:00
Snarling
2213d06159 Using bladeburner and action classes as types 2022-09-27 15:35:41 -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
e578bd7681 Remove IPlayer interface
Use PlayerObject instead when referring to the type of "The Player."
2022-09-27 15:35:41 -04:00
Snarling
91a69d7d8f format & lint 2022-09-27 15:35:40 -04:00
Snarling
a21b1029d7 No more player/router context 2022-09-27 15:35:40 -04:00
Snarling
83d357e758 commit1 2022-09-27 15:35:40 -04:00
Olivier Gagnon
a3c92dd04d Wrap up v2.1.0 2022-09-23 15:00:20 -04:00
Olivier Gagnon
6390f3618e Added few augs 2022-09-23 12:05:16 -04:00
Olivier Gagnon
fb197be206 Fix hostname generation being weird about dash 0 added 2022-09-23 12:04:21 -04:00
Mughur
5e0d284cf0 updated sleeve FAQ 2022-09-23 16:01:53 +03:00
Mughur
a389974314 Sleeves now only get actual gang's augs 2022-09-23 15:52:04 +03: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
hydroflame
9f922de50d
Merge pull request #4101 from Kelenius/UnhardcodeBBAndCorpDisabling
UI: Bitnode stats now show if BB/Corporation are disabled
2022-09-23 00:43:19 -03:00
hydroflame
34534ac282
Merge pull request #4093 from coderanger/sleeve-heal
SLEEVES: FIX #3819 Allow using the regeneration chamber with sleeves to heal them.
2022-09-23 00:33:16 -03:00
Mughur
75c738cdb0 Fixed NMI aug having effect before installing 2022-09-14 20:54:03 +03:00
Kelenius
5350e1c3e9 Unhardcoded BN8 BB check; show if corp/BB are disabled in BN stats 2022-09-12 17:48:52 +03:00
Noah Kantrowitz
e4961f452e ✏️ Copy paste typo. 2022-09-10 17:52:06 -07: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
Snarling
e8c8bb76ff Don't let sleeve start invalid contract 2022-08-30 09:26:24 -04:00
Olivier Gagnon
c88ac1c26e fix some stuff with the timestamp settings 2022-08-29 16:47:51 -04:00
hydroflame
44ab53653f
Merge pull request #4041 from Mughur/sleeve
SLEEVE: FIX #4022, #4024, #4025, #3998
2022-08-29 11:18:01 -03:00
Olivier Gagnon
0942b7b6ee minor fix in instance calculation 2022-08-29 10:06:20 -04:00
Snarling
9d942f3393 sleevesActuallyQuitToo 2022-08-29 04:12:02 -04:00
Snarling
c2af87a769 sleevesQuitToo 2022-08-29 04:02:38 -04:00
Mughur
cf09057836 BB action rewards now tied to who does the action 2022-08-28 13:20:27 +03:00
Mughur
9d1b48e076 Fixing my previous mistakes 2022-08-26 00:30:27 +03:00
Mughur
a6d4ef4147 sleeve.getTask() retuns which crime name 2022-08-25 20:28:05 +03:00
Mughur
1a1decf5fd sleeve BB contracts now properly give money 2022-08-25 20:06:19 +03:00
Mughur
bf33734def Sleeve shock goes down, but not to negative 2022-08-25 18:49:01 +03:00
Mughur
2e4e7fadfc fix Sleeve UI gains 2022-08-25 18:19:14 +03:00
Mughur
c5cbbb2fbd fix sleeve bb 2022-08-25 17:23:14 +03:00
Snarling
445e365959 debounce updateRAM 2022-08-23 16:38:30 -04:00
Mughur
84e2ae78c3 Sleeve crime gain bitnode multiplier fix 2022-08-19 10:03:20 +03:00
Olivier Gagnon
3067703c63 Trying to fix int bug 2022-08-18 13:40:39 -04:00
Olivier Gagnon
a8bef50ef5 Added a few formulas to calculate work gains 2022-08-17 14:32:52 -04:00
Olivier Gagnon
f78c0d6a6d Fix intelligence bugf 2022-08-15 09:38:10 -04:00
Olivier Gagnon
39cf0cb57f allbuild commit 8e859d84 2022-07-29 17:05:56 -04:00
Olivier Gagnon
8e859d84b7 allbuild commit 07c7f064 2022-07-29 16:29:15 -04:00
Olivier Gagnon
07c7f0641a allbuild commit c8440ef2 2022-07-28 14:35:55 -04:00
Olivier Gagnon
c8440ef268 allbuild commit 2b4a1bb7 2022-07-28 11:37:28 -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
ebe953b498 work on sleeve new work system 2022-07-27 20:37:32 -04:00
Olivier Gagnon
315b2adf30 Make invalid hostname better 2022-07-27 00:59:43 -04:00
Olivier Gagnon
7f72d77428 clean some sleeve stuff 2022-07-27 00:50:21 -04:00
Olivier Gagnon
326d9fd7ef Move player skills and exp to their struct 2022-07-26 23:54:17 -04:00
Olivier Gagnon
214b2645ad allbuild commit 8afacee9 2022-07-26 10:41:04 -04:00
Olivier Gagnon
6b43ecafb1 fix sleeve not being able to buy augs 2022-07-26 08:25:18 -04:00
Olivier Gagnon
ebae95dd4a Fix grafting times 2022-07-26 08:12:59 -04:00
Olivier Gagnon
faa3e212f3 fix a bunch of small v2 related bugs 2022-07-26 08:08:51 -04:00
Olivier Gagnon
1d46adbce1 allbuild commit fc0fef59 2022-07-21 19:37:05 -04:00
Olivier Gagnon
fc0fef598b Merge branch 'dev' of github.com:danielyxie/bitburner into dev 2022-07-21 18:27:27 -04:00
Olivier Gagnon
631d6ef04a fix few bugs 2022-07-21 18:27:23 -04:00
hydroflame
b66d7e7d51
Merge branch 'dev' into FIX#3366 2022-07-21 16:17:08 -04:00
Olivier Gagnon
5c551348ed fix some React errors 2022-07-21 15:24:03 -04:00
Olivier Gagnon
2d522ea1e6 allbuild commit e9254edf 2022-07-21 15:09:55 -04:00
hydroflame
8f7bbaf62c
Merge pull request #3723 from borisflagell/FIX#3132
UI: Fixes #3132 several Sleeve can no longer works concurrently in the same company
2022-07-21 02:27:59 -04:00
hydroflame
5d3955de50
Merge pull request #3795 from borisflagell/FIX#3794
SLEEVE: FIX #3794 Sleeve were getting less shocked when hospitalized (was positive, should have detrimental)
2022-07-21 02:15:17 -04:00
Olivier Gagnon
810f3a87b9 rm more anys 2022-07-19 21:53:43 -04:00
Olivier Gagnon
26986c2d3e fix work crashing when installing 2022-07-19 21:42:54 -04:00
Olivier Gagnon
dfadfe6eb2 working with monaco anys 2022-07-19 20:10:30 -04:00
Olivier Gagnon
bb8af88b77 prep v2 2022-07-19 14:21:12 -04:00
Olivier Gagnon
b409e58447 fix exp not loading, kinda 2022-07-19 13:09:56 -04:00
Olivier Gagnon
c977a9def7 tidy up eslint.js 2022-07-19 12:19:32 -04:00
Olivier Gagnon
a9d5ff9bc9 lint 2022-07-18 03:31:17 -04:00
Olivier Gagnon
9057bcc8fb fix any in StatsElement 2022-07-18 03:11:49 -04:00
Olivier Gagnon
4bee746576 rm any 2022-07-15 01:51:30 -04:00
Olivier Gagnon
6b630753f0 nuke some use of any 2022-07-14 19:00:10 -04:00
Olivier Gagnon
5629c16def extract multipliers in its own type 2022-07-14 18:43:33 -04:00
Olivier Gagnon
0550bc188c refactor some stuff 2022-07-14 17:43:08 -04:00
Olivier Gagnon
fac6633347 remove so many fields and values used by the old system 2022-07-12 23:13:40 -04:00
Olivier Gagnon
2d73f546b0 lint and remove unused var 2022-07-12 01:59:23 -04:00
Olivier Gagnon
f7805c4a51 convert faction work to new work system 2022-07-12 01:54:19 -04:00
Olivier Gagnon
e86a42716c lint 2022-07-11 15:58:23 -04:00
Olivier Gagnon
606f1bf6c4 create program and grafting done 2022-07-10 01:37:36 -04:00
Olivier Gagnon
647392626e convert taking class ot new work system 2022-07-07 17:28:23 -04:00
Olivier Gagnon
3ee7d593d0 Convert crime to new work model 2022-07-07 02:00:23 -04:00
hydroflame
fb31903966
Merge pull request #3873 from ilkecan/createProgram-cancel-message
createProgram: FIX #3846 Return correct message
2022-07-06 14:38:38 -04:00
hydroflame
4f617e7d3d
Merge pull request #3818 from ApamNapat/fixed_some_typos_and_style_issues
MISC: Fixed some typos and style issues
2022-07-06 14:35:31 -04:00
Snarling
9cb58898f2 Add ilkecan fix for part time work 2022-06-29 15:03:34 -04:00
ilkecan
adda3d68cd createProgram: Return correct message
It doesn't return completion message upon cancellation anymore.
2022-06-29 02:01:01 +00:00
Snarling
7acb83ba77 Fix backwards logic on quitJob 2022-06-16 07:44:32 -04:00
BB
de01ae20b9 Fixed some typos and style issues 2022-06-07 15:26:33 +02:00
borisflagell
2f1d47b466 SLEEVE: FIX #3794 2022-05-29 21:17:04 +02:00
T.J. Eckman
734f1167df
Restore Fulcrum Rep Requirement to Default
Instead of setting it specifically to 200e3, removed the argument entirely so it will use the default, which currently happens to be 200e3.
2022-05-26 01:12:40 -04:00
T.J. Eckman
2defd1887d
Reduce Fulcrum Rep Requirement 2022-05-26 01:00:56 -04:00
borisflagell
9091441389 Prettier
(fixing commit issue)
2022-05-24 15:09:43 +02:00
borisflagell
8af4fb1d5a UI: Fix #3366 Sleeve UI would sometime display the stat in TaskSelector while working out.
fixes #3366

 Sleeve.gymStatType will now be constrainded to the following values by Sleeve.workoutAtGym() :
"none" , "str", "def", "dex", "agi". (could previously be anything inputted by player through API)
Sleeve.updateGainTaskRate() and TaskSelector.tasks's initializer block will now use a switch, expecting one of those value, instead of reevaluating the string.

(fixing commit issue)
2022-05-24 15:08:47 +02:00
borisflagell
08d8f405c0 UI: Fixes #3132 several Sleeve can no longer works concurrently in the same company
fixes #3132
fixes #3394

Fixed the faulty possibleJob() logic in Sleeve/UI/TaskSelector
2022-05-23 19:31:46 +02:00
borisflagell
8e94878380 WORK: FIX #2721 Singularity faction work logging.
fixes #2721

Player's faction-work-related property were reset to 0 before the singularity's log message was formatted.

I anticipate (really) minor conflict with Work System rework PR.
2022-05-21 23:18:12 +02:00
Olivier Gagnon
0d437e5b73 lint 2022-05-20 18:20:04 -04:00
Olivier Gagnon
27a8582df8 balance infiltrate synthoids 2022-05-20 18:18:42 -04:00
Olivier Gagnon
34b099c050 rm reviver from person 2022-05-20 17:44:20 -04:00
Olivier Gagnon
42dcbf889e fix typo 2022-05-20 17:28:21 -04:00
Olivier Gagnon
7eb4494ac1 fix mc 2022-05-20 15:58:33 -04:00
Olivier Gagnon
9af553f63c Fix 2022-05-19 02:09:00 -04:00
nickofolas
685c93b06d Add sorting buttons to grafting UI 2022-05-14 09:15:01 -05:00
rderfler
b683bc0340 fmt 2022-05-08 14:14:05 -04:00
rderfler
77073836cb Merge remote-tracking branch 'upstream/dev' into dev 2022-05-06 22:44:24 -04:00
jaype87
1a8e31ed09 fix formating 2022-05-06 01:06:53 +02:00
jaype87
5378e8cc38 sort and color grafting list 2022-05-06 00:44:05 +02:00
nickofolas
7d75093989 Init work types with new None member 2022-05-04 15:03:02 -05:00
nickofolas
59982370cb Implement CrimeType enum 2022-05-04 14:48:49 -05:00
nickofolas
f45200b25e Implement ClassType and FactionWorkType enums 2022-05-04 14:18:12 -05:00
nickofolas
4a8e99b170 Refactor WorkType to an enum 2022-05-04 13:42:48 -05:00
nickofolas
bcb6176952 Merge branch 'dev' into improvement/work-in-progress-ui 2022-05-04 12:28:33 -05:00
hydroflame
44641fee07
Merge pull request #3544 from phyzical/feature/refactor-augmentation
REFACTOR:  augmentation cost, rep cost and level to be calculated in place
2022-05-04 12:08:24 -04:00
hydroflame
fc3d89e51f
Merge pull request #3552 from Snarling/jobSwitchFix
COMPANY: Fix #3551 Applying for a new  job will not change active employer if player is performing company work
2022-05-04 12:08:03 -04:00
hydroflame
5d4241b120
Merge pull request #3568 from nickofolas/fix/grafting-stop-work
GRAFTING: Fix Grafting not being handled in singularity stop work
2022-05-04 12:02:29 -04:00
hydroflame
bffa166fc3
Merge pull request #3577 from phyzical/feature/WEB-3567
FEATURE: added logic to allow quitJob to be called from singularity
2022-05-04 11:57:39 -04:00
phyzical
0767043166 added logic to avoid stale object reference on sleeve during augmentation 2022-05-03 19:22:05 +08:00
nickofolas
d942d27a85 Reduce component usage in sleeve element 2022-05-02 17:49:10 -05:00
nickofolas
57673ae281 Add new progress bar to sleeve UI 2022-05-02 17:48:49 -05:00
rderfler
2f320d00a2
Merge branch 'danielyxie:dev' into dev 2022-04-30 15:26:18 -04:00
rderfler
7cf21629a7 Address review
Add ns function setToBladeburnerAction
Formatting updates
fix sleeves using player stamina
Correct supporting sleeve causing error
2022-04-30 15:25:36 -04:00
phyzical
711955c112 added logic to allow quitJob to be called from singularity 2022-04-28 19:05:56 +08:00
phyzical
af8284381c merge base 2022-04-27 19:00:42 +08:00