Commit Graph

5501 Commits

Author SHA1 Message Date
omuretsu
680027cd4b Fix update text for dev branch 2022-12-01 16:37:51 -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
quacksouls
6034e1c3fa
DOC: CORP: typo fixes in hire AdVert functions (#237) 2022-12-01 11:41:52 -05:00
Snarling
14e50e5533
Some corp fixes (#236) 2022-11-29 08:24:04 -05:00
Snarling
0fb7200b4b
STOCK: ns.stock.getOrganization added for getting org from stock symbol (#234)
Authored-by: SamuraiNinjaGuy <branmiller+bitburner@gmail.com>
2022-11-28 10:33:28 -05:00
Snarling
837c6bd1c2
CONTRACT: codingcontract.attempt always returns a string (#231)
* ns.codingcontract always returns a string (reward on success, empty on fail), simplifying usage and documentation of function.
* Because of the above, return value still works when used as a boolean, as long as no direct equality comparison to true/false.
* Documentation expanded and examples added.
Co-authored by @quacksouls
2022-11-28 09:15:09 -05:00
Snarling
6af36e3b29
NETSCRIPT: Faster API wrapping on script launch. (#229)
* ns API is wrapped once
* when a new workerscript is created, each layer of ns is stamped with a private workerscript field that allows the functions to work.
* Test has been refactored to account for new method of wrapping
* BREAKING: ns functions need access to `this` value of their parent ns layer (or any ns layer)
* Enums are passed directly to player (no cloning) but are frozen.
2022-11-28 09:11:55 -05:00
Burhanuddin Mustafa Lakdawala
675c2a0456
DOC: Update documentation for limitMaterialProduction and limitProductProduction (#221) 2022-11-26 21:06:47 -05:00
quacksouls
1ee71cea19
CORP: fix typos in research descriptions (#232)
Fix various typographical errors in the descriptions of research.
2022-11-26 21:05:01 -05:00
David Walker
70fadde222
Revert "Add keycode table and switch to event.code in select places" (#224)
Using code instead of key is strongly warned against at MDN and causes issues with nonstandard layouts:
https://developer.mozilla.org/en-US/docs/Web/API/Element/keydown_event#keyboardevent.code

This also fixes ScriptEditorRoot.tsx, where some code snuck in that
wasn't using *any* of the constants.

This reverts commit 016a9a873fba71388bdbaa1423134fd1f2335a15.
2022-11-26 08:51:09 -05:00
Burhanuddin Mustafa Lakdawala
f70a25d755
Fix spacing on 'Trade for reputation` button (#222) 2022-11-25 08:00:26 -05:00
Snarling
e17380549d
Add ctrl-a support for logs (#228)
And prevent double line returns when copying logs
2022-11-24 13:04:06 -05:00
TheMas3212
533d8a4332 GANG: Fix Gang UI to correctly report the bonus time multiplier as 25x
Add Tooltop to Corporation UI to explain bonus time (matching the one in
Gang UI)
Move corporation.process to the correct location
2022-11-25 00:45:30 +11:00
Snarling
e7fc0fbb03
Fix documentation for ns.sleeve (#227) 2022-11-24 08:19:51 -05:00
Snarling
6616f7ba15
DOCS: Update documentation for ns.args (#220) 2022-11-21 12:19:16 -05:00
Snarling
79fd5f6089
Fix ansi background spacing (#219) 2022-11-21 11:08:36 -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
c929806307
fix broken party math again 2022-11-20 07:56:58 -05:00
omuretsu
673c2d9f82 Fix broken partyMult default 2022-11-19 22:42:34 -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
Snarling
82ba5f1f13
Ignore monaco cancellation errors (#208)
Also updated monaco-editor and @monaco-editor/react to latest versions since there were no conflicts.
2022-11-10 10:08:59 -05:00
Matt Garretson
3ec4f0c98c
Fix HP gaining logic from defense skill levels (#205) 2022-11-09 22:06:27 -05:00
Snarling
b275f88053
NETSCRIPT: Expose more enums for player use (#198)
* Add support for enums at other ns layers
* APIWrapper: simplified wrapping algorithm and modified to just use cloneDeep to copy enums instead of recursively wrapping enums as if they were new API layers
* Improve APIWrapper typing
* Changed some typings at RamCostGenerator to allow for enums at different levels without enums needing a ram cost
* Added enums to ns.corporation, removed getter functions that were being used instead.
* Add FactionWorkType for player use
* Add ClassType and CompanyWorkPos enums
* Change netscriptDefinitions to expect members of these new enums where appropriate.
2022-11-09 13:46:21 -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
6f08aee8f6
Fix zombie scripts (#203)
Also made installAugmentations synchronously perform reset, but added a short timeout to the callback script launch for balance.
2022-11-08 12:17:34 -05:00
Snarling
01b131526a
Rework coffee/party (#201)
* Removed unused partyEmployees and coffeeEmployees members of OfficeSpace
* Reworked formula for performance loss per market cycle.
* Rework both coffee and party formulas to allow easier recovery from low values.
2022-11-07 09:09:53 -05:00
quacksouls
8367b68f46
CORPORATION: typo fixes in modals to sell materials and products (#197) 2022-11-06 21:36:38 -05:00
Rai
c17af3ad35
UI: SoftResetButton.tsx Tooltip changed to make more sense (#186) 2022-11-06 17:30:01 -05:00
quacksouls
83730d89fd
UI: use newline to separate sentences in popup message (#188) 2022-11-06 17:27:40 -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
Snarling
5205ff2837
Remove unused error blocks (#194) 2022-11-04 08:08:06 -04:00
Snarling
7ef2675e2c
Make writePort synchronous (#193) 2022-11-04 07:56:20 -04:00
quacksouls
55b2cbb549
UI: cat: proper line breaks when showing .js, .script, or .txt files (#192)
Currently, the HTML line break sequence `<br /><br />` is hardcoded into the dialog box message when showing the content of these file types: ".js", ".script", and ".txt".  By default, the function `dialogBoxCreate()` currently assumes that its first parameter is not HTML, but a text string, so whatever is in the string will appear in the dialog box.  Use the newline character instead for line break.
2022-11-04 07:23:33 -04:00
omuretsu
6ac04717fe Add missing line breaks on showMessage 2022-11-03 11:31:25 -04: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
LJ
9eb5f7ef23
NETSCRIPT: added portHandle.nextWrite() (#187) 2022-11-03 06:17:29 -04:00
Snarling
3ce4dcf612
DOC: Update documentation for workForFaction and workForCompany (#180)
* DOC: `ns.singularity.workForFaction()`: update doc and examples
* Additional Doc Fixes
* Remove unnecessary fluff in singularity.workForFaction examples
* Fix documentation for singularity.workForCompany similar to fixes already applied to workForFaction
* Correct some inaccuracies in workForFaction and workForCompany remarks sections
* Shorten some comment lines that are over 120 characters in NetscriptDefinitions.d.ts, for consistency.

Co-authored-by: Duck McSouls <quacksouls@gmail.com>
2022-11-01 12:24:25 -04:00
quacksouls
634611f9db
DOC: Improve CCT documentation for HammingCodes (#167) 2022-10-30 04:24:09 -04:00
LJ
0519b6adf7
De-uglify ns.print examples (#164) 2022-10-28 17:20:01 -04:00
omuretsu
4bf215f241 Fix documentation build error 2022-10-27 07:04:46 -04:00
jaculler
a40aa1bab2
Fix Tutorial Ram Text (#162)
This updates the tutorial (and tests) to match the updated value of 8GB starting ram.
2022-10-27 06:25:45 -04:00
Snarling
239834dba6
Connect to owned servers from anywhere (#159)
* purchasedByPlayer allows connect-from-anywhere as if the server was backdoored.
* Also added optional backdoorInstalled variable to type for BaseServer. This has no runtime effect, but it allows accessing that variable without TS needing us to verify whether it's instanceof Server first.
2022-10-25 17:48:46 -04:00
omuretsu
8837c01d21 Tolerate & recover from null player money 2022-10-25 14:56:47 -04:00
omuretsu
d0820c81ce Recover from null moneyTracker
There shouldn't be any way to get null, but it was reported to occur and this will recover when this happens.
2022-10-25 14:37:25 -04:00
Snarling
959307aa13
CORP: Better fix for MP validation (#158)
* Prevent negative profit selling
* Update validation strings for MP
* Allow negative MP formula price
2022-10-25 12:51:03 -04:00
Snarling
5b2a96fa0c
CORPORATION: Happiness/Energy/Morale trend down even for productive corps (#157) 2022-10-25 10:32:20 -04:00
Snarling
a79621612f
Only allow one reference to MP in sell price (#156) 2022-10-25 08:51:37 -04:00
quacksouls
3f0a7786f8
DOC: cleanup in doc of Netscript functions (#155)
* A bunch of typographical fixes in the documentation of various Netscript functions.  A main fix is standardizing the use of "hostname".
* Cross-reference the documentation of various Netscript functions.  This makes it clear that we are referring to a particular Netscript function.
* Clarify the return values of various Netscript functions.  Clarify the documentation of other functions.
2022-10-25 07:17:53 -04:00
Snarling
5fe89d5599
CORPORATION: Reorganize Industry data (#154) 2022-10-24 21:54:54 -04:00
Snarling
d7193ca8ff
fix negative time display (#153) 2022-10-24 20:09:10 -04:00
Snarling
df70458e4f
CORPORATION: Give Employees some RNG (#152)
Authored-by: zerbosh <115591472+zerbosh@users.noreply.github.com>
2022-10-24 16:33:25 -04:00
G4mingJon4s
6dc5990b63
CORPORATION: Added check to buy amount (#149) 2022-10-24 16:09:53 -04:00
G4mingJon4s
3861e56ced
CORPORATION: Check there is room to make a new product before opening popup. (#147) 2022-10-24 08:58:51 -04:00
quacksouls
e9e9ac1def
DOC: CCT: typo fixes (#145)
Fixes #144.  Some typographical fixes in the description of a Coding Contract.
2022-10-24 08:46:26 -04:00
Snarling
0a3ff56331
WIP: Remove corp employees as objects (#143)
* Removed employees as objects from corporations
* Remove employees from office JSON after loading / convert to new parameters
* Showed down morale/etc gain; added optional position to hireEmployee
* enum support for corp employee positions

Mostly authored-by: Kelenius <kelenius@ya.ru>
2022-10-24 08:44:01 -04:00
hydroflame
317c3c3fc4
Update NetscriptDefinitions.d.ts 2022-10-22 00:27:29 -04:00
hydroflame
7784c2f8b2
Update NetscriptDefinitions.d.ts 2022-10-22 00:23:10 -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
Snarling
19e8946d9a
fix Stock Initializer (#137)
* stock symbols initializer is called by stockmarket initializer
* remove redundant second initStockMarketFn function
2022-10-20 00:38:19 -04:00
Snarling
1d0d4f8da6
fix grow doc (#136) 2022-10-19 17:25:54 -04:00
Snarling
3af6e7db45
Remove incorrect note about disableLog (#135) 2022-10-19 17:20:31 -04:00
Snarling
2cc6e41a7e
uncaught promises no longer spam console (#134) 2022-10-19 17:13:15 -04:00
Snarling
124e64379a
Improve unexpected error message (#133)
* Add ws details if available
* Add likely cause of error
* Attempt to display error
2022-10-19 16:32:39 -04:00
Snarling
b6efe46d4c
slashGame fix (#132)
* difficulty scales correct phase
* player loses game immediately after guard attacks
2022-10-19 15:24:29 -04:00
Olivier Gagnon
af1a1ac58d Rename lots of reference from old to new repo 2022-10-20 03:56:59 +11:00
hydroflame
0f46d72a01
Merge pull request #4245 from dbachran/4239-adjust-write-documentation
MISC: Adjust write() documentation, only accepts strings now
2022-10-19 11:46:08 -04:00
hydroflame
51f8d29e7a
Merge pull request #4247 from quacksouls/doc-prompt
DOC: `ns.prompt()`: some cleanup and examples
2022-10-19 11:45:49 -04:00
hydroflame
532b32c51a
Merge pull request #4248 from borisflagell/hospital
UI: #4242 Fix hospital ReactComponent
2022-10-19 11:45:20 -04:00
hydroflame
1b7b4fa466
Merge pull request #4249 from Snarling/typeAssertion
NETSCRIPT: Fix ns.prompt typechecking
2022-10-19 11:44:59 -04:00
hydroflame
b25b4b5e27
Merge pull request #4255 from quacksouls/doc-gang-canRecruitMember
DOC: `gang.canRecruitMember()`: typo fix and elaboration
2022-10-19 11:44:03 -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
Duck McSouls
6f1822bf4d DOC: gang.canRecruitMember(): when this returns true or false
Elaborate on the conditions under which the function would return true or false.  In particular, after a gang is successfully created the function always return true so the player can recruit a number of founding members to their gang.  When the gang is at capacity, the function always return false.  In between, the function returns true or false depending on the amount of respect the player has.
2022-10-16 18:34:34 +11:00
Duck McSouls
ac0e7c9595 DOC: gang.canRecruitMember(): typo fixes
Some typographical fixes.
2022-10-16 17:56:45 +11:00
Duck McSouls
93090691b5 DOC: ns.prompt(): some examples
Add some examples to illustrate the use of the various options.  As per suggestion by @Snarling, simplify the examples on free-form text box and drop-down list.
2022-10-15 11:27:56 +11:00
Duck McSouls
473e6a2674 DOC: ns.prompt(): explain the various options
Elaborate on the effects of `options.type` and `options.choices`.  Break the explanation into bullet points for clearer presentation.  Thanks to @Snarling for pointing out that the default is to create a boolean dialog box.
2022-10-15 11:03:36 +11:00
omuretsu
9908f4aaa5 Error message fixes 2022-10-14 11:08:24 -04:00
omuretsu
7683990d17 format and lint 2022-10-14 11:03:50 -04:00
omuretsu
ad0be471ce fix ns.prompt typechecking
Introduced some new type assertion functions, initial step in larger type safety rework.
2022-10-14 11:00:29 -04:00
borisflagell
baa149fa80 Update HospitalLocation.tsx
Add auto-refreshing to the component
2022-10-14 14:13:53 +03:00
borisflagell
1b61ec0e12 Update HospitalLocation.tsx 2022-10-14 13:59:56 +03:00
Duck McSouls
a368c6904e DOC: ns.prompt(): a typo fix
A simple typographical fix.
2022-10-14 14:50:35 +11:00
Daniel Bachran
5acd5e84a3 #4239 Adjust write() documentation
write() only accepts strings now.
2022-10-13 17:45:40 +02:00
Olivier Gagnon
6c84d64e67 rm unecessary return type 2022-10-13 01:07:10 -04:00
Olivier Gagnon
4c4f050214 simplify get money source 2022-10-13 00:55:57 -04:00
Olivier Gagnon
8ff840edfa getBitnodeM takes 2 arg 2022-10-13 00:51:53 -04:00
Olivier Gagnon
ae5fc168bf Add getMoneySources 2022-10-13 00:10:59 -04:00
hydroflame
d0fe28f8fb
Merge pull request #4220 from cptpiepmatz/fix-nano-not-opening-root-script-if-in-dir
UI: Fixed `nano` not correctly opening a script in root of a server if `cd`'d into a directory
2022-10-12 23:58:59 -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
hydroflame
93769c7089
Merge pull request #4224 from quacksouls/doc-scan
DOC: `ns.scan()`: typo fixes and add 2 examples
2022-10-12 23:52:34 -04:00
hydroflame
aa39728f67
Merge pull request #4230 from borisflagell/SoA_RepCost
SOA: Fix #3884 Implement unused SoARepMult constant to SoA's augmentations price + linked UI modification
2022-10-12 23:52:14 -04:00
hydroflame
50bc41bf5b
Merge pull request #4231 from borisflagell/TypoRepReq#3811
API: Fix #3811 Update NetscriptDefinitions.d.ts
2022-10-12 23:51:39 -04:00
hydroflame
c1ab4e82f2
Merge pull request #4232 from borisflagell/UI_reputation_color
UI: Fix #3719 Inconsistent colors of reputation gains on Install Augmentations screen
2022-10-12 23:51:23 -04:00
hydroflame
74a1b9b180
Merge pull request #4234 from Jakob002/Jakob002-patch-1
MISC: Fixed typo in Literatures.ts
2022-10-12 23:51:10 -04:00
hydroflame
68e90b8e6e
Merge pull request #4236 from Snarling/typeFix
NETSCRIPT: Fix internal typechecking of functions
2022-10-12 23:50:22 -04:00
omuretsu
e192ad53ec Actually format + lint 2022-10-12 10:18:56 -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