* UI: Add disambiguation to the confusing "1s / ls" tutorial step, and a general "did you mean" to the terminal
* UI: Add disambiguation to the confusing "1s / ls" tutorial step, and a general "did you mean" to the terminal
* Prevent duplicate suggestions
* Update src/Terminal/Terminal.ts
Co-authored-by: David Walker <d0sboots@gmail.com>
* Prevent duplicate suggestions
---------
Co-authored-by: David Walker <d0sboots@gmail.com>
so far we calculate the effect of weaken in three +1 places
ns.weaken
ns.weakenAnalyze
terminal weaken
and server.weaken where the bn mult is applied
i extracted the logic into a new netscript helper function getWeakenEffect
this gives us one place if we want to change the formula
a side effect i added the server.cpuCores to the terminal weaken to future proof it if the npc server core pr (#963) is merged
* 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).
Copy the terminal commands into the player object so that they are saved
between game reloads.
Adds a 'history' command to display history, and a 'history -c' command
to clear it from both the current terminal & the player's save.
It may be intentional to use hack for all 3 (ie, assume the player makes the connection that can't hack, also means can't grow or weaken), in which case, disregard.
On the other hand, it could've easily been a copy/paste artifact, and this would be more explicitly clear, so thought it was worth bringing up.
Adds the current server object to the finishAction handler so that if
the player changes during the progress he'll hit the original server
with the command.