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.
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
* Add --ram-override flag to run command
* Update help command
* Fix whitespace
* Update run usage message
* Update autocomplete for run command
* Format
This PR is an alternative for PR #1085. It includes these changes:
* Create a new property: numberOfOfficesAndWarehouses. It's used for calculating cycle valuation.
* Hardcode 1.0079741404289038 instead of calculating Math.pow(1.1, 1 / 12).
the n00dles buff is meant as a meme as far as iam aware
but the corp changes made it the core part of a "fraud" strategy
because the corp funds added have now an alot bigger effect on the valuation
thats why i think a few more 0's are needed to tune it down back to a meme
bandaids for 3 bugs in bladeburner
this really needs proper fixes and a alot of refactoring!
the manual action start didnt start tasks the right way, modifying an existing action object instead of creating a new one
therefore the current action wasnt shown on the stats overview
the api start action didnt check for the BladesSimulacrum Aug and didnt stop current Player tasks
so the next time Bladeburner proccessed it stopped the bladeburner tasks again
when the player was doing something else like crimes
sometimes blops had an action.count of 0 even when they wherent done in that bladeburner instance yet
this happends because the BlackOps class instances are only initialized on game load
and then later on BlackOps completion manipulated
this change doesnt reset on a bitnode change or when bladeburner is deleted through the dev Menu
as a quick fix i added a new resetBlackOps function that always runs when Bladeburner processes
this isnt the best solution but any proper fix i came up with requires a refactor that i couldnt do at this moment
credits to @TheAimMan for finding the clue that the count is the problem not the rank!
edit,;
added a 4th bandaid to avoid NaN Stamina Penalty when stamina is infinite