Commit Graph

421 Commits

Author SHA1 Message Date
G4mingJon4s 2b8c008be1 NETSCRIPT: Moved formatting functions to their own interface (#1635) 2025-05-14 09:13:35 -07:00
catloversg b53180ff1e MISC: Remove APIs that were deprecated a long time ago (#2088) 2025-05-10 22:10:48 -07:00
catloversg 849bcb2601 MISC: Add formulas API for calculating share power and move UI of sharing RAM (#2126) 2025-05-10 19:14:15 -07:00
Naga 0aaa28054a NETSCRIPT: Add functionality and support to fully allow Players to use IP addresses in place of hostnames (#1990) 2025-04-10 18:41:37 -07:00
Shy d28a06e764 API: dynamic imports with ns.dynamicImport() (#2036) 2025-04-09 18:49:01 -07:00
Michael Ficocelli f6e7ef082c IPVGO: Add support for highlighting nodes and adding small text (#1996) 2025-03-31 13:36:30 -07:00
Naga 1539c428bc NETSCRIPT: Add the 'cat' method to 'ns.singularity' (#1999) 2025-03-23 00:04:26 -07:00
Michael Ficocelli 70a083b34b IPVGO: Improve type checking and documentation (#2028) 2025-03-22 23:59:46 -07:00
Michael Ficocelli 17ffabdfa5 IPVGO: Add new analysis method to set a custom testing board state (#2029) 2025-03-22 23:52:26 -07:00
LJ 30075f3c07 API: Add donationForRep() to Formulas (#1141) 2025-02-11 22:05:32 -08:00
Michael Ficocelli c8d2c9f769 IPVGO: Support scripts playing against each other as each color on "No AI" boards (#1917)
This is a big change with a *lot* of moving parts.

The largest part of it is enabling scripts to `playAsWhite` as a parameter to many Go functions. In the implementation, this involved a significant rewrite of `opponentNextTurn` promise handling.

A number of other changes and bugfixes are included:
* Fixes the issue where handicap stones are added on game load.
* Better typing for error callbacks.
* Throw errors instead of deadlocking on bad cheat usage.
* Return always-resolved gameOver promise after game end
* Added a new `resetStats` api function.

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2025-02-02 20:47:16 -08:00
catloversg d6ee16cdb3 API: Move tail-related APIs to another namespace (#1935)
* API: Move tail-related APIs to another namespace

* Add missing RAM cost config

* Remove setTailFontSize from NS namespace
2025-02-01 21:43:56 -08:00
catloversg 956e3875e9 API: Add getSaveData API (#1390) 2025-01-30 10:36:59 -08:00
G4mingJon4s ffae0045a4 CODINGCONTRACT: Add support for other answer formats (#1892) 2025-01-26 09:35:04 -08:00
catloversg b161142796 API: Add ns.renderTail (#1815) 2025-01-25 09:14:45 -08:00
catloversg 9bf408221c CODEBASE: Merge TypeAssertion files (#1922) 2025-01-24 11:06:39 -08:00
Yichi Zhang e6a1c344d3 NETSCRIPT: Log script kill immediately and identify the killing script. (#1907) 2025-01-12 21:07:01 -08:00
G4mingJon4s c622291eff NETSCRIPT: Added changing tail font size through scripts (#1852) 2025-01-04 16:51:13 -08:00
catloversg 6e1848dd79 CORPORATION: Add new API to check if player can create corporation (#1598)
* CORPORATION: Add new API to check if player can create corporation
* Update description of createCorporation API
* Return enum instead of true/false
* Use throwIfReachable
* Fix typo in comment
2024-11-30 21:49:19 -08:00
catloversg 05da0efc81 REFACTOR: Mitigate cyclic dependency between Jsonable classes (#1792) 2024-11-23 15:53:31 -08:00
catloversg 36c143b687 CODEBASE: Fix lint errors 2 (#1756) 2024-11-06 23:09:11 -08:00
catloversg f6502dd490 CODEBASE: Fix lint errors 1 (#1732) 2024-11-03 22:35:14 -08:00
ballardrog 0bf378a1b0 IPVGO: Add getCheatCount(). (#1734) 2024-10-27 18:52:23 -07:00
catloversg 9a0400d3df API: Improve built-in print APIs when printing objects containing Map or Set (#1723) 2024-10-23 16:01:58 -07:00
catloversg 867f79c5ab API: Improve built-in print APIs when printing Promise objects (#1710) 2024-10-21 20:37:40 -07:00
Alain Bryden cd99006c4e NETSCRIPT: Update ScriptDeath to extend Error (#1685)
* Update ScriptDeath to extend Error

- Rename the "name" property to "hostname" so that it doesn't clash with inherited Error.name property.
- Extend Error, this way if a user ends up catching it they can:
  - Test the type of error caught (name) and ignore it if desired
  - Get a stack trace and find out where they went wrong
  - Not require special case error printing logic for catching things that are neither strings, nor Error objects.

It is possible (but unlikely) that this could make killing scripts slower in some circumstances.
2024-10-09 21:18:06 -07:00
catloversg 32e00aff7a BUGFIX: Wrong parameter requirement of ns.bladeburner.setTeamSize (#1673) 2024-09-30 20:18:25 -07:00
G4mingJon4s 651b17739c NETSCRIPT: Add ns.self() as a free info function (#1636)
* added utility info

* moved info to running script

* fix for RAM cost

* description changes

Co-authored-by: David Walker <d0sboots@gmail.com>

* fixed wrong formatting

* Added parent to ignored fields

---------

Co-authored-by: David Walker <d0sboots@gmail.com>
2024-09-07 17:34:24 -07:00
Nicole b4f2a5c641 set static information netscript costs to 0 (#1628) 2024-08-25 10:09:36 -07:00
Yichi Zhang 028e779602 NETSCRIPT: Don't make dynamicLoadedFns entries for free functions. (#1617) 2024-08-23 21:23:41 -07:00
catloversg be515cc195 BUGFIX: Crash in b1tflum3 and destroyW0r1dD43m0n API (#1619) 2024-08-23 21:06:53 -07:00
Nicole 7f5c4e1fe0 API: Reduced RAM cost for ns.getPurchasedServers (#1614) 2024-08-22 00:44:21 -07:00
David Walker 5b2a4eafcb MISC: Improve several things relating to PID lookups (#1594)
findRunningScriptByPid needlessly took a "server" argument. This caused
there to be a "getRunningScriptByPid" version that did *not*, and it was
looping through all servers in order to function, which is needlessly
inefficient.

By removing the parameter and the needless inefficient helper method,
the following changes:
- Many Netscript functions such as isRunning() and getScript() become faster.
- The terminal "tail" command now works by pid regardless of the current
  server. Note that "kill" already worked this way.

I also improved the docs around "tail", since the pid argument wasn't
in the help.
2024-08-17 14:03:00 -07:00
David Walker 34db6e8b26 NETSCRIPT: Rework disableLog for efficiency (#1589)
The current implementation was naive; disableLog("ALL") was storing a
key for every function, and iterating over a different object to do it
(when iterating over objects is quite slow).

The common cases of Bitburner (and especially batching, where efficiency
matters most) are either never disabling anything, or disabling "ALL".
This optimizes for these two cases, at the expense of slightly more
complicated code to deal with the less-common edge cases.
2024-08-16 19:10:20 -07:00
catloversg 289f60d8c8 BLADEBURNER: Add API to calculate max upgrade count of skill (#1475) 2024-08-16 13:15:20 -07:00
catloversg a9cb46606c DOCUMENTATION: Update documentation of Corporation API (#1587) 2024-08-16 02:02:23 -07:00
Tom Prince 854c1a5921 MISC: Remove unsed attribues of internal ScriptDeath. (#1513) 2024-07-23 17:50:51 -07:00
catloversg 783120c886 FEATURE: BitNode options (#1411) 2024-07-14 14:30:30 -07:00
catloversg b1c1fc24a9 GRAFTING: Add new api for checking ongoing grafting (#1435) 2024-06-28 19:59:18 -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
catloversg 5a8f0e99af SINGULARITY: Add ns.singularity.getFactionWorkTypes (#1425) 2024-06-24 20:43:36 -07:00
Michael Ficocelli cf48d666f5 IPVGO: Add history, and details to status, to go API (#1348) 2024-06-05 18:24:48 -07:00
Michael Ficocelli b53c35126e IPVGO: Provide API for getting game stats per opponent (#1255)
Give users access to wins, losses, stat bonuses, and favor gained
2024-05-10 01:57:03 -07:00
catloversg aef362204d MISC: Handle error when getting save data (#1241) 2024-05-09 02:19:30 -07:00
David Walker 384d1c1a2b NETSCRIPT: A minorly breaking change around script launch, and refactoring. (#1213) 2024-04-23 20:21:05 -04:00
catloversg 216500ed32 CORPORATION: Add a new API to sell a division (#1210)
Also refactoring around use of "player" variable (whether it is capitalized or not).
2024-04-15 21:19:47 -07:00
Paco Delozanne ae1ca8f9a6 NETSCRIPT: Add Singularity.getFactionEnemies() (#1192) 2024-03-29 01:16:54 -04:00
Snarling 6669c4da6a BLADEBURNER: Typesafety / refactoring (#1154) 2024-03-28 21:52:37 -04:00