Commit Graph

40 Commits

Author SHA1 Message Date
Nicole 7029ac9bcc UI: Add apostrophe to stanek's gift strings (#1568) 2024-08-11 16:38:40 -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
G4mingJon4s bec6e82d7f EDITOR: changed editor tabs to have their own editor mode (#1372) 2024-06-12 19:19:40 -07:00
catloversg 8553bcb8fc MISC: Support compression of save data (#1162)
* Use Compression Streams API instead of jszip or other libraries.
* Remove usage of base64 in the new binary format.
* Do not convert binary data to string and back. The type of save data is SaveData, it's either string (old base64 format) or Uint8Array (new binary format).
* Proper support for interacting with electron-related code. Electron-related code assumes that save data is in the base64 format.
* Proper support for other tools (DevMenu, pretty-save.js). Full support for DevMenu will be added in a follow-up PR. Check the comments in src\DevMenu\ui\SaveFileDev.tsx for details.
2024-03-27 21:08:09 -07:00
LJ dc7c9bb065 BUGFIX: Attach hostname to script links in ls command (#1062)
fixes #1051

* Add hostname to script editor page options
* Add hostname option to script editor page
* Attach hostname to script links in ls
* Fix script editor page option type
2024-02-15 05:39:50 -08:00
LJ a433c8284c NETSCRIPT: Add .script deprecation notice & migration guide (#1007) 2024-01-07 08:15:24 -05:00
Michael Ficocelli 7ef12a0323 BITNODE: IPvGO territory control strategy game (#934) 2023-12-26 11:45:27 -05:00
hydroflame 1a8b9a96ec Documentation added ingame (#667) 2023-07-12 17:10:52 -04:00
Aleksei Bezrodnov 1af01401d9 UI: Correct behavior of "back" button on faction augs page
Plus router refactoring
2023-06-26 04:24:37 -04:00
Snarling 6732549196 ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling e0272ad4af FILES: Path rework & typesafety (#479)
* Added new types for various file paths, all in the Paths folder.
* TypeSafety and other helper functions related to these types
* Added basic globbing support with * and ?. Currently only implemented for Script/Text, on nano and download terminal commands
* Enforcing the new types throughout the codebase, plus whatever rewrites happened along the way
* Server.textFiles is now a map
* TextFile no longer uses a fn property, now it is filename
* Added a shared ContentFile interface for shared functionality between TextFile and Script.
* related to ContentFile change above, the player is now allowed to move a text file to a script file and vice versa.
* File paths no longer conditionally start with slashes, and all directory names other than root have ending slashes. The player is still able to provide paths starting with / but this now indicates that the player is specifying an absolute path instead of one relative to root.
* Singularized the MessageFilename and LiteratureName enums
* Because they now only accept correct types, server.writeToXFile functions now always succeed (the only reasons they could fail before were invalid filepath).
* Fix several issues with tab completion, which included pretty much a complete rewrite
* Changed the autocomplete display options so there's less chance it clips outside the display area.
* Turned CompletedProgramName into an enum.
* Got rid of programsMetadata, and programs and DarkWebItems are now initialized immediately instead of relying on initializers called from the engine.
* For any executable (program, cct, or script file) pathing can be used directly to execute without using the run command (previously the command had to start with ./ and it wasn't actually using pathing).
2023-04-24 10:26:57 -04:00
David Walker 8d793ea271 Internal refactoring of Router (#241) 2022-12-04 03:14:06 -05: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
Olivier Gagnon bb8af88b77 prep v2 2022-07-19 14:21:12 -04:00
nickofolas 919f8480dd Grafting UI framework 2022-03-18 23:22:21 -05:00
hydroflame 1ed27bb88a Merge pull request #3104 from MartinFournier/fix/bladeburner-early-routing
Attempt to fix `bladeburner.process()` early routing issue
2022-03-10 22:10:06 -05:00
nickofolas e39817cb57 Very slightly adjust router.toFaction
- Faction argument is now required
- Added augPage argument
2022-03-10 18:37:57 -06:00
Martin Fournier 6588bbb8b1 Attempt to fix bladeburner.process() issue
For a certain user, it appears that the engine attempts to route to the
bitverse screen before the router is properly initialized. I could not
reproduce the problem on my side and we were not able to extract his
save game, so this is a blind shot if it'll work or not.
2022-03-09 15:44:19 -05:00
Martin Fournier a47eae8b25 Add function to enable/disable routing
Wraps the toX() functions of the Router to add a check to only run the
function when it is allowed.

The check is used in the import page to prevent user scripts from
redirecting away to a crime or something else.
2022-01-26 03:56:19 -05:00
Martin Fournier 26432082e2 Add an import save comparison page
This adds a new page reachable from the import save file
options menu. It shows the difference between the current save
and the data that is being imported, for confirmation.

Includes an "automatic" variant, which has different wording for when
Electron decides it has access to a newer version of the game.

While in this screen, the autosave is disabled.

This also adds a new BypassWrapper component around the game's tree.
It allows for content to be displayed without rendering the nested
pages (import, recovery). This prevents player scripts from messing
with the screen.
2022-01-26 03:56:17 -05:00
Martin Fournier a26b9c8dcf Add theme browser page accessible from game options
Removed the themes buttons that were in the ThemeEditorModal and only
left a "Revert to Default" button along with a link to the ThemeBrowser
page.

Split off the buttons into reusable components since they are now used
in two pages.

Display the themes in big cards with a zoomable screenshot. Applying the
theme now shows a toast with an option to undo the action.

The snackbar now allows ReactNode instead of only strings.

- Add link with details on how to create a new theme in the game.
- Add link to the theme-sharing discord channel.
- Add icons to the theme & style buttons in GameOptions
- Add "Theme Editor" button to ThemeBrowser
- Add "Style Editor" button to ThemeBrowser
- Move Styles related files into Themes folder
- Includes a modal that shows a bigger version of the screenshot.
- Change Snackbar to allow for ReactNode as the message
2022-01-20 18:41:49 -05:00
Martin Fournier 0a2187bdf5 Revert "Add toPreviousPage in router"
This reverts commit b0bc3236fd.
2022-01-12 18:49:53 -05:00
Martin Fournier b0bc3236fd Add toPreviousPage in router
- Allows the WorkInProgress cancel & unfocus to go back to the previous
page instead of a default one.
- Change layout of overview buttons
- Add a back button in the overview, only visible in pages with a
sidebar
- Clear the history on augmentation install & on prestige
2022-01-11 09:38:52 -05:00
Martin Fournier 844d518684 Add achievements to base game
- Add a script to generate achievement data from Steamworks API
- Add achievements page with a link in sidebar
- Calculate achievements (1/min) with an engine counter
- Store achievements with a timestamp on unlocked in the PlayerObject
- Add a script to generate monochrome icons from Steam icons
- Add toast when unlocking an achievement
2022-01-08 05:45:32 -05:00
Billy Vong bb2f8e883c feat: Support opening multiple files from command line 2021-12-20 16:55:17 -05:00
Billy Vong d30edc7f59 feat: Add vim terminal command 2021-12-20 16:20:50 -05:00
Olivier Gagnon 56ddcd9a45 more work on bn13 2021-11-13 22:44:17 -05:00
Olivier Gagnon 048ef0e69e Added recovery mode 2021-11-02 17:28:19 -04:00
Olivier Gagnon f4ecbd9b48 merge dev 2021-10-08 00:26:35 -04:00
Olivier Gagnon 3ca7c49ce8 Fixed Script Editor last filename not keeping proper track 2021-10-08 00:21:30 -04:00
Olivier Gagnon 7304e5379f sg 2021-10-03 20:34:36 -04:00
Olivier Gagnon 9cbb525da3 remove hacking missions 2021-10-01 15:26:12 -04:00
Olivier Gagnon 793d9b34ce update BN13 for new UI 2021-09-25 17:21:50 -04:00
Olivier Gagnon 3554da5a53 load a top level react node and everything else under it. 2021-09-19 18:22:52 -04:00
Olivier Gagnon 9bc20526ff get loading screen inside GameRoot 2021-09-19 18:04:12 -04:00
Olivier Gagnon 7a2dd16092 Hacking missions inside GameRoot 2021-09-19 17:05:27 -04:00
Olivier Gagnon e087420519 build dev 2021-09-18 12:13:20 -04:00
Olivier Gagnon e1a22016b5 build dev 2021-09-18 04:01:07 -04:00
Olivier Gagnon 45f2f85a30 big work 2021-09-17 19:43:08 -04:00
Olivier Gagnon acd51e8328 work 2021-09-17 02:04:44 -04:00