Commit Graph

407 Commits

Author SHA1 Message Date
Snarling
4f4c6fe7e5
Move heart.break out of Extra.ts (#1133) 2024-03-04 18:36:14 -05:00
LJ
a5f5c81912
API: Add karma to ns.getPlayer() & document ns.heart.break() (#1131) 2024-03-04 09:35:54 -05:00
Snarling
373ced2efe
GO: Various changes before 2.6.0 (#1120) 2024-02-26 08:05:10 -05:00
LJ
1577467fe1
BUGFIX: Prevent renaming servers to hacknet. (#1112)
* Add hacknet check to renaming
* Handle manual server purchases
* Handle automated server purchases
* Remove unnecessary parenthesis

fixes #1111
2024-02-20 18:22:24 -08:00
LJ
27a8abbdec
PORTS: Support all serializable data. (#1089)
A significant portion of players who use ports are passing objects through them. Currently they are required to handle that themselves via JSON serialization. This PR adds better support for passing objects; which is more convenient, extensive, and optimized (probably, more on this one later).

This adds zero overhead to existing (or when passing any primitive types) port usage, and also isn't a breaking change. The questions to debate here are:

Should objects be supported in the first place?
If so, how exactly do we want to serialize objects?
Based on an extensive discussion in Discord, the overwhelming majority answered "yes" to question one. As for question two, that has been much more hotly contested.

Ultimately, `structuredClone` was used, despite less-than-stellar performance, because other options were worse either in safety, speed, error-handling, or multiple of the above.
2024-02-17 19:15:17 -08:00
Caldwell
8c8af38a3a
MISC: refactor weaken effect calculation (#1076)
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
2024-02-16 17:18:16 -08:00
Caldwell
4d551915b3
MISC: move server constants into their own constant (#1075) 2024-02-10 04:13:42 -05:00
LJ
fd5b0f8241
MISC: Use structuredClone() for deep cloning (#1077) 2024-02-10 04:10:19 -05:00
LJ
157ff8ea88
PORTS: Add ns.nextPortWrite() as a safer option (#1036) 2024-01-15 06:10:39 -05:00
Shockwave
7017f3c2f8
API: Fix serverExists() return true for not revealed servers (#1013) 2024-01-07 11:40:07 -05:00
Michael Ficocelli
7ef12a0323
BITNODE: IPvGO territory control strategy game (#934) 2023-12-26 11:45:27 -05:00
David Walker
61ffed9b3a
BUGFIX: Fix additionalMsec overflow issue (#941) 2023-12-07 20:34:49 -05:00
TheAimMan
89fc22f28f
IMPROVEMENT: Apply core bonus for share and stanek (#913) 2023-12-07 20:10:21 -05:00
Caldwell
e992cb966a
CORPORATION: adding prevState and changed state display in the warehouse UI (#861) 2023-10-23 04:48:06 -04:00
alutman
1a052a7daf
API: Change singularity.applyToCompany() to use an enum for job field (#859) 2023-10-17 05:33:16 -04:00
muesli4brekkies
c5e2f65cb0
API: Added spawnDelay parameter to ns.spawn options, allowing user defined delay (#807) 2023-09-27 01:31:47 -04:00
Jesse Clark
b9d13063ac
Format time in ns.sleep and ns.asleep (#806) 2023-09-17 15:40:25 -04:00
Michael Ficocelli
9a0d688909
NETSCRIPT: Add more helpful error messages to getPurchasedServerCost (#757) 2023-08-28 15:03:16 -04:00
Zelow79
b7ad3395ae
API: Added CompanyName to NetscriptDefinitions (#731) 2023-08-16 17:31:41 -04:00
Snarling
4ca598defb
API: Fix removed functions (#720) 2023-08-07 02:38:38 -04:00
myCatsName
2e84512881
update helper message for killall (#709) 2023-08-05 20:26:37 -04:00
omuretsu
75579a2ff1 Add owned aug and SF info to getResetInfo 2023-08-01 01:40:30 -04:00
Snarling
006fbd528f
DOCS: Add printRaw and tprintRaw docs (#663) 2023-07-07 18:23:26 -04:00
Snarling
a4b826683e
TYPESAFETY: Strict internal typing for AugmentationName (#608) 2023-06-16 17:52:42 -04:00
Snarling
6732549196
ENUMS: Initial Enum Helper rework + Reorganization (#596) 2023-06-12 00:34:20 -04:00
Snarling
40b89baca1
MISC: Various small fixes (#574)
* ns.ls filter can include leading slash in filename
* scp from terminal accepts multiple filenames
* terminal displays root / instead of ~ as base
* cd with no args returns to root
2023-06-06 08:46:07 -04:00
omuretsu
72a631d4ed Another lint fix 2023-05-27 08:46:28 -04:00
omuretsu
8bf13b6fd3 fileExists no longer case sensitive for programs 2023-05-27 08:39:29 -04:00
David Walker
4503da6226
UI: LogBox overhaul (#508) 2023-05-26 08:07:37 -04:00
G4mingJon4s
113af6e711
Add ns.getFunctionRamCost (#526) 2023-05-26 07:46:08 -04:00
omuretsu
396e71955e Fix scp logs
Hostname was not being displayed correctly
2023-05-26 04:04:17 -04:00
omuretsu
f4655b8e1b Typo fix 2023-05-15 23:12:17 -04:00
Snarling
2ae3ac52f1
CORPORATION: Corp changes prior to 2.3 finalization (#503) 2023-05-15 18:06:57 -04:00
Snarling
ebae35b1fb
CODEBASE: Expand lint rules, and Aliases are stored as maps (#501) 2023-05-05 03:55:59 -04:00
Snarling
e1aff1a315 Lint fix 2023-04-28 11:49:05 -04:00
Snarling
350679bc83 Program path bugfix + wget use contentFile 2023-04-28 11:42:35 -04:00
Snarling
8fd4eee8e9 Fix wget with text file target 2023-04-28 11:14:29 -04:00
David Walker
aa7facd4ba
NETSCRIPT: Greatly speed up script launching, and remove the limitation unique args per script (#440)
* Remove the limitation unique args per script
* Internal changes to how runningScripts are stored on the server, to make common usage faster.
2023-04-27 18:21:06 -04:00
Snarling
6024c81113
NETSCRIPT: add ns.getResetInfo(#490)
* Move lastAugReset and lastNodeReset back to main API under getResetInfo, also included currentNode.
* The associated properties are deprecated on getPlayer()
2023-04-25 05:22:36 -04:00
Snarling
62adaf3006
Various bugfix/cleanup (#489)
* parseCommands no longer removes excess whitespace (it was unneeded and also had a bug in it relating to commands that ended in a quote mark)
* more documentation and some variable renaming
* Fix script editor focus bug on navigating to the editor from sidebar
* Fix initialization for lastNodeReset and lastAugReset
2023-04-24 15:48:49 -04:00
David Walker
b3c0027b66
NETSCRIPT: Change error return of hackAnalyzeThreads (#482)
Fixes #102
2023-04-24 11:04:19 -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
Snarling
6f56f35943
Add deprecation messages (#486)
Add back getPlayer().playtimeSinceLastX, but with deprecation messages applied
2023-04-24 10:21:43 -04:00
Snarling
0df984eea0
CODEBASE: Add Jsonable Map and Set types, move player.sourceFiles to a map (#473) 2023-04-18 03:19:45 -04:00
Snarling
c44bdc1018 Remove unreachable code 2023-04-12 21:05:53 -04:00
G4mingJon4s
d01ba91654
SINGULARITY: Added aug and node identifiers (timestamps of last resets) (#472) 2023-04-12 13:13:42 -04:00
Snarling
f761eed377
NETSCRIPT: Type correctness for getServer (#476) 2023-04-11 15:12:55 -04:00
David Walker
ed9e6d5ea3
NETSCRIPT: Compiled modules will be even more shared (#468) 2023-04-07 21:08:39 -04:00
Snarling
04d49e3a6d
SCRIPTS: Script modules are reused when they are imported (#461)
Also corrects some compile race conditions.
2023-04-07 00:33:51 -04:00
omuretsu
798da75d83 renameServer changes
* Update doc error, regenerate docs
* Update a bad error message in renamePurchasedServer@serverPurchases.ts
* restore true/false return (removed in #450 due to miscommunication)
2023-03-28 16:10:24 -04:00