Commit Graph

628 Commits

Author SHA1 Message Date
David Walker
8d793ea271
Internal refactoring of Router (#241) 2022-12-04 03:14:06 -05:00
G4mingJon4s
633296da15
Added check if factionWork is from faction of gang (#243) 2022-12-03 22:58:40 -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
omuretsu
387c0c2786 Fix save corruptions from invalid types 2022-11-20 12:39:08 -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
c669e473d1
SLEEVE: Fixed inconsistencies in how sleeve work rewards are handled. (#211) 2022-11-10 21:56:46 -05:00
Snarling
426ad5f296
Sleeve criming fix (#209)
Also simplify usage of findCrime
2022-11-10 11:05:42 -05:00
Matt Garretson
3ec4f0c98c
Fix HP gaining logic from defense skill levels (#205) 2022-11-09 22:06:27 -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
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