Commit Graph

8326 Commits

Author SHA1 Message Date
David Walker
4502fd443e
BUGFIX: Don't spin forever if IDB can't be loaded (#1500)
Our IndexDB handling did not have very good error handling. It wasn't
reporting the actual errors that occured, nor was it using actual Error
objects. In some cases it also had overly convoluted Promise use, and it
didn't need to be .tsx either.

The biggest issue was that if any problem occured during the main
load(), this would end up as an unhandled rejection and so it would only
be logged to the console. This extends the previous catch to also cover
this, so that the recovery screen is activated.
2024-07-19 19:27:04 -07:00
ngcthao
b73816f9db
DOC: Update README.md (#1503) 2024-07-19 17:41:59 -07:00
Tom Prince
d1f190c894
BUGFIX: Fix mathjax path on dev server. (#1501) 2024-07-19 17:13:42 -07:00
Tom Prince
dc93d166f0
BUGFIX: Use mathjax from npm, rather than vendored copy. (#1491) 2024-07-18 16:27:01 -07:00
catloversg
ceaf27714b
MISC: Remove testing code in ScriptTransformer (#1499) 2024-07-17 23:23:18 -07:00
Tom Prince
ea83138722
MISC: Add a type annotation to webpack configuration function. (#1497) 2024-07-17 16:08:32 -07:00
catloversg
cea0afe1f4
EDITOR: Follow-up of #1470 (Editor outline) (#1498) 2024-07-17 15:18:10 -07:00
David Walker
abe7a43eec
MISC: Always include stack trace in Recovery Mode (#1487)
We are getting some more error reports coming in that don't have enough
info in them. It turns out that populating the stack trace was gated
behind the dev flag; in reality, production builds are where we need it
most. Even if it ends up being obfuscated (source maps should prevent
this), we can figure out the actual source lines with enough effort if
need be.

This also changes to using the actual stack trace, rather than the
"component" trace (the tree of JSX objects), since knowing where the
code failed is far more valuable. Also, it ensures we get the full error
details when things go wrong in savefile loading.
2024-07-14 22:51:18 -07:00
catloversg
864613c616
MISC: Support JSX, TS, TSX script files (#1216) 2024-07-14 14:47:10 -07:00
catloversg
783120c886
FEATURE: BitNode options (#1411) 2024-07-14 14:30:30 -07:00
catloversg
0e1e8a9862
MISC: Disable rumor of Bladeburners in BN8 (#1484) 2024-07-14 14:20:10 -07:00
catloversg
8d39c7d9fc
UI: Only show relevant changes in "Purchased Augmentations" table (#1476) 2024-07-08 11:07:19 -07:00
David Walker
06553d9700
BUGFIX: Fix "Router called before initialization" race (#1474)
If the game takes long enough to load, certain counters can become
eligible to run as soon as Engine.start() runs. When this happens,
eventually Router.page() is called, which throws an Error since Router
isn't initialized yet. (Dropping a breakpoint before Engine.start() and
waiting at least 30 seconds is enough to reliably repro, but I have seen
this both live and in tests.)

This fixes it so that Router.page() is valid immediately, returning a
value of Page.LoadingScreen. It also removes the isInitialized field,
since this is now redundant. Trying to switch pages is still an error,
but that doesn't happen without user input, whereas checking the current
page is quite common.

This also consolidates a check for "should we show toasts" behind a
function in Router, making the logic central and equal for a few
usecases. This means (for instance) that the "autosave is disabled"
logic won't run during infiltration. (The toast should have already been
suppressed.)
2024-07-07 22:13:37 -07:00
catloversg
2b6ec5cd33
BLADEBURNER: Fix wrong behavior of ns.bladeburner.getSkillUpgradeCost (#1471) 2024-07-07 14:49:23 -07:00
jazzybones-www
1613eb38ed
BUGFIX: fix a typo in the hamming code problem statement (#1472) 2024-07-07 14:41:22 -07:00
catloversg
8f0ea7c8c4
EDITOR: Work around bug in monaco-editor (#1470) 2024-07-07 14:38:22 -07:00
catloversg
b7a996718b
UI: Tweak Hacknet summary (#1466) 2024-07-07 14:33:49 -07:00
Tom Prince
c4adbfc0ad
EDITOR: Update monaco-editor to 0.50.0. (#1468) 2024-07-07 00:11:30 -07:00
Tom Prince
b277975656
EDITOR: Provide type definitions for React and ReactDOM in in-game editor. (#1458)
* Fix the type declaration of `!!raw-loader!` modules.

Instead of declaring them to export an object with a single key
`default` which is a string, the modules have a default export, which
is a string.

Note, that this doesn't actually change the generated code, just the
types that typescript sees. The code worked before because the only
thing done to the values was to coerce the values to a string, which
turned into a no-op.

* Switch from using `raw-loader` to using a source asset module.

`raw-loader` was deprecated in webpack v5.
2024-07-07 00:08:33 -07:00
catloversg
055b4bd7bc
MISC: Add threshold for warning about system clock (#1463) 2024-07-06 22:24:51 -07:00
catloversg
f18d28fc6e
DOCUMENTATION: Add link to NS API documentation (#1460) 2024-07-06 12:54:56 -07:00
catloversg
8ade4801a9
MISC: Remove redundant type of CONSTANTS (#1464) 2024-07-06 12:52:20 -07:00
David Walker
1f2e69631e
EDITOR: Use ramOverride() to set compiled script RAM (#1446)
To use this, add a line like "ns.ramOverride(2);" as the first statement
in main(). Not only will it take effect at runtime, but it will now
*also* be parsed at compile time, changing the script's static RAM
limit. Since ns.ramOverride is a 0-cost function, the call to it on
startup then becomes a no-op.

This is an often-requested feature, and allows for scripts to set their
usage without it needing to be explicitly mentioned via args or options
when being launched. This also reduces pressure on the static RAM
analysis to be perfect all the time. (But certain limits, such as
"functions names must be unique across namespaces," remain.)

This also adds a tooltip to the RAM calculation, to make this slightly
discoverable.
2024-07-05 17:32:46 -07:00
catloversg
29c54df543
BLADEBURNER: Change formula of skill cost (#1443) 2024-07-05 14:27:28 -07:00
catloversg
02f5c5b727
MISC: Update description of source files (#1461) 2024-07-05 14:17:06 -07:00
Tom Prince
6fb6d38bd9
MISC: Update caniuse-lite to latest version. (#1459)
browserslist complains if caniuse-lite is more than 6 months old. This
updates to the latest version.

Note that there were no changes in supported versions based on this
update.
2024-07-05 14:02:33 -07:00
catloversg
26316c2494
BUGFIX: Fix wrong money source when traveling (#1456) 2024-07-04 14:19:36 -07:00
catloversg
313d6a28b6
MISC: Remove obsolete description of killall (#1453) 2024-07-04 00:03:18 -07:00
Snarling
8ee703760a Start 2.6.3 dev cycle 2024-07-03 19:39:21 -04:00
Snarling
633da38301
RELEASE: 2.6.2 (#1454) v2.6.2 2024-07-03 19:14:45 -04:00
catloversg
3c29757827
CORPORATION: Fix wrong product price calculation (#1451) 2024-07-02 15:11:32 -07:00
catloversg
960fe5aa8b
BUGFIX: Wrong success chance in ns.bladeburner.getActionEstimatedSuccessChance (#1450) 2024-07-02 15:07:56 -07:00
catloversg
922f0bfcc5
BITVERSE: Fix React warning (#1449) 2024-07-01 13:17:30 -07:00
catloversg
e66a8e319f
MISC: Remove debug code (#1448) 2024-07-01 13:16:47 -07:00
catloversg
3fafa23f28
GANG: Fix ns.gang.getRecruitsAvailable (#1442) 2024-06-28 20:18:29 -07:00
catloversg
b1c1fc24a9
GRAFTING: Add new api for checking ongoing grafting (#1435) 2024-06-28 19:59:18 -07:00
Tom Prince
32eb6324fd
MISC: Simplify graftingIntBonus calculation. (#1445)
The weight of the intelligence bonus is a multiplier to the percentage increase. So, rather than calculate it with a weight of 3 and then divide by 3, we can just calculate it with a weight of 1.
2024-06-28 19:52:36 -07:00
Sphyxis
61ec7dde80
API: Get Sleeve Success at BB tasks through existing commands (#1428) 2024-06-28 19:49:52 -07:00
David Walker
9c9a69f2e2
NETSCRIPT: Add ramOverride() function (#1346)
This adds a way to dynamically change the static RAM limit of a script,
which is also its current RAM usage. This makes it possible for scripts
to dynamically change their memory footprint, opening up new strategies
beyond current ram-dodging.

Calling functions still permanently increases the *dynamic* memory
limit; RAM-dodging is still the optimal strategy for avoiding RAM costs,
in that sense.

This also adds dynamicRamUsage to the info returned by
`getRunningScript`, to allow introspection on the currently needed ram.
2024-06-28 18:42:20 -07:00
David Walker
1c20a24079
MISC: Make spawn able to have 0 delay (#1333)
This eliminates a hole where spawn was unrelaible, because other scripts
could jump in and steal the RAM. It's not an API break, because 0 used
to be an invalid value.
2024-06-28 18:41:41 -07:00
David Walker
06d742a7f3
BUGFIX: Fix rounding issues due to ramOverride edge cases (#1339)
*All* RAM calculations must take place in units of hundredths-of-a-GB in
order for there not to be issues.

Also adds slightly more verbose logging when the dynamic RAM check
fails.
2024-06-28 17:58:17 -07:00
muesli4brekkies
357cc568e9
TERMINAL: Tweaks and bugfixes to grep (#1431) 2024-06-28 15:13:49 -07:00
catloversg
21e984bda6
DOCUMENTATION: Clarify logging API (#1444) 2024-06-28 02:37:04 -07:00
catloversg
f620ec889c
MISC: Update BitNode info and documentation (#1436) 2024-06-28 02:11:50 -07:00
catloversg
f162faf60a
INFILTRATION: Improve accuracy of slash game UI (#1422) 2024-06-28 02:09:18 -07:00
catloversg
031b8b9cbb
UI: Remember last position of documentation pages (#1434) 2024-06-28 02:08:10 -07:00
Snarling
64933419d6 Changelog update 2024-06-27 12:37:03 -04: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
abdf5f52cd
INFILTRATION: Handle automated infiltration (#1414) 2024-06-26 11:19:52 -04:00
Snarling
dc057d05fc minor package-lock update
Fixes an audit issue on a dev dependency
2024-06-25 19:30:30 -04:00