v0.51.3 - 2021-04-16 Y'all broke it on the first day (hydroflame)
-------
Passive faction reputation
* Reworked, from 1 rep / 2 minute. Now is a complicated percentage of the
reputation you'd gain working for them. It's not op but it feels a bit
more useful.
Netscript
* print/tprint now take any number of arguments.
* print/tprint will now print object as json.
* print/tprint now handle passing in an undefined argument properly.
Casino
* Cannot bet negative money anymore.
* Roulette max bet is a bit higher.
* Coin Flip has a small cooldown.
* All buttons reject unstrusted mouse events.
Documentation
* Changed a message that said nsjs only works on Chrome.
Bugfix
* hacknet.maxNumNodes now works for both nodes and servers.
* Fixed a bug where the popup boxes would contain data from previous popup boxes.
* .js files will also have the export async function boilerplate.
Misc.
* turned off autocomplete for the terminal text input.
* Fixed an issue on Windows+Firefox where pressing up on the terminal would
bring the cursor to the begining of the line. (Issue #836)
* Hacknet node names is easier to handle for screen readers.
* Money spent on classes is now tracked independently of work money.
* running coding contract from the terminal will display its name.
* infiltration use buttons instead of a links
* minor accessibility patch
* Hospitalization will not cost more than 10% of the players money.
* Adde hospitalization netscript function
* Removed the suggestion that the combat path will lead to Daedalus, it still will. But new players should not be told that this is a viable path to completing a BitNode.
* getMemberInformation now returns everything about the member.
* New netscript function to get the players hacknet server hash capacity
* yesno dialog box will not keep older messages anymore
* v0.51.1
Doing a query across all the "engine" requirements across all installed
dependencies, the highest minimum is Node 8.*. And the lowest maximum
seems to be 9.*
Apparently the "engines" files of package.json is no longer checked
regularly when performing installs. With the changes and different
behaviors across different version of Node & NPM, and having no other
way to ensure everybody contributing is on the same page, this
preinstall check is necessary.
This heavily relies on "SemVer" NPM package, but in order to actually
check this prior to the first set of packages installed the code needs
to be there. So this is a slimmed down version of SemVer and syntax has
been updated.
This issue means that any changes to the HTML has to happen in the
`.\src\index.html` file rather than the `.\index.html`. This makes the
`index.html` in the root now a build artifact the same way that files in
`dist\` are.
This may seem unnecessary (and odd to import CSS files into JS...), but
this sets up the project for being able to keep the distributed
(release) resources all together, as well as setting the stage for
introducing something like SCSS.
This is the baseline for Stylelint configuration. No violations exist
with the uncommented rules. The rules that are commented out at the
beginning of the line should be considered for enabling, as well as
fixing them up.
This is a baseline ESLint configuration, with *A LOT* of rules disabled.
All rules that are enabled already conform to the codebase. As code
clean up starts to happen, rules can be enabled one-by-one.
As it currently stands, bringing in TSLint with *all* rules enabled by
default and override each as we go. This means that as we upgrade and
bring in new rules we might start seeing new rules that the code
violates.
Because all the rules are enabled by default, the choice to explicitly
disable/relax rules can be discussed as part of PRs.
This also brought in strict type checking. This means we shouldn't be
relying on truthy/falsey value coercion. It also means that we will
likely need to create some type definition files or port certain files
over. That...will be a bit tedious, but will make the codebase better as
a whole.
In order to shave off ~0.02MiB of the bundle size, needed to continue
referencing the minified file. Ideally future changes can utilize
code splitting, tree shaking, and minification in WebPack to use normal
references.
The bundled output is noticeably different; likely due to Webpack 4
vs. 2/3. The order of dependencies also appears to have changed.
The overall output *seems* to be the same. Unsure how to full test
that everything is getting bundled appropriately.
This also allows the project to be built without having to manually
copy files into node_modules.
Keeping all the dependencies and additional scripts, as some of them
could come in useful for future work. A number of the dependencies were
based on Webpack rather than what is really used.